:root{
  --bg:#0f1420; --card:#1a2130; --muted:#8b97ab; --line:#2a3346; --text:#eef2f8;
  --green:#1fbf6b; --green-bg:#123b2a; --yellow:#e6b800; --yellow-bg:#3d3410;
  --gray:#3a4459; --queue-bg:#232c3d; --red:#e5484d; --red-bg:#3a1618; --blue:#3b82f6;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}

/* ---------- Мастер ---------- */
body.master{padding:0}
.topbar{position:sticky;top:0;background:#121826;border-bottom:1px solid var(--line);
  padding:12px 16px;display:flex;align-items:center;gap:12px;z-index:5}
.topbar h1{font-size:18px;margin:0;flex:1}
.counters{display:flex;gap:8px;padding:10px 16px;flex-wrap:wrap}
.counter{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:8px 14px;font-size:15px}
.counter b{font-size:20px}
.cards{padding:8px 12px 40px;display:flex;flex-direction:column;gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-left-width:6px;
  border-radius:14px;padding:14px 16px}
.card.s-in_progress{border-left-color:var(--green)}
.card.s-paused{border-left-color:var(--yellow)}
.card.s-issued{border-left-color:var(--muted)}
.card.s-done{border-left-color:#2c6f4f;opacity:.6}
.card.s-cancelled{border-left-color:var(--red);opacity:.6}
.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.card-order{font-size:22px;font-weight:700}
.badge{font-size:12px;padding:3px 10px;border-radius:20px;white-space:nowrap}
.badge.in_progress{background:var(--green-bg);color:var(--green)}
.badge.paused{background:var(--yellow-bg);color:var(--yellow)}
.badge.issued{background:var(--queue-bg);color:var(--muted)}
.badge.done{background:#123b2a;color:#2c6f4f}
.badge.cancelled{background:var(--red-bg);color:var(--red)}
.card-meta{color:var(--muted);font-size:14px;margin:4px 0 12px}
.timer{font-variant-numeric:tabular-nums}
.btn-row{display:flex;gap:10px;flex-wrap:wrap}
.btn{flex:1;min-width:120px;border:0;border-radius:12px;padding:16px;font-size:17px;
  font-weight:600;color:#fff;cursor:pointer}
.btn:active{transform:scale(.98)}
.btn-start{background:var(--green)}
.btn-finish{background:var(--blue)}
.btn-pause{background:var(--yellow);color:#221c00}
.btn-resume{background:var(--green)}
.btn-cancel{background:#4a2226;color:#ffb4b4}
.sync{font-size:12px;color:var(--yellow)}
.empty{color:var(--muted);text-align:center;padding:60px 20px}

/* модалка причин */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;
  align-items:flex-end;z-index:20}
.modal.open{display:flex}
.modal-sheet{background:var(--card);width:100%;border-radius:20px 20px 0 0;
  padding:20px 16px 28px;max-height:85vh;overflow:auto}
.modal-sheet h3{margin:4px 0 16px}
.reason-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.reason-btn{background:var(--queue-bg);border:1px solid var(--line);color:var(--text);
  border-radius:12px;padding:18px 12px;font-size:16px;cursor:pointer}
.reason-btn.sel{outline:2px solid var(--blue)}
.modal input[type=text]{width:100%;margin-top:12px;padding:14px;border-radius:12px;
  border:1px solid var(--line);background:#0f1420;color:var(--text);font-size:16px}
.modal-actions{display:flex;gap:10px;margin-top:16px}

/* ---------- Логин ---------- */
.login-wrap{max-width:440px;margin:0 auto;padding:40px 20px}
.login-wrap h1{font-size:22px}
.field{margin:14px 0}
.field label{display:block;color:var(--muted);margin-bottom:6px}
.field select,.field input{width:100%;padding:14px;border-radius:12px;
  border:1px solid var(--line);background:var(--card);color:var(--text);font-size:16px}
.err{background:var(--red-bg);color:#ffb4b4;padding:10px 14px;border-radius:10px;margin:10px 0}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.pinpad button{padding:20px;font-size:22px;border-radius:12px;border:1px solid var(--line);
  background:var(--card);color:var(--text);cursor:pointer}
.pin-display{text-align:center;font-size:28px;letter-spacing:8px;height:40px}

/* ---------- Дашборд ---------- */
body.owner{padding:0}
.nav{display:flex;gap:6px;padding:12px 16px;background:#121826;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:5;align-items:center;flex-wrap:wrap}
.nav a{color:var(--muted);text-decoration:none;padding:8px 14px;border-radius:10px}
.nav a.active,.nav a:hover{background:var(--card);color:var(--text)}
.nav .spacer{flex:1}
.nav .gen{color:var(--muted);font-size:13px}
.board{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:16px}
@media(max-width:1100px){.board{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.board{grid-template-columns:1fr}}
.col{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:120px}
.col h3{margin:2px 0 10px;font-size:15px;display:flex;justify-content:space-between}
.col .cnt{color:var(--muted);font-weight:400}
.tile{border-radius:10px;padding:8px 10px;margin-bottom:8px;font-size:13px;border:1px solid transparent}
.tile.in_progress{background:var(--green-bg);border-color:#1c5a3e}
.tile.paused{background:var(--yellow-bg);border-color:#5a4a10}
.tile.issued{background:var(--queue-bg)}
.tile.alert{border-color:var(--red);box-shadow:0 0 0 1px var(--red) inset}
.tile b{font-size:15px}
.tile .sub{color:var(--muted)}
.section-title{color:var(--muted);font-size:12px;text-transform:uppercase;margin:6px 0 4px}
table.daily{width:100%;border-collapse:collapse;margin:16px}
table.daily th,table.daily td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:right;font-size:14px}
table.daily th:first-child,table.daily td:first-child{text-align:left}
table.daily thead th{color:var(--muted);font-weight:600}
.delta-up{color:var(--green)}.delta-down{color:var(--red)}
.panel{max-width:720px;margin:20px auto;padding:0 16px}
.panel input[type=text],.panel input[type=date]{padding:12px;border-radius:10px;
  border:1px solid var(--line);background:var(--card);color:var(--text);font-size:16px}
.chain{display:flex;flex-direction:column;gap:10px}
.step{display:flex;gap:12px;align-items:flex-start}
.dot{width:14px;height:14px;border-radius:50%;margin-top:5px;flex:none;background:var(--gray)}
.dot.done{background:var(--green)}.dot.in_progress{background:var(--yellow)}
.dot.cancelled{background:var(--red)}.dot.waiting_upstream{background:var(--gray)}
.dropzone{border:2px dashed var(--line);border-radius:14px;padding:40px;text-align:center;color:var(--muted);cursor:pointer}
.preview-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin:10px 0}
.btn-primary{background:var(--blue);color:#fff;border:0;border-radius:10px;padding:12px 20px;font-size:15px;cursor:pointer}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:12px 20px;cursor:pointer}
.warn{color:var(--yellow);font-size:13px}
