:root{color-scheme:light;--ink:#201d18;--muted:#6b655c;--paper:#edf1ed;--panel:#fffdf7;--soft:#f5efe4;--line:#c8cfc4;--rule:#8f2f24;--root:#286f5c;--gold:#96722d;--marked:#2f574e;--danger:#9b2d2b;--shadow:0 18px 45px rgba(35,45,41,.13)}*{box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0;min-height:100vh;color:var(--ink);background:linear-gradient(rgba(255,255,255,.66),rgba(255,255,255,.44)),repeating-linear-gradient(90deg,rgba(40,111,92,.05) 0 1px,transparent 1px 58px),var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}.app-shell{width:min(1760px,calc(100% - 36px));margin:0 auto;padding:30px 0 44px}.hero{display:flex;justify-content:space-between;align-items:end;gap:24px;padding-bottom:20px;border-bottom:2px solid var(--rule)}.eyebrow{margin-bottom:8px;color:var(--rule);font-size:.75rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7vw,6rem);line-height:.92}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(96px,1fr));gap:10px;min-width:min(100%,560px)}.metric-strip span,.panel,.card{border:1px solid var(--line);border-radius:8px;background:rgba(255,253,247,.95)}.metric-strip span{padding:10px 12px;color:var(--muted);font-size:.8rem}.metric-strip strong{display:block;color:var(--ink);font-size:1.35rem;line-height:1}.top-nav{position:sticky;top:0;z-index:8;display:flex;gap:8px;flex-wrap:wrap;padding:16px 0;background:rgba(237,241,237,.94);backdrop-filter:blur(12px)}.top-nav button,.tabs button,.combat-controls button,.card button,.reader-top button,.quick-tags button,.danger,.icon-button{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 13px;color:var(--ink);background:var(--panel);font-weight:800}.top-nav button.active,.tabs button.active{color:#fffdf7;border-color:var(--rule);background:var(--rule)}.view{display:none}.view.active{display:block}.two-column{display:grid;grid-template-columns:380px 1fr;gap:18px;align-items:start}.panel{padding:16px;box-shadow:var(--shadow)}.sticky-panel{position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:hidden;display:grid;gap:14px}.panel-head h2,.reader-top h2,.combat-heading h2,.guide-card h2{font-family:Georgia,"Times New Roman",serif;font-size:1.65rem;line-height:1.05}.field{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase}.field input,select,.inline-fields input{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:var(--panel);outline:none}.field input:focus,select:focus,.inline-fields input:focus{border-color:var(--rule);box-shadow:0 0 0 3px rgba(143,47,36,.14)}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chapter-tree,.result-list,.compact-list{display:grid;gap:7px;overflow:auto;padding-right:4px}.chapter-tree button,.result-card,.compact-entry{display:grid;gap:3px;width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:var(--soft);text-align:left}.chapter-tree small,.result-card span,.compact-entry span,.muted,.small-note{color:var(--muted);font-size:.88rem;line-height:1.35}.chapter-tree .depth-1{margin-left:12px}.chapter-tree .depth-2{margin-left:24px}.chapter-tree .depth-3{margin-left:36px}.reader-panel{display:grid;gap:12px}.reader-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border-bottom:2px solid var(--rule);padding-bottom:12px}.page-text{display:grid;gap:8px;max-height:70vh;overflow:auto;padding:8px;color:#302b24;line-height:1.5}.page-text mark{background:#f2d38a;border-radius:4px;padding:0 2px}.quick-tags{display:flex;flex-wrap:wrap;gap:7px}.quick-tags button{min-height:32px;font-size:.84rem}.library-page{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}.filter-panel{position:sticky;top:76px;display:grid;gap:14px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,315px),1fr));gap:14px}.card{display:grid;gap:11px;padding:14px}.card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;line-height:1.05}.tag{width:fit-content;border-radius:999px;padding:4px 9px;color:#fffdf7;background:var(--root);font-size:.7rem;font-weight:850;text-transform:uppercase}.mini-stats,.wide-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0}.mini-stats div,.wide-stats div{border:1px solid var(--line);border-radius:8px;padding:8px 7px;background:rgba(247,241,229,.54);text-align:center}dt{color:var(--muted);font-size:.66rem;font-weight:900;text-transform:uppercase}dd{margin:2px 0 0;font-size:.95rem;font-weight:850}.compact{font-size:.9rem;line-height:1.38;color:#332d25}.card details{border-top:1px solid var(--line);padding-top:7px}.card summary{color:var(--rule);font-weight:900}.card button[data-add],.card button[data-page]{color:#fffdf7;border-color:var(--root);background:var(--root)}.combat-top{display:grid;gap:12px;margin-bottom:16px}.tabs,.combat-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.combat-controls .grow{flex:1;min-width:240px}.combat-layout{grid-template-columns:340px 1fr}.combat-panel{display:grid;gap:18px}.combat-heading{display:flex;justify-content:space-between;align-items:center}.danger{color:var(--danger)}.selected-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr));gap:18px}.empty-state{grid-column:1/-1;color:var(--muted)}.selected-card{border-top:8px solid var(--rule)}.selected-card header{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:2px solid var(--rule)}.icon-button{width:36px;padding:0;color:var(--danger);font-size:1.2rem}.selected-controls{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr)) auto;gap:8px;align-items:end}.selected-controls label{display:grid;gap:4px;color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase}.selected-controls input{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--panel)}.selected-controls span{display:grid;place-items:center;min-height:38px;border:1px solid var(--gold);border-radius:8px;padding:0 10px;color:var(--gold);font-weight:900}.wide-stats{grid-template-columns:.8fr 1fr .7fr 2fr}.wide-stats [data-attack]{font-size:.82rem;line-height:1.25}.tracks{display:grid;gap:10px;max-height:360px;overflow:auto}.track-row{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px;background:rgba(247,241,229,.62)}.track-row h4{color:var(--rule);font-size:.75rem;font-weight:900;text-transform:uppercase}.track-line{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.track-line span{width:50px;color:var(--muted);font-size:.78rem;font-weight:850}.track-dot{width:24px;height:24px;border:2px solid var(--line);border-radius:50%;padding:0;background:var(--panel)}.track-dot.marked{border-color:var(--marked);background:linear-gradient(45deg,transparent 41%,#fffdf7 42% 48%,transparent 49%),linear-gradient(-45deg,transparent 41%,#fffdf7 42% 48%,transparent 49%),var(--marked)}.detail-block{display:grid;gap:8px;margin-top:10px;font-size:.9rem;line-height:1.43}.detail-block strong{color:var(--rule);font-size:.74rem;text-transform:uppercase}.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px}.guide-card{display:grid;gap:12px}.guide-card dl{display:grid;gap:8px;margin:0}.guide-card dl div{border-left:4px solid var(--gold);padding:8px 10px;background:var(--soft);border-radius:8px}
@media(max-width:1120px){.two-column,.library-page{grid-template-columns:1fr}.sticky-panel,.filter-panel{position:static;max-height:none}.chapter-tree,.result-list,.compact-list{max-height:420px}.metric-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app-shell{width:min(100% - 24px,560px);padding-top:22px}.hero,.combat-heading,.selected-card header{display:grid;align-items:start}.top-nav{position:static}.metric-strip,.inline-fields,.mini-stats,.wide-stats,.selected-controls,.reader-top{grid-template-columns:1fr}.top-nav button,.tabs button,.combat-controls button{width:100%}}


/* Structured book navigation and reader formatting */
.sticky-panel{grid-template-rows:auto minmax(0,1fr)}
.chapter-tree{align-content:start;max-height:calc(100vh - 190px);overflow:auto;padding-right:6px}
.chapter-group{border:1px solid var(--line);border-radius:8px;background:rgba(245,239,228,.7);overflow:hidden}
.chapter-group + .chapter-group,.chapter-group + .chapter-link,.chapter-link + .chapter-group,.chapter-link + .chapter-link{margin-top:7px}
.chapter-group summary{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 11px;color:var(--ink);font-weight:850;cursor:pointer;list-style:none}
.chapter-group summary::-webkit-details-marker{display:none}
.chapter-group summary::before{content:'+';display:inline-grid;place-items:center;width:20px;height:20px;margin-right:7px;border:1px solid var(--line);border-radius:50%;color:var(--rule);font-weight:900;float:left}
.chapter-group[open] > summary::before{content:'-'}
.chapter-group summary small,.chapter-link small{color:var(--muted);font-weight:750}
.chapter-children{display:grid;gap:6px;padding:0 8px 8px 18px}
.chapter-link{display:grid;grid-template-columns:1fr auto;gap:8px;width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:var(--panel);text-align:left;color:var(--ink)}
.chapter-link.summary-page{margin:0 8px 8px 38px;width:calc(100% - 46px);background:#fffaf0;color:var(--rule);font-weight:850}
.chapter-link.depth-1{margin-left:8px;width:calc(100% - 8px)}
.chapter-link.depth-2{margin-left:18px;width:calc(100% - 18px)}
.chapter-link.depth-3{margin-left:28px;width:calc(100% - 28px)}
.page-text{display:block;padding:18px 22px;background:linear-gradient(90deg,rgba(143,47,36,.08),transparent 2px) 0 0/100% 100%;font-size:1rem;line-height:1.62}
.page-text h3{margin:18px 0 8px;padding-top:12px;border-top:1px solid var(--line);color:var(--rule);font-size:.86rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.page-text h3:first-child{margin-top:0;padding-top:0;border-top:0;font-family:Georgia,"Times New Roman",serif;color:var(--ink);font-size:2rem;letter-spacing:0;text-transform:none}
.page-text p{margin:0 0 10px;max-width:78ch}
.page-text .rule-line{border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px;padding:8px 10px;background:var(--soft);font-weight:750}
.page-text .feature-line{border-left:4px solid var(--root);padding:7px 10px;background:rgba(40,111,92,.08);border-radius:8px;font-weight:750}
.page-text .bullet{position:relative;margin-left:22px}
.page-text .bullet::before{content:'•';position:absolute;left:-18px;color:var(--rule);font-weight:900}
@media(max-width:1120px){.chapter-tree{max-height:420px}.sticky-panel{grid-template-rows:auto auto}}
@media(max-width:760px){.page-text{padding:14px}.page-text h3:first-child{font-size:1.55rem}.chapter-link.summary-page{margin-left:8px;width:calc(100% - 16px)}}


/* Dropdown summary alignment refinement */
.chapter-group summary{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center}
.chapter-group summary::before{content:'+';grid-column:1;display:grid;place-items:center;width:20px;height:20px;margin:0;border:1px solid var(--line);border-radius:50%;color:var(--rule);font-weight:900;float:none}
.chapter-group[open] > summary::before{content:'-'}
.chapter-group summary span{grid-column:2;min-width:0}
.chapter-group summary small{grid-column:3;white-space:nowrap}
.chapter-link.summary-page{font-size:.88rem;min-height:32px;padding:6px 9px}


/* Session mode and table-use refinements */
.session-layout{display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}.session-sidebar{position:sticky;top:76px;display:grid;gap:14px}.session-main{display:grid;gap:18px}.session-counters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.counter-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--soft)}.counter-card span,.counter-card small{color:var(--muted);font-size:.8rem;font-weight:800}.counter-card strong{font-size:2.2rem;line-height:1}.counter-card div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.counter-card button{min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-weight:900;font-size:1.2rem}.field textarea{min-height:130px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--ink);background:var(--panel);font:inherit;text-transform:none}.small-head{margin-top:4px}.pinned-list{display:grid;gap:8px}.pin-row{display:grid;grid-template-columns:1fr 34px;gap:6px}.pin-row button{border:1px solid var(--line);border-radius:8px;background:var(--soft);min-height:38px}.pin-row button:first-child{display:grid;gap:2px;text-align:left;padding:8px}.pin-row span{color:var(--muted);font-size:.84rem}.quick-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.quick-rule{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:14px;background:rgba(255,253,247,.95);box-shadow:var(--shadow)}.quick-rule h3{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}.quick-rule p:not(.eyebrow){color:#332d25;line-height:1.38}.quick-rule button{width:fit-content;min-height:34px;border:1px solid var(--root);border-radius:8px;padding:0 12px;background:var(--root);color:#fffdf7;font-weight:850}.session-card{border-top:8px solid var(--root)}.session-card header{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.session-card header>strong{display:grid;place-items:center;min-width:56px;height:40px;border:1px solid var(--gold);border-radius:8px;color:var(--gold)}.session-statline{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.session-statline span{border:1px solid var(--line);border-radius:8px;padding:7px;background:var(--soft);text-align:center;font-weight:850}.reader-actions{display:flex;gap:8px;justify-content:end}.count-tools{display:grid;grid-template-columns:38px 1fr 38px;gap:6px;align-items:end}.count-tools button{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-weight:900}.over-budget{border-color:var(--danger)!important;background:#fff1ef!important}.over-budget strong{color:var(--danger)!important}.minion-pool .track-dot{border-radius:8px}.track-dot{width:30px;height:30px}.track-line span{width:58px}.bottom-safe-space{display:none}
@media(max-width:1120px){.session-layout{grid-template-columns:1fr}.session-sidebar{position:static}.session-counters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.top-nav{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:20;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 10px;background:rgba(237,241,237,.98);border-top:1px solid var(--line)}.top-nav button{width:100%;min-height:44px;padding:0 8px;font-size:.9rem}.app-shell{padding-bottom:96px}.session-counters,.session-statline{grid-template-columns:1fr 1fr}.quick-rule-grid{grid-template-columns:1fr}.track-dot{width:34px;height:34px}.reader-actions{display:grid;grid-template-columns:1fr}.count-tools{grid-template-columns:44px 1fr 44px}.count-tools button,.counter-card button{min-height:44px}}


/* Session BP editing and conflict delete controls */
.session-bp-edit{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.session-bp-edit input{min-height:42px;font-size:1.05rem;font-weight:850}.combat-heading-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.combat-heading-actions button{min-height:40px}.counter-card.over-budget{border-color:var(--danger);background:#fff1ef}.counter-card.over-budget strong{color:var(--danger)}
@media(max-width:760px){.session-bp-edit{grid-template-columns:1fr}.combat-heading-actions{display:grid;grid-template-columns:1fr;justify-content:stretch}.combat-heading-actions button{width:100%}}

/* Local campaign tracker */
.campaign-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}.campaign-rail{position:sticky;top:76px;display:grid;gap:14px;padding:0 0 16px;overflow:hidden;background:#142029;color:#f8f3e9}.campaign-rail .panel-head,.campaign-rail .field,.campaign-type-nav,.campaign-backup,.cloud-sync-panel{padding:0 16px}.campaign-rail .eyebrow,.campaign-rail .field{color:#cbbf9c}.campaign-rail .field input{border-color:rgba(255,255,255,.14);background:#0f1820;color:#fffdf7}.campaign-cover{position:relative;height:156px;overflow:hidden;background:linear-gradient(180deg,#87b5c8 0%,#d5d8b4 58%,#577e76 100%)}.cover-sun{position:absolute;right:34px;top:28px;width:46px;height:46px;border-radius:50%;background:#f2c46f;box-shadow:0 0 28px rgba(242,196,111,.65)}.cover-island{position:absolute;left:34px;right:58px;bottom:46px;height:38px;border-radius:60% 45% 50% 35%;background:linear-gradient(135deg,#2f7f5e,#8ca34c);box-shadow:0 16px 0 -8px #5c4431,42px 24px 0 -13px #5c4431}.cover-island::before{content:'';position:absolute;left:22px;top:-38px;width:70px;height:60px;background:linear-gradient(145deg,#6f8f4a,#2f6f58);clip-path:polygon(0 100%,45% 0,100% 100%)}.cover-water{position:absolute;left:0;right:0;bottom:0;height:42px;background:repeating-linear-gradient(160deg,rgba(255,255,255,.45) 0 10px,rgba(255,255,255,0) 10px 28px),linear-gradient(180deg,#6d9fa0,#42656f)}.campaign-type-nav{display:grid;gap:7px}.campaign-type-nav button{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;width:100%;min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:0 11px;color:#dce3df;background:#101922;text-align:left;font-weight:850}.campaign-type-nav button.active{border-color:#d8b45f;background:#202b25;color:#fffdf7}.campaign-type-nav strong{display:grid;place-items:center;min-width:28px;height:24px;border-radius:999px;background:rgba(255,255,255,.12);font-size:.78rem}.campaign-backup{display:grid;grid-template-columns:1fr 1fr;gap:8px}.campaign-backup button,.import-button{display:grid;place-items:center;min-height:38px;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:0 10px;color:#fffdf7;background:#284b42;font-weight:850;font-size:.86rem}.import-button input{display:none}.cloud-sync-panel{display:grid;gap:9px;border-top:1px solid rgba(255,255,255,.12);padding-top:14px}.cloud-sync-panel .panel-head{padding:0}.sync-check{display:flex;gap:8px;align-items:center;color:#dce3df;font-size:.84rem;font-weight:850}.sync-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sync-actions button{min-height:36px;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:0 8px;color:#fffdf7;background:#284b42;font-size:.78rem;font-weight:850}.sync-status{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px;background:#101922;color:#cbbf9c;font-size:.78rem;line-height:1.35}.sync-status.ok{border-color:#44775e;color:#d8f2df}.sync-status.warn{border-color:#a86b57;color:#ffe0d4}.campaign-main{display:grid;gap:18px}.campaign-dashboard{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:18px;align-items:end;background:linear-gradient(135deg,rgba(255,253,247,.98),rgba(245,239,228,.9))}.campaign-dashboard h2,.campaign-detail h2,.campaign-list-panel h2{font-family:Georgia,"Times New Roman",serif;font-size:1.75rem;line-height:1.05}.campaign-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:8px}.campaign-stats span{border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:rgba(255,253,247,.78);color:var(--muted);font-size:.78rem;font-weight:850}.campaign-stats strong{display:block;color:var(--ink);font-size:1.35rem}.campaign-workbench{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.campaign-list-panel,.campaign-detail{display:grid;gap:14px}.list-head,.detail-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.list-head button,.relation-editor button{min-height:38px;border:1px solid var(--root);border-radius:8px;padding:0 13px;color:#fffdf7;background:var(--root);font-weight:850}.campaign-list{display:grid;gap:8px;max-height:62vh;overflow:auto;padding-right:4px}.campaign-row{display:grid;gap:6px;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--soft);text-align:left}.campaign-row.active{border-color:var(--rule);box-shadow:inset 4px 0 0 var(--rule);background:#fffaf0}.campaign-row strong{font-family:Georgia,"Times New Roman",serif;font-size:1.12rem}.campaign-row small,.campaign-row em{color:var(--muted);font-size:.84rem;font-style:normal}.campaign-row .tag{font-size:.62rem}.detail-top{padding-bottom:12px;border-bottom:2px solid var(--rule)}.detail-top .danger:disabled{opacity:.45;cursor:not-allowed}.campaign-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.campaign-form-grid .full{grid-column:1/-1}.campaign-form-grid textarea{min-height:92px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--panel);color:var(--ink);font:inherit;text-transform:none}.campaign-notes-toggle{border:1px solid var(--line);border-radius:8px;background:var(--soft);overflow:hidden}.campaign-notes-toggle summary{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;min-height:44px;padding:0 12px;color:var(--ink);font-weight:900;cursor:pointer;list-style:none}.campaign-notes-toggle summary::-webkit-details-marker{display:none}.campaign-notes-toggle summary::before{content:'+';display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--line);border-radius:50%;color:var(--rule);background:var(--panel);font-weight:900}.campaign-notes-toggle[open] summary::before{content:'-'}.campaign-notes-toggle summary small{color:var(--muted);font-size:.78rem;font-weight:850}.campaign-notes-fields{display:grid;gap:12px;padding:0 12px 12px}.relations-panel{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:14px}.relation-editor{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) auto;gap:8px}.relation-editor select,.relation-editor input{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--panel);color:var(--ink)}.relation-list{display:grid;gap:8px}.relation-row{display:grid;grid-template-columns:1fr 34px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--soft)}.relation-row div{display:grid;gap:2px}.relation-row span{color:var(--muted);font-size:.86rem}.relation-row button{min-height:34px;border:1px solid var(--line);border-radius:8px;color:var(--danger);background:var(--panel);font-weight:900}
.campaign-row{grid-template-columns:64px 1fr;align-items:center}.campaign-row-copy{display:grid;gap:5px;min-width:0}.campaign-thumb{display:grid;place-items:center;width:64px;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:#e6dfcf;color:var(--muted);font-size:1.4rem;font-weight:900;background-repeat:no-repeat}.campaign-thumb.has-image{background-color:#1c2524;color:transparent}.image-editor{display:grid;grid-template-columns:1fr;gap:12px}.entity-image-preview{display:grid;place-items:center;min-height:230px;border:1px dashed var(--line);border-radius:8px;background:linear-gradient(135deg,#efe7d8,#d9e0d5);color:var(--muted);font-weight:850;text-align:center;background-repeat:no-repeat}.entity-image-preview.has-image{border-style:solid;background-color:#151b1d}.image-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;align-content:start}.image-upload{display:grid;place-items:center;min-height:38px;border:1px solid var(--root);border-radius:8px;padding:0 10px;color:#fffdf7;background:var(--root);font-weight:850;text-align:center;line-height:1.05}.image-upload input{display:none}.image-tools .danger{min-height:38px;white-space:normal;line-height:1.05}.image-tools .field input[type=range]{padding:0}.image-tools .field select{min-height:38px}
@media(max-width:1120px){.campaign-layout,.campaign-workbench,.campaign-dashboard,.image-editor{grid-template-columns:1fr}.campaign-rail{position:static}.campaign-list{max-height:420px}}
@media(max-width:760px){.campaign-form-grid,.relation-editor,.campaign-backup,.image-tools{grid-template-columns:1fr}.campaign-rail{border-radius:8px}.campaign-cover{height:128px}.list-head,.detail-top{display:grid}.campaign-stats{grid-template-columns:repeat(2,1fr)}.campaign-row{grid-template-columns:56px 1fr}.campaign-thumb{width:56px}.entity-image-preview{min-height:190px}}

/* Wiki, maps, clocks, and session runner */
.detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.detail-actions button,.clocks-panel button,.timeline-panel button,.map-upload{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--panel);font-weight:850}.detail-actions #pinCampaignEntity,.detail-actions #applyEntityTemplate,.clocks-panel .list-head button,.timeline-panel .list-head button,.map-upload{border-color:var(--root);background:var(--root);color:#fffdf7}.wiki-panel,.adversary-links-panel,.clocks-panel,.timeline-panel,.map-panel{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:14px}.wiki-preview{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--soft);line-height:1.45}.wiki-preview h3{margin-top:4px;color:var(--rule);font-size:.75rem;text-transform:uppercase}.wiki-link{display:inline;min-height:0;border:0;border-radius:5px;padding:1px 5px;color:#fffdf7;background:var(--root);font-weight:850}.wiki-missing{border-radius:5px;padding:1px 5px;background:#fff1ef;color:var(--danger);font-weight:850}.backlink-list,.adversary-link-list,.clock-list,.timeline-list,.map-pin-list,.runner-list{display:grid;gap:8px}.backlink-row,.runner-row{display:grid;gap:2px;width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:var(--soft);text-align:left}.backlink-row span,.runner-row span{color:var(--muted);font-size:.84rem}.runner-row.active{border-color:var(--rule);box-shadow:inset 4px 0 0 var(--rule)}.adversary-link-editor{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:8px}.adversary-link-editor input,.adversary-link-editor select{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--panel);color:var(--ink)}.adversary-link-editor button,.adversary-link-row button{min-height:38px;border:1px solid var(--root);border-radius:8px;padding:0 12px;color:#fffdf7;background:var(--root);font-weight:850}.adversary-link-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto 34px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--soft)}.adversary-link-row div{display:grid;gap:2px}.adversary-link-row span{color:var(--muted);font-size:.86rem}.adversary-link-row button:last-child{border-color:var(--line);color:var(--danger);background:var(--panel);font-weight:900}.clock-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 34px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--soft)}.clock-row input,.timeline-row input,.timeline-row textarea,.map-pin-row input,.map-pin-row select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--panel);color:var(--ink);font:inherit}.clock-row small{display:block;margin-top:4px;color:var(--muted);font-weight:850}.clock-dots{display:flex;flex-wrap:wrap;gap:7px}.clock-row>button,.timeline-row button,.map-pin-row button{min-height:34px;border:1px solid var(--line);border-radius:8px;color:var(--danger);background:var(--panel);font-weight:900}.timeline-row{display:grid;grid-template-columns:150px 1fr 34px;gap:8px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--soft)}.timeline-row textarea{min-height:58px;resize:vertical}.map-upload{display:grid;place-items:center}.map-upload input{display:none}.map-canvas{position:relative;display:grid;place-items:center;min-height:320px;border:1px dashed var(--line);border-radius:8px;background:linear-gradient(135deg,#e9e2d2,#dce5db);overflow:hidden;color:var(--muted);font-weight:850;background-size:contain;background-position:center;background-repeat:no-repeat}.map-canvas.has-map{border-style:solid;background-color:#151b1d}.map-pin{position:absolute;width:24px;height:24px;transform:translate(-50%,-50%);border:2px solid #fffdf7;border-radius:50%;background:var(--rule);box-shadow:0 4px 14px rgba(0,0,0,.25)}.map-pin-row{display:grid;grid-template-columns:1fr 1fr 34px;gap:8px;align-items:center}.session-runner{display:grid;gap:14px}.session-runner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.runner-clock{display:grid;gap:7px;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--soft)}
@media(max-width:1120px){.session-runner-grid{grid-template-columns:1fr}.timeline-row,.map-pin-row,.clock-row,.adversary-link-editor,.adversary-link-row{grid-template-columns:1fr}.detail-actions{justify-content:start}}
@media(max-width:760px){.detail-actions{display:grid;grid-template-columns:1fr}.detail-actions button{width:100%}.map-canvas{min-height:220px}}

/* Phone-first refinements for iPhone and small tablets */
@media(max-width:820px){
  html{scroll-padding-bottom:92px}
  body{background:var(--paper);font-size:15px;-webkit-text-size-adjust:100%}
  button,input,select,textarea{font-size:16px}
  .app-shell{width:100%;padding:12px 10px 104px}
  .hero{position:sticky;top:0;z-index:18;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin:-12px -10px 0;padding:10px 12px;border-bottom:1px solid var(--line);background:rgba(237,241,237,.96);backdrop-filter:blur(14px)}
  .hero .eyebrow{display:none}
  .hero h1{font-size:1.8rem;line-height:1}
  .metric-strip{display:flex;gap:6px;min-width:0;max-width:52vw;overflow:auto;padding-bottom:2px;scrollbar-width:none}
  .metric-strip::-webkit-scrollbar,.top-nav::-webkit-scrollbar{display:none}
  .metric-strip span{flex:0 0 auto;min-width:70px;padding:7px 8px;font-size:.68rem}
  .metric-strip strong{font-size:1rem}
  .top-nav{position:sticky;top:58px;z-index:17;display:flex;flex-wrap:nowrap;gap:7px;margin:0 -10px 10px;padding:8px 10px;border-bottom:1px solid var(--line);background:rgba(237,241,237,.96);overflow-x:auto;backdrop-filter:blur(14px)}
  .top-nav button{flex:0 0 auto;width:auto;min-height:38px;padding:0 12px;border-radius:999px;font-size:.86rem;white-space:nowrap}
  .panel,.card{border-radius:8px;box-shadow:0 8px 22px rgba(35,45,41,.08)}
  .campaign-layout,.campaign-workbench,.campaign-dashboard,.session-layout,.two-column,.library-page,.combat-layout{display:grid;grid-template-columns:1fr;gap:10px}
  .campaign-rail,.session-sidebar,.sticky-panel,.filter-panel{position:static;max-height:none;border-radius:8px}
  .campaign-rail{gap:11px;padding-bottom:12px}
  .campaign-cover{height:104px}
  .campaign-rail .panel-head h2{font-size:1.28rem}
  .campaign-type-nav{display:flex;gap:7px;overflow:auto;padding-bottom:2px}
  .campaign-type-nav button{flex:0 0 auto;width:auto;min-height:38px;border-radius:999px}
  .campaign-type-nav button span{white-space:nowrap}
  .campaign-backup,.sync-actions{grid-template-columns:1fr 1fr}
  .campaign-dashboard{align-items:start;padding:12px}
  .campaign-dashboard h2,.campaign-detail h2,.campaign-list-panel h2,.session-runner h2{font-size:1.35rem}
  .campaign-stats{display:flex;gap:7px;overflow:auto}
  .campaign-stats span{flex:0 0 88px;padding:8px}
  .campaign-list{max-height:38vh}
  .campaign-row{grid-template-columns:48px 1fr;padding:8px}
  .campaign-thumb{width:48px}
  .campaign-form-grid,.relation-editor,.adversary-link-editor,.adversary-link-row,.clock-row,.timeline-row,.map-pin-row,.image-tools{grid-template-columns:1fr}
  .detail-top,.list-head,.combat-heading,.selected-card header{display:grid;gap:10px}
  .detail-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
  .detail-actions button{width:100%;padding:0 8px}
  .entity-image-preview{min-height:170px}
  .wiki-panel,.adversary-links-panel,.clocks-panel,.timeline-panel,.map-panel,.relations-panel{gap:8px;padding-top:12px}
  .map-canvas{min-height:210px}
  .session-counters,.session-bp-edit,.session-runner-grid,.quick-rule-grid,.selected-grid,.card-grid,.guide-grid{grid-template-columns:1fr}
  .counter-card{padding:10px}
  .counter-card strong{font-size:1.9rem}
  .quick-rule{padding:12px}
  .combat-controls{display:grid;grid-template-columns:1fr;gap:8px}
  .combat-controls .grow{min-width:0}
  .tabs{display:flex;flex-wrap:nowrap;overflow:auto;padding-bottom:3px}
  .tabs button{flex:0 0 auto;width:auto}
  .selected-controls{grid-template-columns:1fr}
  .wide-stats,.mini-stats{grid-template-columns:1fr 1fr}
  .tracks{max-height:none}
  .track-dot{width:34px;height:34px}
  .reader-top{grid-template-columns:1fr;gap:8px}
  .reader-top button,.reader-actions button{width:100%}
  .page-text{max-height:none;padding:12px;font-size:.97rem}
  .page-text h3:first-child{font-size:1.35rem}
  .chapter-tree,.result-list,.compact-list{max-height:42vh}
}

@media(max-width:430px){
  .hero{grid-template-columns:1fr}
  .metric-strip{max-width:100%}
  .top-nav{top:91px}
  .campaign-backup,.sync-actions,.detail-actions,.session-counters{grid-template-columns:1fr}
  .wide-stats,.mini-stats{grid-template-columns:1fr}
  .session-statline{grid-template-columns:1fr 1fr}
}

/* Streamlined 2026 campaign cockpit */
:root{
  --paper:#eef1ed;
  --panel:#fffdf8;
  --soft:#f4efe4;
  --line:#c9d1c7;
  --ink:#1e211d;
  --muted:#66706a;
  --rule:#9a382e;
  --root:#24695d;
  --gold:#a9792b;
  --sky:#315f7a;
  --shadow:0 14px 34px rgba(34,42,38,.1);
}
body{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.2)),linear-gradient(110deg,rgba(36,105,93,.08),transparent 34%,rgba(154,56,46,.08) 78%),var(--paper)}
.hero{align-items:center;margin-bottom:2px;padding:18px 22px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#17232a,#223b35 58%,#463822);color:#fffdf8;box-shadow:var(--shadow)}
.hero .eyebrow{color:#dec17a}
.hero h1{font-size:clamp(2.5rem,5.4vw,5rem)}
.metric-strip span{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#dce4df}
.metric-strip strong{color:#fffdf8}
.metric-strip span.over-budget{border-color:#f0a092;background:rgba(154,56,46,.28)}
.top-nav{top:10px;margin:10px 0 14px;padding:8px;border:1px solid var(--line);border-radius:8px;background:rgba(246,248,244,.92)}
.top-nav button{border-radius:6px;background:transparent}
.top-nav button.active{background:#17232a;border-color:#17232a;color:#fffdf8}
.campaign-rail{background:#17232a}
.campaign-cover{height:124px;background:linear-gradient(180deg,#80a9b8 0%,#dfc68a 57%,#476b62 100%)}
.campaign-type-nav{grid-template-columns:1fr 1fr}
.campaign-type-nav button{min-height:40px;border-radius:6px;background:#10181e}
.campaign-type-nav button.active{background:#2d3b31;border-color:#dec17a}
.campaign-quicknav{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px}
.campaign-quicknav button{min-height:38px;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:0 10px;background:#243b44;color:#fffdf8;font-size:.82rem;font-weight:850}
.campaign-quicknav button:first-child{grid-column:1/-1;background:#8f2f24}
.campaign-dashboard{grid-template-columns:280px 1fr;padding:18px;border-color:#d8d0bf;background:linear-gradient(135deg,#fffdf8,#f5eee1)}
.campaign-stats{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
.campaign-stats span{border-radius:6px;background:#fffaf0}
.campaign-command{display:grid;gap:14px;border-color:#d6c7aa;background:linear-gradient(135deg,#fffdf8 0%,#f7f1e7 100%)}
.command-head{display:flex;justify-content:space-between;gap:12px;align-items:start}
.command-head h2{font-family:Georgia,"Times New Roman",serif;font-size:1.75rem;line-height:1.05}
.command-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.command-actions button,.command-button,.prep-panel button{min-height:38px;border:1px solid var(--root);border-radius:6px;padding:0 12px;background:var(--root);color:#fffdf8;font-weight:850}
.campaign-command-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.command-card{display:grid;grid-template-rows:auto 1fr auto;gap:10px;min-height:230px;border:1px solid var(--line);border-radius:8px;padding:12px;background:rgba(255,253,248,.82)}
.command-card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.28rem;line-height:1.05}
.command-list{display:grid;gap:7px;align-content:start}
.command-row{display:grid;gap:2px;width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 9px;background:var(--soft);color:var(--ink);text-align:left}
.command-row strong{font-size:.92rem}
.command-row span{color:var(--muted);font-size:.78rem;line-height:1.25}
.command-button{width:100%;background:#315f7a;border-color:#315f7a}
.campaign-workbench{grid-template-columns:340px minmax(0,1fr)}
.campaign-list-panel,.campaign-detail{box-shadow:0 10px 24px rgba(34,42,38,.08)}
.campaign-row{border-radius:6px;background:#f7f0e4}
.campaign-row.active{background:#fffaf0}
.detail-top{border-bottom-color:#c89c4b}
.prep-panel{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:14px}
.prep-panel textarea{min-height:230px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#17232a;color:#eef4ef;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical}
.prep-panel textarea::placeholder{color:#95a49c}
.rule-lenses{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rule-lenses button{display:grid;gap:1px;min-height:54px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#17232a;color:#fffdf8;text-align:left}
.rule-lenses strong{font-size:.9rem}
.rule-lenses span{color:#cfd8d2;font-size:.76rem}
.page-text{font-size:1.04rem;line-height:1.68;background:linear-gradient(90deg,rgba(154,56,46,.08),transparent 2px) 0 0/100% 100%,#fffdf8}
.page-text h3{margin:22px 0 9px;color:#8f2f24;font-size:.9rem;letter-spacing:.05em}
.page-text h3:first-child{font-size:2.1rem;color:#1e211d}
.page-text h4{margin:18px 0 8px;color:#315f7a;font-family:Georgia,"Times New Roman",serif;font-size:1.22rem;line-height:1.12}
.page-text p{max-width:82ch}
.page-text .keyword{color:#17232a;font-weight:900}
.page-text .rule-line{border-left-color:#9a382e;background:#fff3e0}
.page-text .feature-line{border-left-color:#24695d;background:#eaf4ef}
.result-card{border-radius:6px;background:#f7f0e4}
.result-card:hover,.command-row:hover,.campaign-row:hover,.chapter-link:hover{border-color:#c89c4b;background:#fffaf0}
.card,.panel{border-radius:8px}
@media(max-width:1320px){.campaign-command-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.campaign-workbench{grid-template-columns:320px minmax(0,1fr)}}
@media(max-width:1120px){.campaign-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-dashboard{grid-template-columns:1fr}.campaign-workbench{grid-template-columns:1fr}.campaign-type-nav{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:820px){
  .hero{margin:-12px -10px 0;border-radius:0;border-left:0;border-right:0}
  .top-nav{position:sticky;top:58px;bottom:auto;left:auto;right:auto;display:flex;flex-wrap:nowrap;margin:0 -10px 10px;border-left:0;border-right:0;border-radius:0}
  .app-shell,.view,.campaign-layout,.campaign-rail,.campaign-main,.campaign-command,.campaign-workbench,.campaign-detail,.campaign-list-panel{min-width:0;max-width:100%;overflow-wrap:anywhere}
  .campaign-command-grid,.campaign-type-nav,.campaign-quicknav,.rule-lenses{display:grid;grid-template-columns:1fr}
  .command-head{display:grid}
  .command-actions{display:grid;grid-template-columns:repeat(3,1fr);justify-content:stretch}
  .command-actions button{padding:0 8px}
  .command-card{min-height:0}
  .prep-panel textarea{min-height:190px}
}
@media(max-width:430px){.command-actions{grid-template-columns:1fr}.page-text h3:first-child{font-size:1.45rem}}

/* 2026-06 visual polish and campaign manual */
:root{
  --wash:#fbfaf4;
  --focus:0 0 0 3px rgba(199,154,75,.26);
}
button{transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}
button:hover{transform:translateY(-1px)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}
.panel,.card{background:linear-gradient(180deg,rgba(255,253,248,.98),rgba(255,250,240,.94));border-color:#d7d0c2}
.hero{position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08) 48%,transparent);pointer-events:none}
.metric-strip span{box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.top-nav{box-shadow:0 8px 24px rgba(34,42,38,.08)}
.top-nav button{display:inline-grid;place-items:center}
.campaign-cover{isolation:isolate}
.campaign-cover::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.35),transparent 28%),linear-gradient(180deg,transparent,rgba(20,32,41,.16));pointer-events:none}
.campaign-rail{box-shadow:0 18px 36px rgba(18,28,34,.22)}
.campaign-type-nav button,.campaign-quicknav button,.sync-actions button,.campaign-backup button,.import-button{box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.campaign-type-nav button:hover,.campaign-quicknav button:hover{border-color:#dec17a;background:#1c2b32}
.campaign-dashboard{position:relative;overflow:hidden}
.campaign-dashboard::after{content:'';position:absolute;right:18px;bottom:-34px;width:180px;height:110px;border:1px solid rgba(154,56,46,.18);border-radius:50%;transform:rotate(-12deg);pointer-events:none}
.campaign-stats span{box-shadow:0 6px 16px rgba(34,42,38,.06)}
.command-card{position:relative;overflow:hidden}
.command-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--rule),var(--gold))}
.command-card h3,.manual-card h3,.manual-flow-card h3{color:#1f241f}
.command-row{box-shadow:0 4px 10px rgba(34,42,38,.04)}
.command-row:hover{box-shadow:0 8px 18px rgba(34,42,38,.08)}
.campaign-list-panel{background:linear-gradient(180deg,#fffdf8,#f7f1e6)}
.campaign-row{box-shadow:0 4px 12px rgba(34,42,38,.04)}
.campaign-row.active{box-shadow:inset 4px 0 0 var(--rule),0 10px 20px rgba(154,56,46,.08)}
.campaign-thumb{background:linear-gradient(135deg,#e9e0ce,#f8f2e5)}
.campaign-detail{background:linear-gradient(180deg,#fffdf8,#f9f4ea)}
.entity-image-preview{background:linear-gradient(135deg,#f0e9dc,#dfe9e1)}
.wiki-preview,.relation-row,.runner-row,.backlink-row,.clock-row,.timeline-row,.map-pin-row,.track-row{background:linear-gradient(180deg,#f8f2e8,#f3eadc)}
.prep-panel textarea{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 24px rgba(18,28,34,.1)}
.manual-layout{display:grid;gap:18px}
.manual-hero{display:grid;gap:10px;min-height:220px;align-content:end;padding:26px;background:linear-gradient(135deg,#17232a,#25443d 58%,#6f4d22);color:#fffdf8;overflow:hidden;position:relative}
.manual-hero::after{content:'';position:absolute;right:24px;top:22px;width:220px;height:220px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:40px 34px 0 -20px rgba(255,255,255,.08);pointer-events:none}
.manual-hero .eyebrow{color:#dec17a}
.manual-hero h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,4.2rem);line-height:.95}
.manual-hero p:not(.eyebrow){max-width:760px;color:#edf4ef;font-size:1.08rem;line-height:1.45}
.manual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.manual-card{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;min-height:210px}
.manual-step{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#17232a;color:#fffdf8;font-weight:900}
.manual-card p:not(.eyebrow),.manual-flow-card li{color:#3c3a33;line-height:1.45}
.manual-card h3,.manual-flow-card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.34rem;line-height:1.08;margin-bottom:8px}
.manual-flow{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:14px}
.manual-flow-card{display:grid;gap:10px}
.manual-flow-card ol{display:grid;gap:9px;margin:0;padding-left:22px}
.manual-flow-card li::marker{color:var(--rule);font-weight:900}
@media(max-width:1320px){.manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-flow{grid-template-columns:1fr}}
@media(max-width:820px){.manual-hero{min-height:190px;padding:18px}.manual-grid,.manual-flow{grid-template-columns:1fr}.manual-card{min-height:0}.manual-hero h2{font-size:2rem}}

/* Theme manager and fantasy skins */
body{
  background:var(--fantasy-background,linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.2)),linear-gradient(110deg,rgba(36,105,93,.08),transparent 34%,rgba(154,56,46,.08) 78%),var(--paper));
  color:var(--ink)
}
body[data-background="parchment"]{--fantasy-background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.16)),repeating-linear-gradient(90deg,rgba(92,70,42,.055) 0 1px,transparent 1px 54px),repeating-linear-gradient(0deg,rgba(92,70,42,.035) 0 1px,transparent 1px 54px),var(--paper)}
body[data-background="dungeon"]{--fantasy-background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(0,0,0,.05)),linear-gradient(45deg,rgba(0,0,0,.06) 25%,transparent 25% 75%,rgba(0,0,0,.06) 75%),linear-gradient(45deg,rgba(0,0,0,.06) 25%,transparent 25% 75%,rgba(0,0,0,.06) 75%),var(--paper);background-size:auto,46px 46px,46px 46px,auto;background-position:0 0,0 0,23px 23px,0 0}
body[data-background="forest"]{--fantasy-background:radial-gradient(circle at 12% 8%,rgba(208,168,75,.18),transparent 30%),radial-gradient(circle at 82% 12%,rgba(141,79,138,.16),transparent 28%),linear-gradient(135deg,rgba(47,121,87,.18),transparent 45%),var(--paper)}
body[data-background="night"]{--fantasy-background:radial-gradient(circle at 18% 12%,rgba(185,166,106,.16) 0 2px,transparent 3px),radial-gradient(circle at 70% 24%,rgba(255,255,255,.12) 0 1px,transparent 2px),linear-gradient(150deg,rgba(64,95,119,.18),transparent 42%,rgba(124,61,92,.16)),var(--paper);background-size:auto,74px 74px,auto,auto}
body[data-background="embers"]{--fantasy-background:radial-gradient(circle at 20% 15%,rgba(210,154,46,.25),transparent 26%),radial-gradient(circle at 82% 22%,rgba(166,64,36,.22),transparent 30%),linear-gradient(145deg,rgba(49,83,69,.12),transparent 45%),var(--paper)}
body[data-contrast="soft"]{--shadow:0 10px 24px rgba(34,42,38,.07)}
body[data-contrast="bold"]{--shadow:0 18px 42px rgba(0,0,0,.2)}
.hero,.manual-hero,.settings-hero{background:var(--hero-bg);color:#fffdf8}
.campaign-rail{background:var(--rail-bg);color:#fffdf8}
.top-nav{background:var(--nav-bg)}
.top-nav button.active{background:var(--rule);border-color:var(--rule);color:#fffdf8}
.panel,.card,.campaign-list-panel,.campaign-detail,.command-card,.manual-card,.manual-flow-card,.settings-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,white 4%),color-mix(in srgb,var(--panel) 90%,var(--soft) 10%));border-color:var(--line);color:var(--ink)}
.campaign-dashboard,.campaign-command{background:linear-gradient(135deg,var(--panel),var(--soft))}
.campaign-stats span,.campaign-row,.result-card,.chapter-link,.wiki-preview,.relation-row,.runner-row,.backlink-row,.clock-row,.timeline-row,.map-pin-row,.track-row{background:color-mix(in srgb,var(--soft) 82%,var(--panel) 18%);border-color:var(--line);color:var(--ink)}
.campaign-row.active,.result-card:hover,.command-row:hover,.campaign-row:hover,.chapter-link:hover{background:color-mix(in srgb,var(--panel) 78%,var(--gold) 22%);border-color:var(--gold)}
.field input,.field textarea,select,.inline-fields input,.relation-editor input,.relation-editor select,.adversary-link-editor input,.adversary-link-editor select,.clock-row input,.timeline-row input,.timeline-row textarea,.map-pin-row input,.map-pin-row select{background:var(--panel);border-color:var(--line);color:var(--ink)}
.page-text{background:linear-gradient(90deg,color-mix(in srgb,var(--rule) 12%,transparent),transparent 2px) 0 0/100% 100%,var(--panel);color:var(--ink)}
.page-text h3,.page-text .rule-line strong,.eyebrow{color:var(--rule)}
.page-text h4{color:var(--sky)}
.page-text .keyword{color:var(--root)}
.page-text .rule-line{background:color-mix(in srgb,var(--gold) 18%,var(--panel) 82%);border-left-color:var(--rule)}
.page-text .feature-line{background:color-mix(in srgb,var(--root) 12%,var(--panel) 88%);border-left-color:var(--root)}
.tag,.card button[data-add],.card button[data-page],.command-actions button,.command-button,.prep-panel button,.detail-actions #pinCampaignEntity,.detail-actions #applyEntityTemplate,.clocks-panel .list-head button,.timeline-panel .list-head button,.map-upload,.image-upload,.relation-editor button,.adversary-link-editor button,.adversary-link-row button{background:var(--root);border-color:var(--root);color:#fffdf8}
.command-card::before{background:linear-gradient(180deg,var(--rule),var(--gold))}
.manual-step{background:var(--rule)}
.settings-layout{display:grid;gap:18px}
.settings-hero{display:flex;justify-content:space-between;gap:18px;align-items:end;min-height:220px;padding:26px;position:relative;overflow:hidden}
.settings-hero::after{content:'';position:absolute;right:-50px;top:-70px;width:260px;height:260px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:-44px 72px 0 -38px rgba(255,255,255,.12);pointer-events:none}
.settings-hero h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,4.4rem);line-height:.95}
.settings-hero p:not(.eyebrow){max-width:720px;color:#edf4ef;line-height:1.45}
.theme-live-card{display:grid;gap:5px;min-width:240px;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:14px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px)}
.theme-live-card span{color:#dec17a;font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.theme-live-card strong{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem}
.settings-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;align-items:start}
.settings-panel{display:grid;gap:14px}
.settings-data-panel{grid-column:1/-1}
.theme-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px}
.theme-preset{display:grid;gap:8px;min-height:132px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--soft);color:var(--ink);text-align:left}
.theme-preset.active{border-color:var(--gold);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--gold) 48%,transparent)}
.theme-preset strong{font-family:Georgia,"Times New Roman",serif;font-size:1.18rem}
.theme-preset small{color:var(--muted);font-weight:750;line-height:1.3}
.theme-swatches{display:flex;gap:5px}
.theme-swatches i{display:block;width:28px;height:28px;border:1px solid rgba(0,0,0,.12);border-radius:50%}
.theme-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.theme-controls input[type=color]{width:100%;height:42px;padding:4px}
.settings-actions{display:flex;gap:8px;flex-wrap:wrap}
.settings-actions button{min-height:40px;border:1px solid var(--root);border-radius:8px;padding:0 13px;background:var(--root);color:#fffdf8;font-weight:850}
.settings-data-panel .campaign-backup{padding:0;max-width:520px}
.settings-data-panel .cloud-sync-panel{padding:14px 0 0;border-top:1px solid var(--line)}
.settings-data-panel .cloud-sync-panel .panel-head{padding:0}
.settings-data-panel .sync-status{background:color-mix(in srgb,var(--soft) 80%,var(--panel) 20%);border-color:var(--line);color:var(--muted)}
.settings-data-panel .sync-status.ok{border-color:var(--root);color:var(--root)}
.settings-data-panel .sync-status.warn{border-color:var(--rule);color:var(--rule)}
body[data-theme="shadow"] .panel,body[data-theme="shadow"] .card,body[data-theme="shadow"] .campaign-list-panel,body[data-theme="shadow"] .campaign-detail,body[data-theme="shadow"] .command-card,body[data-theme="shadow"] .manual-card,body[data-theme="shadow"] .manual-flow-card,body[data-theme="shadow"] .settings-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 88%,white 4%),var(--panel))}
body[data-theme="shadow"] .campaign-stats span,body[data-theme="shadow"] .campaign-row,body[data-theme="shadow"] .result-card,body[data-theme="shadow"] .chapter-link,body[data-theme="shadow"] .wiki-preview,body[data-theme="shadow"] .relation-row,body[data-theme="shadow"] .runner-row,body[data-theme="shadow"] .backlink-row,body[data-theme="shadow"] .clock-row,body[data-theme="shadow"] .timeline-row,body[data-theme="shadow"] .map-pin-row,body[data-theme="shadow"] .track-row{background:var(--soft)}
body[data-theme="shadow"] .muted,body[data-theme="shadow"] .small-note,body[data-theme="shadow"] .campaign-row small,body[data-theme="shadow"] .campaign-row em,body[data-theme="shadow"] .runner-row span,body[data-theme="shadow"] .backlink-row span{color:var(--muted)}
@media(max-width:1120px){.settings-grid{grid-template-columns:1fr}.settings-hero{display:grid;align-items:start}.theme-live-card{min-width:0}}
@media(max-width:820px){.settings-hero{min-height:190px;padding:18px}.settings-hero h2{font-size:2rem}.theme-controls{grid-template-columns:1fr}.settings-actions{display:grid}.settings-actions button{width:100%}}

/* Two-section navigation and settings guide */
.main-nav{align-items:center;gap:10px}
.main-nav>button:not(.settings-gear){min-width:190px;min-height:48px;font-family:Georgia,"Times New Roman",serif;font-size:1.28rem}
.settings-gear{margin-left:auto;display:grid!important;grid-template-columns:auto auto;gap:7px;align-items:center;min-width:48px;min-height:48px;padding:0 14px!important}
.settings-gear span{font-size:1.25rem;line-height:1}
.settings-gear em{font-style:normal;font-size:.86rem}
.section-nav{display:none;gap:8px;align-items:center;margin:-6px 0 14px;padding:8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 90%,transparent);box-shadow:0 8px 20px rgba(34,42,38,.06)}
.section-nav.active{display:flex}
.section-nav button{min-height:38px;border:1px solid var(--line);border-radius:999px;padding:0 14px;background:var(--panel);color:var(--ink);font-weight:850}
.section-nav button.active{border-color:var(--root);background:var(--root);color:#fffdf8}
.settings-manual-panel,.visual-tips-panel{grid-column:1/-1}
.settings-manual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.settings-manual-grid div,.visual-tip-list p{display:grid;gap:5px;border:1px solid var(--line);border-radius:8px;padding:12px;background:color-mix(in srgb,var(--soft) 84%,var(--panel) 16%)}
.settings-manual-grid strong,.visual-tip-list strong{color:var(--rule)}
.settings-manual-grid span,.visual-tip-list p{color:var(--muted);line-height:1.4}
.visual-tip-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px}
@media(max-width:1120px){.settings-manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-nav>button:not(.settings-gear){min-width:150px}}
@media(max-width:820px){
  .main-nav{display:grid;grid-template-columns:1fr 1fr auto!important;gap:7px}
  .main-nav>button:not(.settings-gear){min-width:0;width:100%;min-height:44px;font-size:1rem}
  .settings-gear{margin-left:0;width:46px;padding:0!important;grid-template-columns:1fr;place-items:center}
  .settings-gear em{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .section-nav{display:none;margin:0 -10px 10px;border-left:0;border-right:0;border-radius:0;overflow:auto}
  .section-nav.active{display:flex}
  .section-nav button{flex:0 0 auto;white-space:nowrap}
  .settings-manual-grid{grid-template-columns:1fr}
}
