/* ===== Fonts (self-hosted) ===== */
@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:700;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Orbitron;font-weight:400;font-display:swap;src:url(/assets/fonts/orbitron-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Orbitron;font-weight:700;font-display:swap;src:url(/assets/fonts/orbitron-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Exo 2";font-weight:400;font-display:swap;src:url(/assets/fonts/exo-2-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Exo 2";font-weight:600;font-display:swap;src:url(/assets/fonts/exo-2-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Code";font-weight:400;font-display:swap;src:url(/assets/fonts/fira-code-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Fira Code";font-weight:700;font-display:swap;src:url(/assets/fonts/fira-code-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-weight:400;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-weight:600;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:VT323;font-weight:400;font-display:swap;src:url(/assets/fonts/vt323-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Space Grotesk";font-weight:500;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Space Grotesk";font-weight:700;font-display:swap;src:url(/assets/fonts/space-grotesk-latin-700-normal.woff2) format("woff2")}

/* ===== Themes: every look is just a set of variables ===== */
:root{--ok:#3fb950;--err:#f85149;--fallback-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Hebrew",Arial,sans-serif;--fallback-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* 1. Circuit: green PCB, JetBrains Mono + Inter */
:root,:root[data-theme=circuit]{color-scheme:dark;
  --bg:#020605;--fg:#d9f3ea;--muted:#74a897;--card:#050e0b;--line:#0f3a2c;--code:#071510;
  --accent:#2fe0a0;--accent2:#22c4c0;--on-accent:#02120c;--brand:#7fdcb8;
  --head:"JetBrains Mono",var(--fallback-mono);--hw:700;--body:Inter,var(--fallback-sans);--mono:"JetBrains Mono",var(--fallback-mono);--fs:16.5px;
  --page-bg:linear-gradient(180deg,rgba(2,6,5,.80),rgba(2,6,5,.90) 60%,rgba(2,6,5,.95)),url(/assets/theme-circuit.jpg) center/cover no-repeat;
  --banner-bg:linear-gradient(90deg,rgba(2,6,5,.90) 0%,rgba(2,6,5,.55) 42%,rgba(2,6,5,.15) 100%),linear-gradient(0deg,#020605 0%,transparent 30%),url(/assets/theme-circuit.jpg) center 40%/cover no-repeat;
  --title-grad:linear-gradient(90deg,#9fe6c2,#5fd0c4);--sub:#a9d6c5;
  --t-bg:rgba(2,8,6,.88);--t-line:#0f3a2c;--t-bar:#06130f;--t-dim:#5f9d8a;--t-fg:#a9e3cf;--t-prompt:#2fe0a0;--t-cmd:#5fd0c4}
/* 2. Binary: navy code rain, IBM Plex */
:root[data-theme=binary]{color-scheme:dark;
  --bg:#030a16;--fg:#dbe8f7;--muted:#7f9bbd;--card:#071326;--line:#16355e;--code:#0a1b33;
  --accent:#4aa3ff;--accent2:#7cc4ff;--on-accent:#031120;--brand:#8cc4ff;
  --head:"IBM Plex Mono",var(--fallback-mono);--hw:700;--body:"IBM Plex Sans",var(--fallback-sans);--mono:"IBM Plex Mono",var(--fallback-mono);--fs:16.5px;
  --page-bg:linear-gradient(180deg,rgba(3,10,22,.74),rgba(3,10,22,.86) 60%,rgba(3,10,22,.93)),url(/assets/theme-binary.jpg) center/cover no-repeat;
  --banner-bg:linear-gradient(90deg,rgba(3,10,22,.90) 0%,rgba(3,10,22,.50) 45%,rgba(3,10,22,.10) 100%),linear-gradient(0deg,#030a16 0%,transparent 30%),url(/assets/theme-binary.jpg) center 40%/cover no-repeat;
  --title-grad:linear-gradient(90deg,#b6dbff,#6aa8f0);--sub:#a9c4e4;
  --t-bg:rgba(3,10,22,.90);--t-line:#16355e;--t-bar:#071a33;--t-dim:#6f8fb5;--t-fg:#b5d3f2;--t-prompt:#4aa3ff;--t-cmd:#7cc4ff}
/* 3. Processor: electric blue CPU, Orbitron + Exo 2 */
:root[data-theme=processor]{color-scheme:dark;
  --bg:#02030d;--fg:#e0e8ff;--muted:#8a9bd0;--card:#060a1f;--line:#1a2a6b;--code:#0a1030;
  --accent:#3fd0ff;--accent2:#5b6bff;--on-accent:#020618;--brand:#7fd9ff;
  --head:Orbitron,var(--fallback-sans);--hw:700;--body:"Exo 2",var(--fallback-sans);--mono:"Fira Code",var(--fallback-mono);--fs:17px;
  --page-bg:linear-gradient(180deg,rgba(2,3,13,.80),rgba(2,3,13,.90) 60%,rgba(2,3,13,.95)),url(/assets/theme-processor.jpg) center/cover no-repeat;
  --banner-bg:linear-gradient(90deg,rgba(2,3,13,.92) 0%,rgba(2,3,13,.58) 45%,rgba(2,3,13,.12) 100%),linear-gradient(0deg,#02030d 0%,transparent 30%),url(/assets/theme-processor.jpg) center 45%/cover no-repeat;
  --title-grad:linear-gradient(90deg,#c4ecff,#8fa2ff);--sub:#b3c2f0;
  --t-bg:rgba(3,5,20,.90);--t-line:#1a2a6b;--t-bar:#080e2c;--t-dim:#7283c4;--t-fg:#c2d3ff;--t-prompt:#3fd0ff;--t-cmd:#8fa2ff}
/* 4. Paper: light, serif, no photo */
:root[data-theme=paper]{color-scheme:light;
  --bg:#f6f4ee;--fg:#1d2430;--muted:#667085;--card:#ffffff;--line:#ddd8cb;--code:#f0ede4;--ok:#1a7f37;--err:#cf222e;
  --accent:#0b5fd6;--accent2:#7a3fd1;--on-accent:#ffffff;--brand:#1d2430;
  --head:"Source Serif 4",Georgia,serif;--hw:600;--body:"Source Serif 4",Georgia,serif;--mono:"JetBrains Mono",var(--fallback-mono);--fs:18px;
  --page-bg:linear-gradient(#f6f4ee,#f6f4ee);
  --banner-bg:linear-gradient(120deg,#e8eef9 0%,#f7efe0 100%);
  --title-grad:linear-gradient(90deg,#1f3a5f,#2b6cb0);--sub:#4b5a70;
  --t-bg:#151b26;--t-line:#2a3345;--t-bar:#1d2433;--t-dim:#8b97ad;--t-fg:#d6deeb;--t-prompt:#7ee787;--t-cmd:#79c0ff}

/* 5. Amber: retro CRT terminal, VT323 + IBM Plex Mono, no photo */
:root[data-theme=amber]{color-scheme:dark;
  --bg:#0a0600;--fg:#ffb000;--muted:#b27a00;--card:#120b00;--line:#4a3000;--code:#160e00;--ok:#9be564;--err:#ff7a5c;
  --accent:#ffd24a;--accent2:#ff8c00;--on-accent:#1a0f00;--brand:#ffb000;
  --head:VT323,var(--fallback-mono);--hw:400;--body:"IBM Plex Mono",var(--fallback-mono);--mono:"IBM Plex Mono",var(--fallback-mono);--fs:15.5px;
  --page-bg:radial-gradient(ellipse at 50% 30%,rgba(255,176,0,.09) 0%,transparent 60%),radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.65) 100%);
  --banner-bg:radial-gradient(ellipse 60% 140% at 82% 50%,rgba(255,176,0,.22),transparent 70%),repeating-linear-gradient(0deg,rgba(255,176,0,.06) 0 1px,transparent 1px 4px);
  --title-grad:linear-gradient(90deg,#ffd24a,#ff9a1f);--sub:#d9980a;
  --t-bg:rgba(10,6,0,.92);--t-line:#4a3000;--t-bar:#140c00;--t-dim:#8a6000;--t-fg:#ffb000;--t-prompt:#ffd24a;--t-cmd:#ff9a1f}

/* 6. Sky: bright blue vector circuit, light, Space Grotesk + Inter */
:root[data-theme=sky]{color-scheme:light;
  --bg:#eaf6fd;--fg:#0b2a3d;--muted:#46667c;--card:#ffffff;--line:#bddff2;--code:#e2f1fa;--ok:#1a7f37;--err:#cf222e;
  --accent:#0a6fc2;--accent2:#14a8e0;--on-accent:#ffffff;--brand:#0a4f86;
  --head:"Space Grotesk",var(--fallback-sans);--hw:700;--body:Inter,var(--fallback-sans);--mono:"Fira Code",var(--fallback-mono);--fs:16.5px;
  --page-bg:linear-gradient(180deg,rgba(234,246,253,.88),rgba(234,246,253,.95) 55%,rgba(234,246,253,.97)),url(/assets/theme-sky.jpg) center/cover no-repeat;
  --banner-bg:linear-gradient(90deg,rgba(4,38,74,.74) 0%,rgba(4,38,74,.42) 45%,rgba(4,38,74,.04) 100%),linear-gradient(0deg,#eaf6fd 0%,transparent 22%),url(/assets/theme-sky.jpg) center 45%/cover no-repeat;
  --title-grad:linear-gradient(90deg,#ffffff,#cfeeff);--sub:#e6f6ff;
  --t-bg:#0b2236;--t-line:#17476b;--t-bar:#0f2d47;--t-dim:#7fa6c4;--t-fg:#cfe6f7;--t-prompt:#4fd1ff;--t-cmd:#8fd0ff}

/* ===== Base ===== */
*{box-sizing:border-box}
body{margin:0;position:relative;min-height:100vh;background:var(--bg);color:var(--fg);font:var(--fs)/1.7 var(--body)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--page-bg),var(--bg)}
h1,h2,h3,h4{font-family:var(--head);font-weight:var(--hw);letter-spacing:-.01em;line-height:1.3}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
code,pre,kbd,.form textarea,.hero pre,.hero .tb,.copy{font-family:var(--mono)}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.muted,.meta{color:var(--muted);font-size:.88rem}
.lead{color:var(--muted);margin-top:0}

/* ===== Top bar + theme switcher ===== */
.top{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;gap:14px;height:72px}
.brand{font-family:var(--head);font-weight:var(--hw);font-size:1.45rem;color:var(--brand)}.brand small{color:var(--muted);font-weight:400}
.brand:hover{text-decoration:none}
.search{flex:1}.search input{width:100%;max-width:380px;padding:10px 14px;font:inherit;font-size:1rem;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg) 70%,transparent);color:var(--fg)}
.switcher{position:relative}
#themeBtn{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;background:none;border:1px solid var(--line);color:var(--fg);border-radius:8px;cursor:pointer;font:inherit;font-size:.9rem}
#themeBtn:hover{border-color:var(--accent)}
#themeMenu{position:absolute;right:0;top:calc(100% + 10px);min-width:250px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 14px 40px rgba(0,0,0,.45)}
#themeMenu[hidden]{display:none}
#themeMenu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 10px;background:none;border:0;border-radius:8px;color:var(--fg);cursor:pointer;font-size:1.05rem}
#themeMenu button:hover,#themeMenu button:focus-visible{background:color-mix(in srgb,var(--accent) 14%,transparent);outline:0}
#themeMenu button[aria-checked=true]{background:color-mix(in srgb,var(--accent) 22%,transparent)}
#themeMenu .sw{width:26px;height:26px;border-radius:50%;flex:none;border:1px solid rgba(255,255,255,.25)}
#themeMenu small{display:block;font:.72rem var(--fallback-sans);color:var(--muted)}

/* ===== Banner ===== */
.banner{display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--banner-bg),var(--bg)}
.banner-in{width:100%}
.banner-home{min-height:340px}.banner-slim{min-height:130px}
.banner-title{margin:0;font-family:var(--head);font-weight:var(--hw);font-size:clamp(2.2rem,7vw,4.4rem);line-height:1.08;letter-spacing:-.02em;background:var(--title-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35))}
.banner-title.small{display:inline-block;font-size:clamp(1.8rem,5vw,2.6rem)}
.banner-title.small:hover{text-decoration:none}
.banner-sub{margin:14px 0 0;max-width:640px;color:var(--sub);font-size:clamp(1rem,2.4vw,1.25rem)}

/* ===== Layout ===== */
main{padding-top:34px}
main.with-side{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px}
.foot{color:var(--muted);font-size:.85rem;padding:40px 20px}

/* ===== Cards / lists ===== */
.card,.post,.main>.form,.main>.tbl{background:color-mix(in srgb,var(--card) 90%,transparent);border:1px solid var(--line);border-radius:10px;backdrop-filter:blur(4px)}
.card{padding:16px 20px;margin-bottom:16px;transition:border-color .15s,box-shadow .15s}
.card:hover{border-color:var(--accent);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 16%,transparent)}
.card h2{margin:0 0 4px;font-size:1.25rem}.card h2 a{color:var(--fg)}.card h2 a:hover{color:var(--accent);text-decoration:none}
.card p{margin:8px 0}
.page-title{margin-top:0}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{background:var(--code);border:1px solid var(--line);border-radius:999px;padding:1px 10px;font-size:.8rem;color:var(--muted)}
.tag:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}
aside h3{font:600 .8rem var(--fallback-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}
aside h3.gap{margin-top:26px}
ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:2px 0}
.newslist li{padding:7px 0;border-bottom:1px solid var(--line);line-height:1.35}.newslist li:last-child{border-bottom:0}
.newslist a{display:block;font-size:.88rem;color:var(--fg)}.newslist a:hover{color:var(--accent)}
.newslist .muted{font-size:.74rem}
.newsrow{padding:12px 18px;margin-bottom:10px}.newsrow h2{font-size:1.02rem;margin:0}
.pager{display:flex;justify-content:space-between;align-items:center;margin:24px 0}

/* ===== Post ===== */
.post{padding:22px 26px}
.post h1{margin:0 0 4px;font-size:2rem}
.prose{margin-top:20px;overflow-wrap:anywhere}
.prose h2{margin-top:2em;padding-bottom:.25em;border-bottom:1px solid var(--line)}
.prose img{max-width:100%}
.prose pre{position:relative;background:var(--code);border:1px solid var(--line);border-radius:8px;padding:0;overflow:auto}
.prose pre code{display:block;padding:14px 16px;background:none;font-size:.85rem;line-height:1.5}
.prose :not(pre)>code{background:var(--code);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.88em}
.prose blockquote{margin:1em 0;padding:.2em 1em;border-left:4px solid var(--line);color:var(--muted)}
.prose table{border-collapse:collapse}.prose th,.prose td{border:1px solid var(--line);padding:6px 12px}
.copy{position:absolute;top:6px;right:6px;font-size:.72rem;padding:2px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--muted);cursor:pointer;opacity:0;transition:.15s}
pre:hover .copy,.copy:focus{opacity:1}
.hljs{background:transparent!important}

/* ===== Home terminal ===== */
.hero{margin:0 0 26px;border:1px solid var(--t-line);border-radius:12px;overflow:hidden;background:var(--t-bg);box-shadow:0 8px 30px rgba(0,0,0,.25)}
.hero .tb{display:flex;align-items:center;gap:7px;padding:9px 14px;background:var(--t-bar);border-bottom:1px solid var(--t-line);font-size:.75rem;color:var(--t-dim)}
.hero .tb i{width:11px;height:11px;border-radius:50%;display:inline-block}
.hero .tb i:nth-child(1){background:#ff5f56}.hero .tb i:nth-child(2){background:#ffbd2e}.hero .tb i:nth-child(3){background:#27c93f}
.hero .tb span{margin-left:8px}
.hero pre{margin:0;padding:16px 18px;font-size:.9rem;line-height:1.7;white-space:pre-wrap;color:var(--t-fg)}
.hero .p{color:var(--t-prompt)}.hero .c{color:var(--t-cmd)}.hero .d{color:var(--t-dim)}
.hero .cur{display:inline-block;width:.55em;height:1.05em;background:var(--t-prompt);vertical-align:-.15em;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.hero .cur{animation:none}}

/* ===== Buttons / forms / admin ===== */
.btn{display:inline-block;background:linear-gradient(90deg,var(--accent),var(--accent2));color:var(--on-accent);border:1px solid transparent;padding:7px 16px;border-radius:8px;cursor:pointer;font:inherit;font-size:.92rem}
.btn:hover{text-decoration:none;filter:brightness(1.1)}
.btn.ghost{background:none;color:var(--accent);border-color:var(--accent)}.btn.small{padding:3px 12px;font-size:.82rem}
.link{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:0}.danger{color:var(--err)}
.main>.form{padding:22px 26px}
.form label{display:block;margin-bottom:14px;font-size:.9rem;font-weight:600}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);font:inherit;font-weight:400}
.form textarea{font:.9rem/1.5 var(--mono);resize:vertical}
.form label.inline{display:flex;align-items:center;gap:8px;margin:0}.form label.inline select{width:auto;margin:0}
.narrow{max-width:360px;margin:40px auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.main>.tbl{width:100%;border-collapse:separate;padding:10px 18px;margin:16px 0}
.tbl th,.tbl td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.right{text-align:right}
.inline{display:inline}
.badge{font-size:.75rem;padding:1px 8px;border-radius:999px;border:1px solid var(--line)}.badge.published{color:var(--ok);border-color:var(--ok)}
.err{color:var(--err)}.ok{color:var(--ok)}

@media(max-width:800px){main.with-side{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.search input{max-width:none}
  .banner-home{min-height:240px}.banner-slim{min-height:100px}.bar{height:60px;gap:8px}#themeBtn span{display:none}#themeMenu{right:-8px}}

/* ===== Amber CRT effects & VT323 size compensation (VT323 runs small) ===== */
:root[data-theme=amber] body{text-shadow:0 0 5px rgba(255,176,0,.30)}
:root[data-theme=amber] body::after{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.20) 0 1px,transparent 1px 3px)}
:root[data-theme=amber] .banner-title{text-shadow:none;font-size:clamp(3rem,10vw,6.4rem);letter-spacing:.01em}
:root[data-theme=amber] .banner-title.small{font-size:clamp(2.4rem,7vw,3.4rem)}
:root[data-theme=amber] .brand{font-size:2.1rem;line-height:1}
:root[data-theme=amber] .post h1{font-size:3rem;line-height:1.05}
:root[data-theme=amber] .card h2{font-size:1.9rem;line-height:1.1}
:root[data-theme=amber] .prose h2{font-size:2.1rem}
:root[data-theme=amber] .prose h3{font-size:1.7rem}
:root[data-theme=amber] .page-title{font-size:2.6rem}
:root[data-theme=amber] .newsrow h2{font-size:1.5rem}
:root[data-theme=amber] .card,:root[data-theme=amber] .post,:root[data-theme=amber] .top{border-radius:2px}
:root[data-theme=amber] .card:hover{box-shadow:0 0 16px rgba(255,176,0,.25)}
:root[data-theme=amber] .btn{border-radius:2px;text-shadow:none}
:root[data-theme=amber] .tag{border-radius:2px}
:root[data-theme=amber] .search input{border-radius:2px}
:root[data-theme=amber] ::selection{background:#ffb000;color:#0a0600;text-shadow:none}
/* amber syntax colors (overrides the blue/white GitHub palette) */
:root[data-theme=amber] .hljs{color:#ffb000}
:root[data-theme=amber] .hljs-keyword,:root[data-theme=amber] .hljs-built_in,:root[data-theme=amber] .hljs-selector-tag,:root[data-theme=amber] .hljs-literal{color:#ffd966}
:root[data-theme=amber] .hljs-string,:root[data-theme=amber] .hljs-attr,:root[data-theme=amber] .hljs-regexp{color:#ff9a1f}
:root[data-theme=amber] .hljs-number,:root[data-theme=amber] .hljs-title,:root[data-theme=amber] .hljs-function,:root[data-theme=amber] .hljs-variable,:root[data-theme=amber] .hljs-symbol{color:#ffe9a8}
:root[data-theme=amber] .hljs-comment,:root[data-theme=amber] .hljs-quote{color:#8a6000;font-style:italic}

/* ===== Admin statistics ===== */
.seg{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.seg a{padding:4px 12px;border:1px solid var(--line);border-radius:8px;font-size:.88rem;color:var(--fg)}
.seg a.on{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent);color:var(--accent)}
.seg a:hover{text-decoration:none;border-color:var(--accent)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
.tile{background:color-mix(in srgb,var(--card) 90%,transparent);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.tile span{display:block;color:var(--muted);font:.8rem var(--fallback-sans)}
.tile strong{display:block;font:var(--hw) 2.1rem/1.15 var(--head);margin-top:2px}
.tile.dim strong{color:var(--muted)}
.chartcard h2,.stat-grid h2,.main>section h2{font-size:1.05rem;margin:0 0 14px}
.chart{display:grid;grid-template-columns:auto 1fr;grid-template-rows:200px auto;column-gap:10px}
.yax{display:flex;flex-direction:column;justify-content:space-between;text-align:right;color:var(--muted);font:.72rem var(--fallback-sans);margin:-6px 0}
.plot{position:relative;display:flex;align-items:stretch;gap:2px;height:200px;
  background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 50px) top/100% 100% no-repeat;border-bottom:1px solid var(--line)}
.col{flex:1;min-width:0;display:flex;align-items:flex-end;justify-content:center;cursor:default;outline:0}
.col .bar{display:block;width:100%;max-width:24px;background:var(--accent);border-radius:4px 4px 0 0;opacity:.85;transition:opacity .1s,filter .1s}
.col.on .bar,.col:hover .bar{opacity:1;filter:brightness(1.2)}
.col:focus-visible{box-shadow:0 0 0 2px var(--accent) inset;border-radius:4px}
.xax{grid-column:2;display:flex;justify-content:space-between;color:var(--muted);font:.72rem var(--fallback-sans);padding-top:6px}
.tip{position:absolute;top:-8px;transform:translateY(-100%);pointer-events:none;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 10px;box-shadow:0 8px 24px rgba(0,0,0,.4);white-space:nowrap;z-index:5}
.tip[hidden]{display:none}.tip strong{display:block;font:600 .95rem var(--fallback-sans);color:var(--fg)}.tip span{font:.75rem var(--fallback-sans);color:var(--muted)}
.tbl-view{margin-top:12px}.tbl-view summary{cursor:pointer;color:var(--muted);font-size:.85rem}
.mini{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:8px}.mini th,.mini td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}.mini .r{text-align:right}
.mini th{color:var(--muted);font-weight:600;font-size:.78rem}
.scroll{overflow-x:auto}
.rank{list-style:none;margin:0;padding:0}.rank li{padding:5px 0}
.rk-top{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}
.rk-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-bar{height:6px;background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:3px;margin-top:4px}
.rk-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;opacity:.85}
.stat-grid .card{margin-bottom:0}.stat-grid{margin-bottom:16px}
@media(max-width:800px){.chart{grid-template-rows:160px auto}.plot{height:160px;background-size:100% 100%}}

/* Sky: white title needs a little shadow on the bright photo */
:root[data-theme=sky] .banner-title{filter:drop-shadow(0 2px 8px rgba(3,30,60,.55))}
:root[data-theme=sky] .banner-sub{text-shadow:0 1px 6px rgba(3,30,60,.6)}
:root[data-theme=sky] .card:hover{box-shadow:0 4px 18px rgba(10,111,194,.18)}

/* stats: IP columns */
.mini code{font-size:.82rem;background:none;border:0;padding:0}
.botrow td{color:var(--muted)}
.chartcard+.tiles,.stat-grid+.card{margin-top:16px}
.main>section.card+section.card{margin-top:16px}
