:root{
  --ink:#0c0c0c; --panel:#161616; --panel2:#1e1e1e; --paper:#f4f2ed;
  --line:rgba(244,242,237,.16); --dim:rgba(244,242,237,.55);
  --ok:#7dc98f; --warn:#e0b35a; --bad:#e07a6a; --info:#7aa7e0;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:'Saira',sans-serif;font-stretch:87.5%;background:var(--ink);color:var(--paper);min-height:100vh}
h1,h2,h3,.display{font-family:'Orbitron',sans-serif;letter-spacing:.04em}
button{font-family:inherit;cursor:pointer}
input,select,textarea{
  font-family:inherit;font-size:16px;width:100%;
  background:var(--panel2);border:1px solid var(--line);color:var(--paper);
  padding:12px 14px;border-radius:0;
}
input:focus,select:focus,textarea:focus{outline:1px solid var(--paper)}
label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin:14px 0 6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.field-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}

/* login */
.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px}
.login img{width:min(320px,70vw)}
.login form{width:min(380px,90vw);display:flex;flex-direction:column;gap:14px}

/* shell */
header.bar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  background:rgba(12,12,12,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  padding:12px 20px;
}
header.bar .mark{font-family:'Orbitron';font-weight:700;font-size:13px;letter-spacing:.22em}
header.bar .mark span{font-weight:500;opacity:.5}
nav.tabs{display:flex;gap:4px;overflow-x:auto;padding:10px 16px;border-bottom:1px solid var(--line);position:sticky;top:49px;background:var(--ink);z-index:39}
nav.tabs button{
  background:none;border:1px solid var(--line);color:var(--paper);
  font-family:'Orbitron';font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  padding:10px 18px;white-space:nowrap;opacity:.6;
}
nav.tabs button.on{opacity:1;background:var(--paper);color:var(--ink);border-color:var(--paper)}
main{padding:20px;max-width:1100px;margin:0 auto}
.page-title{display:flex;justify-content:space-between;align-items:center;margin:6px 0 18px}
.page-title h2{font-size:18px;text-transform:uppercase}

.btn{
  background:var(--paper);color:var(--ink);border:1px solid var(--paper);
  font-family:'Orbitron';font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  padding:13px 22px;
}
.btn.ghost{background:none;color:var(--paper);border-color:var(--line)}
.btn.small{padding:8px 14px;font-size:10px}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn:disabled{opacity:.4;cursor:default}

.card{background:var(--panel);border:1px solid var(--line);padding:18px;margin-bottom:12px}
.card .row1{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.card h3{font-size:15px}
.card .sub{font-size:13px;opacity:.6;margin-top:4px}
.card .actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.chip{font-family:'Orbitron';font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--line)}
.chip.reserved{color:var(--info);border-color:var(--info)}
.chip.active{color:var(--ok);border-color:var(--ok)}
.chip.returned{color:var(--warn);border-color:var(--warn)}
.chip.closed,.chip.cancelled{opacity:.45}
.chip.maintenance{color:var(--warn);border-color:var(--warn)}
.chip.rented{color:var(--ok);border-color:var(--ok)}
.chip.available{color:var(--dim)}

.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.stat{background:var(--panel);border:1px solid var(--line);padding:16px}
.stat b{font-family:'Orbitron';font-size:24px;display:block}
.stat span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.alert{border-left:3px solid var(--warn);background:var(--panel);padding:12px 16px;margin-bottom:8px;font-size:14px}

/* modal / wizard */
.modal{position:fixed;inset:0;z-index:90;background:rgba(12,12,12,.55);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px 12px}
.modal .box{background:var(--panel);border:1px solid var(--line);width:min(760px,100%);padding:24px;margin:auto 0}
.modal .box h3{font-size:16px;text-transform:uppercase;margin-bottom:8px}
.modal .foot{display:flex;justify-content:space-between;gap:10px;margin-top:22px;flex-wrap:wrap}
.steps{display:flex;gap:6px;margin:14px 0 6px}
.steps i{flex:1;height:3px;background:var(--line)}
.steps i.on{background:var(--paper)}

/* vistoria */
.diagram-wrap{position:relative;background:#f0eee8;border:1px solid var(--line);touch-action:none;user-select:none}
.diagram-wrap svg{display:block;width:100%;pointer-events:none}
.diagram-wrap canvas{position:absolute;inset:0;width:100%;height:100%}
.pen-row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center}
.pen{width:42px;height:42px;border:2px solid var(--line);background:var(--panel2)}
.pen.on{border-color:var(--paper)}
.pen.red{background:#c0392b}.pen.orange{background:#e08a3a}.pen.blue{background:#3a6ea5}
.legend{font-size:12px;opacity:.6;margin-top:6px}
.sig-wrap{background:#f0eee8;border:1px solid var(--line);touch-action:none}
.sig-wrap canvas{display:block;width:100%;height:160px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:10px}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line)}
.charges{background:var(--panel2);border:1px solid var(--line);padding:14px;margin-top:14px;font-size:14px}
.charges div{display:flex;justify-content:space-between;padding:4px 0}
.charges .tot{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-family:'Orbitron';font-weight:700}
.contract-box{background:var(--panel2);border:1px solid var(--line);padding:16px;max-height:300px;overflow-y:auto;font-size:13px;line-height:1.6;white-space:pre-wrap}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ink);padding:12px 24px;font-size:14px;z-index:99;font-family:'Orbitron';letter-spacing:.06em}
.empty{opacity:.5;text-align:center;padding:40px 0;font-size:14px}
@media(max-width:640px){.field-row,.field-row3{grid-template-columns:1fr}}
