
@font-face { font-family:"Baloo 2"; font-style:normal; font-weight:800; font-display:swap; src:url(/fonts/baloo2.woff2) format("woff2"); }
@font-face { font-family:"Nunito"; font-style:normal; font-weight:300 900; font-display:swap; src:url(/fonts/nunito.woff2) format("woff2"); }

:root {
  --paper:#fcf8f0; --dot:#e8dfd3; --ink:#34283f; --body:#51465a; --dim:#716579;
  --yellow:#f6d26b; --cream:#fff4d8; --pink:#fbe7ed; --mint:#e2f2e8; --sky:#e7eff8; --discord:#5b3b76;
  --surface:#fffefd; --line:#e4dcd2; --accent:#5b3b76; --accent-soft:#f0e9f7;
  --display:"Baloo 2", "Nunito", "Helvetica Neue", Arial, sans-serif;
  --text:"Nunito", "Helvetica Neue", Arial, sans-serif;
  --spring:cubic-bezier(.34,1.56,.64,1);
}
* { box-sizing:border-box; }
/* An explicit display (e.g. .fev's grid) silently defeats the hidden
   attribute; everything that says hidden must BE hidden. */
[hidden] { display:none !important; }
html { background:var(--paper); }
body {
  margin:0; color:var(--ink); font:16px/1.5 var(--text); font-weight:600;
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
}
/* The mascot stays in the brand; the working surface is quiet paper. */
body::before { content:none; }
main { width:100%; flex:1; }
a { color:inherit; }
main { max-width:1080px; margin:0 auto; padding:1.75rem 1.5rem 5rem; }
h1, h2, h3 { font-family:var(--display); font-weight:800; line-height:1.1; margin:0; letter-spacing:-.01em; }
h2 { font-size:2.25rem; }
h3 { font-size:1.25rem; margin-top:1.75rem; margin-bottom:.75rem; }
p { margin:.5rem 0; }
strong { font-weight:800; }

/* --- motion ------------------------------------------------------------- */
@keyframes pop { 0% { opacity:0; transform:scale(.92) translateY(10px); } 70% { transform:scale(1.02) translateY(-2px); } 100% { opacity:1; transform:none; } }
@keyframes bob { 0%, 100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-8px) rotate(2deg); } }
@keyframes wiggle { 0%, 100% { transform:rotate(0); } 25% { transform:rotate(-1.2deg); } 75% { transform:rotate(1.2deg); } }
@keyframes tilt { 0%, 100% { transform:rotate(-1.5deg); } 50% { transform:rotate(-.5deg) translateY(-3px); } }
.pop, .bob, .poster, .d1, .d2, .d3, .d4, .d5 { animation:none; }
.card, .stk { transition:border-color .15s ease; }
.card:hover, .stk:hover, .stk:active { transform:none; }
@media (prefers-reduced-motion: reduce) {
  .pop, .bob, .poster { animation:none !important; }
  .card, .stk { transition:none; }
}

/* --- header & nav -------------------------------------------------------- */
.site-head {
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.75rem 1.5rem;
  padding:.9rem 1.5rem; background:var(--surface); border-bottom:1px solid var(--line);
}
.site-head .left { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.5rem; }
.brand { display:flex; align-items:center; gap:.6rem; font-family:var(--display); font-weight:800; font-size:1.2rem; text-decoration:none; }
.brand img { width:36px; height:36px; }
.tabs { display:flex; flex-wrap:wrap; gap:.3rem; font-size:.9rem; font-weight:800; }
.tabs a { padding:.6rem 1rem; border-radius:8px; text-decoration:none; border:1px solid transparent; transition:background .15s ease; }
.tabs a:hover { background:var(--cream); }
.tabs a.on { background:var(--accent-soft); border-color:transparent; color:var(--accent); }
.who { display:flex; align-items:center; gap:.9rem; }
.who .name { font-family:var(--display); font-weight:800; font-size:1.15rem; }
@media (max-width: 480px) {
  .site-head { padding:.7rem 1rem; gap:.5rem .75rem; }
  .brand { font-size:1.05rem; }
  .brand img { width:30px; height:30px; }
  main { padding:1.25rem 1rem 4rem; }
}
.linkish { background:none; border:0; padding:0; color:inherit; text-decoration:underline; cursor:pointer; font:inherit; font-weight:700; }

/* --- buttons ------------------------------------------------------------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-height:44px;
  background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:8px; padding:.6rem 1rem;
  font:inherit; font-weight:700; font-size:.9rem; text-decoration:none; cursor:pointer;
  box-shadow:none; transition:background .15s ease,border-color .15s ease;
}
.btn:hover { background:var(--accent-soft); border-color:#b9a6c8; }
.btn:active { background:#e8dff1; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.btn.primary:hover { background:#49305f; }
.btn.mint { background:var(--mint); }
.btn.yellow { background:var(--yellow); }
.btn.big { font-family:var(--text); font-size:1rem; padding:.9rem 1.4rem; border-radius:10px; }
.btn[disabled] { opacity:.5; cursor:not-allowed; box-shadow:none; transform:none; }
.btn svg { flex:none; }

/* --- home ---------------------------------------------------------------- */
.hero { display:grid; grid-template-columns:1.1fr 1fr; gap:2.5rem; align-items:center; padding:1.5rem 0 2rem; }
.hero .copy { display:flex; flex-direction:column; gap:1.4rem; align-items:flex-start; }
.hero h1 { font-size:clamp(2.6rem, 6vw, 4.25rem); line-height:1.02; }
.hero h1 .hl { display:inline-block; background:var(--pink); padding:0 .18em; margin-top:.06em; line-height:1; border-radius:.22em; }
.hero .tagline { margin:0; font-size:1.2rem; line-height:1.5; max-width:30rem; color:var(--body); }
.tag { display:inline-flex; background:var(--yellow); border:3px solid var(--ink); border-radius:999px; padding:.3rem .9rem; font-weight:800; font-size:.85rem; transform:rotate(-2deg); }
.stage { position:relative; aspect-ratio:1; max-width:520px; margin:0 auto; width:100%; }
.stage .disc { position:absolute; inset:8%; border-radius:50%; background:var(--cream); border:3px solid var(--ink); }
.stage .mascot { position:absolute; left:17%; top:15%; width:66%; height:auto; filter:drop-shadow(5px 5px 0 rgba(28,28,30,.15)); }
.sticker {
  position:absolute; background:#fff; border:3px solid var(--ink); border-radius:14px; padding:.55rem .9rem;
  font-weight:800; font-size:.9rem; box-shadow:3px 3px 0 var(--ink); white-space:nowrap;
}
.sticker.a { right:0; top:2%; transform:rotate(6deg); }
.sticker.b { left:0; bottom:6%; transform:rotate(-5deg); background:var(--mint); }
.posterwrap { padding:1.5rem 0 1rem; display:flex; justify-content:center; }
.poster {
  width:100%; max-width:980px; border:3px solid var(--ink); border-radius:18px; overflow:hidden;
  box-shadow:4px 4px 0 var(--ink); background:var(--ink); transform:rotate(-1.5deg);
}
.poster img { display:block; width:100%; height:auto; }
.poster .cap { padding:.7rem 1rem; background:#fff; border-top:3px solid var(--ink); font-weight:800; font-size:.9rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.feats { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.1rem; padding:2rem 0 0; }
.feat { background:#fff; border:3px solid var(--ink); border-radius:18px; padding:1.2rem; box-shadow:3px 3px 0 var(--ink); }
.feat .ic { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:12px; border:2px solid var(--ink); margin-bottom:.7rem; }
/* H1: the how-it-works strip — three numbered sticker steps */
.hiw { padding-top:2.2rem; }
.hiwtitle { font-size:1.5rem; margin:0 0 1rem; }
.stepn { display:inline-grid; place-items:center; width:40px; height:40px; margin-bottom:.7rem; background:var(--yellow); border:3px solid var(--ink); border-radius:12px; box-shadow:2.5px 2.5px 0 var(--ink); font-family:var(--display); font-weight:800; font-size:1.25rem; }
.feat h3 { margin:0 0 .3rem; font-size:1.15rem; }
.feat p { margin:0; color:var(--body); font-size:.95rem; }
@media (max-width: 820px) {
  .hero { grid-template-columns:1fr; gap:1.5rem; }
  .stage { max-width:380px; }
  .feats { grid-template-columns:1fr; }
}

/* --- cards, stats, tables ------------------------------------------------ */
.card { background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:none; overflow:hidden; }
.cardhead { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 1.25rem; border-bottom:1px solid var(--line); background:var(--surface); }
.cardhead h3, .cardhead .t { margin:0; font-family:var(--text); font-weight:800; font-size:1.05rem; }
.cardhead a, .cardhead .hint { font-weight:800; font-size:.85rem; }
.cardbody { padding:1.25rem; }
.cardbody > :first-child { margin-top:0; }
.cardbody > :last-child { margin-bottom:0; }
.cardbody h3 { margin-top:1.25rem; }
.section { margin-top:1.75rem; }
.pagehead { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:1.5rem; }
.pagehead h2 { margin:0; }
.stats { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1.1rem; margin-bottom:1.5rem; }
.stat { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:1.1rem; box-shadow:none; display:flex; flex-direction:column; gap:.35rem; min-width:0; }
.stat .lbl { font-weight:800; font-size:.8rem; letter-spacing:.05em; text-transform:uppercase; color:var(--dim); }
.stat .num { font-family:var(--display); font-weight:800; font-size:2.4rem; line-height:1; overflow-wrap:anywhere; }
.stat .sub { font-weight:800; font-size:.85rem; }
/* the Systems Board (G2): each tile is a subsystem, toned by its own health
   and clicking through to its tab — green is earned, never decorative */
a.sys { text-decoration:none; color:inherit; cursor:pointer; transition:transform .12s var(--spring), box-shadow .12s ease; }
a.sys:hover { transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--ink); }
a.sys .num { font-size:1.9rem; }
a.sys .sub { font-weight:700; font-size:.8rem; color:var(--body); }
a.sys.ok { background:#e6fbef; }
a.sys.warn { background:#fff3c4; }
a.sys.bad { background:#ffe3ea; }
a.sys .neg { color:#b3324b; font-weight:800; }
.stat.good { background:var(--mint); } .stat.good .lbl { color:var(--ink); }
.stat.bad { background:var(--pink); } .stat.bad .lbl { color:var(--ink); }
.stat.sky { background:var(--sky); } .stat.sky .lbl { color:var(--ink); }
@media (max-width: 820px) { .stats { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width: 420px) { .stats { grid-template-columns:1fr; } }
.tbl { overflow-x:auto; }
table { border-collapse:collapse; width:100%; font-size:.95rem; }
th, td { text-align:left; padding:.8rem 1.25rem; border-bottom:2px solid #f0e6d2; vertical-align:middle; }
td.nowrap { white-space:nowrap; }
th { font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; color:var(--dim); font-weight:800; background:#fffdf7; }
tr:last-child td { border-bottom:0; }
td a { font-weight:800; }
.kv th { width:12rem; text-transform:none; letter-spacing:0; font-size:.95rem; color:var(--ink); background:transparent; }
.mono { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.9em; font-weight:600; }
.pill { display:inline-block; padding:.2rem .55rem; border-radius:6px; border:1px solid var(--line); font-size:.75rem; font-weight:700; background:var(--surface); white-space:nowrap; }
.pill.st-billed, .pill.st-success, .pill.st-grace { background:var(--mint); }
.pill.st-cancelled, .pill.st-failed { background:var(--pink); }
.pill.st-pending, .pill.st-review { background:var(--yellow); }
.balance { font-family:var(--display); font-size:2rem; font-weight:800; margin:0 0 1rem; }
.balance.bad { color:#c2283a; }
.balance.good { color:#0a7a43; }
.neg { color:#c2283a; }
.pos { color:#0a7a43; }
.empty { color:var(--dim); font-style:italic; margin:0; }
.hint { color:var(--dim); font-size:.9rem; font-weight:600; }
.hint em { font-style:normal; font-weight:800; }
.error { background:var(--pink); border:1px solid #e6bdc9; color:#81374d; padding:.7rem 1rem; border-radius:8px; font-weight:700; margin:0 0 1rem; }
.ok { background:var(--mint); border:1px solid #bdd9c9; color:#285c43; padding:.7rem 1rem; border-radius:8px; font-weight:700; margin:0 0 1rem; }

/* --- forms --------------------------------------------------------------- */
.stack { display:flex; flex-direction:column; gap:1rem; }
.stack label { display:flex; flex-direction:column; gap:.3rem; font-weight:800; font-size:.9rem; }
.stack .row { display:flex; gap:.75rem; flex-wrap:wrap; }
.stack .row label { flex:1 1 9rem; }
input, select {
  font:inherit; font-weight:600; color:var(--ink); background:#fff; padding:.6rem .8rem; min-height:44px;
  border:1px solid #c9becd; border-radius:8px; transition:border-color .15s ease;
}
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline:3px solid #8d6bac; outline-offset:3px; }
.stack fieldset { border:1px solid var(--line); border-radius:10px; padding:.8rem 1rem; }
.stack legend { font-weight:800; padding:0 .4rem; }
label.inline { display:inline-flex; flex-direction:row; align-items:center; gap:.4rem; font-weight:700; margin-right:1rem; }
label.inline input { min-height:0; accent-color:var(--ink); width:1.1rem; height:1.1rem; }
.togglerow { display:flex; flex-wrap:wrap; gap:.6rem; }
form.inline { display:inline; }
.toggle {
  border:1px solid var(--line); background:var(--surface); color:var(--ink); padding:.5rem .85rem; min-height:44px; border-radius:8px;
  font:inherit; font-weight:700; font-size:.9rem; cursor:pointer; box-shadow:none;
  transition:background .15s ease;
}
.toggle:hover { border-color:#b9a6c8; }
.toggle:active { background:var(--accent-soft); }
.toggle.on { background:var(--mint); }
.payrow { display:flex; flex-wrap:wrap; align-items:center; gap:.9rem; margin:.25rem 0 1rem; }
.payrow label { display:inline-flex; align-items:center; gap:.4rem; font-weight:800; }
.payrow input { width:8rem; height:44px; }
.payrow .hint { flex-basis:100%; }
.profiles { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.profiles code { background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:.3rem .6rem; }
.center { text-align:center; }
.narrow { max-width:40rem; margin:0 auto; }
.narrow.wide { max-width:52rem; }
.actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.actions form { display:inline; }

/* --- profile forms: one grid, one control height ------------------------ */
.grid2 { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem; }
.grid3 { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem; }
.stack .grid2 label, .stack .grid3 label { min-width:0; }
.stack label > .hint { font-weight:600; margin-top:-.15rem; }
input, select { width:100%; height:48px; }
input[type="file"] { padding:.55rem .6rem; font-size:.85rem; }
input[type="file"]::file-selector-button { font:inherit; font-weight:700; border:1px solid var(--line); border-radius:8px; background:var(--cream); padding:.2rem .6rem; margin-right:.6rem; cursor:pointer; }
/* Native arrows stay visible under the site's image policy and in forced colors. */
select { appearance:auto; -webkit-appearance:auto; padding-right:.7rem; background:var(--surface); }
input[type="radio"] { width:1.1rem; height:1.1rem; }
.stack fieldset.choice { margin:0; display:flex; flex-direction:column; justify-content:center; gap:.3rem; }
.stack fieldset.choice label.inline { margin:0; }
@media (max-width: 640px) { .grid2, .grid3 { grid-template-columns:1fr; } }

/* --- settings tabs ------------------------------------------------------- */
.subtabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.25rem; }
.subtabs a { padding:.6rem 1rem; border-radius:8px; border:1px solid var(--line); background:var(--surface); text-decoration:none; font-weight:700; font-size:.9rem; }
.subtabs a:hover { border-color:#b9a6c8; }
.subtabs a.on { background:var(--accent-soft); color:var(--accent); border-color:#d8c8e4; }
.kv td { font-weight:700; }

/* --- store marks --------------------------------------------------------- */
.mark { display:inline-flex; width:1.25em; height:1.25em; vertical-align:-.25em; flex:none; }
.mark svg { width:100%; height:100%; display:block; }
.mark.letter { align-items:center; justify-content:center; border-radius:.3em; background:var(--ink); color:#fff; font-size:.75em; font-weight:800; width:1.6em; height:1.6em; }
.mark.big { width:3.5rem; height:3.5rem; opacity:.35; }
.sitelabel { display:inline-flex; align-items:center; gap:.4em; white-space:nowrap; }
.sticker { display:inline-flex; align-items:center; gap:.3em; }
.sticker .sitelabel { gap:.3em; }
.toggle .mark { vertical-align:-.28em; }

/* --- tiles (checkouts, catalog) ---------------------------------------- */
.tiles { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:1.1rem; }
.tile { display:flex; flex-direction:column; text-decoration:none; color:inherit; min-width:0; }
.tile .pic, .dialog .pic { aspect-ratio:1; background:#fff; display:flex; align-items:center; justify-content:center; padding:1rem; border-bottom:1px solid var(--line); }
.tile .pic img, .dialog .pic img { max-width:100%; max-height:100%; object-fit:contain; }
.nopic { display:flex; align-items:center; justify-content:center; width:100%; height:100%; background:var(--paper); border-radius:12px; }
.tile .body { padding:.9rem 1rem 1rem; display:flex; flex-direction:column; gap:.45rem; flex:1; }
.tile .name { font-weight:800; font-size:.95rem; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tile .price { font-family:var(--display); font-size:1.35rem; line-height:1.1; display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem; }
.tile .price .fee { font-family:var(--text); font-size:.8rem; font-weight:800; color:var(--dim); }
.tile .meta { display:flex; justify-content:space-between; align-items:center; gap:.5rem; font-size:.8rem; color:var(--dim); font-weight:800; }
.tile .offers { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.3rem; font-size:.82rem; }
.tile .offers li { display:flex; align-items:center; gap:.5rem; justify-content:space-between; }
.tile .offers .mono { color:var(--dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tile .offers .cap { font-weight:800; }
.tile .toggle.wide { width:100%; margin-top:auto; }
.tile.picked { outline:3px solid var(--mint); outline-offset:-3px; }
a.tile:hover .name { text-decoration:underline; }

/* --- fees, thumbnails, store state --------------------------------------- */
.feetag { display:inline-block; background:var(--cream); border:1px solid var(--line); border-radius:6px; padding:.15rem .65rem; font-size:.8rem; font-weight:800; white-space:nowrap; }
.feetag.big { font-size:.85rem; padding:.45rem .75rem; }
.itemcell { display:inline-flex; align-items:center; gap:.6rem; }
.thumb { display:inline-flex; width:44px; height:44px; flex:none; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:8px; background:var(--surface); overflow:hidden; }
.thumb img { max-width:100%; max-height:100%; object-fit:contain; }
.thumb .mark.big { width:1.5rem; height:1.5rem; }
.tile .offers li.off { color:var(--dim); }
.tile .offers li.off .mark { opacity:.45; }
.tile .offers .state { font-weight:800; white-space:nowrap; }
.tile .offers li.live .state { color:#0a7a43; }
.hint.warn { background:var(--pink); border:1px solid #dfbdc7; border-radius:10px; padding:.4rem .6rem; color:var(--ink); font-weight:800; font-size:.8rem; margin:0; }

/* --- admin --------------------------------------------------------------- */
.btn.small { min-height:36px; padding:.35rem .8rem; font-size:.85rem; border-radius:8px; box-shadow:none; }
/* --- Profiles: book strip, stat tiles, family rail + pane, the stream ------ */
.pbook { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; border:3px solid var(--ink); border-radius:14px; background:var(--yellow); box-shadow:3px 3px 0 var(--ink); padding:.55rem .9rem; margin-bottom:1rem; }
.pbook .pbtitle { font-family:var(--display); font-weight:800; font-size:1.05rem; white-space:nowrap; }
.pbook .pbspace { flex:1; }
.fstats { display:grid; grid-template-columns:repeat(auto-fit, minmax(9rem,1fr)); gap:.8rem; margin-bottom:1rem; }
.fstat { border:3px solid var(--ink); border-radius:14px; box-shadow:2px 2px 0 var(--ink); padding:.55rem .9rem; background:#fff; display:flex; flex-direction:column; }
.fstat .n { font-family:var(--display); font-weight:800; font-size:1.5rem; line-height:1.1; }
.fstat.pinkish { background:var(--pink); } .fstat.yellowish { background:var(--cream); } .fstat.mintish { background:var(--mint); }
.ftoolbar { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:.8rem; }
.flegend { display:inline-flex; gap:.7rem; align-items:center; font-size:.75rem; color:var(--dim); font-weight:700; }
.flegend i { display:inline-block; width:10px; height:10px; border:2px solid var(--ink); border-radius:3px; margin-right:.25rem; vertical-align:-1px; }
.flegend .win, .fbar .win { background:var(--mint); }
.flegend .demand, .fbar .demand { background:var(--pink); }
.flegend .qty, .fbar .qty { background:var(--yellow); }
.flegend .decl, .fbar .decl { background:var(--sky); }
.fbar .oth { background:#ddd; }
.twopane { display:grid; grid-template-columns:17.5rem minmax(0,1fr); gap:1rem; align-items:start; }
.frail { border:3px solid var(--ink); border-radius:14px; background:#fff; box-shadow:2px 2px 0 var(--ink); overflow:hidden; position:sticky; top:1rem; }
.frail .railsearch { display:block; width:calc(100% - 1.2rem); margin:.6rem; min-width:0; }
.railsort { display:flex; align-items:center; gap:.4rem; padding:0 .7rem .5rem; }
.railsort select { border:2px solid var(--ink); border-radius:8px; background:#fff; font:inherit; font-weight:700; font-size:.85rem; padding:.15rem .4rem; flex:1; min-width:0; }
.raillist { max-height:32rem; overflow:auto; }
.raillist.all { max-height:none; } /* "View all" must visibly grow the rail, not scroll inside it */
.fam { display:block; width:100%; text-align:left; font:inherit; cursor:pointer; background:#fff; border:0; border-top:2px solid #efe7d4; padding:.45rem .7rem .5rem; }
.fam:hover { background:#fff6d6; }
.fam.sel { background:var(--cream); box-shadow:inset 5px 0 0 var(--ink); }
.fam .fname { font-family:var(--display); font-weight:800; font-size:.95rem; display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; }
.fam .fbar { display:flex; height:8px; border:2px solid var(--ink); border-radius:999px; overflow:hidden; background:#f6f0e2; margin:.25rem 0; }
.fam .fbar .s { display:block; height:100%; }
.fam .fmeta { font-size:.74rem; display:block; }
.frail [data-rail-empty] { padding:.6rem .7rem; margin:0; }
.frail .allrow { border-top:0; border-bottom:3px solid var(--ink); background:#fffdf7; }
.twopane + .streambox { margin-top:1rem; }
.rlabel { padding:.4rem .7rem .15rem; font-size:.64rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--dim); background:#fffdf7; border-top:2px solid var(--ink); }
/* the pane's name menu: pick one profile name inside a category */
.namemenu { position:relative; display:inline-block; }
.namemenu .dd { position:absolute; top:calc(100% + .4rem); left:0; background:#fff; border:3px solid var(--ink); border-radius:12px; box-shadow:3px 3px 0 var(--ink); min-width:16rem; max-height:20rem; overflow:auto; z-index:5; display:block; }
.namemenu .mi { display:flex; align-items:center; gap:.5rem; width:100%; text-align:left; font:inherit; font-weight:600; background:#fff; border:0; border-bottom:1px solid #efe7d4; padding:.4rem .8rem; cursor:pointer; }
.namemenu .mi:last-child { border-bottom:0; }
.namemenu .mi:hover { background:#fff6d6; }
.namemenu .mi.on { background:var(--cream); font-weight:800; }
.namemenu .mi.mhead { background:#fffdf7; border-bottom:2px solid var(--ink); cursor:default; }
.namemenu .mhead select { border:2px solid var(--ink); border-radius:8px; background:#fff; font:inherit; font-weight:700; font-size:.8rem; padding:.1rem .35rem; margin-left:auto; }
.namemenu .cnt { margin-left:auto; font-variant-numeric:tabular-nums; color:var(--dim); font-weight:800; }
.namemenu .mi .cnt { flex:none; }
.viewall { display:block; width:100%; border:0; border-top:2px solid var(--ink); background:var(--cream); font:inherit; font-family:var(--display); font-weight:800; font-size:.8rem; padding:.45rem; cursor:pointer; }
.viewall:hover { background:var(--yellow); }
.fpane { min-width:0; display:flex; flex-direction:column; gap:1rem; }
.slotbox { border:3px solid var(--ink); border-radius:14px; background:#fffdf7; padding:.8rem 1rem; }
.slotbox .sheethead, .streambox .sheethead { display:flex; gap:.6rem; align-items:baseline; flex-wrap:wrap; font-weight:800; font-family:var(--display); margin-bottom:.4rem; }
.slotbox .toolrow { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; margin-bottom:.6rem; }
.slotsearch { border:3px solid var(--ink); border-radius:10px; background:#fff; padding:.3rem .6rem; font:inherit; font-weight:700; min-width:12rem; }
.schip { cursor:pointer; user-select:none; }
.schip.on { outline:3px solid var(--ink); outline-offset:1px; box-shadow:2px 2px 0 var(--ink); }
.slotbox .pane { max-height:24rem; overflow:auto; border:2px solid var(--ink); border-radius:10px; background:#fff; }
.slotbox .pane table { border-collapse:separate; border-spacing:0; width:100%; }
.slotbox .pane th { position:sticky; top:0; z-index:1; background:#fffdf7; border-bottom:3px solid var(--ink); cursor:pointer; white-space:nowrap; }
.slotbox .pane th[data-sk]:hover { color:var(--ink); }
.slotbox .pane th.asc::after { content:" ▴"; } .slotbox .pane th.desc::after { content:" ▾"; }
.slotbox .pane td { white-space:nowrap; padding-top:.3rem; padding-bottom:.3rem; }
.slotbox .pane td.item { max-width:16rem; overflow:hidden; text-overflow:ellipsis; color:var(--dim); }
/* --- member page: tab strip, profile-world bars, timeline amounts --------- */
.mtabs { display:flex; gap:.5rem; flex-wrap:wrap; margin:1.2rem 0 .9rem; }
.mtab { display:inline-flex; align-items:center; min-height:44px; border:1px solid var(--line); border-radius:8px; background:var(--surface); font:700 .88rem var(--text); padding:.5rem .85rem; cursor:pointer; text-decoration:none; transition:background .15s ease,border-color .15s ease; }
.mtab:hover { background:var(--accent-soft); border-color:#b9a6c8; }
.mtab.on { background:var(--accent-soft); border-color:#d8c8e4; color:var(--accent); }
.tbadge { display:inline-block; min-width:1.35rem; text-align:center; background:var(--cream); border:1px solid var(--line); border-radius:6px; font-size:.72rem; padding:0 .3rem; margin-left:.35rem; vertical-align:2px; }
.tbadge.alert { background:var(--pink); }
.fsec { font-family:var(--display); font-weight:800; font-size:.9rem; border-top:2px solid #efe7d4; padding-top:.7rem; }
.checkrow { display:flex; align-items:center; gap:.5rem; font-weight:700; cursor:pointer; border-top:2px solid #efe7d4; padding-top:.7rem; }
.checkrow input { width:1.15rem; height:1.15rem; accent-color:var(--yellow); }
.stabs { margin:0 0 .8rem; }
.pickgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(13rem, 1fr)); gap:.5rem; margin-top:.6rem; }
.pickchip { display:flex; align-items:center; gap:.5rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); padding:.4rem .6rem; text-decoration:none; color:var(--ink); font-weight:700; font-size:.82rem; transition:background .15s ease,border-color .15s ease; }
.pickchip:hover { background:var(--accent-soft); border-color:#b9a6c8; }
.pickchip .pname2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.25; }
.grid4 { display:grid; gap:.8rem 1rem; grid-template-columns:1.3fr .9fr .7fr 1.3fr; }
@media (max-width: 640px) { .grid4 { grid-template-columns:1fr 1fr; } }
.pwbar { display:inline-flex; height:9px; border:2px solid var(--ink); border-radius:999px; overflow:hidden; background:#f6f0e2; min-width:6.5rem; vertical-align:middle; }
.pwbar .s { display:block; height:100%; }
.fev .amt { font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
/* --- the Inspector (H1 "Front Page": case cards + odds ledger) ------------- */
.daychip { text-decoration:none; }
.daychip.on { box-shadow:2px 2px 0 var(--ink); outline:3px solid var(--ink); outline-offset:1px; }
/* the Inspector's command block: labelled control rows + folds + cabinet tabs */
.ctl { display:grid; grid-template-columns:4.6rem 1fr; gap:.5rem .8rem; align-items:start; }
.ctl .lbl { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; font-weight:800; color:var(--dim); text-align:right; padding-top:.35rem; }
.ctl .crow { display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.dfold { position:relative; display:inline-block; }
.dfold summary { list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:.3rem; border:3px solid var(--ink); border-radius:999px; background:#fff; box-shadow:2px 2px 0 var(--ink); font-family:var(--display); font-weight:800; font-size:.8rem; padding:.14rem .8rem; }
.dfold summary::-webkit-details-marker { display:none; }
.dfold[open] summary { background:var(--yellow); }
.dfold .fold { position:absolute; z-index:30; top:calc(100% + .45rem); left:0; min-width:16rem; max-width:30rem; background:#fff; border:3px solid var(--ink); border-radius:14px; box-shadow:4px 4px 0 var(--ink); padding:.6rem .7rem; }
/* the Inspector's control card sits ABOVE the cards below it, so its open
   dropdown menus are never painted under the Playbook (the .pop entrance
   animation gives every card a temporary stacking context) */
.ctlcard { position:relative; z-index:40; overflow:visible; }
/* dropdown as a vertical MENU: one option per row, states readable at a
   glance — replaces the clumped pill-cloud folds on the Inspector controls */
.dfold .fold.menu { display:grid; gap:.3rem; min-width:14rem; max-height:22rem; overflow-y:auto; }
.fold.menu .mitem { display:flex; justify-content:space-between; align-items:center; gap:1rem; border:2px solid var(--ink); border-radius:9px; background:#fff; padding:.22rem .6rem; font-size:.85rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.fold.menu .mitem:hover { background:var(--cream); }
.fold.menu .mitem.on { background:var(--yellow); }
.fold.menu .mitem .n { color:var(--dim); font-size:.72rem; font-weight:700; }
.fold.menu .mitem .sitelabel { gap:.35rem; }
p.statline { margin:.8rem 0 0; font-size:.9rem; font-weight:700; color:var(--body); }
p.statline b.us { color:#7a5a00; }
.itabs { display:flex; gap:.35rem; flex-wrap:wrap; align-items:flex-end; border-bottom:3px solid var(--ink); margin:1.1rem 0 1rem; padding:0 .6rem; }
.itab { border:3px solid var(--ink); border-bottom:none; border-radius:12px 12px 0 0; background:#f3ecd9; color:var(--dim); font:inherit; font-family:var(--display); font-weight:800; font-size:.88rem; padding:.26rem .9rem .34rem; cursor:pointer; position:relative; top:0; }
.itab:hover { color:var(--ink); }
.itab.on { background:#fffdf7; color:var(--ink); box-shadow:0 3px 0 #fffdf7; }
.obar { display:inline-flex; width:8rem; height:12px; border:2px solid var(--ink); border-radius:999px; overflow:hidden; background:#f6f0e2; position:relative; vertical-align:middle; }
.obar i { display:block; height:100%; }
.obar i.w { background:var(--mint); }
.obar i.f { background:var(--pink); opacity:.75; }
.obar b { position:absolute; top:-4px; bottom:-4px; width:3px; background:var(--ink); }
/* the command bar's time presets */
.seg { display:inline-flex; border:3px solid var(--ink); border-radius:999px; overflow:hidden; background:#fff; box-shadow:2px 2px 0 var(--ink); }
.seg a { padding:.14rem .7rem; font-family:var(--display); font-weight:800; font-size:.78rem; color:var(--ink); text-decoration:none; border-right:2px solid var(--ink); }
.seg a:last-child { border-right:none; }
.seg a.on { background:var(--yellow); }
/* the risk grid: verdict-tinted cells + influence stacks */
.rgrid td.gcell { padding:.25rem .3rem; text-align:center; }
.cg { display:inline-block; min-width:3.2rem; border:2px solid var(--ink); border-radius:6px; padding:.05rem .3rem; font-size:.68rem; font-weight:800; font-family:ui-monospace,"SF Mono",Menlo,monospace; }
.cg.t { background:var(--pink); }
.cg.s { background:var(--yellow); }
.cg.i { background:#fff0e2; border-color:#b3324b; }
.cg.c { background:var(--mint); }
.cg.n { background:#f1eadb; color:var(--dim); border-color:#cfc4a9; }
.infl { display:inline-flex; height:16px; border:2px solid var(--ink); border-radius:6px; overflow:hidden; vertical-align:middle; }
.infl i { display:grid; place-items:center; padding:0 .25rem; font-style:normal; font-size:.6rem; font-weight:800; color:var(--ink); white-space:nowrap; overflow:hidden; }
.infl .w3 { background:var(--pink); } .infl .w2 { background:var(--yellow); } .infl .w1 { background:var(--sky); } .infl .wb { background:var(--mint); }
.recipe { border:2px solid #efe7d4; border-radius:12px; background:#fffdf7; padding:.6rem .8rem; margin-top:.6rem; display:grid; gap:.35rem; }
.recipe .rline { font-size:.95rem; }
.recipe .pills { gap:.3rem; }
.formp { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.72rem; }
.lintmark { color:#b3324b; cursor:help; font-size:.9rem; }
.ract.flag.on { color:#b3324b; opacity:1; font-weight:800; }
/* per-site report menu (0044): the ⚑ opens a site list */
.rflag { vertical-align:middle; }
.rflag summary.ract { box-shadow:1px 1px 0 var(--ink); padding:0 .3rem; }
.rflag .rmenu { min-width:11rem; display:grid; gap:.25rem; }
.rmenu .rsite { display:block; width:100%; text-align:left; font:inherit; font-size:.82rem; font-weight:700; border:2px solid var(--ink); border-radius:8px; background:#fff; padding:.15rem .5rem; cursor:pointer; }
.rmenu .rsite:hover { background:var(--cream); }
.rmenu .rsite.on { background:var(--pink); }
.riskwhy { max-width:26rem; white-space:normal; font-size:.8rem; }
.streambox { border:3px solid var(--ink); border-radius:14px; background:#fffdf7; padding:.8rem 1rem; }
.rpills { display:flex; gap:.5rem; flex-wrap:wrap; }
.rpill { cursor:pointer; user-select:none; }
/* the on-state must beat every status tint (st-success is mint) and be
   unmistakable either way — hence the extra specificity and the outline */
.rpills .rpill.on, .rpill.on { background:var(--yellow) !important; box-shadow:2px 2px 0 var(--ink); outline:3px solid var(--ink); outline-offset:1px; }
.fstream { max-height:32rem; overflow:auto; margin-top:.5rem; }
.fstream .fday { font-family:var(--display); font-weight:800; font-size:1.05rem; margin:.9rem 0 .4rem; }
.fstream .dgroup:first-child .fday { margin-top:0; }
.fev { display:grid; grid-template-columns:3.2rem auto 1fr auto; gap:.6rem; align-items:center; background:#fff; border:2px solid #efe7d4; border-radius:10px; padding:.4rem .7rem; margin-bottom:.4rem; }
.fev .what { min-width:0; }
@media (max-width: 900px) { .twopane { grid-template-columns:1fr; } .frail { position:static; } .raillist { max-height:18rem; } }
@media (max-width: 640px) { .fstats { grid-template-columns:1fr 1fr; } .fev { grid-template-columns:3.2rem 1fr; } .fev .what { grid-column:1 / -1; } }

/* --- the Address Ledger (D1) + Variant Tree (M2) --------------------------- */
.lsec { font-family:var(--display); font-weight:800; font-size:.78rem; letter-spacing:.07em; color:var(--dim); margin:1rem 0 .45rem; text-transform:uppercase; }
.lrow { display:grid; grid-template-columns:1fr auto auto; gap:.3rem 1rem; align-items:center;
  border:2.5px solid var(--ink); border-radius:12px; background:#fff; padding:.5rem .8rem; margin-bottom:.45rem; cursor:pointer; }
.lrow:hover { background:#fffdf4; }
.lrow .sub { grid-column:1 / -1; cursor:pointer; }
.lrow.edge-bad { border-left:8px solid #b3324b; }
.lrow.edge-warn { border-left:8px solid #a8790a; }
.lrow.edge-ok { border-left:8px solid #0a7a43; }
.lrow.edge-quiet { border-left:8px solid #cfc4a9; cursor:default; }
.st { display:inline-block; border:2.5px solid var(--ink); border-radius:8px; padding:.02rem .5rem; font-family:var(--display); font-weight:800; font-size:.72rem; white-space:nowrap; }
.st.bad { background:var(--pink); }
.st.warn { background:var(--yellow); }
.st.ok { background:var(--mint); }
.st.quiet { background:#f1eadb; color:var(--dim); border-color:#b9ad90; }
/* T2, the three-tier collapse: the reading surfaces say ACT / WATCH / FINE
   and nothing else on the face. The fourth state is a DASH — untested, and
   deliberately NOT green: FINE is earned by evidence, and letting "nothing
   has ever tested this" wear the safe colour is the exact merge the untested
   band was split out of "quiet" to prevent. */
.t3 { display:inline-block; border:2.5px solid var(--ink); border-radius:8px; padding:.02rem .55rem; font-family:var(--display); font-weight:800; font-size:.72rem; letter-spacing:.02em; white-space:nowrap; }
.t3-act { background:var(--pink); }
.t3-watch { background:var(--yellow); }
.t3-fine { background:var(--mint); }
.t3-none { background:transparent; color:var(--dim); border-style:dashed; border-color:#b9ad90; }
/* Vault-owned cells: read-only and DESIGNED, not broken. The same muted
   family as the untiered dash — a value the page shows and does not own. */
.vaultcell { color:var(--dim); background:repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(0,0,0,.03) 6px, rgba(0,0,0,.03) 12px); cursor:default; }
input[readonly], select[disabled] { color:var(--dim); background:#f4efe2; cursor:default; }
/* The dark-feed banner: a failed read, not an empty table. Never green-toned
   — the whole point is that it cannot be mistaken for a healthy state at a
   glance, which is how the lying-green tile got past everyone in the first
   place. */
.darkfeed { border:3px solid var(--ink); border-radius:12px; background:var(--pink); padding:.5rem .7rem; margin:0 0 .6rem; }
.darkfeed > b { font-family:var(--display); display:block; margin-bottom:.25rem; }
.darkfeed ul { margin:.15rem 0 .35rem; padding-left:1.1rem; }
.darkfeed li { margin:.1rem 0; }
.dfsev { display:inline-block; font-size:.68rem; border:2px solid var(--ink); border-radius:6px; padding:0 .3rem; background:#fff; }
.dfsev.df-blind, .dfsev.df-partial { font-family:var(--display); font-weight:800; }
.dfsev.df-understates { color:var(--dim); border-color:#b9ad90; }
.addr { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.95rem; font-weight:700; color:var(--ink); overflow-wrap:anywhere; }
.addr .hl, .lex .hl { border:2.5px solid var(--ink); border-radius:6px; padding:0 .22rem; font-weight:800; }
.addr .hl.bad, .lex .hl.bad { background:var(--pink); }
.addr .hl.warn, .lex .hl.warn { background:var(--yellow); }
.addr .hl.ok, .lex .hl.ok { background:var(--mint); }
.addr .quietpart { color:var(--dim); font-weight:600; }
.score { font-family:var(--display); font-weight:800; white-space:nowrap; font-size:.95rem; }
.score .w { color:#0a7a43; } .score .f { color:#b3324b; }
div.xrow { margin:-.15rem 0 .6rem; }
.lex { border:2.5px solid var(--ink); border-radius:12px; background:#fffdf4; padding:.6rem .8rem; display:grid; gap:.5rem; }
.elog { border:2px solid var(--ink); border-radius:10px; background:var(--paper); overflow:hidden; }
.elog table { border-collapse:collapse; width:100%; font-size:.82rem; }
.elog th { text-align:left; font-size:.67rem; letter-spacing:.07em; text-transform:uppercase; color:var(--dim); padding:.3rem .6rem; border-bottom:2px solid var(--dot); background:#fff; }
.elog td { padding:.28rem .6rem; border-bottom:1.5px solid #eee5cf; }
.elog .err { font-weight:800; color:#b3324b; }
.elog .ok2 { font-weight:800; color:#0a7a43; }
.elog .efoot td { background:#fff; color:var(--dim); font-weight:700; font-size:.76rem; border-bottom:none; }
.qfold { margin-top:.8rem; }
.qfold summary { cursor:pointer; list-style:none; border:2.5px dashed #b9ad90; border-radius:12px; padding:.4rem .8rem; color:var(--dim); font-weight:700; font-size:.85rem; }
.qfold summary::-webkit-details-marker { display:none; }
.qfold[open] summary { margin-bottom:.45rem; }
.tree { margin-bottom:1rem; }
/* E1b detail package: cause tags, captioned fact boxes, parts-column log */
.tag { display:inline-block; border:2px solid #b3324b; background:var(--pink); border-radius:6px; padding:0 .4rem; font-family:var(--display); font-weight:800; font-size:.68rem; color:var(--ink); }
.tag.warn { border-color:#a8790a; background:var(--yellow); }
.tag.info { border-color:var(--ink); background:var(--sky); }
.cols2x { display:grid; grid-template-columns:1.35fr .85fr; gap:.6rem; align-items:start; }
@media (max-width:760px){ .cols2x { grid-template-columns:1fr; } }
.facts { display:grid; gap:.5rem; }
.fbox { border:2.5px solid var(--ink); border-radius:12px; background:#fff; overflow:hidden; }
.fcap { font-size:.64rem; letter-spacing:.09em; text-transform:uppercase; font-weight:800; color:var(--dim); padding:.3rem .6rem; border-bottom:2px solid var(--dot); background:var(--paper); display:flex; justify-content:space-between; gap:.6rem; }
.fbd { padding:.45rem .6rem; display:grid; gap:.3rem; }
.fmeter { height:12px; border:2px solid var(--ink); border-radius:999px; background:#f6f0e2; overflow:hidden; position:relative; }
.fmeter i { display:block; height:100%; background:var(--mint); }
.fmeter b { position:absolute; top:-3px; bottom:-3px; width:3px; background:var(--ink); }
.elt { border-collapse:collapse; width:100%; font-size:.8rem; }
.elt th { text-align:left; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); padding:.28rem .55rem; border-bottom:2px solid var(--dot); background:#fff; }
.elt td { padding:.26rem .55rem; border-bottom:1.5px solid #eee5cf; }
.elt th.c, .elt td.c { text-align:center; }
.elt th.num, .elt td.num { text-align:right; }
.elt .err { font-weight:800; color:#b3324b; white-space:nowrap; }
.elt .ok2, .okc { font-weight:800; color:#0a7a43; white-space:nowrap; }
.elt .efoot td { color:var(--dim); font-weight:700; font-size:.74rem; border-bottom:none; background:var(--paper); }
.vb { gap:.25rem; }
.vrow { display:grid; grid-template-columns:2rem 1fr auto; gap:.5rem; align-items:center; font-size:.75rem; font-weight:700; }
.vbar { display:inline-flex; height:10px; border:2px solid var(--ink); border-radius:999px; overflow:hidden; background:#f6f0e2; }
.vbar i { display:block; height:100%; }
.vbar .vw { background:var(--mint); }
.vbar .vf { background:var(--pink); }
.facts .btn { justify-self:start; }
.tbranch { font-size:.82rem; margin:.1rem 0 .3rem; }
/* O2: the admin overview's machinery strip — quiet cron health at a glance */
.machline { display:flex; gap:1.4rem; flex-wrap:wrap; margin:.8rem .2rem 0; font-size:.85rem; color:var(--dim); }
.machline .mseg b { font-family:var(--display); font-weight:800; color:var(--ink); margin-right:.3rem; }
.machline .neg { color:#b3324b; font-weight:800; }

/* --- V11: the Playbook + Book Health --------------------------------------- */
.lanes { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.9rem; align-items:start; }
.plane { display:grid; gap:.55rem; align-content:start; }
.lanehead { display:flex; align-items:center; gap:.45rem; font-family:var(--display); font-weight:800; font-size:1rem; }
.playc { display:grid; gap:.4rem; border:2.5px solid var(--ink); border-radius:12px; background:#fff; padding:.55rem .75rem; }
.playc.edge-ok { border-left:8px solid #0a7a43; }
.playc.edge-bad { border-left:8px solid #b3324b; }
.playc.edge-warn { border-left:8px solid #a8790a; }
.pact { font-weight:800; font-size:.92rem; }
.pcta { justify-self:start; display:inline-block; background:var(--yellow); border:2px solid var(--ink); border-radius:9px; font:inherit; font-size:.72rem; font-weight:800; padding:.06rem .5rem; cursor:pointer; text-decoration:none; color:var(--ink); }
.pcta:hover { background:#ffdd66; }
.htiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr)); gap:.6rem; margin-bottom:.8rem; }
.htile { border:2.5px solid var(--ink); border-radius:12px; background:#fff; padding:.45rem .7rem; display:grid; gap:.02rem; }
.htile .n { font-family:var(--display); font-weight:800; font-size:1.5rem; line-height:1; }
.htile .l { font-size:.72rem; font-weight:700; color:var(--dim); }
.htile.fine { background:var(--mint); } .htile.fine .l { color:var(--ink); }
.htile.watch { background:var(--yellow); } .htile.watch .l { color:var(--ink); }
.htile.risk { background:var(--pink); } .htile.risk .l { color:var(--ink); }
.hlist { display:grid; gap:.4rem; }
.hrow { display:grid; grid-template-columns:auto minmax(9rem,14rem) auto 1fr auto; gap:.7rem; align-items:center;
  border:2.5px solid var(--ink); border-radius:11px; background:#fff; padding:.4rem .7rem; font-size:.86rem; cursor:pointer; }
.hrow:hover { background:#fffdf4; }
.hrow.edge-bad { border-left:8px solid #b3324b; }
.hrow.edge-warn { border-left:8px solid #a8790a; }
.hrow.edge-ok { border-left:8px solid #0a7a43; }
.hrow.edge-quiet { border-left:8px solid #cfc4a9; cursor:default; }
.grade { min-width:1.9rem; text-align:center; font-family:var(--display); font-weight:800; border:2.5px solid var(--ink); border-radius:8px; padding:0 .25rem; }
.grade.g-f { background:var(--pink); }
.grade.g-c { background:var(--yellow); }
.grade.g-a { background:var(--mint); }
.grade.g-b { background:#f1eadb; color:var(--dim); border-color:#b9ad90; }
.hchips { display:flex; gap:.3rem; flex-wrap:wrap; }
.evcap { margin-top:1.4rem; }
/* W3: the Wins pane + the hygiene fold inside Book Health */
.winsec { margin-bottom:.4rem; }
.winsec .winrecipe { margin:0 0 .5rem; }
.hygbody { display:grid; gap:.55rem; padding:.5rem .2rem 0; }
/* AIO × site: the per-site verdict rollup rows */
.svrow { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; padding:.35rem 0; border-bottom:2px dashed #eee5cf; }
.svrow:last-child { border-bottom:0; }
/* cross-drop trend chips + the vs-previous-drop line */
.tchip { display:inline-block; border:2px solid var(--ink); border-radius:7px; font-family:var(--display); font-weight:800; font-size:.62rem; padding:0 .35rem; background:#f1eadb; color:var(--dim); vertical-align:middle; white-space:nowrap; }
.tchip.bad { background:var(--pink); color:var(--ink); }
.tchip.ok { background:var(--mint); color:var(--ink); }
.trendline { margin-top:.25rem; }
@media (max-width:700px){ .hrow { grid-template-columns:auto 1fr auto; } .hrow .hchips { display:none; } }
/* T2 side tree */
.stree { display:flex; align-items:flex-start; }
.sbase { display:grid; gap:.1rem; border:3px solid var(--ink); border-radius:14px; background:#fff; box-shadow:4px 4px 0 var(--ink); padding:.5rem .9rem; min-width:13rem; }
.sbase .cap { font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); font-weight:800; }
.sbase .l1 { font-weight:800; font-size:.95rem; color:var(--ink); }
.sjoin { width:1.2rem; height:3px; background:var(--ink); align-self:center; flex:none; }
.strunk { display:grid; gap:.7rem; border-left:3px solid var(--ink); padding-left:1.2rem; padding-top:.2rem; padding-bottom:.2rem; }
.sbr { position:relative; }
.sbr::before { content:''; position:absolute; left:-1.2rem; top:.75rem; width:1.2rem; height:3px; background:var(--ink); }
.sbr .cat { display:inline-block; border:2.5px solid var(--ink); border-radius:999px; background:var(--cream); padding:.08rem .7rem; font-family:var(--display); font-weight:800; font-size:.72rem; }
.sbr .cat .score { font-size:.72rem; }
.sleaves { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.35rem; padding-left:.4rem; }
.tnode { display:inline-flex; flex-direction:column; align-items:center; gap:.02rem; border:2.5px solid var(--ink); border-radius:10px;
  background:#fff; padding:.2rem .55rem; font-family:ui-monospace,"SF Mono",Menlo,monospace; font-weight:800; font-size:.78rem; color:var(--ink); cursor:pointer; font-style:normal; }
.tnode .sc { font-family:var(--display); font-size:.68rem; font-weight:800; }
.tnode.bad { background:var(--pink); border-color:#b3324b; }
.tnode.warn { background:var(--yellow); border-color:#a8790a; }
.tnode.ok { background:var(--mint); border-color:#0a7a43; }
.tnode.quiet { background:#f1eadb; color:var(--dim); border-color:#b9ad90; cursor:default; }
button.tnode:hover { transform:translate(-1px,-1px); box-shadow:2px 2px 0 var(--ink); }
@media (max-width:640px){ .stree { flex-direction:column; } .sjoin { width:3px; height:1rem; align-self:flex-start; margin-left:1.4rem; } }
@media (max-width:640px){ .lrow { grid-template-columns:1fr; } }

/* --- profile manager: sheet + side inspector -------------------------------- */
.managehint { display:flex; gap:.7rem; align-items:center; margin-bottom:1rem; }
.mgrbar { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-bottom:1rem; }
.mgrbar .search { flex:1 1 12rem; margin:0; }
.mgrbar .search input { width:100%; }
.mgr { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; align-items:start; }

/* Member journeys use the same quiet components as the admin Library. */
.skip-link { position:absolute; left:1rem; top:-10rem; z-index:100; padding:.75rem 1rem; background:var(--surface); border:1px solid var(--accent); border-radius:8px; }
.skip-link:focus { top:1rem; }
.member-site h1 { font-size:clamp(1.9rem,4vw,2.65rem); }
.member-site main { max-width:1120px; }
.member-site .pagehead { align-items:center; }
.member-history-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.75rem; margin:1.25rem 0; }
.member-selection-summary { padding:1rem 0; border-top:1px solid var(--line); }
.member-selection-summary > summary { cursor:pointer; font-size:.9rem; font-weight:700; color:var(--accent); }
.member-selection-summary > .card { margin-top:1rem; }
.member-ledger-detail > summary { cursor:pointer; list-style:none; }
.member-ledger-detail > summary::-webkit-details-marker { display:none; }
.member-ledger-detail[open] > summary { background:var(--accent-soft); }
.member-ledger-evidence { padding:1rem 1.25rem; background:var(--paper); }
.member-ledger-evidence dl { display:grid; gap:.75rem; margin:0 0 .8rem; }
.member-ledger-evidence dl > div { display:grid; grid-template-columns:minmax(8rem,1fr) minmax(0,2fr); gap:1rem; }
.member-ledger-evidence dt { color:var(--dim); font-size:.85rem; }
.member-ledger-evidence dd { margin:0; overflow-wrap:anywhere; }
.member-overview-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.5rem; padding:1.2rem 1.4rem; margin-bottom:1.5rem; }
.member-overview-summary .lbl { color:var(--dim); font-size:.8rem; }
.member-overview-summary .num { font:800 2rem/1.35 var(--display); }
.member-overview-summary .word, .member-overview-summary .sub { font:600 .8rem/1.5 var(--text); color:var(--dim); }
.member-overview-summary .side { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.member-overview-summary .counters { display:flex; flex-direction:column; gap:.25rem; color:var(--dim); font-size:.8rem; }
.member-overview-summary .counters strong { color:var(--ink); }
.member-welcome { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:3rem; align-items:center; padding:3rem 0; }
.member-welcome .eyebrow { color:var(--accent); text-transform:uppercase; letter-spacing:.13em; font-size:.8rem; }
.member-welcome h1 { font-size:clamp(2.25rem,5vw,3.8rem); line-height:1.15; }
.member-welcome .tagline { max-width:34rem; color:var(--dim); font-size:1.05rem; margin:1.2rem 0 1.5rem; }
.member-welcome-art { width:100%; max-width:220px; height:auto; }
.member-how h2 { font-size:1.5rem; }
.member-how .feats { padding-top:1.25rem; }
.member-how .feat { box-shadow:none; border:1px solid var(--line); border-radius:12px; }
.member-how .stepn { border:0; box-shadow:none; background:var(--cream); border-radius:9px; }
.member-site .activity .act { min-width:0; }
.member-site .activity .what, .member-site .activity .t { min-width:0; overflow-wrap:anywhere; }
.member-site .thumb { border:1px solid var(--line); border-radius:8px; }
@media (max-width:640px) {
  .member-welcome { grid-template-columns:1fr; padding:1.5rem 0; gap:1.5rem; }
  .member-welcome-art { max-width:140px; justify-self:center; }
  .member-overview-summary { align-items:flex-start; padding:1rem; }
  .member-overview-summary .side { width:100%; justify-content:space-between; }
  .member-ledger-evidence dl > div { grid-template-columns:1fr; gap:.15rem; }
  .member-site .site-head .who { margin-left:auto; }
  .member-site .tabs a { padding:.55rem .65rem; }
}
/* the pop-up editor: a quiet paper dialog over the dimmed sheet */
.overlay { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:1.5rem; }
.overlay .backdrop { position:absolute; inset:0; background:rgba(28,28,30,.45); }
.overlay .pdialog { position:relative; width:min(680px, 94vw); max-height:88vh; overflow:auto; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 20px 60px #34283f2b; animation:none; }
.overlay .mhead { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.8rem 1.25rem; background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; }
.overlay .mhead h3 { margin:0; font-family:var(--display); font-weight:800; font-size:1.25rem; }
.overlay .mbody { padding:1rem 1.25rem 1.25rem; display:grid; gap:.9rem; }
.overlay .stack { gap:.8rem; }
.overlay select, .overlay input { width:100%; }
.dupbtn { background:var(--mint); }
/* B1 two-deck selection bar */
.qbar { display:block !important; padding:0 !important; border-radius:16px !important; background:#33302c !important; color:#fff; max-width:46rem; }
.qbar .qtop { display:flex; align-items:center; gap:.6rem; padding:.5rem 1rem; }
.qbar .qtop [data-bulk-count] { font-family:var(--display); font-size:1rem; }
.qbar .qspacer { flex:1; }
.qbar .qclear { background:transparent; color:#cfc9bd; border-color:#8d8778; box-shadow:none; }
.qbar .qclear:hover { color:#fff; border-color:#fff; }
.qbar .qlow { display:flex; align-items:center; gap:.45rem; padding:.45rem 1rem .6rem; border-top:2px solid #4a463f; flex-wrap:wrap; }
.qbar .qlabel { font-size:.68rem; text-transform:uppercase; letter-spacing:.07em; color:#a49c8c; font-weight:800; }
.qchip { border:2px solid #8d8778; border-radius:999px; padding:.12rem .65rem; font:inherit; font-size:.75rem; font-weight:800; color:#fff; background:transparent; cursor:pointer; }
.qchip:hover { border-color:#fff; }
.qchip.on { background:var(--yellow); color:var(--ink); border-color:var(--ink); }
.qform { display:inline-flex; gap:.4rem; align-items:center; background:#fff; color:var(--ink); border:2px solid var(--ink); border-radius:12px; padding:.28rem .5rem; flex-wrap:wrap; }
.qform input, .qform select { border:2px solid var(--ink); border-radius:8px; background:#fff; padding:.15rem .4rem; font:inherit; font-weight:700; font-size:.8rem; width:auto; min-width:0; }
.qform input { width:8rem; }
.psheet { border-collapse:collapse; }
.psheet th { white-space:nowrap; }
.psheet td { white-space:nowrap; border-right:1px solid #f4ecd9; padding-top:.28rem; padding-bottom:.28rem; }
.psheet td.plabel a { font-weight:800; text-decoration:none; }
.psheet td.plabel a:hover { text-decoration:underline; }
.psheet tr.sel td { background:var(--cream); }
.psheet tr.on td { background:#fff3d6; }
.psheet td.shrink, .psheet th.shrink { width:1.6rem; border-right:0; }
.psheet .pbox { width:1rem; height:1rem; accent-color:var(--ink); }
/* --- the Navigator (Q2): facet rail · verdict edges · story drawer --- */
/* (the Navigator's side rail retired 2026-08-26 — Split Decks moved its rows
   into the .fmenu facet menus; .ritem styling lives there now) */
.mgrbar .mspacer { flex:1; }
.thsort { color:inherit; text-decoration:none; }
.thsort:hover { text-decoration:underline; }
/* verdict edge + chips: the engine's read, riding every row */
.psheet tr[data-pid] td:first-child { border-left:5px solid transparent; }
.psheet tr.pedge-r td:first-child { border-left-color:#e5484d; }
.psheet tr.pedge-y td:first-child { border-left-color:var(--yellow); }
.psheet tr.pedge-g td:first-child { border-left-color:#3dbf72; }
.psheet .hcol .st, .pdialog .st { display:inline-block; border:2px solid var(--ink); border-radius:999px; padding:0 .45rem; font-family:var(--display); font-weight:800; font-size:.68rem; text-decoration:none; color:var(--ink); white-space:nowrap; }
.st.hr { background:var(--pink); }
.st.hy { background:var(--yellow); }
.st.hg { background:var(--mint); }
.st.hq { background:#f1ead8; color:var(--dim); border-color:var(--dot); }
.st.hp { background:#e3d1ff; margin-left:.25rem; }
/* 0055: archived rows — retired from the census, kept as evidence */
.st.harch { background:#e8e4da; color:var(--dim); border-color:var(--dot); }
.psheet tr.parch td { opacity:.55; }
.psheet tr.parch td:first-child { border-left-color:var(--dot); }
.psheet tr.parch:hover td, .psheet tr.parch.krow td { opacity:.85; }
.psheet .sug, .pdialog .sug { display:inline-block; border:2px dashed var(--ink); border-radius:999px; padding:0 .45rem; margin-left:.3rem; font-size:.7rem; font-weight:800; background:#fff; text-decoration:none; color:var(--ink); }
.psheet .sug:hover, .pdialog .sug:hover { background:var(--cream); }
.psheet .popen { color:inherit; text-decoration:none; }
.psheet .popen:hover { text-decoration:underline; }
/* the story drawer: the pop-up, docked to the right edge */
.overlay.side { justify-content:flex-end; align-items:stretch; padding:0; }
.overlay.side .pdialog.drawer { max-width:34rem; width:min(34rem, 94vw); height:100%; max-height:none; border-radius:12px 0 0 12px; overflow-y:auto; animation:none; }
@keyframes drawerin { from { transform:translateX(30px); opacity:.4; } to { transform:none; opacity:1; } }
@media (prefers-reduced-motion: reduce) { .overlay.side .pdialog.drawer { animation:none; } }
.dtabs { display:flex; gap:.4rem; margin-bottom:.8rem; }
.dtab { border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:none; font:inherit; font-weight:700; font-size:.85rem; padding:.4rem .8rem; cursor:pointer; }
.dtab.on { background:var(--accent-soft); border-color:#d8c8e4; color:var(--accent); }
.psheet tr[data-pid] { cursor:pointer; }
.psheet .pcell { cursor:text; }
.psheet .rowacts { display:inline-flex; gap:.3rem; margin-left:.55rem; vertical-align:middle; }
.psheet .rowacts form { display:inline; }
.ract { display:inline-grid; place-items:center; min-width:1.7rem; height:1.55rem; border:2px solid var(--ink); border-radius:8px; background:#fff; box-shadow:1px 1px 0 var(--ink); padding:0 .3rem; margin:0; font:inherit; font-size:1rem; line-height:1; color:var(--ink); cursor:pointer; text-decoration:none; }
.ract:hover { transform:translate(-1px,-1px); box-shadow:2px 2px 0 var(--ink); }
.ract.edit { background:var(--sky); }
.ract.dup { background:var(--mint); }
.btn.sky { background:var(--sky); }
.psheet .thsearch { min-width:15rem; }
.psheet .thsearch input { border:2px solid var(--ink); border-radius:8px; background:#fff; font:inherit; font-weight:700; font-size:.82rem; padding:.12rem .5rem; width:9.5rem; margin-left:.5rem; text-transform:none; letter-spacing:0; }
.psheet .powner { appearance:none; -webkit-appearance:none; border:2px solid var(--dot); border-radius:8px; background-color:#fff; padding:.12rem 1.2rem .12rem .45rem; font:inherit; font-weight:700; font-size:.85rem; max-width:9rem;
  background-image:linear-gradient(45deg, transparent 50%, var(--dim) 50%), linear-gradient(135deg, var(--dim) 50%, transparent 50%);
  background-position:calc(100% - 11px) 55%, calc(100% - 6px) 55%; background-size:5px 5px; background-repeat:no-repeat; }
.psheet .powner:hover, .psheet .powner:focus { border-color:var(--ink); }
.dragpan.dragging { cursor:grabbing; user-select:none; }
.dragpan.dragging * { cursor:grabbing !important; }
.psheet .pcell { cursor:text; min-width:6.5rem; max-width:15rem; overflow:hidden; text-overflow:ellipsis; }
.psheet .pcell:hover { box-shadow:inset 0 -2px 0 var(--dot); }
.psheet .pcell input { border:2px solid var(--ink); border-radius:6px; background:var(--cream); font:inherit; font-weight:700; padding:.05rem .3rem; width:100%; min-width:6rem; }
.psheet .pcell.saved { animation:cellsaved 1s ease; }
@keyframes cellsaved { 0% { background:var(--mint); } 100% { background:transparent; } }
.psheet .powner { border:2px solid var(--ink); border-radius:8px; background:#fff; font:inherit; font-weight:700; padding:.1rem .3rem; max-width:9rem; }

/* --- SPLIT DECKS (B, admin pick 2026-08-26): the Profiles page as a desktop
   app. One framed window: facet bar · sheet deck · splitter · stream deck ·
   status bar. The page never grows with the book — every pane scrolls inside
   itself. Inside the frame the Sticker Shop dialect deliberately thins out
   (hairlines, small radii, dense type); the frame itself stays chunky. --- */
/* the deck page breaks the shell's 1080px reading width — a 19-column sheet
   is a workbench, not prose. Wide but deliberately not edge-to-edge; every
   other page keeps the normal measure (no :has support = safe 1080px). */
main:has([data-deck]) { max-width:min(1760px, 94vw); padding-bottom:1.5rem; }
.deck { display:flex; flex-direction:column; height:calc(100vh - 13.5rem); height:calc(100dvh - 13.5rem);
  min-height:32rem; background:#fff; border:3px solid var(--ink); border-radius:16px;
  box-shadow:5px 5px 0 rgba(28,28,30,.9); overflow:hidden; }
.facetbar { display:flex; align-items:center; gap:.45rem; padding:.4rem .7rem; background:var(--cream);
  border-bottom:3px solid var(--ink); flex-wrap:wrap; }
.facetbar .fspacer { flex:1; }
.fmenu { position:relative; }
.fmenu > summary { list-style:none; cursor:pointer; border:2px solid var(--ink); border-radius:999px; background:#fff;
  font-weight:800; font-size:.8rem; padding:.08rem .6rem; white-space:nowrap; }
.fmenu > summary::-webkit-details-marker { display:none; }
.fmenu[open] > summary { background:var(--yellow); }
.fmenu .flist { position:absolute; left:0; top:calc(100% + .35rem); z-index:40; min-width:13rem; max-height:21rem; overflow-y:auto;
  background:#fff; border:3px solid var(--ink); border-radius:12px; box-shadow:4px 4px 0 rgba(28,28,30,.85);
  padding:.45rem .5rem; display:flex; flex-direction:column; gap:.1rem; }
.fmenu .rcap { font-family:var(--display); font-weight:800; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--dim); margin:.4rem .3rem .1rem; }
.fmenu .ritem { display:flex; justify-content:space-between; gap:.6rem; align-items:baseline; padding:.14rem .45rem; border-radius:8px; text-decoration:none; color:var(--ink); font-weight:700; font-size:.85rem; }
.fmenu .ritem:hover { background:var(--cream); }
.fmenu .ritem.on { background:var(--yellow); outline:2px solid var(--ink); }
.fmenu .ritem .n { color:var(--dim); font-size:.75rem; font-weight:800; }
.fchip { display:inline-flex; gap:.3rem; align-items:baseline; border:2px solid var(--ink); border-radius:999px; background:var(--yellow);
  font-size:.76rem; font-weight:800; padding:.05rem .55rem; text-decoration:none; color:var(--ink); }
.fchip .x { opacity:.6; } .fchip:hover .x { opacity:1; }
.colrow { display:flex; gap:.45rem; align-items:center; font-size:.82rem; font-weight:700; padding:.04rem .3rem; white-space:nowrap; }
.colrow input { accent-color:var(--ink); }
.colcap { padding:.05rem .3rem .3rem; max-width:15rem; white-space:normal; }
.seg { display:inline-flex; border:2px solid var(--ink); border-radius:9px; overflow:hidden; background:#fff; }
.seg button { border:0; background:#fff; font:inherit; font-size:.72rem; font-weight:800; padding:.14rem .55rem; cursor:pointer; border-right:2px solid var(--ink); }
.seg button:last-child { border-right:0; }
.seg button.on { background:var(--yellow); }
.deckgrid { flex:1 1 auto; min-height:8rem; overflow:auto; overscroll-behavior:contain; }
.deckgrid .psheet th { position:sticky; top:0; z-index:5; background:var(--cream); box-shadow:0 2px 0 var(--ink); }
.deckgrid .psheet td.plabel { position:sticky; left:0; z-index:3; background:#fff; border-right:2px solid var(--tan); }
.deckgrid .psheet th.thsearch { position:sticky; left:0; z-index:6; }
.deckgrid .psheet tr.sel td.plabel { background:var(--cream); }
.deckgrid .psheet tr.on td.plabel { background:#fff3d6; }
.deckgrid .psheet tr:nth-child(even):not(.sel):not(.on) td { background:#fbf7ec; }
.deckgrid .psheet tr:nth-child(even):not(.sel):not(.on) td.plabel { background:#fbf7ec; }
.deckgrid .psheet tr.krow td { box-shadow:inset 0 -2px 0 var(--sky), inset 0 2px 0 var(--sky); }
.deckgrid .psheet td { padding-top:.13rem; padding-bottom:.13rem; }
.psheet.d-comfy td { padding-top:.3rem; padding-bottom:.3rem; }
.psheet.d-micro td { padding-top:.03rem; padding-bottom:.03rem; font-size:.79rem; }
.psheet.d-micro .st, .psheet.d-micro .sug { font-size:.6rem; }
.psheet.hc-address_line3 [data-field="address_line3"], .psheet.hc-country [data-field="country"], .psheet.hc-notes [data-field="notes"] { display:none; }
.decksplit { flex:0 0 .72rem; background:var(--cream); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink);
  cursor:row-resize; display:grid; place-items:center; touch-action:none; }
.decksplit::before { content:''; width:3.2rem; height:4px; border-radius:4px; background:var(--ink); opacity:.45; }
.decksplit:hover::before { opacity:.85; }
.deckstream { flex:0 0 auto; height:13rem; min-height:3.2rem; max-height:70vh; display:flex; flex-direction:column; background:#fff; }
.deckstream .shead { display:flex; gap:.6rem; align-items:baseline; padding:.28rem .8rem; background:var(--sky); border-bottom:2.5px solid var(--ink); font-family:var(--display); font-weight:800; font-size:.85rem; }
.deckstream .sbody { flex:1; overflow-y:auto; overscroll-behavior:contain; }
.streamtbl { width:100%; }
.streamtbl th { position:sticky; top:0; z-index:2; background:var(--cream); box-shadow:0 1.5px 0 var(--ink); }
.streamtbl td { padding-top:.14rem; padding-bottom:.14rem; }
.streamtbl td.sitem { max-width:24rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.deck .statusbar { display:flex; gap:1.1rem; align-items:center; padding:.3rem .8rem; background:var(--ink); color:var(--cream);
  font-size:.74rem; font-weight:700; white-space:nowrap; overflow:hidden; }
.deck .statusbar .sb b { color:var(--yellow); font-family:var(--display); }
.deck .statusbar .grow { flex:1; }
.deck .statusbar .dimop { opacity:.6; }
/* dense rows earn their height back: row actions shrink and appear on
   hover / keyboard focus (the status bar already carries the counts) */
.deckgrid .psheet .ract { min-width:1.3rem; height:1.15rem; font-size:.8rem; border-width:1.5px; box-shadow:none; }
.deckgrid .psheet .rowacts { opacity:0; transition:opacity .1s ease; }
.deckgrid .psheet tr:hover .rowacts, .deckgrid .psheet tr.krow .rowacts,
.deckgrid .psheet .rowacts:focus-within, .deckgrid .psheet .rowacts:has(details[open]) { opacity:1; }
.deckgrid .psheet .powner { padding-top:.02rem; padding-bottom:.02rem; font-size:.78rem; }
/* on the deck page the floating bulk bar hides entirely until a row is
   ticked — its old 55%-ghost resting state would hover over the status bar */
[data-deck] ~ .bulkbar:not(.on) { opacity:0; pointer-events:none; }
@media (max-width: 900px) {
  .deck { height:auto; min-height:0; }
  .deckgrid { max-height:58vh; }
  .deckstream { height:12rem; }
  .deck .statusbar .dimop { display:none; }
}
.inspector .rowform { margin-bottom:0; }

/* --- member passport ------------------------------------------------------- */
.passport { display:grid; grid-template-columns:auto 1fr auto; gap:1rem 1.25rem; align-items:center; padding:1.1rem 1.4rem; }
.passport .avatar.xl { width:64px; height:64px; font-size:1.8rem; border-radius:18px; }
.passport .pwho { min-width:0; }
.passport .pname { font-family:var(--display); font-weight:800; font-size:1.6rem; line-height:1.05; }
.passport .pills { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.45rem; }
.passport .pmoney { text-align:right; }
.passport .pmoney .lbl { font-weight:800; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--dim); }
.passport .pmoney .num { font-family:var(--display); font-weight:800; font-size:1.7rem; line-height:1.05; white-space:nowrap; }
.passport .pmoney.neg .num { color:#b42318; } .passport .pmoney.pos .num { color:#1b7f3b; }
.passport .quick { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:.5rem; padding-top:.9rem; border-top:1px solid var(--line); }
.passport .quick form { display:inline; }
.addr { font-style:normal; font-weight:700; line-height:1.45; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.sheet .sheethead { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; margin-bottom:.5rem; font-weight:800; }
.sheet .sheethead .btn { margin-left:auto; }
details.fold { border:1px dashed #cbb8c2; border-radius:10px; padding:.8rem 1.25rem; background:var(--surface); }
details.fold summary { font-family:var(--display); font-weight:800; font-size:1.05rem; cursor:pointer; list-style:none; }
details.fold summary::-webkit-details-marker { display:none; }
details.fold summary::before { content:"▸ "; } details.fold[open] summary::before { content:"▾ "; }
details.fold[open] { border-style:solid; background:var(--pink); }
details.fold .rowform { margin-top:.5rem; }
@media (max-width: 720px) { .passport { grid-template-columns:auto 1fr; } .passport .pmoney { grid-column:1 / -1; text-align:left; } }

/* --- catalog counter: one add box, draft chips, the stores matrix ---------- */
.counter { display:flex; gap:.75rem; align-items:stretch; margin:0; }
.counter input { flex:1 1 16rem; min-width:0; font-size:1.05rem; padding:.7rem .9rem; }
.counter .btn { white-space:nowrap; }
.drafts { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:.9rem; }
.chip { display:inline-flex; align-items:center; gap:.35rem; border:1px solid var(--line); border-radius:8px; background:var(--cream); padding:.2rem .45rem .2rem .6rem; font-size:.85rem; font-weight:700; }
.chip.on { background:var(--accent-soft); border-color:#d8c8e4; box-shadow:none; }
.chip a { text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; }
.chip a:hover { text-decoration:underline; }
.chip form { display:inline; }
.chip .x { border:0; background:transparent; font:inherit; font-weight:800; cursor:pointer; padding:0 .15rem; color:var(--dim); }
.chip .x:hover { color:var(--ink); }
.matrix { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--surface); font-weight:600; }
.mhdr, .mrow { display:grid; grid-template-columns:1.6rem 11rem minmax(8rem,1fr) 9rem 4.5rem; gap:.6rem; align-items:center; padding:.5rem .8rem; }
.mhdr { font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--dim); font-weight:800; background:var(--paper); border-bottom:1px solid var(--line); }
.mrow { border-bottom:1px solid var(--line); }
.mrow:last-child { border-bottom:0; }
.mrow input[type=checkbox] { width:1.15rem; height:1.15rem; margin:0; accent-color:var(--ink); }
.mrow .mi { width:100%; min-width:0; padding:.4rem .55rem; font-size:.9rem; }
.mrow:has(input[type=checkbox]:not(:checked)) { background:#faf7f0; color:var(--dim); }
.mrow:has(input[type=checkbox]:not(:checked)) .mi { opacity:.5; }
.mrow:has(input[type=checkbox]:not(:checked)) .mi:focus { opacity:1; }
@media (max-width: 720px) {
  .mhdr { display:none; }
  .mrow { grid-template-columns:1.6rem 1fr; }
  .mrow .mi { grid-column:2; }
}
.rowform { display:flex; flex-wrap:wrap; align-items:flex-end; gap:.75rem; margin:0 0 .75rem; }
.rowform label { display:flex; flex-direction:column; gap:.3rem; font-weight:800; font-size:.85rem; }
.rowform input, .rowform select { width:auto; min-width:9rem; }
.rowform.compact { margin:0; align-items:center; }
.rowform.compact input { height:36px; min-width:0; }
.actions.compact { gap:.4rem; flex-wrap:nowrap; }
.actions.compact .rowform { margin:0; align-items:center; gap:.4rem; }
.actions.compact select { height:36px; min-width:0; max-width:12rem; font-size:.85rem; padding:.2rem 2rem .2rem .6rem; }
.grid2.top { align-items:start; }
.grid2.top > .card { margin:0; }
table.dense { font-size:.85rem; }
table.dense th, table.dense td { padding:.6rem .75rem; }
tr.flag td { background:#fff6d6; }
tr.muted td { color:var(--dim); }
h3.sub { font-size:1rem; margin:1.25rem 0 .5rem; display:flex; gap:.6rem; align-items:center; }
.itemhead { display:grid; grid-template-columns:120px 1fr; gap:1rem; align-items:start; }
.thumb.xl { width:120px; height:120px; border-radius:10px; border-width:1px; }
pre.raw { margin:0; padding:1rem; background:#1c1c1e; color:#f3f1ea; border-radius:12px; font-size:.8rem; line-height:1.45; overflow:auto; max-height:32rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.embed { border-left:5px solid var(--sky); background:#f6f2e8; border-radius:10px; padding:.9rem 1rem; margin:.5rem 0; position:relative; }
.embed .eauthor { font-weight:800; font-size:.8rem; color:var(--dim); }
.embed .etitle { font-family:var(--display); font-size:1.05rem; margin:.15rem 0; }
.embed .edesc { white-space:pre-wrap; font-size:.9rem; }
.embed .efields { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.5rem .9rem; margin:.6rem 0 0; }
.embed .efields > div:not(.inline) { grid-column:1 / -1; }
.embed dt { font-weight:800; font-size:.75rem; color:var(--dim); text-transform:uppercase; letter-spacing:.04em; }
.embed dd { margin:0; font-size:.9rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.embed .ethumb { position:absolute; right:1rem; top:1rem; width:72px; height:72px; object-fit:contain; background:#fff; border-radius:8px; }
.embed .eimage { display:block; max-width:100%; margin-top:.6rem; border-radius:8px; }
.embed .efoot { margin-top:.6rem; font-size:.75rem; color:var(--dim); }
@media (max-width: 640px) { .embed .efields { grid-template-columns:1fr; } .itemhead { grid-template-columns:1fr; } }

.reviewlist { display:grid; grid-template-columns:repeat(auto-fill, minmax(460px, 1fr)); gap:1.1rem; }
.reviewbody { display:grid; grid-template-columns:1fr 230px; gap:1rem; padding:1rem 1.25rem 1.25rem; align-items:start; }
.reviewactions { display:flex; flex-direction:column; gap:.75rem; }
.reviewactions .actions { flex-direction:column; align-items:stretch; }
.reviewactions .actions form { display:block; } .reviewactions .actions .btn { width:100%; }
.reviewbody .kv th { width:9rem; padding:.5rem .75rem; } .reviewbody .kv td { padding:.5rem .75rem; }
@media (max-width: 640px) { .reviewlist { grid-template-columns:1fr; } .reviewbody { grid-template-columns:1fr; } }

.toggle.mini { min-height:34px; padding:.3rem .75rem; font-size:.8rem; box-shadow:none; }
.tile .offers.picks li { display:flex; flex-direction:column; gap:.2rem; padding:.45rem 0; border-top:2px solid #f0e6d2; }
.tile .offers.picks .row { display:flex; justify-content:space-between; align-items:center; gap:.5rem; }
.tile .offers.picks .row.sub { font-size:.78rem; color:var(--dim); }
.tile .offers.picks .row.sub .mono { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tile .offers.picks li.live .state { color:#0a7a43; }
.tile .offers.picks li.live { background:linear-gradient(90deg, rgba(143,240,182,.25), transparent); margin:0 -.25rem; padding-left:.25rem; padding-right:.25rem; border-radius:8px; }
.tile .offers li.paused .state { color:#b3471d; }
.tile.dim { opacity:.55; filter:saturate(.4); }
.tile.dim:hover { opacity:1; filter:none; }
.hint.warn.soft { background:var(--cream); }
main.swapped .pop { animation:none; }
[data-live][aria-busy="true"] .card, [data-live][aria-busy="true"] .stat { opacity:.7; transition:opacity .15s ease; }
[data-live][aria-busy="true"] { pointer-events:none; }
@keyframes refreshed { 0% { box-shadow:0 0 0 2px #d8c8e4; } 100% { box-shadow:0 0 0 2px transparent; } }
.card.refreshed { animation:refreshed .7s ease-out; }
.busy { opacity:.6; }

.stats.four { grid-template-columns:repeat(4, minmax(0,1fr)); }
@media (max-width: 820px) { .stats.four { grid-template-columns:repeat(2, minmax(0,1fr)); } }
.attention { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.attention li { display:flex; align-items:stretch; gap:.5rem; }
.attention a { flex:1; min-width:0; display:flex; align-items:center; gap:.8rem; text-decoration:none; border:1px solid var(--line); border-radius:10px; padding:.6rem .8rem; background:var(--surface); box-shadow:none; transition:border-color .15s ease; font-weight:700; }
.xdismiss { border:1px solid var(--line); border-radius:8px; background:var(--surface); cursor:pointer; font:inherit; font-weight:800; padding:0 .6rem; color:var(--dim); height:100%; }
.attention .inline { display:flex; }
.xdismiss:hover { background:var(--pink); color:var(--ink); }
.dismissnote { display:flex; align-items:center; gap:.7rem; margin-top:.8rem; flex-wrap:wrap; }
.attention a:hover { transform:none; box-shadow:none; border-color:#b9a6c8; }
.attention .n { font-family:var(--display); font-size:1.4rem; min-width:2.2rem; text-align:center; border-radius:8px; padding:0 .4rem; border:1px solid var(--line); }
.attention .warn .n { background:var(--yellow); } .attention .bad .n { background:var(--pink); } .attention .info .n { background:var(--sky); }

.btn.danger { background:var(--pink); }
.dangerzone .cardhead { background:var(--pink); }

.sheets { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:1.25rem; }
.sheet h3.sub { margin-top:0; }
.copybox { width:100%; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85rem; border:1px solid #c9becd; border-radius:8px; padding:.6rem .8rem; margin-top:.6rem; background:var(--surface); resize:vertical; }

.pill.mkt.hot { background:var(--mint); } .pill.mkt.up { background:var(--yellow); } .pill.mkt.down { background:var(--pink); } .pill.mkt.flat { background:#fff; }
.grid3.top { align-items:start; } .grid3.top > .card { margin:0; }

/* --- stamp cards (Sites & Items) ---------------------------------------- */
.pagehead .feetag.big { align-self:center; }
.filterbar { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-bottom:1.1rem; }
.filterbar .search { flex:1 1 18rem; margin:0; }
.chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.chip { display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); padding:.15rem .25rem .15rem .75rem; font-weight:700; font-size:.85rem; box-shadow:none; }
.chip.all { padding:.5rem 1rem; text-decoration:none; }
.chip.active { background:var(--accent-soft); border-color:#d8c8e4; }
.chip .chiplink { text-decoration:none; padding:.35rem 0; display:inline-flex; align-items:center; gap:.35rem; }
.chip .sw { border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--dim); font:inherit; font-weight:700; font-size:.72rem; padding:.3rem .55rem; cursor:pointer; transition:background .15s ease; }
.chip .sw.on { background:var(--mint); color:var(--ink); }
.stamplist { display:flex; flex-direction:column; gap:.9rem; }
.stampcard { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:1rem; align-items:center; padding:1rem; overflow:visible; }
.stampcard.picked { outline:3px solid var(--mint); outline-offset:-3px; }
.stampcard .spic { width:72px; height:72px; border:1px solid var(--line); border-radius:10px; background:var(--surface); display:flex; align-items:center; justify-content:center; overflow:hidden; padding:.35rem; }
.stampcard .spic img { max-width:100%; max-height:100%; object-fit:contain; }
.stampcard .spic .nopic { background:var(--paper); }
.stampcard .sinfo { min-width:0; display:flex; flex-direction:column; gap:.2rem; }
.stampcard .name { font-weight:800; font-size:1rem; line-height:1.25; }
.stampcard .price { font-family:var(--display); font-size:1.35rem; line-height:1.1; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.stampcard .market { font-size:.82rem; font-weight:700; color:var(--body); display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; }
.stampcard .status { font-size:.8rem; font-weight:700; color:var(--dim); }
.slots { display:flex; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; max-width:28rem; }
.slots form { display:contents; }
.slot { display:grid; grid-template-columns:auto auto; gap:.18rem .25rem; place-content:center; align-items:center; width:auto; min-width:6rem; min-height:44px; border:1px solid #c9becd; border-radius:8px; background:var(--surface); padding:.5rem .7rem; text-align:center; font:inherit; color:var(--ink); cursor:pointer; box-shadow:none; transition:background .15s ease,border-color .15s ease; }
.slot:hover { border-color:var(--accent); transform:none; box-shadow:none; }
.slot:active { transform:none; box-shadow:none; }
.slot.on { background:var(--mint); border-color:#84b19b; animation:none; }
.slot.paused { background:var(--yellow); border-color:#c3a24c; }
.slot.na { border:1px dashed #d9cfb4; color:var(--dim); background:transparent; box-shadow:none; cursor:default; }
.slot.na:hover { transform:none; box-shadow:none; }
.slot.na .slotmark { opacity:.3; filter:grayscale(1); }
.slot .slotmark { width:1.25rem; height:1.25rem; }
.slot .sname { font-weight:800; font-size:.78rem; line-height:1.1; }
.slot .ssub { grid-column:1 / -1; font-size:.68rem; font-weight:700; color:var(--dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.slot.on .ssub, .slot.paused .ssub { color:var(--ink); }
.slot .ssub.warn { color:#b3471d; }
@keyframes stampin { 0% { transform:scale(1.25) rotate(-6deg); } 60% { transform:scale(.96) rotate(2deg); } 100% { transform:none; } }
@media (max-width: 820px) { .stampcard { grid-template-columns:72px 1fr; } .stampcard .spic { width:72px; height:72px; } .slots { grid-column:1 / -1; justify-content:flex-start; } }
@media (prefers-reduced-motion: reduce) { .slot.on { animation:none; } }

.joincard { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:1rem 1.25rem; margin-bottom:1.5rem; background:var(--cream); }
.joincard .t { font-family:var(--display); font-weight:800; font-size:1.2rem; }

/* --- balance activity --------------------------------------------------- */
.activity { list-style:none; margin:0; padding:0; }
.activity li + li { border-top:1px solid var(--line); }
.act { display:grid; grid-template-columns:44px 1fr auto auto; gap:.9rem; align-items:center; padding:.8rem 1.25rem; text-decoration:none; transition:background .15s ease; }
.act:hover { background:#fffdf7; }
.act .what { display:flex; flex-direction:column; min-width:0; }
.act .t { font-weight:800; font-size:.95rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.act .s { font-size:.8rem; font-weight:700; color:var(--dim); }
.act .when { font-size:.8rem; font-weight:700; color:var(--dim); white-space:nowrap; }
.act .amt { font-family:var(--display); font-size:1.15rem; white-space:nowrap; min-width:5rem; text-align:right; }
.thumb.glyph { background:var(--cream); }
.thumb.glyph.payment { background:var(--mint); } .thumb.glyph.refund { background:var(--sky); } .thumb.glyph.adjust { background:var(--yellow); }
@media (max-width: 560px) { .act { grid-template-columns:44px 1fr auto; } .act .when { display:none; } }

.chip.memberchip { padding:.45rem .9rem; text-decoration:none; gap:.5rem; }
.chip .count { background:var(--ink); color:#fff; border-radius:999px; padding:0 .5rem; font-size:.7rem; }

.filterbar .search { flex-wrap:wrap; }
.filterbar .search input[type="search"] { flex:1 1 14rem; }
.selectwrap { display:flex; align-items:center; gap:.4rem; }
.selectwrap .hint { font-weight:800; }
.selectwrap select { width:auto; height:44px; min-width:9rem; padding-right:2.2rem; font-size:.9rem; }
.livenotice { position:fixed; left:50%; bottom:1.5rem; transform:translateX(-50%); background:var(--ink); color:#fff; border-radius:10px; padding:.8rem 1.2rem; font-weight:700; box-shadow:0 8px 28px #34283f2b; z-index:60; max-width:90vw; animation:none; }

.feeform { gap:.3rem; white-space:nowrap; }
.feeform input { min-width:0; height:36px; padding:.3rem .5rem; }

.protable th.shrink, .protable td.shrink { width:1%; white-space:nowrap; }
.protable .tname { font-weight:800; font-size:.95rem; }
.protable .tname a { text-decoration:none; }
.protable .tname a:hover { text-decoration:underline; }
.protable .tsub { font-size:.78rem; font-weight:700; color:var(--dim); display:flex; flex-wrap:wrap; gap:.15rem .8rem; }
.bulkbox { width:1.25rem; height:1.25rem; min-height:0; accent-color:var(--ink); }
.bulkbar { position:sticky; bottom:1rem; margin:1rem auto 0; width:max-content; max-width:100%; display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  background:var(--ink); color:#fff; border:1px solid var(--ink); border-radius:10px; padding:.5rem 1.1rem; box-shadow:0 8px 24px #34283f26;
  opacity:.55; transition:opacity .2s ease; }
.bulkbar.on { opacity:1; transform:none; }
.bulkbar label { display:inline-flex; align-items:center; gap:.35rem; font-weight:800; font-size:.85rem; }
.bulkbar input { min-height:0; height:36px; border-width:2px; }
.bulkbar .btn.small { box-shadow:none; }
.bulkbar .btn.small:not(.yellow):not(.danger) { background:var(--ink); color:#fff; border-color:#fff; }

/* --- footer, mobile menu, balance hero, empty states --------------------- */
.site-foot { border-top:1px solid var(--line); background:var(--surface); padding:1rem 1.5rem; display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; justify-content:space-between; align-items:center; margin-top:3rem; }
.site-foot .brandline { display:flex; align-items:center; gap:.5rem; }
.site-foot .n { font-family:var(--display); font-weight:800; font-size:.95rem; }
.site-foot .links { display:flex; flex-wrap:wrap; gap:1.1rem; align-items:center; font-size:.85rem; font-weight:800; }
.site-foot .links a { text-decoration:underline; }


.mobmenu { display:none; }
@media (max-width: 820px) {
  .site-head { position:relative; flex-wrap:nowrap; }
  .site-head .left { flex-wrap:nowrap; }
  .tabs, .who { display:none; }
  .mobmenu { display:block; }
  .mobmenu summary { list-style:none; cursor:pointer; border:1px solid var(--line); border-radius:8px; background:var(--surface); padding:.6rem .8rem; font-weight:700; font-size:.9rem; box-shadow:none; white-space:nowrap; }
  .mobmenu summary::-webkit-details-marker { display:none; }
  .mobmenu[open] summary { background:var(--accent-soft); }
  .mobpanel { position:absolute; left:0; right:0; top:100%; z-index:45; background:var(--surface); border-bottom:1px solid var(--line); padding:.6rem 1rem 1rem; animation:none; box-shadow:0 8px 20px #34283f18; }
  .mobnav { display:flex; flex-direction:column; gap:.35rem; }
  .mobnav a { padding:.7rem .9rem; border-radius:8px; border:1px solid transparent; text-decoration:none; font-weight:700; }
  .mobnav a.on { background:var(--accent-soft); border-color:#d8c8e4; color:var(--accent); }
  .mobwho { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); margin-top:.5rem; padding-top:.75rem; }
  .mobwho .name { font-family:var(--display); font-weight:800; font-size:1.05rem; }
}

.balhero { display:grid; grid-template-columns:1.35fr 1fr; overflow:hidden; margin-bottom:1.5rem; }
.balhero .money { padding:1.4rem 1.6rem; border-right:3px solid var(--ink); }
.balhero .money.good { background:var(--mint); }
.balhero .money.bad { background:var(--pink); }
.balhero .lbl { font-weight:800; font-size:.8rem; letter-spacing:.05em; text-transform:uppercase; }
.balhero .num { font-family:var(--display); font-weight:800; font-size:2.9rem; line-height:1.05; }
.balhero .num .word { font-size:1.3rem; }
.balhero .sub { font-weight:700; font-size:.85rem; margin-top:.25rem; }
.balhero .side { padding:1.4rem 1.6rem; display:flex; flex-direction:column; gap:.9rem; justify-content:center; }
.balhero .side .btn { justify-content:center; }
.balhero .counters { display:flex; justify-content:space-between; gap:.75rem; font-size:.85rem; font-weight:700; color:var(--body); flex-wrap:wrap; }
.balhero .counters strong { font-family:var(--display); font-size:1.15rem; font-weight:800; color:var(--ink); }
@media (max-width: 640px) { .balhero { grid-template-columns:1fr; } .balhero .money { border-right:0; border-bottom:3px solid var(--ink); } }

.emptystate { text-align:center; padding:1.25rem .5rem; display:flex; flex-direction:column; align-items:center; gap:.35rem; }
.emptystate img { opacity:.92; }
.emptystate .ic { font-size:2.4rem; }
.emptystate .t { font-family:var(--display); font-weight:800; font-size:1.2rem; }
.emptystate .hint { max-width:26rem; margin:0 0 .5rem; }

.js .nojs { display:none; }
.search.toolbar { flex-wrap:nowrap; }
@media (max-width: 700px) { .search.toolbar { flex-wrap:wrap; } }

/* --- member cards --------------------------------------------------------- */
.memberlist { display:grid; grid-template-columns:repeat(auto-fill, minmax(330px, 1fr)); gap:1.1rem; }
.membercard { display:flex; flex-direction:column; overflow:hidden; }
.membercard.muted { opacity:.65; }
.mhead { display:flex; gap:.8rem; align-items:center; padding:1rem 1.1rem .6rem; }
.avatar { width:46px; height:46px; border-radius:50%; border:1px solid var(--line); display:inline-flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:800; font-size:1.3rem; flex:none; }
.mwho { min-width:0; }
.mname { font-family:var(--display); font-weight:800; font-size:1.15rem; display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.msub { font-size:.8rem; font-weight:700; color:var(--dim); }
.mmoney { margin:0 1.1rem; border:3px solid var(--ink); border-radius:14px; padding:.6rem .9rem; background:#fffdf7; }
.mmoney.good { background:var(--mint); }
.mmoney.bad { background:var(--pink); }
.mmoney .amt { font-family:var(--display); font-weight:800; font-size:1.6rem; line-height:1.1; }
.mmoney .lbl { font-size:.78rem; font-weight:800; }
.mfacts { display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; padding:.7rem 1.1rem; font-size:.82rem; font-weight:700; }
.mfacts .mark { width:1.4em; height:1.4em; margin-right:.15rem; }
.msync { margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding:.55rem 1.1rem; background:#fff6d6; border-top:2px solid #f0e6d2; font-size:.78rem; font-weight:800; }
.msync.ok { background:#fffdf7; color:var(--dim); }
.mfoot { display:flex; gap:.5rem; padding:.8rem 1.1rem; border-top:2px solid #f0e6d2; flex-wrap:wrap; }

/* --- delight ------------------------------------------------------------- */
@keyframes boop { 0% { transform:scale(1) rotate(0); } 30% { transform:scale(1.12) rotate(-6deg); } 60% { transform:scale(.96) rotate(4deg); } 100% { transform:scale(1) rotate(0); } }
.boop { animation:boop .5s var(--spring); }
.brand img, .site-foot .brandline img { transition:transform .2s var(--spring); }
.brand:hover img, .site-foot .brandline img:hover { transform:rotate(-8deg) scale(1.12); }
.chip .mark svg, .sitelabel .mark svg, .slot .slotmark svg { transition:none; }
.chip:hover .mark svg, .slot:hover .slotmark svg { transform:none; }
.stage .mascot { cursor:pointer; }
@keyframes sparklepop { 0% { transform:scale(.4) rotate(0); opacity:1; } 100% { transform:scale(1.5) rotate(60deg) translateY(-14px); opacity:0; } }
.sparkle { position:absolute; font-size:1rem; pointer-events:none; animation:sparklepop .7s ease-out forwards; z-index:55; }
@keyframes confettifall { 0% { transform:translateY(-4vh) rotate(0); opacity:1; } 100% { transform:translateY(104vh) rotate(720deg); opacity:.9; } }
.confetti { position:fixed; top:0; width:10px; height:14px; border:2px solid var(--ink); border-radius:3px; pointer-events:none; z-index:70; animation:confettifall linear forwards; }
@keyframes dash { 0% { transform:translateX(-140px) scaleX(1); } 49% { transform:translateX(52vw) scaleX(1); } 50% { transform:translateX(52vw) scaleX(1) translateY(-16px); } 100% { transform:translateX(110vw) scaleX(1); } }
.dashmascot { position:fixed; bottom:8px; left:0; width:90px; height:auto; z-index:70; pointer-events:none; animation:dash 2.6s ease-in forwards; filter:drop-shadow(3px 3px 0 rgba(28,28,30,.2)); }
@keyframes partyspin { to { transform:rotate(360deg); } }
.party .mark svg { animation:partyspin 1s linear infinite; }
.party h1, .party h2 { animation:wiggle .6s ease-in-out infinite; }
.party .card { animation:wiggle 1.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
  .boop, .sparkle, .confetti, .dashmascot, .party .mark svg, .party h1, .party h2, .party .card { animation:none !important; }
  .brand:hover img, .chip:hover .mark svg, .slot:hover .slotmark svg { transform:none; }
}

/* --- search --------------------------------------------------------------- */
.search { display:flex; gap:.75rem; margin-bottom:1.25rem; }
.search input { flex:1; }
.search .btn { flex:none; }
@media (max-width: 480px) { .search .btn { display:none; } }

/* --- pop-ups (:target, no script needed) -------------------------------- */
.modal { position:fixed; inset:0; display:none; align-items:center; justify-content:center; padding:1rem; z-index:50; }
.modal:target { display:flex; }
.modal .backdrop { position:absolute; inset:0; background:rgba(28,28,30,.55); }
.modal .dialog { position:relative; width:100%; max-width:680px; max-height:92vh; overflow:auto; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 20px 60px #34283f2b; animation:none; }
.modal .close { font-family:var(--display); font-size:1.6rem; line-height:1; text-decoration:none; padding:0 .3rem; }
.dialogbody { display:grid; grid-template-columns:200px 1fr; gap:1rem; padding:1.25rem; align-items:start; }
.dialog .pic { border:1px solid var(--line); border-radius:10px; }
.dialog .kv th { width:10.5rem; }
@media (max-width: 640px) { .dialogbody { grid-template-columns:1fr; } .dialog .pic { max-width:220px; margin:0 auto; } }

/* ---- the page's own systems strip ---- */
.ctiles { display:grid; grid-template-columns:repeat(4,1fr); gap:.7rem; }
@media (max-width:900px) { .ctiles { grid-template-columns:repeat(2,1fr); } }
.ctile { border:1px solid var(--line); border-left-width:4px; border-radius:10px; background:var(--surface);
  padding:.55rem .8rem; display:grid; gap:.12rem; align-content:start; box-shadow:none;
  text-decoration:none; color:inherit; }
a.ctile { cursor:pointer; transition:box-shadow .15s ease; }
a.ctile:hover { transform:none; box-shadow:0 0 0 1px #b9a6c8; }
.ctile .tl { font-family:var(--display); font-weight:800; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); }
.ctile .tv { font-family:var(--display); font-weight:800; font-size:1.55rem; line-height:1.05; }
.ctile .tv small { font-size:.85rem; font-weight:800; }
.ctile .ts { font-weight:700; font-size:.78rem; color:var(--body); }
.ctile.ok { border-left-color:#0a7a43; background:#e6fbef; }
.ctile.warn { border-left-color:#a8790a; background:#fff3c4; }
.ctile.bad { border-left-color:#b3324b; background:#ffe3ea; }
.ctile.mut { border-left-color:var(--dot); }
/* ---- the counting chip: the window IS visible state, never page chrome ---- */
.winchip { display:inline-flex; gap:.3em; align-items:center; font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.66rem; font-weight:400; border:1.5px solid var(--dim); color:var(--dim); border-radius:999px;
  padding:.02em .55em; background:#fff; white-space:nowrap; vertical-align:middle; }
.winchip::before { content:"counting:"; letter-spacing:.02em; }
/* ---- the two-column worksurface: lab panels left, Do Next right ---- */
.cbody { display:grid; grid-template-columns:minmax(0,1fr) 19.5rem; gap:1rem; align-items:start; margin-top:1rem; }
@media (max-width:980px) { .cbody { grid-template-columns:1fr; } }
.cstack { display:grid; gap:1rem; align-content:start; min-width:0; }
.cpanel { border:1px solid var(--line); border-radius:10px; background:var(--surface); padding:.7rem .9rem;
  display:grid; gap:.5rem; align-content:start; box-shadow:none; }
.cpanel > h5 { margin:0; font-family:var(--display); font-weight:800; font-size:.74rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--ink); display:flex; justify-content:space-between; gap:.5rem; flex-wrap:wrap; align-items:baseline; }
/* ---- four-beat rows: WHAT / HOW SURE / MEANS / DO ---- */
.crow { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; align-items:start;
  border:1px solid var(--line); border-left:3px solid var(--dot); border-radius:8px; padding:.42rem .6rem; background:var(--surface); }
.crow.edge-bad { border-left-color:#b3324b; background:#fff6f8; }
.crow.edge-warn { border-left-color:#a8790a; background:#fffbf0; }
.crow.edge-ok { border-left-color:#0a7a43; background:#f4fdf8; }
.crow.faded { opacity:.6; }
.crow .dwhat { font-weight:800; color:var(--ink); font-size:.86rem; }
.crow .dwhat a { text-decoration:none; color:inherit; }
.crow .dwhat a:hover { text-decoration:underline; }
.crow .dsure { font-size:.76rem; font-weight:700; color:#a8790a; }
.crow .dmeans { font-size:.78rem; color:var(--body); }
.crow .dact { font-size:.78rem; font-weight:800; color:var(--ink); }
.crow .dact::before { content:"\2192 "; color:#a8790a; }
.crow .dn { font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; font-size:1.05rem; color:#b3324b; }
.termtag { display:inline-block; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.62rem;
  border:1.5px dashed var(--dim); color:var(--dim); border-radius:5px; padding:0 .35rem; background:#fff; vertical-align:middle; }
/* ---- the Do Next column (sticky beside the stack, plain flow when narrow) ---- */
.cdonext { display:grid; gap:1rem; align-content:start; position:sticky; top:.75rem; }
@media (max-width:980px) { .cdonext { position:static; } }
.cdonext .cpanel { background:var(--cream); }
.cdonext .crow { background:#fff; }
.cdonext .dwhat { font-size:.78rem; }
.cdonext .dmeans { font-size:.72rem; }
.cdonext .dact { font-size:.72rem; }
/* ---- the wide variant: the same column, two panels side by side, for
   pages whose worksurface must keep its full width (Profiles' deck) ---- */
.cdual .cdonext { position:static; grid-template-columns:1fr 1fr; display:grid; gap:1rem; margin:0 0 1rem; }
@media (max-width:900px) { .cdual .cdonext { grid-template-columns:1fr; } }
/* ---- discrete report-card points: no line until it is earned ---- */
.cpts { display:flex; gap:1.3rem; align-items:flex-end; flex-wrap:wrap; padding:.2rem 0; }
.cpt { display:grid; justify-items:center; gap:.18rem; font-size:.68rem; font-weight:700; color:var(--dim); text-align:center; max-width:11rem; }
.cpt i { width:.8rem; height:.8rem; border-radius:50%; background:var(--ink); font-style:normal; }
.cpt.bt i { background:#fff; border:2px dashed var(--dim); }
.cpt .note { color:#a8790a; }
/* ---- the epistemics strip ---- */
.cepis { display:flex; flex-wrap:wrap; gap:.4rem .9rem; align-items:center; font-size:.74rem; font-weight:700; color:var(--dim); }
.cepis b { color:var(--ink); }
.cepis .loud { color:#b3324b; font-weight:800; }
/* ---- the four-window demonstration table ---- */
.cwindows td, .cwindows th { font-size:.78rem; }
.cwindows tr.on td { background:var(--cream); }

/* ---- A1 THE FIELDING SHEET: banded lanes + the consequences strip ----
   Lanes carry NO cross-lane rank, so nothing here encodes position: no
   numbering, no ordering affordance, no visual weight ladder between lanes.
   Earned green holds - .fine only reaches PROVEN; quiet and untested take
   the neutral, because quiet means unremarkable, not safe. */
.fcov { display:flex; flex-wrap:wrap; gap:6px 16px; align-items:baseline; margin:0 0 6px; font-size:.82rem; }
.fcov b { font-variant-numeric:tabular-nums; }
.fcov-hot { background:var(--cream); border-radius:6px; padding:1px 8px; }
.fcov-drop { color:var(--dim); border:1px dashed var(--dim); border-radius:6px; padding:0 7px; }
.flane { border:2px solid var(--ink); border-radius:10px; margin:0 0 10px; overflow:hidden; background:#fff; }
.flane-h { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; padding:7px 11px; border-bottom:2px solid var(--ink); }
.flane-name { font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:.78rem; }
.flane-n { font-family:var(--display); font-weight:800; font-size:1.15rem; font-variant-numeric:tabular-nums; }
.flane-job { font-size:.76rem; color:var(--dim); flex:1 1 16rem; min-width:12rem; }
.flane-b { padding:8px 11px 10px; }
.flane-rows { display:flex; flex-wrap:wrap; gap:5px; }
.frow { border:1px solid var(--dot); border-radius:7px; background:var(--paper); padding:2px 7px; font-size:.76rem; }
.frow b { font-family:var(--display); }
.fmore { color:var(--dim); border-style:dashed; }
.fdepth { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin-top:9px; font-size:.78rem; }
.fdin { width:5rem; font:inherit; font-variant-numeric:tabular-nums; border:2px solid var(--ink); border-radius:6px; padding:1px 6px; background:#fff; color:inherit; }
.fall { font:inherit; font-size:.74rem; border:2px solid var(--ink); border-radius:999px; background:var(--paper); padding:1px 9px; cursor:pointer; }
.fall:hover { background:var(--cream); }
.fstrip { border:3px solid var(--ink); border-radius:10px; background:var(--paper); padding:10px 13px; margin:4px 0 10px; }
.fstrip-h { font-family:var(--display); font-weight:800; font-size:.8rem; text-transform:uppercase; letter-spacing:.07em; margin-bottom:6px; }
.fstrip-body { min-height:1.1rem; }
.fbuys { display:flex; flex-wrap:wrap; gap:10px; }
.fbuy { border:2px solid var(--ink); border-radius:8px; background:#fff; padding:6px 10px; flex:1 1 11rem; }
.fbuy .n { font-family:var(--display); font-weight:800; font-size:1.4rem; line-height:1.1; font-variant-numeric:tabular-nums; }
.fbuy .t { font-size:.75rem; color:var(--dim); }
.frate { margin-top:8px; font-size:.78rem; }

/* the application shell: a bar that does not scroll, a sheet that does */
/* U1: the controls take their natural width instead of stretching. A row of
   full-width buttons reads as three page-level actions; these are a
   toolbar. */
.p2bar { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin:0 0 .6rem; }
.p2bar > select, .p2bar > button { width:auto; flex:0 0 auto; }
.p2bar input[type=search] { flex:0 1 14rem; }
.p2bar input[type=search] { min-width:14rem; }
.p2count { font-family:var(--display); font-weight:800; }
.p2wrap { max-height:70vh; overflow:auto; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.p2sheet { width:100%; border-collapse:collapse; font-size:.86rem; }
.p2sheet thead th { position:sticky; top:0; z-index:2; background:var(--paper); border-bottom:1px solid var(--line); text-align:left; padding:.35rem .5rem; font-family:var(--text); cursor:pointer; white-space:nowrap; }
.p2sheet thead th.on { background:var(--accent-soft); }
/* VIRTUALIZATION needs a predictable row height — the spacers stand in for
   rows that are not built, and a variable height would make the scrollbar
   lie about how much book there is. */
.p2sheet tr { height:28px; }
.p2spacer td { padding:0; border:0; }
.p2sheet td { padding:.3rem .5rem; border-bottom:1px solid var(--line); white-space:nowrap; max-width:22rem; overflow:hidden; text-overflow:ellipsis; }
/* U3/U4: selection is HIGHLIGHT ONLY — no tick column, no rule under the
   row. The leftmost slot now carries a status glyph instead: a burned
   account is a red ✕, everything else is empty, so the column says
   something about the ROW rather than about what the mouse did. */
/* R2.5-4: ranging must not paint the sheet blue. The rows are a selection
   surface, so text selection inside them is refused outright; the cell
   editor re-enables it where typing actually happens. */
.p2sheet tbody { user-select:none; -webkit-user-select:none; }
.p2editing input { user-select:text; -webkit-user-select:text; }
.p2sheet tr.on td { background:var(--accent-soft); }
.p2burn { color:#c2185b; font-weight:800; }
.p2sheet tr:hover td { background:var(--paper); }
.p2sel { width:1.6rem; text-align:center; font-family:var(--display); font-weight:800; }
/* PHASE 2: edits are local until a deliberate act, and the sheet says so */
.p2dirty { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; border:1px solid var(--line); border-radius:12px; background:var(--cream); padding:.4rem .6rem; margin:0 0 .6rem; }
.p2sheet tr.dirty td { background:var(--cream); }
.p2sheet td.p2edit { cursor:text; }
.p2sheet td.p2edit:hover { box-shadow:inset 0 0 0 1px var(--accent); }
.p2editing input { width:100%; font:inherit; border:1px solid var(--accent); border-radius:6px; padding:.1rem .25rem; }
.p2was { border-bottom:1px dashed var(--accent); }
/* the preview: the server's verdict, never the page's */
.p2prev { border:1px solid var(--line); border-radius:12px; background:var(--surface); margin:0 0 .8rem; }
.p2sum { margin:.2rem 0 .6rem; }
.p2prow { border-top:1px solid var(--line); padding:.4rem 0; }
.p2fields tr.st-change td { background:var(--mint); }
.p2fields tr.st-refused td { background:var(--pink); }
.p2fields tr.st-same td { color:var(--dim); }

/* U2: the controls belong to the TABLE. One frame holds the bar and the
   sheet, so a filter reads as an attribute of the sheet rather than a
   page-level action floating above it. */
.p2frame { border:1px solid var(--line); border-radius:12px; background:var(--paper); overflow:hidden; }
.p2frame .p2bar { margin:0; padding:.45rem .55rem; border-bottom:1px solid var(--line); background:var(--paper); }
.p2frame .p2wrap { border:0; border-radius:0; max-height:64vh; }
/* Table controls share the Refined Camp surface and border tokens. */
.p2bar .btn, .p2bar select, .p2bar input[type=search] {
  font:inherit; font-size:.86rem; padding:.12rem .45rem; border:1px solid var(--line);
  border-radius:7px; background:var(--surface); box-shadow:none; transform:none; animation:none;
}
.p2bar .btn:hover, .p2bar select:hover { background:var(--accent-soft); }
.p2bar .btn:active { background:var(--accent-soft); }
.p2dirty .btn { font-size:.86rem; padding:.12rem .45rem; border-radius:7px; box-shadow:none; }

/* the read-only story drawer */
.p2drawer { border:1px solid var(--line); border-radius:12px; background:var(--surface); margin-top:.8rem; }
.p2dhead { display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.5rem .7rem; border-bottom:1px solid var(--line); background:var(--paper); }
.p2dbody { padding:.6rem .7rem; max-height:50vh; overflow:auto; }
.p2dsec { margin-bottom:.8rem; }
.p2dsec h5 { margin:.2rem 0 .35rem; font-family:var(--display); }
.p2fields td, .p2ev td { padding:.15rem .45rem; border-bottom:1px solid var(--line); font-size:.82rem; }
.p2fields td:first-child { color:var(--dim); white-space:nowrap; }

/* ---- THE GUTTER (R3 letter A): the whole book as a strip, always on screen.
   16px of permanent width, which is the trade the admin accepted: the book's
   SHAPE is worth more than the column-inch it costs. Bands are coloured by
   SITE — a fact — never by engine verdict, which C14 showed is arbitrary on a
   share of cells and would spread that arbitrariness across the whole strip. */
.p2deck { display:flex; align-items:stretch; }
.p2gut { position:relative; flex:0 0 16px; width:16px; background:var(--paper);
  border-right:1px solid var(--line); cursor:ns-resize; overflow:hidden; }
.p2gut i { position:absolute; left:0; right:0; display:block; }
.p2gut b { position:absolute; left:-1px; right:-1px; display:block; background:rgba(255,255,255,.72);
  border-top:1px solid var(--accent); border-bottom:1px solid var(--accent); pointer-events:none; }
.p2deck .p2wrap { flex:1 1 auto; min-width:0; }
/* The thin-verdict caution: the DASH family, never a severity tone. Thinness
   is a fact about how much a verdict rests on, not a claim about how bad it
   is, and giving it a warning colour would let those two read as one thing. */
.p2thin { font-size:.72rem; color:var(--dim); border:1px dashed #bbb096;
  border-radius:999px; padding:0 .4rem; white-space:nowrap; }
/* Base-relative line 1: the shared part recedes, the difference stays. The
   anchor is the MOST COMMON spelling at that house number and ZIP — a display
   convenience, never a claim that it is the correct or cleared form. */
.p2same { color:#a89f88; }
.p2delta { font-weight:700; text-decoration:underline; text-decoration-style:wavy;
  text-decoration-thickness:1px; text-underline-offset:2px; }
/* The WHEN control: an axis toggle then that axis's own input, never both. */
.p2when { display:inline-flex; align-items:center; gap:.25rem; }
.p2when.off { opacity:.55; }
.p2seg { font:inherit; font-size:.78rem; padding:.15rem .5rem; border:1px solid var(--line);
  background:var(--surface); cursor:pointer; }
.p2seg:first-of-type { border-radius:6px 0 0 6px; border-right-width:1px; }
.p2seg:last-of-type { border-radius:0 6px 6px 0; border-left-width:1px; }
.p2seg.on { background:var(--accent); color:var(--surface); }
/* The bulk bar: present only while a selection exists, so the sheet is never
   carrying a row of disabled buttons waiting for one. */
.p2bulk { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap;
  padding:.4rem .55rem; border-bottom:1px solid var(--line); background:var(--accent-soft); }
.p2bulk input { flex:0 1 12rem; }

/* Library: a quiet Camp work surface. Existing modal/editor styling stays
   shared; all new controls are scoped to this app. */
#p2app{min-width:0}
#p2app .p2library-top,#p2app .p2selection{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.6rem 0}
#p2app .p2library-top{justify-content:flex-start;margin-bottom:.25rem}
#p2app .p2library-top>.btn:first-child{margin-right:auto}
#p2app .btn,#p2app summary,#p2app select,#p2app input{font:inherit;font-size:.875rem;box-shadow:none;transform:none;animation:none}
#p2app .btn{padding:.42rem .7rem;border:1px solid var(--line);border-radius:8px}
#p2app .btn.yellow{background:var(--yellow);border-color:#bda44c}
#p2app .p2bar{gap:.55rem;padding:.7rem;background:var(--surface);border:0;margin:0}
#p2app .p2bar input[type=search]{flex:1 1 13rem;min-width:8rem;max-width:28rem}
#p2app input,#p2app select{min-height:36px;padding:.35rem .5rem;border:1px solid var(--line);border-radius:7px}
#p2app input[type=checkbox]{width:17px;height:17px;min-height:0;flex:none;accent-color:var(--accent);margin:0}
#p2app .p2tools{position:relative}
#p2app summary{cursor:pointer;padding:.42rem .6rem;border-radius:7px}
#p2app .p2tool-body{position:absolute;top:100%;right:0;z-index:12;width:260px;max-width:calc(100vw - 48px);padding:1rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #34283f18;display:grid;gap:.7rem}
#p2app .p2tool-body label{display:flex;align-items:center;gap:.6rem}
#p2app .p2tool-body form,#p2app .p2tool-body form label{display:grid;gap:.65rem;min-width:0}
#p2app .p2tool-body input[type=file]{width:100%;min-width:0}
#p2app .p2frame{position:relative;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:visible}
#p2app .p2advanced{border-bottom:1px solid var(--line)}
#p2app .p2advanced>summary{font-size:.8rem;color:var(--dim);padding:.6rem .8rem}
#p2app .p2selection{font-size:.8rem;padding:.65rem .8rem;border-bottom:1px solid var(--line);min-height:54px}
#p2app .p2selection>#p2count{margin-right:auto}
#p2app .p2selection .btn{font-size:.8rem;padding:.25rem .5rem}
#p2app .p2wrap{border:0;max-height:64vh;border-radius:0 0 12px 12px;background:var(--surface)}
#p2app .p2sheet{font-size:.84rem;table-layout:auto}
#p2app .p2sheet tr:not(.p2spacer){height:44px}
#p2app .p2sheet thead th{background:var(--paper);border-bottom:1px solid var(--line);font-family:inherit;font-size:.76rem;letter-spacing:.015em;padding:.6rem .7rem}
#p2app .p2sheet thead th.on{background:var(--accent-soft)}
#p2app .p2sheet td{padding:0 .7rem;border-bottom:1px solid var(--line);max-width:20rem;height:44px;line-height:1.15}
#p2app .p2sheet td a{font-weight:650;text-decoration:none;color:var(--accent)}
#p2app .p2sheet tr.on td,#p2app .p2sheet tr.on:hover td{background:var(--accent-soft)}
#p2app .p2sheet tr.focus td{box-shadow:inset 0 2px var(--accent),inset 0 -2px var(--accent);outline-offset:-2px}
#p2app .p2sheet tr:hover td{background:var(--paper)}
#p2app .p2sheet td.p2sel,#p2app .p2sheet th.p2sel{width:44px;min-width:44px;max-width:44px;padding:0;text-align:center;text-overflow:clip}
#p2app .p2sheet td.p2sel input{display:inline-block;vertical-align:middle}
#p2app .p2spacer td{height:0;padding:0;border:0;line-height:0}
#p2app .p2dirty,#p2app .p2prev{border:1px solid var(--line);border-radius:10px;margin:.65rem;background:var(--cream)}
#p2app .p2dirty{padding:.6rem}
#p2app .p2dhead{border-bottom:1px solid var(--line);background:var(--paper)}
#p2app .p2receipt{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:.7rem .85rem;font-size:.84rem}
#p2app .p2bulk-fields{display:flex;flex-wrap:wrap;align-items:end;gap:.65rem;margin:.5rem 0}
#p2app .p2bulk-fields label{display:grid;gap:.3rem;font-size:.8rem;flex:1 1 9rem}
#p2app .p2menu{position:relative;margin:.5rem .8rem;display:flex;flex-wrap:wrap;gap:.4rem;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:.5rem;box-shadow:none}
#p2app .p2menu button{background:var(--surface);border:0;border-radius:5px;padding:.5rem .65rem;font:inherit;font-size:.84rem;text-align:left}
#p2app .p2menu button:hover,#p2app .p2menu button:focus-visible{background:var(--accent-soft)}
#p2app .p2menu button:disabled{opacity:.45}
#p2app .hint{font-size:.8rem}
#p2app button:focus-visible,#p2app summary:focus-visible,#p2app a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:600px){#p2app .p2library-top>.btn:first-child{margin-right:0}#p2app .p2bar>*{max-width:100%}#p2app .p2tools{position:static}#p2app .p2tool-body{position:relative;top:auto;right:auto;max-width:100%;width:auto;box-shadow:none}#p2app .p2library-top{align-items:stretch}#p2app .p2selection{align-items:flex-start}#p2app .p2selection>#p2count{flex-basis:100%}#p2app .p2when{flex-wrap:wrap}#p2app .p2bar input[type=search]{flex-basis:100%;max-width:none}}

/* ---- the three columns. On a narrow viewport they stack, deliberately:
   during a drop the admin may be on a phone, and a squeezed three-up is
   worse than an honest one-up. ---- */
.dropcols { display:grid; grid-template-columns:1.3fr 1fr 1.2fr; gap:.9rem; align-items:start; }
@media (max-width:1000px){ .dropcols { grid-template-columns:1fr; } }
.dropintro { font-size:.9rem; color:var(--dim); margin:.2rem 0 .8rem; max-width:78ch; }

/* ---- the score. THE GAP IS THE FIX the lead reported: the number and its
   label were flush ("0ALIVE") because the cell had no layout of its own. ---- */
.scoregrid { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin-bottom:.6rem; }
.scorecell { border:1px solid var(--line); border-radius:10px; padding:.5rem .4rem;
  display:flex; flex-direction:column; align-items:center; gap:.15rem; background:#fff; }
.scorecell b { font-family:var(--display); font-weight:800; font-size:1.7rem; line-height:1;
  font-variant-numeric:tabular-nums; }
.scorecell span { font-size:.68rem; letter-spacing:.06em; font-weight:700; color:var(--dim); text-align:center; }
.scorecell.bad { background:#fff1ee; }
.scorecell.warn { background:#fff8e3; }
.sitetally { width:100%; border-collapse:collapse; font-size:.8rem; margin:.3rem 0 .2rem; }
.sitetally td { padding:.15rem .2rem; border-bottom:1px dashed var(--dot); }
.sitetally tr:last-child td { border-bottom:0; }
.subhead { font-family:var(--display); font-size:.85rem; margin:.7rem 0 .3rem; }
.small { font-size:.78rem; }

/* ---- the ticker ---- */
.ticker { list-style:none; margin:0; padding:0; max-height:24rem; overflow:auto; }
.tickrow { display:grid; grid-template-columns:4.4rem 1fr 4rem auto; gap:.4rem; align-items:center;
  padding:.22rem .1rem; border-bottom:1px dashed var(--dot); font-size:.78rem; }
.tickrow:last-child { border-bottom:0; }
.okey { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.site { font-size:.72rem; color:var(--dim); }

/* ---- the grace countdown. The bar is STATIC: no transition and no animation,
   because a bar that moves on its own is a bar that can keep counting after
   its data went stale (A2.2). ---- */
.gracelist { list-style:none; margin:0; padding:0; }
.gracelist li { display:flex; flex-direction:column; gap:.15rem; padding:.25rem 0;
  border-bottom:1px dashed var(--dot); font-size:.78rem; }
.gracelist li:last-child { border-bottom:0; }
.gracerow { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.gracebar { display:inline-block; width:7rem; height:.55rem; border:1px solid var(--line);
  border-radius:99px; background:#fff; overflow:hidden; flex:none; }
.gracefill { display:block; height:100%; background:var(--yellow); }

/* ---- the wire ---- */
.wirelist { list-style:none; margin:0; padding:0; max-height:14rem; overflow:auto; }
.wirelist li { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap;
  padding:.22rem 0; border-bottom:1px dashed var(--dot); font-size:.78rem; }
.wirelist li:last-child { border-bottom:0; }

/* ---- badges. Kept small and outlined so KILLED never reads as decoration. ---- */
.badge { display:inline-block; font-size:.66rem; font-weight:800; letter-spacing:.04em;
  padding:.05rem .35rem; border:1px solid var(--line); border-radius:6px; background:#fff; line-height:1.45; }
.badge.good { background:var(--mint); }
.badge.bad { background:#ffc9bd; }
.badge.warn { background:var(--cream); }
.badge.info { background:var(--sky); }

/* ---- the staleness stamps (A2.3). "read failed" is deliberately louder than
   a timestamp: quiet and broken must not share a pixel. ---- */
.cardnote { font-size:.7rem; color:var(--dim); display:inline-flex; gap:.4rem; align-items:center; }
.darkstamp { font-weight:800; color:#a8321c; border:2px solid #a8321c; border-radius:6px;
  padding:0 .3rem; background:#ffe9e3; }

.admin-workspace { font-size:15px; }
.admin-workspace::before { display:none; }
.camp-header { display:flex; align-items:center; justify-content:space-between; gap:1rem;
  min-height:76px; padding:1rem 2rem; background:var(--paper); border-bottom:1px solid var(--line); }
.camp-brand { gap:.8rem; font-size:1.45rem; line-height:1.1; flex-shrink:0; }
.camp-brand img { width:52px; height:52px; }
.camp-brand small { display:block; margin-top:.4rem; font:800 .63rem/1.4 var(--text); letter-spacing:.18em; }
.camp-utilities { display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.camp-member-link { font-size:.82rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.camp-member-link:hover { text-decoration:underline; }
.camp-account { position:relative; max-width:16rem; }
.camp-account summary { cursor:pointer; font-weight:700; padding:.6rem .75rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); overflow-wrap:anywhere; }
.camp-account-panel { position:absolute; z-index:45; right:0; top:calc(100% + .5rem); min-width:12rem;
  display:grid; gap:1rem; padding:1rem; background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px #34283f18; }
.camp-account-panel a { font-weight:800; }
.camp-layout { display:grid; grid-template-columns:196px minmax(0, 1fr); flex:1; width:100%; max-width:1920px; margin:0 auto; }
.camp-sidebar { padding:1.1rem .75rem 2rem; background:var(--paper); border-right:1px solid var(--line); }
.camp-sidebar > nav { position:sticky; top:1rem; }
.camp-nav-group + .camp-nav-group { margin-top:1.1rem; }
.camp-nav-group > p { margin:0 0 .45rem .7rem; color:var(--dim); font-size:.66rem; font-weight:900; text-transform:uppercase; letter-spacing:.13em; }
.camp-nav-link { display:flex; align-items:center; gap:.75rem; padding:.7rem .75rem; margin:.18rem 0;
  min-height:44px; border:1px solid transparent; border-radius:8px; text-decoration:none; font-size:.88rem; font-weight:700; }
.camp-nav-link svg { width:19px; height:19px; flex:none; }
.camp-nav-link:hover { background:var(--cream); border-color:transparent; }
.camp-nav-link.on { background:var(--accent-soft); color:var(--accent); border-color:transparent; box-shadow:none; }
.camp-sidebar-note { display:none; }
.camp-sidebar-note img { margin-bottom:.5rem; }
.camp-sidebar-note span { color:var(--dim); }
.camp-main-wrap { min-width:0; padding:1.5rem 2rem 0; }
.admin-workspace main { max-width:none; padding:0 0 2rem; margin:0; min-width:0; }
.camp-breadcrumb { display:flex; gap:.7rem; align-items:center; margin-bottom:1.4rem; font-size:.76rem; color:var(--dim); }
.camp-breadcrumb a { text-decoration:none; }
.camp-breadcrumb a:hover { text-decoration:underline; }
.camp-breadcrumb > :last-child { font-weight:800; color:var(--ink); overflow-wrap:anywhere; }
.camp-pagehead { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.camp-eyebrow { color:var(--dim); font-size:.64rem; font-weight:900; letter-spacing:.17em; margin:0 0 .4rem; }
.camp-pagehead h1 { font-size:clamp(1.8rem, 2.5vw, 2.6rem); overflow-wrap:anywhere; }
.camp-description { color:var(--body); font-size:.91rem; margin:.55rem 0 0; max-width:55rem; }
.camp-pageactions { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; flex-shrink:0; }
.camp-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding:1rem 0 1.5rem;
  border-top:1px solid var(--line); color:var(--dim); font-size:.74rem; }
.camp-footer a { font-weight:800; text-decoration:none; }
.camp-mobile-menu { display:none; }
.camp-skip { position:absolute; left:1rem; top:-100px; z-index:90; background:var(--yellow); border:3px solid var(--ink); padding:.7rem 1rem; border-radius:12px; font-weight:900; }
.camp-skip:focus { top:1rem; }
.admin-workspace :focus-visible { outline:3px solid #27589d; outline-offset:3px; }
.admin-workspace main:focus { outline:none; }

/* Shared page treatment: stable cards and controls, more space for data,
   scrolling contained in the existing table/deck containers. */
.admin-workspace .card { box-shadow:none; }
.admin-workspace .card:hover { transform:none; }
.admin-workspace .pop { animation:none; }
.admin-workspace .cardhead { padding:.9rem 1.15rem; flex-wrap:wrap; gap:.6rem; }
.admin-workspace .cardhead h3 { font-family:var(--text); font-size:1.05rem; }
.admin-workspace .cardbody { padding:1.1rem 1.15rem; }
.admin-workspace .section { margin-top:1.25rem; }
.admin-workspace .section:first-child { margin-top:0; }
.admin-workspace .toolbar { gap:.6rem; flex-wrap:wrap; }
.admin-workspace input:not([type=checkbox]):not([type=radio]), .admin-workspace select, .admin-workspace textarea { max-width:100%; }
.admin-workspace .tbl { max-width:100%; overflow-x:auto; }
.admin-workspace .tbl th { background:var(--surface); font-size:.72rem; letter-spacing:.035em; }
.admin-workspace .tbl td { font-size:.83rem; }
.admin-workspace .tbl tr:focus-within { background:#fff5dd; }
.admin-workspace .empty { padding:1.25rem .75rem; color:var(--body); }
.admin-workspace .deck { height:calc(100dvh - 19rem); min-height:32rem; }
.admin-workspace .deckgrid .psheet .rowacts { opacity:1; }
.admin-workspace .bulkbar { max-width:calc(100vw - 260px); }
.admin-workspace .ctiles { gap:.85rem; }
.admin-workspace .ctile { min-width:0; }
.admin-workspace .winchip { white-space:normal; overflow-wrap:anywhere; }
.admin-workspace .bulkbar { flex-wrap:wrap; }
.admin-workspace #bulkform:not(.on) { display:none; }
.admin-workspace .qtop { flex-wrap:wrap; }
.admin-workspace .darkfeed { margin-bottom:1rem; }
.admin-workspace .livenotice { max-width:calc(100vw - 2rem); }

/* Quick navigation searches only real pages. It is not a global record
   search and does not duplicate or expose any member/profile data. */
.camp-jump-button { display:flex; align-items:center; gap:1rem; min-height:40px; padding:.55rem .8rem;
  color:var(--body); background:var(--surface); border:1px solid var(--line); border-radius:8px; font:700 .78rem var(--text); cursor:pointer; }
.camp-jump-button:hover { border-color:var(--ink); }
.camp-jump-button kbd { font:700 .62rem var(--text); color:var(--dim); }
.camp-jump-dialog { width:min(520px, calc(100vw - 2rem)); max-height:85dvh; padding:1.25rem;
  background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 64px #34283f30; }
.camp-jump-dialog::backdrop { background:rgba(28,28,30,.42); }
.camp-jump-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.camp-jump-heading h2 { font-size:1.55rem; }
.camp-jump-dialog label { display:block; font-size:.8rem; font-weight:800; }
.camp-jump-dialog input { width:100%; margin:.4rem 0 1rem; }
.camp-jump-dialog .camp-nav-group + .camp-nav-group { margin-top:.7rem; }
.camp-jump-dialog .camp-nav-link { background:#fff; }
.camp-jump-dialog .camp-nav-link.on { background:var(--yellow); }
.camp-jump-empty { color:var(--dim); }

@media (min-width:1920px) { .camp-layout { border-left:1px solid var(--line); border-right:1px solid var(--line); } }
@media (max-width:1200px) {
  .camp-header { padding:1rem 1.25rem; }
  .camp-brand { font-size:1.2rem; }
  .camp-utilities { gap:.75rem; }
  .camp-layout { grid-template-columns:196px minmax(0, 1fr); }
  .camp-main-wrap { padding:1.35rem 1.35rem 0; }
  .camp-nav-link { gap:.55rem; font-size:.82rem; padding:.65rem .55rem; }
  .camp-jump-button kbd { display:none; }
  .admin-workspace .stats.four { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:900px) {
  .camp-layout { display:block; }
  .camp-sidebar { display:none; }
  .camp-mobile-menu { display:block; margin-bottom:1.2rem; background:var(--surface); border:1px solid var(--line); border-radius:10px; }
  .camp-mobile-menu > summary { cursor:pointer; padding:.75rem 1rem; font-weight:900; }
  .camp-mobile-menu > summary span { float:right; font-weight:700; font-size:.8rem; }
  .camp-mobile-menu > nav { border-top:1px solid var(--line); padding:1rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
  .camp-mobile-menu .camp-nav-group + .camp-nav-group { margin:0; }
  .camp-pagehead { align-items:flex-start; flex-wrap:wrap; }
  .admin-workspace .bulkbar { max-width:calc(100vw - 2rem); }
}
@media (max-width:600px) {
  .camp-header { gap:.75rem; padding:.8rem 1rem; flex-wrap:wrap; }
  .camp-brand { font-size:1.1rem; }
  .camp-brand img { width:42px; height:42px; }
  .camp-brand small { font-size:.55rem; }
  .camp-utilities { width:100%; justify-content:space-between; gap:.5rem; }
  .camp-account { max-width:11rem; font-size:.78rem; }
  .camp-jump-button { padding:.4rem .55rem; font-size:.72rem; }
  .camp-member-link { font-size:.74rem; }
  .camp-main-wrap { padding:1rem 1rem 0; }
  .camp-breadcrumb { margin-bottom:1rem; }
  .camp-pagehead { margin-bottom:1.2rem; }
  .camp-pagehead h1 { font-size:1.9rem; }
  .camp-description { font-size:.84rem; }
  .camp-pageactions { flex-shrink:1; }
  .camp-mobile-menu > nav { grid-template-columns:1fr; }
  .admin-workspace .cardhead, .admin-workspace .cardbody { padding:.85rem; }
  .admin-workspace .search .btn { display:inline-flex; }
  .admin-workspace .stats.four { grid-template-columns:1fr; }
  .admin-workspace .grid3 { grid-template-columns:1fr; }
  .admin-workspace .ctiles { grid-template-columns:minmax(0, 1fr); }
  .admin-workspace .ctl { grid-template-columns:minmax(0, 1fr); }
  .admin-workspace .crow { min-width:0; }
  .admin-workspace .seg { max-width:100%; flex-wrap:wrap; }
  .camp-footer { font-size:.68rem; }
}

/* Layout declarations moved out of admin templates for the self-only CSP. */
.admin-workspace .camp-m0 { margin:0; }
.admin-workspace .camp-mt0 { margin-top:0; }
.admin-workspace .camp-mb0 { margin-bottom:0; }
.admin-workspace .camp-mt1 { margin-top:1rem; }
.admin-workspace .camp-mt4 { margin-top:.4rem; }
.admin-workspace .camp-mt6 { margin-top:.6rem; }
.admin-workspace .camp-mt7 { margin-top:.7rem; }
.admin-workspace .camp-mt8 { margin-top:.8rem; }
.admin-workspace .camp-my5 { margin:.5rem 0; }
.admin-workspace .camp-my35 { margin:.35rem 0; }
.admin-workspace .camp-mb1 { margin:0 0 1rem; }
.admin-workspace .camp-mb10 { margin:0 0 10px; }
.admin-workspace .camp-m46 { margin:.4rem .6rem; }
.admin-workspace .camp-m206 { margin:.2rem 0 .6rem; }
.admin-workspace .camp-m208 { margin:.2rem 0 .8rem; }
.admin-workspace .camp-m402 { margin:.4rem 0 .2rem; }
.admin-workspace .camp-inline { display:inline; }
.admin-workspace .camp-stack { display:grid; gap:1.1rem; }
.admin-workspace .camp-prose { max-width:34rem; }
.admin-workspace .camp-inline-meter { display:inline-block; width:6.5rem; vertical-align:middle; }
.admin-workspace .camp-faded { opacity:.25; }
.admin-workspace .camp-text-small { font-size:.8rem; }
.admin-workspace .camp-text-normal { font-size:.95rem; }
.admin-workspace .camp-bold { font-weight:800; }
.admin-workspace .camp-rule-top { border-top:1px solid var(--line); }
.admin-workspace .camp-card-bottom { padding:0 1.25rem 1rem; }
.admin-workspace .camp-input-xs { width:4.5rem; }
.admin-workspace .camp-input-sm { width:5rem; }
.admin-workspace .camp-input-md { width:5.5rem; }
.admin-workspace .camp-input-lg { width:6rem; }
.admin-workspace .camp-catalog-filters { padding:1rem 1.25rem;margin:0;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap; }
.admin-workspace .camp-search-wide { flex:1 1 14rem;margin:0; }
.admin-workspace .camp-member-search { flex:1 1 16rem; }
.admin-workspace .camp-card-pad { padding:1rem 1.25rem; }
.admin-workspace .camp-pb0 { padding-bottom:0; }
.admin-workspace .camp-align-end { align-self:end; }
.admin-workspace .camp-justify-end { justify-content:flex-end; }
.admin-workspace .camp-actions-start { margin-top:.8rem;justify-content:flex-start; }
.admin-workspace .camp-compact-pad { padding:.8rem 1.1rem; }
.admin-workspace .camp-wrap { flex-wrap:wrap;gap:6px; }
.admin-workspace .camp-max120 { max-width:120px; }
.admin-workspace .camp-max100 { max-width:100px; }
.admin-workspace .camp-max190 { max-width:190px; }
.admin-workspace .camp-max200 { max-width:200px; }
.admin-workspace .camp-flex-field { min-width:180px;flex:1; }
.admin-workspace .camp-credentials { display:grid;gap:.5rem;max-width:28rem;padding:.4rem .2rem; }
.admin-workspace .camp-inset-note { padding:.75rem 1.25rem;margin:0; }
.review-case + .review-case { border-top:1px solid var(--line); }
.review-case > summary { display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;cursor:pointer;list-style:none; }
.review-case > summary::-webkit-details-marker { display:none; }
.review-case > summary > span { min-width:0;overflow-wrap:anywhere; }
.review-case > summary .mono { display:block;margin-top:.2rem; }
.review-case[open] > summary { background:var(--accent-soft); }
.review-open { color:var(--accent);font-size:.8rem;font-weight:800; }
.review-open::after { content:' +'; }
.review-case[open] .review-open::after { content:' −'; }
.review-case-body { padding:1rem;border-top:1px solid var(--line); }
.review-case-body .card { margin:0; }
.catalog-fee summary,.catalog-more summary { cursor:pointer;border-radius:6px;padding:.4rem; }
.catalog-fee .feeform { display:grid;gap:.5rem;min-width:8rem;margin-top:.5rem; }
.catalog-fee input { width:8rem;max-width:100%; }
.catalog-more form { margin-top:.5rem; }
@media(max-width:600px) { .review-case > summary { grid-template-columns:minmax(0,1fr) auto;gap:.5rem; } .review-case > summary > .hint { grid-row:2;grid-column:1/-1; } .review-case-body { padding:.5rem; } }

.camp-overview { min-width:0; }
.camp-overview .card { transform:none; }
.camp-daily-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; margin-bottom:1.6rem; }
.camp-daily-card { position:relative; display:flex; flex-direction:column; align-items:flex-start;
  border:1px solid var(--line); border-radius:16px; box-shadow:none;
  padding:1.2rem 1.3rem; color:var(--ink); text-decoration:none; min-width:0; }
.camp-daily-yellow { background:#fff5d3; }
.camp-daily-mint { background:#e9f4ed; }
.camp-daily-sky { background:#edf1ff; }
.camp-daily-count { font-family:var(--display); font-size:2.7rem; line-height:1; font-weight:800; }
.camp-daily-card h3 { margin:.8rem 0 .35rem; font-size:1.35rem; }
.camp-daily-card p { margin:0 0 1rem; font-size:.88rem; line-height:1.5; }
.camp-daily-link { margin-top:auto; font-size:.88rem; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.camp-daily-card:hover { border-color:var(--accent); }
.camp-daily-card:focus-visible { outline:3px solid var(--discord); outline-offset:5px; }
.camp-overview-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,330px); gap:1.5rem; align-items:start; }
.camp-overview-main,.camp-overview-aside { min-width:0; display:grid; gap:1.4rem; }
.camp-overview .card { margin:0; }
.camp-overview .cardhead { flex-wrap:wrap; gap:.6rem 1rem; }
.camp-attention-section { scroll-margin-top:1rem; min-width:0; }
.camp-overview .attention { margin:0; gap:0; }
.camp-overview .attention li { align-items:center; padding:.7rem 1rem; border-bottom:1px solid var(--dot); }
.camp-overview .attention li:last-child { border-bottom:0; }
.camp-overview .attention li>a { font-size:.88rem; line-height:1.5; min-width:0; border:0; box-shadow:none; padding:.35rem 0; }
.camp-overview .attention li>a:hover { transform:none; box-shadow:none; text-decoration:underline; }
.camp-overview .attention .n { flex-shrink:0; }
.camp-overview .xdismiss { flex-shrink:0; width:36px; height:36px; }
.camp-attention-section .cardhead { background:#fff8ed; }
.camp-overview .dismissnote { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; padding:.8rem 1rem; }
.camp-overview .empty { padding:1rem; margin:0; font-size:.95rem; }
.camp-recent-table { min-width:0; }
.camp-recent-table th,.camp-recent-table td { padding:.7rem .75rem; }
.camp-recent-table td { font-size:.84rem; }
.camp-recent-table th { font-size:.69rem; }
.camp-table-caption { caption-side:top; padding:.75rem 1rem; text-align:left; font-size:.82rem; color:var(--dim); background:#fffdf7; }
.camp-cell-detail { display:block; margin-top:.3rem; color:var(--body); min-width:8rem; }
.camp-table-note { padding:.75rem 1rem; margin:0; font-size:.8rem; line-height:1.5; color:var(--dim); }
.camp-workspace-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.camp-overview .sys { display:block; min-width:0; padding:1rem; border:0; border-bottom:1px solid var(--line);
  border-radius:0; box-shadow:none; background:#fff; transition:none; text-decoration:none; }
.camp-overview .sys:hover { background:#fffaf0; box-shadow:none; transform:none; }
.camp-overview .sys:focus-visible { outline:3px solid var(--discord); outline-offset:-4px; }
.camp-overview .sys .lbl { font-family:var(--display); font-weight:800; font-size:1rem; color:var(--ink); letter-spacing:0; text-transform:none; }
.camp-overview .sys .num { font-family:var(--text); font-size:.93rem; font-weight:800; line-height:1.4; margin:.35rem 0; }
.camp-overview .sys .sub { font-size:.79rem; line-height:1.5; margin-top:.25rem; overflow-wrap:anywhere; }
.camp-overview .sys.bad .num { color:#a32942; }
.camp-overview .sys.warn .num { color:#7e5600; }
.camp-overview .sys.ok .num { color:#16633b; }
.camp-workspace-checks .sys:nth-child(odd) { border-right:1px solid var(--line); }
.camp-workspace-checks .sys:nth-last-child(-n+2) { border-bottom:0; }
.camp-source-list .sys:last-child { border-bottom:0; }
.camp-aio-status { padding:1rem; border-bottom:1px solid var(--line); background:var(--surface); }
.camp-aio-status summary { cursor:pointer; font-size:.85rem; }
.camp-aio-heading { display:inline-flex; align-items:center; flex-wrap:wrap; gap:.5rem; font-weight:800; }
.camp-aio-status summary>.hint { display:block; padding-top:.3rem; font-size:.76rem; }
.camp-aio-detail { padding-top:.8rem; font-size:.8rem; color:var(--body); }
.camp-aio-detail ul { list-style:none; padding:0; margin:0; }
.camp-aio-detail li { display:grid; gap:.2rem; padding:.6rem 0; border-bottom:1px solid var(--line); }
.camp-aio-detail small { overflow-wrap:anywhere; color:var(--dim); }
.camp-overview-aside .cardhead { background:var(--surface); }
.camp-fee-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; padding:1rem; }
.camp-fee-pair>div+div { border-left:1px solid var(--line); padding-left:.8rem; }
.camp-fee-pair span,.camp-fee-pair small { display:block; font-size:.78rem; line-height:1.4; color:var(--body); }
.camp-fee-pair strong { display:block; font-family:var(--display); font-size:1.7rem; line-height:1.15; margin:.6rem 0 .35rem; overflow-wrap:anywhere; }
.camp-balance-lines { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.7rem; margin:0; padding:1rem; border-top:1px solid var(--line); font-size:.85rem; }
.camp-balance-lines dt { color:var(--body); }
.camp-balance-lines dd { margin:0; font-weight:800; text-align:right; }
@media (max-width:1150px) {
  .camp-overview-columns { grid-template-columns:minmax(0,1fr); }
  .camp-overview-aside { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
}
@media (max-width:760px) {
  .camp-daily-cards { gap:.8rem; }
  .camp-daily-card { padding:1rem; }
  .camp-daily-card h3 { font-size:1.15rem; }
  .camp-overview-aside { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:560px) {
  .camp-daily-cards { grid-template-columns:minmax(0,1fr); }
  .camp-daily-card { padding:1rem 1.1rem; }
  .camp-daily-count { font-size:2.1rem; }
  .camp-daily-card h3 { margin:.45rem 0 .2rem; font-size:1.3rem; }
  .camp-daily-card p { margin-bottom:.65rem; }
  .camp-workspace-checks { grid-template-columns:minmax(0,1fr); }
  .camp-workspace-checks .sys:nth-child(odd) { border-right:0; }
  .camp-workspace-checks .sys:nth-last-child(2) { border-bottom:1px solid var(--line); }
  .camp-overview .attention li { padding:.8rem; }
  .camp-overview .attention li>a { font-size:.85rem; }
}

.camp-chart { display:block; width:100%; height:12px; box-sizing:border-box; border:2px solid var(--ink); border-radius:999px; overflow:hidden; vertical-align:middle; }
.camp-chart-inline { display:inline-block; width:6.5rem; }
.camp-chart-odds { display:inline-block; width:8rem; }
.camp-chart-family { display:inline-block; width:6.5rem; height:9px; }
.camp-chart-velocity { height:10px; }
.camp-chart-grace { display:inline-block; width:7rem; height:.55rem; }
.camp-chart-track { fill:#f6f0e2; }
.camp-chart-positive { fill:var(--mint); }
.camp-chart-negative { fill:var(--pink); }
.camp-chart-warning { fill:var(--yellow); }
.camp-chart-info { fill:var(--sky); }
.camp-chart-neutral { fill:#ddd; }
.camp-chart-marker { stroke:var(--ink); stroke-width:3; }
.camp-weight { display:block; flex:none; overflow:hidden; }
.camp-weight text { fill:var(--ink); font-size:.6rem; font-weight:800; }
.avatar.camp-avatar-0 { background:hsl(0,85%,82%); }
.avatar.camp-avatar-1 { background:hsl(30,85%,82%); }
.avatar.camp-avatar-2 { background:hsl(60,85%,82%); }
.avatar.camp-avatar-3 { background:hsl(90,85%,82%); }
.avatar.camp-avatar-4 { background:hsl(120,85%,82%); }
.avatar.camp-avatar-5 { background:hsl(150,85%,82%); }
.avatar.camp-avatar-6 { background:hsl(180,85%,82%); }
.avatar.camp-avatar-7 { background:hsl(210,85%,82%); }
.avatar.camp-avatar-8 { background:hsl(240,85%,82%); }
.avatar.camp-avatar-9 { background:hsl(270,85%,82%); }
.avatar.camp-avatar-10 { background:hsl(300,85%,82%); }
.avatar.camp-avatar-11 { background:hsl(330,85%,82%); }

.iw-workspace { --iw-purple:var(--accent); --iw-soft:var(--accent-soft); --iw-surface:var(--surface); --iw-line:var(--line); --iw-muted:var(--dim); display:grid; gap:1.15rem; min-width:0; color:var(--ink); }
.iw-workspace *, .iw-workspace *::before, .iw-workspace *::after { box-sizing:border-box; }
.iw-workspace > *, .iw-workspace section, .iw-workspace aside { min-width:0; }
.iw-workspace [hidden] { display:none!important; }
.admin-workspace .iw-workspace :focus-visible { outline:3px solid var(--iw-purple); outline-offset:3px; }
.iw-workspace h2, .iw-workspace h3 { font-family:var(--display); font-weight:600; line-height:1.25; }
.iw-intro { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:0 .15rem; }
.iw-intro p { margin:0; font-size:.83rem; color:var(--iw-muted); }
.iw-advanced { color:var(--iw-purple); font-size:.78rem; font-weight:800; white-space:nowrap; text-underline-offset:3px; }
.iw-status { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; padding:0 .2rem; font-size:.75rem; color:var(--dim); }
.iw-status a { margin-left:auto; font-weight:800; }
.iw-tabs { display:flex; flex-wrap:wrap; gap:.25rem; padding:.25rem; width:fit-content; max-width:100%; border:1px solid var(--iw-line); border-radius:10px; background:var(--iw-surface); }
.iw-tabs a { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:.5rem .9rem; border-radius:7px; font-weight:800; font-size:.8rem; text-decoration:none; }
.iw-tabs a:hover { background:var(--iw-soft); }
.iw-tabs a[aria-current] { background:var(--iw-purple); color:#fff; }
.iw-controls { display:grid; gap:.7rem; padding:.9rem 1rem; border:1px solid var(--iw-line); background:var(--iw-surface); border-radius:12px; }
.iw-ranges { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; }
.iw-ranges a { display:inline-flex; align-items:center; min-height:36px; padding:.35rem .65rem; border:1px solid transparent; border-radius:7px; color:var(--body); font-size:.74rem; font-weight:700; text-decoration:none; }
.iw-ranges a[aria-current] { background:var(--iw-soft); border-color:var(--iw-purple); color:var(--iw-purple); }
.iw-ranges a:hover { background:var(--iw-soft); }
.iw-custom { font-size:.76rem; overflow-wrap:anywhere; }
.iw-filters { display:flex; align-items:end; gap:.7rem; flex-wrap:wrap; }
.iw-filters label { display:grid; gap:.35rem; min-width:9rem; flex:1 1 9rem; font-size:.71rem; font-weight:800; color:var(--body); }
.iw-filters .iw-search { flex:2 1 14rem; }
.iw-filters input, .iw-filters select { width:100%; min-width:0; margin:0; min-height:42px; border:1px solid var(--iw-line); border-radius:8px; padding:.55rem .7rem; background:var(--iw-surface); color:var(--ink); font:inherit; font-size:.82rem; }
.iw-button { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:40px; max-width:100%; padding:.55rem .8rem; border:1px solid var(--iw-line); border-radius:8px; background:var(--iw-surface); color:var(--iw-purple); font:800 .77rem/1.4 var(--text); text-align:center; text-decoration:none; overflow-wrap:anywhere; cursor:pointer; }
.iw-button:hover { background:var(--iw-soft); }
.iw-primary { border-color:var(--iw-purple); background:var(--iw-purple); color:#fff; }
.iw-primary:hover { background:#49305f; }
.iw-reset { font-size:.75rem; padding:.65rem 0; }
.iw-panel { border:1px solid var(--iw-line); border-radius:13px; overflow:hidden; background:var(--iw-surface); }
.iw-panelhead { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.2rem; background:var(--iw-surface); }
.iw-panelhead h2 { margin:0; font-size:1.3rem; }
.iw-panelhead h2 > span { display:inline-block; margin-left:.4rem; padding:.2rem .5rem; border-radius:7px; background:var(--iw-soft); font:800 .75rem var(--text); color:var(--iw-purple); vertical-align:middle; }
.iw-panelhead p { margin:.35rem 0 0; font-size:.78rem; line-height:1.5; color:var(--iw-muted); max-width:55rem; }
.iw-review-row, .iw-profile-row { border-top:1px solid var(--iw-line); }
.iw-review-row > summary, .iw-profile-row > summary { display:grid; grid-template-columns:4.1rem minmax(0,1fr) minmax(7rem,12rem) 3.5rem; align-items:center; gap:.9rem; padding:1rem 1.25rem; cursor:pointer; list-style:none; }
.iw-review-row > summary::-webkit-details-marker, .iw-profile-row > summary::-webkit-details-marker { display:none; }
.iw-review-row > summary:hover, .iw-profile-row > summary:hover { background:var(--paper); }
.iw-review-row[open] > summary, .iw-profile-row[open] > summary { background:var(--iw-soft); }
.iw-review-row .t3, .iw-profile-row .t3 { justify-self:start; }
.iw-review-title { font-size:.86rem; font-weight:800; line-height:1.5; overflow-wrap:anywhere; }
.iw-window { font-size:.7rem; color:var(--dim); line-height:1.5; }
.iw-open { font-size:.7rem; font-weight:800; color:var(--iw-purple); }
.iw-open::after { content:' +'; }
details[open] > summary .iw-open::after { content:' −'; }
.iw-review-detail, .iw-profile-detail { margin:0; padding:1.15rem 1.25rem 1.2rem 6.25rem; background:var(--paper); border-top:1px solid var(--iw-line); }
.iw-review-detail { display:grid; gap:.85rem; }
.iw-review-detail h3, .iw-profile-detail h3 { margin:0 0 .3rem; font:800 .74rem var(--text); color:var(--iw-purple); }
.iw-review-detail p, .iw-profile-detail p, .iw-profile-detail li { margin:0; font-size:.83rem; line-height:1.65; overflow-wrap:anywhere; }
.iw-review-detail .iw-button { justify-self:start; }
.iw-profile-name { display:grid; gap:.25rem; overflow-wrap:anywhere; }
.iw-profile-name strong { font-size:.86rem; }
.iw-profile-name > span, .iw-profile-signal { font-size:.74rem; color:var(--dim); line-height:1.5; }
.iw-profile-detail { display:grid; gap:1rem; }
.iw-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0; }
.iw-facts dt { font-size:.7rem; font-weight:800; color:var(--dim); }
.iw-facts dd { margin:.3rem 0 0; font-size:.8rem; line-height:1.5; overflow-wrap:anywhere; }
.iw-notes { display:flex; flex-wrap:wrap; gap:.4rem; }
.iw-notes > span, .iw-kind { display:inline-block; padding:.25rem .5rem; border-radius:6px; background:var(--iw-soft); font-size:.71rem; overflow-wrap:anywhere; }
.iw-pagination { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.6rem; padding:.8rem 1.2rem; border-top:1px solid var(--iw-line); font-size:.74rem; }
.iw-pagination p { margin:0; color:var(--dim); }
.iw-pagination nav { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; }
.iw-panelnote { margin:0; padding:.8rem 1.2rem; background:var(--paper); border-top:1px solid var(--iw-line); font-size:.74rem; line-height:1.6; color:var(--iw-muted); }
.iw-empty { padding:2rem 1.3rem; }
.iw-empty h2, .iw-empty h3 { margin:0; font-size:1.05rem; }
.iw-empty p { margin:.55rem 0 0; font-size:.84rem; line-height:1.6; color:var(--dim); }
.iw-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:0; padding:.35rem 1.3rem 1.4rem; }
.iw-metrics > div { min-width:0; padding:.9rem; border-radius:10px; background:var(--iw-soft); }
.iw-metrics dt { font-size:.74rem; color:var(--dim); line-height:1.5; }
.iw-metrics dd { margin:.45rem 0 0; font:600 1.7rem/1.2 var(--display); font-variant-numeric:tabular-nums; color:var(--iw-purple); overflow-wrap:anywhere; }
.iw-tablewrap { max-width:100%; overflow:auto; }
.iw-tablewrap table { width:100%; border-collapse:collapse; text-align:left; font-size:.8rem; }
.iw-tablewrap th { background:var(--paper); color:var(--dim); font-size:.72rem; }
.iw-tablewrap th, .iw-tablewrap td { padding:.8rem 1.2rem; border-top:1px solid var(--iw-line); vertical-align:top; }
.iw-warning { border:1px solid #c0a03e; border-radius:10px; background:var(--cream); padding:.85rem 1rem; font-size:.83rem; line-height:1.5; }
.iw-warning > details { margin-top:.5rem; }
.iw-warning summary { cursor:pointer; font-size:.75rem; font-weight:800; }
.iw-warning .darkfeed { margin:.7rem 0 0; }
.iw-muted, .iw-footer { color:var(--dim); font-size:.75rem; }
.iw-footer { margin:0 .2rem; }
.iw-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* A compact factual summary. Outcome classifications are a read-contract
   concern; color here must not invent positive/negative outcome states. */
.iw-outcomes { min-width:0; padding:1rem 1.2rem; border:1px solid var(--iw-line); border-radius:13px; background:var(--iw-surface); }
.iw-outcomehead { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.5rem 1rem; }
.iw-outcomehead h2 { margin:0; font:800 .82rem/1.4 var(--text); }
.iw-outcomehead small, .iw-outcomehead > span { font-size:.72rem; line-height:1.5; color:var(--iw-muted); }
.iw-outcome-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem 1.4rem; margin:.8rem 0 .65rem; padding:0; }
.iw-outcome-metrics > div { display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.iw-outcome-metrics dt, .iw-outcome-metrics > div > span { font-size:.74rem; line-height:1.45; color:var(--iw-muted); overflow-wrap:anywhere; }
.iw-outcome-metrics dd, .iw-outcome-metrics > div > strong { margin:0; font:600 2rem/1.15 var(--display); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.iw-outcome-metrics dt { order:2; }
.iw-outcome-metrics dd { order:1; }
.iw-outcome-metrics dd.iw-value-unavailable { padding:.35rem 0; font:700 .82rem/1.5 var(--text); color:var(--iw-muted); }
.iw-outcome-note { padding-top:.2rem; color:var(--iw-muted); }
.iw-outcome-note > summary { width:fit-content; max-width:100%; padding:.3rem 0; cursor:pointer; font-size:.72rem; line-height:1.5; }
.iw-outcome-note p { margin:.55rem 0 0; max-width:55rem; font-size:.76rem; line-height:1.6; }
.iw-more-filters, .iw-window-picker { min-width:0; }
.iw-more-filters > summary, .iw-window-picker > summary { display:flex; align-items:center; gap:.6rem; min-height:42px; padding:.55rem .7rem; border:1px solid var(--iw-line); border-radius:8px; font-size:.75rem; font-weight:800; color:var(--iw-purple); cursor:pointer; list-style:none; }
.iw-more-filters > summary::-webkit-details-marker, .iw-window-picker > summary::-webkit-details-marker { display:none; }
.iw-more-filters > summary::after, .iw-window-picker > summary::after { content:'+'; margin-left:auto; font-size:1rem; line-height:1; }
.iw-more-filters[open], .iw-window-picker[open] { flex-basis:100%; }
.iw-more-filters[open] > summary, .iw-window-picker[open] > summary { width:fit-content; background:var(--iw-soft); }
.iw-more-filters[open] > summary::after, .iw-window-picker[open] > summary::after { content:'−'; }
.iw-more-filters > div { display:flex; flex-wrap:wrap; gap:.7rem; padding-top:.8rem; }
.iw-more-filters > label { margin-top:.75rem; }
.iw-window-picker > .iw-ranges { padding-top:.5rem; }

/* Native details remain the no-script interaction. Enhancement adds one
   selected detail pane; only the source detail inside its row is concealed. */
.iw-review-workspace { min-width:0; border-top:1px solid var(--iw-line); }
.iw-review-workspace .iw-review-list { min-width:0; }
.iw-review-workspace .iw-review-row:first-child { border-top:0; }
.iw-review-workspace.iw-enhanced .iw-review-row > .iw-review-detail { display:none; }
.iw-review-workspace.iw-enhanced .iw-review-row[open] > summary { background:var(--iw-soft); box-shadow:inset 3px 0 var(--iw-purple); }
.iw-review-workspace .iw-review-row > summary:focus-visible { outline-offset:-3px; }
.iw-selected-detail { min-width:0; padding:1.2rem; border-top:1px solid var(--iw-line); background:var(--paper); scroll-margin-block:1rem; }
.iw-detail-top { display:flex; justify-content:space-between; align-items:flex-start; gap:.85rem; margin-bottom:1rem; }
.iw-detail-top h3 { margin:0; font-size:1.3rem; overflow-wrap:anywhere; }
.iw-detail-top [data-iw-close] { display:inline-flex; flex:none; align-items:center; justify-content:center; width:40px; height:40px; padding:.3rem; border:1px solid var(--iw-line); border-radius:8px; background:transparent; color:var(--iw-purple); font:700 1.1rem/1 var(--text); text-decoration:none; cursor:pointer; }
.iw-detail-top [data-iw-close]:hover { background:var(--iw-soft); }
.iw-detail-top [data-iw-close] svg { width:17px; height:17px; }
.iw-selected-body { min-width:0; }
.iw-selected-body > .iw-review-detail { display:grid; gap:1rem; padding:0; border:0; background:transparent; }
.iw-selected-body .iw-review-detail h3 { color:var(--iw-muted); font-size:.7rem; letter-spacing:.035em; }
.iw-selected-body .iw-review-detail p { font-size:.82rem; }
.iw-selected-body .iw-review-detail > .iw-button { margin-top:.15rem; }
.iw-selected-body .iw-facts { grid-template-columns:1fr; gap:.7rem; }
.iw-next-step { padding-left:.8rem; border-left:1px solid var(--iw-purple); }
.iw-proof { padding-top:.85rem; border-top:1px solid var(--iw-line); }
.iw-proof > summary { padding:.2rem 0; font-size:.76rem; line-height:1.5; color:var(--iw-purple); cursor:pointer; }
.iw-proof > p { margin-top:.65rem; }
.iw-selected-body .iw-proof > p { margin-top:.65rem; }

/* Secondary topics do not compete with the queue while they are closed. */
.iw-secondary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:.8rem; min-width:0; }
.iw-disclosure { min-width:0; border:1px solid var(--iw-line); border-radius:11px; background:var(--iw-surface); }
.iw-disclosure > summary { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:.15rem .6rem; min-height:68px; padding:.9rem 2.7rem .9rem 1rem; font-size:.83rem; font-weight:800; cursor:pointer; list-style:none; }
.iw-disclosure > summary::-webkit-details-marker { display:none; }
.iw-disclosure > summary::after { position:absolute; top:50%; right:1rem; content:'›'; color:var(--iw-purple); font:500 1.4rem/1 var(--text); transform:translateY(-50%); }
.iw-disclosure[open] > summary::after { transform:translateY(-50%) rotate(90deg); }
.iw-disclosure > summary:hover { background:var(--paper); border-radius:11px; }
.iw-disclosure > summary > small { flex-basis:100%; color:var(--iw-muted); font-size:.72rem; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.iw-disclosure > summary svg { width:18px; height:18px; flex:none; color:var(--iw-purple); }
.iw-disclosure-body { min-width:0; padding:1rem; border-top:1px solid var(--iw-line); font-size:.8rem; line-height:1.6; overflow-wrap:anywhere; }
.iw-disclosure-body > :first-child { margin-top:0; }
.iw-disclosure-body > :last-child { margin-bottom:0; }
.iw-disclosure-body h3 { margin:.8rem 0 .45rem; font-size:1.15rem; }
.iw-disclosure-body .iw-button { margin-top:.55rem; }
.iw-disclosure-body .iw-panel { margin-top:.8rem; }
.iw-disclosure-body .iw-metrics { grid-template-columns:1fr; padding:0; gap:.5rem; }
.iw-disclosure-body .iw-metrics > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.iw-disclosure-body .iw-metrics dd { margin:0; font-size:1.2rem; }
.iw-disclosure-body .iw-panelnote { padding:.75rem 0; background:transparent; }
.iw-secondary-actions { display:flex; flex-wrap:wrap; gap:.5rem; }

@media (min-width:1050px) {
  .iw-review-workspace.iw-enhanced.has-selection { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(19rem,.95fr); align-items:stretch; }
  .iw-review-workspace.iw-enhanced.has-selection .iw-selected-detail { border-top:0; border-left:1px solid var(--iw-line); }
  .iw-review-workspace.has-selection .iw-review-row > summary { grid-template-columns:3.6rem minmax(0,1fr) 3rem; gap:.55rem .65rem; padding:.95rem 1rem; }
  .iw-review-workspace.has-selection .iw-review-row .iw-window { grid-column:2; grid-row:2; }
  .iw-review-workspace.has-selection .iw-review-row .iw-open { grid-column:3; grid-row:1; }
}
@media (max-width:900px) {
  .iw-review-row > summary, .iw-profile-row > summary { grid-template-columns:3.8rem minmax(0,1fr) 3.5rem; gap:.65rem; }
  .iw-window, .iw-profile-signal { grid-column:2; grid-row:2; }
  .iw-open { grid-column:3; grid-row:1; }
  .iw-review-detail, .iw-profile-detail { padding:1rem 1.25rem; }
}
@media (max-width:600px) {
  .iw-intro, .iw-panelhead { align-items:flex-start; flex-direction:column; }
  .iw-intro { gap:.5rem; }
  .iw-panelhead { padding:1rem; }
  .iw-controls { padding:.8rem; }
  .iw-tabs { width:100%; }
  .iw-tabs a { flex:1; text-align:center; padding:.6rem .5rem; font-size:.75rem; }
  .iw-filters label { min-width:0; flex-basis:calc(50% - .7rem); }
  .iw-filters .iw-search { flex-basis:100%; }
  .iw-filters input, .iw-filters select { font-size:16px; }
  .iw-more-filters { flex-basis:100%; }
  .iw-more-filters > div { flex-direction:column; }
  .iw-more-filters > div > label { flex-basis:auto; }
  .iw-review-row > summary, .iw-profile-row > summary { padding:.9rem .8rem; gap:.55rem; }
  .iw-review-title { font-size:.8rem; }
  .iw-window { font-size:.68rem; }
  .iw-facts, .iw-metrics { grid-template-columns:1fr; }
  .iw-metrics { gap:.6rem; padding:0 1rem 1rem; }
  .iw-metrics > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
  .iw-metrics dd { margin:0; font-size:1.1rem; text-align:right; }
  .iw-pagination { padding:.8rem; }
  .iw-pagination nav { gap:.45rem; }
  .iw-tablewrap th, .iw-tablewrap td { padding:.65rem .8rem; }
  .iw-status a { margin-left:0; }
  .iw-outcomes { padding:.9rem 1rem; }
  .iw-outcome-metrics { gap:.75rem; }
  .iw-outcome-metrics dt, .iw-outcome-metrics > div > span { font-size:.69rem; }
  .iw-outcome-metrics dd, .iw-outcome-metrics > div > strong { font-size:1.65rem; }
  .iw-selected-detail { padding:1rem; }
  .iw-secondary { grid-template-columns:1fr; }
}
@media (max-width:380px) {
  .iw-outcome-metrics { grid-template-columns:1fr; gap:.6rem; }
  .iw-outcome-metrics > div { flex-direction:row; align-items:center; justify-content:space-between; gap:.7rem; padding-bottom:.5rem; border-bottom:1px solid var(--iw-line); }
  .iw-outcome-metrics > div:last-child { padding-bottom:0; border-bottom:0; }
}
@media (pointer:coarse) {
  .iw-workspace .iw-button, .iw-tabs a, .iw-ranges a, .iw-more-filters > summary, .iw-window-picker > summary, .iw-outcome-note > summary, .iw-proof > summary { min-height:44px; }
  .iw-detail-top [data-iw-close] { width:44px; height:44px; }
}
