/* =============================================================================
   ODZVONILO — web UI kit component styles.
   Reads tokens from ../../colors_and_type.css. Component classes lifted from the
   source mockup, re-pointed at the canonical token names.
   ========================================================================== */

*{box-sizing:border-box;}
html,body{margin:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;}

/* ---- Portal shell (no browser chrome — runs in a real browser) ---- */
.oz-portal{min-height:100vh;background:var(--bg);display:flex;flex-direction:column;}
.oz-body{flex:1;padding:0;}
.oz-body-in{max-width:1080px;margin-inline:auto;padding:30px 26px 56px;width:100%;}
@media(max-width:560px){.oz-body-in{padding:22px 16px 40px;}}
.oz-url{flex:1;background:var(--bg);border:1px solid var(--chromeb);padding:5px 11px;
  font:12px/1 var(--font-data);color:var(--muted);display:flex;align-items:center;gap:6px;}

/* ---- Masthead (sticky full-bleed bar, content aligned to body column) ---- */
.oz-head{position:sticky;top:0;z-index:20;background:var(--header);border-bottom:2px solid var(--ink);}
/* Two-tier: brand + actions wrap to row 1; the nav strip (flex-basis:100%) drops to row 2. */
.oz-head-in{display:flex;align-items:center;gap:10px 16px;padding:12px 26px;flex-wrap:wrap;
  max-width:1080px;margin-inline:auto;width:100%;}
.oz-brand{display:flex;align-items:center;gap:9px;}
.oz-bell{color:var(--accent);font-size:24px;line-height:1;}
.oz-mark{font-family:var(--font-display);font-size:22px;letter-spacing:.04em;color:var(--ink);}
.oz-mark b{color:var(--accent);}
/* Row-1 right cluster (lang · account · secure); pushed right of the brand. */
.oz-head-actions{display:flex;align-items:center;gap:14px;margin-left:auto;}
/* Row-2 section strip: a full-width editorial section bar below the brand row — uppercase, tracked,
   bracketed by hairline rules so it reads as a deliberate masthead band (not a stray tab row). */
.oz-nav{display:flex;flex-basis:100%;align-items:stretch;gap:0;flex-wrap:nowrap;overflow-x:auto;
  border-top:1px solid var(--rule);margin-top:9px;scrollbar-width:thin;}
.oz-tab{font:700 11px/1 var(--font-data);color:var(--ink2);background:none;border:none;white-space:nowrap;
  padding:12px 13px;cursor:pointer;text-transform:uppercase;letter-spacing:.07em;text-decoration:none;
  border-bottom:2px solid transparent;transition:color .12s,background .12s;}
.oz-tab:hover{color:var(--ink);background:color-mix(in oklab,var(--ink) 5%,transparent);}
.oz-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);}
.oz-tab:first-child{padding-left:0;}
.oz-lang{font:700 12px/1 var(--font-data);color:var(--muted);cursor:pointer;background:none;border:none;}
.oz-lang b{color:var(--ink);}
.oz-theme{background:none;border:1px solid var(--ink);color:var(--ink);width:31px;height:31px;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px;}
.oz-secure{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--font-data);
  color:var(--ink);border:2px solid var(--ink);padding:7px 11px;text-decoration:none;cursor:pointer;}
/* responsive masthead: burger + CSS-only collapse (no JS). Desktop (>1080) = two tiers; ≤1080 = burger panel. */
.oz-nav-cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.oz-burger{display:none;align-items:center;justify-content:center;width:34px;height:34px;flex:none;
  border:1px solid var(--ink);color:var(--ink);cursor:pointer;}
.oz-burger .ti{font-size:19px;}
.oz-burger .ti-x{display:none;}
.oz-nav-cb:checked ~ .oz-head-in .oz-burger .ti-menu-2{display:none;}
.oz-nav-cb:checked ~ .oz-head-in .oz-burger .ti-x{display:inline-flex;}
@media (max-width:1080px){
  .oz-head-in{gap:10px;padding:12px 16px;}
  .oz-brand{margin-right:auto;}
  .oz-burger{display:inline-flex;order:2;}
  .oz-head-theme{order:2;}
  /* Collapsed by default; the checkbox reveals the stacked panel (nav above, actions below). */
  .oz-nav{display:none;flex-basis:100%;order:3;flex-direction:column;flex-wrap:nowrap;gap:0;overflow:visible;
    border-top:1px solid var(--rule);margin-top:6px;padding-top:6px;}
  .oz-head-actions{display:none;flex-basis:100%;order:4;margin-left:0;flex-direction:column;align-items:stretch;gap:0;}
  .oz-nav-cb:checked ~ .oz-head-in .oz-nav{display:flex;}
  .oz-nav-cb:checked ~ .oz-head-in .oz-head-actions{display:flex;border-top:1px solid var(--rule);margin-top:6px;padding-top:6px;}
  .oz-nav .oz-tab{padding:13px 4px;border-bottom:1px solid var(--rule);}
  .oz-head-actions .oz-lang,.oz-head-actions .oz-acct{padding:13px 4px;border-bottom:1px solid var(--rule);
    display:inline-flex;align-items:center;gap:7px;}
  .oz-head-actions .oz-secure{margin-top:12px;justify-content:center;}
}

/* ---- Body shell ---- */
.oz-body{padding:24px 26px;min-height:420px;}
.oz-hero-slogan{font:700 23px/1.15 var(--font-head);color:var(--ink);margin:0 0 22px;}
.oz-hero-slogan .la{display:block;font:italic 400 13px/1 var(--font-body);
  letter-spacing:.04em;color:var(--faint);margin-top:6px;}

/* ---- Stamps ---- */
.oz-stamprow{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.oz-stamp{font-family:var(--font-display);font-size:13px;color:var(--accent);
  border:2px solid var(--accent);padding:5px 9px;letter-spacing:.06em;
  transform:rotate(-4deg);opacity:.9;white-space:nowrap;display:inline-block;}

/* ---- Kicker / label ---- */
.oz-kicker{font:400 11px/1 var(--font-display);letter-spacing:.08em;color:var(--accent);text-transform:uppercase;}
.oz-label{font:400 11px/1 var(--font-display);letter-spacing:.1em;color:var(--muted);
  text-transform:uppercase;margin:0 0 6px;display:block;}

/* ---- Headlines ---- */
.oz-h1{font-family:var(--font-head);font-weight:700;font-size:29px;line-height:1.08;
  color:var(--ink);margin:11px 0 10px;letter-spacing:-.01em;text-wrap:balance;}
.oz-h1.sm{font-size:22px;}
.oz-dek{font:400 18px/1.5 var(--font-body);color:var(--ink2);max-width:60ch;margin:0 0 12px;}
.oz-byline{font:400 12px/1 var(--font-data);color:var(--muted);margin:0 0 16px;}
.oz-p{max-width:62ch;font:400 16px/1.7 var(--font-body);color:var(--ink);margin:0 0 14px;}

/* ---- Meta + provenance ---- */
.oz-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;
  font:400 12px/1 var(--font-data);color:var(--muted);margin:8px 0;}
.oz-prov{display:inline-flex;align-items:center;gap:5px;font:700 10px/1 var(--font-data);
  letter-spacing:.04em;border:1px solid currentColor;padding:3px 7px;}
.pv{color:var(--pv);}.pu{color:var(--pu);}.pr{color:var(--pr);}.pd{color:var(--pd);}
.oz-tag{font:700 10px/1 var(--font-data);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}

/* ---- Redaction ---- */
.oz-redact{display:inline-block;background:var(--redact);border:1px solid var(--muted);
  height:.85em;vertical-align:-2px;}

/* ---- Rules + lists ---- */
.oz-rule{border:none;border-top:1px solid var(--rule);margin:18px 0;}
.oz-list{list-style:none;margin:0;padding:0;}
.oz-row{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--rule);}
.oz-ref{font:400 11px/1.3 var(--font-data);color:var(--faint);min-width:96px;}
.oz-rt{font-family:var(--font-head);font-weight:600;font-size:17px;color:var(--ink);text-decoration:none;}
.oz-rt:hover{text-decoration:underline;text-decoration-color:var(--accent);}

/* ---- News ---- */
.oz-news{padding:11px 0;border-bottom:1px solid var(--rule);display:flex;gap:12px;align-items:baseline;}
.oz-news time{font:700 12px/1 var(--font-data);color:var(--muted);white-space:nowrap;min-width:90px;}
.oz-news a{font-family:var(--font-body);font-weight:500;font-size:15px;color:var(--ink);text-decoration:none;}
.oz-news a:hover{text-decoration:underline;}

/* ---- Search + chips ---- */
.oz-search{display:flex;align-items:center;gap:8px;background:var(--surface);
  border:2px solid var(--ink);padding:9px 12px;color:var(--faint);font:14px/1 var(--font-data);}
.oz-search input{border:none;outline:none;flex:1;font:inherit;color:var(--ink);background:none;}
.oz-chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0;}
.oz-chip{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--font-data);color:var(--ink2);background:var(--chip);
  border:1px solid var(--rule);padding:6px 10px;cursor:pointer;white-space:nowrap;}
.oz-chip.is-on{background:var(--ink);color:var(--bg);border-color:var(--ink);}

/* ---- Cards ---- */
.oz-card{background:var(--surface);border:1px solid var(--rule);padding:13px 15px;margin-bottom:11px;}
.oz-cardtab{display:inline-flex;align-items:center;background:var(--ink);color:var(--bg);
  font:700 9px/1 var(--font-data);letter-spacing:.1em;padding:5px 8px;margin-bottom:8px;text-transform:uppercase;}
.oz-hash{font:400 11px/1 var(--font-data);color:var(--faint);margin-top:6px;}
.oz-dl{display:inline-flex;align-items:center;gap:5px;color:var(--link);
  font:700 12px/1 var(--font-data);text-decoration:none;cursor:pointer;}

/* ---- CTA + submission zone ---- */
.oz-cta{display:block;border:2px solid var(--ink);padding:15px 18px;background:var(--surface);
  text-decoration:none;color:var(--ink);margin-top:18px;cursor:pointer;}
.oz-cta .ct{font:700 18px/1.2 var(--font-head);display:flex;align-items:center;gap:8px;}
.oz-cta .cs{font:400 13px/1 var(--font-data);color:var(--muted);margin-top:4px;display:block;}
.zone-submit{background:#0a0806;color:#e3ddcf;}
.oz-zone{margin-top:14px;background:#0a0806;border:1px solid #2c271e;padding:16px 18px;color:#e3ddcf;}
.oz-zone .zt{display:flex;align-items:center;gap:8px;font:700 14px/1 var(--font-data);color:#e3ddcf;}
.oz-zone .zs{font:400 13px/1.55 var(--font-data);color:#9a9486;margin-top:8px;max-width:60ch;}
.oz-zone .zb{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--font-data);
  color:#8fae5f;margin-top:10px;border:1px solid #3f5a2e;padding:5px 9px;}

/* ---- Note + pull quote ---- */
.oz-note{border:1px dashed var(--muted);background:var(--surface);padding:12px 15px;
  font:400 14px/1.55 var(--font-body);color:var(--ink2);max-width:62ch;}
.oz-note b{font-family:var(--font-display);font-weight:400;font-size:12px;letter-spacing:.05em;color:var(--ink);}
.oz-pull{font-family:var(--font-display);font-size:18px;line-height:1.4;color:var(--ink);
  border-left:3px solid var(--accent);padding:4px 0 4px 16px;margin:18px 0;max-width:48ch;}

/* ---- Forum ---- */
.oz-warn{display:flex;gap:10px;border:1px dashed var(--accent);background:var(--surface);
  padding:12px 14px;font:400 13px/1.5 var(--font-body);color:var(--ink2);margin-bottom:16px;}
.oz-warn i{color:var(--accent);font-size:18px;}
.oz-warn b{color:var(--ink);}
.oz-thread{padding:13px 0;border-bottom:1px solid var(--rule);display:flex;
  justify-content:space-between;gap:12px;align-items:baseline;}
.oz-thread .tt{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--ink);}
.oz-thread .tm{font:400 12px/1 var(--font-data);color:var(--muted);margin-top:4px;}
.oz-thread .rc{font:700 13px/1 var(--font-data);color:var(--accent);white-space:nowrap;}

/* ---- Buttons ---- */
.oz-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font:700 12px/1 var(--font-data);background:var(--ink);color:var(--bg);
  border:2px solid var(--ink);padding:9px 14px;cursor:pointer;}
.oz-btn i{font-size:14px;line-height:1;}
.oz-btn--ghost{background:transparent;color:var(--ink);border:2px solid var(--ink);}
.oz-btn--accent{background:var(--accent);color:var(--bg);border-color:var(--accent);}
.btn--sm{padding:6px 10px;font-size:11px;}
.oz-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ---- Footer ---- */
.oz-social{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;}
.oz-social .sl-label{font:700 9px/1 var(--font-data);letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-right:2px;}
.oz-social a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
  border:1px solid var(--rule);background:var(--surface);cursor:pointer;
  transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease);}
.oz-social a:hover{border-color:var(--ink);background:var(--chip);}
.oz-social a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.oz-social img{width:17px;height:17px;display:block;pointer-events:none;}
.oz-social .x-dark{display:none;}
[data-theme="dark"] .oz-social .x-light{display:none;}
[data-theme="dark"] .oz-social .x-dark{display:block;}

/* sizes */
.oz-social--sm a{width:26px;height:26px;}
.oz-social--sm img{width:14px;height:14px;}
.oz-social--lg a{width:40px;height:40px;}
.oz-social--lg img{width:21px;height:21px;}
/* bare — icon only, no tile */
.oz-social--bare a{border-color:transparent;background:transparent;}
.oz-social--bare a:hover{border-color:transparent;background:transparent;}
.oz-social--bare a:hover img{opacity:.6;}
.oz-social--bare img{transition:opacity var(--fast) var(--ease);}
/* pill — single bordered capsule */
.oz-social--pill .sl-pill{display:inline-flex;border:2px solid var(--ink);background:var(--surface);}
.oz-social--pill .sl-pill a{border:none;border-right:1px solid var(--rule);background:transparent;}
.oz-social--pill .sl-pill a:last-child{border-right:none;}
.oz-social--pill .sl-pill a:hover{background:var(--chip);}
/* row — stacked labeled links */
.oz-social--row{display:flex;flex-direction:column;align-items:stretch;gap:0;}
.oz-social--row .sl-label{margin:0 0 8px;}
.oz-social--row .sl-row{display:flex;align-items:center;gap:11px;width:100%;height:auto;
  border:none;border-bottom:1px solid var(--rule);background:transparent;padding:10px 2px;text-decoration:none;}
.oz-social--row .sl-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent);}
.oz-social--row .sl-ic{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border:1px solid var(--rule);background:var(--surface);flex:none;}
.oz-social--row .sl-ic img{width:18px;height:18px;}
.oz-social--row .sl-meta{display:flex;flex-direction:column;gap:2px;}
.oz-social--row .sl-meta b{font:700 12px/1 var(--font-data);color:var(--ink);}
.oz-social--row .sl-meta .sl-handle{font:400 11px/1 var(--font-data);color:var(--muted);}
.oz-social--row .sl-row > i{margin-left:auto;color:var(--muted);font-size:15px;}
.oz-social--row .sl-row:hover > i{color:var(--accent);}
.oz-foot{border-top:2px solid var(--ink);background:var(--header);width:100%;}
.oz-foot-in{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;
  max-width:1080px;margin-inline:auto;width:100%;padding:22px 26px;
  font:400 12px/1.5 var(--font-data);color:var(--muted);}
.oz-foot a{color:var(--link);text-decoration:none;}
.oz-foot a:hover{text-decoration:underline;}
.oz-foot .mir{color:var(--ink2);}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* =============================================================================
   FORUM · AUTH · PROFILE — added for the forum + account component sets.
   ========================================================================== */

/* ---- Breadcrumb / back ---- */
.oz-crumb{display:flex;align-items:center;gap:8px;font:700 11px/1 var(--font-data);
  color:var(--muted);margin-bottom:14px;flex-wrap:wrap;}
.oz-crumb a{color:var(--link);text-decoration:none;cursor:pointer;}
.oz-crumb a:hover{text-decoration:underline;}
.oz-crumb .sep{color:var(--faint);}

/* ---- Forms ---- */
.oz-form{max-width:440px;}
.oz-form--wide{max-width:620px;}
.oz-field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px;}
.oz-flabel{font:400 11px/1 var(--font-display);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;}
.oz-input{background:var(--surface);border:2px solid var(--ink);padding:11px 13px;
  font:14px/1.3 var(--font-data);color:var(--ink);width:100%;}
.oz-input::placeholder{color:var(--faint);}
textarea.oz-input{resize:vertical;min-height:140px;font-family:var(--font-body);font-size:15px;line-height:1.65;}
.oz-input--code{font:700 16px/1 var(--font-data);letter-spacing:.28em;text-align:center;}
.oz-hint{font:400 12px/1.5 var(--font-data);color:var(--muted);}
.oz-hint b{color:var(--ink);font-weight:700;}
.oz-row2{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}

/* ---- Notice strips ---- */
.oz-notice{border:1px dashed var(--muted);background:var(--surface);padding:11px 14px;
  font:400 13px/1.55 var(--font-body);color:var(--ink2);display:flex;gap:9px;}
.oz-notice i{font-size:16px;color:var(--muted);flex:none;margin-top:1px;}
.oz-notice b{color:var(--ink);}
.oz-notice--safe{border-style:solid;border-color:var(--pv);}
.oz-notice--safe i{color:var(--pv);}
.oz-notice--warn{border-color:var(--accent);}
.oz-notice--warn i{color:var(--accent);}

/* ---- Posts (thread detail) ---- */
.oz-thread-title{font:700 25px/1.12 var(--font-head);color:var(--ink);margin:0 0 6px;letter-spacing:-.01em;text-wrap:balance;}
.oz-thread-sub{font:400 12px/1 var(--font-data);color:var(--muted);margin-bottom:18px;display:flex;gap:12px;flex-wrap:wrap;}
.oz-post{border-bottom:1px solid var(--rule);padding:16px 0;}
.oz-post--op{background:var(--surface);border:1px solid var(--rule);padding:16px 17px;margin-bottom:14px;}
.oz-post-head{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap;}
.oz-handle{font:700 12px/1 var(--font-data);color:var(--ink);}
.oz-handle .at{color:var(--faint);}
.oz-postmeta{font:400 12px/1 var(--font-data);color:var(--muted);}
.oz-role{display:inline-flex;align-items:center;font:700 9px/1 var(--font-data);letter-spacing:.06em;
  border:1px solid var(--rule);padding:4px 7px;color:var(--muted);text-transform:uppercase;white-space:nowrap;}
.oz-role--src{color:var(--pv);border-color:var(--pv);}
.oz-role--press{color:var(--link);border-color:var(--link);}
.oz-role--mod{color:var(--accent);border-color:var(--accent);}
.oz-post-body{font:400 15px/1.7 var(--font-body);color:var(--ink);max-width:62ch;}
.oz-post-body p{margin:0 0 10px;}
.oz-post-actions{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap;}
.oz-post-actions .pa{display:inline-flex;align-items:center;gap:5px;font:700 11px/1 var(--font-data);
  color:var(--muted);background:none;border:1px solid transparent;padding:5px 8px;cursor:pointer;white-space:nowrap;}
.oz-post-actions .pa i{font-size:14px;}
.oz-post-actions .pa:hover{color:var(--accent);border-color:var(--rule);}
.oz-post-actions .pa.is-on{color:var(--accent);border-color:var(--accent);}
.oz-post-actions .pa.report:hover{color:var(--pd);border-color:var(--pd);}
.oz-post-actions .pa.report.is-on{color:var(--pd);border-color:var(--pd);}
.oz-pavatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;
  border:1px solid var(--rule);background:var(--chip);color:var(--accent);font:700 12px/1 var(--font-data);}
.oz-op-tag{display:inline-flex;align-items:center;font:700 9px/1 var(--font-data);letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);border:1px solid var(--accent);padding:4px 7px;white-space:nowrap;}
.oz-inlinereply{margin-top:12px;border-left:2px solid var(--accent);padding-left:13px;}
.oz-inlinereply textarea{min-height:84px;margin-bottom:10px;}
.oz-replies-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:20px 0 4px;padding-bottom:8px;border-bottom:1px solid var(--rule);flex-wrap:wrap;}
.oz-sort{display:flex;gap:4px;}
.oz-sortbtn{font:700 10px/1 var(--font-data);letter-spacing:.03em;color:var(--muted);background:none;
  border:1px solid var(--rule);padding:5px 9px;cursor:pointer;}
.oz-sortbtn.is-on{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.oz-postlist{display:flex;flex-direction:column;}

/* ---- Composer ---- */
.oz-composer{border:2px solid var(--ink);background:var(--surface);padding:16px 17px;margin-top:18px;}
.oz-composer-h{font:700 13px/1 var(--font-data);color:var(--ink);text-transform:uppercase;letter-spacing:.06em;
  display:flex;align-items:center;gap:7px;margin-bottom:12px;}
.oz-composer-foot{display:flex;align-items:center;gap:14px;margin-top:12px;flex-wrap:wrap;}
.oz-pow{font:400 11px/1.4 var(--font-data);color:var(--muted);display:inline-flex;align-items:center;gap:6px;}
.oz-pow i{color:var(--pv);}

/* ---- Auth ---- */
.oz-auth{max-width:430px;margin-inline:auto;}
.oz-auth-card{border:2px solid var(--ink);background:var(--surface);padding:24px 24px 22px;}
.oz-segment{display:flex;border:2px solid var(--ink);margin-bottom:20px;}
.oz-segment button,.oz-segment a{flex:1;font:700 11px/1 var(--font-data);letter-spacing:.04em;background:none;
  border:none;padding:10px;cursor:pointer;color:var(--ink2);text-transform:uppercase;
  text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center;}
.oz-segment a+a,.oz-segment button+button{border-left:2px solid var(--ink);}
.oz-segment button.is-on,.oz-segment a.is-on{background:var(--ink);color:var(--bg);}
.oz-auth-h{font:700 22px/1.1 var(--font-head);color:var(--ink);margin:0 0 4px;}
.oz-auth-sub{font:400 14px/1.55 var(--font-body);color:var(--ink2);margin:0 0 18px;max-width:46ch;}

/* ---- Profile ---- */
.oz-prof-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;
  border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:18px;}
.oz-prof-id{display:flex;align-items:center;justify-content:center;width:54px;height:54px;
  border:2px solid var(--ink);color:var(--accent);font-size:26px;flex:none;}
.oz-prof-handle{font:700 24px/1.05 var(--font-head);color:var(--ink);}
.oz-prof-handle .at{color:var(--faint);font-weight:400;}
.oz-prof-since{font:400 12px/1.4 var(--font-data);color:var(--muted);margin-top:3px;}
.oz-stats{display:flex;gap:28px;margin-left:auto;}
.oz-stat{text-align:right;}
.oz-stat .n{font:700 22px/1 var(--font-data);color:var(--ink);}
.oz-stat .l{font:400 10px/1.3 var(--font-display);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-top:4px;}
.oz-noshow{border:1px dashed var(--muted);padding:12px 15px;margin-top:6px;}
.oz-noshow .l{font:400 10px/1 var(--font-display);letter-spacing:.1em;color:var(--muted);text-transform:uppercase;display:block;margin-bottom:9px;}
.oz-noshow ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;}
.oz-noshow li{font:400 12px/1 var(--font-data);color:var(--ink2);display:inline-flex;align-items:center;gap:6px;}
.oz-noshow li i{color:var(--pr);font-size:14px;}

/* ---- Account control in masthead ---- */
.oz-acct{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--font-data);
  color:var(--ink);background:none;border:none;cursor:pointer;padding:7px 4px;}
.oz-acct:hover{color:var(--accent);}

/* =============================================================================
   PROFILE — expanded: tabs, security rows, sessions, invites, settings toggles.
   ========================================================================== */
.oz-prof-tabs{display:flex;gap:2px;border-bottom:2px solid var(--ink);margin:18px 0 16px;flex-wrap:wrap;}
.oz-prof-tab{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--font-data);letter-spacing:.02em;
  background:none;border:none;color:var(--ink2);padding:9px 12px;cursor:pointer;}
.oz-prof-tab i{font-size:15px;color:var(--muted);}
.oz-prof-tab:hover{color:var(--accent);}
.oz-prof-tab.is-on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);}
.oz-prof-tab.is-on i{color:var(--accent);}
.oz-prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media(max-width:560px){.oz-prof-grid{grid-template-columns:1fr;}}

.oz-feed-lite{list-style:none;margin:8px 0 0;padding:0;}
.oz-feed-lite li{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--rule);font:400 13px/1.5 var(--font-body);color:var(--ink2);}
.oz-feed-lite li:last-child{border-bottom:none;}
.oz-feed-lite time{font:700 11px/1 var(--font-data);color:var(--muted);min-width:60px;white-space:nowrap;}
.oz-feed-lite b{color:var(--ink);}

.oz-sec-rows{display:flex;flex-direction:column;gap:0;border:1px solid var(--rule);background:var(--surface);}
.oz-sec-row{display:flex;align-items:center;gap:13px;padding:13px 15px;border-bottom:1px solid var(--rule);}
.oz-sec-row:last-child{border-bottom:none;}
.oz-sec-ic{width:34px;height:34px;flex:none;border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:17px;}
.oz-sec-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.oz-sec-txt b{font:700 13px/1.2 var(--font-data);color:var(--ink);}
.oz-sec-txt span{font:400 12px/1.4 var(--font-data);color:var(--muted);}
.oz-sec-txt span.ok{color:var(--pv);display:inline-flex;align-items:center;gap:5px;}
.oz-sec-txt span.ok i{font-size:13px;}

.oz-sess{list-style:none;margin:8px 0 0;padding:0;border:1px solid var(--rule);background:var(--surface);}
.oz-sess li{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--rule);}
.oz-sess li:last-child{border-bottom:none;}
.oz-sess li > i{font-size:18px;color:var(--muted);flex:none;}
.oz-sess li > div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.oz-sess li b{font:700 12px/1.2 var(--font-data);color:var(--ink);}
.oz-sess li span{font:400 11px/1.3 var(--font-data);color:var(--muted);}

.oz-inv-list{display:flex;flex-direction:column;gap:9px;}
.oz-inv{display:flex;align-items:center;gap:12px;border:1px solid var(--rule);background:var(--surface);padding:11px 14px;}
.oz-inv > i{font-size:17px;color:var(--muted);flex:none;}
.oz-inv .code{font:700 15px/1 var(--font-data);letter-spacing:.16em;color:var(--ink);}
.oz-inv .st{font:400 11px/1 var(--font-data);color:var(--muted);margin-left:auto;}
.oz-inv.used{opacity:.6;}
.oz-inv.used .code{text-decoration:line-through;}

.oz-psets{display:flex;flex-direction:column;border:1px solid var(--rule);background:var(--surface);}
.oz-pset{display:flex;align-items:center;gap:14px;padding:12px 15px;border-bottom:1px solid var(--rule);}
.oz-pset:last-child{border-bottom:none;}
.oz-pset-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.oz-pset-txt b{font:700 13px/1.2 var(--font-data);color:var(--ink);}
.oz-pset-txt span{font:400 11px/1.3 var(--font-data);color:var(--muted);}
.oz-switch{flex:none;width:42px;height:24px;border:2px solid var(--ink);background:var(--bg);cursor:pointer;padding:0;position:relative;transition:background var(--fast) var(--ease);}
.oz-switch .kn{position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--ink);transition:transform var(--fast) var(--ease),background var(--fast) var(--ease);}
.oz-switch.is-on{background:var(--accent);border-color:var(--accent);}
.oz-switch.is-on .kn{transform:translateX(18px);background:var(--bg);}

.oz-danger{display:flex;align-items:center;gap:14px;border:1px dashed var(--pd);background:var(--surface);padding:13px 15px;margin-top:18px;}
.oz-danger .oz-sec-txt b{color:var(--pd);}

/* =============================================================================
   TRANSPARENCY / TAKEDOWN REPORT (public) — honest summary of moderation.
   ========================================================================== */
.oz-trep-period{font:700 11px/1 var(--font-data);color:var(--muted);margin-bottom:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.oz-trep-period .dot{color:var(--faint);}
.oz-trep-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 6px;}
.oz-trep-stat{border:1px solid var(--rule);background:var(--surface);padding:15px 16px;}
.oz-trep-stat .n{font:700 32px/1 var(--font-data);color:var(--ink);letter-spacing:-.02em;}
.oz-trep-stat .n.accent{color:var(--accent);}
.oz-trep-stat .n.ok{color:var(--pv);}
.oz-trep-stat .l{font:400 10px/1.3 var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:7px;}
.oz-trep-stat .d{font:400 11px/1.4 var(--font-data);color:var(--faint);margin-top:5px;}
.oz-bars{display:flex;flex-direction:column;gap:11px;margin:12px 0;}
.oz-bar{display:grid;grid-template-columns:170px 1fr 44px;gap:12px;align-items:center;}
.oz-bar .bl{font:700 11px/1.2 var(--font-data);color:var(--ink2);text-transform:uppercase;letter-spacing:.03em;}
.oz-bar .track{height:14px;background:var(--chip);border:1px solid var(--rule);}
.oz-bar .fill{height:100%;background:var(--accent);}
.oz-bar .bn{font:700 12px/1 var(--font-data);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;}
.oz-trep-table{width:100%;border-collapse:collapse;border:1px solid var(--rule);background:var(--surface);margin:6px 0;}
.oz-trep-table th{font:400 9px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 12px;border-bottom:2px solid var(--ink);}
.oz-trep-table td{font:400 13px/1.4 var(--font-data);color:var(--ink);padding:11px 12px;border-bottom:1px solid var(--rule);}
.oz-trep-table tr:last-child td{border-bottom:none;}
.oz-trep-table .num{text-align:right;font-variant-numeric:tabular-nums;}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
   the "this action is logged" reminder (spec §12: actions logged, transparent).
   ========================================================================== */
.oz-scrim{position:fixed;inset:0;background:rgba(10,8,6,.62);display:flex;
  align-items:center;justify-content:center;padding:24px;z-index:50;}
.oz-modal{width:440px;max-width:100%;background:var(--surface);border:2px solid var(--ink);}
.oz-modal-h{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--rule);}
.oz-modal-h i{font-size:19px;}
.oz-modal-h .t{font:700 16px/1.15 var(--font-head);color:var(--ink);}
.oz-modal-h.danger i{color:var(--pd);}
.oz-modal-h.warn i{color:var(--accent);}
.oz-modal-b{padding:16px 18px;}
.oz-modal-b p{font:400 14px/1.55 var(--font-body);color:var(--ink2);margin:0 0 12px;max-width:none;}
.oz-modal-b .target{font:700 12px/1.4 var(--font-data);color:var(--ink);background:var(--chip);
  border:1px solid var(--rule);padding:8px 11px;margin-bottom:12px;}
.oz-modal-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.oz-modal-field label{font:400 10px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.oz-modal-field select,.oz-modal-field input{background:var(--bg);border:2px solid var(--ink);
  padding:9px 11px;font:13px/1.2 var(--font-data);color:var(--ink);}
.oz-logged{display:flex;gap:9px;align-items:flex-start;border:1px dashed var(--accent);background:var(--bg);
  padding:10px 12px;font:400 12px/1.5 var(--font-body);color:var(--ink2);}
.oz-logged i{color:var(--accent);font-size:15px;flex:none;margin-top:1px;}
.oz-logged b{color:var(--ink);}
.oz-modal-f{display:flex;gap:9px;justify-content:flex-end;padding:13px 18px;border-top:1px solid var(--rule);flex-wrap:wrap;}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
   Spec §12: pre-publication review for new accounts; fast takedown of doxxing;
   actions logged WITHOUT exposing identities; label rather than amplify.
   ========================================================================== */

/* moderator context bar */
.oz-modbar{display:flex;align-items:center;gap:9px;border:1px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 8%,var(--surface));padding:9px 13px;margin-bottom:16px;
  font:700 11px/1.3 var(--font-data);color:var(--ink);}
.oz-modbar i{color:var(--accent);font-size:16px;}
.oz-modbar .sub{font-weight:400;color:var(--muted);}

/* tab strip */
.oz-modtabs{display:flex;gap:0;border-bottom:2px solid var(--ink);margin-bottom:16px;flex-wrap:wrap;}
.oz-modtabs button{font:700 11px/1 var(--font-data);letter-spacing:.04em;background:none;border:none;
  padding:10px 13px;cursor:pointer;color:var(--ink2);text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;}
.oz-modtabs button .ct{font-weight:700;color:var(--accent);}
.oz-modtabs button.is-on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);}

/* queue item */
.oz-qitem{border:1px solid var(--rule);background:var(--surface);padding:14px 15px;margin-bottom:11px;}
.oz-qitem--high{border-left:3px solid var(--pd);}
.oz-qhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px;}
.oz-reason{display:inline-flex;align-items:center;font:700 9px/1 var(--font-data);letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--pd);color:var(--pd);padding:5px 7px;}
.oz-reason--spam{border-color:var(--pu);color:var(--pu);}
.oz-reason--unverified{border-color:var(--pu);color:var(--pu);}
.oz-reason--new{border-color:var(--link);color:var(--link);}
.oz-qcount{font:700 11px/1 var(--font-data);color:var(--accent);}
.oz-qmeta{font:400 11px/1 var(--font-data);color:var(--muted);margin-left:auto;}
.oz-qexcerpt{border-left:2px solid var(--rule);padding:3px 0 3px 12px;margin:0 0 11px;
  font:400 14px/1.55 var(--font-body);color:var(--ink2);max-width:62ch;}
.oz-qexcerpt .qh{font:700 11px/1 var(--font-data);color:var(--muted);display:block;margin-bottom:5px;}
.oz-qexcerpt .qh .at{color:var(--faint);}
.oz-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;}
.oz-btn--ok{background:var(--pv);border-color:var(--pv);color:var(--bg);}
.oz-btn--danger{background:var(--pd);border-color:var(--pd);color:var(--bg);}
.oz-actions .meta{font:400 11px/1.4 var(--font-data);color:var(--muted);margin-left:auto;}

/* audit log */
.oz-log{list-style:none;margin:0;padding:0;}
.oz-log li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--rule);}
.oz-log time{font:700 11px/1 var(--font-data);color:var(--muted);white-space:nowrap;min-width:96px;}
.oz-log .act{font:400 13px/1.5 var(--font-body);color:var(--ink);}
.oz-log .act b{font:700 11px/1 var(--font-data);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);}
.oz-log .anon{font:400 11px/1 var(--font-data);color:var(--faint);}

/* mod thread controls */
.oz-modctrl{display:flex;gap:9px;flex-wrap:wrap;align-items:center;border:1px dashed var(--accent);
  background:var(--surface);padding:11px 13px;margin-bottom:16px;}
.oz-modctrl .lab{font:700 10px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-right:4px;}
.oz-post--removed{opacity:.6;}
.oz-post--removed .oz-post-body{border-left:2px solid var(--pd);padding-left:12px;color:var(--muted);font-style:italic;}
.oz-removed-tag{display:inline-flex;align-items:center;font:700 9px/1 var(--font-data);letter-spacing:.06em;text-transform:uppercase;
  color:var(--pd);border:1px solid var(--pd);padding:4px 7px;white-space:nowrap;}

/* =============================================================================
   TEKSTOVI — editorial long-form. Lead feature with backdrop image, article
   rows with thumbnails, category tags, tag filter. Imagery is treated as
   EVIDENCE: aged/desaturated, always captioned + credited, never a scrim under
   text. Graphic media is gated (see .oz-img--gated).
   ========================================================================== */

/* image treatment — placeholder OR real <img>, both aged & document-like */
.oz-figure{margin:0;}
.oz-img{display:block;width:100%;object-fit:cover;
  filter:grayscale(.35) sepia(.12) contrast(.96);
  border:1px solid var(--rule);background:var(--chip);}
.oz-img-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  width:100%;background:var(--chip);border:1px solid var(--rule);color:var(--faint);
  background-image:repeating-linear-gradient(135deg,transparent,transparent 11px,color-mix(in srgb,var(--rule) 55%,transparent) 11px,color-mix(in srgb,var(--rule) 55%,transparent) 12px);}
.oz-img-ph i{font-size:30px;}
.oz-img-ph .pl{font:400 10px/1.4 var(--font-display);letter-spacing:.1em;text-transform:uppercase;}
.oz-figcap{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;
  font:400 11px/1.45 var(--font-data);color:var(--muted);padding:7px 0 0;border-top:none;}
.oz-figcap .cap{flex:1;min-width:160px;}
.oz-figcap .cred{color:var(--faint);}
.oz-figcap .cred::before{content:"FOTO · ";}
.oz-img--gated{position:relative;}
.oz-gate{border:1px dashed var(--accent);background:var(--surface);padding:12px 14px;
  font:400 13px/1.5 var(--font-body);color:var(--ink2);display:flex;gap:9px;align-items:flex-start;}
.oz-gate i{color:var(--accent);font-size:17px;flex:none;margin-top:1px;}
.oz-gate b{color:var(--ink);}
.oz-gate summary{cursor:pointer;color:var(--link);font:700 12px/1 var(--font-data);margin-top:4px;list-style:none;}

/* category tags */
.oz-tag{display:inline-flex;align-items:center;gap:5px;font:700 9px/1 var(--font-data);
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);
  padding:5px 8px;text-decoration:none;}
.oz-tag--solid{background:var(--accent);color:var(--bg);border-color:var(--accent);}
.oz-tag--muted{color:var(--muted);border-color:var(--rule);}
.oz-tagbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:14px 0 4px;}
.oz-tagbar .lead{font:400 10px/1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-right:4px;}

/* lead feature */
.oz-feature{border-bottom:2px solid var(--ink);padding-bottom:22px;margin-bottom:22px;}
.oz-feature .oz-img,.oz-feature .oz-img-ph{height:300px;}
.oz-feature-h{font:700 33px/1.06 var(--font-head);color:var(--ink);letter-spacing:-.015em;
  margin:14px 0 10px;text-wrap:balance;}
.oz-feature .oz-dek{font-size:19px;}
.oz-readmeta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;
  font:400 12px/1 var(--font-data);color:var(--muted);margin-top:10px;}
.oz-readmeta .rt{display:inline-flex;align-items:center;gap:5px;}

/* article rows (list) */
.oz-arts{list-style:none;margin:0;padding:0;}
.oz-art{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:18px 0;
  border-bottom:1px solid var(--rule);align-items:start;}
.oz-art .oz-img,.oz-art .oz-img-ph{height:104px;}
.oz-art-h{font:700 20px/1.16 var(--font-head);color:var(--ink);margin:8px 0 6px;text-decoration:none;display:block;letter-spacing:-.01em;}
a.oz-art-h:hover{text-decoration:underline;text-decoration-color:var(--accent);}
.oz-art-dek{font:400 14px/1.5 var(--font-body);color:var(--ink2);max-width:60ch;margin:0;}
.oz-art--wide{grid-template-columns:1fr;}
.oz-art--text{grid-template-columns:1fr;}
.oz-art--text .oz-art-h{font-size:18px;margin-top:0;}

/* article reader: related docs + discussion */
.oz-related{border:1px solid var(--rule);background:var(--surface);padding:13px 15px;margin:22px 0;}
.oz-related .oz-label{display:block;margin-bottom:10px;}
.oz-related-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--rule);
  text-decoration:none;color:var(--ink);font:400 14px/1.3 var(--font-body);}
.oz-related-row:first-of-type{border-top:none;}
.oz-related-row i{color:var(--muted);font-size:16px;}
.oz-related-row .rt{font-weight:500;}
.oz-related-row .rr{margin-left:auto;font:400 11px/1 var(--font-data);color:var(--faint);}
.oz-related-row:hover .rt{text-decoration:underline;text-decoration-color:var(--accent);}
.oz-discuss{border-top:2px solid var(--ink);margin-top:26px;padding-top:8px;}

@media (max-width:560px){
  .oz-art{grid-template-columns:1fr;}
  .oz-feature-h{font-size:26px;}
}
