:root{--bg:#f4f5f2;--sf:#fff;--ink:#16202b;--mut:#5b6875;--line:#dde1dd;--pri:#2a4a9f;--pri2:#e8eefc;--onp:#fff;--P:#1c8658;--L:#b87d00;--A:#bf3d36;--r:10px;color-scheme:light}
@media(prefers-color-scheme:dark){:root{--bg:#11151b;--sf:#1a2029;--ink:#e7ebef;--mut:#9aa6b2;--line:#2a323d;--pri:#8aa5ff;--pri2:#222c47;--onp:#0d1528;--P:#46c68b;--L:#e2b23c;--A:#ef7d76;color-scheme:dark}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding-bottom:72px}
h1{font-size:1.5rem;line-height:1.25;margin:0 0 .25rem}h2{font-size:1.15rem;margin:0}h3{font-size:1.05rem;margin:0 0 .25rem}
p{margin:.25rem 0}a{color:var(--pri)}small,.mut{color:var(--mut)}small{display:block;font-size:.82rem}.sm{font-size:.9rem}
:focus-visible{outline:3px solid var(--pri);outline-offset:2px}
button,input,select{font:inherit;color:inherit}
input,select{width:100%;padding:.65rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--sf);min-height:44px}
label{display:block;font-size:.9rem;font-weight:600;margin:.8rem 0 0}label input,label select{margin-top:.3rem;font-weight:400}
label.chk{display:flex;gap:.6rem;align-items:center;font-weight:400}label.chk input{width:20px;height:20px;min-height:0;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--sf);cursor:pointer;font-weight:600;text-decoration:none}
.btn.p{background:var(--pri);color:var(--onp);border-color:var(--pri)}.btn.d{color:var(--A)}.btn.g{border-color:transparent;background:transparent;color:var(--pri)}
.btn:disabled{opacity:.55;cursor:wait}.btn.sm{min-height:36px;padding:.3rem .7rem;font-size:.88rem}
form .btn.p{width:100%;margin-top:1.1rem}form.inline{display:flex;gap:.5rem}form.inline .btn.p{width:auto;margin:0}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:var(--sf);border-bottom:1px solid var(--line)}
.brand{font-weight:800;text-decoration:none;color:var(--ink);font-size:1.1rem}
nav a{padding:.5rem .9rem;border-radius:8px;text-decoration:none;color:var(--mut);font-weight:600}nav a.on{background:var(--pri2);color:var(--pri)}
@media(max-width:720px){nav{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--sf);border-top:1px solid var(--line);padding:.35rem;z-index:6}nav a{flex:1;text-align:center;padding:.7rem}}
@media(min-width:721px){body{padding-bottom:24px}}
main{max-width:920px;margin:0 auto;padding:1.1rem 1rem}
.hd,.bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
.grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.cc{display:block;background:var(--sf);border:1px solid var(--line);border-left:7px solid hsl(var(--h) 55% 46%);border-radius:var(--r);padding:.9rem 1rem;text-decoration:none;color:inherit;min-height:112px}
.cc:hover{border-color:hsl(var(--h) 55% 46%)}.cc.arch{opacity:.6}.cc p{color:var(--mut);font-size:.92rem}
.chip{display:inline-block;padding:.1rem .6rem;border-radius:99px;font-size:.8rem;font-weight:700;background:var(--pri2);color:var(--pri)}
.chip.P{background:color-mix(in srgb,var(--P) 16%,transparent);color:var(--P)}.chip.L{background:color-mix(in srgb,var(--L) 18%,transparent);color:var(--L)}.chip.A,.chip.bad{background:color-mix(in srgb,var(--A) 16%,transparent);color:var(--A)}
.card{background:var(--sf);border:1px solid var(--line);border-radius:var(--r);padding:1rem;margin-bottom:1rem}
.auth{max-width:420px;margin:0 auto;padding:1.5rem 1rem}.auth .card{padding:1.3rem}
.seg{display:flex;gap:.5rem;margin-top:.3rem}.seg label{flex:1;margin:0}.seg input{position:absolute;opacity:0;width:0}
.seg span{display:block;text-align:center;padding:.65rem;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:600}
.seg input:checked+span{background:var(--pri2);border-color:var(--pri);color:var(--pri)}.seg input:focus-visible+span{outline:3px solid var(--pri)}
.or{display:flex;align-items:center;gap:.7rem;color:var(--mut);font-size:.85rem;margin:1rem 0}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}
#g{display:flex;justify-content:center;min-height:44px}
.ch{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;background:var(--sf);border:1px solid var(--line);border-top:7px solid hsl(var(--h) 55% 46%);border-radius:var(--r);padding:1rem;margin:.5rem 0 1rem}
.code{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.code b{font:700 1.5rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;padding:.4rem .7rem;border:1px dashed var(--line);border-radius:8px}
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin-bottom:1rem;overflow-x:auto}
.tabs a{padding:.7rem 1rem;text-decoration:none;color:var(--mut);font-weight:600;border-bottom:3px solid transparent;white-space:nowrap}.tabs a.on{color:var(--pri);border-color:var(--pri)}
.list{background:var(--sf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem 1rem;border-bottom:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left;flex-wrap:wrap}
.row:last-child{border-bottom:0}button.row{cursor:pointer}button.row:hover{background:var(--pri2)}.row b{display:block}
.st{display:flex;gap:.3rem}.st button{min-height:40px;padding:.3rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--sf);cursor:pointer;font-size:.88rem;font-weight:600}
.st button.on.P{background:var(--P);color:#fff;border-color:var(--P)}.st button.on.L{background:var(--L);color:#fff;border-color:var(--L)}.st button.on.A{background:var(--A);color:#fff;border-color:var(--A)}
.tools{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 1rem}
.pctbox{text-align:center;padding:1.3rem;border-radius:var(--r);background:color-mix(in srgb,var(--P) 12%,var(--sf));border:1px solid var(--line);margin-bottom:1rem}
.pctbox.low{background:color-mix(in srgb,var(--A) 12%,var(--sf))}.big{font-size:2.6rem;font-weight:800;line-height:1.1}
.empty{text-align:center;padding:2.2rem 1rem;color:var(--mut)}.empty b{display:block;color:var(--ink);font-size:1.05rem;margin-bottom:.2rem}
.warn{background:color-mix(in srgb,var(--L) 16%,var(--sf));padding:.6rem .8rem;border-radius:8px;font-size:.92rem}
.big-code{font:800 2.4rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2em;text-align:center;padding:1rem}
.back{display:inline-block;margin-bottom:.3rem;font-weight:600;text-decoration:none}
.ov{position:fixed;inset:0;background:rgba(10,15,25,.55);display:flex;align-items:flex-end;justify-content:center;z-index:20}
.md{background:var(--sf);width:100%;max-width:480px;max-height:90vh;overflow:auto;border-radius:16px 16px 0 0;padding:1.2rem}
@media(min-width:721px){.ov{align-items:center}.md{border-radius:16px}}
.md.wide{max-width:760px}
#toast{position:fixed;left:50%;bottom:88px;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:.7rem 1.1rem;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;z-index:30;max-width:90%;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}#toast.bad{background:var(--A);color:#fff}
.sk{height:112px;border-radius:var(--r);background:linear-gradient(90deg,var(--line),var(--bg),var(--line));background-size:200% 100%;animation:sk 1.2s infinite}@keyframes sk{to{background-position:-200% 0}}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--mut);font-weight:600}.scroll{overflow-x:auto}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
