/* ============================================================
   Keydroid Service Desk — workshop console
   Display/UI: Space Grotesk   |   Data: Space Mono
   ============================================================ */
:root{
  --ink:#0D1013; --panel:#151A20; --panel-2:#1B222A; --line:#252E38;
  --text:#E7ECF1; --muted:#7E8B99; --dim:#5A6673;
  --amber:#F2A72C; --amber-dim:#8A5F13;
  --green:#3DBF8B; --red:#E5484D; --blue:#5090F0; --violet:#9B7BF0;
  --r:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--ink); color:var(--text);
  font-family:'Space Grotesk',system-ui,-apple-system,sans-serif;
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.mono{font-family:'Space Mono',ui-monospace,monospace}
.muted{color:var(--muted)}
.dim{color:var(--dim)}
h1{font-size:24px;font-weight:600;letter-spacing:-.02em;margin:0 0 4px}
h2{font-size:16px;font-weight:600;margin:0 0 14px}
h3{font-size:13px;font-weight:600;margin:0 0 10px;color:var(--muted);
   text-transform:uppercase;letter-spacing:.12em}

/* ---------- Top bar ---------- */
.topbar{
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  padding:0 22px;height:58px;background:var(--panel);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;
}
.brand{font-weight:700;letter-spacing:.16em;font-size:14px;display:flex;align-items:baseline;gap:8px}
.brand span{font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.2em;color:var(--amber)}
.nav{display:flex;gap:2px;flex:1;flex-wrap:wrap}
.nav a{padding:7px 12px;border-radius:7px;font-size:14px;color:var(--muted)}
.nav a:hover{color:var(--text);background:var(--panel-2)}
.nav a.on{color:var(--ink);background:var(--amber);font-weight:600}
.topbar-right{display:flex;align-items:center;gap:16px}
.quick input{
  background:var(--ink);border:1px solid var(--line);color:var(--text);
  padding:7px 12px;border-radius:7px;width:210px;font-family:'Space Mono',monospace;font-size:12px;
}
.who{display:flex;flex-direction:column;line-height:1.25;font-size:12px}
.who a{color:var(--muted);font-size:11px}
.who a:hover{color:var(--amber)}

.wrap{max-width:1240px;margin:0 auto;padding:26px 22px 60px}
.foot{max-width:1240px;margin:0 auto;padding:0 22px 26px;display:flex;
  justify-content:space-between;color:var(--dim);font-size:11px}

/* ---------- Cards / panels ---------- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.panel + .panel{margin-top:16px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}

/* ---------- KPI tiles ---------- */
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.kpi .k-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.kpi .k-val{font-family:'Space Mono',monospace;font-size:30px;font-weight:700;margin-top:6px;letter-spacing:-.02em}
.kpi .k-sub{font-size:12px;color:var(--dim);margin-top:2px}
.kpi.alert{border-color:var(--red)}
.kpi.alert .k-val{color:var(--red)}
.kpi.good .k-val{color:var(--green)}
.kpi.amber .k-val{color:var(--amber)}

/* ---------- Tables ---------- */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.12em;
   color:var(--muted);font-weight:600;padding:9px 10px;border-bottom:1px solid var(--line)}
td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:hover{background:var(--panel-2)}
tbody tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right;font-family:'Space Mono',monospace}
.jobno{font-family:'Space Mono',monospace;font-weight:700;color:var(--amber);white-space:nowrap}
.table-wrap{overflow-x:auto}

/* ---------- Chips / badges ---------- */
.chip{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;
  font-weight:600;letter-spacing:.03em;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.chip-awaiting_receipt{border-color:#3A4450;color:#9AA6B4}
.chip-received{border-color:var(--blue);color:var(--blue)}
.chip-diagnosis{border-color:var(--violet);color:var(--violet)}
.chip-awaiting_parts,.chip-awaiting_approval{border-color:var(--amber);color:var(--amber)}
.chip-repaired{border-color:var(--green);color:var(--green)}
.chip-dispatched{border-color:#4ECBD8;color:#4ECBD8}
.chip-delivered,.chip-closed{border-color:#3A4450;color:#7E8B99}
.chip-rejected{border-color:var(--red);color:var(--red)}
.chip-warn{border-color:var(--red);color:var(--red)}
.chip-in_warranty{border-color:var(--green);color:var(--green)}
.chip-out_warranty{border-color:var(--amber);color:var(--amber)}
.chip-unknown{border-color:#3A4450;color:var(--dim)}
.chip-solid{background:var(--amber);color:var(--ink);border-color:var(--amber)}

/* TAT clock — signature element */
.tat{font-family:'Space Mono',monospace;font-weight:700;font-size:12px;
  padding:3px 9px;border-radius:6px;background:var(--panel-2);border:1px solid var(--line)}
.tat.over{background:rgba(229,72,77,.12);border-color:var(--red);color:var(--red)}
.tat.warn{color:var(--amber);border-color:var(--amber-dim)}

/* ---------- Forms ---------- */
label{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}
input,select,textarea{
  width:100%;margin-top:5px;background:var(--ink);color:var(--text);
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;
  font-family:inherit;font-size:14px;
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--amber);outline-offset:0;border-color:var(--amber)}
textarea{min-height:82px;resize:vertical}
input[type=file]{padding:7px;font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.form-grid .full{grid-column:1/-1}
.form-grid.g2c{grid-template-columns:repeat(2,1fr)}

.btn{display:inline-block;border:1px solid var(--line);background:var(--panel-2);color:var(--text);
  padding:9px 16px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}
.btn:hover{border-color:var(--muted)}
.btn-primary{background:var(--amber);border-color:var(--amber);color:#1A1204;font-weight:600}
.btn-primary:hover{filter:brightness(1.08)}
.btn-ghost{background:transparent}
.btn-danger{border-color:var(--red);color:var(--red);background:transparent}
.btn-sm{padding:5px 11px;font-size:12px}
.btn-block{width:100%}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}

/* ---------- Filters ---------- */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.filters label{margin-bottom:0;min-width:150px}
.filters .btn{margin-bottom:1px}

/* ---------- Flash ---------- */
.flash{padding:11px 15px;border-radius:8px;margin-bottom:18px;font-size:14px;border:1px solid}
.flash-ok{border-color:var(--green);background:rgba(61,191,139,.1);color:#8FE3C2}
.flash-err{border-color:var(--red);background:rgba(229,72,77,.1);color:#F5A3A5}
.err-box{border:1px solid var(--red);background:rgba(229,72,77,.1);color:#F5A3A5;padding:11px 14px;border-radius:8px;font-size:13px}
.ok-box{border:1px solid var(--green);background:rgba(61,191,139,.1);color:#8FE3C2;padding:11px 14px;border-radius:8px;font-size:13px}

/* ---------- Job detail ---------- */
.job-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.job-head .jn{font-family:'Space Mono',monospace;font-size:28px;font-weight:700;color:var(--amber);letter-spacing:-.01em}
.job-head .meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;align-items:center}
.kv{display:grid;grid-template-columns:132px 1fr;gap:7px 14px;font-size:13px}
.kv dt{color:var(--muted);font-size:12px}
.kv dd{margin:0}

/* Status rail */
.rail{list-style:none;margin:0;padding:0;position:relative}
.rail:before{content:'';position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--line)}
.rail li{position:relative;padding:0 0 18px 26px}
.rail li:last-child{padding-bottom:0}
.rail li:before{content:'';position:absolute;left:2px;top:5px;width:9px;height:9px;border-radius:50%;
  background:var(--panel);border:2px solid var(--line)}
.rail li.hit:before{border-color:var(--amber);background:var(--amber)}
.rail .t{font-size:13px;font-weight:500}
.rail .s{font-family:'Space Mono',monospace;font-size:11px;color:var(--dim);margin-top:2px}
.rail .n{font-size:12px;color:var(--muted);margin-top:4px}

.note{border-left:2px solid var(--line);padding:2px 0 2px 12px;margin-bottom:14px;font-size:13px}
.note .s{font-family:'Space Mono',monospace;font-size:11px;color:var(--dim);margin-top:3px}
.file-list{display:flex;gap:8px;flex-wrap:wrap}
.file-list a{font-size:11px;font-family:'Space Mono',monospace;padding:5px 9px;
  border:1px solid var(--line);border-radius:6px;color:var(--muted)}
.file-list a:hover{border-color:var(--amber);color:var(--amber)}

.empty{text-align:center;padding:44px 20px;color:var(--dim);font-size:14px}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px;flex-wrap:wrap}
.tabs a{padding:9px 14px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--amber);border-bottom-color:var(--amber);font-weight:600}

/* ---------- Auth / public ---------- */
.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.auth-card{width:100%;max-width:390px;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:32px}
.brand-mark{font-weight:700;letter-spacing:.18em;font-size:15px;margin-bottom:26px}
.brand-mark span{display:block;font-family:'Space Mono',monospace;font-size:9px;
  letter-spacing:.24em;color:var(--amber);margin-top:3px}

.public-wrap{max-width:660px;margin:0 auto;padding:38px 20px 70px}
.public-head{margin-bottom:26px}
.public-head .brand-mark{margin-bottom:20px}
.steps{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0 26px;font-size:12px;color:var(--muted)}
.steps span{font-family:'Space Mono',monospace;color:var(--amber)}
.receipt{text-align:center;padding:14px 0 4px}
.receipt .jn{font-family:'Space Mono',monospace;font-size:34px;font-weight:700;color:var(--amber);
  letter-spacing:.02em;margin:12px 0}

@media(max-width:900px){
  .split{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:1fr}
  .form-grid,.form-grid.g2c{grid-template-columns:1fr}
  .topbar{height:auto;padding:12px 16px;gap:12px}
  .quick input{width:100%}
  .topbar-right{width:100%;justify-content:space-between}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
