
:root{--bg:#0f1115;--panel:#171a21;--ink:#e6e8ee;--muted:#8d93a1;--accent:#5bd4a4;--line:#2a2f3a;--warn:#ffd35a;--warn2:#ff9f50;--danger:#ff6666;}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.35 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif}
a{color:#9bd4ff;text-decoration:none}
a:hover{text-decoration:underline}
header.bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#141a22;border-bottom:1px solid #0c1016}
.wrap{padding:16px}
.card{background:#151b24;border:1px solid #253042;border-radius:12px;padding:12px;margin:12px 0}
.grid-1{display:grid;gap:12px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
label{display:block;color:#aeb4c2;font-size:13px}
input,select,button,textarea{font:inherit}
input[type=text],input[type=email],input[type=password],select,textarea{width:100%;background:#0f131b;color:#e6e8ee;border:1px solid #232a36;border-radius:8px;padding:8px}
button,.btn{background:#1e2430;color:#e8edf7;border:1px solid #2b3240;border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer}
button:hover,.btn:hover{filter:brightness(1.1)}
table.list{width:100%;border-collapse:separate;border-spacing:0}
table.list th,table.list td{border-bottom:1px solid #252d3b;padding:10px;text-align:left}
.error{background:#3a1212;border:1px solid #5d1b1b;color:#ffd2d2;padding:10px;border-radius:8px;margin:10px 0}
.ok,.note{background:#102c1f;border:1px solid #1e5a41;color:#cffff0;padding:10px;border-radius:8px;margin:10px 0}
.hint{color:#8d93a1;font-size:12px}
/* matrix specifics */
table.matrix{width:100%;border-collapse:separate;border-spacing:0;background:#171a21;border:1px solid #2a2f3a;border-radius:12px;overflow:hidden}
.matrix th,.matrix td{border-right:1px solid #2a2f3a;border-bottom:1px solid #2a2f3a;vertical-align:top}
.matrix th{background:#1b202a;color:#cfd6e6;font-weight:700;padding:10px 12px;position:sticky;top:0;z-index:3}
.matrix th:first-child,.matrix td:first-child{position:sticky;left:0;z-index:4;background:#151922}
.cell.disabled{opacity:.4}
.warn-none{} .warn-soft{box-shadow:inset 0 0 0 2px var(--warn)} .warn-hard{box-shadow:inset 0 0 0 2px var(--warn2)} .warn-critical{box-shadow:inset 0 0 0 2px var(--danger)}
@media print{
  header.bar,.toolbar,.access-links,.setup{display:none!important}
  [data-print-scope="column"] td:not(.print-keep), [data-print-scope="column"] th:not(.print-keep){display:none!important}
  [data-print-scope="cell"] td, [data-print-scope="cell"] th{display:none!important}
  [data-print-scope="cell"] td.print-target, [data-print-scope="cell"] th.print-keep{display:table-cell!important}
}
