@import"https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=JetBrains+Mono:wght@500;700&family=Noto+Sans+SC:wght@500;600;700;800&display=swap";:root{color-scheme:dark;font-family:Noto Sans SC,Archivo,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);--bg: #101211;--bg-soft: #151815;--bg-mid: #111514;--glow-teal: rgba(69, 196, 176, .09);--panel: #191c1a;--panel-strong: #20241f;--panel-deep: #111411;--panel-gradient: linear-gradient(145deg, rgba(18, 22, 19, .96), rgba(8, 11, 9, .96));--utility-hero-gradient: linear-gradient(115deg, rgba(217, 182, 106, .12), rgba(12, 15, 13, .86) 62%);--panel-glass: rgba(25, 28, 26, .86);--panel-glass-dark: rgba(10, 13, 11, .86);--surface-deep: #0d100e;--surface-sunken: #121512;--line: #343b34;--line-hot: #d9b66a;--text: #f4f0e8;--text-bright: #fff8ed;--text-cream: #e8e2d6;--text-soft: #aca89d;--badge-ink: #101311;--accent-wash: rgba(69, 196, 176, .13);--accent-wash-ink: #ffffff;--gold-wash: rgba(217, 182, 106, .1);--gold-wash-border: rgba(217, 182, 106, .54);--gold-wash-ink: #fff3d4;--hover-wash: rgba(255, 255, 255, .07);--dropzone-bg: rgba(16, 19, 17, .76);--scrollbar-thumb: #3c4941;--field: #101311;--mint: #8be2d3;--gold-ink: #e9b949;--gold-light: #f0c86f;--blue-ink: #63b3ed;--blue-bright: #78c3ff;--teal: #45c4b0;--amber: #d9b66a;--red: #ff695f;--blue: #6fb7ff;--green: #8ed06c;--violet: #b892ff}:root[data-theme=light]{color-scheme:light;--bg: #f8f8f8;--bg-soft: #f3f3f2;--bg-mid: #f6f6f5;--glow-teal: rgba(69, 196, 176, .1);--panel: #ffffff;--panel-strong: #ececeb;--panel-deep: #f0f0f0;--panel-gradient: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(244, 244, 243, .96));--utility-hero-gradient: linear-gradient(115deg, rgba(217, 182, 106, .16), rgba(255, 255, 255, .92) 62%);--panel-glass: rgba(255, 255, 255, .88);--panel-glass-dark: rgba(255, 255, 255, .94);--surface-deep: #f0f0f0;--surface-sunken: #f0f0f0;--line: #d9d9d9;--line-hot: #e07b00;--text: #262626;--text-bright: #1f1f1f;--text-cream: #404040;--text-soft: #737373;--badge-ink: #1c1c1c;--accent-wash: rgba(14, 143, 128, .14);--accent-wash-ink: #0b6b5f;--gold-wash: rgba(217, 182, 106, .22);--gold-wash-border: rgba(180, 130, 20, .55);--gold-wash-ink: #7a5200;--hover-wash: rgba(0, 0, 0, .06);--dropzone-bg: rgba(236, 236, 235, .76);--scrollbar-thumb: #c9c9c7;--field: #ffffff;--mint: #0e8f80;--gold-ink: #96660a;--gold-light: #a16207;--blue-ink: #1c64d6;--blue-bright: #1d68d8;--teal: #0f9488;--amber: #b45309;--red: #d64545;--blue: #2b6fd4;--green: #2e7d32;--violet: #7a4fd8}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 20% 10%,var(--glow-teal),transparent 28%),linear-gradient(135deg,var(--bg) 0%,var(--bg-soft) 48%,var(--bg-mid) 100%)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:18px}.top-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;margin-bottom:14px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-glass)}.top-strip strong{display:block;margin-top:3px;color:var(--text-bright)}.cloud-status{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--text-soft);font-size:.78rem}.cloud-status.is-admin{color:var(--mint)}.cloud-status.is-cached{color:var(--amber)}.cloud-status button{display:inline-flex;align-items:center;gap:4px;min-height:26px;border:1px solid var(--line);border-radius:6px;background:var(--panel-deep);color:var(--text-bright);padding:0 8px}.top-strip span,.muted{color:var(--text-soft);font-size:.88rem}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.auth-panel{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.auth-panel input{width:132px;min-height:34px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:var(--text-bright);padding:0 9px}.auth-panel button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid var(--line);border-radius:7px;background:var(--panel-deep);color:var(--text-cream);padding:0 10px}.auth-panel button:hover{border-color:var(--line-hot)}.auth-panel button:disabled{cursor:not-allowed;opacity:.55}.theme-toggle{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid var(--line);border-radius:7px;background:var(--panel-deep);color:var(--text-cream);padding:0 10px}.theme-toggle:hover{border-color:var(--line-hot)}.auth-panel.is-signed-in{color:var(--text-soft);font-size:.86rem}.sync-note{margin:0;color:var(--text-soft);font-size:.86rem}.map-switch{display:inline-flex;align-items:center;gap:8px;color:var(--text-soft);font-size:.88rem}.map-switch select{min-height:34px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:var(--text-bright);padding:0 10px}.workspace{display:grid;grid-template-columns:minmax(244px,300px) minmax(520px,1fr) minmax(280px,360px);gap:14px;align-items:start}.left-rail{display:grid;gap:14px;position:sticky;top:18px;align-self:start;max-height:calc(100vh - 36px);overflow-y:auto}.demo-center-stage{display:grid;gap:14px;min-width:0}.control-panel,.tactic-list,.editor,.map-shell{border:1px solid var(--line);border-radius:8px;background:var(--panel-glass)}.control-panel,.tactic-list,.editor{padding:14px}.panel-heading,.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.eyebrow,.filter-label{margin:0;color:var(--amber);font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2{margin:2px 0 0;line-height:1.02}h1{font-size:2.1rem}h2{font-size:1.22rem}.search-box{display:flex;align-items:center;gap:8px;margin:14px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--text-soft)}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text-bright)}.utility-search{position:relative;z-index:30;margin:14px 0}.utility-search .search-box{margin:0}.utility-suggestion-list{position:absolute;top:calc(100% + 5px);right:0;left:0;display:grid;gap:3px;max-height:310px;padding:5px;overflow-y:auto;border:1px solid #4b504b;border-radius:7px;background:var(--surface-deep);box-shadow:0 16px 38px #0000008c}.utility-suggestion-list button{display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px;border:1px solid transparent;border-radius:5px;background:transparent;color:inherit;text-align:left}.utility-suggestion-list button:hover,.utility-suggestion-list button.is-active{border-color:#45c4b073;background:#45c4b01c}.utility-suggestion-list strong,.utility-suggestion-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.utility-suggestion-list strong{color:var(--text-bright);font-size:.72rem}.utility-suggestion-list small{margin-top:2px;color:var(--text-soft);font-size:.58rem}.filter-block{margin-top:12px}.mode-control-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.mode-toggle{position:relative;display:inline-flex;align-items:center;gap:7px;color:var(--text-soft);cursor:pointer;font-size:.76rem;white-space:nowrap}.mode-toggle input{position:absolute;width:1px;height:1px;opacity:0}.mode-toggle-track{position:relative;display:block;width:36px;height:20px;border:1px solid #4c554d;border-radius:999px;background:var(--surface-deep);transition:border-color .14s ease,background .14s ease}.mode-toggle-track>span{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:999px;background:var(--text-soft);transition:transform .14s ease,background .14s ease}.mode-toggle input:checked+.mode-toggle-track{border-color:#45c4b0cc;background:#45c4b033}.mode-toggle input:checked+.mode-toggle-track>span{background:var(--teal);transform:translate(16px)}.mode-toggle input:focus-visible+.mode-toggle-track{outline:2px solid var(--teal);outline-offset:2px}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.edit-submode-control{padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--surface-deep)}.edit-submode-control button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border-color:transparent;background:transparent}.edit-submode-control button:hover{transform:none}.utility-type-control.is-hidden{display:none}.side-control{grid-template-columns:repeat(4,minmax(0,1fr))}.segmented button,.io-actions button,.import-button,.editor-actions button{min-height:36px;border:1px solid var(--line);border-radius:7px;background:var(--panel-deep);color:var(--text-cream);transition:border-color .14s ease,background .14s ease,transform .14s ease}.segmented button{padding:0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented button:hover,.io-actions button:hover,.import-button:hover,.editor-actions button:hover{border-color:var(--line-hot);transform:translateY(-1px)}.segmented .active{border-color:var(--teal);background:var(--accent-wash);color:var(--accent-wash-ink)}.segmented .utility-type-button.type-smoke.active{border-color:#facc15;background:#facc15;color:var(--badge-ink)}.segmented .utility-type-button.type-flash.active{border-color:#fff;background:#fff;color:var(--badge-ink);box-shadow:inset 0 0 0 1px #101211b8}.io-actions,.editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.io-actions button,.import-button,.editor-actions button{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 10px}.import-button{position:relative}.import-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.backup-note{margin:10px 0 0;color:var(--text-soft);font-size:.78rem;line-height:1.5}.tactic-list{min-height:240px}.list-scroll{display:grid;gap:8px;max-height:46vh;margin-top:13px;overflow:auto;padding-right:3px}.list-item{display:grid;grid-template-columns:12px minmax(0,1fr) 30px;align-items:center;gap:10px;width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-sunken);color:inherit;text-align:left}.list-select-button{width:100%;min-width:0;border:0;background:transparent;color:inherit;padding:0;text-align:left}.list-delete-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:var(--text-soft)}.list-delete-button:hover{border-color:#ff695f9e;color:var(--text-bright)}.list-item.is-selected{border-color:var(--teal);background:#45c4b01a}.dot{width:10px;height:10px;margin-top:4px;border-radius:999px}.list-copy{min-width:0}.list-copy strong,.list-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-copy small{margin-top:4px;color:var(--text-soft)}.empty-state{margin:0;color:var(--text-soft)}.map-shell{min-width:0;padding:14px}.map-hint{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:7px;color:var(--text-soft);white-space:nowrap}.map-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.map-toolbar{align-items:flex-start;flex-wrap:wrap}.map-toolbar-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.map-view-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--field)}.map-view-switch button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:70px;min-height:34px;padding:0 9px;border:0;border-radius:0;background:transparent;color:var(--text-soft);font-size:.76rem}.map-view-switch button+button{border-left:1px solid var(--line)}.map-view-switch button:hover,.map-view-switch button:focus-visible{color:var(--text-bright)}.map-view-switch button.active{background:#45c4b029;color:var(--mint);box-shadow:inset 0 0 0 1px #45c4b03d}.map-view-controls{display:flex;align-items:center;gap:8px}.map-background-switch,.map-zoom-controls,.map-calibration-controls{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--field)}.map-background-switch button,.map-zoom-controls button,.map-calibration-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 9px;border:0;border-radius:0;background:transparent;color:var(--text-soft);font-size:.72rem}.map-background-switch button+button,.map-zoom-controls button+button,.map-calibration-controls button+button{border-left:1px solid var(--line)}.map-background-switch button:hover,.map-background-switch button:focus-visible,.map-zoom-controls button:hover,.map-zoom-controls button:focus-visible,.map-calibration-controls button:hover,.map-calibration-controls button:focus-visible{color:var(--text-bright)}.map-background-switch button.active{background:#d9b66a26;color:var(--gold-light);box-shadow:inset 0 0 0 1px #d9b66a38}.map-calibration-controls button{gap:6px;min-height:34px;padding:0 9px}.map-calibration-controls button:last-child:not(:first-child){width:34px;padding:0}.map-calibration-controls button.active{background:#d9b66a26;color:var(--gold-light)}.map-zoom-controls button{width:34px;padding:0}.map-zoom-controls .map-zoom-value{width:48px;color:var(--text-bright);font-family:JetBrains Mono,monospace;font-variant-numeric:tabular-nums}.map-zoom-controls button:disabled{color:#565b56;cursor:not-allowed}.board-mode-switch button{min-width:82px}.board-mode-switch{grid-template-columns:repeat(3,minmax(0,1fr))}.demo-replay-panel{position:relative;overflow:hidden}.demo-replay-panel:before{position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,var(--amber),var(--teal) 58%,transparent);content:""}.demo-panel-heading svg{color:var(--amber)}.demo-import-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;margin-top:12px;border:1px solid var(--gold-wash-border);border-radius:7px;background:var(--gold-wash);color:var(--gold-wash-ink);font-weight:700;cursor:pointer}.demo-import-button:hover{background:#d9b66a2b;border-color:var(--amber)}.demo-import-button.is-busy{cursor:wait;opacity:.66}.demo-import-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.demo-import-note,.demo-import-status{margin:8px 0 0;color:var(--text-soft);font-size:.72rem;line-height:1.55}.demo-import-status{padding:8px;border-left:2px solid var(--teal);background:#45c4b012;color:var(--mint)}.demo-match-list{display:grid;gap:7px;margin-top:14px}.demo-match-row{display:grid;grid-template-columns:minmax(0,1fr) 32px;border:1px solid var(--line);border-radius:7px;background:var(--surface-sunken)}.demo-match-row.is-active{border-color:#45c4b0b8;box-shadow:inset 3px 0 0 var(--teal)}.demo-match-row>button:first-child{display:grid;gap:2px;min-width:0;padding:9px 10px;border:0;background:transparent;color:var(--text-bright);text-align:left}.demo-match-row span,.demo-match-row small{overflow:hidden;color:var(--text-soft);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.demo-match-row small,.demo-section-label span,.demo-empty-state>span{font-family:JetBrains Mono,monospace;letter-spacing:.07em}.demo-delete-button{display:grid;place-items:center;border:0;border-left:1px solid var(--line);background:transparent;color:#746f66}.demo-delete-button:hover{color:var(--red)}.demo-empty-state{padding:20px 12px;border:1px dashed var(--line);border-radius:7px;color:var(--text-soft);text-align:center}.demo-empty-state>span{color:#676d67;font-size:.68rem}.demo-empty-state p{margin:7px 0 0;font-size:.75rem;line-height:1.5}.demo-utility-filter button{min-height:30px;border:0;border-radius:4px;background:transparent;color:var(--text-soft);font-size:.66rem;font-weight:750}.demo-utility-filter button[aria-pressed=true]{background:var(--accent-wash);color:var(--mint);box-shadow:inset 0 0 0 1px #45c4b047}.demo-review-stack{display:grid;gap:12px;margin-top:14px}.demo-review-section{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-gradient);box-shadow:inset 0 1px #ffffff06}.demo-review-section.is-round{border-top-color:#45c4b073}.demo-review-section.is-utility{border-top-color:#d9b66a80}.demo-review-section-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;padding-bottom:9px;border-bottom:1px solid var(--line)}.demo-review-section-heading>div{display:grid;gap:2px;min-width:0}.demo-review-section-heading span{color:#626d65;font-family:JetBrains Mono,monospace;font-size:.5rem;letter-spacing:.12em}.demo-review-section-heading h3{margin:0;color:var(--text-cream);font-size:.78rem;letter-spacing:.02em}.demo-review-section-heading>strong{flex:0 0 auto;color:#8e978f;font-family:JetBrains Mono,monospace;font-size:.57rem;font-weight:650}.demo-utility-review{display:grid;gap:10px;margin-top:10px}.demo-utility-hero{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:70px;padding:12px;overflow:hidden;border:1px solid rgba(217,182,106,.28);border-radius:7px;background:var(--utility-hero-gradient)}.demo-utility-hero:after{position:absolute;right:-18px;width:74px;height:74px;border:1px solid rgba(217,182,106,.16);border-radius:50%;content:""}.demo-utility-hero>div{display:grid;gap:4px;min-width:0}.demo-utility-hero span{color:#9c8d69;font-family:JetBrains Mono,monospace;font-size:.55rem;letter-spacing:.12em}.demo-utility-hero strong{color:var(--gold-wash-ink);font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}.demo-utility-hero>b{z-index:1;display:grid;color:var(--amber);font-family:JetBrains Mono,monospace;font-size:1.35rem;line-height:1;text-align:right}.demo-utility-hero>b small{margin-top:4px;color:#857c69;font-family:inherit;font-size:.5rem;font-weight:600}.demo-utility-filter{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--surface-sunken)}.demo-utility-filter.is-results{display:flex;overflow-x:auto}.demo-utility-filter.is-results button{flex:0 0 auto;padding:0 8px}.demo-utility-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.demo-utility-summary button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:5px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-deep);color:var(--text-soft);text-align:left}.demo-utility-summary button:hover,.demo-utility-summary button[aria-pressed=true]{border-color:#d9b66a7a;background:var(--gold-wash);color:var(--gold-wash-ink)}.demo-utility-summary span{min-width:0;font-size:.62rem;font-weight:750;line-height:1.3;overflow-wrap:anywhere}.demo-utility-summary strong{color:var(--text-bright);font-family:JetBrains Mono,monospace;font-size:.82rem}.demo-utility-summary small{grid-column:2 / -1;color:var(--text-soft);font-size:.53rem}.demo-utility-ledger{display:grid;gap:5px;max-height:min(58vh,640px);padding-right:2px;overflow-y:auto;scrollbar-color:var(--scrollbar-thumb) transparent}.demo-utility-row{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:7px;min-width:0;padding:9px 8px;border:1px solid var(--line);border-left:3px solid #646b65;border-radius:5px;background:var(--surface-sunken);color:var(--text-cream);text-align:left}.demo-utility-row:hover{border-color:#4a534c;background:var(--surface-sunken);transform:translate(1px)}.demo-utility-row.is-effective{border-left-color:var(--teal)}.demo-utility-row.is-ineffective{border-left-color:#eb655c}.demo-utility-row.is-insufficient{border-left-color:#8a8171}.demo-utility-row.is-unscored{border-left-color:#72889a}.demo-utility-kind{display:grid;grid-row:1 / span 2;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:var(--amber);background:var(--surface-sunken)}.demo-utility-copy{display:grid;grid-column:2 / -1;gap:4px;min-width:0}.demo-utility-copy b{color:var(--text-bright);font-family:JetBrains Mono,monospace;font-size:.61rem;line-height:1.4;overflow-wrap:anywhere}.demo-utility-copy small{overflow:visible;color:var(--text-soft);font-size:.57rem;line-height:1.5;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.demo-utility-verdict,.demo-utility-side{display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:3px 5px;border-radius:3px;font-size:.52rem;font-weight:800;white-space:nowrap}.demo-utility-verdict{grid-column:2;justify-self:start}.is-effective .demo-utility-verdict{color:var(--mint);background:#45c4b01f}.is-ineffective .demo-utility-verdict{color:var(--red);background:#eb655c1f}.is-insufficient .demo-utility-verdict{color:var(--text-soft);background:#8a817124}.is-unscored .demo-utility-verdict{color:var(--blue-ink);background:#72889a24}.demo-utility-side{grid-column:3;justify-self:end;color:var(--amber);background:#e789301c}.demo-utility-empty{display:grid;place-items:center;gap:6px;min-height:130px;margin-top:12px;padding:18px;border:1px dashed var(--line);border-radius:7px;color:#747c75;text-align:center}.demo-utility-empty strong{color:var(--text-cream);font-size:.75rem}.demo-utility-empty p{margin:0;font-size:.62rem;line-height:1.45}.demo-utility-empty.is-compact{min-height:84px;margin:0}.demo-utility-ranking{position:relative;min-width:0;padding:14px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,rgba(217,182,106,.035) 1px,transparent 1px) 0 0 / 32px 32px,linear-gradient(rgba(69,196,176,.025) 1px,transparent 1px) 0 0 / 32px 32px,var(--surface-sunken);box-shadow:inset 0 1px #ffffff06,0 10px 30px #0000002e}.demo-utility-ranking:before{position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,#45c4b0,#d9b66a 50%,#e46158);content:""}.demo-ranking-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.demo-ranking-heading>div:first-child{display:grid;gap:2px}.demo-ranking-heading span,.demo-ranking-heading p{margin:0;color:#737c75;font-size:.61rem}.demo-ranking-heading>div:first-child>span{color:#b99d5f;font-family:JetBrains Mono,monospace;font-size:.55rem;letter-spacing:.16em}.demo-ranking-heading h2{margin:0;color:var(--text-bright);font-size:1rem;letter-spacing:.02em}.demo-ranking-counts{display:flex;gap:7px}.demo-ranking-counts>*{padding:4px 7px;border:1px solid var(--line);border-radius:3px;background:var(--panel-glass-dark);font-family:JetBrains Mono,monospace;font-size:.56rem}.demo-ranking-counts strong{color:var(--mint)}.demo-ranking-counts span{color:var(--text-soft)}.demo-ranking-filter{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:12px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--panel-glass-dark)}.demo-ranking-filter button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:0 8px;border:0;border-radius:4px;background:transparent;color:var(--text-soft);font-size:.67rem;font-weight:750}.demo-ranking-filter button:hover{color:var(--text-bright)}.demo-ranking-filter button[aria-pressed=true]{background:var(--accent-wash);color:var(--mint);box-shadow:inset 0 0 0 1px #45c4b04d}.demo-ranking-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.demo-ranking-column,.demo-smoke-board{min-width:0;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--panel-glass-dark)}.demo-ranking-column.is-best{border-top-color:#45c4b09e}.demo-ranking-column.is-worst{border-top-color:#e461589e}.demo-smoke-board{margin-top:10px;border-top-color:#7b97a6a6}.demo-ranking-column-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 8px}.demo-ranking-column-heading span{display:inline-flex;align-items:center;gap:6px;color:var(--text-cream);font-size:.69rem;font-weight:800}.is-best .demo-ranking-column-heading span{color:var(--mint)}.is-worst .demo-ranking-column-heading span{color:var(--red)}.demo-ranking-column-heading strong{color:#727a73;font-family:JetBrains Mono,monospace;font-size:.52rem;font-weight:650}.demo-ranking-list,.demo-smoke-list{display:grid;gap:5px}.demo-ranking-list,.demo-smoke-list{max-height:680px;padding-right:3px;overflow-y:auto;scrollbar-color:var(--scrollbar-thumb) transparent}.demo-ranking-entry{display:grid;grid-template-columns:31px 25px minmax(0,1fr) auto;align-items:start;gap:7px;min-width:0;padding:8px;border:1px solid var(--line);border-left:2px solid #485049;border-radius:4px;background:var(--surface-sunken);color:var(--text-cream);text-align:left;transition:border-color .15s ease,background .15s ease,translate .15s ease}.demo-ranking-entry.is-best{border-left-color:#45c4b0}.demo-ranking-entry.is-worst{border-left-color:#e46158}.demo-ranking-entry:hover{border-color:#505950;background:var(--surface-sunken);translate:1px 0}.demo-ranking-rank{padding-top:4px;color:#737c75;font-family:JetBrains Mono,monospace;font-size:.57rem;font-weight:800}.demo-ranking-entry.is-best .demo-ranking-rank{color:var(--mint)}.demo-ranking-entry.is-worst .demo-ranking-rank{color:var(--red)}.demo-ranking-kind{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;background:var(--surface-sunken);color:var(--gold-ink)}.demo-ranking-kind.is-flash{color:#f0cf55}.demo-ranking-kind.is-he{color:#ed766d}.demo-ranking-kind.is-fire{color:#f09245}.demo-ranking-kind.is-smoke{color:#91acba}.demo-ranking-copy{display:grid;gap:2px;min-width:0}.demo-ranking-copy b,.demo-smoke-observation b{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-bright);font-size:.67rem;overflow-wrap:anywhere}.demo-ranking-copy b i,.demo-smoke-observation b i{padding:1px 4px;border-radius:2px;font-family:JetBrains Mono,monospace;font-size:.48rem;font-style:normal}.demo-ranking-copy b i.is-t,.demo-smoke-observation b i.is-t{background:var(--gold-wash);color:var(--gold-ink)}.demo-ranking-copy b i.is-ct,.demo-smoke-observation b i.is-ct{background:#63b3ed21;color:var(--blue-bright)}.demo-ranking-copy small{color:var(--text-soft);font-family:JetBrains Mono,monospace;font-size:.54rem;line-height:1.4}.demo-ranking-copy em{font-size:.55rem;font-style:normal;line-height:1.35;overflow-wrap:anywhere}.demo-ranking-copy em.is-positive{color:var(--mint)}.demo-ranking-copy em.is-penalty{color:var(--red)}.demo-ranking-copy em.is-neutral{color:var(--text-soft)}.demo-ranking-score{display:grid;min-width:38px;color:var(--gold-ink);font-family:JetBrains Mono,monospace;font-size:1rem;line-height:1;text-align:right}.demo-ranking-entry.is-worst .demo-ranking-score{color:var(--red)}.demo-ranking-score small{margin-top:2px;color:#747b75;font-size:.48rem;font-weight:650}.demo-smoke-observation{display:grid;grid-template-columns:28px minmax(140px,1fr) auto auto;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-left:2px solid #7894a2;border-radius:4px;background:var(--surface-sunken);color:var(--text-cream);text-align:left}.demo-smoke-observation:hover{border-color:#52656d;background:var(--surface-sunken)}.demo-smoke-observation>span:nth-child(2){display:grid;gap:3px;min-width:0}.demo-smoke-observation small{color:var(--text-soft);font-family:JetBrains Mono,monospace;font-size:.55rem}.demo-smoke-observation>em{color:var(--blue-ink);font-size:.57rem;font-style:normal}.demo-smoke-observation>strong{color:var(--blue-ink);font-family:JetBrains Mono,monospace;font-size:.58rem}.demo-ranking-empty{min-height:92px;margin-top:10px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:6px;color:#788078;font-size:.68rem;text-align:center}@media(max-width:820px){.demo-ranking-heading{align-items:start;flex-direction:column}.demo-ranking-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-ranking-filter button:first-child{grid-column:1 / -1}.demo-ranking-board{grid-template-columns:1fr}.demo-smoke-observation{grid-template-columns:28px minmax(0,1fr)}.demo-smoke-observation>em,.demo-smoke-observation>strong{grid-column:2}}.demo-round-picker{margin-top:0}.demo-section-label,.demo-side-summary{display:flex;align-items:center;justify-content:space-between;gap:8px}.demo-section-label{color:var(--text-soft);font-size:.66rem}.demo-round-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:8px;max-height:128px;overflow:auto}.demo-round-grid button{min-height:31px;padding:4px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-soft);font-size:.68rem}.demo-round-grid button.is-active{border-color:var(--amber);background:var(--gold-wash);color:var(--gold-wash-ink)}.demo-replay-inspector{display:grid;gap:12px}.demo-side-summary span{min-width:76px;padding:6px 9px;border:1px solid var(--line);border-radius:5px;font-family:JetBrains Mono,monospace;font-size:.7rem;text-align:center}.demo-side-summary .is-t,.demo-player-list button.is-t>span{color:var(--gold-ink)}.demo-side-summary .is-ct,.demo-player-list button.is-ct>span{color:var(--blue-bright)}.demo-visibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.demo-visibility-grid label{display:flex;align-items:center;gap:7px;padding:7px;border:1px solid var(--line);border-radius:5px;color:var(--text-soft);font-size:.72rem}.demo-visibility-grid input{accent-color:var(--teal)}.demo-player-list{display:grid;gap:5px}.demo-player-list button{display:grid;grid-template-columns:24px minmax(0,1fr);gap:2px 7px;align-items:center;min-height:42px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-sunken);color:var(--text-bright);text-align:left}.demo-player-list button.is-active{border-color:var(--teal);background:#45c4b014}.demo-player-list button>span{grid-row:1 / 3;font-family:JetBrains Mono,monospace;font-size:.66rem;font-weight:800}.demo-player-list button>strong{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.demo-player-list button>small{color:var(--text-soft);font-size:.61rem}.demo-route-layer,.demo-player-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.demo-route-layer{z-index:7}.demo-route-layer svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 3px rgba(0,0,0,.85))}.demo-route-path{stroke-linecap:round;stroke-linejoin:round;stroke-width:.72;opacity:.78}.demo-route-path.is-t{stroke:var(--gold-ink)}.demo-route-path.is-ct{stroke:var(--blue-ink)}.demo-route-path.is-dashed{stroke-dasharray:1.5 1.15;opacity:.52}.demo-route-path.is-selected{stroke:#fffaf0;stroke-width:1.05;opacity:1}.demo-player-layer{z-index:9}.demo-player-marker{position:absolute;display:grid;place-items:center;width:20px;height:20px;border:2px solid rgba(255,255,255,.86);border-radius:50%;background:var(--panel-deep);color:var(--panel-deep);box-shadow:0 3px 10px #000000db;transform:translate(-50%,-50%)}.demo-player-marker.is-t{background:#e9b949}.demo-player-marker.is-ct{background:#63b3ed}.demo-player-marker.is-selected{z-index:2;outline:3px solid #fffaf0;outline-offset:3px}.demo-player-marker.is-dead{border-radius:4px;background:var(--surface-sunken)}.demo-player-marker:has(.demo-player-blind){z-index:3;border-color:#fff;box-shadow:0 0 0 4px #ffffff2e,0 0 13px 5px #fffcdeb8,0 3px 10px #000000db;animation:demo-blind-glow .72s ease-in-out infinite alternate}.demo-player-blind{position:absolute;top:-11px;left:50%;width:34px;height:5px;overflow:visible;border:1px solid rgba(255,255,255,.92);border-radius:1px;background:var(--panel-glass-dark);box-shadow:0 0 7px #fffcdebf;transform:translate(-50%)}.demo-player-blind>i{display:block;width:calc(var(--blind-progress) * 100%);height:100%;background:linear-gradient(90deg,#f4d863,#fffdf0 65%,#fff)}.demo-player-blind>em{position:absolute;right:-1px;bottom:6px;padding:1px 3px;border-radius:2px;background:var(--panel-glass-dark);color:var(--text-bright);font-family:JetBrains Mono,monospace;font-size:.45rem;font-style:normal;font-weight:800;line-height:1;text-shadow:0 1px 2px #000}@keyframes demo-blind-glow{0%{filter:brightness(1)}to{filter:brightness(1.22)}}@media(prefers-reduced-motion:reduce){.demo-player-marker:has(.demo-player-blind){animation:none}}.demo-player-direction{width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:8px solid var(--badge-ink);transform-origin:center}.demo-death-cross{color:#ff756b;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:800;line-height:1}.demo-player-marker>strong{position:absolute;top:22px;left:50%;max-width:112px;overflow:hidden;padding:2px 5px;border-radius:3px;background:#0b0e0cd6;color:#fff8ed;font-size:.56rem;font-weight:700;line-height:1.2;text-overflow:ellipsis;text-shadow:0 1px 2px #000;white-space:nowrap;transform:translate(-50%)}.map-board.is-formula{cursor:default}.map-board.is-formula-route,.map-board.is-formula-timing{cursor:crosshair}.spawn-marker,.formula-start,.formula-step-marker{position:absolute;z-index:8;display:inline-flex;align-items:center;justify-content:center;transform:translate(-50%,-50%) scale(var(--map-inverse-zoom, 1));transform-origin:center;font-family:JetBrains Mono,monospace;font-weight:800;letter-spacing:0}.spawn-marker{width:26px;height:26px;padding:0;border:1px solid rgba(255,255,255,.72);border-radius:999px;color:var(--badge-ink);box-shadow:0 4px 13px #0000008f;font-size:.72rem;overflow:visible}.spawn-marker small{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;width:16px;height:16px;border-radius:999px;background:var(--badge-ink);color:#fff;font-size:.58rem}.spawn-t,.spawn-choice-t.active{background:#e9b949}.spawn-ct,.spawn-choice-ct.active{background:#63b3ed}.spawn-marker:hover,.spawn-marker:focus-visible,.spawn-marker.is-selected{outline:2px solid #fff;outline-offset:3px;z-index:12}.spawn-anchor-dot{position:absolute;z-index:9;display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border:1px solid rgba(255,255,255,.9);border-radius:999px;color:var(--badge-ink);font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:800;line-height:1;box-shadow:0 3px 9px #000000b3;transform:translate(-50%,-50%) scale(var(--map-inverse-zoom, 1));transform-origin:center}.spawn-anchor-number{pointer-events:none}.spawn-anchor-dot small{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;width:15px;height:15px;border-radius:999px;background:var(--badge-ink);color:#fff;font-size:.55rem}.spawn-anchor-dot:hover,.spawn-anchor-dot:focus-visible,.spawn-anchor-dot.is-selected,.spawn-anchor-dot.is-nearest{z-index:13;outline:2px solid #fff;outline-offset:2px}.spawn-anchor-dot.is-nearest{z-index:14}.formula-route-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;pointer-events:none}.formula-route-layer svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;filter:drop-shadow(0 2px 3px rgba(0,0,0,.8))}.formula-route-segment.route-fallback{opacity:.72;stroke-dasharray:1.6 1.2}.formula-route-action{position:absolute;z-index:9;display:grid;place-items:center;width:18px;height:18px;border:1px solid rgba(255,255,255,.76);border-radius:999px;background:var(--badge-ink);color:#fff;box-shadow:0 3px 9px #000000ad;transform:translate(-9px,-9px) scale(var(--map-inverse-zoom, 1));transform-origin:center}.formula-route-action.action-ladder{color:var(--mint)}.formula-route-action.action-drop{color:var(--gold-ink)}.formula-start{width:26px;height:26px;border:2px solid #fff;border-radius:999px;color:var(--badge-ink);font-size:.72rem;box-shadow:0 5px 16px #000000a3}.formula-step-marker{width:32px;height:32px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--text-bright);pointer-events:auto;box-shadow:none}.formula-step-number{display:inline-grid;place-items:center;width:20px;height:20px;border:2px solid var(--teal);border-color:inherit;border-radius:999px;background:var(--field);font-size:.58rem;line-height:1;box-shadow:0 3px 9px #000000ad}.formula-step-anchor{position:absolute;z-index:8;width:1px;height:1px;pointer-events:none;transform:scale(var(--map-inverse-zoom, 1));transform-origin:0 0}.formula-step-anchor .formula-step-marker{left:0;top:0;transform:translate(-50%,-50%)}.step-utility-dots{position:absolute;top:18px;left:17px;display:flex;gap:2px;min-height:10px;padding:2px 3px;border-radius:5px;background:var(--panel-glass-dark)}.formula-step-arrival{position:absolute;top:-34px;left:16px;display:grid;gap:1px;min-width:max-content;padding:3px 5px;border:1px solid rgba(255,255,255,.2);border-radius:5px;background:#0a0d0be6;color:var(--text-bright);font-family:JetBrains Mono,monospace;font-size:.56rem;line-height:1.2;pointer-events:none}.formula-step-arrival.is-alternate{top:13px}.formula-step-arrival.align-left{right:16px;left:auto;text-align:right}.formula-step-arrival b:last-child{color:#aab0aa}.formula-navigation-status{position:absolute;top:10px;left:10px;z-index:12;padding:5px 8px;border:1px solid rgba(69,196,176,.5);border-radius:5px;background:#0a0d0be6;color:#8be2d3;font-size:.65rem;pointer-events:none}.formula-navigation-status.is-warning{border-color:#e9b9498f;color:#e9b949}.step-utility-dots:empty{display:none}.step-utility-dots .dot{width:7px;height:7px;margin:0}.formula-step-marker.is-draggable{cursor:move;touch-action:none}.formula-step-marker:hover,.formula-step-marker:focus-visible,.formula-step-marker.is-selected{outline:0}.formula-step-marker:hover .formula-step-number,.formula-step-marker:focus-visible .formula-step-number,.formula-step-marker.is-selected .formula-step-number{outline:2px solid #fff;outline-offset:2px}.formula-timing-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:11;pointer-events:none}.formula-timing-group{position:absolute;width:1px;height:1px;pointer-events:auto;transform:scale(var(--map-inverse-zoom, 1));transform-origin:0 0}.map-board.is-formula-timing .formula-timing-group{pointer-events:none}.formula-timing-marker{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:4px;min-width:42px;height:24px;padding:0 6px;border:2px solid #fff;border-radius:999px;color:var(--badge-ink);font-family:JetBrains Mono,monospace;font-size:.62rem;font-weight:800;box-shadow:0 5px 14px #000000ad;transform:translate(-12px,-12px);transform-origin:12px 12px}.formula-timing-marker.timing-t,.formula-timing-option.timing-t .formula-timing-option-dot{background:#e9b949}.formula-timing-marker.timing-ct,.formula-timing-option.timing-ct .formula-timing-option-dot{background:#63b3ed}.formula-timing-marker.timing-mixed{background:linear-gradient(90deg,#e9b949 0,#e9b949 50%,#63b3ed 50%,#63b3ed)}.formula-timing-marker small{display:grid;place-items:center;width:15px;height:15px;border-radius:999px;background:var(--badge-ink);color:#fff;font-size:.52rem}.formula-timing-marker:hover,.formula-timing-marker:focus-visible,.formula-timing-marker.is-selected{outline:2px solid #fff;outline-offset:3px}.formula-timing-list{position:absolute;top:-10px;left:36px;display:grid;gap:4px;width:210px;padding:6px;border:1px solid rgba(255,255,255,.28);border-radius:7px;background:#0c0f0df7;box-shadow:0 10px 28px #000000b8;opacity:0;pointer-events:none;transform:translate(-4px);transition:opacity .12s ease,transform .12s ease}.formula-timing-group.align-left .formula-timing-list{right:18px;left:auto}.formula-timing-group:hover .formula-timing-list,.formula-timing-group:focus-within .formula-timing-list{opacity:1;pointer-events:auto;transform:translate(0)}.formula-timing-option{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:7px;align-items:center;min-height:38px;padding:5px 7px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-bright);text-align:left}.formula-timing-option:hover,.formula-timing-option:focus-visible,.formula-timing-option.is-selected{border-color:#45c4b0a8;background:#45c4b01a}.formula-timing-option-dot{width:8px;height:8px;border-radius:999px}.formula-timing-option>span:nth-child(2){display:grid;min-width:0}.formula-timing-option strong,.formula-timing-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.formula-timing-option small{color:#9ea49f;font-size:.68rem}.formula-timing-option b{color:var(--text-bright);font-family:JetBrains Mono,monospace;font-size:.7rem}.formula-library{min-height:340px}.formula-kind-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:14px;padding:4px;border:1px solid var(--line);border-radius:7px;background:var(--surface-deep)}.formula-kind-tabs button{min-width:0;min-height:34px;border:0;border-radius:5px;background:transparent;color:var(--text-soft);font-weight:700}.formula-kind-tabs button.active{background:#45c4b029;color:var(--text-bright);box-shadow:inset 0 0 0 1px #45c4b073}.icon-text-button,.formula-save-button,.formula-route-controls button,.formula-utility-add button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--field);color:var(--text-bright)}.primary-compact,.formula-save-button,.formula-route-controls button.active,.formula-utility-add button{border-color:#45c4b0b3;background:#45c4b024}.spawn-side-sections{display:grid;gap:13px;margin-top:16px}.spawn-side-section>strong,.formula-steps-heading strong,.formula-utility-heading strong{color:var(--text-soft);font-size:.72rem}.spawn-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:7px}.spawn-grid button{position:relative;min-width:0;min-height:31px;padding:0 3px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-cream);font-size:.68rem}.spawn-grid button.active{color:var(--badge-ink);font-weight:800}.spawn-grid button small{position:absolute;top:-4px;right:-3px;color:var(--amber);font-size:.56rem}.formula-section-heading,.formula-steps-heading,.formula-utility-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.spawn-formula-list{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.formula-section-heading>div strong,.formula-section-heading>div small{display:block}.formula-section-heading>div small{margin-top:3px;color:var(--text-soft);font-size:.66rem}.formula-list-item{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:6px;margin-top:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-deep)}.formula-list-item.is-active{border-color:var(--teal);background:#45c4b01a}.formula-list-item>button:first-child{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:9px;border:0;background:transparent;color:inherit;text-align:left}.formula-list-item strong,.formula-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.formula-list-item small{margin-top:3px;color:var(--text-soft);font-size:.66rem}.formula-delete-button{align-self:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-soft)}.formula-delete-button:hover{border-color:#ff695f8c;color:var(--text-bright)}.compact-empty{margin:12px 0 0;font-size:.76rem;line-height:1.5}.formula-editor label{margin-top:14px}.formula-step-count{min-width:44px;padding:5px 7px;border:1px solid var(--line);border-radius:5px;color:var(--amber);font-size:.67rem;text-align:center}.formula-interaction-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--field)}.formula-interaction-switch button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:36px;padding:0 6px;border:0;border-radius:0;background:transparent;color:var(--text-soft);font-size:.72rem}.formula-interaction-switch button+button{border-left:1px solid var(--line)}.formula-interaction-switch button:hover,.formula-interaction-switch button:focus-visible,.formula-interaction-switch button.active{background:#45c4b024;color:var(--mint)}.timing-side-badge{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 8px;border:1px solid rgba(255,255,255,.32);border-radius:999px;color:var(--badge-ink);font-size:.7rem;font-weight:800}.timing-side-badge.timing-t{background:#e9b949}.timing-side-badge.timing-ct{background:#63b3ed}.timing-editor-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:9px;margin-top:12px}.timing-editor-grid>label{margin-top:0}.timing-side-control{min-width:0;margin:0;padding:0;border:0}.timing-side-control legend{margin-bottom:6px;color:var(--text-soft);font-size:.82rem}.timing-side-control>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:7px}.timing-side-control button{min-width:0;min-height:38px;padding:0 6px;border:0;border-radius:0;background:var(--field);color:var(--text-soft)}.timing-side-control button+button{border-left:1px solid var(--line)}.timing-side-control button.active.timing-t{background:#e9b949;color:var(--badge-ink);font-weight:800}.timing-side-control button.active.timing-ct{background:#63b3ed;color:var(--badge-ink);font-weight:800}.timing-seconds-input{display:grid;grid-template-columns:minmax(0,1fr) 44px}.timing-seconds-input input{border-radius:7px 0 0 7px}.timing-seconds-input>span{display:grid;place-items:center;border:1px solid var(--line);border-left:0;border-radius:0 7px 7px 0;background:var(--field);color:var(--text-soft)}.timing-arrival-preview{display:block;margin-top:5px;color:var(--mint);font-family:JetBrains Mono,monospace;font-size:.68rem}.field-error{color:var(--red);font-size:.72rem}.timing-editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.timing-editor-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:var(--field);color:var(--text-bright)}.timing-editor-actions button:disabled{cursor:not-allowed;opacity:.45}.formula-route-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:14px}.formula-navigation-toggle{min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--field)}.formula-navigation-note{margin:7px 0 0;color:var(--mint);font-size:.66rem}.formula-navigation-note.is-warning{color:var(--gold-ink)}.route-color-control{display:flex!important;align-items:center;gap:7px;min-height:34px;margin:0!important;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--field)}.route-color-control input{width:24px;height:24px;padding:1px;border:0}.formula-steps-heading,.formula-utility-heading{margin-top:18px}.formula-steps-heading span,.formula-utility-heading span{color:var(--text-soft);font-size:.66rem}.formula-step-list{display:grid;gap:6px;margin-top:8px}.formula-step-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,28px);gap:4px;padding:4px;border:1px solid var(--line);border-radius:6px;background:var(--panel-deep)}.formula-step-row.is-active{border-color:var(--teal)}.formula-step-row>button{min-width:0;min-height:28px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--text-soft)}.formula-step-row>button:hover:not(:disabled){background:var(--hover-wash);color:var(--text-bright)}.formula-step-select{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;text-align:left}.formula-step-select>span{display:grid;place-items:center;width:23px;height:23px;border-radius:999px;background:#45c4b02e;color:var(--mint);font-size:.64rem}.formula-step-select strong{display:grid;overflow:hidden;color:var(--text-bright);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.formula-step-select strong small{overflow:hidden;color:#929993;font-family:JetBrains Mono,monospace;font-size:.56rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.formula-step-detail{margin-top:16px;padding-top:2px;border-top:1px solid var(--line)}.formula-floor-control,.timing-measured-fieldset{margin:12px 0 0;padding:9px;border:1px solid var(--line);border-radius:6px}.formula-floor-control legend,.timing-measured-fieldset legend{padding:0 4px;color:var(--text-soft);font-size:.68rem}.formula-floor-control>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.formula-floor-control button{min-height:30px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-soft)}.formula-floor-control button.active{border-color:var(--teal);background:var(--accent-wash);color:var(--accent-wash-ink)}.timing-calculated-panel{display:grid;gap:6px;margin-top:14px}.timing-calculated-panel>div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:var(--field)}.timing-calculated-panel span{color:var(--text-soft);font-size:.68rem}.timing-calculated-panel strong{color:var(--mint);font-family:JetBrains Mono,monospace;font-size:.78rem}.timing-measured-fieldset .timing-editor-grid{margin-top:0}.timing-reset-button{display:inline-flex;align-items:center;gap:6px;min-height:30px;margin-top:8px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-soft)}.formula-utility-list{display:grid;gap:5px;margin-top:8px}.formula-utility-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;min-width:0;border:1px solid var(--line);border-radius:5px;background:var(--panel-deep);color:inherit}.formula-utility-open{display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:7px;border:0;background:transparent;color:inherit;text-align:left}.formula-utility-list .dot{margin:0}.formula-utility-list strong,.formula-utility-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.formula-utility-actions{display:flex;gap:2px;padding-right:4px}.formula-utility-actions button,.formula-utility-row.is-missing>button{display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-soft)}.formula-utility-actions button:hover:not(:disabled),.formula-utility-row.is-missing>button:hover{border-color:var(--line);color:var(--text-bright)}.formula-utility-actions button:disabled{opacity:.28}.formula-utility-row.is-missing{border-color:#e0655b73;padding:6px 5px 6px 8px}.formula-utility-missing{min-width:0}.formula-utility-missing strong,.formula-utility-missing small{display:block}.formula-utility-missing strong{color:#edaaa4;font-size:.7rem}.formula-utility-missing small{color:var(--text-soft);font-family:JetBrains Mono,monospace;font-size:.56rem}.formula-clean-missing,.formula-choose-utilities{width:100%;min-height:33px;margin-top:8px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-soft)}.formula-choose-utilities{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-color:#45c4b080;color:var(--mint)}.formula-utility-list small{color:var(--text-soft);font-size:.64rem}.formula-utility-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:8px}.formula-utility-add select{min-width:0}.formula-save-button{width:100%;margin-top:16px}.formula-utility-picker{display:flex;flex-direction:column;min-height:min(720px,calc(100vh - 128px))}.formula-picker-count{color:var(--mint);font-size:.68rem}.formula-picker-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:12px}.formula-picker-types button{min-width:0;min-height:31px;padding:0 4px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-soft);font-size:.66rem}.formula-picker-types button.active{border-color:#45c4b0a6;background:var(--accent-wash);color:var(--accent-wash-ink)}.formula-picker-list{display:grid;gap:5px;max-height:540px;margin-top:12px;overflow-y:auto}.formula-picker-list>button{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:inherit;text-align:left}.formula-picker-list>button.is-selected{border-color:#45c4b0ad;background:#45c4b01a}.formula-picker-list strong,.formula-picker-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.formula-picker-list strong{color:var(--text-bright);font-size:.7rem}.formula-picker-list small{margin-top:2px;color:var(--text-soft);font-size:.58rem}.formula-picker-check{display:inline-flex;align-items:center;gap:3px;color:var(--mint);font-size:.58rem}.formula-picker-done{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:38px;margin-top:12px;border:1px solid rgba(69,196,176,.72);border-radius:6px;background:var(--accent-wash);color:var(--accent-wash-ink);font-weight:800}.formula-chain-actions{display:flex;align-items:center;gap:8px;margin-top:12px}.formula-chain-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border:1px solid var(--line);border-radius:6px;background:var(--panel-deep);color:var(--text-cream);padding:0 10px}.formula-chain-actions button:disabled{cursor:not-allowed;opacity:.55}.formula-chain-actions .primary-action{flex:1}.formula-utility-map-marker.is-static{cursor:default;z-index:14}.formula-utility-map-marker{position:absolute;z-index:12;width:10px;height:10px;padding:0;border:2px solid var(--surface-sunken);border-radius:999px;transform:translate(calc(-50% + var(--utility-offset)),-50%) scale(var(--map-inverse-zoom, 1));transform-origin:center;box-shadow:0 0 0 1px #fff9,0 2px 6px #000000bf}.formula-utility-map-marker.is-selected{width:14px;height:14px;border-color:#fff;box-shadow:0 0 0 2px #2dd4bf,0 2px 8px #000c}.map-board{position:relative;container-type:inline-size;width:100%;aspect-ratio:1220 / 1237;margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-sunken);box-shadow:inset 0 0 0 1px #ffffff08,0 24px 80px #00000057}.map-board.is-demo-coordinate-surface{aspect-ratio:1;background:var(--surface-deep)}.demo-map-coordinate-surface{position:absolute;top:0;right:0;bottom:0;left:0}.demo-map-coordinate-surface .demo-map-image{object-fit:contain}.demo-nav-surface{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.demo-nav-surface polygon{fill:#5dcf7f14;stroke:#89efa62e;stroke-width:.04}.map-board.is-adding{cursor:crosshair}.map-board.is-browsing{cursor:default}.map-board.has-map-zoom{touch-action:none}.map-board.is-zoomed:not(.is-adding){cursor:grab}.map-board.is-panning,.map-board.is-panning.is-adding{cursor:grabbing}.map-viewport-plane{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform-origin:0 0;will-change:transform}.map-image{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.point-calibration-preview{position:absolute;top:0;right:0;bottom:0;left:0;z-index:22;pointer-events:none}.point-calibration-preview svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.point-calibration-preview line{fill:none;stroke:#f0c86fb8;stroke-width:1.25;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.point-calibration-marker{position:absolute;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;transform:scale(var(--map-inverse-zoom, 1));box-shadow:0 0 0 3px #070908b8}.point-calibration-marker.is-before{border:2px solid rgba(234,231,222,.72);background:#101311d1}.point-calibration-marker.is-after{border:2px solid var(--gold-light);background:#45c4b0}.point-calibration-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;display:grid;place-items:center;padding:20px;background:#030504b8}.point-calibration-dialog{width:min(440px,100%);padding:22px;border:1px solid rgba(217,182,106,.36);border-radius:8px;background:var(--surface-sunken);box-shadow:0 24px 80px #00000073}.point-calibration-heading{display:flex;align-items:center;gap:12px}.point-calibration-heading h2{margin:2px 0 0;font-size:1.08rem}.point-calibration-icon{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:1px solid rgba(240,200,111,.34);border-radius:50%;color:var(--gold-light)}.point-calibration-copy{margin:18px 0 14px;color:var(--text-soft);line-height:1.65}.point-calibration-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-block:1px solid var(--line)}.point-calibration-counts div{display:flex;align-items:baseline;gap:7px;padding:14px 4px}.point-calibration-counts div+div{padding-left:18px;border-left:1px solid var(--line)}.point-calibration-counts strong{color:var(--gold-light);font-family:JetBrains Mono,monospace;font-size:1.35rem}.point-calibration-counts span,.point-calibration-note{color:var(--text-soft);font-size:.78rem}.point-calibration-note{margin:12px 0 18px}.point-calibration-actions{display:flex;justify-content:flex-end;gap:9px}.point-calibration-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 13px}.point-calibration-actions button.primary{border-color:#45c4b094;background:var(--accent-wash);color:var(--mint)}.map-labels text{fill:#fff8e1b8;font-family:JetBrains Mono,monospace;font-size:28px;font-weight:700;letter-spacing:0}.marker-anchor{position:absolute;z-index:4;width:1px;height:1px;transform:scale(var(--map-inverse-zoom, 1));transform-origin:0 0}.marker-anchor.is-open{z-index:40}.marker-anchor.has-overview:hover,.marker-anchor.has-overview:focus-within{z-index:39}.marker-anchor.has-overview{--overview-width: clamp(112px, 20cqw, 156px)}.marker{position:absolute;top:0;left:0;display:block;width:13px;height:13px;min-width:13px;min-height:13px;padding:0;border:2px solid rgba(0,0,0,.72);border-radius:999px;color:var(--badge-ink);transform:translate(-50%,-50%);transform-origin:center;box-shadow:0 0 0 1px #ffffff6b,0 7px 16px #0000007a}.marker:hover,.marker:focus-visible,.marker-anchor.is-open .marker{outline:2px solid rgba(255,255,255,.92);outline-offset:3px}.marker-anchor.is-draggable .marker{cursor:move;touch-action:none}.marker-anchor.is-draggable .marker:after{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px dashed rgba(255,255,255,.55);border-radius:999px;content:"";opacity:.72;pointer-events:none}.marker-anchor.is-dragging{z-index:50}.marker-anchor.is-dragging .marker{cursor:grabbing;outline:2px solid #fff;outline-offset:4px;transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 4px #45c4b03d,0 9px 22px #0000009e}.marker-overview{position:absolute;z-index:8;display:grid;width:var(--overview-width);gap:2px;padding:4px;border:1px solid var(--gold-wash-border);border-radius:6px;background:var(--panel-glass);box-shadow:0 8px 24px #0000004d;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.marker-overview:before{position:absolute;top:50%;width:20px;height:1px;background:#d9b66ab8;content:""}.marker-overview.place-right{left:20px}.marker-overview.place-right:before{right:100%}.marker-overview.place-left{right:20px}.marker-overview.place-left:before{left:100%}.marker-overview.place-center{top:50%;transform:translateY(-50%)}.marker-overview.place-down{top:-7px}.marker-overview.place-up{bottom:-7px}.marker-anchor.has-overview:hover .marker-overview,.marker-anchor.has-overview:focus-within .marker-overview,.marker-anchor.has-overview.is-open .marker-overview{border-color:var(--amber);background:var(--panel-glass-dark);box-shadow:0 14px 34px #0000007a}.marker-overview-item{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:center;gap:6px;width:100%;min-height:24px;padding:3px 5px;overflow:hidden;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-bright);font-size:.64rem;line-height:1.2;text-align:left}.marker-overview-item .dot{width:7px;height:7px;margin:0;border-radius:999px}.marker-overview-item>span:last-child{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.marker-overview-item:hover,.marker-overview-item:focus-visible,.marker-overview-item.is-previewed{border-color:#45c4b06b;background:var(--accent-wash);color:var(--accent-wash-ink)}.marker-overview-item.is-selected{border-color:#ffffffb3;background:#ffffff17}.marker-anchor.has-overview.is-open .marker-overview{z-index:43}.marker-anchor.has-overview .marker-workbench{grid-template-columns:minmax(0,1fr);width:min(250px,38cqw)}.marker-anchor.has-overview .marker-workbench-list{display:none}.marker-anchor.has-overview .marker-workbench.align-right{left:calc(30px + var(--overview-width, 156px))}.marker-anchor.has-overview .marker-workbench.align-left{right:calc(30px + var(--overview-width, 156px))}.marker-workbench{position:absolute;z-index:42;display:grid;grid-template-columns:minmax(112px,.72fr) minmax(190px,1.28fr);width:min(430px,62cqw);max-height:370px;overflow:visible;border:1px solid rgba(217,182,106,.5);border-radius:7px;background:var(--panel-glass-dark);color:var(--text-bright);box-shadow:0 20px 52px #00000094;opacity:0;pointer-events:none;text-align:left;visibility:hidden;transform:translate(0) scale(.985);transform-origin:left 20px;transition:opacity .11s ease,transform .11s ease,visibility .11s ease}.marker-anchor.is-open .marker-workbench{opacity:1;pointer-events:auto;transform:translate(0) scale(1);visibility:visible}.marker-workbench.align-right{left:22px}.marker-workbench.align-left{right:22px;transform-origin:right 20px}.marker-workbench.align-center{left:0;transform:translate(-50%) scale(.985);transform-origin:center bottom}.marker-anchor.is-open .marker-workbench.align-center{transform:translate(-50%) scale(1)}.marker-workbench.align-down{top:-20px}.marker-workbench.align-up{bottom:-20px}.marker-workbench.align-center.place-below{top:22px}.marker-workbench.align-center.place-above{bottom:22px;transform-origin:center top}.marker-workbench-bridge{position:absolute;z-index:1;width:22px;height:18px;pointer-events:auto}.marker-workbench-bridge:before{position:absolute;top:8px;right:0;left:0;height:2px;background:#d9b66ac2;content:""}.marker-workbench-bridge:after{position:absolute;top:5px;width:7px;height:7px;border:2px solid var(--amber);border-radius:999px;background:var(--panel-deep);content:""}.marker-workbench.align-right .marker-workbench-bridge{right:100%}.marker-workbench.align-right .marker-workbench-bridge:after{left:-3px}.marker-workbench.align-left .marker-workbench-bridge{left:100%}.marker-workbench.align-left .marker-workbench-bridge:after{right:-3px}.marker-workbench.align-down .marker-workbench-bridge{top:11px}.marker-workbench.align-up .marker-workbench-bridge{bottom:11px}.marker-workbench.align-center .marker-workbench-bridge{left:calc(50% - 9px);width:18px;height:22px}.marker-workbench.align-center .marker-workbench-bridge:before{top:0;right:auto;left:8px;width:2px;height:22px}.marker-workbench.align-center.place-below .marker-workbench-bridge{bottom:100%}.marker-workbench.align-center.place-below .marker-workbench-bridge:after{top:-3px;left:5px}.marker-workbench.align-center.place-above .marker-workbench-bridge{top:100%}.marker-workbench.align-center.place-above .marker-workbench-bridge:after{top:16px;left:5px}.marker-workbench-close{position:absolute;top:7px;right:7px;z-index:4;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:5px;background:#0d100edb;color:#aca89d}.marker-workbench-close:hover,.marker-workbench-close:focus-visible{border-color:var(--line);color:var(--text-bright)}.marker-workbench-list{min-width:0;max-height:370px;overflow:auto;padding:9px;border-right:1px solid var(--line);background:var(--dropzone-bg)}.marker-workbench-heading{display:flex;align-items:center;justify-content:space-between;min-height:30px;padding:0 5px 7px;color:var(--text-soft)}.marker-workbench-heading strong{color:var(--amber);font-family:JetBrains Mono,monospace;font-size:.72rem}.marker-workbench-heading span{font-size:.64rem}.marker-workbench-item{display:grid;grid-template-columns:10px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:49px;padding:7px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:inherit;text-align:left}.marker-workbench-item+.marker-workbench-item{margin-top:4px}.marker-workbench-item:hover,.marker-workbench-item:focus-visible,.marker-workbench-item.is-active{border-color:#45c4b07a;background:#45c4b01a}.marker-workbench-item .dot{margin:0}.marker-workbench-item>span:last-child,.marker-workbench-item strong,.marker-workbench-item small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.marker-workbench-item strong{color:var(--text-bright);font-size:.78rem}.marker-workbench-item small{margin-top:3px;color:var(--text-soft);font-size:.66rem}.throw-method-tag{display:inline-flex;align-items:center;min-height:18px;margin-left:6px;padding:1px 6px;border:1px solid var(--gold-wash-border);border-radius:6px;background:var(--gold-wash);color:var(--gold-light);font-family:JetBrains Mono,monospace;font-size:.62rem;line-height:1.2;white-space:nowrap}.marker-workbench-preview{display:grid;align-content:start;gap:10px;min-width:0;padding:11px}.marker-workbench-image{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--surface-deep)}.marker-workbench-image-button{display:block;width:100%;height:100%;padding:0;border:0;background:transparent}.marker-workbench-image-button img{display:block;width:100%;height:100%;object-fit:contain}.marker-workbench-image-button>span{position:absolute;top:7px;right:7px;display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid rgba(255,255,255,.16);border-radius:5px;background:#0a0d0bd6;color:#fff8ed}.marker-workbench-image-empty{display:grid;place-items:center;align-content:center;gap:7px;width:100%;height:100%;color:var(--text-soft);font-size:.75rem}.marker-workbench-image-nav{position:absolute;top:50%;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:28px;height:38px;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:5px;background:var(--panel-glass-dark);color:var(--text-bright);transform:translateY(-50%)}.marker-workbench-image-nav.is-previous{left:6px}.marker-workbench-image-nav.is-next{right:6px}.marker-workbench-image-count{position:absolute;right:7px;bottom:7px;padding:3px 6px;border-radius:4px;background:var(--panel-glass-dark);color:var(--text-soft);font-family:JetBrains Mono,monospace;font-size:.62rem}.marker-workbench-copy>span,.marker-workbench-copy>strong,.marker-workbench-copy>p{display:block;margin:0}.marker-workbench-copy>span{color:var(--text-soft);font-size:.68rem}.marker-workbench-copy>strong{margin-top:3px;padding-right:28px;overflow:hidden;color:var(--text-bright);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.marker-workbench-copy>p{display:-webkit-box;margin-top:6px;overflow:hidden;color:var(--text-cream);font-size:.74rem;line-height:1.5;white-space:pre-wrap;-webkit-box-orient:vertical;-webkit-line-clamp:3}.marker.is-selected{outline:2px solid rgba(255,255,255,.92);outline-offset:3px;z-index:3}.marker.has-multiple{box-shadow:0 0 0 3px #d9b66a94,0 7px 16px #0000007a}.marker-smoke,.dot.marker-smoke,.type-pill.marker-smoke{background:#facc15}.marker-molotov,.dot.marker-molotov,.type-pill.marker-molotov{background:var(--red)}.marker-flash,.dot.marker-flash,.type-pill.marker-flash{background:#fff;box-shadow:inset 0 0 0 1px #101211b8}.marker-he,.dot.marker-he,.type-pill.marker-he{background:var(--green)}.marker-idea,.dot.marker-idea,.type-pill.marker-idea{background:var(--amber)}.editor{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}.empty-editor{min-height:220px}.location-browser{display:grid;gap:14px}.location-count{min-height:28px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;color:var(--text-soft);font-family:JetBrains Mono,monospace;font-size:.66rem}.location-preview{display:grid;gap:9px}.location-preview-stage{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--surface-deep)}.location-preview-stage>img{display:block;width:100%;height:100%;object-fit:contain}.location-preview-empty{display:grid;place-items:center;align-content:center;gap:9px;width:100%;height:100%;padding:20px;color:var(--text-soft);text-align:center}.location-preview-empty span{max-width:26ch;font-size:.82rem;line-height:1.55}.location-preview-nav{position:absolute;top:50%;display:inline-flex;align-items:center;justify-content:center;width:34px;height:42px;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:var(--panel-glass-dark);color:var(--text-bright);transform:translateY(-50%)}.location-preview-nav:hover,.location-preview-nav:focus-visible{border-color:var(--teal)}.location-preview-nav.is-previous{left:7px}.location-preview-nav.is-next{right:7px}.location-preview-counter{position:absolute;right:7px;bottom:7px;min-width:46px;padding:4px 7px;border-radius:5px;background:var(--panel-glass-dark);color:var(--text-soft);font-family:JetBrains Mono,monospace;font-size:.66rem;text-align:center}.location-preview-copy>span,.location-preview-copy>strong,.location-preview-copy>p{display:block;margin:0}.location-preview-copy>span{color:var(--text-soft);font-size:.72rem}.location-preview-copy>strong{margin-top:3px;color:var(--text-bright);font-size:.96rem}.location-preview-copy>p{margin-top:5px;color:var(--text-cream);font-size:.78rem;line-height:1.55;white-space:pre-wrap}.location-utility-list{display:grid;gap:8px}.location-utility-item{display:grid;grid-template-columns:minmax(0,1fr) 40px;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--surface-sunken)}.location-utility-item.is-previewed{border-color:#45c4b0b8;background:#45c4b014}.location-utility-preview-button{display:grid;grid-template-columns:10px minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:10px;border:0;background:transparent;color:inherit;text-align:left}.location-utility-preview-button .dot{margin:0}.location-utility-copy{display:block;min-width:0}.location-utility-copy strong,.location-utility-copy small,.location-utility-copy>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-utility-copy strong{color:var(--text-bright);font-size:.86rem}.location-utility-copy small,.location-utility-copy>span{margin-top:3px;color:var(--text-soft);font-size:.7rem}.location-utility-edit-button{display:inline-flex;align-items:center;justify-content:center;width:40px;border:0;border-left:1px solid var(--line);background:var(--surface-deep);color:var(--text-soft)}.location-utility-edit-button:hover,.location-utility-edit-button:focus-visible{background:#d9b66a1f;color:var(--text-bright)}.editor label{display:grid;gap:6px;margin-top:12px}.editor label span{color:var(--text-soft);font-size:.82rem}.editor input,.editor select,.editor textarea{width:100%;border:1px solid var(--line);border-radius:7px;outline:0;background:var(--field);color:var(--text-bright);padding:10px;resize:vertical}.image-section{margin-top:13px}.image-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-soft);font-size:.82rem}.image-upload-button{position:relative;display:inline-flex!important;grid-template-columns:none!important;align-items:center;gap:6px!important;min-height:32px;margin:0!important;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:var(--panel-deep);color:var(--text-cream);cursor:pointer}.image-upload-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.paste-zone{margin-top:8px;min-height:94px;border:1px dashed var(--line);border-radius:8px;background:var(--dropzone-bg);display:grid;place-items:center;padding:10px}.paste-zone p{margin:0;color:var(--text-soft);font-size:.86rem;text-align:center}.paste-zone.has-images{display:block}.paste-zone:focus,.paste-zone:focus-visible{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px #45c4b02e}.image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.image-thumb{position:relative;margin:0;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-deep)}.image-open-button{display:block;width:100%;height:100%;padding:0;border:0;background:var(--surface-deep);cursor:zoom-in}.image-open-button img{display:block;width:100%;height:100%;object-fit:cover}.tactic-image-status{display:grid;width:100%;height:100%;min-height:72px;place-items:center;padding:12px;background:var(--dropzone-bg);color:var(--text-soft);font-size:.76rem;text-align:center}.tactic-image-status.is-error{color:var(--red)}.image-open-button:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}.image-delete-button{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid rgba(0,0,0,.42);border-radius:999px;background:#101311d1;color:#fff8ed}.image-delete-button:hover{background:#ff695fe0}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:56px 88px;background:#030504f0}.image-lightbox-image{display:block;max-width:100%;max-height:calc(100vh - 112px);object-fit:contain;border:1px solid rgba(255,255,255,.14);border-radius:6px;box-shadow:0 26px 90px #0000009e}.lightbox-close-button,.lightbox-nav-button{position:fixed;z-index:1001;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:#101311e6;color:#fff8ed}.lightbox-close-button:hover,.lightbox-nav-button:hover{border-color:#45c4b0b8;background:#1d2521f5}.lightbox-close-button:focus-visible,.lightbox-nav-button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.lightbox-close-button{top:18px;right:18px}.lightbox-nav-button{top:50%;transform:translateY(-50%)}.lightbox-nav-button.is-previous{left:20px}.lightbox-nav-button.is-next{right:20px}.lightbox-caption{position:fixed;bottom:18px;left:18px;display:grid;gap:2px;max-width:min(430px,42vw);padding:8px 13px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:#101311e0;color:#fff8ed}.lightbox-caption strong{overflow:hidden;font-size:.95rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.lightbox-caption span{color:#aca89d;font-size:.78rem;line-height:1.3}.lightbox-counter{position:fixed;bottom:18px;left:50%;min-width:54px;padding:5px 9px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:#101311e0;color:#aca89d;font-family:JetBrains Mono,monospace;font-size:.74rem;text-align:center;transform:translate(-50%)}.editor input:focus,.editor select:focus,.editor textarea:focus{border-color:var(--teal)}.hint-field textarea{min-height:94px;line-height:1.6}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.throw-method-field,.throw-method-custom-field{grid-column:1 / -1}.throw-method-custom-field{margin-top:0!important}.type-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;color:var(--badge-ink);font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700;white-space:nowrap}.utility-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.utility-tabs button{min-height:30px;border:1px solid rgba(0,0,0,.42);border-radius:999px;color:var(--badge-ink);font-size:.78rem;font-weight:800;padding:0 10px}.utility-tabs button.active{outline:2px solid rgba(255,255,255,.9);outline-offset:2px}.editor-back-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:7px}.editor-back-button{justify-content:flex-start;min-height:32px;margin-bottom:12px;padding:0 8px;border:1px solid var(--line);background:var(--panel-deep);color:var(--text-soft);font-size:.8rem}.editor-back-button:hover{border-color:#d9b66a7a;color:var(--text-bright)}.primary-action{border-color:#45c4b08f!important;background:#45c4b02e!important}.danger-action{border-color:#ff695f80!important;background:#ff695f1a!important}@media(max-width:1180px){.workspace{grid-template-columns:minmax(230px,290px) minmax(0,1fr)}.editor{position:static;grid-column:1 / -1;max-height:none}}@media(max-width:820px){.app-shell{padding:10px}.left-rail{position:static;max-height:none;overflow-y:visible}.top-strip,.workspace{display:grid;grid-template-columns:1fr}.top-strip{align-items:start}.top-actions{justify-content:flex-start}.map-shell,.demo-center-stage{order:-2}.editor{order:-1}.map-toolbar{align-items:flex-start}.map-toolbar-actions{align-items:flex-end;flex-direction:column}.map-view-controls{width:100%;justify-content:flex-end}.map-view-switch button{min-width:62px}.marker-anchor.has-overview{--overview-width: clamp(98px, 22cqw, 126px)}.marker-overview{gap:1px;padding:3px}.marker-overview-item{grid-template-columns:7px minmax(0,1fr);gap:5px;min-height:21px;padding:2px 4px;font-size:.58rem}.marker-anchor.has-overview .marker-workbench{grid-template-columns:minmax(0,1fr);width:auto}.map-hint{display:none}.left-rail{grid-template-columns:1fr}.left-rail.is-formula-picker-active{order:-1}.list-scroll{max-height:260px}.marker-workbench{position:fixed;top:auto!important;right:10px!important;bottom:10px!important;left:10px!important;grid-template-columns:minmax(118px,.72fr) minmax(0,1.28fr);width:auto;max-height:min(360px,calc(100dvh - 20px));transform:translateY(8px) scale(.99);transform-origin:bottom center}.marker-workbench.align-center{transform:translateY(8px) scale(.99)}.marker-anchor.is-open .marker-workbench,.marker-anchor.is-open .marker-workbench.align-center{transform:translateY(0) scale(1)}.marker-workbench-bridge{display:none}.marker-workbench-list{max-height:min(360px,calc(100dvh - 20px))}.marker-workbench-preview{padding:9px}.marker-workbench-copy>p{-webkit-line-clamp:2}}@media(max-width:520px){.field-grid,.io-actions,.editor-actions,.side-control{grid-template-columns:1fr}.image-lightbox{padding:62px 50px}.image-lightbox-image{max-height:calc(100vh - 124px)}.lightbox-nav-button{width:40px;height:48px}.lightbox-nav-button.is-previous{left:5px}.lightbox-nav-button.is-next{right:5px}.lightbox-caption{left:12px;right:12px;bottom:62px;max-width:none}.segmented{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-route-controls,.formula-utility-add{grid-template-columns:1fr}.route-color-control{justify-content:space-between}.formula-step-arrival{top:-21px;padding:2px 3px;font-size:.5rem}.formula-step-arrival.is-alternate{top:13px}.formula-step-arrival b:last-child{display:none}h1{font-size:1.9rem}.marker-workbench{grid-template-columns:112px minmax(0,1fr)}.marker-workbench-heading{align-items:flex-start;flex-direction:column;justify-content:center;gap:2px}.marker-workbench-item{min-height:45px;padding:6px}.marker-workbench-preview{gap:7px}.marker-workbench-copy>strong{font-size:.82rem}.marker-workbench-copy>p{font-size:.7rem}}@media(prefers-reduced-motion:reduce){.marker-workbench{transition:none}}.demo-event-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.demo-event-layer>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.demo-event-flight line{stroke:#f0c24eb8;stroke-width:1.3;stroke-dasharray:3 2}.demo-event-flight circle,.demo-event-flight polygon{stroke:#0b0e0d;stroke-width:.5;vector-effect:non-scaling-stroke}.demo-event-flight.is-he polygon{fill:#ff5f57}.demo-event-flight.is-smoke circle{fill:#91a5b0}.demo-event-flight.is-fire polygon{fill:#ff8a35}.demo-event-flight.is-flash polygon{fill:#fff17a;filter:drop-shadow(0 0 2px #fff7b2)}.demo-event-flight text{fill:#111512;font-family:JetBrains Mono,monospace;font-size:.72px;font-weight:900;text-anchor:middle}.demo-event-area-shape{stroke-width:.35;vector-effect:non-scaling-stroke}.demo-event-area-shape.is-smoke{fill:#75848f7a;stroke:#dae4eab8;filter:drop-shadow(0 0 2px rgba(169,188,199,.45))}.demo-event-area-shape.is-fire{fill:#ee531b6b;stroke:#ffae4be6;filter:drop-shadow(0 0 2px rgba(255,85,24,.58))}.demo-event-area-timer,.demo-event-pulse,.demo-event-marker{position:absolute;translate:-50% -50%;border-radius:50%}.demo-event-area-timer{display:inline-flex;align-items:center;gap:3px;min-width:38px;padding:2px 5px;border:1px solid rgba(255,255,255,.32);border-radius:3px;background:#080b0ad1;color:var(--text-bright);font-family:JetBrains Mono,monospace;font-size:.54rem;font-weight:800;line-height:1;box-shadow:0 2px 8px #00000080}.demo-event-area-timer b{display:grid;place-items:center;width:14px;height:14px;border-radius:2px;font-size:.58rem}.demo-event-area-timer.is-smoke b{background:#91a5b0;color:var(--badge-ink)}.demo-event-area-timer.is-fire b{background:#ff8a35;color:#231108}.demo-event-area-timer[data-duration-source=estimated]{border-style:dashed;opacity:.82}.demo-event-pulse{width:5%;aspect-ratio:1;border:2px solid currentColor;box-shadow:0 0 16px currentColor}.demo-event-pulse.is-flash{color:#fff8c5}.demo-event-pulse.is-he{color:#ff7b63}.demo-event-pulse.is-damage{color:#f24f5e}.demo-event-marker{display:grid;place-items:center;width:22px;height:22px;color:#f8f9fa;background:#191e24;border:2px solid currentColor;font-size:12px;font-weight:800;box-shadow:0 3px 12px #0000008c}.demo-event-marker.is-kill{color:#ff5f6d;font-size:19px}.demo-event-marker.is-plant{color:#f4c54f}.demo-event-marker.is-defuse{color:#55b7ff}.demo-timeline{display:grid;gap:8px;margin-top:14px;padding:11px;border:1px solid var(--gold-wash-border);border-radius:7px;background:var(--dropzone-bg)}.demo-timeline-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.demo-play-button{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 9px;border:1px solid rgba(217,182,106,.5);border-radius:5px;background:#d9b66a1f;color:#fff0c7;font-size:.68rem}.demo-round-clock{color:#f9d987;font-family:JetBrains Mono,monospace;font-size:1rem;text-align:center}.demo-timeline select{min-height:30px;border:1px solid var(--line);border-radius:5px;background:var(--field);color:var(--text-soft);font-size:.67rem}.demo-timeline-track{position:relative;padding:5px 0 7px}.demo-timeline-track input{width:100%;margin:0;accent-color:var(--amber)}.demo-timeline-events{position:absolute;right:7px;bottom:1px;left:7px;height:6px}.demo-timeline-events button{position:absolute;width:18px;height:24px;padding:0;translate:-50% 0;border:0;background:transparent}.demo-timeline-events button:after{position:absolute;top:0;left:6px;width:6px;height:10px;border-radius:1px;background:var(--teal);box-shadow:0 0 5px #45c4b08c;content:""}.demo-timeline-scale{display:flex;justify-content:space-between;color:#777d77;font-family:JetBrains Mono,monospace;font-size:.59rem}.demo-focus-pair{grid-column:1 / -1}.demo-player-details{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.demo-player-details-title{display:flex;align-items:center;gap:9px}.demo-player-details-title>span{display:grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:800}.demo-player-details-title>span.is-t{color:var(--gold-ink)}.demo-player-details-title>span.is-ct{color:var(--blue-bright)}.demo-player-details-title div{display:grid;gap:2px;min-width:0}.demo-player-details-title strong{overflow:hidden;color:var(--text-bright);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.demo-player-details-title small{color:var(--text-soft);font-size:.63rem}.demo-player-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}.demo-player-stats>div{min-width:0;padding:7px;border:1px solid var(--line);border-radius:5px;background:var(--panel-deep)}.demo-player-stats dt{color:#727a73;font-size:.57rem}.demo-player-stats dd{overflow:hidden;margin:3px 0 0;color:var(--text-bright);font-size:.68rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.demo-next-event{display:grid;gap:2px;padding:9px;border-left:2px solid var(--amber);background:#d9b66a12}.demo-next-event>span,.demo-arrivals>span{color:#7f877f;font-family:JetBrains Mono,monospace;font-size:.57rem;letter-spacing:.06em;text-transform:uppercase}.demo-next-event strong{color:#fff0ca;font-size:.74rem}.demo-next-event small{color:var(--text-soft);font-size:.62rem}.demo-arrivals{display:grid;gap:5px}.demo-arrivals>div{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px dotted var(--line)}.demo-arrivals strong{color:var(--text-cream);font-size:.67rem}.demo-arrivals small{color:#828982;font-family:JetBrains Mono,monospace;font-size:.61rem}.demo-arrivals p{margin:0;color:var(--text-soft);font-size:.66rem}.demo-formula-candidate-preview{display:grid;gap:8px;padding:9px;border:1px solid rgba(69,196,176,.3);border-radius:6px;background:#45c4b00f}.demo-formula-candidate-preview>div{display:grid;gap:3px}.demo-formula-candidate-preview span{color:#7b8b84;font-family:JetBrains Mono,monospace;font-size:.57rem;letter-spacing:.06em;text-transform:uppercase}.demo-formula-candidate-preview strong{color:#d9eee9;font-size:.68rem}.demo-formula-candidate-preview button{min-height:34px;border:1px solid rgba(69,196,176,.5);border-radius:5px;background:#45c4b021;color:#b8f0e6;font-size:.68rem;font-weight:750}.demo-formula-candidate-preview button:disabled{cursor:not-allowed;opacity:.42}@media(max-width:520px){.demo-timeline-head{grid-template-columns:1fr 1fr}.demo-round-clock{grid-row:1;grid-column:1 / -1}.demo-play-button{justify-content:center}.demo-timeline select{width:100%}.demo-player-stats{grid-template-columns:1fr}.demo-player-stats>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.demo-player-stats dd{margin-top:0}.demo-round-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-utility-summary{grid-template-columns:1fr}.demo-utility-ledger{max-height:none}.demo-utility-copy small{white-space:normal}}
