:root{color-scheme:light dark;--accent:#6d5efc;--accent2:#22d3ee;--r:14px;--r-sm:9px;--ease:cubic-bezier(.2,.7,.2,1);
--bg:#fafafc;--bg2:#f1f2f7;--fg:#12141c;--muted:#5f6675;--line:#e3e5ee;--card:#fff;--glass:rgba(255,255,255,.72);--shadow:0 1px 2px rgba(16,20,40,.05),0 12px 32px -12px rgba(16,20,40,.14);
--ok:#0a7d4f;--okbg:#e4f6ed;--warn:#9a5b00;--warnbg:#fff3dc;--err:#b42318;--errbg:#fdeceb;--info:#1d4ed8;--infobg:#e8efff;
--font:ui-sans-serif,"Inter","SF Pro Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
:root[data-theme=dark]{--bg:#0b0d14;--bg2:#11141d;--fg:#eef0f6;--muted:#9aa2b5;--line:#232838;--card:#141824;--glass:rgba(20,24,36,.7);--shadow:0 1px 2px rgba(0,0,0,.4),0 18px 40px -16px rgba(0,0,0,.7);
--ok:#5fdca2;--okbg:rgba(46,160,110,.16);--warn:#f5c26b;--warnbg:rgba(220,160,50,.14);--err:#ff8f84;--errbg:rgba(220,70,60,.16);--info:#8fb0ff;--infobg:rgba(80,120,255,.16)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0d14;--bg2:#11141d;--fg:#eef0f6;--muted:#9aa2b5;--line:#232838;--card:#141824;--glass:rgba(20,24,36,.7);--shadow:0 1px 2px rgba(0,0,0,.4),0 18px 40px -16px rgba(0,0,0,.7);
--ok:#5fdca2;--okbg:rgba(46,160,110,.16);--warn:#f5c26b;--warnbg:rgba(220,160,50,.14);--err:#ff8f84;--errbg:rgba(220,70,60,.16);--info:#8fb0ff;--infobg:rgba(80,120,255,.16)}}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.65 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.12;letter-spacing:-.025em;margin:0 0 .5em;font-weight:720}
p{margin:0 0 1em}.muted{color:var(--muted)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 70%,#fff);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:8px;z-index:100}.skip:focus{left:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.72rem 1.25rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--fg);font:600 .95rem var(--font);cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s;text-decoration:none!important}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0)}
.btn-primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--accent2)));color:#fff;border-color:transparent;box-shadow:0 8px 24px -8px color-mix(in srgb,var(--accent) 70%,transparent)}
.btn-ghost{background:transparent}.btn-sm{padding:.45rem .9rem;font-size:.85rem}.btn-danger{color:var(--err);border-color:color-mix(in srgb,var(--err) 40%,var(--line))}.btn-block{width:100%}
.btn[disabled]{opacity:.55;pointer-events:none}
label{display:block;font-weight:600;font-size:.88rem;margin:1rem 0 .35rem}.hint{font-size:.8rem;color:var(--muted);margin-top:.25rem}
input,select,textarea{width:100%;padding:.7rem .85rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--fg);font:inherit;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
textarea{min-height:120px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}input[type=file]{padding:.5rem}
.check{display:flex;gap:.6rem;align-items:flex-start;font-weight:500;margin:.8rem 0}.check input{margin-top:.3rem}
.row{display:grid;gap:1rem}@media(min-width:640px){.row-2{grid-template-columns:1fr 1fr}.row-3{grid-template-columns:repeat(3,1fr)}}
.flash{padding:.8rem 1rem;border-radius:var(--r-sm);margin:0 0 1rem;font-weight:500;border:1px solid transparent}
.flash.ok{background:var(--okbg);color:var(--ok)}.flash.err{background:var(--errbg);color:var(--err)}.flash.info{background:var(--infobg);color:var(--info)}
.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:650;background:var(--bg2);color:var(--muted);white-space:nowrap}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.warn{background:var(--warnbg);color:var(--warn)}.badge.err{background:var(--errbg);color:var(--err)}.badge.info{background:var(--infobg);color:var(--info)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;box-shadow:var(--shadow)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--bg2);white-space:nowrap}tr:last-child td{border-bottom:0}tbody tr:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.empty{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.pager{display:flex;gap:.4rem;justify-content:center;margin:1.2rem 0;flex-wrap:wrap}
.pager a,.pager span{padding:.4rem .8rem;border:1px solid var(--line);border-radius:8px;font-size:.85rem;color:var(--fg)}.pager .on{background:var(--accent);color:#fff;border-color:var(--accent)}
.prose{max-width:70ch}.prose h2{margin-top:1.8em}.prose h3{margin-top:1.4em}.prose ul,.prose ol{padding-left:1.3rem}.prose li{margin:.25em 0}
.prose pre{background:var(--bg2);padding:1rem;border-radius:var(--r-sm);overflow-x:auto}.prose code{font-family:var(--mono);font-size:.9em;background:var(--bg2);padding:.1em .35em;border-radius:5px}.prose pre code{background:none;padding:0}
.prose blockquote{border-left:3px solid var(--accent);margin:1.2em 0;padding:.2em 1em;color:var(--muted)}.prose img{border-radius:var(--r);margin:1.2em 0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
