.module-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;display:grid}.module-card{flex-direction:column;gap:.5rem;display:flex}.module-card header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.module-card header :is(h3,h4,h5){margin:0}.module-card header :is(h4,h5){font-size:1.05rem;line-height:1.2}.module-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.module-card .button{margin-top:auto}.module-card .facts{font-size:.9rem}.badge.typical{background:var(--accent-soft);color:var(--accent);align-self:flex-start;margin-left:0}.badge.ok{color:var(--ok);background:#e2f3e8}.facts{grid-template-columns:max-content 1fr;gap:.2rem .75rem;margin:0;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.spread{justify-content:space-between}.small-gap{gap:.25rem}.grow{flex:1;width:auto;min-width:10rem}.stepper{align-items:center;gap:.35rem;display:inline-flex}.stepper-value{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch;font-weight:600}.attribute-table td:nth-child(n+2){white-space:nowrap}.allocation-block{flex-direction:column;gap:.6rem;display:flex}.sheet-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;display:grid}.sheet-grid .wide{grid-column:1/-1}.sheet-heading{margin:0;font-size:1.25rem}.compact-table td,.compact-table th{padding:.3rem .4rem}.skills-table td:nth-child(n+3),.skills-table th:nth-child(n+3){text-align:right;width:4.5rem}.gift-list{flex-direction:column;gap:.25rem;margin:.25rem 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.gift-list .locked{color:var(--muted)}.mastery-list{color:var(--muted);margin:.15rem 0 0;padding-left:.75rem;font-size:.85rem;list-style:none}.description-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.description-roll{align-items:center;gap:.4rem;display:flex}.description-roll input{flex:1;min-width:0}.description-roll .button{flex:none}.play-values{flex-wrap:wrap;gap:.5rem;display:flex}.play-values .value{flex-direction:column;flex:4.5rem;align-items:center;min-height:3.5rem;font-size:1.2rem}.editor-block{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.chosen-row{align-items:center;gap:.75rem;display:flex}.chosen-row .list-main{flex:1}.chosen-row .button{flex:none}.list-row.slot{flex-wrap:wrap}.list-row.slot.open .list-title{color:var(--text)}.list-row.slot.fixed .list-title{font-weight:400}.list-row.slot.expanded{background:var(--accent-soft);border-bottom:none;border-radius:8px;margin:.2rem -.5rem;padding:0 .5rem}.slot-choice{flex-basis:100%;padding:0 0 .5rem 2.2rem}.quick-action.purchase{text-align:left;flex-direction:column;align-items:flex-start;gap:.1rem;display:flex}.purchase-cost{font-size:.9rem;font-weight:400}.elaboration-summary{flex-wrap:wrap;align-items:baseline;gap:0 .5rem;display:flex}.elaboration-note{overflow-wrap:anywhere}.elaboration-add{min-height:var(--tap)}.elaboration-more{padding:.35rem 0}.elaboration-text{white-space:pre-line;overflow-wrap:anywhere}.elaboration-details{resize:vertical;min-height:10rem}.ammo-counter{align-items:center;gap:.4rem;margin-top:.25rem;display:inline-flex}.play-stats{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.play-stats .ammo-counter{margin-top:0}.play-facts{flex-wrap:wrap;gap:.1rem .6rem;display:flex}.play-changed .value-number{color:var(--warn);font-weight:700}.play-note{flex-wrap:wrap;align-items:center;gap:.25rem;margin:.5rem 0 0;display:flex}.play-skills{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.25rem 1rem;margin:0;padding:0;list-style:none;display:grid}.play-skills li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;min-height:2.25rem;display:flex}.loss-card h3{margin:0}.group-values{flex-direction:column;gap:.5rem;display:flex}.group-track{flex-wrap:wrap;align-items:center;gap:.25rem .4rem;display:flex}.group-track-label{flex:1;font-weight:600}.group-track meter{flex-basis:100%;width:100%;height:.6rem}.group-health{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin:-.25rem 0 .25rem;display:flex}.group-health.hurt{color:var(--warn);font-weight:600}.group-values .play-values{grid-template-columns:repeat(auto-fit,minmax(2.75rem,1fr));gap:.4rem;display:grid}.group-values .play-values .value{min-width:0;min-height:3rem;padding:.15rem .25rem;font-size:1.05rem}.loss-kinds{grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.loss-kinds button{min-height:var(--tap);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:.1rem;padding:.3rem .25rem;font-size:.85rem;line-height:1.15;display:flex}.loss-kinds button.selected{border-color:var(--accent);background:var(--accent-soft)}.loss-symbol{font-size:1.05rem;font-weight:700}.loss-actions{align-items:center}.recovery-note{flex-wrap:wrap;align-items:center;gap:.25rem;margin:0;display:flex}.weapon-table .sort-cell{vertical-align:middle;width:1%;padding:0}.sort-handle{min-width:var(--tap);min-height:var(--tap);color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;font-size:1.2rem;line-height:1}.sort-handle[aria-pressed=true]{color:var(--accent);cursor:grabbing}.weapon-table tbody+tbody{border-top:1px solid var(--border)}.weapon-table tbody.weapon-moving{background:var(--surface-2,#7f7f7f1f);outline:2px dashed var(--accent);outline-offset:-2px}.inventory-search{flex:100%;align-items:center;gap:.25rem;display:flex}.inventory-search input{flex:1;min-width:0}.play-weapons{container-type:inline-size}.weapon-details{flex-wrap:wrap;align-items:center;gap:.25rem .6rem;display:flex}.weapon-details .ammo-counter{margin-top:0}.weapon-row .list-tap{flex-wrap:wrap;row-gap:.3rem}.weapon-row .list-value{font-weight:inherit;white-space:normal;flex-basis:100%}@container (width>=34rem){.list.weapon-list{grid-template-columns:minmax(0,1fr) repeat(3,auto);column-gap:.4rem;display:grid}.list-row.weapon-row,.weapon-row .list-tap{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.weapon-row .list-tap{align-items:center;gap:.1rem .4rem}.weapon-row .list-main,.weapon-row .list-value,.weapon-stats{display:contents}.weapon-row .list-title{grid-area:1/1}.weapon-row .list-subtitle{grid-area:2/1/auto/-1}.weapon-stats>.value{grid-row:1;justify-content:space-between}.weapon-list>.list-empty{grid-column:1/-1}}.school-box{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card.school-box{padding:0}.school-head{background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .75rem;padding:.4rem .75rem;display:flex}.school-head h3,.school-head h4{margin:0;font-size:1rem;font-weight:600}.school-body{padding:.25rem .75rem .5rem}.school-body>.table-scroll{margin-top:.25rem}@media (width<=599px){.card .school-box{border-inline:none;border-radius:0;margin-inline:-1rem}.school-head,.school-body{padding-inline:1rem}}.card>.culture-map .map-view{max-width:640px}.region-group>header h3,.subregion-group>header h4{margin:0}.region-head-actions{align-items:center;gap:.5rem;display:inline-flex}.subregion-group{border-left:3px solid var(--border);padding-left:.75rem}.subregion-group>header h4{font-size:1rem}@media (width<=599px){.subregion-group{padding-left:.5rem}}.map-json{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem}:root{--bg:#f4f2ee;--surface:#fff;--surface-2:#f0ede7;--text:#1f2328;--muted:#646a73;--border:#d9d4ca;--accent:#2f5fa7;--accent-text:#fff;--accent-soft:#e3ecf8;--ok:#2e7d4f;--warn:#9a6400;--warn-soft:#fbf1dc;--error:#b3261e;--error-soft:#fbe5e3;--radius:10px;--shadow:0 1px 3px #00000014;--tap:44px;--bottomnav:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14181d;--surface:#1d232a;--surface-2:#252c35;--text:#e7e9ec;--muted:#9aa3ad;--border:#343d48;--accent:#7aa7e6;--accent-text:#0e1620;--accent-soft:#233348;--warn-soft:#3a2f17;--error-soft:#3d1f1d;--shadow:none}}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{min-height:100dvh;margin:0}body.no-scroll{overflow:hidden}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.05rem}a{color:var(--accent)}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{min-height:var(--tap);border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;padding:.4rem .6rem}input[type=checkbox],input[type=radio]{flex:none;width:1.25rem;min-height:1.25rem;margin:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.4rem .5rem}th{color:var(--muted);font-size:.85rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.8rem}.center{text-align:center;margin-top:30vh}.error{color:var(--error)}.up{color:var(--ok)}.down{color:var(--error)}.stack{flex-direction:column;gap:1rem;display:flex}.table-scroll{max-width:100%;overflow-x:auto}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.card.danger{border-color:var(--error)}fieldset.card{margin:0}.button{min-height:var(--tap);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.4rem 1rem;font-weight:500;text-decoration:none;display:inline-flex}.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.button.danger{background:var(--error);color:#fff;border-color:var(--error)}.button:disabled{opacity:.5;cursor:not-allowed}.button.small{min-height:2.2rem;padding:.2rem .8rem;font-size:.9rem}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link.danger{color:var(--error)}.icon-button{min-width:var(--tap);min-height:var(--tap);border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;font-size:1.2rem}.icon-button:disabled{opacity:.4;cursor:not-allowed}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.badge{background:var(--surface-2);color:var(--muted);vertical-align:middle;border-radius:999px;margin-left:.4rem;padding:.05rem .45rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.error{background:var(--error-soft);color:var(--error)}.badge.warning,.badge.required{background:var(--warn-soft);color:var(--warn)}.badge.mode-creation{background:var(--accent-soft);color:var(--accent)}.badge.mode-career{color:var(--ok);background:#e2f3e8}button.badge{cursor:pointer;border:none;font-size:.75rem;font-weight:600}button.badge:hover,a.badge:hover{text-decoration:underline}a.badge{text-decoration:none}.open-points details>summary{cursor:pointer;color:var(--accent);min-height:var(--tap);align-items:center;display:flex}.source{color:var(--muted);white-space:nowrap;font-size:.78rem}.field{flex-direction:column;gap:.25rem;display:flex}.field>span{color:var(--muted);font-size:.85rem}.field.inline{flex-direction:row;justify-content:space-between;align-items:center}.field.inline input{width:6rem}.option{min-height:var(--tap);align-items:center;gap:.6rem;padding:.25rem 0;display:flex}.option.disabled{opacity:.55}.option .source{margin-left:auto}.option-row .long-text{margin:0 0 .35rem 2rem}.long-text{font-size:.9rem}.long-text>summary{cursor:pointer;color:var(--accent);align-items:center;min-height:1.75rem;display:inline-flex}.long-text-body{white-space:pre-line;border-left:3px solid var(--border);margin:.25rem 0 .5rem;padding-left:.75rem}.shell{flex-direction:column;min-height:100dvh;display:flex}.shell-head{z-index:10;position:sticky;top:0}.topbar{color:#fff;background:#1d2a3a;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.brand{color:#fff;font-weight:700;text-decoration:none}.topnav{gap:1rem;display:none}.topnav a{color:#cfd9e6;text-decoration:none}.topnav a.active{color:#fff;font-weight:600}.content{width:100%;min-width:0;max-width:1100px;padding:1rem 1rem calc(var(--bottomnav) + 1.5rem);flex:1;margin:0 auto}.bottomnav{z-index:10;height:var(--bottomnav);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0}.shell[data-keyboard=open]{--bottomnav:0px}.shell[data-keyboard=open] .bottomnav{display:none}.bottomnav a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;font-size:.75rem;text-decoration:none;display:flex}.bottomnav a span{font-size:1.2rem}.bottomnav a.active{color:var(--accent)}.open-switcher{min-width:0;min-height:var(--tap);color:#fff;cursor:pointer;background:#26364a;border:1px solid #3a4b60;border-radius:999px;flex:0 auto;align-items:center;gap:.35rem;padding:0 .75rem;display:inline-flex}.open-switcher-name{text-overflow:ellipsis;white-space:nowrap;max-width:55vw;overflow:hidden}.open-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.open-list li{border:1px solid var(--border);border-radius:8px;align-items:center;gap:.5rem;padding:.25rem .25rem .25rem .75rem;display:flex}.open-list li.active{border-color:var(--accent);background:var(--accent-soft)}.open-list a{min-width:0;min-height:var(--tap);color:inherit;flex-direction:column;flex:1;justify-content:center;text-decoration:none;display:flex}.open-tabs{background:#26364a;padding:.35rem 1rem 0;display:none}.open-tabs-inner{align-items:flex-end;gap:.5rem;max-width:1100px;margin:0 auto;display:flex}.open-tabs ul{scrollbar-width:thin;flex:0 auto;gap:.25rem;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.open-group{color:#cfd9e6;border-radius:999px;flex:none;align-self:center;margin-left:auto;padding:.35rem .75rem;font-weight:600;text-decoration:none}.open-group:hover{background:#31445c}.open-group.active{background:var(--bg);color:var(--text)}.open-tab{color:#cfd9e6;cursor:grab;background:#31445c;border-radius:8px 8px 0 0;flex:none;align-items:center;max-width:16rem;display:flex}.open-tab.active{background:var(--bg);color:var(--text)}.open-tab.dragging{opacity:.5}.open-tab a{min-width:0;color:inherit;flex-direction:column;padding:.35rem .25rem .35rem .75rem;line-height:1.2;text-decoration:none;display:flex}.open-tab-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.open-tab-system{opacity:.8;font-size:.72rem}.open-tab-close{width:2rem;height:2rem;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;margin-right:.25rem;font-size:1.1rem}.open-tab-close:hover{background:#7f7f7f40}@media (width>=760px){.open-switcher{display:none}.open-tabs{display:block}.topnav{display:flex}.bottomnav{display:none}.content{padding-bottom:2rem}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.character-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.character-card{color:inherit;flex-direction:column;gap:.2rem;text-decoration:none;display:flex}.group-list{grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.group-card{flex-direction:column;gap:.75rem;height:100%;display:flex}.group-card h2{margin:0;font-size:1.15rem}.group-card-header p{margin:.1rem 0 0}.group-card-header .character-status{margin-top:.35rem}.auth{place-items:center;min-height:100dvh;padding:1rem;display:grid}.auth-card{flex-direction:column;gap:.8rem;width:min(420px,100%);display:flex}.auth-card p{margin:0}.consent-scopes{margin:.3rem 0 0;padding-left:1.2rem}.consent-optional{margin-left:-1.2rem;list-style:none}.consent-optional label{cursor:pointer;align-items:flex-start;gap:.5rem;min-height:2.75rem;display:flex}.consent-optional input{flex:none;width:1.25rem;height:1.25rem;margin-top:.2rem}.allowed-app-id{overflow-wrap:anywhere}@media (pointer:coarse){html:has(.character){overscroll-behavior-x:none}}.character-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.character-header h1{margin:0}.character-status{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:.25rem;margin:.75rem -1rem 1rem;padding:0 1rem;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;flex:none;padding:.6rem .8rem;text-decoration:none}.tabs a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.notice{border-radius:var(--radius);background:var(--accent-soft);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.notice.error{background:var(--error-soft);color:var(--error)}.notice p,.notice ul{margin:0}.package-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.package-list>li{flex-direction:column;gap:.2rem;display:flex}.package-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.error-banner{background:var(--error-soft);color:var(--error);border-radius:var(--radius);margin-bottom:1rem;padding:.75rem}.warning-box{background:var(--warn-soft)}.value{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:6px;justify-content:center;align-items:baseline;gap:.35rem;min-width:2.5rem;min-height:2rem;padding:.15rem .5rem;font-weight:600;display:inline-flex}.value:hover{border-color:var(--accent)}.value-label{color:var(--muted);font-size:.85rem;font-weight:400}.value-note{color:var(--warn)}.value.missing{background:0 0;border:none}.value-row{min-height:var(--tap);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;display:flex}.value-row:last-child{border-bottom:none}.sheet-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-height:88dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;flex-direction:column;display:flex}.sheet-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.sheet-header h2{margin:0;font-size:1.1rem}.sheet-body{flex:auto;min-height:0;padding:1rem;overflow-y:auto}.sheet-body.stack>*{flex-shrink:0}.sheet-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;display:flex}@media (width<=759px){.sheet.sheet-full{border-radius:0;height:100dvh;max-height:100dvh}}@media (width>=760px){.sheet-backdrop{align-items:center}.sheet{border-radius:16px;width:min(560px,92vw)}.sheet.sheet-wide{width:min(900px,94vw)}}.derivation,.derivation-children{margin:0;padding:0;list-style:none}.derivation-children{border-left:2px solid var(--border);margin-left:.25rem;padding-left:1rem}.derivation-node{padding:.2rem 0}.derivation-node.ignored{opacity:.55;text-decoration:line-through}.derivation-row{justify-content:space-between;gap:1rem;display:flex}.derivation-value{font-variant-numeric:tabular-nums;font-weight:600}.notes{padding-left:1.2rem}.changes td:nth-child(n+2),.changes th:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}.preview-summary{font-weight:600}.bookings-preview{padding-left:1.2rem}.messages{flex-direction:column;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.message{background:var(--surface-2);border-radius:8px;grid-template-columns:auto 1fr;gap:.2rem .6rem;padding:.5rem .75rem;display:grid}.message.error{background:var(--error-soft)}.message.warning{background:var(--warn-soft)}.message.acknowledged{opacity:.6}.message-severity{font-size:.8rem;font-weight:600}.message-actions{flex-wrap:wrap;grid-column:2;gap:.75rem;font-size:.85rem;display:flex}.messages.compact .message{padding:.35rem .6rem;font-size:.9rem}.choice header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.choice .actions{margin-top:.75rem}.option-list,.assign-list,.distribute-list{flex-direction:column;gap:.25rem;display:flex}.wizard{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.wizard>*{min-width:0}.wizard-progress{margin:0 0 .35rem}.wizard-steps ol{scrollbar-width:none;gap:.4rem;margin:0 -1rem;padding:0 1rem .25rem;list-style:none;display:flex;overflow-x:auto}.wizard-steps li a{min-width:max-content;min-height:var(--tap);border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .7rem .35rem .4rem;text-decoration:none;display:flex}.wizard-steps li.current a{border-color:var(--accent);background:var(--accent-soft)}.step-number{background:var(--surface-2);width:1.7rem;height:1.7rem;color:var(--muted);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;display:inline-flex;position:relative}.wizard-steps li.complete .step-number{background:var(--ok);color:#fff}.wizard-steps li.problem .step-number{background:var(--error);color:#fff}.wizard-steps li.current .step-number{background:var(--accent);color:var(--accent-text)}.step-mark{font-size:.6rem;line-height:1;position:absolute;bottom:-.2rem;right:-.2rem}.wizard-steps li.notStarted .step-mark,.wizard-steps li.current .step-mark{display:none}.step-text{flex-direction:column;line-height:1.15;display:flex}.step-label{font-size:.9rem;font-weight:600}.step-state{color:var(--warn);font-size:.72rem}.wizard-steps li.complete .step-state{color:var(--ok)}.wizard-steps li.problem .step-state{color:var(--error)}.wizard-steps li.notStarted .step-state{color:var(--muted)}.wizard-step{flex-direction:column;gap:1rem;display:flex}.step-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.step-header>.link{white-space:nowrap;flex:none}.step-header h2{margin:.1rem 0 .25rem;font-size:1.4rem}.step-kicker,.step-description{margin:0}.section-title{color:var(--muted);margin:.5rem 0 0;font-size:1rem}.wizard-footer{bottom:calc(var(--bottomnav) + .5rem);background:var(--bg);z-index:5;flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.5rem 0;display:flex;position:sticky}.wizard-footer .button.primary{flex:1}@media (width>=1000px){.wizard{grid-template-columns:240px minmax(0,1fr);align-items:start}.wizard-steps ol{flex-direction:column;margin:0;padding:0;overflow:visible}.wizard-steps li a{border-radius:10px;min-width:0}.wizard-steps{top:calc(var(--head-height,3.4rem) + .6rem);position:sticky}.wizard-footer{bottom:0}.wizard-footer .button.primary{flex:none}}.balances{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.balance{flex-direction:column;display:flex}.balance strong{font-variant-numeric:tabular-nums;font-size:1.6rem}.quick-actions{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;display:grid}.quick-action{border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent-soft);min-height:56px;color:var(--accent);cursor:pointer;padding:.5rem;font-weight:600}.log{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.log-entry{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr auto;gap:.15rem .5rem;padding:.5rem .75rem;display:grid}.log-entry.undone{opacity:.55}.log-entry.reverted .log-text{color:var(--muted);text-decoration:line-through}.log-bookings .inactive{opacity:.6;text-decoration:line-through}.log-revert{grid-column:2;justify-self:end}.log-time{color:var(--muted);grid-column:1/-1;font-size:.78rem}.log-bookings{font-variant-numeric:tabular-nums;gap:.5rem;display:flex}.ledger tr.inactive{opacity:.5}.ledger td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.booking-form{gap:.6rem;display:grid}@media (width>=760px){.booking-form{grid-template-columns:1fr 1fr 2fr auto;align-items:end}.booking-form h3{grid-column:1/-1}}.user-list{flex-direction:column;gap:.5rem;padding:0;list-style:none;display:flex}.user-list .row>span{flex:1}.user-list select{width:auto}.choice-groups{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.choice-groups p{flex-basis:100%;margin:0}.chip{min-height:var(--tap);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:0 .9rem}.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.change-notice{z-index:30;left:.75rem;right:.75rem;bottom:calc(var(--bottomnav) + 4.5rem);background:var(--surface);border:1px solid var(--ok);border-radius:var(--radius);max-width:32rem;margin:0 auto;padding:.75rem .9rem;position:fixed;box-shadow:0 4px 16px #0000002e}.change-notice-title{color:var(--ok);margin:0 0 .25rem;font-weight:600}.change-notice-list{margin:0 0 .5rem;padding-left:1.1rem;font-size:.9rem}.change-notice-actions{justify-content:space-between;align-items:center;gap:.5rem;display:flex}@media (width>=1000px){.change-notice{bottom:4.5rem}}.catalog-list{flex-direction:column;gap:.35rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.catalog-item{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;align-items:flex-start;gap:.75rem;width:100%;padding:.55rem .75rem;display:flex}.catalog-item:hover{border-color:var(--accent)}.catalog-item:disabled{cursor:not-allowed;opacity:.6}.catalog-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.catalog-title{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.catalog-summary{color:var(--muted);font-size:.85rem}.catalog-facts{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.15rem;display:flex}.catalog-value{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;padding-top:.1rem;font-weight:700}.tag{background:var(--surface-2);color:var(--muted);border-radius:6px;padding:.05rem .45rem;font-size:.75rem;display:inline-block}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list-row{border-bottom:1px solid var(--border);align-items:stretch;display:flex}.list-row:last-child{border-bottom:none}.list-row.muted-row{opacity:.65}.list-row.selected .list-tap{background:var(--accent-soft)}.list-tap{min-height:var(--tap);text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;align-items:center;gap:.7rem;padding:.45rem .25rem;display:flex}.list-tap.static{cursor:default}.list-tap:not(.static):hover{background:var(--surface-2)}.list-leading{width:1.5rem;color:var(--muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.list-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.list-title{flex-wrap:wrap;align-items:center;gap:.25rem;font-weight:500;display:flex}.list-subtitle{color:var(--muted);font-size:.82rem}.list-value{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:600}.list-chevron{color:var(--muted);flex:none;padding-left:.2rem;font-size:1.3rem;line-height:1}.list-actions{align-items:center;gap:.5rem;padding-left:.5rem;display:flex}.list-row.has-below{flex-wrap:wrap}.list-below{flex-basis:100%;padding:0 .25rem .4rem}.list-heading{justify-content:space-between;align-items:baseline;gap:.5rem;margin:.75rem 0 .25rem;display:flex}.list-heading h4{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:0;font-size:.9rem}.list-heading:first-child{margin-top:0}.list-empty{color:var(--muted);padding:.5rem .25rem;font-size:.9rem}.budget{flex-direction:column;gap:.3rem;display:flex}.budget-row{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.budget-label{font-weight:600}.budget-figure{font-variant-numeric:tabular-nums;white-space:nowrap}.budget-track{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.budget-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .2s}.budget.over .budget-fill{background:var(--error)}.budget.over .budget-figure{color:var(--error);font-weight:600}.budget.done .budget-fill{background:var(--ok)}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip:disabled{opacity:.4;cursor:not-allowed}.chip.placeholder{border-style:dashed;font-style:italic}.chip.small{min-height:2rem;padding:0 .7rem;font-size:.85rem}.choice.embedded{padding:.25rem 0 .5rem}.choice.embedded .option{min-height:2.6rem}.assign-list,.distribute-list{flex-direction:column;gap:.15rem;display:flex}.assign-row{min-height:var(--tap);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.2rem 0;display:flex}.assign-row:last-child{border-bottom:none}.assign-row.disabled{opacity:.55}.assign-label{flex:1;min-width:0}.assign-values{flex:none;gap:.3rem;display:flex}.assign-values .chip{font-variant-numeric:tabular-nums;min-height:2.2rem;padding:0 .7rem}.mark{border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;font-size:.8rem;font-weight:700;display:inline-flex}.mark.done{background:var(--ok);color:#fff}.mark.fixed{background:var(--surface-2);color:var(--muted)}.mark.open{border:2px dashed var(--warn);color:var(--warn)}.segments{border:1px solid var(--border);border-radius:999px;gap:0;display:inline-flex;overflow:hidden}.segments-scroll{scrollbar-width:none;overscroll-behavior-x:contain;max-width:100%;position:relative;overflow-x:auto}.segments-scroll::-webkit-scrollbar{display:none}.segments-scroll.more-end{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.segments-scroll.more-start{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}.segments-scroll.more-start.more-end{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.segments-scroll .segments{flex-wrap:nowrap}.segments button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.segments button{white-space:nowrap;background:var(--surface);min-height:2.4rem;color:var(--text);font:inherit;cursor:pointer;border:none;flex:none;padding:0 .9rem}.segments button.selected{background:var(--accent);color:var(--accent-text)}.tiles{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem;display:grid}.tiles .value{flex-direction:column;align-items:center;width:100%;min-height:3.6rem;font-size:1.15rem}.sticky-note{top:var(--head-height,3.4rem);z-index:4;position:sticky}.inline-form{gap:.6rem;display:grid}@media (width>=600px){.inline-form.two{grid-template-columns:1fr 1fr}}.box-track{flex-direction:column;gap:.25rem;display:flex}.box-row{align-items:center;gap:.5rem;display:flex}.box-row-label{width:7.5rem;color:var(--muted);flex:none;font-size:.8rem;line-height:1.15}.box-row.current .box-row-label{color:var(--text);font-weight:600}.boxes{flex-wrap:wrap;gap:.2rem;display:flex}.box{border:1px solid var(--border);background:var(--surface);border-radius:3px;justify-content:center;align-items:center;width:1.45rem;height:1.45rem;font-size:.85rem;font-weight:700;line-height:1;display:inline-flex}.box.marked{background:var(--surface-2);border-color:var(--muted)}.box-track.interactive .box{color:inherit;cursor:pointer;padding:0}.box-track.interactive .box:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (pointer:coarse){.box-track.interactive .box{width:2rem;height:2rem}.box-track.interactive .box-row-label{width:5.5rem}}.placement-tree{flex-direction:column;gap:.75rem;display:flex}.placement-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.placement-root{border:1px solid var(--border);border-radius:var(--radius);padding:.25rem .5rem}.placement-root[data-drop=ok]{border-color:var(--accent);background:var(--accent-soft)}.placement-root[data-drop=blocked]{border-color:var(--error);cursor:not-allowed}.placement-root-head{min-height:var(--tap);flex-wrap:wrap;align-items:center;gap:.25rem .75rem;display:flex}.placement-toggle{min-height:var(--tap);color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:0 .25rem;display:inline-flex}.placement-root-label{font-weight:600}.placement-load{color:var(--muted);margin-left:auto}.placement-children{margin:0;padding:0;list-style:none}.placement-item{border-top:1px solid var(--border)}.placement-children.top>.placement-item:first-child{border-top:none}.placement-row{align-items:center;gap:.25rem;display:flex}.placement-row.selected{background:var(--accent-soft)}.placement-row[data-drop=ok]{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.placement-row[data-drop=blocked]{outline:2px dashed var(--error);outline-offset:-2px;cursor:not-allowed}.placement-row-main{flex:1;min-width:0}.placement-row-main .list-row{border-bottom:none}.placement-check{flex:none;width:1.4rem;height:1.4rem;margin:0 .4rem}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;flex:none;padding:0 .2rem}.disclosure-button{min-width:2rem;min-height:var(--tap);color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:1rem}.placement-row .list-actions{flex-wrap:wrap;justify-content:flex-end}.switch{min-height:var(--tap);cursor:pointer;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.switch input{width:1.2rem;height:1.2rem;margin:0}@media (pointer:coarse){.placement-row .list-actions .button.small,.selection-bar .button.small,.placement-toolbar .button.small{min-height:var(--tap)}.placement-root-head .link{min-height:var(--tap);align-items:center;padding:0 .25rem;display:inline-flex}}.selection-bar{z-index:20;left:0;right:0;bottom:var(--bottomnav);background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex;position:fixed;box-shadow:0 -2px 8px #0000001a}.selection-count{margin-right:auto;font-weight:600}@media (width>=1000px){.selection-bar{bottom:0}}.move-targets{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.move-target{min-height:var(--tap);border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.move-target:hover:not(.disabled),.move-target:focus-visible{background:var(--accent-soft);outline:none}.move-target.disabled{cursor:not-allowed;opacity:.55}.move-target.root .move-target-label{font-weight:600}.move-target-main{flex-direction:column;min-width:0;display:flex}.move-target-label{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.move-disclosure{width:2rem;min-height:var(--tap);color:var(--muted);cursor:pointer;justify-content:center;align-items:center;margin:-.35rem 0;display:inline-flex}.move-last{align-self:flex-start}.move-what{margin:0}.move-quantity{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.stepper-input{text-align:center;font-variant-numeric:tabular-nums;width:4.5rem}.placement-tree:has(.selection-bar){padding-bottom:4rem}@media (width<=699px){.placement-row-main .list-row{flex-wrap:wrap}.placement-row-main .list-actions{flex-basis:100%;justify-content:flex-end;padding:0 0 .35rem}}:root{--signal:#c2410c;--signal-soft:#fdebdc;--signal-text:#fff}@media (prefers-color-scheme:dark){:root{--signal:#f97316;--signal-soft:#3b2214;--signal-text:#1a0d05}}.campaign{flex-direction:column;gap:.75rem;display:flex}.campaign.dossier{outline:4px solid var(--signal);outline-offset:.5rem;border-radius:4px}.campaign-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.campaign-title h1{margin:0}.campaign-title p{margin:.1rem 0 0}.campaign-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.campaign-hint{flex-basis:100%;margin:0}.campaign .tabs{margin-top:0;margin-bottom:.25rem}.dossier-switch{border-color:var(--signal);color:var(--signal);background:var(--surface)}.dossier-bar{border-radius:var(--radius);background:var(--signal);color:var(--signal-text);top:var(--head-height,3.4rem);z-index:6;flex-wrap:wrap;flex-basis:100%;order:-1;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex;position:sticky}.dossier-bar strong{letter-spacing:.04em;text-transform:uppercase;font-size:1.1rem}.dossier-time{font-variant-numeric:tabular-nums;flex:1}.dossier-bar .button.danger{background:var(--signal-text);color:var(--signal);border-color:var(--signal-text)}.badge.secret{background:var(--signal-soft);color:var(--signal)}.chip.visibility.secret{border-color:var(--signal);color:var(--signal);background:var(--signal-soft)}.card.section.secret{border-left:4px solid var(--signal)}.button.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.player-view-label{color:var(--accent);margin:.1rem 0 0;font-weight:600}.campaign.player-view{font-size:1.2rem}.campaign.player-view h1{font-size:2rem}.campaign.player-view h2{font-size:1.5rem}.campaign.player-view .muted.small,.campaign.player-view .small{font-size:.95rem}.player-home .plain-list li{padding:.35rem 0}.entry-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.entry-head>form{flex-basis:100%}.entry-title h1{margin:0}.entry-title p{margin:.15rem 0 0}.tags{flex-wrap:wrap;gap:.3rem;display:flex}a.tag{text-decoration:none}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.section-head h2{margin:0}.fields{gap:.5rem;margin:0;display:grid}.field-row{gap:.1rem;display:grid}@media (width>=600px){.field-row{grid-template-columns:12rem 1fr;gap:1rem}}.fields dt{color:var(--muted);font-size:.9rem}.fields dd{margin:0}.pre-line{white-space:pre-line}.plain-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.plain-list .row{gap:.5rem}.grow{flex:1;min-width:0}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p,.markdown ul,.markdown ol,.markdown blockquote,.markdown pre{margin:0 0 .6rem}.markdown blockquote{border-left:3px solid var(--border);color:var(--muted);padding-left:.75rem}.markdown pre{background:var(--surface-2);border-radius:6px;padding:.5rem;overflow-x:auto}.markdown h3,.markdown h4,.markdown h5{margin:.75rem 0 .35rem}a.reference{font-weight:500}.snippet mark{background:var(--warn-soft);color:inherit;border-radius:3px;padding:0 .1rem}.log-diff{grid-column:1/-1}.diff pre{white-space:pre-wrap;margin:.25rem 0 0;font-size:.85rem}.diff-line.added{color:var(--ok)}.diff-line.removed{color:var(--error);text-decoration:line-through}.terms{grid-template-columns:repeat(auto-fill,minmax(min(14rem,100%),1fr));gap:.5rem;display:grid}.party-row{border-bottom:1px solid var(--border);padding:.5rem 0}.party-row:last-child{border-bottom:none}.session-summary+.session-summary{margin-top:.75rem}fieldset.read-only{border:none;min-width:0;margin:0;padding:0}.log-context,.log-characters{grid-column:1/-1}.quickbar{gap:.25rem;display:flex}.quickbar .quick{min-height:var(--tap);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.05rem;padding:.2rem .3rem;font-size:.75rem;display:flex}.quickbar .quick span{font-size:1.05rem;line-height:1}.quickbar .quick:disabled{opacity:.45;cursor:default}.quickbar-error{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:-.25rem;display:flex}@media (width<=759px){.quickbar{left:0;right:0;bottom:calc(var(--bottomnav) + env(safe-area-inset-bottom));z-index:9;background:var(--bg);border-top:1px solid var(--border);padding:.3rem .5rem;position:fixed}.campaign.at-table{padding-bottom:4rem}.quickbar-error{left:.5rem;right:.5rem;bottom:calc(var(--bottomnav) + env(safe-area-inset-bottom) + 4rem);z-index:9;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:0;padding:.5rem .75rem;position:fixed;box-shadow:0 2px 8px #0003}}@media (width>=760px){.quickbar{flex-wrap:wrap}.quickbar .quick{flex-direction:row;flex:none;gap:.35rem;padding:.3rem .75rem;font-size:.9rem}}.day-date{margin:0;font-size:1.35rem;font-weight:600}.player-view .day-date{font-size:1.8rem}.day-card p{margin:.15rem 0}.material-list>li{border-bottom:1px solid var(--border);padding:.5rem 0}.material-list>li:last-of-type{border-bottom:none}.material.secret{border-left:4px solid var(--signal);padding-left:.6rem}.material-toggle{min-height:2rem;font-size:.85rem}.material-bar{border:1px dashed var(--signal);flex-direction:column;gap:.4rem;display:flex}.material-notice{border-left:4px solid var(--signal)}.button.reveal{border-color:var(--signal);color:var(--signal)}.last-session{margin-top:.75rem}.last-session h3{margin:0 0 .35rem;font-size:1rem}.participant{border-bottom:1px solid var(--border);padding:.35rem 0}.participant:last-child{border-bottom:none}.material-bar .material-toggle{align-self:flex-start}.day-card .row{flex-wrap:wrap}.scene-card .eyebrow{margin:0 0 .15rem}.catalog-more{justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.map-view{max-width:100%;margin:0}.sheet .map-view{width:100%;max-width:min(100%, calc((88dvh - 10rem) * var(--map-aspect,1)));margin-inline:auto}.map-frame{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;width:100%;position:relative;overflow:hidden}.map-frame img{object-fit:fill;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.map-frame svg{width:100%;height:100%;position:absolute;inset:0}.map-area{fill:#dc1e1e61;stroke:#c81414;stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.map-area.inactive{fill:#dc1e1e26;stroke-dasharray:4 3}.map-area.context{fill:#1e50be1f;stroke:#1941aa;stroke-width:1.5px;stroke-dasharray:6 4}.map-scroll{border-radius:8px;max-height:70dvh;overflow:auto}.map-editor-frame{cursor:crosshair;overflow:visible}.map-handle{cursor:grab;touch-action:none;background:#c81414;border:2px solid #fff;border-radius:50%;width:16px;height:16px;margin:0;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080}.map-handle.selected{background:var(--accent);width:20px;height:20px}.chip.selected .muted{color:inherit;opacity:.8}.map-zoom select{width:auto}.map-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.map-list .map-view{max-width:360px}
