:root{--bg:#f6f7f9;--card:#fff;--ink:#16202a;--mut:#5b6773;--line:#e2e6ea;--acc:#0b6bcb;--acc2:#0a58a8;--ok:#117a45;--warn:#a15c00;--bad:#b3261e;--r:10px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}main.wrap{padding-top:20px;padding-bottom:40px;min-height:60vh}
a{color:var(--acc)}a:hover{color:var(--acc2)}:focus-visible{outline:3px solid #7fb4f0;outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:56px}
.brand{font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none}.brand small{font-weight:500;color:var(--mut);font-size:.75rem;margin-left:4px}
.nav{display:flex;gap:4px 14px;flex-wrap:wrap;align-items:center}.nav a{text-decoration:none;color:var(--ink);padding:6px 2px}.nav a:hover{color:var(--acc)}
.surface-admin .top{border-top:3px solid #7a3dd1}.surface-affiliate .top{border-top:3px solid #117a45}.surface-store .top{border-top:3px solid var(--acc)}
.foot{border-top:1px solid var(--line);padding:18px 0;color:var(--mut);font-size:.9rem;background:var(--card)}
h1{font-size:1.6rem;margin:.2em 0 .6em}h2{font-size:1.2rem;margin:1.4em 0 .5em}h3{font-size:1rem;margin:1em 0 .4em}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px}.stat .v{font-size:1.5rem;font-weight:700}.stat .l{color:var(--mut);font-size:.85rem}.stat.hl{border-color:var(--acc)}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:8px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{background:var(--acc2);color:#fff}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn-ghost:hover{background:#f0f2f4;color:var(--ink)}.btn-bad{background:var(--bad)}.btn-sm{padding:6px 10px;font-size:.9rem}
button.link{background:none;border:0;color:var(--ink);font:inherit;cursor:pointer;padding:6px 2px}button.link:hover{color:var(--acc)}form.inline{display:inline}
label{display:block;font-weight:600;margin:12px 0 4px;font-size:.92rem}input,select,textarea{width:100%;font:inherit;padding:9px 10px;border:1px solid #c5ccd3;border-radius:8px;background:#fff;color:var(--ink)}
input[type=checkbox]{width:auto}.chk{font-weight:400;display:flex;gap:8px;align-items:flex-start}textarea{min-height:90px}
.err-t{color:var(--bad);font-size:.85rem;margin-top:3px}.hint{color:var(--mut);font-size:.85rem}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>*{flex:1 1 140px}
.alert{padding:11px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}.a-ok{background:#e8f6ee;border-color:#b6e2c8;color:#0c5a33}.a-err{background:#fdecea;border-color:#f3b8b3;color:#8a1c14}.a-warn{background:#fff4e0;border-color:#f0d29a;color:#7a4a00}
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78rem;font-weight:600;white-space:nowrap}.b-green{background:#e0f4e8;color:#0c5a33}.b-amber{background:#fff0d1;color:#7a4a00}.b-red{background:#fde3e0;color:#8a1c14}.b-blue{background:#e1eefc;color:#0a4a94}.b-gray{background:#eceff1;color:#44505b}
.tbl{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:16px}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f1f3f5;font-weight:600;white-space:nowrap}tr:last-child td{border-bottom:0}td.n,th.n{text-align:right;white-space:nowrap}
.pager{display:flex;gap:6px;margin:10px 0}.pager a,.pager .cur{padding:5px 11px;border:1px solid var(--line);border-radius:6px;text-decoration:none;background:#fff}.pager .cur{background:var(--acc);color:#fff;border-color:var(--acc)}
.pgrid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.pcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}.pcard img,.ph{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e9edf1;display:block}.pcard .b{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}.price{font-size:1.25rem;font-weight:700}
.pdet{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.pdet img{width:100%;border-radius:var(--r);background:#e9edf1}.thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.thumbs img{width:72px;height:72px;object-fit:cover}
.center{text-align:center;padding:40px 0}.copy{display:flex;gap:8px}.copy input{flex:1}.chart{width:100%;height:170px}.chart .c1{fill:#9db5cf}.chart .c2{fill:var(--acc)}.ax{font-size:11px;fill:var(--mut)}.legend{font-size:.85rem;color:var(--mut)}
.cookie{position:fixed;bottom:0;left:0;right:0;background:#16202a;color:#fff;padding:12px 0;z-index:20}.cookie .wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:space-between}.cookie p{margin:0;flex:1 1 300px}.cookie a{color:#9fd0ff}
.testbox{border:2px dashed var(--bad);padding:16px;border-radius:var(--r);background:#fff7f6}.kv{display:grid;grid-template-columns:150px 1fr;gap:4px 12px}.kv dt{color:var(--mut)}.kv dd{margin:0}
@media(max-width:640px){.kv{grid-template-columns:1fr}th,td{padding:8px}.bar{padding-top:6px;padding-bottom:6px}}
