:root{--ink: #1a1a1a;--ink-soft: #5a5a5a;--ink-faint: #8a8a8a;--ink-inverse: #ffffff;--ink-inverse-soft: #bbbbbb;--line: #d4d4d4;--line-soft: #ececec;--paper: #ffffff;--paper-tint: #f7f7f5;--row-hover: #fafafa;--accent: #1f5c8b;--accent-deep: #17456a;--accent-soft: #e8f0f6;--good: #0a7d28;--good-soft: #e8f5ea;--bad: #b00020;--bad-soft: #fdecef;--warn: #8a6100;--warn-soft: #fdf4e0;--auto: #6a4c93;--auto-soft: #f1ecf7;--bankrupt-ink: #aa3333;--bankrupt-soft: #fde8e8;--r-sm: 3px;--r-md: 4px;--r-lg: 6px;--shadow-chip: 0 2px 6px rgba(0, 0, 0, .22);--shadow-chip-strong: 0 2px 6px rgba(0, 0, 0, .27);--shadow-inset: inset 0 2px 0 rgba(0, 0, 0, .13);--scrim: rgba(26, 26, 26, .8);--frozen-scrim: rgba(17, 24, 28, .86);--tour-scrim: rgba(16, 22, 27, .62);--tour-ring: #ffcc4d;--shadow-tour: 0 10px 30px rgba(0, 0, 0, .3);--board-bg: #eef4f8;--board-zone-fill: rgba(255, 255, 255, .53);--board-zone-line: #b9d3e4;--board-cell-line: #c9d8e2;--board-cell-empty: #f6f9fb;--zone-cash-fill: #d8f0dc;--zone-cash-line: #4c9a5f;--zone-credit-fill: #fdf3d4;--zone-credit-line: #c9a227;--zone-loan-long-fill: #f7dcdc;--zone-loan-long-line: #b04545;--zone-loan-short-fill: #fbe4d0;--zone-loan-short-line: #c07830;--zone-loan-other-fill: #fdf0cf;--zone-loan-other-line: #c9a227;--zone-production-fill: #d9ecf7;--zone-production-line: #3d86b5;--zone-material-fill: #dfeef8;--zone-material-line: #3d86b5;--zone-material-order-fill: #fdf7cf;--zone-material-order-line: #c9a227;--zone-product-fill: #fbe9c0;--zone-product-line: #c9922a;--zone-order-fill: #f8dde6;--zone-order-line: #b5537a;--zone-market-fill: #fbe0c8;--zone-market-line: #c07830;--zone-license-fill: #fdf6d8;--zone-license-line: #c9a227;--zone-iso-fill: #fadde8;--zone-iso-line: #b5537a;--zone-expense-fill: #d9edd9;--zone-expense-line: #4c9a5f;--chip-fill: #4c9a5f;--card-back-a: #dfe6ea;--card-back-b: #e9eef1;--card-face: #fff8dc;--barrel-top: #c9a227;--barrel-bottom: #a8851c;--barrel-slip: #fffdf2;--barrel-slip-line: #d8c98a;--proj-bg: #0f1417;--proj-ink: #f2f6f8;--proj-ink-soft: #9fb3bd;--proj-ink-faint: #7e939e;--proj-panel: #182026;--proj-panel-line: #24313a;--proj-ok: #8fd3a0;--proj-hot: #ffd479;--proj-scrim: rgba(15, 20, 23, .94);--font-money: Consolas, ui-monospace, "SF Mono", Menlo, "Microsoft YaHei", sans-serif;--font-text: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", sans-serif;--font-print-text: SimSun, "宋体", "Songti SC", "Source Han Serif SC", serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper-tint);color:var(--ink);font-family:var(--font-text);font-size:14px;line-height:1.6}#root{min-width:1280px}h1,h2,h3,h4{margin:0 0 8px;font-weight:600}h1{font-size:20px}h2{font-size:17px}h3{font-size:15px}h4{font-size:14px;color:var(--ink-soft)}p{margin:0 0 8px}button{font-family:inherit;font-size:13px;padding:5px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink-inverse)}button.primary:hover:not(:disabled){background:var(--accent-deep);color:var(--ink-inverse)}button.danger{border-color:var(--bad);color:var(--bad)}button.small{padding:2px 7px;font-size:12px}input,select{font-family:inherit;font-size:13px;padding:4px 7px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input.money{font-family:var(--font-money);font-variant-numeric:tabular-nums;text-align:right;width:90px}input.bad{border-color:var(--bad);background:var(--bad-soft)}label{display:inline-flex;align-items:center;gap:6px}.app{display:flex;flex-direction:column;min-height:100vh}.hud{display:flex;align-items:center;gap:18px;padding:8px 16px;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.hud .brand{font-weight:600;letter-spacing:.5px}.hud .spacer{flex:1}.hud .clock{font-family:var(--font-money);font-variant-numeric:tabular-nums}.hud .seat-name{font-weight:600;color:var(--accent)}.hud .progress{width:150px;height:6px;border-radius:3px;background:var(--line-soft);overflow:hidden}.hud .progress-fill{display:block;height:100%;background:var(--accent)}.hud-stats{display:flex;align-items:center;gap:18px}.hud .stat{display:flex;flex-direction:column;line-height:1.25}.hud .stat .k{font-size:11px;color:var(--ink-faint)}.hud .stat .v{font-family:var(--font-money);font-variant-numeric:tabular-nums;font-weight:600}.tabs{display:flex;gap:4px;padding:0 16px;background:var(--paper);border-bottom:1px solid var(--line)}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px;background:none}.tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.main{flex:1;padding:16px}.cols{display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;margin-bottom:12px}.card>h3:first-child{margin-top:0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.tight{gap:6px}.stack>*+*{margin-top:8px}.hint{font-size:12px;color:var(--ink-faint);line-height:1.5}.note{font-size:12px;color:var(--ink-soft);background:var(--paper-tint);border-left:3px solid var(--line);padding:6px 10px}.badge{display:inline-block;font-size:11px;padding:1px 6px;border-radius:var(--r-sm);background:var(--line-soft);color:var(--ink-soft);white-space:nowrap}.badge.auto{background:var(--auto-soft);color:var(--auto)}.badge.anytime{background:var(--warn-soft);color:var(--warn)}.badge.role{background:var(--accent-soft);color:var(--accent)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.good{background:var(--good-soft);color:var(--good)}.empty-state{border:1px dashed var(--line);border-radius:var(--r-md);background:var(--paper-tint);color:var(--ink-faint);padding:18px 16px;text-align:center;font-size:13px;line-height:1.7}.empty-state b{display:block;color:var(--ink-soft);font-size:14px;margin-bottom:2px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border:1px solid var(--line-soft);padding:4px 8px;text-align:left;vertical-align:top}thead th{background:var(--paper-tint);font-weight:600;white-space:nowrap}tbody tr:hover{background:var(--row-hover)}table.compact th,table.compact td{padding:2px 6px}td.money,th.money,.money-text{font-family:var(--font-money);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}tr.total>td,tr.total>th{border-top:2px solid var(--ink-soft);font-weight:600}tr.section>td{background:var(--paper-tint);font-weight:600}tr.dim>td{color:var(--ink-faint)}.neg{color:var(--bad)}.mark{font-family:var(--font-money);white-space:nowrap;font-weight:600}.mark.ok{color:var(--good)}.mark.wrong{color:var(--bad)}td.cell-wrong{background:var(--bad-soft)}td.cell-ok{background:var(--good-soft)}.play{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.play.board-first{grid-template-columns:minmax(0,1fr)}.play.board-first .play-side{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.play-main,.play-side{min-width:0}.play-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.play-head h2{margin:0;font-size:20px}.chip{font-size:12px;padding:2px 9px;border-radius:11px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.decisions{display:flex;flex-direction:column;gap:12px}.decision{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);padding:12px 14px 10px}.decision>header{display:flex;align-items:center;gap:9px;margin-bottom:6px}.decision>header h3{margin:0;font-size:16px}.decision>header .n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--ink-inverse);font-size:12px;font-weight:700;flex:none}.decision .say{margin:0 0 10px;padding-left:31px;font-size:13.5px;line-height:1.75;color:var(--ink-soft)}.decision-body{padding-left:31px}.decision .source{margin:8px 0 0 31px;font-size:11.5px;color:var(--ink-faint)}button.linky{border:none;background:none;padding:2px 0 0 31px;font-size:11.5px;color:var(--ink-faint);text-decoration:underline dotted}button.linky:hover{color:var(--accent)}.go-on{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.go-on button.big{font-size:15px;font-weight:600;padding:10px 22px}.side-card{margin-bottom:12px}.side-card h4{margin:0 0 8px;font-size:13px;color:var(--ink-soft)}.side-board .board-surface{margin-top:6px}.did{list-style:none;margin:0;padding:0;font-size:12.5px;line-height:1.7}.did li{padding:4px 0 4px 14px;position:relative;color:var(--ink-soft)}.did li:before{content:"·";position:absolute;left:3px;color:var(--accent);font-weight:700}.group-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.group-head .n{font-family:var(--font-money);color:var(--ink-faint);font-size:12px}.group-head h2{margin:0}.steplist{display:flex;flex-direction:column;gap:10px}.step{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper)}.step>header{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--paper-tint);border-bottom:1px solid var(--line-soft)}.step>header .no{font-family:var(--font-money);color:var(--ink-faint);min-width:22px}.step>header .name{font-weight:600}.step>header .spacer{flex:1}.step .body{padding:10px}.step.auto>header{background:var(--auto-soft)}.queue li{display:flex;align-items:center;gap:8px;padding:3px 0;border-bottom:1px dotted var(--line-soft)}.queue{list-style:none;margin:0;padding:0}.queue .who{font-size:11px;color:var(--ink-faint);min-width:42px}.queue .what{flex:1}.seatbar{display:flex;gap:4px;flex-wrap:wrap}.seatbar button{border-radius:14px}.seatbar button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--ink-inverse)}.seatbar button.bankrupt{text-decoration:line-through;opacity:.5}.events{max-height:260px;overflow:auto;font-size:12px}.events li{list-style:none;padding:2px 0;border-bottom:1px dotted var(--line-soft)}.events .amt{font-family:var(--font-money);font-variant-numeric:tabular-nums}.events .cause-instructor{background:var(--warn-soft)}.errors{border:1px solid var(--bad);background:var(--bad-soft);border-radius:var(--r-md);padding:8px 12px}.errors h4{color:var(--bad);margin:0 0 4px}.errors li{font-size:13px}.review h1{font-size:22px;margin-bottom:10px}.review h2{margin-top:0}.review-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.findings{list-style:none;margin:0;padding:0}.finding{display:flex;gap:9px;align-items:baseline;padding:7px 11px;margin-bottom:6px;border-left:3px solid var(--line);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--paper-tint)}.finding .mark{min-width:1em;font-size:15px;text-align:center}.finding.bad{border-left-width:5px;border-left-color:var(--bad);background:var(--bad-soft)}.finding.bad .mark{color:var(--bad)}.finding.warn{border-left-width:4px;border-left-color:var(--warn);background:var(--warn-soft)}.finding.warn .mark{color:var(--warn)}.finding.good{border-left-color:var(--good);background:var(--good-soft)}.finding.good .mark{color:var(--good)}table.bridge td.indent{padding-left:26px}table.bridge tr.subtotal>td{border-top:1px solid var(--ink-faint);background:var(--paper-tint);font-weight:600}tr.cell-wrong-row>td{background:var(--bad-soft)}.lowpoint{margin-top:10px;padding:8px 11px;border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--warn-soft)}.lowpoint .money-text{font-size:19px;font-weight:700}.meeting{max-width:1100px;margin:0 auto}.curtain{min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--ink);color:var(--ink-inverse);border-radius:var(--r-lg);padding:40px}.curtain h2{color:var(--ink-inverse)}.curtain .hint{color:var(--ink-inverse-soft)}.adtable td.locked{background:var(--line-soft);color:var(--ink-faint);text-align:center}.adtable input{width:72px}.cards{display:flex;flex-wrap:wrap;gap:8px}.card-order{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;min-width:150px;background:var(--paper);cursor:pointer;text-align:left}.card-order:hover{border-color:var(--accent)}.card-order .qty{font-family:var(--font-money);font-size:18px;font-weight:600}.card-order .meta{font-size:11px;color:var(--ink-soft)}.card-order.risky{border-color:var(--warn);background:var(--warn-soft)}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.zone{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);padding:10px}.zone h4{margin-top:0}.zone dl{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin:0;font-size:13px}.zone dt{color:var(--ink-soft)}.zone dd{margin:0;font-family:var(--font-money);font-variant-numeric:tabular-nums;text-align:right}.board-surface{position:relative;width:100%;aspect-ratio:3 / 2;background:var(--board-bg);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.bzone{position:absolute;border:1px solid var(--board-zone-line);border-radius:5px;background:var(--board-zone-fill)}.bzone-title{position:absolute;left:6px;top:2px;font-size:11px;font-weight:600;color:var(--accent);letter-spacing:1px}.bcell{position:absolute;border:1px solid var(--board-cell-line);border-radius:var(--r-sm);background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:1px 2px}.bcell-label{font-size:10px;line-height:1.15;color:var(--ink-faint);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bcell-value{font-family:var(--font-money);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:1.2}.bcell-value em{font-style:normal;font-size:10px;font-weight:400;color:var(--ink-soft);margin-left:2px}.bcell.filled{border-color:var(--accent);background:var(--paper)}.bcell.empty{background:var(--board-cell-empty)}.bcell.empty .bcell-value{color:var(--ink-faint)}.bcell.lit{border-width:2px;border-color:var(--warn);background:var(--warn-soft)}.bcell.k-cash{background:var(--zone-cash-fill);border-color:var(--zone-cash-line)}.bcell.k-receivable.filled,.bcell.k-payable.filled{background:var(--zone-credit-fill);border-color:var(--zone-credit-line)}.bcell.k-loanLong.filled{background:var(--zone-loan-long-fill);border-color:var(--zone-loan-long-line)}.bcell.k-loanShort.filled{background:var(--zone-loan-short-fill);border-color:var(--zone-loan-short-line)}.bcell.k-loanOther.filled{background:var(--zone-loan-other-fill);border-color:var(--zone-loan-other-line)}.bcell.k-line.filled,.bcell.k-tag.filled,.bcell.k-netValue.filled{background:var(--zone-production-fill);border-color:var(--zone-production-line)}.bcell.k-materialWarehouse.filled,.bcell.k-materialTransit.filled{background:var(--zone-material-fill);border-color:var(--zone-material-line)}.bcell.k-materialOrder.filled{background:var(--zone-material-order-fill);border-color:var(--zone-material-order-line)}.bcell.k-productWarehouse.filled{background:var(--zone-product-fill);border-color:var(--zone-product-line)}.bcell.k-productOrder.filled{background:var(--zone-order-fill);border-color:var(--zone-order-line)}.bcell.k-market.filled{background:var(--zone-market-fill);border-color:var(--zone-market-line)}.bcell.k-license.filled{background:var(--zone-license-fill);border-color:var(--zone-license-line)}.bcell.k-iso.filled{background:var(--zone-iso-fill);border-color:var(--zone-iso-line)}.bcell.k-expense.filled{background:var(--zone-expense-fill);border-color:var(--zone-expense-line);border-radius:40%}.bcell.k-expense{border-radius:40%}.chips{display:flex;gap:1px;flex-wrap:wrap;justify-content:center;font-size:10px;color:var(--ink-soft)}.chip{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.75}.flying-chip{position:absolute;width:34px;height:34px;border-radius:50%;background:var(--chip-fill);color:var(--ink-inverse);display:flex;align-items:center;justify-content:center;font-family:var(--font-money);font-weight:700;font-size:13px;box-shadow:var(--shadow-chip);transform:translate(-50%,-50%);pointer-events:none}.float-label{position:absolute;right:8px;bottom:8px;background:var(--bad);color:var(--ink-inverse);padding:3px 9px;border-radius:var(--r-sm);font-family:var(--font-money);font-size:13px;font-weight:600}.board-surface .flying-chip{position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--chip-fill);color:var(--ink-inverse);display:flex;align-items:center;justify-content:center;font-family:var(--font-money);font-weight:700;font-size:12px;box-shadow:var(--shadow-chip-strong);pointer-events:none;z-index:5}.board-surface .flying-chip[data-cause=instructor]{background:var(--warn)}.board-surface .flying-chip[data-cause=auto]{background:var(--auto)}.board-caption{position:absolute;left:50%;bottom:6px;transform:translate(-50%);background:var(--scrim);color:var(--ink-inverse);padding:4px 12px;border-radius:var(--r-sm);font-size:13px;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:6}.bcell.lit{outline:2px solid var(--warn);outline-offset:-1px;background:var(--warn-soft);z-index:2}.flipcard{display:inline-flex;align-items:center;justify-content:center;width:82%;height:62%;border-radius:2px;font-size:11px;font-weight:600;transition:background .3s,color .3s;animation:flip .42s cubic-bezier(.4,.1,.3,1)}@keyframes flip{0%{transform:scaleX(1)}50%{transform:scaleX(.06)}to{transform:scaleX(1)}}.flipcard.down{background:repeating-linear-gradient(45deg,var(--card-back-a) 0 4px,var(--card-back-b) 4px 8px);color:var(--ink-faint)}.flipcard.up{background:var(--card-face);color:var(--ink)}.barrel{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1}.barrel-body{width:14px;height:11px;background:linear-gradient(var(--barrel-top),var(--barrel-bottom));border-radius:2px 2px 4px 4px;box-shadow:var(--shadow-inset)}.barrel-slip{background:var(--barrel-slip);border:1px solid var(--barrel-slip-line);border-radius:1px;padding:0 3px;font-size:11px;font-weight:600}.barrel-count{font-size:9px;color:var(--ink-faint)}.frozen-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ink-inverse);background:var(--frozen-scrim);backdrop-filter:blur(2px)}.frozen-overlay h1{font-size:40px;margin:0 0 8px;letter-spacing:4px}.frozen-overlay p{margin:0;color:var(--proj-ink-soft)}.seatbar .badge{margin-left:4px}.seatbar .badge[aria-pressed=true]{outline:2px solid var(--accent)}.badge.bankrupt{background:var(--bankrupt-soft);color:var(--bankrupt-ink)}.host-tabs button{font-size:13px;padding:5px 12px}.host-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;align-items:start}.host-pending{border-left:4px solid var(--accent);background:var(--accent-soft)}.host-pending h3{color:var(--accent-deep)}.host-bar{display:flex;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--r-md);background:var(--paper);margin-bottom:12px}.host-bar.frozen{border-left-color:var(--warn);background:var(--warn-soft)}.host-bar button.big{font-size:15px;font-weight:600;padding:9px 20px}.host-bar .who{font-size:13px;color:var(--ink-soft);flex:1}.host-bar .countdown{font-family:var(--font-money);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.host-bar .countdown.urgent{color:var(--bad)}.danger-zone{border-color:var(--bad);border-left:5px solid var(--bad)}.danger-zone>h3{color:var(--bad)}.projector{position:relative;min-height:100vh;padding:3vh 4vw;background:var(--proj-bg);color:var(--proj-ink);display:flex;flex-direction:column;gap:3vh}.projector h1{font-size:5vw;margin:0}.projector h2{font-size:2.4vw;margin:0 0 1vh;color:var(--proj-ink-soft);font-weight:500}.projector-head{display:flex;align-items:baseline;gap:3vw;flex-wrap:wrap}.projector-label{font-size:1.6vw;color:var(--proj-ink-faint);margin-right:1vw}.projector-code{font-size:7vw;font-weight:700;letter-spacing:.6vw;font-family:Consolas,ui-monospace,SF Mono,Menlo,monospace}.projector-url{font-size:2.4vw;color:var(--proj-ink-soft)}.projector-when{font-size:2.4vw}.projector-clock{margin-left:auto;font-size:6vw;font-weight:700;font-family:Consolas,ui-monospace,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.projector-seats{display:flex;gap:2vw;flex-wrap:wrap}.projector-seat{flex:1 1 12vw;padding:2vh 1.5vw;border-radius:12px;background:var(--proj-panel);border:2px solid var(--proj-panel-line)}.projector-seat.out{opacity:.45}.projector-seat-name{font-size:3vw;font-weight:600}.projector-seat-state{font-size:1.8vw;color:var(--proj-ok);min-height:2.2vw}.projector-seat-equity{font-size:2.6vw;margin-top:1vh}.projector-draft{flex:1}.projector-heat{display:flex;flex-wrap:wrap;gap:1vw;font-size:1.6vw}.projector-heat-cell{background:var(--proj-panel);border-radius:8px;padding:.8vh 1vw}.projector-heat-cell b{margin-left:.6vw;color:var(--proj-hot)}.projector-foot{margin-top:auto;font-size:2vw;color:var(--proj-ink-faint)}.projector-frozen{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:var(--proj-scrim)}.projector-frozen h1{font-size:8vw;letter-spacing:1vw}.tour-block{position:fixed;z-index:500}.tour-hole{position:fixed;z-index:501;border-radius:var(--r-lg);box-shadow:0 0 0 9999px var(--tour-scrim);outline:2px solid var(--tour-ring);pointer-events:none;transition:left .2s ease,top .2s ease,width .2s ease,height .2s ease}.tour-scrim{position:fixed;inset:0;z-index:501;background:var(--tour-scrim);pointer-events:none}.tour-bubble{position:fixed;z-index:502;width:340px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow-y:auto;padding:14px 16px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--tour-ring);border-radius:var(--r-lg);box-shadow:var(--shadow-tour);transition:left .16s ease,top .16s ease}.tour-bubble:focus{outline:none}.tour-head{display:flex;align-items:baseline;gap:8px}.tour-head h4{margin:0;font-size:15px}.tour-no{font-family:var(--font-money);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-faint);white-space:nowrap}.tour-body{margin:8px 0 0;font-size:13px;line-height:1.7;color:var(--ink-soft)}.tour-body strong{color:var(--ink)}.tour-act{margin:10px 0 0;padding:6px 9px;font-size:12.5px;background:var(--accent-soft);color:var(--accent-deep);border-radius:var(--r-sm)}.tour-buttons{position:sticky;bottom:-14px;display:flex;align-items:center;gap:8px;margin:12px -16px -14px;padding:10px 16px 14px;background:var(--paper)}.tour .tour-buttons button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);padding:5px 12px}.tour .tour-buttons button.small{padding:2px 7px;font-size:12px}.tour .tour-buttons button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink-inverse)}.tour .tour-buttons button.primary:hover:not(:disabled){background:var(--accent-deep);color:var(--ink-inverse)}.tabs .tour-launch,.coach .tour-launch{border:1px solid var(--tour-ring);border-radius:var(--r-sm);background:var(--paper);color:var(--accent-deep);font-weight:600;padding:3px 9px}.tabs .tour-launch:hover:not(:disabled),.coach .tour-launch:hover:not(:disabled){background:var(--warn-soft);border-color:var(--tour-ring);color:var(--accent-deep)}.coach{border-left:4px solid var(--tour-ring)}.coach-where{margin:6px 0 0;font-size:12px;color:var(--ink-faint)}.coach-lead{margin:6px 0 0;font-size:13px;line-height:1.7}.coach-list{list-style:none;margin:10px 0 8px;padding:0}.coach-list li{display:flex;align-items:baseline;gap:7px;padding:4px 0;border-bottom:1px dotted var(--line-soft);font-size:13px}.coach-list li:last-child{border-bottom:none}.coach-list li.done .coach-what{color:var(--ink-faint)}.coach-mark{font-family:var(--font-money);color:var(--ink-faint)}.coach-list li.done .coach-mark{color:var(--good)}.coach-what{flex:1;min-width:0}.coach-what .badge{margin-left:5px}@media(prefers-reduced-motion:reduce){.tour-hole,.tour-bubble{transition:none}}.decision .detail{margin:8px 0 0 31px;padding:9px 12px;white-space:pre-line;font-size:12.5px;line-height:1.85;color:var(--ink-soft);background:var(--paper-tint);border-left:3px solid var(--line);border-radius:var(--r-sm)}.decision .detail strong{color:var(--ink)}@media print{@page{size:A4;margin:16mm 14mm}.print-root{print-color-adjust:exact;-webkit-print-color-adjust:exact}body{background:#fff;font-size:10pt}.no-print,.hud,.tabs,.queue-panel,button{display:none!important}.app,.main,.card{padding:0;margin:0;border:none;background:#fff}.cols{display:block}.print-root{font-family:var(--font-print-text);font-size:10pt}.print-root table{font-size:9pt}.print-root h1{font-size:14pt;margin-bottom:4mm}.print-root h2{font-size:12pt;margin:4mm 0 2mm}.print-root .hint{font-size:8pt;color:#333}table{width:100%;page-break-inside:auto}thead{display:table-header-group}tfoot{display:table-footer-group}tr,td,th{break-inside:avoid;page-break-inside:avoid}th,td{border:1px solid #999;padding:1mm 2mm}thead th{background:#eee}td.money,th.money,.money-text,input.money{font-family:var(--font-money);font-variant-numeric:tabular-nums;text-align:right}.mark.wrong:after{content:""}td.cell-wrong{outline:1.2pt solid #000}.print-page{break-before:page;page-break-before:always}.print-page:first-of-type{break-before:auto;page-break-before:auto}.review-cols{display:grid;grid-template-columns:1fr 1fr;gap:6mm}.review-cols>.card{break-inside:avoid;page-break-inside:avoid}.finding{break-inside:avoid;page-break-inside:avoid;background:#fff;border:none;border-left-style:solid;border-left-color:#000;padding:1mm 3mm;margin-bottom:1.5mm}.finding.bad{border-left-width:4pt}.finding.warn{border-left-width:2pt}.finding.good{border-left-width:.6pt}.lowpoint{break-inside:avoid;page-break-inside:avoid;background:#fff;border:1pt solid #000;border-left-width:3pt}table.bridge tr.subtotal>td{border-top:1pt solid #000;font-weight:600}}
