:root{
  color-scheme: light;
  --ink:#1b2430;
  --ink-soft:#4b5768;
  --line:#dde3ea;
  --paper:#f6f8fb;
  --panel:#ffffff;
  --accent:#2a5fd9;
  --accent-dark:#1e46ad;
  --accent-soft:#e8effd;
  --good:#1c8a5b;
  --good-soft:#e7f6ee;
  --warn:#b8720b;
  --warn-soft:#fdf1de;
  --bad:#c73434;
  --bad-soft:#fbe9e9;
  --radius:12px;
  --shadow:0 1px 2px rgba(20,30,50,.06), 0 8px 24px rgba(20,30,50,.08);
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --ink:#e8ecf3;
  --ink-soft:#9aa7b8;
  --line:#2b3444;
  --paper:#11151d;
  --panel:#1a202c;
  --accent:#5b8bf0;
  --accent-dark:#89aef7;
  --accent-soft:#1e2a45;
  --good:#3fbf85;
  --good-soft:#123527;
  --warn:#e0a942;
  --warn-soft:#3a2c10;
  --bad:#f0655f;
  --bad-soft:#3a1616;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);
}
*{box-sizing:border-box;}
html{transition:background-color .15s ease;}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,"Segoe UI",Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;}
a{color:var(--accent);}
.wrap{max-width:960px;margin:0 auto;padding:28px 20px 60px;}

.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:50%;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-size:16px;
  color:var(--ink-soft);flex-shrink:0;}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent);}

header.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap;}
header.top .brand{font-weight:800;font-size:20px;letter-spacing:.2px;}
header.top .brand small{display:block;font-weight:400;font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.brand-link{text-decoration:none;color:inherit;display:inline-block;border-radius:8px;}
.brand-link:hover{opacity:.85;}
.brand-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px 24px;margin-bottom:20px;}
.card h2{margin:0 0 6px;font-size:16px;}
.card p.sub{margin:0 0 18px;font-size:13px;color:var(--ink-soft);line-height:1.5;}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:640px){.grid-2{grid-template-columns:1fr;}}

.field{margin-bottom:16px;}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-bottom:6px;letter-spacing:.2px;text-transform:uppercase;}
.field input[type=file]{display:block;width:100%;padding:10px 12px;border:1px dashed var(--line);border-radius:9px;background:#fbfcfe;font-size:13px;}
.field input[type=number]{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;font-family:inherit;}
.hint{font-size:12px;color:var(--ink-soft);margin-top:5px;}

.mode-toggle{display:flex;gap:8px;margin-bottom:20px;}
.mode-toggle label{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:700;
  color:var(--ink-soft);transition:all .12s ease;}
.mode-toggle input{display:none;}
.mode-toggle input:checked + span{color:var(--accent-dark);}
.mode-toggle label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark);}

.btn{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);
  color:var(--ink);padding:11px 20px;font-size:13.5px;font-weight:700;border-radius:999px;cursor:pointer;
  box-shadow:var(--shadow);text-decoration:none;}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn.primary:hover{background:var(--accent-dark);}
.btn.ghost{background:transparent;box-shadow:none;}
.btn.danger{color:var(--bad);}
.btn.block{width:100%;justify-content:center;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

.alert{border-radius:10px;padding:13px 16px;font-size:13px;line-height:1.55;margin-bottom:14px;}
.alert.err{background:var(--bad-soft);color:#8a2323;}
.alert.warn{background:var(--warn-soft);color:#835109;}
.alert.ok{background:var(--good-soft);color:#0f5c3b;}
.alert ul{margin:6px 0 0;padding-left:18px;}

.stat-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;}
.stat-pill{background:var(--accent-soft);color:var(--accent-dark);font-size:12.5px;font-weight:700;
  padding:7px 14px;border-radius:999px;}
.pill-good{background:var(--good-soft);color:var(--good);}
.pill-warn{background:var(--warn-soft);color:var(--warn);}
.pill-bad{background:var(--bad-soft);color:var(--bad);}
.pill-accent{background:var(--accent-soft);color:var(--accent-dark);}

.sheet-list{display:flex;flex-direction:column;gap:12px;}
.sheet-row{display:flex;align-items:center;gap:16px;
  padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;}
.sheet-row .sheet-thumb{width:84px;height:84px;object-fit:contain;background:#fff;
  border:1px solid var(--line);border-radius:8px;flex-shrink:0;display:block;}
.sheet-row .sheet-info{flex:1 1 auto;min-width:0;}
.sheet-row .name{font-weight:700;font-size:13.5px;}
.sheet-row .meta{font-size:12px;color:var(--ink-soft);margin-top:2px;}
.sheet-row .sheet-actions{display:flex;gap:8px;flex-shrink:0;}
@media (max-width:560px){
  .sheet-row{flex-wrap:wrap;}
  .sheet-row .sheet-actions{width:100%;justify-content:stretch;}
  .sheet-row .sheet-actions .btn{flex:1;justify-content:center;}
}

footer.note{font-size:12px;color:var(--ink-soft);text-align:center;margin-top:30px;line-height:1.6;}
