@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600&family=JetBrains+Mono:wght@400;600&family=Source+Serif+4:ital,opsz,wght@0,8..60,500;0,8..60,600;1,8..60,500&display=swap');

:root {
  --s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;
  --col-w:400px;--pane-w:400px;--pane-gap:24px;
  --pale:#566571;--hp-75:#8A8254;--hp-50:#A8723B;--hp-25:#8B3A1F;
  --ff-display:"Source Serif 4",Georgia,serif;
  --ff-body:"Inter Tight",-apple-system,sans-serif;
  --ff-mono:"JetBrains Mono",monospace;
}
[data-theme="light"][data-palette="alpha"]{--bg-app:#DDD3BD;--bg-page:#ECE3CE;--bg-card:#F4ECD8;--bg-recess:#D6CCB4;--ink-strong:#1C1813;--ink-body:#2B2620;--ink-muted:#6B6357;--ink-faded:#95896F;--rule-thin:#C7BFA9;--rule-mid:#A89E84;--rule-strong:#8C8169;--doctrine:#4B3A2C;--rust:#8B3A1F;--rust-bg:rgba(139,58,31,.10);--lichen:#5F6B4C;--pale:#566571;--gold-stamp:#9C7A2F}
[data-theme="dark"][data-palette="alpha"]{--bg-app:#0F0D0A;--bg-page:#1A1815;--bg-card:#221F1A;--bg-recess:#2B2722;--ink-strong:#ECE3CE;--ink-body:#D7CFBE;--ink-muted:#9A917E;--ink-faded:#6E6555;--rule-thin:#3D3833;--rule-mid:#5A5249;--rule-strong:#75695C;--doctrine:#C6A78C;--rust:#C26A4D;--rust-bg:rgba(194,106,77,.16);--lichen:#9DA886;--pale:#9CB0BA;--gold-stamp:#D6AE5C}
[data-theme="light"][data-palette="beta"]{--bg-app:#B89E73;--bg-page:#E8DBB5;--bg-card:#F2E6C2;--bg-recess:#D8C99F;--ink-strong:#2A1A0C;--ink-body:#3A2A1C;--ink-muted:#6B4F2E;--ink-faded:#9C8254;--rule-thin:#B89E73;--rule-mid:#8B6F47;--rule-strong:#6B4F2E;--doctrine:#6B4F2E;--rust:#A04545;--rust-bg:rgba(160,69,69,.10);--lichen:#1F4F2A;--pale:#2A4F8B;--gold-stamp:#B58A2F}
[data-theme="dark"][data-palette="beta"]{--bg-app:#0E0805;--bg-page:#1C140A;--bg-card:#2A2014;--bg-recess:#382A1A;--ink-strong:#F2E6C2;--ink-body:#E8DBB5;--ink-muted:#B89E73;--ink-faded:#6B4F2E;--rule-thin:#4A3820;--rule-mid:#6B4F2E;--rule-strong:#8B6F47;--doctrine:#D4A86C;--rust:#D04848;--rust-bg:rgba(208,72,72,.18);--lichen:#5C9A6B;--pale:#6B95D4;--gold-stamp:#E0BC6C}
[data-theme="light"][data-palette="gamma"]{--bg-app:#B5B2A8;--bg-page:#D9D4C8;--bg-card:#E4DECF;--bg-recess:#C5BFAF;--ink-strong:#14171A;--ink-body:#232830;--ink-muted:#4F5862;--ink-faded:#7E8794;--rule-thin:#A4A99A;--rule-mid:#828775;--rule-strong:#5C604F;--doctrine:#3D352A;--rust:#B05E2A;--rust-bg:rgba(176,94,42,.10);--lichen:#4A8076;--pale:#5E6B7A;--gold-stamp:#8C7530}
[data-theme="dark"][data-palette="gamma"]{--bg-app:#0A0C0E;--bg-page:#14181C;--bg-card:#1E232A;--bg-recess:#28303A;--ink-strong:#ECEAE0;--ink-body:#C8CDD4;--ink-muted:#888F9A;--ink-faded:#5C6470;--rule-thin:#2E3540;--rule-mid:#4A5260;--rule-strong:#6A7280;--doctrine:#C8A878;--rust:#E08850;--rust-bg:rgba(224,136,80,.16);--lichen:#6FB0A2;--pale:#92A2B5;--gold-stamp:#D4B470}
[data-theme="light"][data-palette="delta"]{--bg-app:#C2C5BD;--bg-page:#E3E5D9;--bg-card:#ECEEE3;--bg-recess:#D1D3C5;--ink-strong:#0A0E18;--ink-body:#1C2230;--ink-muted:#4A5060;--ink-faded:#7C8090;--rule-thin:#B5B7AA;--rule-mid:#8A8C7C;--rule-strong:#5A5C4C;--doctrine:#6B3525;--rust:#8B3A1F;--rust-bg:rgba(139,58,31,.10);--lichen:#3D6B4F;--pale:#2C5985;--gold-stamp:#7A6228}
[data-theme="dark"][data-palette="delta"]{--bg-app:#050810;--bg-page:#0D1220;--bg-card:#161E2E;--bg-recess:#1F2838;--ink-strong:#E6E4D6;--ink-body:#CACABA;--ink-muted:#8A8E9A;--ink-faded:#5C6070;--rule-thin:#28303E;--rule-mid:#404858;--rule-strong:#5C6478;--doctrine:#C8804F;--rust:#D06A45;--rust-bg:rgba(208,106,69,.16);--lichen:#6A9C7C;--pale:#6A9CD0;--gold-stamp:#C8A560}

*{box-sizing:border-box}
body{margin:0;font-family:var(--ff-body);font-size:14px;line-height:1.42;color:var(--ink-body);background:var(--bg-app);min-height:100vh;display:flex;justify-content:center}
.page{width:100%;max-width:var(--col-w);min-height:100vh;background:var(--bg-page);border-left:1px solid var(--rule-thin);border-right:1px solid var(--rule-thin);display:flex;flex-direction:column}
.body{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;padding:var(--s-8) var(--s-4)}

.hdr{height:40px;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:0 var(--s-4);border-bottom:1px solid var(--rule-thin);background:var(--bg-page)}
.hdr-left{display:flex;align-items:center;min-width:0}
.hdr-right{display:flex;align-items:center;gap:var(--s-4)}
.hdr-back{font-family:var(--ff-body);font-size:11px;color:var(--ink-muted);text-decoration:none;letter-spacing:.02em;white-space:nowrap}
.hdr-back:hover{color:var(--ink-strong)}
.hdr-back:focus-visible{outline:2px solid var(--doctrine);outline-offset:2px}
.hdr-hp{display:flex;align-items:center;gap:6px;text-decoration:none}
.hdr-hp-bar{width:46px;height:7px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;overflow:hidden}
.hdr-hp-fill{display:block;height:100%;width:0;background:var(--lichen);transition:width 600ms cubic-bezier(.5,0,.2,1),background-color 400ms}
.hdr-hp[data-lvl="warn"] .hdr-hp-fill{background:var(--hp-50)}
.hdr-hp[data-lvl="low"] .hdr-hp-fill{background:var(--hp-25)}
.hdr-hp-num{font-family:var(--ff-mono);font-size:10px;color:var(--ink-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.hdr-group{display:flex;align-items:center;gap:6px}
.lang-btn{font-family:var(--ff-body);font-size:10px;font-weight:600;letter-spacing:.08em;background:transparent;color:var(--ink-faded);border:none;padding:2px 3px;cursor:pointer}
.lang-btn.active{color:var(--ink-strong)}
.lang-btn:hover{color:var(--ink-body)}
.lang-sep{color:var(--rule-mid);font-size:10px}
.theme-btn{font-size:13px;line-height:1;background:transparent;color:var(--ink-muted);border:1px solid var(--rule-thin);border-radius:1px;padding:3px 7px;cursor:pointer}
.theme-btn:hover{color:var(--ink-strong);border-color:var(--rule-mid)}
.palette-dots{gap:5px}
.palette-dot{width:13px;height:13px;border-radius:50%;border:1px solid var(--rule-mid);cursor:pointer;padding:0}
.palette-dot.active{outline:1px solid var(--ink-strong);outline-offset:1px}
.palette-dot[data-palette="alpha"]{background:#C7BFA9}
.palette-dot[data-palette="beta"]{background:#B89E73}
.palette-dot[data-palette="gamma"]{background:#828775}
.palette-dot[data-palette="delta"]{background:#5A5C6C}

.title-block{text-align:center;margin-bottom:var(--s-6)}
.title-h1{font-family:var(--ff-display);font-size:32px;font-style:italic;font-weight:500;color:var(--ink-strong);margin:0 0 10px;line-height:1.1;letter-spacing:-0.01em;text-shadow:0 1px 0 var(--rule-thin)}
.title-sub{font-family:var(--ff-body);font-size:11px;font-weight:500;color:var(--ink-faded);letter-spacing:.18em;text-transform:uppercase;margin:0}

.explainer{max-width:360px;margin:0 auto var(--s-6);text-align:center}
.explainer .e-body{font-family:var(--ff-body);font-size:12px;line-height:1.6;color:var(--ink-body);margin:0}

.tally{display:block;margin:0 auto var(--s-6);color:var(--ink-faded)}

.gate{max-width:var(--pane-w);margin:0 auto;display:flex;flex-direction:column;gap:var(--s-3)}
.gate-link{display:flex;align-items:center;justify-content:center;height:40px;width:100%;padding:0 var(--s-4);font-family:var(--ff-display);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;border-radius:1px;text-decoration:none;cursor:pointer;transition:all 200ms;background:transparent}
.gate-link--primary{color:var(--doctrine);border:1px solid var(--rule-mid)}
.gate-link--primary:hover{color:var(--ink-strong);border-color:var(--rule-strong);background:var(--bg-recess)}
.gate-link[hidden]{display:none}
.gate-link--ghost{color:var(--ink-muted);border:1px solid var(--rule-thin)}
.gate-link--ghost:hover{color:var(--ink-strong);border-color:var(--rule-mid);background:var(--bg-recess)}

.gate-link:focus-visible,.lang-btn:focus-visible,.theme-btn:focus-visible,.palette-dot:focus-visible{outline:2px solid var(--doctrine);outline-offset:2px}

.auth-form{width:100%;max-width:var(--pane-w);margin:0 auto}
.field{margin-bottom:var(--s-4)}
.field label{display:block;font-family:var(--ff-body);font-size:10px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--s-1)}
.field input{display:block;width:100%;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;padding:9px 11px;font-family:var(--ff-body);font-size:13px;color:var(--ink-body);outline:none;transition:border-color 150ms,background 150ms}
.field input:focus{border-color:var(--rule-strong);background:var(--bg-recess)}
.field input:focus-visible{outline:2px solid var(--doctrine);outline-offset:2px}
.field-hint{font-family:var(--ff-body);font-size:10px;color:var(--ink-faded);margin-top:4px;letter-spacing:.02em}
.auth-form .gate-link{margin-top:var(--s-2)}
.error-msg{font-family:var(--ff-body);font-size:11px;color:var(--rust);margin-top:var(--s-3);text-align:center;min-height:16px;letter-spacing:.02em}
.error-msg:empty{display:none}
.nav-link{text-align:center;margin-top:var(--s-6);font-family:var(--ff-body);font-size:11px;font-style:italic;color:var(--ink-faded)}
.nav-link a{color:var(--doctrine);text-decoration:none}
.nav-link a:hover{text-decoration:underline}
.stub-note{text-align:center;font-family:var(--ff-body);font-size:12px;color:var(--ink-muted);max-width:300px;margin:0 auto}

.set-block{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-6)}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:9px 0;border-bottom:1px solid var(--rule-thin)}
.set-row:last-child{border-bottom:none}
.set-label{font-family:var(--ff-body);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.set-opts{display:flex;align-items:center;gap:6px}
.set-opt{font-family:var(--ff-body);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faded);background:transparent;border:1px solid var(--rule-thin);border-radius:1px;padding:4px 10px;cursor:pointer;transition:all 150ms}
.set-opt:hover{color:var(--ink-body);border-color:var(--rule-mid)}
.set-opt.active{color:var(--ink-strong);border-color:var(--rule-strong);background:var(--bg-recess)}
.set-opt:focus-visible{outline:2px solid var(--doctrine);outline-offset:2px}

.cc-body{justify-content:flex-start;padding-top:var(--s-6)}
.body--top{justify-content:flex-start}

.hub-menu{display:flex;flex-direction:column;width:100%;max-width:var(--pane-w);margin:0 auto;border:1px solid var(--rule-thin);border-radius:1px;overflow:visible;background:var(--bg-card)}
.hub-menu--gap{margin-top:var(--s-4)}
.hub-item{position:relative;display:block;text-decoration:none;padding:8px 28px 8px 12px;border-bottom:1px solid var(--rule-thin);transition:background 150ms}
.hub-item:last-child{border-bottom:none}
.hub-item:hover{background:var(--bg-recess)}
.hub-item--alert{box-shadow:inset 3px 0 0 var(--doctrine)}
.hub-badge{position:absolute;top:-8px;right:-8px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;background:var(--doctrine);color:var(--bg-card);font-family:var(--ff-mono);font-size:10px;font-weight:700;border-radius:8px;line-height:1}
.hub-item:focus-visible{outline:2px solid var(--doctrine);outline-offset:-2px}
.hub-name{display:block;font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong);line-height:1.25}
.hub-desc{display:block;font-family:var(--ff-body);font-size:10px;color:var(--ink-muted);margin-top:1px;line-height:1.3}
.hub-item::after{content:"→";position:absolute;right:11px;top:50%;transform:translateY(-50%);font-family:var(--ff-mono);font-size:12px;color:var(--ink-faded);transition:transform 150ms,color 150ms}
.hub-item:hover::after{color:var(--doctrine);transform:translateY(-50%) translateX(3px)}
.cc-h{font-family:var(--ff-body);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:var(--s-6) 0 var(--s-3);text-align:center}
.cc-name-field{width:100%;margin:0 0 var(--s-3)}
.cc-portraits{display:flex;justify-content:center;gap:var(--s-3);flex-wrap:wrap}
.cc-portrait{padding:0;border:1px solid var(--rule-mid);border-radius:1px;background:transparent;cursor:pointer;line-height:0;transition:border-color 150ms,box-shadow 150ms}
.cc-portrait:hover{border-color:var(--rule-strong)}
.cc-portrait.active{border-color:var(--doctrine);box-shadow:0 0 0 2px var(--doctrine)}
.cc-portrait img{display:block;width:75px;height:75px;border-radius:1px}
.cc-portrait-hint{text-align:center;font-family:var(--ff-body);font-size:11px;color:var(--ink-faded)}
.dos-portrait{display:block;width:75px;height:75px;border:1px solid var(--rule-mid);border-radius:1px}
.cc-sex-opts{display:flex;gap:6px}
.cc-sex-opt{font-size:18px;line-height:1;min-width:52px}
.cc-name-row{display:flex;gap:6px}
.cc-name-row #cc-name{flex:1;min-width:0}
.cc-name-check{flex:0 0 auto;font-family:var(--ff-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:0 12px;background:transparent;border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-muted);cursor:pointer}
.cc-name-check:hover{color:var(--ink-strong);border-color:var(--rule-strong)}
.cc-field-msg{margin:4px 0 0;font-family:var(--ff-body);font-size:11px;line-height:1.2}
.cc-field-msg:empty{display:none;margin:0}
.cc-field-msg--err{color:var(--rust)}
.cc-field-msg--ok{color:var(--lichen)}
/* dossier header: portrait left of name + identity line */
.dos-head{display:flex;align-items:center;align-self:center;gap:var(--s-3);text-align:left;width:100%;max-width:var(--pane-w);margin:0 auto var(--s-5)}
.dos-head .dos-portrait{flex:0 0 auto;margin:0}
.dos-head-text{min-width:0;flex:1}
.dos-head .dos-name{text-align:left;font-size:16px;line-height:1.15;margin:0;word-break:break-word;text-shadow:none}
.dos-head .dos-identity{text-align:left;font-size:9.5px;letter-spacing:.04em;line-height:1.35;margin:4px 0 0}
/* tier rarity colours (shared: pack meta/tooltip + dossier equipped) */
.tier{font-weight:600}
.tier--1{color:inherit}
.tier--2{color:#5a9a5e}
.tier--3{color:#5288c8}
.tier--4{color:#9a6fc8}
.tier--5{color:#c79a3a}
/* dossier equipped block */
.dos-equipped{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-2);display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:stretch}
.dos-eq-row{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;cursor:help;min-width:0}
.dos-eq-img{width:36px;height:36px;flex-shrink:0;border:1px solid var(--rule-mid);border-radius:1px;object-fit:cover}
.dos-eq-info{flex:1;min-width:0}
.dos-eq-name{display:block;font-family:var(--ff-display);font-size:12px;color:var(--ink-strong);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dos-eq-meta{display:block;font-family:var(--ff-body);font-size:10px;color:var(--ink-muted);margin-top:2px;white-space:nowrap}
.dos-eq-meta .tier{font-family:var(--ff-mono)}
.dos-eq-slot{display:block;font-family:var(--ff-body);font-size:9px;color:var(--ink-faded);text-transform:uppercase;letter-spacing:.06em;margin-top:1px}
.dos-eq-empty{text-align:center;font-family:var(--ff-body);font-size:11px;color:var(--ink-faded);margin:0;grid-column:1 / -1}
/* character description */
.dos-desc{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4)}
.dos-desc-text{text-align:left;font-family:var(--ff-body);font-size:12px;line-height:1.5;color:var(--ink-muted);font-style:italic;margin:0;white-space:pre-wrap;word-break:break-word}
.dos-desc-edit{width:100%;box-sizing:border-box;resize:vertical;overflow-x:hidden;font-family:var(--ff-body);font-size:12px;line-height:1.5;padding:8px;border:1px solid var(--rule-mid);border-radius:1px;background:var(--bg-card);color:var(--ink-strong)}
.dos-desc-bar{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.dos-desc-btns{display:flex;gap:6px}
.dos-desc-count{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded)}
.dos-desc-hint{text-align:left;font-family:var(--ff-body);font-size:11px;font-style:italic;color:var(--ink-faded);margin:0 0 6px}
.dos-desc-add{font-family:var(--ff-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);background:transparent;border:1px solid var(--rule-mid);border-radius:1px;padding:4px 10px;cursor:pointer}
.dos-desc-add:hover{color:var(--ink-strong);border-color:var(--rule-strong)}
.dos-desc-link{margin-left:12px;font-family:var(--ff-mono);font-size:10px;font-style:normal;font-weight:600;letter-spacing:.04em;color:var(--doctrine);cursor:pointer;white-space:nowrap}
.dos-desc-link:hover{text-decoration:underline}
.cc-step{margin:0}
.cc-step[hidden]{display:none}
.cc-cards{display:flex;flex-direction:column;gap:var(--s-2)}
.cc-card{display:block;text-align:left;width:100%;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;padding:10px 12px;cursor:pointer;transition:border-color 150ms,background 150ms,box-shadow 150ms}
.cc-card:hover{border-color:var(--rule-mid);background:var(--bg-recess)}
.cc-card.active{border-color:var(--doctrine);background:var(--bg-recess);box-shadow:inset 3px 0 0 var(--doctrine)}
.cc-card:focus-visible{outline:2px solid var(--doctrine);outline-offset:2px}
.cc-card-name{font-family:var(--ff-display);font-size:15px;font-weight:600;color:var(--ink-strong);margin:0 0 3px;line-height:1.2}
.cc-card-desc{font-family:var(--ff-body);font-size:11px;line-height:1.5;color:var(--ink-muted);margin:0}
.cc-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cc-tag{font-family:var(--ff-body);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--doctrine);border:1px solid var(--rule-thin);border-radius:1px;padding:2px 6px;background:var(--bg-page)}
.cc-tag--muted{color:var(--ink-muted)}

.cc-points{text-align:center;font-family:var(--ff-body);font-size:12px;color:var(--ink-body);margin:0 0 var(--s-3)}
.cc-points b{font-family:var(--ff-mono);color:var(--ink-strong);font-size:14px}
.cc-points.done b{color:var(--lichen)}

.cc-stats{display:flex;flex-direction:column;gap:var(--s-2)}
.cc-stat-row{display:grid;grid-template-columns:1fr 24px 26px 24px;align-items:center;gap:var(--s-2);background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;padding:7px 10px}
.cc-stat-info{min-width:0}
.cc-stat-name{font-family:var(--ff-body);font-size:12px;font-weight:600;color:var(--ink-strong);cursor:help;border-bottom:1px dotted var(--rule-mid)}
.cc-stat-note{display:block;font-family:var(--ff-body);font-size:9px;color:var(--doctrine);letter-spacing:.03em;margin-top:2px}
.cc-stat-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-family:var(--ff-mono);font-size:15px;line-height:1;background:transparent;color:var(--ink-muted);border:1px solid var(--rule-mid);border-radius:1px;cursor:pointer;padding:0}
.cc-stat-btn:hover:not(:disabled){color:var(--ink-strong);border-color:var(--rule-strong);background:var(--bg-recess)}
.cc-stat-btn:disabled{opacity:.35;cursor:not-allowed}
.cc-stat-btn:focus-visible{outline:2px solid var(--doctrine);outline-offset:2px}
.cc-stat-val{font-family:var(--ff-mono);font-size:16px;font-weight:600;color:var(--ink-strong);text-align:center;font-variant-numeric:tabular-nums}

.cc-derived{display:flex;flex-direction:column;gap:var(--s-1)}
.cc-der-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:6px 10px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px}
.cc-der-name{font-family:var(--ff-body);font-size:11px;color:var(--ink-body);cursor:help;border-bottom:1px dotted var(--rule-mid)}
.cc-der-val{font-family:var(--ff-mono);font-size:12px;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.cc-der-max{color:var(--ink-faded);font-weight:400}
.cc-der-gear{color:var(--lichen);font-weight:600;cursor:help}
.cc-der-gear--neg{color:#c0392b}
.dos-intox{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:6px 10px;border:1px solid #c0392b;border-radius:6px;background:rgba(192,57,43,.08);color:#c0392b;font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;cursor:help}
.dos-intox-dot{width:7px;height:7px;border-radius:50%;background:#c0392b;flex:0 0 auto;animation:dos-intox-pulse 1.6s ease-in-out infinite}
@keyframes dos-intox-pulse{0%,100%{opacity:1}50%{opacity:.3}}
.cc-der-armor-h{margin:var(--s-3) 0 var(--s-2)!important;font-size:9px}

.cc-masteries{display:flex;flex-direction:column;gap:var(--s-1)}
.cc-mastery-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px}
.cc-mastery-name{font-family:var(--ff-body);font-size:11px;color:var(--ink-body);cursor:help;border-bottom:1px dotted var(--rule-mid)}
.cc-mastery-val{font-family:var(--ff-mono);font-size:12px;font-weight:600;color:var(--ink-faded);font-variant-numeric:tabular-nums}
.cc-mastery-val.has{color:var(--lichen)}
.cc-create{margin-top:var(--s-4)}
.cc-create:not(.cc-create--ready){color:var(--ink-faded);border-color:var(--rule-thin)}

.dos-sheet{width:100%;max-width:var(--pane-w);margin:0 auto}
.dos-vitals{display:flex;flex-direction:column;gap:var(--s-3);margin-bottom:var(--s-2)}
.dos-bar-row{display:flex;flex-direction:column;gap:3px}
.dos-bar-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3)}
.dos-k{font-family:var(--ff-body);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.dos-v{font-family:var(--ff-mono);font-size:12px;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.dos-bar{height:8px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;overflow:hidden}
.dos-bar-fill{height:100%;transition:width 300ms}
.dos-bar-fill--hp{background:var(--lichen)}
.dos-bar-fill--exp{background:var(--gold-stamp)}
.dos-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s-4)}
.dos-cell{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);padding:6px 0;border-bottom:1px solid var(--rule-thin)}
.dos-stat-ro{grid-template-columns:1fr auto}
.dos-inj{color:var(--rust);font-weight:600}
.dos-past{opacity:.5}

.walls-tools{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4);display:flex;flex-direction:column;gap:var(--s-2)}
.walls-search{width:100%;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;padding:8px 10px;font-family:var(--ff-body);font-size:13px;color:var(--ink-body);outline:none;transition:border-color 150ms,background 150ms}
.walls-search:focus{border-color:var(--rule-strong);background:var(--bg-recess)}
.walls-filters{display:grid;grid-template-columns:1fr 1fr 62px;gap:6px}
.walls-sel,.walls-lvl{width:100%;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;padding:6px 7px;font-family:var(--ff-body);font-size:11px;color:var(--ink-body);outline:none}
.walls-sel:focus,.walls-lvl:focus{border-color:var(--rule-strong)}
.walls-list{width:100%;max-width:var(--pane-w);margin:0 auto;display:flex;flex-direction:column;gap:var(--s-1)}
.walls-row{display:flex;align-items:center;gap:var(--s-2);padding:7px 10px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px}
.walls-row--me{border-color:var(--doctrine);box-shadow:inset 2px 0 0 var(--doctrine)}
.walls-place{font-family:var(--ff-mono);font-size:11px;font-weight:600;color:var(--ink-faded);min-width:30px;text-align:right;font-variant-numeric:tabular-nums}
.walls-info{flex:1;min-width:0}
.walls-name{display:block;font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
a.walls-name:hover{color:var(--doctrine);text-decoration:underline}
.walls-meta{display:block;font-family:var(--ff-body);font-size:10px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.walls-rating{font-family:var(--ff-mono);font-size:13px;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums}
.walls-empty{text-align:center;font-family:var(--ff-body);font-size:12px;color:var(--ink-muted);padding:var(--s-6) 0}
.walls-pager{display:flex;align-items:center;justify-content:center;gap:var(--s-3);margin-top:var(--s-4)}
.walls-pg{width:30px;height:28px;font-family:var(--ff-mono);font-size:15px;background:transparent;border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-muted);cursor:pointer}
.walls-pg:disabled{opacity:.35;cursor:not-allowed}
.walls-pg:not(:disabled):hover{color:var(--ink-strong);border-color:var(--rule-strong)}
.walls-pg-txt{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted)}

.pack-list{width:100%;max-width:var(--pane-w);margin:0 auto;display:flex;flex-direction:column;gap:var(--s-1)}
.pack-row{display:flex;align-items:center;gap:var(--s-2);padding:6px 8px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px}
.pack-img{width:44px;height:44px;flex-shrink:0;border:1px solid var(--rule-mid);border-radius:1px;object-fit:cover}
.pack-img--t2{border-color:#5a9a5e}
.pack-img--t3{border-color:#5288c8}
.pack-img--t4{border-color:#9a6fc8}
.pack-img--t5{border-color:#c79a3a}
.pack-img--stub{display:flex;align-items:center;justify-content:center;background:var(--bg-recess);color:var(--ink-faded);font-size:20px}
.pack-info{flex:1;min-width:0}
.pack-name{display:block;font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pack-meta{display:block;font-family:var(--ff-body);font-size:10px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pack-qty{font-family:var(--ff-mono);font-size:12px;font-weight:600;color:var(--ink-body);font-variant-numeric:tabular-nums}
.pack-selrow{display:grid;grid-template-columns:1fr 0.8fr 1.1fr;gap:6px}
.pack-tip{position:fixed;z-index:50;width:max-content;max-width:240px;background:var(--bg-card);border:1px solid var(--rule-strong);border-radius:1px;padding:8px 10px;box-shadow:0 4px 16px rgba(0,0,0,.28)}
.pack-tip[hidden]{display:none}
.tip-title{font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong);line-height:1.2}
.tip-sub{font-family:var(--ff-body);font-size:10px;color:var(--ink-muted);margin:2px 0 6px;letter-spacing:.02em}
.tip-row{display:flex;justify-content:space-between;gap:var(--s-4);font-family:var(--ff-body);font-size:11px;padding:1px 0}
.tip-k{color:var(--ink-muted);white-space:nowrap}
.tip-v{color:var(--ink-body);font-weight:500;text-align:right}
.tip-bonus{color:var(--lichen)}
.tip-img{display:block;width:75px;height:75px;border:1px solid var(--rule-mid);border-radius:1px;margin:0 auto 8px;object-fit:cover}
.tip-img.pack-img--stub{display:flex;align-items:center;justify-content:center;background:var(--bg-recess);color:var(--ink-faded);font-size:30px}
.tip-title{text-align:center}
.tip-sub{text-align:center}
.tip-eq{color:var(--lichen);font-weight:400}

.pack-item--act .pack-row{cursor:pointer}
.pack-item--open .pack-row{background:var(--bg-recess);border-color:var(--rule-mid);box-shadow:inset 2px 0 0 var(--doctrine)}
.pack-equipped{font-family:var(--ff-body);font-size:8px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--lichen);border:1px solid var(--lichen);border-radius:1px;padding:1px 4px;margin-left:6px;vertical-align:middle}
.pack-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-recess);border:1px solid var(--rule-thin);border-top:none}
.pack-actions[hidden]{display:none}
.pack-act{font-family:var(--ff-display);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--doctrine);background:transparent;border:1px solid var(--rule-mid);border-radius:1px;padding:5px 14px;cursor:pointer;transition:all 150ms}
.pack-act:hover:not(:disabled){color:var(--ink-strong);border-color:var(--rule-strong);background:var(--bg-card)}
.pack-act:disabled{opacity:.5;cursor:not-allowed}
.pack-act-err{font-family:var(--ff-body);font-size:10px;color:var(--rust)}
.pack-creator{margin-left:auto;text-align:right;font-family:var(--ff-body);font-size:10px;color:var(--ink-muted);align-self:center}
.pack-creator-by{color:var(--ink-faded)}
.pack-creator-link{color:var(--doctrine);text-decoration:none}
.pack-creator-link:hover{text-decoration:underline}

.pit-block{margin-bottom:var(--s-3)}
.pit-note{text-align:center;font-family:var(--ff-body);font-size:11px;color:var(--ink-muted);margin:var(--s-2) 0 0}
.pit-duel{display:flex;flex-direction:column;gap:var(--s-2);padding-bottom:var(--s-8)}
.pit-hp-req{font-family:var(--ff-body);font-size:11px;color:var(--ink-faded);font-style:italic;margin-top:var(--s-1);text-align:center}
.title-block .error-msg{margin-top:var(--s-2);text-align:center}
.pit-spread{width:auto;min-width:120px}
.pit-myreq{margin:var(--s-2) auto var(--s-8);align-self:center}
.pit-list{width:100%;max-width:var(--pane-w);margin:0 auto;display:flex;flex-direction:column;gap:var(--s-1)}
.pit-req{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:8px 10px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px}
.pit-req--mine{border-color:var(--doctrine);box-shadow:inset 2px 0 0 var(--doctrine)}
.pit-req-info{min-width:0}
.pit-req-name{display:block;font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong);line-height:1.25;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.pit-req-name:hover{color:var(--doctrine);text-decoration:underline}
.pit-req-meta{display:block;font-family:var(--ff-body);font-size:10px;color:var(--ink-muted)}
.pit-open-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);width:100%;max-width:var(--pane-w);margin:0 auto var(--s-2)}
.pit-open-head .cc-h{margin:0}
.pit-refresh{font-family:var(--ff-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);background:transparent;border:1px solid var(--rule-mid);border-radius:1px;padding:3px 8px;cursor:pointer}
.pit-refresh:hover{color:var(--ink-strong);border-color:var(--rule-strong)}

/* ---- The Bout (fight screen) ---- */
.bout-fighters{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4);display:flex;flex-direction:column;gap:var(--s-2)}
.bout-fighter{padding:8px 10px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px}
.bout-fighter--down{opacity:.5}
.bout-f-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.bout-f-name{font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong)}
.bout-f-hp{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted)}
.bout-move{display:flex;flex-direction:column;gap:var(--s-2)}
.bout-zones{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.bout-pairs{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.bout-zone,.bout-pair{font-family:var(--ff-body);font-size:11px;padding:8px 4px;background:var(--bg-card);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-strong);cursor:pointer;text-align:center}
.bout-zone:hover,.bout-pair:hover{border-color:var(--rule-strong)}
.bout-zone.active,.bout-pair.active{border-color:var(--doctrine);box-shadow:inset 0 0 0 1px var(--doctrine);color:var(--doctrine);font-weight:600}
.bout-outcome{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4);display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}
.bout-outcome-msg{font-family:var(--ff-display);font-size:22px;font-style:italic;margin:0}
.bout-won{color:var(--lichen)}.bout-lost,.bout-surrendered{color:var(--rust)}.bout-draw{color:var(--ink-muted)}
.bout-log{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-3);max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-2)}
.bout-round{border-left:2px solid var(--rule-mid);padding-left:8px}
.bout-round-h{font-family:var(--ff-mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faded);margin-bottom:2px}
.bout-ev{font-family:var(--ff-body);font-size:11px;color:var(--ink-muted);line-height:1.5}
.bout-ev--dodge{color:var(--ink-faded);font-style:italic}
.bout-tag{font-family:var(--ff-mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;padding:0 3px;border:1px solid var(--rule-thin);border-radius:1px;color:var(--ink-faded);margin-left:3px}
.bout-tag--crit{color:var(--rust);border-color:var(--rust)}
.bout-tag--read{color:var(--doctrine);border-color:var(--doctrine)}
.bout-surrender{display:block;margin:0 auto}
/* The Aftermath — fight history list */
.aftermath-list{width:100%;max-width:var(--pane-w);margin:0 auto;display:flex;flex-direction:column;gap:var(--s-1)}
.aftermath-row{display:flex;align-items:center;gap:var(--s-2);padding:9px 12px;background:var(--bg-card);border:1px solid var(--rule-thin);border-left:3px solid var(--rule-mid);border-radius:1px;text-decoration:none}
.aftermath-row:hover{background:var(--bg-recess)}
.aftermath-row--win{border-left-color:var(--lichen)}
.aftermath-row--loss,.aftermath-row--surrendered{border-left-color:var(--rust)}
.aftermath-row--draw{border-left-color:var(--ink-muted)}
.am-outcome{font-family:var(--ff-display);font-size:12px;font-weight:600;min-width:64px;color:var(--ink-strong)}
.aftermath-row--win .am-outcome{color:var(--lichen)}
.aftermath-row--loss .am-outcome,.aftermath-row--surrendered .am-outcome{color:var(--rust)}
.am-opp{flex:1;font-family:var(--ff-body);font-size:13px;color:var(--ink-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.am-meta{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);white-space:nowrap}
#am-more{margin-top:var(--s-3)}
.dos-heal{width:100%;max-width:var(--pane-w);margin:var(--s-2) auto 0;color:var(--rust)}
.dos-professions{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4);display:flex;flex-direction:column;gap:var(--s-2)}
.dos-prof-row{display:flex;flex-direction:column;gap:3px}
.dos-prof-head{display:flex;justify-content:space-between;align-items:baseline}
.dos-prof-name{font-family:var(--ff-body);font-size:13px;color:var(--ink-body);display:block;text-align:center}
.dos-prof-lvl{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded)}
/* light, professional page-entrance: content fades in once on load (opacity-only — no layout shift / scroll jump) */
@keyframes page-rise { from { opacity: 0; } to { opacity: 1; } }
.body { animation: page-rise 280ms ease-out both; }
@media (prefers-reduced-motion: reduce) { .body { animation: none; } }
/* tactile press feedback on the primary action buttons (subtle, universal) */
.gate-link:active,.pack-act:active,.pit-refresh:active,.walls-pg:not(:disabled):active,.set-opt:active{transform:translateY(1px)}
/* quality floor: honour reduced-motion across ALL transitions/animations, not just the page entrance */
@media (prefers-reduced-motion: reduce){*,*::after,*::before{animation-duration:.001ms!important;transition-duration:.001ms!important}}
/* The Toil — active task panel + profession rows */
.toil-active{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4);border:1px solid var(--rule-mid);border-radius:1px;background:var(--bg-card);padding:12px;box-shadow:inset 3px 0 0 var(--lichen)}
.toil-active-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.toil-active-verb{font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong)}
.toil-cd{height:5px;background:var(--bg-recess);border-radius:3px;overflow:hidden}
.toil-cd-fill{height:100%;width:0;background:var(--lichen);transition:width 1000ms linear}
.toil-active-meta{display:flex;justify-content:space-between;margin-top:7px;font-family:var(--ff-mono);font-size:10px;color:var(--ink-muted)}
.toil-list{width:100%;max-width:var(--pane-w);margin:0 auto;display:flex;flex-direction:column;gap:var(--s-3)}
.toil-row{border:1px solid var(--rule-thin);border-radius:1px;background:var(--bg-card);padding:9px 12px}
.toil-row--on{border-color:var(--rule-mid);box-shadow:inset 3px 0 0 var(--lichen)}
.toil-row-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.toil-row-name{font-family:var(--ff-display);font-size:13px;font-weight:600;color:var(--ink-strong)}
.toil-row-foot{display:flex;justify-content:flex-end;margin-top:7px}
.toil-locked{font-family:var(--ff-mono);font-size:10px;letter-spacing:.04em;color:var(--ink-faded);font-style:italic}
.toil-on{font-family:var(--ff-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--lichen)}
/* The Toil — the haul list (what you pulled out) inside the active panel */
.toil-haul-h{margin-top:11px;padding-top:9px;border-top:1px solid var(--rule-thin);font-family:var(--ff-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faded)}
.toil-haul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.toil-haul-row{display:flex;align-items:baseline;gap:8px}
.toil-haul-name{flex:1 1 auto;font-family:var(--ff-body);font-size:12px;color:var(--ink-body);text-transform:capitalize}
.toil-haul-qty{font-family:var(--ff-mono);font-size:12px;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums}
.toil-haul-gs{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded)}
.toil-haul-empty{margin:6px 0 0;font-family:var(--ff-body);font-size:11px;font-style:italic;color:var(--ink-faded)}
/* The Yard — "a profession is working" badge: a small lichen dot, gently pulsing (reduced-motion neutralises it) */
.hub-badge--work{top:50%;right:30px;transform:translateY(-50%);min-width:9px;width:9px;height:9px;padding:0;background:var(--lichen);border-radius:50%;animation:toil-pulse 1.8s ease-in-out infinite}
@keyframes toil-pulse{0%,100%{opacity:1}50%{opacity:.4}}
/* The Toil — tool durability inside the active panel */
.toil-tool{display:flex;align-items:center;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid var(--rule-thin)}
.toil-tool-name{font-family:var(--ff-body);font-size:11px;color:var(--ink-muted);text-transform:capitalize;white-space:nowrap}
.toil-tool-bar{flex:1 1 auto;height:4px;background:var(--bg-recess);border-radius:2px;overflow:hidden}
.toil-tool-fill{height:100%;background:var(--ink-faded);transition:width 300ms}
.toil-tool-num{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);font-variant-numeric:tabular-nums;white-space:nowrap}
.toil-tool--broken{display:block;margin-top:9px;padding-top:9px;border-top:1px solid var(--rule-thin);font-family:var(--ff-body);font-size:11px;color:var(--rust);font-style:italic}
/* The Toil — idea panel */
#toil-idea{width:100%;max-width:var(--pane-w);margin:0 auto var(--s-4)}
.toil-idea-wait{font-family:var(--ff-body);font-size:12px;color:var(--ink-muted);margin:0}
.toil-idea-wait b{font-family:var(--ff-mono);color:var(--ink-strong)}
.toil-idea-lead{font-family:var(--ff-body);font-size:12px;color:var(--ink-body);margin:0 0 8px}
.toil-cats{display:flex;flex-wrap:wrap;gap:6px}
.toil-cat{text-transform:none!important;letter-spacing:0!important}
.toil-idea-msg{font-family:var(--ff-body);font-size:11px;font-style:italic;color:var(--lichen);margin:8px 0 0}
.toil-idea-msg--fail{color:var(--ink-faded)}
.toil-tool-slots{font-family:var(--ff-mono);font-size:10px;color:var(--lichen);cursor:help}

/* ===== Admin (technical console — distinct from the parchment game UI) ===== */
body.admin-page{display:block}
.admin{width:100%;max-width:1100px;margin:0 auto;font-family:var(--ff-mono);color:var(--ink-body)}
.admin-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--rule-mid);background:var(--bg-card)}
.admin-brand{font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--ink-strong)}
.admin-dim{color:var(--ink-faded)}
.admin-who{font-size:11px;color:var(--ink-muted)}
.admin-main{padding:16px}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-thin);border:1px solid var(--rule-thin);margin-bottom:16px}
.admin-stat{background:var(--bg-card);padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.admin-stat-n{font-size:20px;font-weight:600;color:var(--ink-strong);font-variant-numeric:tabular-nums}
.admin-stat-k{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faded)}
.admin-panel{border:1px solid var(--rule-thin);background:var(--bg-card)}
.admin-panel-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--rule-thin);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faded)}
.admin-search{font-family:var(--ff-mono);font-size:12px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-body);padding:4px 8px;outline:none;width:240px}
.admin-search:focus{border-color:var(--rule-strong)}
.admin-table-wrap{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:12px}
.admin-table th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--rule-mid);color:var(--ink-faded);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.admin-table td{padding:6px 10px;border-bottom:1px solid var(--rule-thin);font-variant-numeric:tabular-nums}
.admin-table tr:hover td{background:var(--bg-recess)}
.admin-table a{color:var(--doctrine);text-decoration:none}
.admin-table a:hover{text-decoration:underline}
.admin-row-adm td{background:rgba(200,168,120,.06)}
.admin-tag{font-size:9px;color:var(--gold-stamp);border:1px solid var(--gold-stamp);border-radius:1px;padding:0 3px;letter-spacing:.05em}
.admin-gate{padding:48px 16px;text-align:center;font-family:var(--ff-mono);font-size:12px;color:var(--ink-faded)}
@media(max-width:640px){.admin-stats{grid-template-columns:repeat(2,1fr)}}
/* Admin nav + row actions + edit modal */
.admin-nav{display:flex;gap:2px;padding:0 16px;background:var(--bg-card);border-bottom:1px solid var(--rule-thin)}
.admin-nav-a{font-family:var(--ff-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-muted);text-decoration:none;padding:8px 12px;border-bottom:2px solid transparent}
.admin-nav-a:hover{color:var(--ink-strong)}
.admin-nav-on{color:var(--ink-strong);border-bottom-color:var(--doctrine)}
.admin-acts{white-space:nowrap}
.admin-acts .admin-mini+.admin-mini{margin-left:6px}
.admin-mini{font-family:var(--ff-mono);font-size:10px;background:transparent;border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-muted);padding:2px 7px;cursor:pointer}
.admin-mini:hover{color:var(--ink-strong);border-color:var(--rule-strong)}
.admin-mini-del{color:var(--rust);border-color:var(--rust)}
.admin-mini-del:hover{color:#fff;background:var(--rust);border-color:var(--rust)}
.admin-row-blk td{background:var(--rust-bg)}
.admin-tag-blk{color:var(--rust);border-color:var(--rust)}
.admin-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:50}
.admin-modal[hidden]{display:none}
.admin-card{width:100%;max-width:560px;background:var(--bg-card);border:1px solid var(--rule-strong);border-radius:2px}
.admin-card-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--rule-mid);font-family:var(--ff-mono);font-size:12px;color:var(--ink-strong)}
.admin-x{background:transparent;border:none;color:var(--ink-muted);font-size:14px;cursor:pointer}
.admin-x:hover{color:var(--ink-strong)}
.admin-fields{padding:12px 14px;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;max-height:60vh;overflow:auto}
.admin-field{display:flex;flex-direction:column;gap:2px}
.admin-field span{font-family:var(--ff-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faded)}
.admin-field input{font-family:var(--ff-mono);font-size:12px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-body);padding:4px 7px;outline:none}
.admin-field input:focus{border-color:var(--rule-strong)}
.admin-field input[readonly]{color:var(--ink-faded);background:transparent}
.admin-card-foot{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--rule-mid)}
.admin-err{font-family:var(--ff-mono);font-size:11px;color:var(--rust)}
@media(max-width:560px){.admin-fields{grid-template-columns:1fr}}
/* admin image thumbnails */
.admin-thumb{height:22px;width:22px;object-fit:cover;border:1px solid var(--rule-mid);border-radius:1px;vertical-align:middle;background:var(--bg-recess)}
.admin-thumb-lg{height:48px;width:48px;display:block;margin-bottom:4px}
/* admin smart-form: selects + list builders */
.admin-head-right{display:flex;align-items:center;gap:8px}
.admin-field-wide{grid-column:1 / -1}
.admin-sel{font-family:var(--ff-mono);font-size:12px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-body);padding:4px 7px;outline:none}
.admin-sel:focus{border-color:var(--rule-strong)}
.lb{display:flex;flex-direction:column;gap:5px;border:1px solid var(--rule-thin);border-radius:1px;padding:7px;background:var(--bg-recess)}
.lb-row{display:flex;align-items:center;gap:6px}
.lb-row .admin-sel{flex:1 1 auto}
.lb-num{width:64px;font-family:var(--ff-mono);font-size:12px;background:var(--bg-card);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-body);padding:4px 6px;outline:none}
.lb-add{align-self:flex-start}
.lb-del{color:var(--rust);border-color:var(--rust)}
.admin-filters{display:flex;gap:6px}
/* admin image generation */
.gen-box{margin-top:4px}
.gen-panel{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;padding:8px;border:1px solid var(--rule-thin);border-radius:1px;background:var(--bg-recess)}
.gen-panel #gen-name{flex:1 1 160px}
.gen-status{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded)}
.gen-results{width:100%;display:flex;gap:8px;flex-wrap:wrap}
.gen-thumb{width:64px;height:64px;object-fit:contain;border:1px solid var(--rule-mid);border-radius:1px;background:var(--bg-card);cursor:pointer}
.gen-thumb:hover{border-color:var(--doctrine);outline:1px solid var(--doctrine)}
/* admin portrait studio */
.pt-arch{font-family:var(--ff-mono);font-size:13px;letter-spacing:.1em;color:var(--ink-strong);margin:18px 0 8px;border-bottom:1px solid var(--rule-mid);padding-bottom:4px}
.pt-card{border:1px solid var(--rule-thin);background:var(--bg-card);border-radius:1px;padding:10px 12px;margin-bottom:10px}
.pt-name{font-family:var(--ff-display);font-size:14px;color:var(--ink-strong);text-transform:capitalize;margin-bottom:6px}
.pt-prompt-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.pt-prompt{flex:1 1 auto;min-height:40px;font-family:var(--ff-body);font-size:12px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-body);padding:6px 8px;resize:vertical}
.pt-sexes{display:flex;gap:18px;flex-wrap:wrap}
.pt-sex{flex:1 1 300px}
.pt-sex-lbl{font-family:var(--ff-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faded);margin-bottom:4px}
.pt-slots{display:flex;gap:6px;margin-bottom:6px}
.pt-slot{width:75px;height:75px;object-fit:cover;border:1px solid var(--rule-mid);border-radius:1px;background:var(--bg-recess)}
.pt-thumb{width:72px;height:72px}
.pt-slot{cursor:pointer;transition:outline-color 120ms,border-color 120ms}
.pt-slot:hover{border-color:var(--rule-strong)}
.pt-slot-active{outline:2px solid var(--doctrine);outline-offset:1px;border-color:var(--doctrine)}
.g-drops{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.g-drop{display:inline-flex;align-items:center;gap:4px}
.g-drop-pct{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.g-drop-meta{display:inline-flex;flex-direction:column;line-height:1.15}
.g-drop-lvl{font-family:var(--ff-mono);font-size:9px;color:var(--ink-faded);font-variant-numeric:tabular-nums}
.rc-flow{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-arrow{font-family:var(--ff-mono);color:var(--ink-faded);font-size:13px;padding:0 2px}
/* The Toil — craft modal */
.toil-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.toil-modal[hidden]{display:none}
.toil-modal-card{background:var(--bg-card);border:1px solid var(--rule-strong);border-radius:2px;max-width:460px;width:100%;max-height:88vh;overflow:auto}
.toil-modal-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--rule-mid);font-family:var(--ff-display);color:var(--ink-strong);text-transform:capitalize}
.toil-craft-body{padding:12px}
.toil-craft-line{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.toil-craft-line>span{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted);min-width:60px}
.toil-craft-line .admin-sel{flex:1}
.toil-alloc-grp{border-top:1px solid var(--rule-thin);padding:8px 0}
.toil-alloc-h{font-size:12px;color:var(--ink-body);margin-bottom:6px}
.toil-alloc-sum{font-family:var(--ff-mono);color:var(--rust)}
.toil-alloc-sum.toil-alloc-ok{color:var(--lichen)}
.toil-alloc-stack{display:flex;align-items:center;gap:8px;margin:4px 0}
.toil-alloc-gs{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted)}
.toil-alloc-have{font-family:var(--ff-mono);font-size:11px;color:var(--ink-faded);flex:1}
.toil-craft-err{color:var(--rust);font-size:12px;min-height:14px;margin:6px 0 0}
.toil-modal-foot{padding:10px 12px;border-top:1px solid var(--rule-mid);text-align:right}
/* The Toil — 2-block layout */
.toil-gather-name{font-family:var(--ff-display);font-size:15px;color:var(--ink-strong);font-style:italic;text-transform:capitalize}
.toil-row-sub{font-family:var(--ff-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faded);margin:2px 0 6px}
.toil-recipe-flow{font-size:12px;color:var(--ink-body);margin:4px 0 8px}
.toil-recipes-bar{margin:0 0 10px}
.toil-recipes-bar .admin-sel{width:100%}
/* The Toil — idea catalyst cards (inventory-style) */
.toil-idea-filter{width:100%;margin:6px 0}
.toil-cat-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.toil-cat-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:6px 8px;background:var(--bg-card);border:1px solid var(--rule-thin);border-radius:1px;cursor:pointer;transition:border-color 120ms,background 120ms}
.toil-cat-card:hover{border-color:var(--doctrine);background:var(--bg-recess)}
.toil-cat-card[hidden]{display:none}
.toil-cat-info{display:flex;flex-direction:column;min-width:0}
.toil-cat-name{font-family:var(--ff-body);font-size:13px;color:var(--ink-strong);text-transform:capitalize}
.toil-cat-meta{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);text-transform:uppercase;letter-spacing:.03em}
/* The Toil — compact gather row */
.toil-grow{border:1px solid var(--rule-thin);background:var(--bg-card);border-radius:1px;padding:7px 10px;margin-bottom:6px}
.toil-grow.toil-row--on{border-color:var(--lichen);background:var(--bg-recess)}
.toil-grow-main{display:flex;align-items:center;justify-content:space-between;gap:12px}
.toil-grow-l{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.toil-grow-sub{font-family:var(--ff-mono);font-size:6px;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-faded);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toil-grow-act{flex-shrink:0}
.dos-bar--thin{height:3px;margin-top:7px}
/* idea cards — image frame in tier colour */
.toil-cat-card .pack-img{border-width:2px}
.pack-img.tfrm--1{border-color:var(--rule-mid)}
.pack-img.tfrm--2{border-color:#5a9a5e}
.pack-img.tfrm--3{border-color:#5288c8}
.pack-img.tfrm--4{border-color:#9a6fc8}
.pack-img.tfrm--5{border-color:#c79a3a}
/* tighter gather spacing */
.toil-grow{margin-bottom:4px}
/* The Toil — recipe flow with item icons */
.toil-recipe-flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 8px}
.toil-io{display:inline-flex;align-items:center;gap:3px}
.toil-io-img{width:30px;height:30px;object-fit:contain;border:2px solid var(--rule-mid);border-radius:1px;background:var(--bg-recess);flex-shrink:0}
.toil-io-q{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.toil-io-img.tfrm--1{border-color:var(--rule-mid)}
.toil-io-img.tfrm--2{border-color:#5a9a5e}
.toil-io-img.tfrm--3{border-color:#5288c8}
.toil-io-img.tfrm--4{border-color:#9a6fc8}
.toil-io-img.tfrm--5{border-color:#c79a3a}
/* item names display capitalized (data is lowercase mat.*); matches The Toil's styled names */
.pack-name,.dos-eq-name,.tip-title,.toil-cat-name{text-transform:capitalize}
/* profession images (shown where the character has progress) */
.toil-prof-img{width:36px;height:36px;object-fit:cover;border:1px solid var(--rule-mid);border-radius:2px;flex-shrink:0}
.toil-grow-main{justify-content:flex-start}
.toil-grow-l{flex:1 1 auto;min-width:0}
.dos-prof-row--img{display:flex;align-items:center;gap:8px}
.dos-prof-img{width:34px;height:34px;object-fit:cover;border:1px solid var(--rule-mid);border-radius:2px;flex-shrink:0}
.dos-prof-body{flex:1 1 auto;min-width:0}
/* craft alloc row — MAX button + layout */
.toil-alloc-have{flex:1 1 auto}
.toil-alloc-qty{width:64px;flex-shrink:0}
.toil-alloc-max{flex-shrink:0}
.toil-idea-note{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);margin:4px 0 2px;font-style:italic}
/* dossier professions — compact 2-column cards (name / lvl stacked, no overlap) */
#dos-professions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dos-prof-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--rule-thin);background:var(--bg-card);border-radius:1px}
.dos-prof-img--stub{display:flex;align-items:center;justify-content:center;color:var(--ink-faded);background:var(--bg-recess);font-size:14px}
.dos-prof-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.dos-prof-name{font-size:12px;color:var(--ink-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dos-prof-lvl{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded)}
/* Mourning Walls — character portrait */
.walls-portrait{width:40px;height:40px;object-fit:cover;border:1px solid var(--rule-mid);border-radius:2px;flex-shrink:0}
/* The Exchange — citadel market: each row is a transaction (item header + a deal strip) */
.market-gold{font-family:var(--ff-mono);font-size:12px;color:var(--ink-muted);text-align:center;margin:0 0 6px}
.market-gold .coin{top:-2px}
.market-grid,.market-list{display:flex;flex-direction:column;gap:7px}
.market-row{display:flex;flex-direction:column;gap:7px;padding:8px 10px;border:1px solid var(--rule-thin);background:var(--bg-card);border-radius:1px}
.market-head{display:flex;align-items:center;gap:9px}
.market-img{width:40px;height:40px;object-fit:contain;border:1px solid var(--rule-mid);border-radius:1px;background:var(--bg-recess);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.market-card-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.market-name{font-family:var(--ff-display);font-size:13px;color:var(--ink-strong);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* BUY rows: single line — icon · name · compact price+buy on the right */
.market-row--buy{flex-direction:row;align-items:center;gap:9px}
.market-row--buy .market-deal{flex:0 0 auto}
.market-row--buy .market-deal-body{padding:0 10px;gap:4px}
.market-meta{font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);letter-spacing:.02em}
/* the deal strip — calc + action as ONE bordered unit, button joined by a hairline */
.market-deal{display:flex;align-items:stretch;border:1px solid var(--rule-mid);border-radius:1px;overflow:hidden;background:var(--bg-recess)}
.market-deal-body{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;min-height:30px;font-family:var(--ff-mono);font-size:12px;color:var(--ink-muted)}
.market-qty{width:50px;background:var(--bg-card);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-strong);font-family:var(--ff-mono);font-size:12px;text-align:center;padding:2px 3px;-moz-appearance:textfield}
.market-op{color:var(--ink-faded)}
.market-rate{color:var(--ink-body)}
.market-total{color:var(--gold-stamp);font-weight:600;font-variant-numeric:tabular-nums}
.coin{color:var(--gold-stamp);font-size:.9em;vertical-align:middle;position:relative;top:-1px}
.market-act{border:none;border-left:1px solid var(--rule-mid);background:transparent;color:var(--doctrine);font-family:var(--ff-display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:0 16px;cursor:pointer;transition:background 160ms,color 160ms;white-space:nowrap}
.market-act:hover:not(:disabled){background:var(--doctrine);color:var(--bg-card)}
.market-act:disabled{color:var(--ink-faded);cursor:not-allowed}
.market-act:focus-visible{outline:2px solid var(--doctrine);outline-offset:-2px}
/* The Toil — first-visit welcome (Pale Hour) */
.toil-intro-card{max-width:480px;border-color:var(--rule-strong);padding:20px 22px;background:var(--bg-card)}
.toil-intro-h{font-family:var(--ff-display);font-style:italic;font-size:24px;color:var(--ink-strong);margin:0 0 10px;line-height:1.1;text-shadow:0 1px 0 var(--rule-thin)}
.toil-intro-body{font-family:var(--ff-body);font-size:13px;line-height:1.65;color:var(--ink-body);margin:0 0 16px}
.toil-intro-pick{font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faded);margin:0 0 8px}
.toil-intro-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.toil-intro-tool{display:flex;align-items:center;gap:9px;text-align:left;padding:8px 9px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;cursor:pointer;transition:border-color 150ms,background 150ms}
.toil-intro-tool:hover{border-color:var(--doctrine);background:var(--bg-card)}
.toil-intro-img{width:46px;height:46px;object-fit:contain;flex-shrink:0;border:1px solid var(--rule-mid);border-radius:1px;background:var(--bg-card);display:flex;align-items:center;justify-content:center}
.toil-intro-info{display:flex;flex-direction:column;min-width:0;gap:2px}
.toil-intro-tname{font-family:var(--ff-display);font-size:13px;color:var(--ink-strong);text-transform:capitalize}
.toil-intro-tuse{font-family:var(--ff-mono);font-size:9px;color:var(--ink-faded);line-height:1.3;text-transform:capitalize}
/* The Mender's Stall (repair) */
.market-mender-note{font-family:var(--ff-display);font-style:italic;font-size:12px;color:var(--ink-muted);line-height:1.5;margin:0 0 8px;max-width:380px}
.market-warn{color:var(--rust);font-style:normal}
.pack-act--drop{color:var(--rust);border-color:var(--rust)}
.pack-act--drop:hover{background:var(--rust);color:var(--bg-card)}
/* The Auction Block */
.ah-tabs{display:flex;gap:6px;margin-bottom:12px}
.ah-tab{flex:1;padding:8px 0;font-family:var(--ff-display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:transparent;color:var(--ink-muted);border:1px solid var(--rule-mid);border-radius:1px;cursor:pointer;transition:background 160ms,color 160ms}
.ah-tab--on{background:var(--doctrine);color:var(--bg-card);border-color:var(--doctrine)}
.ah-sellctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--rule-thin)}
.ah-fld{display:inline-flex;align-items:center;gap:4px;font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);text-transform:uppercase;letter-spacing:.04em}
.ah-fld input,.ah-fld select{width:56px;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-strong);font-family:var(--ff-mono);font-size:12px;text-align:center;padding:3px}
.ah-fld select{width:auto}
.ah-fee{font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:3px}
.ah-fee b{color:var(--gold-stamp)}
.ah-sellctl .market-act{margin-left:auto;border:1px solid var(--rule-mid);border-radius:1px;padding:6px 14px}
.ah-sellctl .market-act:hover{background:var(--doctrine);color:var(--bg-card);border-color:var(--doctrine)}
/* item name line with classic ×N quantity tag (replaces "have N") */
.market-nameline{display:flex;align-items:baseline;gap:6px;min-width:0}
.qty-tag{font-family:var(--ff-mono);font-size:11px;font-weight:600;color:var(--ink-muted);flex-shrink:0}
/* Auction filters, pager, tier tag, trade history */
.ah-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:10px}
.ah-search{grid-column:1/-1;height:30px;box-sizing:border-box;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-strong);font-family:var(--ff-body);font-size:12px;padding:0 9px}
.ah-search::placeholder{color:var(--ink-faded)}
.ah-filters .ah-tier{width:100%;height:30px;box-sizing:border-box;background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-strong);font-family:var(--ff-mono);font-size:11px;padding:0 6px;cursor:pointer}
.ah-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:10px}
.ah-pager:empty{display:none}
.ah-pg{width:30px;height:26px;background:transparent;border:1px solid var(--rule-mid);border-radius:1px;color:var(--ink-muted);font-size:14px;cursor:pointer;line-height:1}
.ah-pg:hover:not(:disabled){border-color:var(--doctrine);color:var(--doctrine)}
.ah-pg:disabled{opacity:.35;cursor:default}
.ah-pageinfo{font-family:var(--ff-mono);font-size:11px;color:var(--ink-faded);min-width:48px;text-align:center}
.tier-tag{font-family:var(--ff-mono);font-size:10px;font-weight:700;padding:0 3px;border-radius:1px}
.ah-trade{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;padding:0 4px 0 8px;flex-shrink:0}
.ah-side{font-family:var(--ff-display);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ah-side--buy{color:var(--rust)}
.ah-side--sell{color:var(--lichen,#6a8c5e)}
.ah-amt{font-family:var(--ff-mono);font-size:12px;color:var(--ink-strong)}
/* Auction: wrap many browse filters; history row = one line, trade pinned top-right */
.ah-histrow{flex-direction:row;align-items:flex-start;gap:9px}
.ah-histrow .market-head{flex:1 1 auto;min-width:0}
.ah-trade{justify-content:flex-start;padding:0 0 0 8px}

.tip-note{font-family:var(--ff-body);font-style:italic;font-size:10px;color:var(--ink-faded);margin:1px 0 3px;line-height:1.4}
.tip-note--mod{color:var(--lichen);font-style:normal}

/* broken gear (durability worn to 0) — bright pure-red ring (distinct from the muted amber T5 and
   the brown-red rust); grabs attention. Theme-independent alert. */
.broken{outline:2px solid #c0392b;outline-offset:-2px;box-shadow:0 0 0 1px rgba(192,57,43,.25)}
/* fisher catch: gold + broken-gear in the haul; admin special-drop chip */
.toil-haul-gold .toil-haul-qty{color:var(--gold-stamp)}
.toil-broke-tag{font-family:var(--ff-mono);font-size:9px;color:#c0392b;text-transform:uppercase;letter-spacing:.08em;margin-left:4px}
.g-drop--special{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border:1px solid var(--rule-mid);border-radius:1px;font-family:var(--ff-mono);font-size:10px;background:var(--bg-recess)}
.pack-cd{font-family:var(--ff-mono);font-size:11px;color:#c0392b;border:1px solid #c0392b;border-radius:5px;padding:3px 8px;background:rgba(192,57,43,.07);cursor:help;align-self:center}
.toil-cat-chance{margin-left:auto;align-self:center;font-family:var(--ff-mono);font-size:11px;font-weight:700;color:var(--lichen);padding-left:8px;flex:0 0 auto;cursor:help}
.toil-row--new{border:2px solid var(--lichen)!important;border-radius:4px;animation:toil-new-glow 2.4s ease-out 1}
@keyframes toil-new-glow{0%{box-shadow:0 0 0 0 rgba(90,154,94,.55)}60%{box-shadow:0 0 0 7px rgba(90,154,94,0)}100%{box-shadow:0 0 0 0 rgba(90,154,94,0)}}
.toil-recipe-tool{display:flex;justify-content:space-between;gap:8px;font-family:var(--ff-mono);font-size:10px;color:var(--ink-faded);margin-top:5px}
.toil-recipe-time{color:var(--ink-muted);white-space:nowrap}
.toil-tool-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}
.toil-tabs{display:flex;margin:18px 0 14px;border:1px solid var(--rule-mid);border-radius:6px;overflow:hidden}
.toil-tab{flex:1;padding:9px 6px;background:var(--bg-card);border:0;border-right:1px solid var(--rule-mid);font-family:var(--ff-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faded);cursor:pointer}
.toil-tab:last-child{border-right:0}
.toil-tab--on{background:var(--bg-recess);color:var(--ink-strong);font-weight:700}
.toil-tab-plus{color:#5a9a5e;font-weight:700;font-size:14px;margin-left:5px;line-height:1}
.toil-tab-work{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5a9a5e;margin-left:6px;vertical-align:middle;position:relative;top:-2px;animation:dos-intox-pulse 1.6s ease-in-out infinite}
.toil-tab-work[hidden]{display:none}
.toil-haul-d>summary{cursor:pointer;list-style:revert}
.toil-haul-d>summary::-webkit-details-marker{display:revert}
/* ---- report-a-bug: header button + popup ---- */
.hdr-bug{display:inline-flex;align-items:center;gap:4px;margin-left:10px;padding:3px 9px;font-family:var(--ff-mono);font-size:11px;color:var(--ink-muted);background:transparent;border:1px solid var(--rule-mid);border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}
.hdr-bug:hover{color:var(--ink-strong);border-color:var(--ink-faded)}
.bug-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);padding:20px}
.bug-modal[hidden]{display:none}
.bug-box{width:100%;max-width:440px;background:var(--bg-card);border:1px solid var(--rule-mid);border-radius:8px;padding:18px;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.bug-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--ff-mono);font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-strong);margin-bottom:12px}
.bug-x{background:none;border:0;font-size:20px;line-height:1;color:var(--ink-faded);cursor:pointer}
.bug-x:hover{color:var(--ink-strong)}
.bug-text{width:100%;min-height:120px;resize:vertical;padding:10px;font-family:inherit;font-size:13px;color:var(--ink-strong);background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:5px;box-sizing:border-box}
.bug-text:focus{outline:none;border-color:var(--ink-faded)}
.bug-msg{min-height:16px;margin:8px 0 0;font-size:12px;color:var(--ink-muted)}
.bug-foot{display:flex;justify-content:flex-end;margin-top:10px}
.bug-send{padding:7px 18px;font-family:var(--ff-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--bg-card);background:var(--ink-strong);border:0;border-radius:5px;cursor:pointer}
.bug-send:hover{opacity:.9}
.admin-btn{padding:3px 10px;font-family:var(--ff-mono);font-size:11px;color:var(--ink-strong);background:var(--bg-recess);border:1px solid var(--rule-mid);border-radius:3px;cursor:pointer}
.admin-btn:hover{border-color:var(--ink-faded)}
.admin-btn-ghost{color:var(--ink-faded);background:transparent}
.admin-tag-open{color:var(--rust);border-color:var(--rust)}
.admin-bug-msg{max-width:360px;white-space:pre-wrap;word-break:break-word;font-size:12px}
.admin-row-done{opacity:.5}
.am-reward{font-family:var(--ff-mono);font-size:11px;color:var(--gold-stamp);white-space:nowrap;margin-left:auto;padding-left:10px}
