:root{--bg:#f3f7f8;--card:#fff;--ink:#14232b;--mut:#5a6d75;--pri:#0e7c8a;--pri2:#0a626d;--accent:#22b8c8;--brand:#070b0f;--ok:#409444;--warn:#b26a00;--bad:#b3261e;--line:#d6e2e5}
@media (prefers-color-scheme:dark){:root{--bg:#0d141a;--card:#16212a;--ink:#e6eef1;--mut:#93a6af;--pri:#22b8c8;--pri2:#1a98a6;--accent:#22b8c8;--line:#2a3b46}button,.btn{color:#04161a}nav a.on{color:#04161a}}
*{box-sizing:border-box}
body{margin:0;font:16px/1.45 system-ui,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}
header{background:var(--brand);color:#fff;display:flex;align-items:center;gap:1rem;padding:.7rem 1.25rem;position:sticky;top:0;z-index:5;border-bottom:4px solid var(--accent);min-height:104px}
header img.logo{height:84px;width:auto;border-radius:6px}
.login img.logo{display:block;margin:0 auto 1rem;max-width:100%;height:auto;max-height:170px;border-radius:8px}
.tagline{font-size:.8rem;opacity:.85}
header h1{font-size:1.35rem;margin:0;flex:1;letter-spacing:.01em}
header select,header button{font-size:.9rem}
nav{display:flex;flex-wrap:wrap;gap:.35rem;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}
nav a{padding:.4rem .7rem;border-radius:999px;text-decoration:none;color:var(--ink);border:1px solid var(--line);font-size:.92rem}
nav a.on{background:var(--pri);color:#fff;border-color:var(--pri)}
nav a:hover{border-color:var(--accent)}
nav a.lock{color:var(--mut);border-style:dashed}
main{padding:1rem;max-width:1100px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
h2{margin:.2rem 0 .8rem;font-size:1.3rem}h3{margin:.2rem 0 .6rem;font-size:1.05rem}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mut);font-weight:600}
tr.click{cursor:pointer}tr.click:hover{background:rgba(11,93,122,.07)}
.scroll{overflow-x:auto}
button,.btn{background:var(--pri);color:#fff;border:0;border-radius:8px;padding:.55rem .9rem;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block}
button:hover{background:var(--pri2)}button.sec{background:transparent;color:var(--pri);border:1px solid var(--pri)}button.bad{background:var(--bad)}
button:disabled{opacity:.5}
label{display:block;margin:.6rem 0 .2rem;font-weight:600;font-size:.9rem}
input,select,textarea{width:100%;padding:.55rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit}
input[type=checkbox]{width:auto;transform:scale(1.4);margin-right:.5rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.row>*{flex:0 0 auto}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}
.tag{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:var(--line)}
.tag.ok{background:#dcefdd;color:#1d4a20}.tag.warn{background:#ffe9c2;color:#6b3f00}.tag.bad{background:#ffd9d6;color:#7a1410}
.mut{color:var(--mut)}.err{color:var(--bad)}
.check{display:flex;align-items:center;padding:.7rem;border:1px solid var(--line);border-radius:8px;margin:.4rem 0}
.check.nok{border-color:var(--bad);background:rgba(179,38,30,.07)}
dialog{border:0;border-radius:12px;padding:1.2rem;max-width:560px;width:calc(100% - 1.5rem);background:var(--card);color:var(--ink)}
dialog::backdrop{background:rgba(0,0,0,.45)}
#toast{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);background:#222;color:#fff;padding:.6rem 1rem;border-radius:8px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:20}
#toast.on{opacity:1}
.login{max-width:380px;margin:12vh auto}
.disc{font-size:.8rem;color:var(--mut);margin-top:1rem}
@media (max-width:600px){header{min-height:84px;padding:.5rem .75rem;gap:.6rem;flex-wrap:wrap}header img.logo{height:60px}header h1{font-size:1.05rem}main{padding:.6rem}th,td{padding:.4rem .3rem}}
