*{box-sizing:border-box}html{background:#080b0d}body{margin:0;min-width:320px;min-height:100svh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.4;color:#e8e1d2;background:#080b0d;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}a{color:inherit}#root{min-height:100svh}:root{--bg: #080b0d;--rail: #0c1114;--panel: #12181b;--panel-2: #171f22;--panel-3: #20292c;--text: #e8e1d2;--muted: #9ba6a2;--faint: #66736f;--line: #2a3938;--line-strong: #50605a;--gold: #d6b36a;--gold-2: #8e6d36;--cyan: #7edbd4;--green: #8ccf98;--red: #d96d64;--blue: #7aa7ff;--shadow: 0 18px 42px rgba(0, 0, 0, .28);--radius: 8px;color:var(--text)}:root[data-theme=light]{--bg: #f3efe6;--rail: #ebe5d7;--panel: #faf7f0;--panel-2: #f1ecdf;--panel-3: #e7e0cf;--text: #2c2a23;--muted: #6c6a5e;--faint: #97927f;--line: #d8d0bb;--line-strong: #b8ad8e;--gold: #8e6d36;--gold-2: #6d5326;--cyan: #1f7d74;--green: #2e7d3c;--red: #b03a31;--blue: #2d5cb8;--shadow: 0 12px 30px rgba(95, 80, 45, .16)}.app-shell{min-height:100svh;display:grid;grid-template-columns:248px minmax(0,1fr);background:linear-gradient(180deg,rgba(214,179,106,.05),transparent 280px),radial-gradient(ellipse at top,rgba(126,219,212,.08),transparent 520px),var(--bg)}.nav-rail{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;gap:18px;padding:18px 14px;background:#0c1114f5;border-right:1px solid var(--line)}.brand-image{width:100%;height:38px;object-fit:cover;border:1px solid rgba(214,179,106,.36);border-radius:6px;opacity:.88}.vault-mark{display:flex;gap:10px;align-items:center;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.vault-mark svg{color:var(--gold)}.vault-mark strong,.vault-mark span{display:block}.vault-mark strong{color:var(--text);font-size:15px}.vault-mark span,.nav-meta span{color:var(--muted);font-size:12px}.nav-rail nav{display:grid;gap:6px}.nav-item,.icon-button,.primary-button,.inline-actions button,.table-button,.toggle-chip,.effect-item,.inventory-item button,.gm-controls button{border:1px solid var(--line);color:var(--text);background:var(--panel-2);border-radius:7px;font:inherit;cursor:pointer}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 11px;color:var(--muted);text-align:left}.nav-item svg,.icon-button svg,.primary-button svg,.inline-actions svg{width:17px;height:17px}.nav-item.active{color:var(--text);border-color:#7edbd48c;background:linear-gradient(180deg,#7edbd429,#d6b36a17)}.nav-meta{margin-top:auto;display:grid;gap:7px;padding:12px;border-top:1px solid var(--line)}.workspace{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);background:#080b0ddb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}.overline{margin:0 0 4px;font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:0}.topbar h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:700;line-height:1.05;color:var(--text)}.top-actions,.inline-actions,.toolbar,.lookup-picker,.gm-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-chip{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid rgba(126,219,212,.28);border-radius:7px;color:var(--cyan);background:#7edbd414;font-size:13px}.icon-button{width:36px;height:36px;display:inline-grid;place-items:center}.icon-button.compact{width:28px;height:28px;border-radius:6px}.icon-button.compact svg{width:14px;height:14px}button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.42}.primary-button,.inline-actions button,.gm-controls button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 12px;font-size:13px}.primary-button{color:#10130f;border-color:var(--gold);background:linear-gradient(180deg,#ead28f,#b98937)}.content-grid{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;padding:16px}.main-panel,.inspector,.tab-stack{min-width:0}.tab-stack{display:grid;gap:16px}.panel{background:#12181beb;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel>:not(.table-wrap):not(.split-list){margin-left:16px;margin-right:16px}.panel>:first-child{margin-top:16px}.panel>:last-child{margin-bottom:16px}.panel-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.panel-header svg{width:20px;height:20px;color:var(--gold)}.panel-header h2{margin:0;font-size:18px;line-height:1.1}.panel-header p,.empty,.detail-panel p,.inspector-card p{color:var(--muted);font-size:13px;line-height:1.45;margin:4px 0 0}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.field-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.field,.search-field,.gm-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px}.field input,.field select,.search-field input,.lookup-picker select,.gm-controls input,.gm-controls select,.choice-field select,.grant-choice-field select,.aptitude-select{min-width:0;height:36px;border:1px solid var(--line);border-radius:6px;background:#0d1214;color:var(--text);padding:0 10px;font:inherit;font-size:13px}.field input[readonly]{color:var(--cyan);background:#6c87c724;cursor:default}.select-field{position:relative}.select-field svg{position:absolute;right:10px;bottom:9px;width:15px;height:15px;color:var(--faint);pointer-events:none}.metric-row,.summary-grid,.rule-summary-grid,.combat-derived-grid,.age-band-grid,.class-reference-grid,.reference-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.metric-row.vertical{grid-template-columns:1fr 1fr}.metric{min-height:64px;display:grid;align-content:center;gap:5px;padding:11px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px}.metric span{color:var(--muted);font-size:12px}.metric strong{color:var(--text);font-size:20px;line-height:1;overflow-wrap:anywhere}.metric.good strong{color:var(--green)}.metric.warn strong{color:var(--gold)}.metric.danger strong{color:var(--red)}.hp-bar{height:10px;overflow:hidden;border-radius:999px;background:#111;border:1px solid var(--line)}.hp-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold),var(--green))}.table-wrap{overflow:auto;max-height:620px;margin:0 16px 16px;border:1px solid var(--line);border-radius:7px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{border-bottom:1px solid rgba(80,96,90,.38);padding:8px 10px;text-align:left;vertical-align:top;font-size:12px}th{position:sticky;top:0;z-index:1;color:var(--gold);background:#111719;font-weight:700}td{color:#d6ded7}tbody tr:hover{background:#7edbd412}.selected-row{background:#7edbd424}.strong-cell,.accent-cell{color:var(--text);font-weight:700}.accent-cell{color:var(--cyan)}.derived-row{background:#d6b36a0a}.rule-warning-row{background:#d96d6414}.derived-value,.muted-cell{color:var(--muted);font-size:12px}.bonus-pills,.status-stack,.movement-strip,.hp-parts{display:flex;flex-wrap:wrap;gap:5px}.bonus-pills span,.status-stack span,.movement-strip span,.hp-parts span{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;border:1px solid rgba(126,219,212,.2);border-radius:999px;background:#7edbd412;color:var(--muted);font-size:11px;white-space:nowrap}.rule-warning-row .status-stack span{color:#ffd9d5;border-color:#d96d6480;background:#d96d6424}.rule-summary-grid>div,.age-band,.class-reference-grid article{min-height:84px;display:grid;align-content:center;gap:6px;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.rule-summary-grid span,.age-band span,.class-reference-grid span,.background-package-grid span{color:var(--muted);font-size:12px}.rule-summary-grid strong,.age-band strong,.class-reference-grid strong{color:var(--text);font-size:16px;line-height:1.15;overflow-wrap:anywhere}.rule-summary-grid small,.class-reference-grid small{color:var(--faint);font-size:12px;line-height:1.35}.age-band-grid{grid-template-columns:repeat(6,minmax(104px,1fr))}.age-band.active{border-color:#d6b36aad;background:#d6b36a1f}.age-modifier-strip{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.age-modifier-strip span{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border:1px solid rgba(214,179,106,.3);border-radius:999px;color:var(--gold);background:#d6b36a14;font-size:12px}.reference-text-block{display:grid;gap:6px;margin-top:12px;padding:12px;border:1px solid rgba(214,179,106,.28);border-radius:7px;background:#d6b36a12}.reference-text-block strong{color:var(--gold);font-size:12px;text-transform:uppercase}.reference-text-block p,.source-note{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.progression-list,.skill-reference-list{display:grid;gap:8px;margin-top:12px}.progression-entry{display:grid;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:10px;align-items:start;padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.progression-entry.active{border-color:#d6b36aad;background:#d6b36a1f}.progression-entry strong{min-width:0;color:var(--gold);font-size:12px;overflow-wrap:anywhere}.progression-entry span{min-width:0;color:var(--muted);font-size:12px;line-height:1.4;overflow-wrap:anywhere}.table-input{width:86px;height:28px;border:1px solid var(--line);border-radius:5px;background:#0c1114;color:var(--text);padding:0 8px}.toolbar{margin-bottom:12px}.search-field{min-width:min(340px,100%);position:relative}.search-field svg{position:absolute;left:10px;bottom:10px;width:15px;height:15px;color:var(--faint)}.search-field input{padding-left:34px}.switch{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--muted);font-size:13px}.switch input{accent-color:var(--cyan)}.macro-strip,.sort-strip,.schema-grid,.coverage-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.coverage-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));margin-top:14px}.sort-strip{align-items:center;margin-bottom:12px}.sort-strip>span{color:var(--muted);font-size:12px}.coverage-card{min-height:132px;display:grid;gap:6px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.coverage-card span{width:max-content;min-height:22px;display:inline-flex;align-items:center;padding:0 7px;border-radius:999px;color:var(--cyan);background:#7edbd414;border:1px solid rgba(126,219,212,.25);font-size:11px}.coverage-card.data-captured span{color:var(--gold);background:#d6b36a14;border-color:#d6b36a47}.coverage-card h3{margin:0;color:var(--text);font-size:15px}.coverage-card strong{color:var(--cyan);font-size:12px}.coverage-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.toggle-chip,.schema-grid span{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 9px;font-size:12px}.toggle-chip span{color:var(--faint)}.toggle-chip.off{color:var(--faint);background:#0b0f11}.split-list{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0}.skills-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,390px);align-items:start}.split-list .table-wrap{margin-right:0}.detail-panel{padding:16px;border-left:1px solid var(--line);background:#d6b36a0d}.detail-panel h3,.inspector-card h3,.rule-list h3{margin:0 0 10px;color:var(--text);font-size:16px}.detail-panel dl,.skill-reference-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.detail-panel dt,.skill-reference-panel dt{color:var(--muted);font-size:11px}.detail-panel dd,.skill-reference-panel dd{margin:0;color:var(--cyan);font-size:12px}.reference-summary-grid{margin-bottom:12px}.skill-ownership-panel{display:grid;gap:12px;margin-bottom:14px}.skill-grant-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px}.skill-grant-card{display:grid;gap:8px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.skill-grant-heading{display:flex;gap:9px;align-items:center}.skill-grant-heading strong{min-width:0;color:var(--text);font-size:13px;overflow-wrap:anywhere}.skill-grant-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.skill-source-chip{width:max-content;min-height:22px;display:inline-flex;align-items:center;padding:0 7px;border:1px solid rgba(126,219,212,.28);border-radius:999px;color:var(--cyan);background:#7edbd414;font-size:11px;text-transform:uppercase}.skill-source-chip.race{border-color:#8ccf9852;color:var(--green);background:#8ccf9814}.skill-source-chip.background{border-color:#7aa7ff52;color:var(--blue);background:#7aa7ff14}.skill-source-chip.player{border-color:#d6b36a52;color:var(--gold);background:#d6b36a17}.skill-source-chip.available{border-color:#66736f61;color:var(--faint);background:#66736f14}.known-skill-cloud,.grant-choice-list{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.known-skill-cloud span,.grant-choice-list span{display:inline-grid;gap:2px;max-width:280px;padding:6px 8px;border:1px solid rgba(126,219,212,.24);border-radius:7px;color:var(--text);background:#7edbd412;font-size:12px;overflow-wrap:anywhere}.known-skill-cloud.compact span{padding:4px 7px;font-size:11px}.known-skill-cloud span.race{border-color:#8ccf9842;background:#8ccf9812}.known-skill-cloud span.player,.grant-choice-list span{border-color:#d6b36a47;background:#d6b36a14}.known-skill-cloud span.background{border-color:#7aa7ff4d;background:#7aa7ff14}.known-skill-cloud small{color:var(--faint);font-size:10px}.skill-status-cell{display:flex;flex-wrap:wrap;gap:4px}.background-picker-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(220px,1fr))}.background-pick-stack,.choice-grid{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}.choice-cluster{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#7edbd40d}.choice-cluster>strong{color:var(--text);font-size:13px}.choice-cluster>span{color:var(--muted);font-size:12px}.choice-field,.grant-choice-field{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:12px}.grant-choice-field{min-width:min(100%,260px);padding:7px;border:1px solid rgba(214,179,106,.28);border-radius:7px;background:#d6b36a12}.grant-choice-field select,.choice-field select,.aptitude-select{width:100%;font-size:12px}.skills-split table{min-width:1250px}.skill-add-cell{width:74px}.source-level,.percent-stack{display:grid;gap:4px;min-width:0}.source-level small,.percent-stack small,.percent-stack span{color:var(--muted);font-size:11px;line-height:1.25}.percent-stack strong{color:var(--cyan);font-size:15px}.percent-stack.compact{grid-template-columns:repeat(2,max-content);column-gap:8px}.locked-action{color:var(--muted);font-size:12px}.skill-reference-panel{max-height:min(720px,calc(100vh - 150px));overflow:auto}.skills-split .skill-reference-panel{position:sticky;top:14px}.skill-reference-list section,.background-package-grid article,.aptitude-row{display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.reference-card-heading{display:flex;justify-content:space-between;gap:10px;align-items:start}.reference-card-heading span{color:var(--gold);font-size:11px;text-transform:uppercase}.reference-card-heading strong{color:var(--text);font-size:14px;text-align:right}.skill-reference-list p{margin:0}.skill-reference-list p strong{color:var(--gold)}.aptitude-grid,.background-package-grid{display:grid;gap:8px}.aptitude-grid{grid-template-columns:repeat(4,minmax(160px,1fr));margin-bottom:12px}.aptitude-row{grid-template-columns:54px 46px minmax(0,1fr);align-items:center}.aptitude-row strong{color:var(--gold)}.aptitude-row span{color:var(--cyan);font-size:12px}.aptitude-row small,.background-package-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.background-package-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.background-package-grid strong{color:var(--text);font-size:14px}.weapon-grid,.inventory-grid,.rules-grid{display:grid;gap:10px}.combat-derived-grid{grid-template-columns:repeat(6,minmax(92px,1fr))}.movement-strip,.hp-parts{margin-top:10px}.movement-strip span strong,.hp-parts span strong{color:var(--cyan)}.weapon-row{display:grid;grid-template-columns:62px minmax(180px,1.4fr) minmax(150px,1fr) minmax(86px,.7fr) repeat(3,minmax(82px,.6fr));gap:10px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.weapon-row>strong{align-self:center;color:var(--gold)}.inventory-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.inventory-item{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.inventory-item span{color:var(--muted);font-size:12px}.inventory-item button,.table-button{min-height:28px;padding:0 9px;font-size:12px}.rules-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rule-list{padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.rule-list div{display:grid;gap:2px;padding:7px 0;border-top:1px solid rgba(80,96,90,.28)}.rule-list strong{color:var(--gold);font-size:12px}.rule-list span{color:var(--muted);font-size:12px;line-height:1.35}.gm-controls{align-items:end;padding-bottom:2px}.gm-controls label{min-width:120px}.effect-list,.event-list{display:grid;gap:8px}.effect-item{width:100%;display:grid;gap:3px;padding:9px;text-align:left}.effect-item strong{font-size:13px}.effect-item span{color:var(--muted);font-size:12px}.effect-item.gm{border-color:#d96d6485}.effect-item.player{border-color:#7edbd46b}.effect-item.inactive{opacity:.48}.lookup-picker select{min-width:280px}.lookup-table{max-height:680px}.lookup-usage-table table{min-width:960px}.lookup-usage-table td:last-child{min-width:360px}.field-audit-table table{min-width:920px}.inspector{display:grid;align-content:start;gap:16px}.inspector-card{box-shadow:none}.event-item{display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2)}.event-item strong{color:var(--gold);font-size:11px;text-transform:uppercase}.event-item span{color:var(--text);font-size:12px}.event-item small{color:var(--faint)}.loading-screen,.failure{min-height:100svh;display:grid;place-content:center;gap:14px;text-align:center;background:var(--bg);color:var(--text)}.loading-screen svg,.failure svg{width:42px;height:42px;margin:0 auto;color:var(--gold)}.failure h1{margin:0;font-size:24px}button:hover,.nav-item:hover{border-color:var(--cyan)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@media (max-width: 1180px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.brand-image,.vault-mark div,.nav-item span,.nav-meta{display:none}.nav-rail{padding:14px 10px}.vault-mark{justify-content:center;padding:10px}.nav-item{justify-content:center;padding:11px}.content-grid,.skills-split{grid-template-columns:1fr}.skills-split .skill-reference-panel{position:static;max-height:none;border-left:0;border-top:1px solid var(--line)}.inspector{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.app-shell{display:block}.nav-rail{position:static;height:auto;flex-direction:row;overflow-x:auto}.vault-mark{min-width:46px}.nav-rail nav{display:flex;min-width:max-content}.topbar,.content-grid{padding:12px}.topbar{align-items:flex-start;flex-direction:column}.field-grid,.field-grid.compact,.metric-row,.summary-grid,.rule-summary-grid,.combat-derived-grid,.age-band-grid,.class-reference-grid,.reference-summary-grid,.aptitude-grid,.background-package-grid,.background-picker-grid,.background-pick-stack,.choice-grid,.skill-grant-grid,.inventory-grid,.rules-grid,.coverage-grid,.inspector,.split-list,.progression-entry{grid-template-columns:1fr}.detail-panel{border-left:none;border-top:1px solid var(--line)}.weapon-row{grid-template-columns:1fr}}.panel-hint{color:var(--muted);font-size:.82rem;margin:4px 0 12px}.saves-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.save-cell{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;display:flex;flex-direction:column;gap:2px}.save-cell.save-nonzero{border-color:var(--gold-2)}.save-code{font-size:.7rem;letter-spacing:.08em;color:var(--muted)}.save-total{font-size:1.15rem;font-weight:700;color:var(--gold)}.save-parts{font-size:.66rem;color:var(--faint)}.metric.accent strong{color:var(--gold)}.metric .pool-status{font-size:.68rem;color:var(--muted);font-style:normal}.warning-strip{background:color-mix(in srgb,var(--red) 14%,transparent);border:1px solid var(--red);border-radius:var(--radius);color:var(--red);font-size:.82rem;padding:6px 10px;margin-top:10px}.casting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-bottom:12px}.casting-cell{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);text-align:center;padding:8px 4px}.casting-cell span{display:block;font-size:.7rem;color:var(--muted)}.casting-cell strong{font-size:1.05rem;color:var(--cyan)}.recovery-strip{display:flex;flex-wrap:wrap;gap:6px}.recovery-chip{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;font-size:.74rem;padding:3px 10px}.recovery-chip em{color:var(--muted);font-style:normal;margin-right:4px}.grants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.grant-block{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.grant-label{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}.grant-block p{margin:0;font-size:.84rem;line-height:1.45;color:var(--text)}.weapons-table td{vertical-align:middle}.phase-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.phase-weapon{width:140px;font-size:.8rem;color:var(--muted);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-cells{display:flex;gap:3px;flex-wrap:wrap}.phase-cell{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;border:1px solid var(--line);border-radius:4px;color:var(--faint);background:var(--panel-2)}.phase-cell.phase-attack{background:color-mix(in srgb,var(--gold) 24%,var(--panel-2));border-color:var(--gold);color:var(--gold);font-size:.85rem}.tab-stack{display:flex;flex-direction:column;gap:16px}.field-cluster{display:flex;gap:10px}.field-checkbox{flex-direction:row;align-items:center;gap:8px}.status-chip.success{border-color:var(--green);color:var(--green)}:root[data-theme=light] .nav-rail{background:#ebe5d7f5}:root[data-theme=light] .topbar{background:#f3efe6e0}:root[data-theme=light] .panel{background:#faf7f0f0}:root[data-theme=light] .field input,:root[data-theme=light] .field select,:root[data-theme=light] .search-field input,:root[data-theme=light] .lookup-picker select,:root[data-theme=light] .gm-controls input,:root[data-theme=light] .gm-controls select,:root[data-theme=light] .choice-field select,:root[data-theme=light] .grant-choice-field select,:root[data-theme=light] .aptitude-select{background:#fff}:root[data-theme=light] .nav-item.active{background:linear-gradient(180deg,#1f7d7424,#8e6d361a);border-color:#1f7d7473}:root[data-theme=light] .primary-button{color:#fffdf7;background:linear-gradient(180deg,#a8853f,#7c5f28)}:root[data-theme=light] .table-input{background:#fff}:root[data-theme=light] .toggle-chip.off{background:#e7e0cf}.pool-editor h4{margin:12px 0 8px;font-size:.82rem;color:var(--muted)}.pool-alloc-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.pool-alloc-row select{flex:1;height:32px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-size:12px;padding:0 8px}.pool-alloc-row input{width:70px;height:32px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;padding:0 8px}.pool-add{width:auto;padding:0 12px;font-size:12px;margin-top:4px}:root[data-theme=light] .lookup-table thead th,:root[data-theme=light] table thead th{background:#e7e0cf;color:#5a4a26}.vitals-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vital{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--gold-2);border-radius:999px;background:color-mix(in srgb,var(--gold) 9%,transparent);color:var(--gold);font-size:13px;font-weight:600;white-space:nowrap}.vital svg{width:15px;height:15px}.senses-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.sense-cell{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:6px}.sense-cell input{height:32px}.sense-desc{margin:0;font-size:.72rem;line-height:1.35;color:var(--muted);max-height:64px;overflow:hidden}@media (max-width: 1100px){.senses-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stats-table .stat-input{width:64px}.stats-table .derived-stat-row td{background:color-mix(in srgb,var(--cyan) 5%,transparent)}.stat-invalid td{background:color-mix(in srgb,var(--red) 9%,transparent)}.vault-mark{background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 14%,var(--panel)),var(--panel));border-color:var(--gold-2)}.vault-mark strong{font-family:Georgia,Times New Roman,serif;font-size:17px;letter-spacing:.02em}.xp-bar span,.hp-bar span{display:block;height:100%}.custom-class-notes{border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-size:13px;padding:8px 10px;resize:vertical}.spell-list-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip-class{border-color:var(--cyan)}.known-row td{background:color-mix(in srgb,var(--green) 7%,transparent)}.known-btn{border-color:var(--green);color:var(--green)}.spell-description{font-size:.85rem;line-height:1.5;max-height:260px;overflow-y:auto}.reference-scroll{max-height:280px;overflow-y:auto;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}.reference-heading{font-weight:700;color:var(--gold);margin:8px 0 4px;font-size:.82rem}.reference-row{margin:2px 0;font-size:.8rem;color:var(--text)}.xp-log-add{display:flex;gap:8px;margin-bottom:12px}.xp-log-add input{height:34px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-size:13px;padding:0 10px}.xp-log-add input:nth-child(2){flex:1}.calendar-month h4{margin:12px 0 8px;color:var(--gold)}.calendar-grid{display:grid;grid-template-columns:repeat(7,40px);gap:5px}.calendar-day{width:40px;height:36px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.calendar-day.calendar-birthday{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 22%,var(--panel-2));color:var(--gold);font-weight:700}.reference-table .reference-section-row td{color:var(--gold);font-weight:600}.metric.metric-bad{border-color:var(--red)}.metric.metric-bad strong{color:var(--red)}.magic-item-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.magic-item-row input[type=checkbox]{width:16px;height:16px}.magic-item-row input,.magic-item-row select{height:32px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-size:12px;padding:0 8px}.magic-item-name{flex:1}.magic-item-mag{width:64px}.class-sheet-table td{font-size:.78rem;line-height:1.4;vertical-align:top}.gm-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.gm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:10px}.gm-section h4{margin:0 0 8px;font-size:.82rem;color:var(--gold);display:flex;align-items:center;gap:6px}.gm-section h4 svg{width:14px;height:14px}.gm-hp-row,.gm-effect-add{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gm-hp-row input,.gm-effect-add input,.gm-effect-add select{height:30px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-size:12px;padding:0 8px;width:90px}.gm-effect-add input:first-child{flex:1;min-width:120px}.gm-inline-field{margin-left:auto}.gm-inline-field input{width:70px}.gm-note-add{display:flex;gap:8px;align-items:flex-start}.gm-note-add textarea{flex:1;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-size:12px;padding:6px 8px;resize:vertical}.gm-inbox{border-color:var(--gold)}.gm-inbox-note p{margin:4px 0;font-size:.9rem}.opponent-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:12px;margin-bottom:10px}.opponent-block h4{margin:0;font-size:.85rem;color:var(--gold)}.opponent-grid{margin:8px 0}.signin-gate{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#0b090f;color:#f3f4f6;font-family:Outfit,Inter,sans-serif;z-index:1000}.gate-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:1}.gate-video::-webkit-media-controls,.gate-video::-webkit-media-controls-panel,.gate-video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}.gate-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,#0b090f73,#0b090ff2 90%);z-index:2}.gate-content{position:relative;z-index:3;height:100%;max-width:640px;margin:0 auto;padding:max(3rem,env(safe-area-inset-top)) 1.5rem max(1.5rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center}.gate-title{font-family:Cinzel Decorative,serif;font-size:clamp(1.6rem,5.5vw,2.6rem);color:#fef08a;margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.12em;line-height:1.2;text-shadow:0 2px 15px rgba(0,0,0,.9),0 0 10px rgba(234,179,8,.3)}.gate-subtitle{font-family:Cinzel,serif;font-size:clamp(1rem,3vw,1.25rem);color:#d1d5db;margin:0;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 2px 5px rgba(0,0,0,.9)}.gate-card-container{margin-top:auto;padding-bottom:1rem;width:100%;display:flex;justify-content:center;opacity:0;pointer-events:none;transform:translateY(100vh);transition:opacity 1.5s ease-out,transform 1.5s cubic-bezier(.23,1,.32,1)}.gate-card-container.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.gate-card{width:min(340px,100%);padding:1.1rem 1rem .9rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;background:#14101ea6;border:1px solid rgba(168,85,247,.25);border-radius:14px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 32px #0000008c,0 0 20px #a855f726}.gate-card-title{font-family:Cinzel,serif;font-size:.95rem;color:#fef08a;text-transform:uppercase;letter-spacing:.1em;margin:0;line-height:1.15}.gate-gsi{min-height:44px;display:flex;justify-content:center}.gate-hint{font-size:.85rem;color:#9ca3af;margin:0;line-height:1.45}.gate-guest{background:none;border:none;color:#9ca3af;font-family:inherit;font-size:.78rem;letter-spacing:.04em;cursor:pointer;padding:.25rem .5rem;transition:color .25s ease}.gate-guest:hover{color:#fef08a;text-decoration:underline}@media (min-width: 768px) and (orientation: landscape){.gate-content{justify-content:center}.gate-card-container{margin-top:2.25rem}}.gallery-actions{margin-bottom:12px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.gallery-card{margin:0;border:1px solid var(--border, rgba(168, 85, 247, .25));border-radius:10px;overflow:hidden;background:#14101e73;transition:border-color .25s ease,box-shadow .25s ease}.gallery-card:hover{border-color:#eab30873;box-shadow:0 4px 18px #a855f740}.gallery-thumb{display:block;width:100%;padding:0;border:none;background:#0b090f;cursor:zoom-in}.gallery-thumb img,.gallery-thumb video{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.gallery-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:.82rem;text-transform:capitalize}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#07050ceb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:4vh 4vw;cursor:zoom-out}.gallery-lightbox img,.gallery-lightbox video{max-width:100%;max-height:86vh;border-radius:8px;box-shadow:0 12px 60px #000c}.gallery-lightbox p{color:#d1d5db;font-size:.9rem;text-transform:capitalize;margin:0}.gallery-close{position:absolute;top:18px;right:22px}.media-caption-actions{display:flex;align-items:center;gap:6px}.vote-control{display:inline-flex;align-items:center;gap:2px}.vote-btn{background:none;border:none;padding:2px;cursor:pointer;color:#9ca3af;display:inline-flex}.vote-btn svg{width:16px;height:16px}.vote-btn:hover{color:#fef08a}.vote-btn.vote-on{color:#eab308}.vote-pos{color:#4ade80}.vote-neg{color:#f87171}.note-count{display:inline-flex;align-items:center;gap:4px}.note-count svg{width:14px;height:14px}.music-list{display:flex;flex-direction:column;gap:10px}.music-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:0;padding:10px 12px;border:1px solid var(--border, rgba(168, 85, 247, .25));border-radius:10px;background:#14101e73}.music-card:hover{border-color:#eab30873}.music-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#a855f759,#eab30840);color:#fef08a}.music-body{display:flex;flex-direction:column;gap:4px;min-width:0}.music-body audio{width:100%;max-width:480px;height:32px}.music-card figcaption{display:flex;align-items:center;gap:8px}.music-card figcaption .media-title>span{display:none}.lightbox-stage{display:flex;gap:16px;max-width:96vw;max-height:88vh;cursor:default}.lightbox-media{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.lightbox-media img,.lightbox-media video{max-width:min(64vw,1100px);max-height:78vh;border-radius:8px;box-shadow:0 12px 60px #000c}.lightbox-media p{color:#d1d5db;display:flex;align-items:center;gap:10px;text-transform:capitalize;margin:0}.lightbox-audio{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 50px;border:1px solid rgba(168,85,247,.35);border-radius:14px;background:#14101ebf;color:#fef08a}.lightbox-audio svg{width:42px;height:42px}.media-notes{width:min(330px,30vw);display:flex;flex-direction:column;background:#14101eeb;border:1px solid rgba(168,85,247,.3);border-radius:12px;padding:12px;max-height:78vh}.media-notes h4{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:#fef08a;font-size:.9rem}.media-notes-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.media-note{display:flex;gap:8px}.media-note img{width:26px;height:26px;border-radius:50%}.media-note header{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#9ca3af}.media-note header strong{color:#e5e7eb}.media-note p{margin:2px 0 0;font-size:.85rem;line-height:1.4}.media-note-compose{display:flex;gap:6px;margin-top:10px}.media-note-compose input{flex:1;background:#0b090fcc;border:1px solid rgba(168,85,247,.3);border-radius:8px;color:#f3f4f6;padding:7px 10px;font-size:.85rem}@media (max-width: 900px){.lightbox-stage{flex-direction:column;overflow-y:auto}.media-notes{width:100%;max-height:36vh}.lightbox-media img,.lightbox-media video{max-width:90vw;max-height:48vh}}.gallery-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.upload-tag{background:#0b090f99;border:1px solid rgba(168,85,247,.3);border-radius:8px;color:#f3f4f6;padding:7px 10px;font-size:.85rem;min-width:240px}.tag-filter{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 14px}.media-tag{display:inline-flex;align-items:center;background:#a855f729;border:1px solid rgba(168,85,247,.4);border-radius:999px;color:#d8b4fe;font-size:.72rem;letter-spacing:.03em;padding:2px 9px;cursor:pointer;white-space:nowrap}.media-tag:hover{border-color:#eab3088c;color:#fef08a}.media-tag.tag-active{background:#eab30833;border-color:#eab308;color:#fef08a}.media-tag-empty{opacity:.55;border-style:dashed}.media-title{display:flex;align-items:center;gap:6px;min-width:0}.media-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-preview{display:flex;align-items:center;gap:6px;width:100%;border:none;border-top:1px solid rgba(168,85,247,.18);background:#a855f712;color:#c4b5fd;font-size:.78rem;padding:6px 10px;cursor:pointer;text-align:left}.note-preview:hover{background:#a855f724;color:#fef08a}.note-preview svg{width:13px;height:13px;flex-shrink:0}.note-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-preview strong{color:#e9d5ff}.note-preview em{flex-shrink:0;font-style:normal;opacity:.7}
