:root{
  --bg:#0f1115; --panel:#171a21; --panel2:#1e222b; --line:#2a2f3a;
  --text:#e7e9ee; --muted:#9aa2b1; --accent:#c9a227; --accent2:#e6c04d;
  --danger:#e0574b; --ok:#4caf7d; --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:linear-gradient(180deg,#0f1115,#12151c);color:var(--text);min-height:100vh}
.dia{color:var(--accent)}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit}

/* ---------- buttons ---------- */
.btn{padding:10px 15px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel2);color:var(--text);font-weight:600}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#1a1a1a;border:none}
.btn.primary:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent}
.btn.danger{border-color:var(--danger);color:#ffb4ac}
.btn.sm{padding:6px 11px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- fields ---------- */
.field{display:block;margin-bottom:14px}
.field>span{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px}
input,select,textarea{width:100%;padding:11px 12px;border-radius:9px;background:var(--panel2);
  border:1px solid var(--line);color:var(--text);font-size:15px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.err{color:#ffb4ac;font-size:13px;min-height:18px;margin:2px 0 10px}

/* ---------- login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:340px;background:var(--panel);border:1px solid var(--line);
  border-radius:16px;padding:26px}
.brand-big{font-size:26px;font-weight:700;text-align:center}
.login-card .sub{text-align:center;color:var(--muted);margin:2px 0 20px;font-size:13px}
.login-card .credit{text-align:center;color:var(--muted);font-size:12px;margin:16px 0 0}
.login-card .credit b{color:var(--accent2);font-weight:600}

/* ---------- topbar ---------- */
.topbar{display:flex;align-items:center;gap:18px;padding:12px 20px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:#12151c;z-index:20}
.brand{font-size:18px;font-weight:700}
.nav{display:flex;gap:6px;flex:1}
.nav button{padding:8px 13px;border-radius:9px;border:1px solid transparent;background:transparent;
  color:var(--muted);font-weight:600}
.nav button:hover{color:var(--text)}
.nav button.active{background:var(--panel2);color:var(--text);border-color:var(--line)}
.user-menu{display:flex;align-items:center;gap:8px}
.who{color:var(--muted);font-size:13px;margin-right:4px}

.view{max-width:1080px;margin:0 auto;padding:22px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
h2.title{font-size:20px;margin:0 0 16px}
.h2row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.h2row h2{margin:0;font-size:20px}
.muted{color:var(--muted)}

/* ---------- label station ---------- */
.station{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:860px){.station{grid-template-columns:1fr}}
.scale-box{display:flex;align-items:center;gap:14px;margin:6px 0 14px}
.weight-big{font-size:44px;font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.weight-big small{font-size:18px;color:var(--muted);font-weight:600}
.dot{width:10px;height:10px;border-radius:50%;background:#666;display:inline-block;margin-right:6px}
.dot.on{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.pill{font-size:12px;color:var(--muted)}

.picked{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel2);margin-bottom:12px}
.picked img{width:54px;height:54px;object-fit:cover;border-radius:8px;background:#000}
.picked .noimg{width:54px;height:54px;border-radius:8px;background:#0c0e12;display:flex;
  align-items:center;justify-content:center;color:#555;font-size:11px}

.suggest{position:relative}
.suggest-list{position:absolute;left:0;right:0;top:100%;background:var(--panel2);
  border:1px solid var(--line);border-radius:0 0 10px 10px;max-height:260px;overflow:auto;z-index:5}
.suggest-list div{padding:9px 12px;cursor:pointer;border-top:1px solid var(--line);font-size:14px}
.suggest-list div:hover,.suggest-list div.hi{background:#262b36}
.suggest-list .add{color:var(--accent)}

/* ---------- the printable label ---------- */
.stage{background:#e9e9ec;border-radius:12px;padding:24px;display:flex;
  align-items:center;justify-content:center;min-height:150px}
.label{background:#fff;color:#000;display:flex;overflow:hidden;font-family:"Arial Narrow",Arial,sans-serif;
  box-shadow:0 2px 10px rgba(0,0,0,.25)}
.label .qr{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding:0.6mm}
.label .qr svg{display:block;height:100%;width:auto;aspect-ratio:1/1}
.label .info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;
  padding:0.5mm 1mm 0.5mm 0;overflow:hidden}
.label .info .ln{white-space:nowrap;overflow:hidden;line-height:1.15}
.label .info .model{font-weight:800}
.label .info .lbl{color:#000;opacity:.65;font-weight:600}

/* ---------- table ---------- */
table.grid{width:100%;border-collapse:collapse;font-size:14px}
.grid th,.grid td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
.grid th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.grid tr:hover td{background:var(--panel2)}
.grid img.thumb{width:38px;height:38px;object-fit:cover;border-radius:6px;background:#000}
.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;background:var(--panel2);border:1px solid var(--line)}
.tag.admin{color:var(--accent2)}

/* ---------- modal ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;
  justify-content:center;padding:20px;z-index:50}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;
  width:460px;max-width:100%;max-height:90vh;overflow:auto}
.modal h3{margin:0 0 16px}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.photo-drop{border:1px dashed var(--line);border-radius:10px;padding:12px;text-align:center;color:var(--muted);cursor:pointer}
.photo-drop img{max-height:110px;border-radius:8px;margin-top:8px}

/* ---------- toast ---------- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#222834;
  border:1px solid var(--line);padding:12px 18px;border-radius:10px;z-index:100;font-size:14px}
.toast.ok{border-color:var(--ok)}
.toast.bad{border-color:var(--danger)}

.stat-row{display:flex;gap:14px;margin-bottom:16px}
.stat{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.stat b{display:block;font-size:24px}
.stat span{color:var(--muted);font-size:12px}

/* ---------- print ---------- */
#printRoot{position:absolute;left:-9999px;top:0}
@media print{
  body *{visibility:hidden}
  #printRoot,#printRoot *{visibility:visible}
  #printRoot{position:absolute;left:0;top:0}
  #printRoot .label{box-shadow:none;page-break-after:always}
}
