:root{--ink:color-mix(in srgb,var(--accent) 55%,#1c1820);--paper:#f8f7f4;--quiet:color-mix(in srgb,var(--accent) 38%,#625f63);--stroke:color-mix(in srgb,var(--accent) 17%,white);--soft:color-mix(in srgb,var(--accent) 6%,white);--nav-bg:color-mix(in srgb,var(--accent) 48%,#101016);--white:#fff;--side:234px}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{padding:0 0 0 var(--side);background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px}
body::before,body::after{left:var(--side)}body::before{opacity:.07}body::after{opacity:.045}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
button:focus-visible,a:focus-visible{outline:2px solid var(--quiet);outline-offset:4px}
.sidebar{position:fixed;z-index:100;inset:0 auto 0 0;width:var(--side);background:var(--nav-bg);color:white;display:flex;flex-direction:column;padding:28px 20px 22px}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:white;padding:0 7px 32px;border-bottom:1px solid #ffffff24}
.brand-mark{height:46px;width:35px;flex-shrink:0}.brand-name{font-weight:900;font-size:22px;line-height:.95;letter-spacing:-.8px;text-transform:uppercase}.brand-caption{display:block;font-size:9px;letter-spacing:1.7px;font-weight:400;margin-top:9px;color:var(--quiet)}
.nav-label{font-size:9px;letter-spacing:2px;color:var(--quiet);text-transform:uppercase;margin:29px 12px 12px}
.nav-group{display:flex;flex-direction:column;gap:5px}.nav-button{border:0;box-shadow:none;background:transparent;color:var(--stroke);text-align:left;display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:0;text-transform:none;font-weight:500;padding:12px;border-radius:3px;min-height:43px}
.nav-button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5;flex-shrink:0}.nav-button .count{margin-left:auto;font-size:10px;color:var(--quiet);letter-spacing:.6px}.nav-button:hover,.nav-button:focus-visible{background:#ffffff14!important;color:white!important;transform:none!important;box-shadow:none!important}.nav-button.active{background:#ffffff17;color:white;border-left:2px solid #fff;padding-left:10px}
.sidebar-bottom{margin-top:auto;padding:25px 10px 0}.sidebar-quote{font-size:16px;line-height:1.4;font-weight:700;color:var(--stroke);margin:22px 0}.sidebar-meta{font-family:ui-monospace,monospace;font-size:9px;color:var(--quiet);letter-spacing:.5px;line-height:1.7}.sidebar-bottom .line{height:1px;background:#ffffff22;margin-bottom:16px}
.topbar{height:71px;display:flex;justify-content:space-between;align-items:center;padding:0 38px;border-bottom:1px solid var(--stroke);background:var(--paper);gap:16px;position:relative;z-index:10}.breadcrumb{font-size:11px;color:var(--quiet);display:flex;gap:11px;align-items:center}.breadcrumb strong{font-weight:500;color:var(--ink)}.top-status{display:flex;gap:21px;align-items:center;font-size:10px;white-space:nowrap}.save-status{display:inline-flex;align-items:center;gap:6px;color:var(--quiet)}.save-dot{width:5px;height:5px;border-radius:50%;background:#6e8268}.version{border:1px solid var(--stroke);padding:6px 9px;font-family:ui-monospace,monospace;font-size:9px;letter-spacing:.5px}.menu-toggle{display:none;background:transparent;color:var(--ink);width:38px;padding:8px;border:0;box-shadow:none}
.app,.site-page{max-width:1320px;margin:0 auto;padding:34px 38px 76px;position:relative;z-index:1;min-width:0}.site-view{animation:appear .18s ease-out}@keyframes appear{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}
.hero{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:27px;min-height:120px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:var(--quiet);margin-bottom:13px;text-transform:uppercase}.hero h1,.page-title{font-size:clamp(30px,3.5vw,48px);line-height:1.02;letter-spacing:-1.7px;font-weight:900;margin:0 0 12px;color:var(--ink)}.hero p{font-size:12px;line-height:1.6;margin:0;max-width:510px;color:var(--quiet)}.hero-stamp{flex-shrink:0;width:142px;height:104px;opacity:.85}.hero-stamp svg{width:100%;height:100%}.hero-stamp text{font-family:ui-monospace,monospace;font-size:6px;letter-spacing:1.3px}
.sheet-toolbar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke);padding:12px 0;margin:0 0 22px;gap:12px}.active-char{font-size:11px;display:flex;align-items:center;gap:9px;min-width:0}.active-char .mini-square{width:23px;height:23px;background:var(--stroke);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.active-char strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.toolbar-actions{display:flex;gap:6px;flex-wrap:wrap}.site-action{width:auto;min-height:35px;padding:8px 13px;letter-spacing:.1px;font-size:10px;font-weight:700;border:1px solid var(--stroke);text-transform:none;background:white;color:var(--ink);box-shadow:none!important;border-radius:2px;white-space:nowrap}.site-action.primary{background:var(--ink);color:white;border-color:var(--ink)}.site-action:hover,.site-action:focus-visible{background:var(--soft)!important;color:var(--ink)!important;border-color:var(--quiet)!important;transform:none!important}.site-action.primary:hover{background:var(--ink)!important;color:white!important}.site-action.danger{color:#9c244a}.toolbar-actions .site-action{display:flex;align-items:center;gap:6px}.site-action svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.5}

.card{background:white;border:1px solid var(--stroke);box-shadow:none;margin-bottom:20px;padding:23px 24px;border-radius:3px}.card:hover{box-shadow:none}.card h2{font-size:13px;letter-spacing:.7px;line-height:1.4}.card h3{font-size:11px;letter-spacing:.4px}.card .title-row{margin-bottom:17px}.title-row>.title-actions>button.secondary{width:auto}.card label{font-size:10px;font-weight:600;color:var(--quiet);letter-spacing:.1px;margin-top:13px;margin-bottom:6px}.card input,.card textarea,.card select{font-size:12px;min-height:37px;background:var(--soft);border:1px solid var(--stroke);border-radius:2px;color:var(--ink);padding:9px 10px}.card input:hover,.card textarea:hover,.card select:hover{background:var(--soft);border-color:var(--quiet)}.card textarea{min-height:78px}.card .hint{font-size:10px;line-height:1.6;color:var(--quiet)}.collapse-section-button{width:24px;min-width:24px;height:24px}.collapse-section-button.up::before{border-left-width:5px;border-right-width:5px;border-bottom-width:8px}.collapse-section-button.down::before{border-left-width:5px;border-right-width:5px;border-top-width:8px}.character-head-layout{gap:25px!important;grid-template-columns:139px 1fr!important}.portrait-preview-wrap{aspect-ratio:3/4;border:1px solid var(--stroke)!important;background:var(--soft)!important;max-height:190px}.portrait-preview-placeholder{font-size:11px;color:var(--quiet);letter-spacing:2px}.portrait-controls summary{font-size:9px;color:var(--quiet);margin-top:10px;cursor:pointer}.portrait-mini-button{font-size:8px!important;padding:6px 4px!important;min-height:28px!important;letter-spacing:0!important;border-radius:2px}.card .grid-2{gap:0 18px}.card .grid-2 label{margin-top:0}.card .grid-2>div:nth-child(n+3) label{margin-top:12px}.counter-row{gap:6px;margin:8px 0 13px}.counter{font-size:9px;border:1px solid var(--stroke);background:var(--soft);padding:5px 8px;color:var(--quiet);border-radius:2px;box-shadow:none}.table{font-size:11px}.table th{font-size:9px;letter-spacing:.3px;background:var(--soft);border-color:var(--stroke);color:var(--quiet);padding:11px 9px;font-weight:600}.table td{border-color:var(--stroke);padding:9px}.table td strong{font-size:10px;letter-spacing:.4px}.wide-table{min-width:680px}.stress-triangle{margin:0!important}.tri-shape{opacity:.8}.inline-total{font-size:8px;color:var(--quiet)}.stress-count{font-size:10px;background:transparent;padding:3px;white-space:nowrap}.stress-scale{gap:8px}.table .small-number{width:56px;min-height:31px;padding:5px!important;font-size:10px}.stress-total-counter{font-weight:700;color:var(--ink);background:var(--soft)}.counter-row>button{width:auto;font-size:9px;padding:5px 9px;min-height:26px;border-radius:2px;letter-spacing:0}.stress-total-counter+.hint{margin:0}.counter-row #consequenceCheckResult:empty{display:none}.traits-grid{gap:25px}.trait-card{border:0;border-bottom:1px solid var(--stroke);background:white;box-shadow:none;padding:8px 0}.trait-card:hover{background:var(--soft);box-shadow:none}.trait-name{font-size:11px;padding:7px 0;letter-spacing:.3px;text-align:left}.trait-column h3{padding-bottom:12px;border-bottom:1px solid var(--stroke)}.trait-tooltip{font-size:11px;line-height:1.5}.trait-checks{gap:10px}.slot-box,.slot-entry{border-color:var(--stroke);background:var(--soft);border-radius:2px}.slot-box{padding:12px}.slot-entry:hover{box-shadow:none}.triangle-button{width:26px!important;height:25px!important;min-width:26px!important}.triangle-button.left::before{border-top-width:5px;border-bottom-width:5px;border-right-width:8px}.triangle-button.right::before{border-top-width:5px;border-bottom-width:5px;border-left-width:8px}.quality-die-preview{width:28px;min-width:28px;height:25px;font-size:9px}.table-wrap{scrollbar-width:thin}.table-wrap input{min-width:65px}.table-wrap textarea{min-width:130px}.card .title-actions{gap:5px}
.roll-modal,.sheet-menu-modal,.diary-modal,.abilities-modal,.tactics-modal,.resources-modal,.rules-help-modal{background:#21000ed4;backdrop-filter:blur(3px);z-index:5000;padding:30px 18px}.roll-panel,.sheet-menu-panel,.diary-panel,.abilities-panel,.tactics-panel,.resources-panel,.rules-help-panel{border:1px solid var(--stroke);border-radius:4px;box-shadow:0 24px 100px #16000940;max-height:calc(100dvh - 60px);padding:26px;background:#fff}.roll-panel h2,.sheet-menu-panel h2,.diary-panel h2,.abilities-panel h2,.tactics-panel h2,.resources-panel h2,.rules-help-panel h2{font-size:18px;letter-spacing:0}.roll-panel h3,.diary-panel h3{font-size:12px}.roll-panel .title-row>.secondary,.sheet-menu-panel .title-row>.secondary,.diary-panel .title-actions>.secondary,.abilities-panel .title-row>.secondary,.tactics-panel .title-actions>.secondary,.resources-panel .title-actions>.secondary,.rules-help-panel .title-row>.secondary{width:auto;font-size:10px;padding:8px 12px;border:1px solid var(--stroke);min-height:33px}.roll-panel input,.roll-panel select,.diary-panel input,.diary-panel textarea{border:1px solid var(--stroke);font-size:12px;border-radius:2px}.roll-panel label{font-size:11px}.roll-panel .roll-subsection>button{font-size:11px;min-height:43px}.roll-subsection{border-color:var(--stroke);background:var(--soft)}.roll-result-title{font-size:13px}.roll-detail,.roll-panel .hint{font-size:10px;line-height:1.5}.roll-history-entry{border-color:var(--stroke);background:var(--soft);border-radius:2px}.roll-history-top{font-size:11px}.site-note{font-size:10px;line-height:1.7;color:var(--quiet);border-left:2px solid var(--stroke);padding:0 0 0 11px;margin:22px 0}.site-footer{margin:25px 0 0;display:flex;justify-content:space-between;gap:10px;padding-top:17px;border-top:1px solid var(--stroke);font-size:9px;color:var(--quiet);letter-spacing:.25px}.page-intro{font-size:12px;line-height:1.8;color:var(--quiet);max-width:620px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:30px}.page-heading .page-title{font-size:40px;margin-bottom:11px}.page-heading p{margin-bottom:0}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.character-tile{border:1px solid var(--stroke);border-radius:3px;background:white;overflow:hidden;min-width:0}.character-tile.selected{border-color:var(--accent)}.character-tile-head{height:100px;background:var(--soft);position:relative;overflow:hidden;padding:20px;display:flex;align-items:center;gap:18px}.character-tile-head img{width:64px;height:83px;object-fit:cover}.character-monogram{font-size:42px;font-weight:900;color:var(--quiet);letter-spacing:-3px}.tile-number{position:absolute;right:16px;top:14px;font-family:monospace;font-size:9px;letter-spacing:2px;color:var(--quiet)}.selected-label{position:absolute;bottom:13px;right:13px;font-size:8px;letter-spacing:.8px;color:var(--accent)}.character-tile-body{padding:19px}.character-tile-body h2{font-size:18px;letter-spacing:-.5px;margin:0 0 8px;text-transform:none;overflow-wrap:anywhere}.character-tile-body p{font-size:10px;line-height:1.8;color:var(--quiet);margin:0 0 15px;min-height:36px}.tile-actions{display:flex;gap:6px}.tile-actions .site-action{flex:1}.tile-actions .delete-char{flex:0;width:32px;padding:7px}.empty-tile{border:1px dashed var(--quiet);min-height:235px;background:transparent;color:var(--quiet);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-transform:none;font-size:11px;font-weight:400;letter-spacing:0}.empty-tile span{font-size:28px;font-weight:300}.empty-tile:hover{background:var(--soft)!important;color:var(--ink)!important;transform:none!important;box-shadow:none!important}.journal-list{display:flex;flex-direction:column;gap:12px}.journal-row{border:1px solid var(--stroke);border-radius:3px;background:white;padding:19px 23px;display:grid;grid-template-columns:62px 1fr;gap:18px}.journal-time{font-family:monospace;font-size:11px;color:var(--quiet);line-height:1.7}.journal-day{font-size:9px}.journal-row .roll-history-entry{border:0;padding:0;background:transparent;animation:none!important}.journal-row .roll-history-top{font-size:12px;font-weight:700;margin-bottom:11px}.journal-row .hint{font-size:10px;line-height:1.8;color:var(--quiet)}.journal-row .roll-die{width:31px;height:31px;font-size:14px}.empty-state{border:1px dashed var(--stroke);padding:55px 25px;text-align:center;color:var(--quiet);background:var(--soft)}.empty-state h2{font-size:20px;letter-spacing:-.4px;text-transform:none}.empty-state p{font-size:12px;line-height:1.8}.roadmap-summary{padding:18px 22px;background:var(--ink);color:white;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:3px;margin:24px 0}.roadmap-summary strong{font-size:12px}.roadmap-summary span{font-family:monospace;font-size:10px;color:var(--quiet)}.roadmap-stage{margin:28px 0 14px;display:flex;align-items:center;gap:11px}.roadmap-stage .stage-num{font-size:10px;color:var(--quiet);font-family:monospace}.roadmap-stage h2{font-size:13px;letter-spacing:.4px}.roadmap-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.feature-card{padding:22px;border:1px solid var(--stroke);background:white;border-radius:3px}.feature-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.feature-icon{width:29px;height:29px;display:flex;align-items:center;justify-content:center;background:var(--soft);font-size:13px}.feature-status{font-size:8px;letter-spacing:.8px;text-transform:uppercase;color:var(--quiet);border:1px solid var(--stroke);padding:4px 6px}.feature-status.ready{color:#61705c;background:#f1f5ef;border-color:#dbe4d7}.feature-card h3{font-size:15px;letter-spacing:-.3px;margin-bottom:10px;text-transform:none}.feature-card p{font-size:11px;line-height:1.8;color:var(--quiet);margin-bottom:14px}.feature-pick{display:flex;align-items:center;gap:9px;font-size:10px!important;color:var(--quiet);cursor:pointer;font-weight:400;margin:0}.feature-pick input{width:14px;height:14px;padding:0;accent-color:var(--ink);margin:0}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.toast{position:fixed;z-index:10000;bottom:24px;left:calc(50% + var(--side)/2);transform:translateX(-50%);background:var(--ink);color:white;border:1px solid var(--quiet);border-radius:3px;padding:12px 20px;box-shadow:0 8px 30px #32021625;max-width:calc(100vw - 30px);font-size:12px;line-height:1.5;pointer-events:none}.toast.error{background:#9b214e}.mobile-shade{display:none}.back-top{position:fixed;bottom:25px;right:23px;z-index:20;background:white;border:1px solid var(--stroke);border-radius:3px;width:32px;height:32px;font-size:14px;padding:3px;min-height:0;color:var(--ink)}
@media(min-width:1600px){:root{--side:254px}.sidebar{padding-left:25px;padding-right:25px}.app,.site-page{padding-top:45px}}
@media(max-width:1100px){:root{--side:200px}.sidebar{padding:25px 13px}.brand-name{font-size:21px}.brand-mark{width:27px}.topbar{padding:0 25px}.app,.site-page{padding:28px 25px 65px}.hero h1{font-size:37px}.hero-stamp{width:110px}.card{padding:20px 18px}.sheet-tabs{gap:17px}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-head-layout{grid-template-columns:115px 1fr!important;gap:18px!important}.portrait-mini-actions{grid-template-columns:1fr 1fr!important}.sidebar-quote{font-size:14px}.top-status{gap:12px}}
@media(max-width:760px){:root{--side:0px}body{padding:0}.sidebar{width:234px;transform:translateX(-100%);transition:transform .2s ease;z-index:2000}.sidebar.open{transform:none}.mobile-shade.open{display:block;position:fixed;inset:0;background:#20000e88;z-index:1900}.topbar{height:58px;padding:0 17px;gap:8px}.menu-toggle{display:block}.breadcrumb{font-size:10px;margin-right:auto}.breadcrumb>span:first-child,.breadcrumb>span:nth-child(2){display:none}.version{font-size:8px;padding:5px 7px}.top-status{gap:8px}.save-status{font-size:9px}.app,.site-page{padding:26px 17px 60px}.hero{gap:8px;min-height:100px;margin-bottom:24px}.hero h1{font-size:35px;letter-spacing:-1.2px}.hero p{font-size:11px;max-width:340px}.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:10px}.hero-stamp{width:78px;height:85px;opacity:.55}.sheet-toolbar{align-items:flex-start;flex-direction:column;gap:11px}.toolbar-actions{width:100%;display:flex}.toolbar-actions .site-action{flex:1;justify-content:center;padding:7px 8px}.sheet-tabs{gap:20px;margin-bottom:18px}.card{padding:18px 14px;margin-bottom:15px}.card h2{font-size:12px}.character-head-layout{grid-template-columns:90px 1fr!important;gap:14px!important}.portrait-preview-wrap{max-height:125px}.portrait-preview-placeholder{font-size:9px}.portrait-controls summary{font-size:8px}.card .grid-2{grid-template-columns:1fr 1fr;gap:0 9px}.card input,.card select{font-size:11px;padding:8px;min-height:37px}.card .grid-2 label{font-size:9px}.card .title-row{gap:5px}.traits-grid{gap:20px;grid-template-columns:1fr 1fr}.trait-name{font-size:10px}.trait-checks{gap:6px}.trait-card{padding:6px 0}.trait-tooltip{width:210px}.page-heading{align-items:flex-start;flex-direction:column;gap:17px}.page-heading .page-title{font-size:35px}.character-grid{gap:12px}.character-tile-body{padding:14px}.character-tile-body h2{font-size:16px}.character-tile-head{padding:14px}.character-tile-body .site-action{font-size:9px;padding:7px 9px}.roadmap-grid{grid-template-columns:1fr}.feature-card{padding:19px}.roadmap-summary{align-items:flex-start;flex-direction:column;gap:8px}.site-footer{font-size:8px}.journal-row{padding:16px 14px;grid-template-columns:44px 1fr;gap:12px}.journal-time{font-size:10px}.toast{bottom:15px;left:50%;width:max-content;max-width:90vw}.roll-modal,.diary-modal,.abilities-modal,.tactics-modal,.resources-modal,.rules-help-modal,.sheet-menu-modal{padding:14px 8px}.roll-panel,.diary-panel,.abilities-panel,.tactics-panel,.resources-panel,.rules-help-panel,.sheet-menu-panel{padding:19px 15px;max-height:calc(100dvh - 28px)}.roll-panel .title-row{align-items:flex-start}.roll-panel h2{font-size:16px;line-height:1.4}.roll-panel .grid-2{gap:12px}.roll-panel label{font-size:10px}.back-top{bottom:15px;right:13px}}
@media(max-width:420px){.hero-stamp{display:none}.hero h1{font-size:34px}.save-status{font-size:8px}.character-head-layout{grid-template-columns:80px 1fr!important;gap:12px!important}.traits-grid{grid-template-columns:1fr}.card h2{font-size:11px}.character-grid{grid-template-columns:1fr}.toolbar-actions .site-action{font-size:9px}.slot-grid{grid-template-columns:1fr}.topbar{padding:0 12px}.app,.site-page{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.card .tri-check input,.table-wrap .tri-check input,.tri-check input{width:100%;height:100%;min-width:0;min-height:0;inset:0;padding:0;border:0;margin:0;outline-offset:2px}
.tri-check:focus-within{outline:1px dotted var(--ink);outline-offset:2px}
@media print{body{padding:0;background:white}.sidebar,.topbar,.hero-stamp,.sheet-toolbar,.sheet-tabs,.back-top,.site-footer{display:none!important}.app{padding:0}.card{break-inside:avoid}.is-collapsed .card-content{max-height:none!important;opacity:1!important}.site-view[hidden]{display:none!important}}

/* Nation-aware workspace. All accent values come from the supplied sheet. */
body{color:var(--ink);font-size:14px}
.sidebar{overflow-y:auto}
.brand-caption,.nav-label,.sidebar-meta{color:#ffffffb8}
.nav-button,.nav-button .count{color:#ffffffda}
.sidebar-quote{color:#ffffffe8}
.topbar{position:sticky;top:0;background:var(--paper);z-index:110;height:64px}
.menu-toggle svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.nation-theme-stripe{left:calc(var(--side) + 6px);width:5px;z-index:3;opacity:.6}
.app,.site-page{padding-bottom:156px;margin-bottom:0}
.hero{margin-bottom:22px;min-height:105px}
.hero h1{font-size:clamp(30px,3.4vw,44px)}
.hero-stamp{position:relative;color:var(--accent)}
.class-emblem{display:none;position:absolute;inset:0;background:var(--accent);mask:var(--class-bg-image) center / contain no-repeat;-webkit-mask:var(--class-bg-image) center / contain no-repeat}
body.has-class-emblem .hero-stamp>svg{visibility:hidden}
body.has-class-emblem .class-emblem{display:block}
.hero p,.page-intro{font-size:13px}
.sheet-toolbar{background:color-mix(in srgb,var(--paper) 90%,transparent);margin-bottom:0}
.active-char>span:last-child{font-size:11px;color:var(--quiet)}
.site-action{min-height:40px;font-size:11px;padding:9px 12px}
.site-action.primary{background:var(--ink);color:white}
.site-action.primary:hover{background:var(--accent)!important}
.sheet-tabs{position:sticky;top:64px;z-index:105;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0 0 24px;padding:8px 0;background:var(--paper);border-bottom:1px solid var(--stroke);scroll-margin-top:64px}
.sheet-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:43px;padding:7px 5px;border:0;border-bottom:2px solid transparent;background:transparent;box-shadow:none;border-radius:0;color:var(--quiet);font-size:11px;font-weight:600;line-height:1.3;letter-spacing:0;text-transform:none}
.sheet-tabs button:hover,.sheet-tabs button:focus-visible{background:var(--soft)!important;color:var(--ink)!important;box-shadow:none!important;transform:none!important}
.sheet-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent);background:var(--soft)}
.sheet-tab-icon{width:20px;height:22px;flex:0 0 20px;background:currentColor;mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}
.sheet-panel{outline:none;scroll-margin-top:180px;min-width:0}
.sheet-panel:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.card{background:#ffffffed;padding:24px;border-color:var(--stroke);border-top:2px solid var(--accent);border-radius:2px}
.card h2{font-size:15px;color:var(--ink);letter-spacing:.3px}
.card h3{font-size:12px;color:var(--ink);letter-spacing:.3px}
.card .hint{font-size:12px;color:var(--quiet)}
.card label{font-size:11px;color:var(--quiet)}
.card input,.card select,.card textarea{font-size:13px;min-height:40px;color:var(--ink);background:var(--soft);border-color:var(--stroke)}
.card input:focus,.card select:focus,.card textarea:focus{outline:2px solid var(--accent);outline-offset:1px;background:white}
.card textarea{min-height:100px;line-height:1.5}
.character-head-layout{grid-template-columns:160px minmax(0,1fr)!important;gap:26px!important}
.portrait-preview-wrap{aspect-ratio:210/297;max-height:none;background:var(--soft)!important}
.portrait-controls summary{font-size:11px;min-height:30px}
.portrait-mini-actions{grid-template-columns:1fr 1fr!important;gap:6px}
.portrait-mini-button{font-size:10px!important;min-height:34px!important;margin:0!important}
.counter{font-size:11px;color:var(--ink);padding:6px 9px}
.counter-row>button{font-size:11px;min-height:34px}
.table{font-size:12px}
.table th{font-size:10px;color:var(--quiet);letter-spacing:0}
.table td strong{font-size:11px}
.table .small-number{font-size:12px;min-height:36px}
.stress-count{font-size:11px}
.table-wrap{padding-bottom:4px}
.table-wrap input:not([type="checkbox"]){min-width:65px}
.table-wrap select{min-width:90px}
.card .tri-check input,.table-wrap .tri-check input,.tri-check input{width:100%;height:100%;min-width:0;min-height:0;inset:0;padding:0;border:0;margin:0}
.tri-check:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.tri-shape{opacity:.28}
.stress-scale .stress-triangle{width:20px;height:24px;min-width:20px;min-height:24px}
.trait-card{background:transparent;padding:10px 0}
.trait-name{font-size:12px;color:var(--ink)}
.trait-checks{gap:12px}
.trait-tooltip{font-size:12px}
.slot-entry,.slot-box{background:var(--soft)}
.slot-entry textarea{background:white;min-height:130px}
.triangle-button{width:34px!important;height:34px!important;min-width:34px!important}
.collapse-section-button{width:32px;min-width:32px;height:32px}
.quality-die-preview{width:36px;min-width:36px;height:34px;font-size:11px}
.table td:has(textarea){min-width:180px}
.sheet-panel table{width:100%}
.sheet-panel#panel-gear table{min-width:950px}
.sheet-panel#panel-gear .table-wrap{scrollbar-color:var(--accent) var(--soft)}
.site-footer{font-size:10px}
.settings-separator{margin-top:28px;padding-top:18px;border-top:1px solid var(--stroke)}
.sheet-menu-actions{gap:12px}
.roll-modal,.sheet-menu-modal,.rules-help-modal{background:#15121be0;z-index:5000}
.roll-panel,.sheet-menu-panel,.rules-help-panel{border-color:var(--stroke);color:var(--ink);background:#fff;box-shadow:0 24px 100px #10101844}
.roll-panel p,.sheet-menu-panel p,.rules-help-panel p{color:var(--quiet)}
.roll-panel label{font-size:12px;color:var(--quiet)}
.roll-panel .hint,.roll-detail{font-size:12px}
.roll-panel .roll-subsection>button{font-size:12px}
.roll-panel input,.roll-panel select{font-size:14px;min-height:44px}
.roll-panel .title-row>button,.sheet-menu-panel .title-row>button,.rules-help-panel .title-row>button{min-height:40px;font-size:11px}

/* Both tools are direct children of body, outside transformed/scrolling panels. */
.sheet-dock{position:fixed;inset:auto max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) auto;z-index:300;display:flex;align-items:stretch;gap:4px;padding:8px 10px;border:1px solid var(--stroke);border-top:2px solid var(--accent);border-radius:6px;background:#fffffff5;box-shadow:0 6px 24px #15121b20;backdrop-filter:blur(10px)}
.dock-action{width:68px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;color:var(--ink)}
.dock-action>span{font-size:10px;font-weight:700;letter-spacing:.3px;pointer-events:none}
.sheet-dock .floating-codex-button,.sheet-dock .floating-roll-button,body.has-class-emblem .sheet-dock .floating-roll-button{position:relative;inset:auto;width:48px;height:48px;min-width:48px;min-height:48px;margin:0;padding:0;background-color:var(--accent);color:white;box-shadow:none;transform:none;mask-size:contain;-webkit-mask-size:contain;clip-path:none}
.sheet-dock .floating-roll-button{font-size:12px;border-radius:5px;border:0}
.sheet-dock .floating-codex-button{clip-path:polygon(50% 100%,0 0,100% 0)}
body.has-class-emblem .sheet-dock .floating-roll-button{font-size:0;border-radius:0}
.sheet-dock button:hover,.sheet-dock button:focus-visible{transform:scale(1.06)!important;background-color:var(--ink)!important}
.dock-action:focus-within{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}
.codex-modal{z-index:3500}
.codex-panel{width:min(650px,calc(100vw - 28px));height:min(730px,calc(100dvh - 150px));max-height:calc(100dvh - 30px);border:1px solid var(--accent);border-radius:4px;box-shadow:0 14px 60px #10101844;background:white}
.codex-panel:hover{box-shadow:0 14px 60px #10101844}
.codex-title-row{background:var(--soft);color:var(--ink)}
.codex-title-row h2{font-size:18px;color:var(--ink)}
.codex-title-row button{min-height:38px;font-size:10px;width:auto;flex:0 0 auto}
.codex-content>.hint{font-size:12px;line-height:1.6;margin-top:14px;color:var(--quiet)}
.codex-tabs{gap:6px}
.codex-tabs button{width:auto;min-height:35px;font-size:10px;padding:7px 9px;letter-spacing:0;text-transform:none}
.codex-tabs button.is-active{background:var(--ink);color:white}
.codex-search input{min-height:42px;font-size:14px;color:var(--ink)}
.codex-search>button{font-size:11px;min-height:42px;letter-spacing:0;text-transform:none}
.codex-group,.codex-card{border-color:var(--stroke)}
.codex-group-items>.codex-card:only-child{grid-column:1/-1}
.codex-group-summary{font-size:13px;color:var(--ink);padding:12px}
.codex-card{background:var(--soft);padding:13px}
.codex-card h3{font-size:13px;line-height:1.45;color:var(--ink);letter-spacing:0;text-transform:none}
.codex-card-meta{font-size:10px;color:var(--quiet);line-height:1.5}
.codex-card-text{font-size:13px;line-height:1.55;color:var(--ink)}
.codex-card-actions{display:flex;gap:7px;margin-top:12px}
.codex-card-actions button{min-height:36px;width:auto;font-size:10px;letter-spacing:0;text-transform:none;flex:1;padding:8px}
.codex-card-actions button:first-child{background:var(--ink);color:white}
.codex-subgroup-summary{color:var(--ink)}
.toast{z-index:10000;bottom:122px;border-color:var(--accent);max-width:min(520px,calc(100vw - 32px))}
.page-heading .page-title{color:var(--ink)}
.journal-row .hint,.feature-card p,.character-tile-body p{font-size:12px;line-height:1.6}
.feature-pick{font-size:12px!important;min-height:36px}
.feature-pick input{width:18px;height:18px}
@media(max-width:1100px){
 .app,.site-page{padding-left:24px;padding-right:24px;padding-bottom:150px}
 .sheet-toolbar{flex-direction:column;align-items:stretch}
 .toolbar-actions{width:100%}
 .toolbar-actions .site-action{flex:1;justify-content:center}
 .character-head-layout{grid-template-columns:135px minmax(0,1fr)!important;gap:22px!important}
 .sheet-tabs button{font-size:10px;gap:5px}
 .sheet-tab-icon{width:18px;flex-basis:18px;height:20px}
}
@media(max-width:760px){
 .topbar{height:58px;z-index:110}
 .nation-theme-stripe{left:3px;width:3px}
 .app,.site-page{padding:23px 16px 150px}
 .hero{min-height:95px;margin-bottom:20px}
 .hero h1{font-size:32px}
 .hero p{font-size:12px}
 .hero-stamp{width:72px}
 .sheet-toolbar{padding:12px 0;gap:12px}
 .toolbar-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 .toolbar-actions .site-action{font-size:10px;min-height:42px;padding:7px 3px}
 .toolbar-actions .site-action svg{display:none}
 .sheet-tabs{top:58px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px;scroll-margin-top:58px}
 .sheet-tabs button{font-size:10px;min-height:48px;padding:7px 3px}
 .sheet-tab-icon{display:none}
 .card{padding:18px 16px}
 .card h2{font-size:14px}
 .card input,.card select,.card textarea{font-size:16px;min-height:42px}
 .card label{font-size:11px}
 .card .grid-2{gap:0 12px}
 .character-head-layout{grid-template-columns:105px minmax(0,1fr)!important;gap:18px!important}
 .portrait-preview-wrap{max-height:none}
 .character-fields-column .grid-2{grid-template-columns:1fr}
 .character-fields-column .grid-2 label{margin-top:10px!important}
 .trait-name{font-size:11px}
 .traits-grid{grid-template-columns:1fr}
 .trait-checks{gap:18px}
 .sheet-dock{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));padding:7px 8px;gap:2px}
 .dock-action{width:59px}
 .sheet-dock .floating-codex-button,.sheet-dock .floating-roll-button,body.has-class-emblem .sheet-dock .floating-roll-button{width:44px;height:44px;min-width:44px;min-height:44px}
 .dock-action>span{font-size:9px}
 .codex-panel{width:calc(100vw - 24px);height:calc(100dvh - 120px);min-height:0}
 .codex-group-items{grid-template-columns:1fr}
 .codex-card-actions button{min-height:44px;font-size:12px}
 .codex-search input{font-size:16px}
 .codex-tabs button{min-height:40px;font-size:11px}
 .toast{bottom:112px}
 .roll-panel input,.roll-panel select{font-size:16px}
}
@media(max-width:420px){
 .app,.site-page{padding-left:12px;padding-right:12px}
 .sheet-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}
 .sheet-tabs button{min-height:48px;font-size:10px}
 .character-head-layout{grid-template-columns:85px minmax(0,1fr)!important;gap:13px!important}
 .character-fields-column .grid-2{grid-template-columns:1fr}
 .card{padding:16px 13px}
 .hero h1{font-size:30px}
 .toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media print{
 .sheet-panel[hidden]{display:block!important}.sheet-dock,.nation-theme-stripe,.codex-modal{display:none!important}
 body::before,body::after{display:none}.site-view[hidden]{display:none!important}
 .sheet-tabs{display:none!important}.app{padding:0}
}
