/* ==========================================================================
   VialTalk Boards — board.css
   A classic bulletin board, drawn carefully. Written from scratch.
   Chrome: Open Sans · Post bodies: Noto Sans · Data & code: Cousine
   ========================================================================== */

:root{
  /* chrome */
  --chrome-1:#2C4A63; --chrome-2:#1E3547; --chrome-3:#16283a;
  --catbar-1:#DCE4EC; --catbar-2:#C8D4E0;
  --page:#EDF1F5; --post:#FFFFFF; --row-alt:#F3F6F9; --row-alt2:#FAFCFD;
  --sticky:#FBF6EA; --announce:#F1F6EC;
  /* strokes */
  --rule:#C6D2DD; --rule-dk:#AEBECD; --hair:#E4EBF1; --inset:rgba(255,255,255,.75);
  /* ink */
  --ink:#25313B; --ink-2:#5E7183; --ink-3:#8598A8; --ink-inv:#EAF1F7;
  /* accents */
  --accent:#B4552B; --accent-2:#8F3E1E; --accent-3:#D9743F; --accent-wash:#FAF0E9;
  --green:#2F6B4F; --green-wash:#EDF5F0;
  --red:#9B3232; --red-wash:#FBEFEF;
  --amber:#8A6414; --amber-wash:#FCF6E6;
  --info:#2C5E86; --info-wash:#EDF3F9;
  /* type */
  --ff-chrome:'Open Sans','Segoe UI',Tahoma,Verdana,sans-serif;
  --ff-body:'Noto Sans','Open Sans',Verdana,sans-serif;
  --ff-mono:'Cousine','Roboto Mono','DejaVu Sans Mono',Consolas,monospace;
  /* metrics */
  --w:1240px; --r:3px; --r-lg:4px;
  --ease:cubic-bezier(.32,.72,.35,1);
  --sh-1:0 1px 0 rgba(255,255,255,.6) inset, 0 1px 2px rgba(29,52,71,.08);
  --sh-2:0 1px 3px rgba(29,52,71,.13), 0 6px 18px -8px rgba(29,52,71,.18);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--page);color:var(--ink);
  font:13px/1.6 var(--ff-chrome);
  background-image:linear-gradient(180deg,#E2E9F0 0,var(--page) 260px);
  background-repeat:no-repeat;
  overflow-x:hidden;
}
img,svg{max-width:100%}
h1,h2,h3,h4,h5{margin:0;font-weight:700;line-height:1.3;letter-spacing:-.005em}
p{margin:0 0 .85em}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 .85em;padding-left:1.5em}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-2);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:2px
}
::selection{background:#F0D8C8;color:#3A1C0C}
hr{border:0;border-top:1px solid var(--hair);margin:14px 0}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.mono{font-family:var(--ff-mono)}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);color:#fff;padding:10px 16px;font-weight:700}
.skip:focus{left:8px;top:8px}

.wrap{max-width:var(--w);margin:0 auto;padding:0 14px}

/* ── 1. TOP STRIP ─────────────────────────────────────────────────────── */
.topstrip{background:var(--chrome-3);color:#A9BDCF;font-size:11.5px;border-bottom:1px solid rgba(0,0,0,.3)}
.topstrip .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;flex-wrap:wrap}
.topstrip a{color:#CDDCE8}
.topstrip a:hover{color:#fff}
.ts-time{font-family:var(--ff-mono);font-size:11px;color:#7E96AB;letter-spacing:.01em}
.mini-login{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:3px 0}
.mini-login label{color:#7E96AB;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em}
.mini-login input[type=text],.mini-login input[type=password]{
  width:92px;background:#0F1E2C;border:1px solid #35506A;color:#DCE8F1;
  padding:3px 6px;font:11.5px var(--ff-chrome);border-radius:2px
}
.mini-login input::placeholder{color:#5B7488}
.mini-login button{
  background:linear-gradient(180deg,#3F6786,#2C4A63);border:1px solid #14293c;color:#fff;
  padding:3px 10px;font:600 11.5px var(--ff-chrome);border-radius:2px;cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset
}
.mini-login button:hover{background:linear-gradient(180deg,#4B769A,#33566F)}

/* ── 2. HEADER ────────────────────────────────────────────────────────── */
.hdr{
  background:linear-gradient(180deg,var(--chrome-1) 0,var(--chrome-2) 100%);
  border-bottom:1px solid #14293c;
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset, 0 2px 6px rgba(20,41,60,.22)
}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand:hover{text-decoration:none}
.brand-mark{flex:0 0 auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}
.brand-txt .brand-name{display:block;
  color:#fff;font-size:25px;font-weight:800;letter-spacing:-.02em;
  text-shadow:0 1px 0 rgba(0,0,0,.35);white-space:nowrap
}
.brand-txt .brand-name em{font-style:normal;color:#E9A97E}
.brand-txt .tag{
  display:block;color:#94AEC4;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;margin-top:2px
}
.hdr-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hdr-since{
  color:#8FA9BF;font-size:11px;text-align:right;line-height:1.45;border-right:1px solid rgba(255,255,255,.14);padding-right:12px
}
.hdr-since b{color:#CFE0EC;display:block;font-size:12px;font-weight:700}
.hdr-search{display:flex;align-items:stretch;background:#F7FAFC;border:1px solid #14293c;border-radius:2px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.2) inset}
.hdr-search input{border:0;background:transparent;padding:6px 9px;font:12.5px var(--ff-chrome);width:190px;color:var(--ink)}
.hdr-search input:focus{outline:none}
.hdr-search button{
  border:0;border-left:1px solid #C3D2DE;background:linear-gradient(180deg,#EDF2F7,#D8E2EA);
  color:var(--chrome-1);padding:0 11px;cursor:pointer;font:600 12px var(--ff-chrome)
}
.hdr-search button:hover{background:linear-gradient(180deg,#F6F9FC,#E3EBF1)}

/* ── 3. MAIN NAV TABS ─────────────────────────────────────────────────── */
.nav{background:linear-gradient(180deg,#1B3145,#152A3B);border-bottom:1px solid #0D1D2B}
.nav .wrap{padding:0 14px}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.nav li{margin:0}
.nav a{
  display:flex;align-items:center;gap:6px;padding:9px 15px;color:#B7CBDB;font-size:12.5px;font-weight:600;
  border-right:1px solid rgba(255,255,255,.07);transition:background .16s var(--ease),color .16s var(--ease)
}
.nav a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.nav a[aria-current=page],.nav a.on{
  background:var(--page);color:var(--chrome-1);
  box-shadow:0 -2px 0 var(--accent) inset
}
.nav svg{flex:0 0 auto;opacity:.85}
.nav a.on svg{opacity:1}

/* ── 4. BREADCRUMB ────────────────────────────────────────────────────── */
.crumbs{
  font-size:12px;color:var(--ink-2);padding:11px 0 12px;display:flex;flex-wrap:wrap;align-items:center;gap:5px
}
.crumbs a{color:var(--chrome-1);font-weight:600}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{color:var(--ink-3);font-size:13px;padding:0 1px}
.crumbs strong{font-weight:600;color:var(--ink)}

main{padding-bottom:34px;min-height:52vh}

/* ── 5. PANELS & CATEGORY BARS ────────────────────────────────────────── */
.panel{
  background:var(--post);border:1px solid var(--rule);border-radius:var(--r-lg);
  margin-bottom:16px;box-shadow:var(--sh-1);overflow:hidden
}
.cat-bar{
  background:linear-gradient(180deg,var(--catbar-1),var(--catbar-2));
  border-bottom:1px solid var(--rule-dk);
  padding:8px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  box-shadow:0 1px 0 var(--inset) inset
}
.cat-bar h2,.cat-bar h1{
  font-size:13.5px;font-weight:800;color:#233748;letter-spacing:.01em;
  text-shadow:0 1px 0 rgba(255,255,255,.7);display:flex;align-items:center;gap:8px;min-width:0
}
.cat-bar h2 a{color:#233748}
.cat-bar .cat-meta{font-size:11px;color:#546A7C;white-space:nowrap;font-weight:600}
.cat-bar .cat-desc{font-size:11.5px;font-weight:400;color:#4E6274;text-shadow:none}
.cat-bar--dark{background:linear-gradient(180deg,#3D5C77,#2C4A63);border-bottom-color:#1A3145}
.cat-bar--dark h1,.cat-bar--dark h2{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.3)}
.cat-bar--dark .cat-meta{color:#B4C9D9}
.sub-bar{
  background:#F0F4F8;border-bottom:1px solid var(--hair);padding:6px 13px;
  font-size:11.5px;color:var(--ink-2);display:flex;gap:14px;flex-wrap:wrap;align-items:center
}

/* ── 6. BOARD INDEX ROWS ──────────────────────────────────────────────── */
.brd{display:grid;grid-template-columns:44px 1fr 108px 250px;align-items:center;gap:0;
  border-bottom:1px solid var(--hair);transition:background .14s var(--ease)}
.brd:last-child{border-bottom:0}
.brd:nth-child(even){background:var(--row-alt)}
.brd:hover{background:#EAF1F7}
.brd-ico{display:flex;align-items:center;justify-content:center;padding:12px 0 12px 12px}
.brd-main{padding:11px 14px 11px 10px;min-width:0}
.brd-main h3{font-size:14px;font-weight:700;margin-bottom:2px;letter-spacing:-.01em}
.brd-main h3 a{color:var(--accent)}
.brd-main h3 a:visited{color:#8B5A44}
.brd-desc{font-size:11.9px;color:var(--ink-2);line-height:1.5;margin:0}
.brd-mods{font-size:11px;color:var(--ink-3);margin-top:4px}
.brd-mods a{color:var(--ink-2);font-weight:600}
.brd-counts{
  padding:11px 8px;text-align:center;font-size:11.5px;color:var(--ink-2);
  border-left:1px solid var(--hair);line-height:1.5
}
.brd-counts b{display:block;font-family:var(--ff-mono);font-size:13px;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.brd-counts span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.brd-last{padding:10px 13px;border-left:1px solid var(--hair);font-size:11.5px;color:var(--ink-2);min-width:0}
.brd-last .lp-t{display:block;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brd-last .lp-m{display:block;color:var(--ink-3);margin-top:2px;font-size:11px}
.brd-last .lp-m a{color:var(--ink-2);font-weight:600}
.brd-sub{
  grid-column:1/-1;padding:0 14px 11px 66px;font-size:11.5px;color:var(--ink-2);
  display:flex;flex-wrap:wrap;gap:4px 16px;border-top:1px dotted var(--hair);padding-top:9px;margin-top:-2px
}
.brd-sub .sub-lbl{color:var(--ink-3);text-transform:uppercase;font-size:10px;letter-spacing:.07em;font-weight:700;width:100%}
.brd-sub a{font-weight:600}
.brd-sub em{font-style:normal;color:var(--ink-3);font-family:var(--ff-mono);font-size:10.5px}

/* board icon states */
.bico{width:30px;height:30px;display:block}

/* ── 7. TOPIC LISTING ─────────────────────────────────────────────────── */
.tl-head{display:grid;grid-template-columns:34px 1fr 78px 78px 216px;
  background:#E7EEF4;border-bottom:1px solid var(--rule-dk);font-size:10.5px;
  text-transform:uppercase;letter-spacing:.07em;color:#54697B;font-weight:700}
.tl-head>span{padding:7px 10px}
.tl-head>span+span{border-left:1px solid #D5E0E9}
.tl-head a{color:#54697B}
.tl-head a:hover{color:var(--accent)}
.tl-head .srt::after{content:'▾';margin-left:4px;font-size:9px;opacity:.7}

.topic{display:grid;grid-template-columns:34px 1fr 78px 78px 216px;align-items:center;
  border-bottom:1px solid var(--hair);transition:background .14s var(--ease)}
.topic:last-child{border-bottom:0}
.topic:nth-child(even){background:var(--row-alt)}
.topic:hover{background:#EAF1F7}
.topic.is-sticky{background:var(--sticky)}
.topic.is-sticky:hover{background:#F6EFDF}
.topic.is-announce{background:var(--announce)}
.topic.is-announce:hover{background:#E9F1E2}
.t-ico{display:flex;align-items:center;justify-content:center;padding:9px 0 9px 8px}
.t-main{padding:8px 12px 8px 6px;min-width:0}
.t-title{font-size:13.2px;line-height:1.45;margin:0}
.t-title a{font-weight:600}
.t-title a:visited{color:#8B5A44}
.t-meta{font-size:11px;color:var(--ink-3);margin-top:2px}
.t-meta a{color:var(--ink-2);font-weight:600}
.t-num{padding:8px;text-align:center;font-family:var(--ff-mono);font-size:12px;
  color:var(--ink-2);border-left:1px solid var(--hair);font-variant-numeric:tabular-nums}
.t-last{padding:8px 12px;border-left:1px solid var(--hair);font-size:11px;color:var(--ink-3);min-width:0}
.t-last b{font-weight:600;color:var(--ink-2)}
.t-last a{color:var(--ink-2);font-weight:600}
.t-pages{display:inline-flex;gap:3px;margin-left:6px;font-size:10.5px;vertical-align:1px}
.t-pages span{color:var(--ink-3)}
.t-pages a{
  padding:0 4px;border:1px solid var(--rule);border-radius:2px;background:#fff;
  color:var(--ink-2);font-family:var(--ff-mono);font-size:10px;line-height:1.5
}
.t-pages a:hover{background:var(--accent-wash);border-color:var(--accent-3);text-decoration:none}

/* prefix tags */
.pfx{
  display:inline-block;font-size:10.5px;font-weight:700;padding:0 5px;border-radius:2px;
  border:1px solid;margin-right:5px;letter-spacing:.02em;white-space:nowrap;vertical-align:1px;
  font-family:var(--ff-chrome)
}
.pfx-discussion{color:#2C5E86;border-color:#BCD3E4;background:var(--info-wash)}
.pfx-question{color:#5B4593;border-color:#CFC5E6;background:#F2EFF9}
.pfx-guide{color:var(--green);border-color:#BEDBCA;background:var(--green-wash)}
.pfx-review{color:var(--accent-2);border-color:#E4C5B3;background:var(--accent-wash)}
.pfx-warning{color:var(--red);border-color:#E4BFBF;background:var(--red-wash)}
.pfx-log{color:#3E5B6B;border-color:#C3D3DC;background:#EFF4F7}
.pfx-data{color:#1F5E5A;border-color:#B6D4D1;background:#E9F4F3}
.pfx-poll{color:#7A4C10;border-color:#E0CBA4;background:var(--amber-wash)}
.pfx-sticky{color:#7A4C10;border-color:#E0CBA4;background:var(--amber-wash)}
.pfx-meta{color:#556374;border-color:#CBD4DE;background:#F1F4F7}
.pfx-necro{color:#6B4E7A;border-color:#D8C6E2;background:#F5EFF8}
.pfx-solved{color:var(--green);border-color:#BEDBCA;background:var(--green-wash)}
.pfx-archive{color:#5D5346;border-color:#D5CCBE;background:#F5F2EC}

/* ── 8. PAGINATION ────────────────────────────────────────────────────── */
.pgn{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:11px 0;font-size:12px;color:var(--ink-2)
}
.pgn .pgn-lbl{font-weight:700;color:var(--ink-2);margin-right:3px}
.pgn a,.pgn .cur,.pgn .gap{
  display:inline-block;min-width:24px;text-align:center;padding:3px 7px;border:1px solid var(--rule);
  background:linear-gradient(180deg,#fff,#F3F7FA);border-radius:2px;font-family:var(--ff-mono);font-size:11.5px;
  color:var(--chrome-1);transition:background .14s var(--ease),border-color .14s var(--ease)
}
.pgn a:hover{background:var(--accent-wash);border-color:var(--accent-3);color:var(--accent-2);text-decoration:none}
.pgn .cur{background:var(--chrome-1);border-color:var(--chrome-2);color:#fff;font-weight:700}
.pgn .gap{border:0;background:none;min-width:14px;padding:3px 2px;color:var(--ink-3)}
.pgn .pgn-jump{border-color:var(--rule-dk);font-family:var(--ff-chrome);font-weight:600}

/* ── 9. TOPIC PAGE: POSTS ─────────────────────────────────────────────── */
.topic-hd{margin-bottom:12px}
.topic-hd h1{font-size:20px;line-height:1.3;color:#1E2E3B;margin-bottom:5px}
.topic-hd .th-meta{font-size:11.5px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 14px}
.topic-hd .th-meta b{color:var(--ink)}

.post{
  background:var(--post);border:1px solid var(--rule);border-radius:var(--r-lg);
  margin-bottom:12px;box-shadow:var(--sh-1);overflow:hidden;
  display:grid;grid-template-columns:186px 1fr
}
.post:target{border-color:var(--accent-3);box-shadow:0 0 0 3px var(--accent-wash)}
.post.p-op{border-color:var(--rule-dk)}

/* postbit */
.pbit{
  background:linear-gradient(180deg,#F5F8FA,#EDF2F6);border-right:1px solid var(--rule);
  padding:13px 12px;text-align:center
}
.pbit-av{margin:0 auto 8px;width:72px;height:72px;border:1px solid var(--rule-dk);background:#fff;
  padding:2px;border-radius:2px;box-shadow:0 1px 2px rgba(29,52,71,.12)}
.pbit-av svg,.pbit-av img{display:block;width:100%;height:100%;border-radius:1px}
.pbit-name{font-size:13.5px;font-weight:800;margin-bottom:2px;word-break:break-word;line-height:1.35}
.pbit-name a{color:var(--accent)}
.pbit-title{font-size:11px;color:var(--ink-2);font-style:italic;margin-bottom:5px;line-height:1.4}
.pbit-rank{margin-bottom:7px}
.rank-lbl{
  display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;
  padding:1px 6px;border-radius:2px;border:1px solid
}
.rk-admin{color:#7A1F1F;border-color:#DFB5B5;background:#FBEEEE}
.rk-gmod{color:#5B3A93;border-color:#D0C1E8;background:#F3EFFA}
.rk-mod{color:#1F5E5A;border-color:#B4D3D0;background:#E9F4F3}
.rk-hero{color:#7A4C10;border-color:#E0CBA4;background:#FCF6E6}
.rk-sr{color:#2C5E86;border-color:#BCD3E4;background:#EDF3F9}
.rk-full{color:#3F6237;border-color:#C6DBBF;background:#F0F6EE}
.rk-mem{color:#4B5C6B;border-color:#CBD4DE;background:#F1F4F7}
.rk-jr{color:#5E7183;border-color:#D6DFE7;background:#F6F8FA}
.rk-new{color:#7C8896;border-color:#DDE3E9;background:#FAFBFC}
.pips{display:flex;justify-content:center;gap:2px;margin-top:5px}
.pbit-stats{
  font-size:11px;color:var(--ink-2);text-align:left;border-top:1px solid var(--hair);
  padding-top:8px;margin-top:8px;line-height:1.75
}
.pbit-stats dt{display:inline;color:var(--ink-3)}
.pbit-stats dd{display:inline;margin:0;font-weight:600;color:var(--ink)}
.pbit-stats .row{display:flex;justify-content:space-between;gap:8px}
.pbit-stats .row span:first-child{color:var(--ink-3)}
.pbit-stats .row span:last-child{font-weight:600;font-family:var(--ff-mono);font-variant-numeric:tabular-nums}
.rep{margin-top:8px;font-size:10.5px;color:var(--ink-3);text-align:left}
.rep-bar{display:inline-flex;gap:1.5px;margin-left:4px;vertical-align:-1px}
.rep-seg{width:8px;height:11px;border:1px solid #B9C7D3;background:#fff;border-radius:1px}
.rep-seg.on{background:linear-gradient(180deg,#D4763F,#B4552B);border-color:#8F3E1E}
.awards{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:9px;padding-top:8px;border-top:1px solid var(--hair)}
.awards svg{display:block}
.pbit-online{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--green);font-weight:700;margin-top:7px}
.pbit-online i{width:7px;height:7px;border-radius:50%;background:var(--green);display:block}
.pbit-offline{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--ink-3);margin-top:7px}
.pbit-offline i{width:7px;height:7px;border-radius:50%;background:#C0CCD6;display:block}

/* post column */
.pcol{min-width:0;display:flex;flex-direction:column}
.p-head{
  background:#F7FAFC;border-bottom:1px solid var(--hair);padding:7px 14px;
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap
}
.p-subj{font-size:12.5px;font-weight:700;color:#2A3A48;min-width:0}
.p-subj a{color:#2A3A48}
.p-when{font-size:11px;color:var(--ink-3);font-family:var(--ff-mono);white-space:nowrap}
.p-when a{color:var(--ink-2)}
.p-body{
  padding:14px;font-family:var(--ff-body);font-size:13.2px;line-height:1.68;color:#22303C;
  flex:1 1 auto;overflow-wrap:break-word
}
.p-body>*:first-child{margin-top:0}
.p-edit{font-size:11px;color:var(--ink-3);font-style:italic;margin-top:12px;padding-top:8px;border-top:1px dotted var(--hair)}
.p-sig{
  margin:0 14px;padding:9px 0 11px;border-top:1px solid var(--hair);font-family:var(--ff-body);
  font-size:11.5px;line-height:1.6;color:var(--ink-2)
}
.p-sig .quote{margin:0 0 4px;padding:4px 9px;font-size:11px}
.p-foot{
  background:#F7FAFC;border-top:1px solid var(--hair);padding:6px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap
}
.p-acts{display:flex;gap:3px;flex-wrap:wrap}
.p-acts a{
  font-size:11px;color:var(--ink-2);padding:2px 8px;border:1px solid transparent;border-radius:2px;font-weight:600
}
.p-acts a:hover{background:#fff;border-color:var(--rule);color:var(--accent-2);text-decoration:none}
.p-ip{font-size:10.5px;color:#A6B5C1;font-family:var(--ff-mono)}
.p-thanks{font-size:11px;color:var(--ink-3)}
.p-thanks b{color:var(--green);font-weight:700}

/* removed post stub */
.p-removed{
  margin:0 0 12px;border:1px dashed var(--rule-dk);background:#F7F9FB;border-radius:var(--r-lg);
  padding:13px 16px;font-size:12px;color:var(--ink-2);font-style:italic;display:flex;gap:9px;align-items:flex-start
}

/* mod / system notices */
.notice{
  border:1px solid;border-radius:var(--r-lg);padding:9px 14px;margin-bottom:12px;font-size:12.2px;
  display:flex;gap:9px;align-items:flex-start;line-height:1.55
}
.notice svg{flex:0 0 auto;margin-top:1px}
.notice a{font-weight:700}
.n-info{background:var(--info-wash);border-color:#BCD3E4;color:#204B6B}
.n-warn{background:var(--amber-wash);border-color:#E0CBA4;color:#6D4E0F}
.n-lock{background:var(--red-wash);border-color:#E4BFBF;color:#7C2828}
.n-ok{background:var(--green-wash);border-color:#BEDBCA;color:#24543E}
.n-necro{background:#F5EFF8;border-color:#D8C6E2;color:#5A3E69}

/* necro divider inside a topic */
.necro-gap{
  display:flex;align-items:center;gap:10px;margin:4px 0 12px;font-size:11.5px;color:#6B4E7A;
  text-transform:uppercase;letter-spacing:.08em;font-weight:700
}
.necro-gap::before,.necro-gap::after{content:'';flex:1;height:1px;background:repeating-linear-gradient(90deg,#D8C6E2 0 5px,transparent 5px 10px)}

/* ── 10. BBCODE RENDERING ─────────────────────────────────────────────── */
.quote{
  margin:0 0 12px;border:1px solid #CFDAE3;border-left:3px solid #98AFC2;border-radius:2px;
  background:#F6F9FB
}
.quote-hd{
  background:#E8EFF5;border-bottom:1px solid #D5E0E8;padding:4px 10px;font-size:11px;
  color:#4C6274;font-family:var(--ff-chrome);display:flex;gap:6px;flex-wrap:wrap;align-items:baseline
}
.quote-hd b{color:#2E4557}
.quote-hd a{font-size:10.5px;color:var(--ink-2);font-weight:600}
.quote-bd{padding:9px 11px;font-size:12.6px;color:#3A4956;line-height:1.6}
.quote-bd>*:last-child{margin-bottom:0}
.quote .quote{background:#EFF4F8;border-left-color:#B3C3D1}
.quote .quote .quote{background:#E9F0F5}

.p-body code,.tool code{font-family:var(--ff-mono);font-size:12px;background:#F2F5F8;border:1px solid var(--hair);padding:1px 4px;border-radius:2px}
.codebox{margin:0 0 12px;border:1px solid var(--rule);border-radius:2px;background:#FBFCFD;overflow:hidden}
.codebox .cb-hd{
  background:#EDF2F6;border-bottom:1px solid var(--hair);padding:3px 10px;font-size:10.5px;
  text-transform:uppercase;letter-spacing:.07em;color:#5E7183;font-weight:700
}
.codebox pre{
  margin:0;padding:10px 12px;font-family:var(--ff-mono);font-size:12px;line-height:1.55;
  color:#2A3946;overflow-x:auto;white-space:pre
}
.codebox pre code{background:none;border:0;padding:0;font-size:inherit}

.spoiler{margin:0 0 12px;border:1px solid var(--rule);border-radius:2px;background:#F8FAFC}
.spoiler>summary{
  cursor:pointer;padding:5px 11px;font-size:11.5px;font-weight:700;color:#4C6274;
  background:#EDF2F6;border-bottom:1px solid transparent;list-style:none;
  display:flex;align-items:center;gap:7px;font-family:var(--ff-chrome)
}
.spoiler>summary::-webkit-details-marker{display:none}
.spoiler>summary::before{content:'▶';font-size:9px;color:var(--ink-3);transition:transform .18s var(--ease)}
.spoiler[open]>summary{border-bottom-color:var(--hair)}
.spoiler[open]>summary::before{transform:rotate(90deg)}
.spoiler>summary:hover{background:#E5EDF3;color:var(--accent-2)}
.spoiler .sp-bd{padding:10px 12px;font-size:12.8px}

.bb-table-wrap{overflow-x:auto;margin:0 0 12px;border:1px solid var(--rule);border-radius:2px;background:#fff}
.bb-table{width:100%;border-collapse:collapse;font-family:var(--ff-mono);font-size:11.8px}
.bb-table th{
  background:#EDF2F6;border-bottom:1px solid var(--rule-dk);padding:6px 10px;text-align:left;
  font-family:var(--ff-chrome);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#4C6274;
  white-space:nowrap
}
.bb-table td{border-bottom:1px solid var(--hair);padding:5px 10px;color:#2E3D4A;font-variant-numeric:tabular-nums;vertical-align:top}
.bb-table tr:last-child td{border-bottom:0}
.bb-table tbody tr:nth-child(even){background:var(--row-alt2)}

.bb-img{
  display:inline-block;margin:0 0 12px;border:1px solid var(--rule);background:#F7FAFC;padding:3px;border-radius:2px;
  max-width:100%
}
.bb-img svg{display:block}
.bb-img figcaption{font-size:10.5px;color:var(--ink-3);padding:4px 4px 2px;font-style:italic}
.bb-attach{
  display:flex;align-items:center;gap:9px;margin:0 0 12px;border:1px solid var(--rule);
  background:#F7FAFC;border-radius:2px;padding:7px 11px;font-size:11.5px;color:var(--ink-2)
}
.bb-attach b{color:var(--chrome-1);font-family:var(--ff-mono);font-size:11.5px}
.bb-attach .att-meta{color:var(--ink-3);font-size:10.5px}
.bb-center{text-align:center}
.bb-s1{font-size:10.5px}.bb-s2{font-size:11.5px}.bb-s3{font-size:13.2px}
.bb-s4{font-size:15px}.bb-s5{font-size:17px}.bb-s6{font-size:20px}.bb-s7{font-size:24px}
.bb-red{color:var(--red)}.bb-green{color:var(--green)}.bb-blue{color:var(--info)}.bb-grey{color:var(--ink-3)}
.p-body ul,.p-body ol{margin:0 0 12px;padding-left:1.6em}
.p-body li{margin-bottom:3px}
.p-body blockquote{margin:0 0 12px}
.refs{border-top:1px solid var(--hair);margin-top:12px;padding-top:8px;font-size:11px;color:var(--ink-2);line-height:1.65}

/* ── 11. POLLS ────────────────────────────────────────────────────────── */
.poll{background:var(--post);border:1px solid var(--rule);border-radius:var(--r-lg);margin-bottom:12px;box-shadow:var(--sh-1);overflow:hidden}
.poll-bd{padding:13px 15px}
.poll-q{font-size:13.5px;font-weight:700;margin-bottom:11px;color:#243440}
.poll-row{margin-bottom:9px}
.poll-row:last-child{margin-bottom:0}
.poll-lbl{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:3px;color:var(--ink)}
.poll-lbl span:last-child{font-family:var(--ff-mono);color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.poll-foot{border-top:1px solid var(--hair);padding:7px 15px;background:#F7FAFC;font-size:11.5px;color:var(--ink-2)}
.poll-foot b{font-family:var(--ff-mono)}

/* ── 12. TOPIC FOOTER: jump / similar / prev-next ─────────────────────── */
.tfoot{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}
.jumpto{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.jumpto select{
  font:12px var(--ff-chrome);padding:4px 6px;border:1px solid var(--rule-dk);border-radius:2px;
  background:#fff;color:var(--ink);max-width:100%
}
.prevnext{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;font-size:11.5px}
.prevnext a{
  border:1px solid var(--rule);background:linear-gradient(180deg,#fff,#F3F7FA);border-radius:2px;
  padding:4px 10px;color:var(--chrome-1);font-weight:600;max-width:290px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap
}
.prevnext a:hover{background:var(--accent-wash);border-color:var(--accent-3);text-decoration:none}
.viewing{font-size:11.5px;color:var(--ink-3);padding:8px 0}
.viewing a{color:var(--ink-2);font-weight:600}

.simtab{width:100%;border-collapse:collapse;font-size:12px}
.simtab th{background:#EDF2F6;border-bottom:1px solid var(--rule-dk);padding:6px 12px;text-align:left;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#4C6274}
.simtab td{border-bottom:1px solid var(--hair);padding:6px 12px;color:var(--ink-2)}
.simtab tr:last-child td{border-bottom:0}
.simtab tbody tr:nth-child(even){background:var(--row-alt2)}
.simtab .st-n{font-family:var(--ff-mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

/* ── 13. BOARD STATS / WHO'S ONLINE / BIRTHDAYS / LEGEND ──────────────── */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pad{padding:13px 15px}
.statline{font-size:12.3px;color:var(--ink-2);line-height:1.85}
.statline b{color:var(--ink);font-family:var(--ff-mono);font-weight:700;font-variant-numeric:tabular-nums}
.statline a{font-weight:600}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:1px;background:var(--hair)}
.statbox{background:#fff;padding:11px 12px;text-align:center}
.statbox b{display:block;font-family:var(--ff-mono);font-size:19px;font-weight:700;color:var(--chrome-1);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.statbox span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-top:2px}
.onlist{font-size:12px;line-height:1.95;color:var(--ink-2)}
.onlist a{font-weight:600}
.onlist .om{color:#1F5E5A;font-weight:800}
.onlist .oa{color:#7A1F1F;font-weight:800}
.onlist .og{color:#5B3A93;font-weight:800}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11.5px;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.bdaylist{font-size:12px;color:var(--ink-2);line-height:1.9}
.bdaylist a{font-weight:600}

/* ── 14. MEMBER PROFILE ───────────────────────────────────────────────── */
.prof-hd{display:grid;grid-template-columns:104px 1fr auto;gap:16px;align-items:start;padding:15px}
.prof-av{width:104px;height:104px;border:1px solid var(--rule-dk);background:#fff;padding:3px;border-radius:2px;box-shadow:0 1px 3px rgba(29,52,71,.14)}
.prof-av svg{display:block;width:100%;height:100%}
.prof-id h1{font-size:21px;margin-bottom:3px}
.prof-id .p-custom{font-size:12.5px;color:var(--ink-2);font-style:italic;margin-bottom:7px}
.prof-quick{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:12px;color:var(--ink-2);margin-top:8px}
.prof-quick b{color:var(--ink);font-family:var(--ff-mono);font-variant-numeric:tabular-nums}
.prof-bio{font-family:var(--ff-body);font-size:12.8px;color:#2E3D4A;margin-top:10px;line-height:1.65;max-width:64ch}
.tabs{display:flex;gap:2px;background:#E7EEF4;border-bottom:1px solid var(--rule-dk);padding:0 8px;flex-wrap:wrap}
.tabs a{
  padding:7px 14px;font-size:12px;font-weight:700;color:#4C6274;border:1px solid transparent;border-bottom:0;
  border-radius:2px 2px 0 0;position:relative;top:1px
}
.tabs a:hover{background:#F1F6F9;color:var(--accent-2);text-decoration:none}
.tabs a.on{background:#fff;border-color:var(--rule-dk);color:var(--chrome-1)}
.kv{width:100%;border-collapse:collapse;font-size:12.3px}
.kv th{
  text-align:left;width:190px;padding:6px 14px;color:var(--ink-3);font-weight:600;
  border-bottom:1px solid var(--hair);vertical-align:top;background:#FAFCFD
}
.kv td{padding:6px 14px;border-bottom:1px solid var(--hair);color:var(--ink)}
.kv tr:last-child th,.kv tr:last-child td{border-bottom:0}
.kv .mono{font-family:var(--ff-mono);font-variant-numeric:tabular-nums}

.postitem{border-bottom:1px solid var(--hair);padding:11px 15px}
.postitem:last-child{border-bottom:0}
.postitem:nth-child(even){background:var(--row-alt2)}
.pi-hd{font-size:12px;color:var(--ink-3);margin-bottom:4px;display:flex;flex-wrap:wrap;gap:3px 10px}
.pi-hd a{font-weight:600}
.pi-hd .pi-brd{color:var(--ink-2)}
.pi-ttl{font-size:13.2px;font-weight:700;margin-bottom:4px}
.pi-ex{font-family:var(--ff-body);font-size:12.4px;color:#41505D;line-height:1.6}

.buddies{display:flex;flex-wrap:wrap;gap:9px;padding:14px 15px}
.buddy{display:flex;align-items:center;gap:8px;border:1px solid var(--rule);background:#FAFCFD;border-radius:2px;padding:5px 9px 5px 5px;font-size:12px}
.buddy svg{border:1px solid var(--rule);border-radius:1px;display:block}
.buddy b{font-weight:700}
.buddy span{display:block;font-size:10.5px;color:var(--ink-3)}

.awardlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;padding:14px 15px}
.awarditem{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--rule);background:#FAFCFD;border-radius:2px;padding:9px 11px}
.awarditem b{display:block;font-size:12.3px;margin-bottom:2px}
.awarditem span{font-size:11.2px;color:var(--ink-2);line-height:1.5}

/* ── 15. MEMBERLIST TABLE ─────────────────────────────────────────────── */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.mlist{width:100%;border-collapse:collapse;font-size:12.3px;min-width:760px}
.mlist th{
  background:#E7EEF4;border-bottom:1px solid var(--rule-dk);padding:7px 11px;text-align:left;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#54697B;white-space:nowrap
}
.mlist th a{color:#54697B}
.mlist th a:hover{color:var(--accent)}
.mlist td{border-bottom:1px solid var(--hair);padding:6px 11px;color:var(--ink-2);vertical-align:middle}
.mlist tbody tr:nth-child(even){background:var(--row-alt)}
.mlist tbody tr:hover{background:#EAF1F7}
.mlist .m-h{display:flex;align-items:center;gap:8px;min-width:0}
.mlist .m-h svg{border:1px solid var(--rule);border-radius:1px;flex:0 0 auto;display:block}
.mlist .m-h b{font-weight:700;font-size:12.6px}
.mlist .num{font-family:var(--ff-mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.mlist .m-when{white-space:nowrap;font-size:11.5px;color:var(--ink-3)}

/* ── 16. CHARTS / STATS PAGE ──────────────────────────────────────────── */
.chart-wrap{overflow-x:auto;padding:15px}
.chart-wrap svg{display:block}
.chart-cap{font-size:11.5px;color:var(--ink-3);padding:0 15px 13px;font-style:italic}

/* ── 17. CALENDAR ─────────────────────────────────────────────────────── */
.cal{width:100%;border-collapse:collapse;table-layout:fixed;min-width:660px}
.cal th{background:#E7EEF4;border:1px solid var(--rule);padding:6px 4px;font-size:10.5px;
  text-transform:uppercase;letter-spacing:.06em;color:#54697B}
.cal td{border:1px solid var(--hair);vertical-align:top;height:88px;padding:4px 5px;font-size:11.5px}
.cal td.pad{background:#F7F9FB}
.cal .d{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink-3);font-weight:700}
.cal td.today{background:var(--accent-wash);border-color:var(--accent-3)}
.cal .ev{display:block;font-size:10.8px;line-height:1.4;margin-top:3px;color:var(--ink-2)}
.cal .ev b{color:var(--chrome-1)}
.cal .bd{color:var(--accent-2)}
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* ── 18. VENDOR FILE PAGES ────────────────────────────────────────────── */
.vf-hd{display:grid;grid-template-columns:1fr 190px;gap:18px;padding:16px;align-items:start}
.vf-id h1{font-size:21px;line-height:1.28;margin-bottom:4px}
.vf-aka{font-size:12px;color:var(--ink-2);margin-bottom:9px}
.vf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 18px;font-size:12.2px;color:var(--ink-2)}
.vf-facts b{color:var(--ink)}
.vf-facts .dom{font-family:var(--ff-mono);color:var(--ink);letter-spacing:-.01em}
.vf-score{
  border:1px solid var(--rule-dk);border-radius:var(--r-lg);background:linear-gradient(180deg,#F7FAFC,#EDF2F6);
  padding:13px;text-align:center;box-shadow:0 1px 0 var(--inset) inset
}
.vf-score .n{font-family:var(--ff-mono);font-size:34px;font-weight:700;color:var(--chrome-1);line-height:1;letter-spacing:-.03em}
.vf-score .of{font-size:12px;color:var(--ink-3)}
.vf-score .stars{margin:5px 0 3px}
.vf-score .cnt{font-size:11px;color:var(--ink-2)}
.review{border-bottom:1px solid var(--hair);padding:12px 15px}
.review:last-child{border-bottom:0}
.review:nth-child(even){background:var(--row-alt2)}
.rv-hd{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:5px}
.rv-hd b{font-size:12.6px}
.rv-hd .rv-when{font-size:11px;color:var(--ink-3);font-family:var(--ff-mono)}
.rv-bd{font-family:var(--ff-body);font-size:12.7px;line-height:1.65;color:#33424F;max-width:74ch}
.stars{display:inline-flex;gap:1px;vertical-align:-2px}

/* ── 19. TOOL / STICKY RESOURCE PAGES ─────────────────────────────────── */
.tool{font-family:var(--ff-body);font-size:13.4px;line-height:1.7;color:#22303C;padding:16px}
.tool h2{font-family:var(--ff-chrome);font-size:16px;margin:22px 0 9px;padding-bottom:5px;border-bottom:1px solid var(--hair);color:#1F2E3A}
.tool h2:first-child{margin-top:0}
.tool h3{font-family:var(--ff-chrome);font-size:13.6px;margin:16px 0 6px;color:#2A3A48}
.tool p{max-width:74ch}
.tool ul,.tool ol{max-width:74ch}
.calc{
  border:1px solid var(--rule-dk);border-radius:var(--r-lg);background:linear-gradient(180deg,#F7FAFC,#F0F5F8);
  padding:15px;margin:14px 0;box-shadow:0 1px 0 var(--inset) inset
}
.calc h3{margin-top:0;font-family:var(--ff-chrome)}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px;margin-bottom:13px}
.field label{display:block;font:600 11px var(--ff-chrome);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:4px}
.field input,.field select{
  width:100%;padding:6px 8px;border:1px solid var(--rule-dk);border-radius:2px;background:#fff;
  font:13px var(--ff-mono);color:var(--ink)
}
.field .hint{font:11px var(--ff-chrome);color:var(--ink-3);margin-top:3px}
.btn{
  display:inline-block;border:1px solid var(--chrome-2);border-radius:2px;
  background:linear-gradient(180deg,#3F6786,#2C4A63);color:#fff;padding:6px 16px;
  font:700 12.5px var(--ff-chrome);cursor:pointer;box-shadow:0 1px 0 rgba(255,255,255,.18) inset;
  transition:filter .15s var(--ease)
}
.btn:hover{filter:brightness(1.12);color:#fff;text-decoration:none}
.btn-2{background:linear-gradient(180deg,#fff,#EDF2F6);color:var(--chrome-1);border-color:var(--rule-dk)}
.btn-2:hover{color:var(--accent-2)}
.calc-out{
  margin-top:13px;border:1px solid var(--rule);background:#fff;border-radius:2px;padding:12px 14px;
  font-family:var(--ff-mono);font-size:13px;line-height:1.75;color:#22303C
}
.calc-out .big{font-size:21px;font-weight:700;color:var(--accent-2);letter-spacing:-.02em}
.calc-out .warn{color:var(--red);font-weight:700}
.calc-out table{width:100%;border-collapse:collapse;font-size:12px;margin-top:9px}
.calc-out th,.calc-out td{border-bottom:1px solid var(--hair);padding:4px 7px;text-align:left}
.calc-out th{font-family:var(--ff-chrome);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}
.callout{
  border-left:3px solid var(--accent-3);background:var(--accent-wash);border-radius:0 2px 2px 0;
  padding:10px 14px;margin:14px 0;font-size:12.8px;color:#5C3218;max-width:74ch
}
.callout b{color:#41210E}
.anno{border:1px solid var(--rule);border-radius:2px;background:#FBFCFD;padding:12px;margin:14px 0}
.anno ol{margin:0;padding-left:1.5em;font-size:12.6px}
.anno li{margin-bottom:7px}
.anno li b{font-family:var(--ff-mono);color:var(--accent-2)}

/* ── 20. SEARCH ───────────────────────────────────────────────────────── */
.srch-form{padding:15px}
.srch-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}
#sresults .postitem{cursor:default}
.empty{padding:34px 20px;text-align:center;color:var(--ink-2)}
.empty svg{margin-bottom:11px;opacity:.55}
.empty h3{font-size:15px;margin-bottom:5px;color:var(--ink)}
.empty p{font-size:12.5px;max-width:52ch;margin:0 auto}

/* ── 21. SPONSOR UNITS ────────────────────────────────────────────────── */
.ad{
  display:block;border:1px solid var(--rule);background:#FBFCFD;border-radius:var(--r-lg);
  margin-bottom:12px;overflow:hidden;box-shadow:var(--sh-1)
}
.ad:hover{text-decoration:none;border-color:var(--rule-dk)}
.ad-lbl{
  background:#EDF2F6;border-bottom:1px solid var(--hair);padding:2px 11px;font-size:9.5px;
  text-transform:uppercase;letter-spacing:.11em;color:#8598A8;font-weight:700
}
.ad-in{display:flex;gap:12px;align-items:center;padding:11px 13px}
.ad-mk{
  flex:0 0 auto;width:42px;height:42px;border-radius:3px;display:flex;align-items:center;justify-content:center;
  color:#fff;font:800 15px var(--ff-chrome);letter-spacing:-.02em
}
.ad-tx{min-width:0}
.ad-tx b{display:block;font-size:12.8px;color:#243440;margin-bottom:2px}
.ad-tx p{font-size:11.7px;color:var(--ink-2);margin:0;line-height:1.5}
.ad-cta{
  margin-left:auto;flex:0 0 auto;border:1px solid var(--rule-dk);border-radius:2px;
  background:linear-gradient(180deg,#fff,#EDF2F6);padding:5px 12px;font:700 11.5px var(--ff-chrome);
  color:var(--chrome-1);white-space:nowrap
}
.ad:hover .ad-cta{background:linear-gradient(180deg,#FDF6F1,#F5E6DB);border-color:var(--accent-3);color:var(--accent-2)}

/* ── 22. FOOTER ───────────────────────────────────────────────────────── */
.foot{
  background:linear-gradient(180deg,var(--chrome-2),var(--chrome-3));color:#93AABD;
  border-top:1px solid #14293c;padding:22px 0 16px;font-size:12px
}
.foot .fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:22px;margin-bottom:20px}
.foot h4{color:#D6E4EE;font-size:11px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:9px}
.foot ul{list-style:none;margin:0;padding:0;line-height:2}
.foot a{color:#A9C0D2}
.foot a:hover{color:#fff}
.foot p{font-size:11.8px;line-height:1.65;max-width:52ch;color:#8399AC}
.foot .fbrand{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.foot .fbrand b{color:#fff;font-size:14.5px;font-weight:800;letter-spacing:-.02em}
.foot .fbrand b em{font-style:normal;color:#E9A97E}
.fbot{
  border-top:1px solid rgba(255,255,255,.1);padding-top:13px;display:flex;justify-content:space-between;
  gap:14px;flex-wrap:wrap;font-size:11.2px;color:#7891A6
}
.fbot .badges{display:flex;gap:7px;align-items:center;opacity:.75}
.powered{font-family:var(--ff-mono);font-size:10.5px;color:#61798E}

.disclaim{
  border:1px solid var(--rule);background:#FBFCFD;border-radius:var(--r-lg);padding:11px 15px;
  margin-bottom:16px;font-size:11.8px;color:var(--ink-2);line-height:1.6
}
.disclaim b{color:var(--ink)}

/* ── 23. 404 ──────────────────────────────────────────────────────────── */
.e404{text-align:center;padding:48px 20px}
.e404 .code{font-family:var(--ff-mono);font-size:62px;font-weight:700;color:var(--rule-dk);line-height:1;letter-spacing:-.04em}
.e404 h1{font-size:22px;margin:11px 0 8px}
.e404 p{font-size:13px;color:var(--ink-2);max-width:56ch;margin:0 auto 18px}

/* ── 24. RESPONSIVE ───────────────────────────────────────────────────── */
@media (max-width:1100px){
  .brd{grid-template-columns:40px 1fr 96px 210px}
  .topic{grid-template-columns:32px 1fr 68px 68px 186px}
  .tl-head{grid-template-columns:32px 1fr 68px 68px 186px}
  .post{grid-template-columns:164px 1fr}
  .foot .fgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .tfoot{grid-template-columns:1fr}
  .prevnext{justify-content:flex-start}
  /* postbit collapses to a strip above the body */
  .post{grid-template-columns:1fr}
  .pbit{
    border-right:0;border-bottom:1px solid var(--rule);display:flex;align-items:center;
    gap:11px;text-align:left;padding:9px 12px;flex-wrap:wrap
  }
  .pbit-av{width:44px;height:44px;margin:0;flex:0 0 auto}
  .pbit-id{min-width:0;flex:1 1 160px}
  .pbit-name{margin-bottom:1px}
  .pbit-title{margin-bottom:3px}
  .pbit-rank{margin-bottom:0}
  .pbit-stats{
    border-top:0;padding-top:0;margin-top:0;display:flex;gap:4px 14px;flex-wrap:wrap;
    font-size:10.8px;flex:1 1 100%
  }
  .pbit-stats .row{display:inline-flex;gap:4px}
  .rep,.awards{margin-top:0;padding-top:0;border-top:0}
  .awards{justify-content:flex-start}
  .prof-hd{grid-template-columns:64px 1fr;gap:12px}
  .prof-av{width:64px;height:64px}
  .prof-hd>.prof-side{grid-column:1/-1}
  .vf-hd{grid-template-columns:1fr}
  .hdr-since{display:none}
}
@media (max-width:760px){
  /* board index → stacked cards that still show last-post info */
  .brd{grid-template-columns:36px 1fr;padding-bottom:2px}
  .brd-counts{
    grid-column:2;border-left:0;text-align:left;padding:0 14px 6px 10px;
    display:flex;gap:14px;font-size:11px
  }
  .brd-counts b{display:inline;font-size:11.5px;margin-right:3px}
  .brd-counts span{display:inline}
  .brd-last{grid-column:1/-1;border-left:0;border-top:1px dotted var(--hair);padding:8px 14px;background:rgba(255,255,255,.5)}
  .brd-sub{padding-left:14px}
  /* topic rows → two-line cards */
  .tl-head{display:none}
  .topic{grid-template-columns:30px 1fr;padding-bottom:3px}
  .t-num{
    grid-column:2;border-left:0;text-align:left;padding:0 12px 5px 6px;font-size:11px;
    display:inline-block;color:var(--ink-3)
  }
  .t-last{grid-column:1/-1;border-left:0;border-top:1px dotted var(--hair);padding:6px 12px}
  .topic-hd h1{font-size:17.5px}
  .foot .fgrid{grid-template-columns:1fr}
  .nav a{padding:8px 11px;font-size:12px}
  .brand-txt .brand-name{display:block;font-size:21px}
}
@media (max-width:520px){
  .topstrip .wrap{justify-content:center;text-align:center}
  .mini-login{justify-content:center}
  .mini-login input[type=text],.mini-login input[type=password]{width:78px}
  .hdr .wrap{gap:11px}
  .hdr-search input{width:100%}
  .hdr-tools{width:100%}
  .hdr-search{width:100%}
  .p-body{padding:12px;font-size:13px}
  .pbit{padding:8px 11px}
  .tabs a{padding:6px 10px;font-size:11.5px}
  .e404 .code{font-size:46px}
}

/* ── 25. PRINT ────────────────────────────────────────────────────────── */
@media print{
  :root{--page:#fff}
  body{background:#fff;font-size:10.5pt;color:#000}
  .topstrip,.nav,.hdr-tools,.ad,.p-acts,.p-sig,.pbit-av,.awards,.rep,.jumpto,.prevnext,
  .pgn,.foot .fgrid,.skip,.mini-login,.viewing,.tabs{display:none!important}
  .hdr{background:none;border-bottom:2pt solid #000;box-shadow:none}
  .brand-txt .brand-name{display:block;color:#000;text-shadow:none}
  .brand-txt .tag{color:#444}
  .post,.panel{border:1pt solid #999;box-shadow:none;break-inside:avoid}
  .post{grid-template-columns:120pt 1fr}
  .pbit{background:none;border-right:1pt solid #ccc}
  .cat-bar{background:none;border-bottom:1pt solid #999}
  .quote{background:none;border-left:2pt solid #999}
  a{color:#000;text-decoration:none}
  .p-body a::after{content:" (" attr(href) ")";font-size:8pt;color:#555}
  .foot{background:none;color:#333;border-top:1pt solid #999}
  .fbot{color:#555}
}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
