:root{--bg:#f6f3ee;--ink:#1c1a16;--accent:#c75f2d;--accent-2:#1a8f7a;--panel:#fff;--muted:#6f665b;--border:#e6dfd7;--shadow:0 20px 60px rgba(20,18,14,.08);--suit-spades:#16161a;--suit-hearts:#a8232b;--suit-diamonds:#d2691e;--suit-clubs:#1d4f9e;--suit-spades-on-dark:#fff;--suit-hearts-on-dark:#ef6f6f;--suit-diamonds-on-dark:#f0913f;--suit-clubs-on-dark:#74a9ef}[data-suit=S][data-suit]{color:var(--suit-spades)}[data-suit=H][data-suit]{color:var(--suit-hearts)}[data-suit=D][data-suit]{color:var(--suit-diamonds)}[data-suit=C][data-suit]{color:var(--suit-clubs)}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,Suisse Intl,IBM Plex Sans,sans-serif;color:var(--ink);background:radial-gradient(circle at 15% 20%,rgba(199,95,45,.15),transparent 35%),radial-gradient(circle at 85% 10%,rgba(26,143,122,.2),transparent 30%),linear-gradient(120deg,#f6f3ee,#f2efe9 50%,#f7f1e7);min-height:100vh}.hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;background:var(--panel);border-radius:24px;border:1px solid var(--border);box-shadow:var(--shadow)}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--muted)}.eyebrow,h1{margin:0 0 8px}h1{font-size:clamp(28px,5vw,44px)}.sub{margin:0;color:var(--muted)}.badge{font-weight:700;font-size:20px;padding:18px 22px;border-radius:16px;background:linear-gradient(135deg,var(--accent),#f0a25a);color:#fff;box-shadow:0 18px 40px rgba(199,95,45,.35)}.panel{margin-top:24px;padding:24px;background:var(--panel);border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow)}.tabs{display:flex;gap:12px;margin-bottom:16px}.tabs button{border:1px solid var(--border);background:#f9f6f2;color:var(--muted);padding:10px 16px;border-radius:999px;cursor:pointer;font-weight:600}.tabs button.active{background:var(--accent-2);color:#fff;border-color:transparent}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px}.field{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{padding:10px 12px;border-radius:12px;border:1px solid var(--border);font-size:14px;font-family:inherit;color:var(--ink);background:#faf7f3}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.actions button{padding:12px 18px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 14px 30px rgba(199,95,45,.25)}.actions button:hover{transform:translateY(-2px)}.actions button.btn-secondary{background:var(--accent-2);box-shadow:0 14px 30px rgba(26,143,122,.25)}.note{color:var(--muted)}.error,.note{margin-top:12px}.error{color:#b3261e;font-weight:600}.results{background:#14120f;color:#f6f3ee;padding:16px;border-radius:12px;font-size:13px;overflow-x:auto}.table-wrap{display:grid;grid-gap:16px;gap:16px}.table-title{font-weight:700;color:var(--muted);font-size:13px;letter-spacing:.08em;text-transform:uppercase}.dd-table{width:100%;border-collapse:collapse;border-radius:12px;overflow:hidden;background:#fff8f0}.dd-table td,.dd-table th{padding:10px 12px;text-align:center;border-bottom:1px solid var(--border)}.dd-table th{background:#efe6db;font-weight:700;color:var(--ink)}.footer{margin-top:24px;font-size:12px;color:var(--muted)}.diagram{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto auto;grid-gap:6px;gap:6px;align-items:center;justify-items:center;background:#2d6a4f;border-radius:16px;padding:16px}.diagram-n{grid-column:2;grid-row:1}.diagram-w{grid-column:1;grid-row:2}.diagram-center{grid-column:2;grid-row:2}.diagram-e{grid-column:3;grid-row:2}.diagram-s{grid-column:2;grid-row:3}.hand-box{background:#fff;border:1px solid #bbb;border-radius:8px;overflow:hidden;min-width:120px}.hand-seat{font-weight:700;font-size:14px;color:#fff;background:#555;padding:3px 10px;display:flex;align-items:center;gap:5px}.hand-box.hand-vul .hand-seat{background:#c0392b}.hand-dealer-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#c75f2d}.hand-suits{padding:6px 10px}.hand-suit{display:flex;gap:5px;font-size:14px;line-height:1.5;color:#1c1a16;padding-bottom:4px}.suit-sym{width:16px;flex-shrink:0}.suit-cards{letter-spacing:.03em}.card-wrap{position:relative;display:inline-block;margin-right:3px}.lead-num{position:absolute;top:-5px;right:-9px;font-size:8px;background:var(--accent-2);color:#fff;border-radius:8px;min-width:15px;height:13px;padding:0 2px;display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.lead-num.lead-num-down{background:#c0392b}.compass{width:62px;height:62px;border:2px solid hsla(0,0%,100%,.4);border-radius:50%;background:rgba(0,0,0,.25);color:#fff;font-weight:700;gap:0}.compass,.diagram-pts-center{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;line-height:1}.diagram-pts-center{color:hsla(0,0%,100%,.85);font-weight:600;gap:6px;min-width:60px}.diagram-pts-mid{display:flex;gap:24px}.field-hint{margin:4px 0 8px;font-size:13px;color:var(--muted);line-height:1.5}.field-hint kbd{display:inline-block;padding:1px 5px;border:1px solid var(--border);border-radius:4px;font-size:12px;background:var(--bg)}.board-btn{padding:5px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--ink);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:56px}.board-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}@media (max-width:720px){.hero{flex-direction:column;align-items:flex-start}}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--muted)}.settings-card{background:#12182e;border:1px solid hsla(0,0%,100%,.1);border-radius:12px;padding:20px;margin-bottom:20px}.settings-card-title{font-size:16px;font-weight:600;color:#f0ece0;margin:0 0 16px}.settings-field{margin-bottom:20px}.settings-label{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:hsla(45,35%,91%,.8);margin-bottom:8px}.settings-value{font-weight:600;color:#7eb8f7;font-size:14px;min-width:32px;text-align:right}.settings-slider{width:100%;accent-color:#7eb8f7;cursor:pointer}.settings-range-labels{display:flex;justify-content:space-between;font-size:11px;color:hsla(45,35%,91%,.35);margin-top:2px}.settings-select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid hsla(0,0%,100%,.12);background:hsla(0,0%,100%,.06);color:#f0ece0;font-family:inherit;font-size:14px;cursor:pointer}.settings-select:focus{outline:none;border-color:#7eb8f7}.settings-hint{font-size:12px;color:hsla(45,35%,91%,.4);margin:6px 0 0}.settings-label-toggle{cursor:pointer;gap:12px}.settings-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:40px;height:22px;background:hsla(45,35%,91%,.15);border-radius:11px;position:relative;cursor:pointer;flex-shrink:0;transition:background .2s}.settings-toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:hsla(45,35%,91%,.7);border-radius:50%;transition:transform .2s}.settings-toggle:checked{background:#27ae60}.settings-toggle:checked:after{transform:translateX(18px);background:#fff}.settings-actions{display:flex;gap:10px;margin-top:8px}.settings-btn{padding:8px 20px;border-radius:8px;border:none;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.settings-btn:disabled{opacity:.5;cursor:default}.settings-btn-primary{background:#7eb8f7;color:#0a0f1e}.settings-btn-primary:hover:not(:disabled){background:#5ca0e8}.settings-btn-secondary{background:hsla(0,0%,100%,.08);color:hsla(45,35%,91%,.7)}.settings-btn-secondary:hover{background:hsla(0,0%,100%,.12);color:#f0ece0}.settings-empty{color:hsla(45,35%,91%,.4);font-size:14px;text-align:center;padding:16px 0}.settings-table-wrap{overflow-x:auto}.settings-table{width:100%;border-collapse:collapse;font-size:13px}.settings-table th{text-align:left;color:hsla(45,35%,91%,.5);font-weight:600;padding:6px 8px;border-bottom:1px solid hsla(0,0%,100%,.08);white-space:nowrap}.settings-table td{color:hsla(45,35%,91%,.8);padding:8px;border-bottom:1px solid hsla(0,0%,100%,.04);white-space:nowrap}.settings-contract{font-weight:600;color:#f0ece0}.settings-score-pos{color:#6ec76e}.settings-score-neg{color:#e07070}.history-empty{color:hsla(45,35%,91%,.4);font-size:14px;text-align:center;padding:32px 0}.history-card{background:#12182e;border:1px solid hsla(0,0%,100%,.1);border-radius:12px;margin-bottom:12px;overflow:hidden}.history-card-header{display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:default}.history-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:6px;white-space:nowrap;flex-shrink:0}.history-status-active{background:rgba(126,184,247,.15);color:#7eb8f7}.history-meta{flex:1 1;min-width:0}.history-date{font-size:13px;color:hsla(45,35%,91%,.5)}.history-players{font-size:13px;color:hsla(45,35%,91%,.75);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-progress{font-size:12px;color:hsla(45,35%,91%,.45)}.history-btn,.history-progress{white-space:nowrap;flex-shrink:0}.history-btn{padding:6px 16px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.history-btn-resume{background:#7eb8f7;color:#0a0f1e}.history-btn-resume:hover{background:#5ca0e8}.history-btn-details{background:hsla(0,0%,100%,.08);color:hsla(45,35%,91%,.7)}.history-btn-details:hover{background:hsla(0,0%,100%,.12);color:#f0ece0}.history-detail{border-top:1px solid hsla(0,0%,100%,.06);padding:16px 18px;background:rgba(0,0,0,.12)}.history-detail-loading{color:hsla(45,35%,91%,.4);font-size:13px;text-align:center;padding:12px 0}.history-board{margin-bottom:16px}.history-board:last-child{margin-bottom:0}.history-board-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer}.history-board-header:hover .history-board-num{color:#7eb8f7}.history-board-num{font-size:13px;font-weight:700;color:hsla(45,35%,91%,.6);transition:color .15s}.history-board-summary{font-size:13px;color:hsla(45,35%,91%,.8)}.history-board-summary strong{color:#f0ece0;font-weight:600}.history-board-score{font-size:13px;font-weight:600;margin-left:auto}.history-score-pos{color:#6ec76e}.history-score-neg{color:#e07070}.outcome-table-wrap{overflow-x:auto;margin-bottom:8px}.outcome-table{width:100%;border-collapse:collapse;font-size:13px;color:var(--ink-2)}.outcome-table th{text-align:left;padding:6px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3)}.outcome-table td,.outcome-table th{border-bottom:1px solid var(--line);white-space:nowrap}.outcome-table td{padding:5px 10px}.outcome-table tbody tr:hover{background:var(--paper-2)}.outcome-table .history-score-pos{color:var(--success)}.outcome-table .history-score-neg{color:var(--vuln)}.outcome-makeable{font-size:12px;color:var(--ink-3)}.outcome-table .suit-red{color:var(--suit-hearts)}.outcome-contract-btn{display:inline-flex;align-items:baseline;gap:2px;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}.outcome-contract-btn strong{color:var(--ink-1);font-weight:700}.outcome-contract-cue{color:var(--ink-4);transition:color .15s}.outcome-contract-btn:focus-visible .outcome-contract-cue,.outcome-contract-btn:hover .outcome-contract-cue{color:var(--clubhouse-blue)}.outcome-contract-btn:focus-visible strong,.outcome-contract-btn:hover strong{text-decoration:underline;text-underline-offset:2px}.history-filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}.history-filter-presets{display:inline-flex;gap:4px}.history-filter-btn{padding:6px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink-2);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.history-filter-btn:hover{background:var(--paper-3);color:var(--ink-1)}.history-filter-btn.is-active{background:var(--clubhouse-blue);border-color:var(--clubhouse-blue);color:#fff}.history-filter-range{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:8px;border:1px solid var(--line);background:var(--paper-2)}.history-filter-range.is-active{border-color:var(--clubhouse-blue)}.history-filter-date{background:transparent;border:0;color:var(--ink-2);font-size:13px;font-family:inherit;color-scheme:light}.history-filter-dash{color:var(--ink-3)}.landing{min-height:100vh;background:#080c18;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;color:#f0ece0}.ls{position:absolute;font-size:240px;line-height:1;opacity:.025;animation:ls-float 10s ease-in-out infinite}@keyframes ls-float{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-24px) rotate(3deg)}}.btn-gold{padding:14px 32px;background:#c9a84c;color:#080c18;border:none;border-radius:999px;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 32px rgba(201,168,76,.35);font-family:inherit}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(201,168,76,.5)}.pending-page{min-height:100vh;background:#080c18;display:flex;align-items:center;justify-content:center;padding:24px}.pending-card{background:#0f1528;border:1px solid hsla(0,0%,100%,.08);border-radius:20px;padding:48px 40px;max-width:440px;width:100%;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.5)}.pending-suits{font-size:28px;letter-spacing:8px;color:#c9a84c;margin-bottom:24px}.pending-title{font-size:26px;font-weight:800;color:#f0ece0;margin:0 0 16px}.pending-desc{font-size:15px;line-height:1.7;color:hsla(45,35%,91%,.5);margin:0 0 28px}.pending-meta{font-size:13px;color:hsla(45,35%,91%,.35);margin-bottom:24px}.pending-meta strong{color:hsla(45,35%,91%,.65)}.pending-signout{padding:10px 28px;background:transparent;border:1px solid hsla(45,35%,91%,.18);border-radius:999px;color:hsla(45,35%,91%,.6);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.pending-signout:hover{border-color:hsla(45,35%,91%,.4);color:#f0ece0}.admin-refresh{padding:8px 16px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--muted)}.admin-empty{text-align:center;padding:64px 24px;color:var(--muted)}.admin-empty span{display:block;font-size:40px;margin-bottom:12px}.admin-table{width:100%;border-collapse:collapse;border-radius:12px;overflow:hidden;background:var(--panel);border:1px solid var(--border)}.admin-table td,.admin-table th{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.admin-table th{background:#f5f0eb;font-weight:700;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.admin-table tr:last-child td{border-bottom:none}.admin-approve{padding:6px 16px;background:var(--accent-2);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}.admin-approve:hover{opacity:.85}.admin-tab-content{margin-top:8px}.admin-action-bar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.admin-count{margin-left:auto}.admin-count,.admin-filter{color:var(--muted);font-size:13px}.admin-filter{display:inline-flex;align-items:center;gap:6px}.admin-filter select{padding:4px 6px;border-radius:4px;font-size:13px}.llm-cost-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin:8px 0 20px}.llm-cost-card{padding:14px 16px;border:1px solid var(--border,#2a2a2a);border-radius:12px;background:var(--card,hsla(0,0%,100%,.03))}.llm-cost-card-value{font-size:22px;font-weight:700;line-height:1.1}.llm-cost-card-label{margin-top:4px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.llm-cost-card-hint{margin-top:2px;color:var(--muted);font-size:12px}.llm-cost-heading{margin:22px 0 8px;font-size:14px}.llm-cost-warn{color:#e0a020;font-size:12px}.llm-cost-runs{display:flex;flex-direction:column;gap:10px;margin:8px 0 20px}.llm-cost-run{padding:12px 14px;border:1px solid var(--border,#2a2a2a);border-radius:12px;background:var(--card,hsla(0,0%,100%,.03))}.llm-cost-run-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.llm-cost-run-name{font-weight:600;font-size:14px}.llm-cost-run-status{color:var(--muted);font-size:12px;white-space:nowrap}.llm-cost-run-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:12px;color:var(--muted)}.llm-cost-progress{height:8px;border-radius:999px;background:hsla(0,0%,100%,.08);overflow:hidden}.llm-cost-progress-fill{height:100%;border-radius:999px;background:rgba(80,140,255,.85);transition:width .4s ease}.llm-cost-warn-text{color:#e0a020}.llm-cost-config{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.llm-cost-config label{font-size:13px;font-weight:600}.llm-cost-config select{font-size:13px;padding:5px 8px;border-radius:8px;border:1px solid var(--border,#2a2a2a);background:var(--card,hsla(0,0%,100%,.04));color:inherit}.llm-cost-clickable{cursor:pointer}.llm-cost-clickable:hover{background:var(--card,hsla(0,0%,100%,.04))}.llm-cost-row-selected{cursor:pointer;background:rgba(80,140,255,.16)}.llm-cost-trigger{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px}.llm-cost-trigger-manual{background:rgba(80,140,255,.18);color:#6fa0ff}.llm-cost-trigger-auto{background:hsla(0,0%,47%,.18);color:var(--muted)}.llm-cost-clear{margin-left:10px;font-size:12px;font-weight:400;padding:2px 10px;border:1px solid var(--border,#2a2a2a);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.llm-cost-detail-row>td{background:var(--card,hsla(0,0%,100%,.02))}.llm-cost-detail{padding:6px 4px 12px}.llm-cost-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:10px;font-size:12px;color:var(--muted)}.llm-cost-io-label{font-size:12px;font-weight:600;margin:8px 0 4px}.llm-cost-io{max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.45;padding:10px 12px;margin:0;border:1px solid var(--border,#2a2a2a);border-radius:8px;background:var(--bg,rgba(0,0,0,.25))}.admin-danger{padding:6px 16px;background:#b3261e;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}.admin-danger:hover{opacity:.85}.admin-danger:disabled{opacity:.5;cursor:not-allowed}.admin-danger-extreme{background:#7c0a02}.admin-table input[type=checkbox]{cursor:pointer;width:16px;height:16px}.admin-table code{font-size:12px;background:#f5f0eb;padding:2px 5px;border-radius:4px}.admin-table tbody tr.admin-row-clickable{cursor:pointer}.admin-table tbody tr.admin-row-clickable:hover{background:#f5f0eb}.admin-table tbody tr.admin-row-clickable:focus-visible{outline:2px solid #0c5460;outline-offset:-2px}.admin-table tbody tr.admin-row-loading{cursor:progress;opacity:.65}.admin-status{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.admin-status-waiting{background:#fff3cd;color:#856404}.admin-status-playing{background:#d1ecf1;color:#0c5460}.admin-status-complete{background:#d4edda;color:#155724}.admin-status-bidding{background:#cce5ff;color:#004085}.admin-status-abandoned{background:#f8d7da;color:#721c24}.admin-status-new{background:#cce5ff;color:#004085}.admin-status-reviewed{background:#d4edda;color:#155724}.admin-status-closed{background:#e2e3e5;color:#383d41}.admin-players{font-size:12px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-message{padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;margin-bottom:12px}.admin-message-error{background:#f8d7da;color:#721c24}.admin-message-success{background:#d4edda;color:#155724}.admin-tools{display:flex;flex-direction:column;gap:20px}.admin-tools-section{padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.admin-tools-section h3{margin:0 0 4px;font-size:16px}.admin-tools-desc{color:var(--muted);font-size:13px;margin:0 0 16px}.admin-tools-danger-zone{border-color:#f5c6cb}.admin-tools-form{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.admin-tools-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}.admin-tools-form input[type=number]{width:80px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px}.admin-tools-buttons{display:flex;gap:8px;flex-wrap:wrap}.admin-import-dropzone{border:2px dashed var(--border);border-radius:8px;padding:16px;text-align:center;margin-bottom:8px;transition:border-color .2s,background .2s}.admin-import-dropzone.admin-import-dragover{border-color:var(--accent);background:rgba(0,128,0,.05)}.admin-import-dropzone p{margin:0 0 8px;color:var(--muted);font-size:.9rem}.admin-import-textarea{width:100%;font-family:monospace;font-size:.85rem;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg);resize:vertical;margin-bottom:8px}.tv-page h1{font-size:1.5rem;font-weight:700;margin:0 0 4px}.tv-link{color:var(--accent);cursor:pointer;text-decoration:none}.tv-link:hover{text-decoration:underline}.tv-clickable-row{cursor:pointer}.tv-clickable-row:hover{background:hsla(0,0%,100%,.04)}.tv-tournament-row td{background:rgba(74,158,255,.06)}.tv-tournament-row:hover td{background:rgba(74,158,255,.12)}.tv-expand-arrow{display:inline-block;width:1em;font-size:.75em;color:var(--muted)}.tv-tournament-child td{background:hsla(0,0%,100%,.02)}.tv-tournament-child-cell{padding-left:2em!important}.tv-sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.tv-sortable:hover{color:var(--accent)}.tv-sort-arrow{font-size:.75rem;opacity:.7}.tv-detail-header{margin-bottom:24px}.tv-detail-meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--muted);font-size:.9rem;margin-top:4px}.tv-detail-source a{font-size:inherit}.tv-section{margin-top:32px}.tv-section h2{font-size:1.15rem;font-weight:600;margin:0 0 12px}.tv-board{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;overflow:hidden}.tv-board-num{font-weight:600;min-width:80px}.tv-board-body{padding:16px;border-top:1px solid var(--border)}.tv-board-diagram{display:flex;flex-direction:column;align-items:center;margin-bottom:16px}.tv-results-table{font-size:.85rem}.tv-player-card{background:hsla(0,0%,100%,.04);border:1px solid var(--border);border-radius:12px;padding:20px 24px;margin-bottom:24px}.tv-player-card-main h1{margin:0 0 8px}.tv-player-card-meta{display:flex;flex-wrap:wrap;gap:16px;color:var(--muted);font-size:.9rem;align-items:center}.tv-badge-lm{background:linear-gradient(135deg,#b8860b,#daa520);color:#fff;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.tv-session-selector{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.tv-pill-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tv-pill-row-label{font-weight:600;font-size:.85rem;color:var(--muted);margin-right:4px}.tv-perspective-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.tv-perspective-bar label{font-weight:600;font-size:.9rem;white-space:nowrap}.tv-perspective-bar select{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font-size:.9rem;min-width:280px;max-width:100%}.tv-perspective-row{background:rgba(74,158,255,.12)!important}.tv-row-reviewable{background:rgba(26,143,122,.1);cursor:pointer}.tv-row-reviewable:hover{background:rgba(26,143,122,.18)}.tv-perspective-bar select option{background:var(--panel);color:var(--ink)}.suit-red{color:var(--suit-hearts)}.tv-contract-btn{background:none;border:none;color:inherit;cursor:pointer;padding:0;font:inherit;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tv-contract-btn:hover{opacity:.8}.tv-contract-btn.active{color:var(--accent,#4a9eff)}.tv-group-scroll{padding:0 12px 8px;overflow:auto;max-height:15rem}.tv-group-scroll thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface,#1a1a2e);z-index:1}.tv-contract-btn.tv-has-bids{background:rgba(218,165,32,.22);border-radius:4px;padding:1px 6px}.tv-contract-btn.tv-has-bids:hover{background:rgba(218,165,32,.34);opacity:1}.tv-board-selector{display:flex;gap:2px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.tv-board-nav{background:none;border:1px solid var(--border,#333);color:inherit;cursor:pointer;padding:4px 8px;border-radius:4px;font-size:.9rem}.tv-board-nav:hover{background:hsla(0,0%,100%,.08)}.tv-board-nav:disabled{opacity:.3;cursor:default}.tv-board-num-btn{background:none;border:1px solid var(--border,#333);color:inherit;cursor:pointer;padding:4px 8px;border-radius:4px;font-size:.85rem;min-width:32px;text-align:center}.tv-board-num-btn:hover{background:hsla(0,0%,100%,.08)}.tv-board-num-btn.active{background:var(--accent,#4a9eff);color:#fff;border-color:var(--accent,#4a9eff)}.tv-dd-info{font-size:.85rem;padding:8px 12px;background:hsla(0,0%,100%,.03);border-radius:6px;border:1px solid var(--border,#333)}.tv-dd-makeable{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;line-height:1.6}.tv-dd-entry{white-space:nowrap}.tv-dd-label{font-weight:600;opacity:.7}.tv-dd-par{margin-top:4px;line-height:1.5}.tv-dd-loading{opacity:.5;font-style:italic}.tv-diagram-enhanced{position:relative;display:inline-block}.tv-diagram-top-left{position:absolute;top:10px;left:12px;color:hsla(0,0%,100%,.9);font-size:.78rem;font-weight:600;display:flex;flex-direction:column;gap:1px;z-index:1;line-height:1.3}.tv-diagram-enhanced.tv-diagram-missing{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:240px;min-height:200px;padding:16px;border-radius:8px;border:1px dashed hsla(0,0%,100%,.25);background:rgba(0,80,40,.35)}.tv-diagram-missing .tv-diagram-top-left{position:static;align-items:center;text-align:center}.tv-diagram-missing-note{margin:12px 0 0;max-width:220px;text-align:center;color:hsla(0,0%,100%,.75);font-size:.8rem;line-height:1.4}.tv-diagram-top-right{position:absolute;top:8px;right:10px;display:flex;gap:6px;align-items:center;z-index:1}.tv-diagram-top-right .btn-ghost{font-size:.75rem;padding:2px 8px;color:hsla(0,0%,100%,.85);border:1px solid hsla(0,0%,100%,.3);border-radius:4px}.tv-diagram-top-right .btn-ghost:hover{background:hsla(0,0%,100%,.15)}.tv-autobid-overlay{position:fixed;inset:0;background:rgba(20,18,14,.55);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.tv-autobid-modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:16px 20px;min-width:280px;max-width:400px;color:var(--ink)}.tv-autobid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;font-size:.95rem}.tv-autobid-close{background:none;border:none;color:var(--muted);font-size:1.3rem;cursor:pointer;padding:0 4px;line-height:1}.tv-autobid-close:hover{color:var(--ink)}.convention-card{width:100%}.convention-tabbar{margin:12px 0 4px}.convention-tabselect{width:100%;font-weight:600}.convention-panel{height:44vh;overflow-y:auto;border-top:1px solid hsla(0,0%,100%,.14);border-bottom:1px solid hsla(0,0%,100%,.14);padding:4px 2px}.convention-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid hsla(0,0%,100%,.1)}.convention-row:last-child{border-bottom:none}.convention-row-label{font-size:.9rem;flex:1 1 auto}.convention-row .convention-control{flex:0 0 auto;max-width:55%}.convention-row-todo{opacity:.62}.convention-todo-tag{font-size:.72rem;font-style:italic;color:var(--accent,#6c9bff);opacity:.95}.ccview{width:100%}.ccview-subtitle{margin:2px 0 6px;font-size:.95rem;opacity:.85}.ccview-sheet{max-height:62vh;overflow-y:auto;background:#f7f1df;color:#241f16;border:1px solid #b9a97e;border-radius:8px;padding:14px 16px;column-gap:24px;columns:300px 2;margin-top:8px}.ccview-section{page-break-inside:avoid;break-inside:avoid;margin:0 0 14px}.ccview-section-title{margin:0 0 4px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#6b5a33;border-bottom:2px solid #b9a97e;padding-bottom:2px}.ccview-rows{margin:0}.ccview-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:3px 0;font-size:.82rem;border-bottom:1px dotted rgba(107,90,51,.35)}.ccview-row:last-child{border-bottom:none}.ccview-row dt{margin:0}.ccview-row dd{margin:0;text-align:right;font-weight:600}.ccview-row-marked dd{color:#8c2f1b}.settings-summary-list{list-style:none;margin:8px 0;padding:0}.settings-summary-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 2px;font-size:.9rem;border-bottom:1px solid hsla(0,0%,100%,.1)}.settings-summary-list li:last-child{border-bottom:none}.settings-list{list-style:none;margin:8px 0;padding:0}.settings-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid hsla(0,0%,100%,.1)}.settings-list-row:last-child{border-bottom:none}.settings-list-main{display:flex;flex-direction:column;min-width:0}.settings-list-title{font-weight:600;font-size:.92rem}.settings-list-sub{font-size:.8rem;opacity:.75}.settings-card-subtitle{font-size:.85rem;font-weight:700;margin:14px 0 4px;text-transform:uppercase;letter-spacing:.04em;opacity:.8}.tv-board-layout{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.tv-board-layout>.tv-board-diagram-col{flex-shrink:0;display:flex;flex-direction:column;gap:8px;max-width:100%}.tv-board-diagram-col>.tv-dd-info{width:0;min-width:100%;box-sizing:border-box}.tv-board-layout>.tv-board-table-wrap{flex:1 1;min-width:400px;overflow-x:auto}.hand-box-active{outline:2px solid var(--accent);outline-offset:2px;border-radius:12px}.bidding-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.bidding-header h2{margin:0;font-size:18px;font-weight:700}.field-inline{flex-direction:column;gap:4px}.field-inline select{padding:7px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;background:var(--bg);color:var(--ink)}.convention-category{display:flex;flex-direction:column;gap:6px}.convention-category-title{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--muted)}.convention-list{display:flex;flex-wrap:wrap;gap:4px 16px}.convention-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.convention-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.btn-primary{padding:8px 18px;background:var(--ink);border-radius:8px;font-size:13px;font-weight:600;transition:opacity .15s}.btn-primary:hover{opacity:.8}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;transition:border-color .15s}.btn-ghost:hover{border-color:var(--ink)}.auction-table{font-size:14px;max-width:320px}.auction-table td,.auction-table th{padding:6px 12px;text-align:center;border-bottom:1px solid var(--border);width:25%}.auction-table th{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.debug-copy-all{margin-left:auto}.convention-system-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.convention-system-btn{border:1px solid var(--border)!important;background:#fff!important;color:var(--ink)!important}.convention-system-active{border-color:var(--accent)!important;background:rgba(199,95,45,.08)!important;color:var(--accent)!important;font-weight:600!important}.convention-sets-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:#f9f7f4;border:1px solid var(--border);border-radius:10px;margin-bottom:10px}.convention-set-selector{display:flex;align-items:center;gap:6px;flex:1 1;min-width:0}.convention-sets-label{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}.convention-set-select{font-size:13px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);font-family:inherit;max-width:220px}.convention-set-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.convention-set-rename-inline{display:flex;align-items:center;gap:6px}.convention-rename-input{font-size:13px;padding:4px 8px;border:1px solid var(--accent);border-radius:6px;font-family:inherit;width:180px;outline:none}.convention-new-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0 4px;margin-bottom:6px}.convention-new-input{font-size:13px;padding:5px 10px;border:1px solid var(--border);border-radius:6px;font-family:inherit;flex:1 1;min-width:180px;outline:none}.convention-new-input:focus{border-color:var(--accent)}.btn-sm{padding:4px 10px!important;font-size:12px!important;border-radius:6px!important}.convention-set-active-name{color:var(--muted);font-weight:400}.convention-item-name{flex:1 1;min-width:0}.convention-info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--border);color:var(--muted);font-size:10px;font-style:italic;font-weight:700;cursor:help;flex-shrink:0;margin-left:4px;position:relative;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.convention-info:after{content:attr(data-tooltip);position:absolute;right:-4px;top:calc(100% + 6px);background:rgba(28,26,22,.95);color:#f0ece0;font-size:12px;font-style:normal;font-weight:400;line-height:1.55;padding:9px 13px;border-radius:8px;white-space:normal;width:280px;z-index:300;pointer-events:none;opacity:0;transition:opacity .12s;box-shadow:0 6px 20px rgba(0,0,0,.35);text-align:left}.convention-info:hover:after{opacity:1}.convention-category,.convention-list{overflow:visible}.table-status-badge.waiting{background:var(--muted)}.table-status-badge.bidding{background:var(--accent)}.table-status-badge.complete{background:var(--accent-2)}.table-accept-bar{display:flex;align-items:center;gap:16px;background:rgba(199,95,45,.08);border:1.5px solid var(--accent);flex-wrap:wrap}.table-accept-bar p{margin:0;flex:1 1 auto}.table-roster{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-bottom:4px}@media (max-width:640px){.table-roster{grid-template-columns:1fr 1fr}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.table-waiting-msg{text-align:center;color:var(--muted);font-size:14px;margin:12px 0 0}.table-auction-done{text-align:center;color:var(--accent-2);font-weight:700;margin-top:12px}.btn-sm{font-size:12px;padding:4px 10px}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.4}}.btn-primary{padding:12px 20px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 10px 28px rgba(199,95,45,.25);font-family:inherit;font-size:14px}.btn-primary:hover{transform:translateY(-2px)}.btn-ghost{padding:10px 16px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted);font-weight:600;cursor:pointer;font-family:inherit;font-size:13px;transition:background .12s,color .12s}.btn-ghost:hover{background:var(--bg);color:var(--ink)}.field-inline{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--muted);font-size:13px}.field-inline input,.field-inline select{padding:7px 10px;border-radius:8px;border:1px solid var(--border);font-size:13px;font-family:inherit;color:var(--ink);background:#faf7f3}.auction-table{border-collapse:collapse;font-size:12px;width:100%;margin-top:8px}.auction-table th{padding:4px 6px;text-align:center;font-weight:700;background:var(--surface2);border-bottom:1px solid var(--border)}.auction-table td{padding:3px 6px;text-align:center;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.auction-table td.red{color:var(--red)}.bid-btn{min-width:44px;padding:6px 4px;font-size:13px;font-weight:600;border:1px solid var(--border);border-radius:4px;background:var(--surface2);cursor:pointer;transition:background .1s,border-color .1s;text-align:center}.bid-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.bid-btn.dimmed,.bid-btn:disabled{opacity:.25;cursor:not-allowed}.bid-btn.red{color:var(--red)}.bid-btn.red:hover:not(:disabled){color:#fff}@media (max-width:640px){.page{padding:12px 12px 32px}.panel{margin-top:16px}.hero,.panel{padding:16px;border-radius:16px}.hero{gap:12px}h1{font-size:clamp(22px,7vw,36px)}.grid{grid-template-columns:1fr;gap:12px}.hand-box{min-width:82px}.hand-seat{font-size:12px;padding:2px 8px}.hand-suits{padding:4px 8px}.hand-suit{font-size:12px;gap:4px;padding-bottom:2px}.suit-sym{width:14px}.diagram{padding:10px;gap:4px}.compass{width:50px;height:50px;font-size:11px}.pending-card{padding:28px 16px}.auction-table{max-width:100%}.convention-info:after{width:210px;right:auto;left:-10px}.bid-btn{min-width:38px;padding:7px 2px;font-size:12px}.admin-page{padding:16px 12px}.admin-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:12px}.admin-table td,.admin-table th{padding:8px 10px}.board-btn{min-width:48px}.hero .badge{padding:12px 16px;font-size:16px}}@media (max-width:380px){.hand-box{min-width:72px}.hand-suit{font-size:11px}}.bbo-card{display:inline-block;width:68px;height:127px;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;position:relative;overflow:hidden}.bbo-card-img{position:absolute;top:0;left:0;width:calc(100% * 133 / 68);height:auto;pointer-events:none}.bbo-card-rank,.bbo-card-suit{display:none}.bbo-card-lg{width:68px;height:127px}.bbo-hand-row{display:flex;justify-content:center;width:884px;height:127px;overflow:hidden}.bbo-hand-row .bbo-card{margin-left:0;transition:transform .15s,box-shadow .15s;cursor:default}.bbo-hand-row.bbo-hand-active .bbo-card.bbo-card-playable{cursor:pointer}.bbo-hand-row.bbo-hand-active .bbo-card.bbo-card-playable:hover{transform:translateY(-10px);box-shadow:0 6px 16px rgba(0,0,0,.35);z-index:5}.bbo-hand-row .bbo-card.bbo-card-dimmed{opacity:.5}.bbo-side-face-up{display:flex;flex-direction:column;gap:1px;align-items:center}.bbo-side-face-up .bbo-hand-row{justify-content:flex-start;width:auto;height:auto;overflow:visible}.bbo-side-face-up .bbo-hand-row .bbo-card{width:52px;height:72px;margin-left:-16px}.bbo-hand-row-empty{height:72px}.bbo-hand-row-suit{min-height:72px}.bbo-side-face-up .bbo-hand-row .bbo-card:first-child{margin-left:0}@media (max-width:480px){.bbo-side-face-up .bbo-hand-row .bbo-card{margin-left:-14px}}@media (max-width:380px){.bbo-side-face-up .bbo-hand-row .bbo-card{margin-left:-12px}}.bbo-auction-wrap{background:hsla(0,0%,100%,.85);border-radius:6px;padding:8px 12px;min-width:200px}.bbo-auction-table{border-collapse:collapse;width:100%;font-size:14px}.bbo-auction-table th{padding:4px 12px;font-weight:800;color:#333;border-bottom:2px solid #999;text-align:center}.bbo-auction-table td{padding:3px 12px;text-align:center;font-weight:700;font-size:15px;color:#1a1a1a}.bbo-auction-table td.red{color:#c0392b}.bbo-auction-table td.pass{color:#22883a}.bbo-auction-table td.dbl{color:#c0392b}.bbo-auction-table td.rdbl{color:#2563eb}.bbo-bid-clickable{cursor:pointer;position:relative}.bbo-bid-clickable:hover{background:rgba(37,99,235,.12);border-radius:3px}.bbo-bid-context-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center}.bbo-bid-context-popup{background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.18);min-width:220px;max-width:300px;font-size:13px;color:#222}.bbo-bid-context-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #eee;font-weight:700;font-size:14px}.bbo-bid-context-title{display:flex;align-items:center;gap:4px}.bbo-bid-context-close{background:none;border:none;cursor:pointer;font-size:16px;color:#666;padding:0 2px;line-height:1}.bbo-bid-context-close:hover{color:#c0392b}.bbo-bid-context-body{padding:8px 12px 10px;display:flex;flex-direction:column;gap:6px}.bbo-bid-context-row{display:flex;flex-direction:column;gap:1px}.bbo-bid-context-label{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}.hint-bar{display:flex;flex-direction:column;gap:6px;max-width:420px;margin:0 auto 6px;padding:6px 10px;border-radius:8px;background:rgba(30,26,20,.55);border:1px solid hsla(0,0%,100%,.08);color:#f0ece0;font-size:13px}.hint-bar-idle{background:transparent;border:none;padding:0;align-items:center}@keyframes hint-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.hint-btn{padding:6px 14px;font-size:13px;font-weight:600;border:1px solid hsla(0,0%,100%,.15);border-radius:6px;background:rgba(126,184,247,.15);color:#7eb8f7;cursor:pointer;transition:background .12s;font-family:inherit}.hint-btn:hover:not(:disabled){background:rgba(126,184,247,.25)}.hint-btn:disabled{opacity:.4;cursor:not-allowed}.hint-btn-accept{background:#7eb8f7;color:#0a0f1e;border-color:#7eb8f7}.hint-btn-accept:hover:not(:disabled){background:#5ca0e8;border-color:#5ca0e8}.hint-bar-alert{display:inline-block;margin-left:6px;padding:1px 6px;background:hsla(0,88%,73%,.18);border:1px solid hsla(0,88%,73%,.5);color:#f7a37e;letter-spacing:.6px}.hint-bar-alert,.hint-conf{border-radius:3px;font-weight:700;font-size:10px}.hint-conf{text-transform:uppercase;letter-spacing:.5px;padding:2px 6px}.hint-conf-stub{background:rgba(192,57,43,.2);color:#e74c3c}.hint-conf-low{background:rgba(224,176,96,.2);color:#e0b060}.hint-conf-medium{background:rgba(78,154,78,.2);color:#7ac97a}.hint-conf-high{background:rgba(126,184,247,.2);color:#7eb8f7}.bbo-bid-bar{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px 12px;width:100%}.bbo-bid-row{display:flex;gap:4px;justify-content:center}.bbo-bid-btn{min-width:50px;height:38px;padding:4px 12px;font-size:16px;font-weight:700;border:2px solid #888;border-radius:4px;background:#d0c8b8;color:#333;cursor:pointer;transition:background .1s,color .1s;text-align:center}.bbo-bid-btn:hover:not(:disabled){background:#b0a890}.bbo-bid-btn:disabled{opacity:.3;cursor:not-allowed}.bbo-bid-btn-pass{background:#4a8a5a;border-color:#3a7a4a;color:#fff;min-width:70px;font-size:17px}.bbo-bid-btn-pass:hover:not(:disabled){background:#3a7a4a}.bbo-bid-btn-rdbl{background:#4a8a5a;border-color:#3a7a4a;color:#fff;min-width:70px;font-size:16px}.bbo-bid-btn-rdbl:hover:not(:disabled){background:#3a7a4a}.bbo-bid-btn-dbl{background:#c0392b;border-color:#a02a1b;color:#fff;min-width:60px}.bbo-bid-btn-dbl:hover:not(:disabled){background:#a02a1b}.bbo-bid-btn.red{color:#c0392b}.bbo-strain-row{display:flex;gap:3px;justify-content:center;margin-top:2px}.bbo-strain-btn{width:42px;height:34px;font-size:18px;font-weight:700;border:2px solid #888;border-radius:4px;background:#d0c8b8;cursor:pointer;transition:background .1s}.bbo-strain-btn:hover:not(:disabled){background:#b0a890}.bbo-strain-btn:disabled{opacity:.3;cursor:not-allowed}.bbo-strain-btn.red{color:#c0392b}.bbo-card-animate-in{animation:none}.bbo-card-from-top{animation-name:bbo-slide-from-top}.bbo-card-from-bottom{animation-name:bbo-slide-from-bottom}.bbo-card-from-left{animation-name:bbo-slide-from-left}.bbo-card-from-right{animation-name:bbo-slide-from-right}@keyframes bbo-slide-from-top{0%{transform:translateY(-80px) scale(.7);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}@keyframes bbo-slide-from-bottom{0%{transform:translateY(80px) scale(.7);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}@keyframes bbo-slide-from-left{0%{transform:translateX(-80px) scale(.7);opacity:.3}to{transform:translateX(0) scale(1);opacity:1}}@keyframes bbo-slide-from-right{0%{transform:translateX(80px) scale(.7);opacity:.3}to{transform:translateX(0) scale(1);opacity:1}}.bbo-thinking{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);padding:6px 16px;border-radius:20px;font-weight:600;animation:pulse-opacity 1s infinite}.bbo-thinking,.undo-banner{color:#fff;font-size:13px;z-index:20}.undo-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;flex-wrap:wrap}.undo-banner-waiting{background:rgba(52,73,94,.9)}.undo-banner-approve{background:rgba(142,68,173,.92)}.undo-btn{padding:4px 14px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s}.undo-btn:hover{opacity:.85}.undo-btn-allow{background:#27ae60;color:#fff}.undo-btn-deny{background:#c0392b;color:#fff}.undo-btn-request{background:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.85);border:1px solid hsla(0,0%,100%,.25)}.undo-btn-request:hover{background:hsla(0,0%,100%,.25)}.card-hint-btn{background:rgba(24,182,163,.22);color:#cffaf2;border:1px solid rgba(24,182,163,.5)}.card-hint-btn:hover{background:rgba(24,182,163,.35)}.card-hint-btn:disabled{opacity:.6;cursor:default}.cheat-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);z-index:40;display:flex;align-items:center;justify-content:center}.cheat-modal{background:#f5f0e8;border:2px solid #a08c6a;border-radius:10px;padding:16px 20px;max-width:420px;min-width:260px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.35);color:#333}.cheat-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:16px;font-weight:700;color:#2c3e50}.cheat-modal-close{background:none;border:none;font-size:22px;color:#888;cursor:pointer;padding:0 4px;line-height:1}.cheat-modal-close:hover{color:#333}.debug-copy-all{background:none;border:none;cursor:pointer;font-size:16px;padding:0 4px;opacity:.6}.debug-copy-all:hover{opacity:1}.debug-clickable{cursor:pointer;border-radius:2px}.debug-clickable:hover{background:hsla(0,0%,100%,.08)}.cheat-modal-empty{color:#888;font-size:13px;padding:12px 0;text-align:center}.cheat-tricks-table{width:100%;border-collapse:collapse;font-size:14px}.cheat-tricks-table th{background:#e8e0d0;padding:5px 8px;font-weight:700;font-size:12px;text-align:center;border-bottom:2px solid #c4b89a}.cheat-tricks-table td{padding:4px 8px;text-align:center;border-bottom:1px solid #ddd}.cheat-trick-num{color:#888;font-size:12px;font-weight:600}.cheat-trick-card{font-weight:600}.cheat-trick-card.red{color:#c0392b}.cheat-trick-card.winner{background:rgba(39,174,96,.15);border-radius:3px}.cheat-trick-card.leader{text-decoration:underline}.cheat-trick-winner{font-weight:700;color:#27ae60;font-size:12px}@media (max-width:640px){.bbo-hand-row{width:100%;height:95px}.bbo-hand-row .bbo-card{width:calc(100% / 13);height:95px;margin-left:0}.bbo-card-lg{width:56px;height:104px}.bbo-bid-btn{min-width:40px;height:34px;font-size:14px;padding:4px 8px}}@media (max-width:480px){.bbo-hand-row{width:100%;height:74px}.bbo-hand-row .bbo-card{width:calc(100% / 13);height:74px;margin-left:0}.bbo-card-lg{width:56px;height:80px}.bbo-bid-bar{padding:6px 8px 10px;gap:4px}.bbo-bid-btn{min-width:38px;height:42px;font-size:16px;padding:4px 6px;border-radius:6px}.bbo-bid-btn-pass{min-width:56px;font-size:16px}.bbo-bid-btn-dbl{min-width:50px;height:42px}.bbo-bid-btn-rdbl{min-width:56px;height:42px}.bbo-strain-btn{width:48px;height:42px;font-size:20px;border-radius:6px}.bbo-bid-row,.bbo-strain-row{gap:4px}.bbo-auction-wrap{min-width:180px;padding:8px 10px}.bbo-auction-table th{padding:4px 10px;font-size:14px}.bbo-auction-table td{padding:3px 10px;font-size:15px}.bbo-thinking{bottom:40px;font-size:12px;padding:4px 12px}@keyframes bbo-slide-from-top{0%{transform:translateY(-40px) scale(.8);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}@keyframes bbo-slide-from-bottom{0%{transform:translateY(40px) scale(.8);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}@keyframes bbo-slide-from-left{0%{transform:translateX(-40px) scale(.8);opacity:.3}to{transform:translateX(0) scale(1);opacity:1}}@keyframes bbo-slide-from-right{0%{transform:translateX(40px) scale(.8);opacity:.3}to{transform:translateX(0) scale(1);opacity:1}}}@media (max-width:380px){.bbo-hand-row,.bbo-hand-row .bbo-card{height:64px}.bbo-card-lg{width:48px;height:68px}.bbo-bid-btn{min-width:34px;height:38px;font-size:14px}.bbo-strain-btn{width:42px;height:38px;font-size:18px}.bbo-auction-wrap{min-width:150px}.bbo-auction-table th{padding:3px 8px;font-size:12px}.bbo-auction-table td{padding:2px 8px;font-size:13px}.bbo-hand-row{max-width:calc(100vw - 48px)}}@media (hover:none) and (pointer:coarse){.bbo-hand-row .bbo-card{transition:none;-webkit-tap-highlight-color:transparent}.bbo-hand-row.bbo-hand-active .bbo-card.bbo-card-playable{box-shadow:0 0 6px 2px rgba(255,215,0,.5);border-color:#d4a017;touch-action:manipulation}.bbo-hand-row.bbo-hand-active .bbo-card.bbo-card-playable:hover{transform:none!important;box-shadow:0 0 6px 2px rgba(255,215,0,.5)}.bbo-hand-row.bbo-hand-active .bbo-card.bbo-card-playable:active{transform:translateY(-6px)!important;box-shadow:0 4px 12px rgba(0,0,0,.35);z-index:5}.bbo-bid-btn,.bbo-strain-btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}}@media (max-width:480px){.bbo-m-auction-scroll{flex:1 1;overflow-y:auto;background:#a8c4c4;border-radius:4px;margin:4px;min-height:0}.bbo-m-auction-scroll .bbo-auction-table{width:100%;table-layout:fixed;font-size:20px;color:#000}.bbo-m-auction-scroll .bbo-auction-table th{background:#b22222;color:#fff;font-size:18px;font-weight:700;padding:6px 8px;border-right:1px solid hsla(0,0%,100%,.4)}.bbo-m-auction-scroll .bbo-auction-table th:last-child{border-right:none}.bbo-m-auction-scroll .bbo-auction-table td{padding:4px 8px;font-size:20px;color:#000;border:2px solid #a8c4c4}.bbo-m-auction-scroll .bbo-auction-table td.red{color:#c00}.bbo-m-auction-scroll .bbo-auction-table td:not(.pass):not(:empty){background:#ddd}.bbo-m-auction-scroll .bbo-auction-table td.pass{background:transparent}.bbo-m-bid-controls{flex-shrink:0;background:hsla(45,27%,71%,.9);border-radius:4px}table.bbo-m-bid-controls{width:calc(100% - 8px);border-collapse:separate;border-spacing:2px;table-layout:auto;margin:0 4px 4px}.bbo-m-bid-controls td{padding:0}.bbo-m-bid-controls .bbo-bid-btn,.bbo-m-bid-controls .bbo-strain-btn{width:100%;height:30px;min-width:0;font-size:16px;padding:2px;background:#fff;color:#333;border:1px solid #aaa;box-sizing:border-box}.bbo-m-bid-controls .bbo-strain-btn.red{color:#c00}.bbo-m-bid-controls .bbo-bid-btn-pass{background:#4a8a4a;color:#fff;border-color:#3a7a3a}.bbo-m-bid-controls .bbo-bid-btn-dbl,.bbo-m-bid-controls .bbo-bid-btn-rdbl{background:#c44;color:#fff;border-color:#a33}}.admin-file-list{list-style:none;padding:0;margin:.5rem 0;max-height:200px;overflow-y:auto;border:1px solid #e0dcd0;border-radius:6px;background:#faf8f2}.admin-file-list li{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;font-size:.85rem;border-bottom:1px solid #eceae0}.admin-file-list li:last-child{border-bottom:none}.admin-file-remove{background:transparent;border:none;color:#c0392b;cursor:pointer;font-size:1.1rem;padding:0 6px;line-height:1}.admin-file-remove:hover:not(:disabled){background:#fbeae8;border-radius:3px}.admin-file-remove:disabled{opacity:.4;cursor:default}.teaching-header h1,.teaching-set-header h1{font-size:1.6rem;font-weight:700;margin:0 0 .25rem}.teaching-subtitle{color:#7a7060;font-size:.95rem;margin:0 0 1.5rem}.teaching-back{font-size:.85rem;color:#7a7060;text-decoration:none;display:inline-block;margin-bottom:.5rem}.teaching-back:hover{color:#4a4030}.teaching-empty{text-align:center;padding:3rem 1rem;color:#7a7060}.teaching-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.teaching-card{display:block;background:#faf8f2;border:1px solid #e0dcd0;border-radius:8px;padding:1rem 1.25rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.teaching-card:hover{border-color:#b0a890;box-shadow:0 2px 8px rgba(0,0,0,.06)}.teaching-card-name{font-weight:600;font-size:1.05rem;margin-bottom:.3rem}.teaching-card-desc{font-size:.85rem;color:#7a7060;margin-bottom:.5rem}.teaching-card-meta{font-size:.8rem;color:#9a9080;display:flex;align-items:center;gap:.75rem}.teaching-card-tags{display:flex;gap:.35rem;flex-wrap:wrap}.teaching-tag{background:#e8e4d8;color:#6a6050;padding:1px 6px;border-radius:3px;font-size:.75rem}.teaching-card-date{font-size:.75rem;color:#b0a890;margin-top:.5rem}.teaching-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0 1.5rem}.teaching-nav-btn{background:#f0ece0;border:1px solid #d0ccc0;border-radius:6px;padding:.4rem 1rem;cursor:pointer;font-size:.85rem;color:#4a4030}.teaching-nav-btn:hover:not(:disabled){background:#e0dcd0}.teaching-nav-btn:disabled{opacity:.4;cursor:default}.teaching-nav-selector{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.teaching-nav-dot{width:28px;height:28px;border-radius:4px;border:1px solid #d0ccc0;background:#faf8f2;cursor:pointer;font-size:.8rem;color:#6a6050;display:flex;align-items:center;justify-content:center}.teaching-nav-dot:hover{background:#e8e4d8}.teaching-nav-dot.active{background:#4a4030;color:#fff;border-color:#4a4030}.teaching-board-title{margin-bottom:1rem}.teaching-board-label{font-weight:700;font-size:1.1rem;margin-right:.75rem}.teaching-board-name{color:#7a7060;font-size:.95rem}.teaching-board-layout{display:flex;gap:2rem;align-items:flex-start}.teaching-diagram-wrap{flex-shrink:0}.teaching-info-panel{flex:1 1;min-width:240px}.teaching-contract{font-size:.95rem;margin-bottom:1rem;padding:.5rem .75rem;background:#f5f2e8;border-radius:6px;border:1px solid #e0dcd0}.teaching-declarer{color:#7a7060;font-weight:400;margin-left:.25rem}.teaching-critical-badge{display:inline-block;background:#c0913a;color:#fff;padding:1px 8px;border-radius:4px;font-size:.75rem;font-weight:600;margin-left:.5rem;text-transform:none;letter-spacing:0}.teaching-trick-critical{background:#fff4dc;padding:2px 6px;border-radius:4px;border:1px solid #c0913a}.teaching-bidding{margin-bottom:1rem}.teaching-bidding-header,.teaching-commentary-header,.teaching-play-header{font-weight:600;font-size:.85rem;color:#7a7060;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.03em}.teaching-auction-grid{display:grid;grid-template-columns:repeat(4,52px);grid-gap:1px;gap:1px;background:#e0dcd0;border:1px solid #e0dcd0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.teaching-auction-seat{background:#e8e4d8;text-align:center;font-weight:600;font-size:.8rem;padding:4px 0;color:#6a6050}.teaching-auction-cell{background:#faf8f2;text-align:center;font-size:.9rem;padding:4px;min-height:24px;position:relative}.teaching-auction-cell.pass{color:#b0a890}.teaching-auction-cell.red{color:#c0392b}.teaching-auction-cell.has-anno{cursor:help;background:#f5f0e0}.teaching-anno-dot{position:absolute;top:2px;right:2px;width:5px;height:5px;border-radius:50%;background:#c0913a}.teaching-annotations{margin-top:.5rem}.teaching-anno-item{font-size:.8rem;color:#7a7060;border-left:2px solid #c0913a;padding:2px 0 2px 8px;margin-bottom:4px}.teaching-play{margin-bottom:1rem}.teaching-play-lead{font-weight:400;font-size:.85rem}.teaching-tricks{display:flex;flex-wrap:wrap;gap:4px 12px}.teaching-trick{font-size:.85rem;display:flex;gap:4px;align-items:center}.teaching-trick-num{color:#9a9080;font-size:.75rem;min-width:18px}.teaching-trick-card{font-family:inherit}.teaching-trick-card.red{color:#c0392b}.teaching-commentary{margin-top:1.5rem;padding:1rem 1.25rem;background:#f8f6ee;border:1px solid #e0dcd0;border-radius:8px}.teaching-commentary-text{font-size:.9rem;line-height:1.6;color:#4a4030;white-space:pre-wrap}@media (max-width:768px){.teaching-board-layout{flex-direction:column}.teaching-diagram-wrap{align-self:center}.teaching-auction-grid{grid-template-columns:repeat(4,1fr)}}.teaching-nav-play{display:flex;gap:8px;margin-left:auto}.teaching-play-board-btn,.teaching-play-set-btn{background:#2f7d3a;color:#fff;border:1px solid #246129;border-radius:6px;padding:.45rem .9rem;font-size:.85rem;cursor:pointer}.teaching-play-board-btn:hover:not(:disabled),.teaching-play-set-btn:hover:not(:disabled){background:#246129}.teaching-play-board-btn:disabled,.teaching-play-set-btn:disabled{opacity:.5;cursor:default}.teaching-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1000}.teaching-modal{background:#faf8f2;border:1px solid #d0ccc0;border-radius:10px;padding:1.5rem 1.75rem;max-width:480px;width:calc(100% - 32px);box-shadow:0 12px 32px rgba(0,0,0,.15)}.teaching-modal-title{font-size:1.15rem;font-weight:600;margin-bottom:.75rem}.teaching-modal-body p{margin:0 0 .6rem;font-size:.9rem;color:#4a4030;line-height:1.45}.teaching-modal-seats{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin:.75rem 0;font-size:.9rem;color:#4a4030}.teaching-modal-seats-label{margin-right:.25rem}.teaching-seat-btn{background:#fff;color:#4a4030;border:1px solid #d0ccc0;border-radius:6px;padding:.3rem .7rem;font-size:.85rem;cursor:pointer}.teaching-seat-btn:hover:not(:disabled){border-color:#9a9080}.teaching-seat-btn.active{background:#2f7d3a;color:#fff;border-color:#246129}.teaching-seat-btn:disabled{opacity:.5;cursor:default}.teaching-modal-check{display:flex;gap:.5rem;align-items:flex-start;margin:.75rem 0;font-size:.9rem;color:#4a4030}.teaching-modal-check em{color:#9a9080;font-style:italic;margin-left:4px}.teaching-modal-error{background:#fbeaea;color:#8a2222;padding:.5rem .75rem;border-radius:4px;font-size:.85rem;margin-top:.5rem}.teaching-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.teaching-modal-cancel{background:#e8e4d8;color:#4a4030;border:1px solid #d0ccc0;border-radius:6px;padding:.45rem 1rem;cursor:pointer}.teaching-modal-cancel:hover:not(:disabled){background:#d8d4c8}.teaching-modal-confirm{background:#2f7d3a;color:#fff;border:1px solid #246129;border-radius:6px;padding:.45rem 1rem;cursor:pointer}.teaching-modal-confirm:hover:not(:disabled){background:#246129}.teaching-modal-cancel:disabled,.teaching-modal-confirm:disabled{opacity:.5;cursor:default}.preset-intro-warn{background:#fdf3e0;border:1px solid #e3c98f;color:#7a5a14;border-radius:6px;padding:.5rem .75rem;font-size:.85rem;line-height:1.45;margin:.5rem 0}.preset-intro-auction{border-collapse:collapse;margin:.5rem auto;font-size:.9rem}.preset-intro-auction th{font-weight:600;color:#6e6455;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.preset-intro-auction td,.preset-intro-auction th{padding:2px 12px;text-align:center}.preset-intro-tricks{margin:.6rem 0 .2rem}.preset-intro-tricks-label{font-size:.72rem;font-weight:600;color:#6e6455;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.preset-intro-scroll{max-height:180px;overflow-y:auto}.preset-intro-trick{display:flex;gap:12px;align-items:baseline;font-size:.9rem;padding:1px 0}.preset-intro-trick-num{color:#9a9080;min-width:2.2em;text-align:right}.preset-intro-play{white-space:nowrap}.preset-intro-play.winner{font-weight:700}.teaching-live-panel{position:fixed;right:12px;bottom:12px;width:320px;max-width:calc(100vw - 24px);background:#faf8f2;border:1px solid #d0ccc0;border-radius:8px;padding:.85rem 1rem;font-size:.85rem;color:#4a4030;max-height:60vh;overflow-y:auto;box-shadow:0 6px 20px rgba(0,0,0,.12);z-index:900}.teaching-live-panel.collapsed{width:auto;max-width:200px;padding:6px 12px;cursor:pointer;font-weight:600}.teaching-live-panel-toggle{background:none;border:none;cursor:pointer;font-size:.85rem;color:#5a8d5e;padding:0;float:right}.teaching-live-panel h4{margin:0 0 .4rem;font-size:.9rem;font-weight:600}.teaching-live-back{display:inline-block;margin-top:.5rem;font-size:.78rem;color:#5a8d5e;text-decoration:none}.teaching-live-back:hover{text-decoration:underline}.teaching-live-anno{margin:.35rem 0;padding:.4rem .55rem;background:#fff;border:1px solid #e0dcd0;border-radius:5px}.teaching-live-anno.current{border-color:#2f7d3a;background:#eef7ec}.teaching-live-critical{background:#ffe9c4;color:#8a5a00;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;margin-left:.5rem}.legal-page{min-height:100vh;padding:48px 24px 96px}.legal-container{max-width:760px;margin:0 auto;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:48px;box-shadow:var(--shadow)}.legal-back{display:inline-block;margin-bottom:16px;color:var(--muted);text-decoration:none;font-size:14px}.legal-back:hover{color:var(--ink)}.legal-title{margin:0 0 4px;font-size:clamp(28px,4vw,36px)}.legal-updated{margin:0 0 32px;color:var(--muted);font-size:13px;letter-spacing:.08em;text-transform:uppercase}.legal-section{margin-bottom:28px}.legal-section h2{font-size:18px;margin:0 0 8px;color:var(--ink)}.legal-section li,.legal-section p{color:#2a2620;line-height:1.65;font-size:15px}.legal-section ul{margin:8px 0;padding-left:22px}.legal-section li{margin-bottom:6px}@media (max-width:600px){.legal-container{padding:32px 20px}}.tv-prog{margin-top:4px}.tv-prog-empty{color:var(--muted);padding:24px 4px}.tv-prog-note{color:var(--muted);font-size:.82rem;margin:-4px 0 12px}.tv-prog-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px}.tv-prog-dirs{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.tv-prog-dirs button{padding:6px 16px;border:none;background:var(--panel);color:var(--ink);cursor:pointer;font-size:.85rem;font-weight:600}.tv-prog-dirs button+button{border-left:1px solid var(--border)}.tv-prog-dirs button.active{background:var(--accent);color:#fff}.tv-prog-round{display:flex;align-items:center;gap:10px;flex:1 1 320px}.tv-prog-step{width:30px;height:30px;border:1px solid var(--border);background:var(--panel);border-radius:var(--r-sm);cursor:pointer;color:var(--ink);font-size:.8rem}.tv-prog-step:disabled{opacity:.4;cursor:default}.tv-prog-round-label{white-space:nowrap;font-size:.95rem}.tv-prog-round-of{color:var(--muted)}.tv-prog-skip{display:inline-block;margin-left:8px;padding:1px 7px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--accent-2);border-radius:999px;vertical-align:middle}.tv-prog-slider{flex:1 1 120px;accent-color:var(--accent);cursor:pointer}.tv-prog-body{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.3fr);grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.tv-prog-body{grid-template-columns:1fr}}.tv-prog-board{overflow-x:auto}.tv-prog-table td,.tv-prog-table th{padding:6px 8px}.tv-prog-table tbody tr{cursor:pointer}.tv-prog-num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-prog-rank{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-prog-players{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv-prog-pct{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-prog-selected{background:color-mix(in srgb,var(--accent) 14%,transparent)!important;box-shadow:inset 3px 0 0 var(--accent)}.tv-prog-move{font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.tv-prog-move-up{color:var(--success,#2f6a3a)}.tv-prog-move-down{color:var(--card-red,#c0392b)}.tv-prog-move-flat,.tv-prog-move-new{color:var(--muted)}.tv-prog-chart{border:1px solid var(--border);border-radius:var(--r-md);background:var(--panel);padding:12px 14px 6px}.tv-prog-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;flex-wrap:wrap}.tv-prog-chart-title{font-weight:700;font-size:.95rem}.tv-prog-metric{display:inline-flex;gap:4px}.tv-prog-metric button{padding:4px 10px;border:1px solid var(--border);background:var(--panel);border-radius:var(--r-sm);cursor:pointer;color:var(--muted);font-size:.78rem}.tv-prog-metric button.active{background:var(--ink);color:var(--paper,#fff);border-color:var(--ink)}.tv-prog-svg{width:100%;height:auto;display:block}.tv-prog-grid{stroke:var(--border);stroke-width:1}.tv-prog-grid-mid{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4;opacity:.6}.tv-prog-axis{fill:var(--muted);font-size:11px;font-family:var(--font-mono,monospace)}.tv-prog-cursor{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.7}.tv-prog-line-bg{stroke:var(--muted);stroke-width:1;opacity:.18}.tv-prog-line-hi{stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.tv-prog-dot{fill:var(--accent);opacity:.85}.tv-prog-dot-cur{fill:#fff;stroke:var(--accent);stroke-width:2.5}.tv-prog-dirtag{display:inline-block;min-width:26px;text-align:center;padding:1px 6px;font-size:.7rem;font-weight:700;letter-spacing:.03em;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.tv-prog-dirtag-ns{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--accent) 10%,transparent)}.tv-prog-dirtag-ew{color:var(--accent-2);border-color:color-mix(in srgb,var(--accent-2) 40%,var(--border));background:color-mix(in srgb,var(--accent-2) 10%,transparent)}.tv-prog-overlay{position:fixed;inset:0;background:rgba(20,18,14,.5);z-index:120;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}.tv-prog-modal{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg,16px);box-shadow:0 24px 70px rgba(20,18,14,.28);padding:18px 22px 22px;width:min(960px,100%);color:var(--ink)}.tv-prog-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:10px}.tv-prog-modal-head h2{margin:0;font-size:1.1rem}.tv-prog-modal-close{background:none;border:none;color:var(--muted);font-size:1.6rem;line-height:1;cursor:pointer;padding:0 4px}.tv-prog-modal-close:hover{color:var(--ink)}.tv-prog-boards{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}.tv-prog-boards-head{display:flex;align-items:baseline;justify-content:space-between;font-weight:700;font-size:.85rem;margin-bottom:6px}.tv-prog-boards-sub{font-weight:500;font-size:.78rem;color:var(--muted)}.tv-prog-bdtable{width:100%}.tv-prog-bdtable td,.tv-prog-bdtable th{padding:4px 8px;font-size:.85rem}.tv-prog-bdtable tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.tv-prog-bdpct{display:inline-block;min-width:52px;padding:1px 6px;border-radius:var(--r-sm,6px);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;text-align:right;background:linear-gradient(to right,color-mix(in srgb,var(--accent-2) 30%,transparent) var(--pct,0),transparent var(--pct,0))}.tv-prog-legend{display:flex;gap:16px;flex-wrap:wrap;margin:2px 0 6px;font-size:.8rem;color:var(--muted)}.tv-prog-legend-item{display:inline-flex;align-items:center;gap:5px}.tv-prog-legend-swatch{width:14px;height:3px;border-radius:2px;display:inline-block}.tv-prog-legend-field{color:var(--muted);opacity:.7}.tv-prog-flight-a .tv-prog-flight-line,.tv-prog-legend-swatch.tv-prog-flight-a{stroke:var(--accent);background:var(--accent)}.tv-prog-flight-b .tv-prog-flight-line,.tv-prog-legend-swatch.tv-prog-flight-b{stroke:var(--accent-2);background:var(--accent-2)}.tv-prog-flight-c .tv-prog-flight-line,.tv-prog-legend-swatch.tv-prog-flight-c{stroke:var(--gold,#b8862e);background:var(--gold,#b8862e)}.tv-prog-flight-line{stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.tv-prog-flight-a .tv-prog-flight-dot{fill:var(--accent)}.tv-prog-flight-b .tv-prog-flight-dot{fill:var(--accent-2)}.tv-prog-flight-c .tv-prog-flight-dot{fill:var(--gold,#b8862e)}.tv-prog-boards-scroll{max-height:230px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-sm,6px)}.tv-prog-boards-scroll .tv-prog-bdtable{margin:0}.tv-prog-boards-scroll thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--bg);box-shadow:inset 0 -1px 0 var(--border)}.tv-prog-bdsort{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.tv-prog-bdsort:hover{color:var(--ink)}.tv-prog-bdsort.active{color:var(--accent)}.tv-prog-sort-arrow{font-size:.7rem}.tv-prog-bdmove-h{width:1%}.tv-prog-bdtable .tv-prog-move{width:1%;white-space:nowrap;padding-right:2px}.tv-subview-toggle{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 4px}.tv-pair-stats{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.tv-pair-stat{display:flex;flex-direction:column;gap:2px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-sm,6px);min-width:130px}.tv-pair-stat-label{font-size:.72rem;color:var(--muted);white-space:nowrap}.tv-pair-stat-value{font-size:.85rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-pair-prog{max-width:760px;margin-bottom:12px}.tv-pair-prog .tv-prog-round{margin-bottom:6px}.tv-pair-table .tv-prog-move{width:1%;white-space:nowrap;padding-right:2px}.tv-pair-table td.tv-prog-num,.tv-pair-table th.tv-prog-num{text-align:right}.card-wrap-clickable{cursor:pointer;border-radius:3px}.card-wrap-clickable:focus-visible,.card-wrap-clickable:hover{background:var(--accent-2);color:#fff;outline:none}.br-overlay{position:fixed;inset:0;background:rgba(20,18,14,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.br-modal{position:relative;background:var(--panel);border-radius:16px;box-shadow:var(--shadow);width:min(880px,100%);max-height:92vh;overflow-y:auto;display:flex;flex-direction:column}.br-modal-cards{width:min(3200px,94vw);height:min(92vh,calc(min(3200px, 94vw) * .58))}@media (min-width:861px){.br-modal-cards{width:1440px;height:835px;transform:scale(var(--br-fit,1));transform-origin:center center}.br-modal-cards .br-side{width:480px}}.br-header{justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.br-header,.br-header-info{display:flex;align-items:center;flex-wrap:wrap}.br-header-info{gap:8px}.br-nav{display:inline-flex;align-items:center;gap:2px}.br-nav-btn{background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:1rem;line-height:1;color:var(--ink);padding:2px 8px}.br-nav-btn:hover:not(:disabled){background:var(--paper-2,rgba(0,0,0,.06))}.br-nav-btn:disabled{opacity:.35;cursor:default}.br-title,.br-title-contract{font-weight:700;font-size:1rem;color:var(--ink)}.br-title-contract:before{content:"·";margin:0 6px;color:var(--muted)}.br-source-link{font-size:.78rem;color:var(--accent);text-decoration:none}.br-source-link:hover{text-decoration:underline}.br-toast{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:5;background:rgba(20,18,14,.88);color:#fff;font-size:.8rem;padding:6px 14px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.25);pointer-events:none;animation:br-toast-in .2s ease}@keyframes br-toast-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.br-confirm-scrim{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,18,14,.55)}.br-confirm{background:var(--panel);color:var(--ink);border:1px solid var(--border);border-radius:12px;padding:18px 20px;max-width:340px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.35)}.br-confirm-text{margin:0 0 14px;font-size:.9rem;line-height:1.4}.br-confirm-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.br-confirm-error{margin:10px 0 0;color:#c0392b;font-size:.8rem}.br-header-actions{display:flex;align-items:center;gap:10px}.br-toggle{display:inline-flex;align-items:center;gap:5px;font-size:.8rem}.br-close,.br-toggle{color:var(--muted);cursor:pointer}.br-close{background:none;border:none;font-size:1.1rem;line-height:1}.br-close:hover{color:var(--ink)}.br-whatif-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#4a2e6b;color:#fff;padding:8px 16px;font-size:.85rem}.br-whatif-back{background:hsla(0,0%,100%,.18);color:#fff;border:1px solid hsla(0,0%,100%,.35);border-radius:8px;padding:3px 10px;cursor:pointer;font-size:.8rem}.br-whatif-back:hover{background:hsla(0,0%,100%,.3)}.br-error{color:#c0392b}.br-analyzing,.br-error{padding:8px 16px;font-size:.85rem}.br-analyzing{color:var(--accent)}.br-player-note{display:flex;align-items:baseline;gap:8px;padding:8px 16px;font-size:.85rem;background:color-mix(in srgb,var(--accent) 8%,transparent);border-left:3px solid var(--accent)}.br-player-note-label{flex:0 0 auto;font-weight:600;color:var(--accent)}.br-player-note-text{white-space:pre-wrap;color:var(--ink)}.br-body{display:flex;gap:16px;padding:16px;flex-wrap:wrap;align-items:flex-start;justify-content:center}.br-modal-cards .br-body{flex:1 1 auto;min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr);align-items:stretch}.br-modal-cards .br-cards-root{min-height:0}.br-modal-cards .br-side{width:clamp(360px,34vw,560px);min-height:0;overflow:hidden;align-self:stretch}@media (max-width:860px){.br-modal-cards{height:auto;max-height:92vh}.br-modal-cards .br-body{grid-template-columns:1fr;grid-template-rows:auto auto;overflow:visible}.br-modal-cards .br-side{width:auto;overflow:visible}}.br-diagram{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto auto;grid-gap:8px;gap:8px;align-items:center;justify-items:center;background:#2d6a4f;border-radius:16px;padding:16px;flex:1 1 460px}.br-diagram-tl{grid-column:1;grid-row:1;align-self:start;justify-self:start}.br-diagram-n{grid-column:2;grid-row:1}.br-diagram-w{grid-column:1;grid-row:1/4}.br-diagram-center{grid-column:2;grid-row:2}.br-diagram-e{grid-column:3;grid-row:1/4}.br-diagram-s{grid-column:2;grid-row:3}.br-diagram-br{grid-column:3;grid-row:3;align-self:end;justify-self:end}.br-no-hands{color:var(--muted);padding:24px}.br-cards-root{flex:1 1 460px;min-width:0;display:flex}.br-cards-felt.tv2-felt{flex:1 1 auto;container-type:inline-size;height:auto;min-height:440px;--tv2-vh-cap:10vh}.br-cards-felt .tv2-seat{--tv2-card-w:clamp(26px,min(13cqi,var(--tv2-vh-cap)),58px);--tv2-card-h:calc(var(--tv2-card-w) / var(--tv2-aspect))}.br-cards-felt .tv2-seat-left,.br-cards-felt .tv2-seat-right{--tv2-card-w:clamp(40px,min(19.5cqi,14vh),88px);--tv2-card-h:calc(var(--tv2-card-w) / var(--tv2-aspect))}.br-cards-felt .tv2-card{height:calc(var(--tv2-card-h) / 2);overflow:hidden}.br-cards-felt .tv2-card img{height:var(--tv2-card-h)}.br-cards-felt .tv2-seat-bottom,.br-cards-felt .tv2-seat-top{--tv2-card-w:clamp(34px,min(17.4cqi,22vh),160px);--tv2-card-h:calc(var(--tv2-card-w) / var(--tv2-aspect))}.br-cards-felt .tv2-hand[data-variant=horizontal-suits] .tv2-card{width:calc(var(--tv2-card-w) * var(--tv2-expose-x))}.br-cards-felt .tv2-hand[data-variant=horizontal-suits] .tv2-card img{width:var(--tv2-card-w)}.br-cards-felt .tv2-hand[data-variant=horizontal-suits] .tv2-suit-group .tv2-card+.tv2-card{margin-left:0}.br-cards-corner{position:absolute;z-index:2;pointer-events:none}.br-cards-corner-tl{top:12px;left:14px}.br-cards-corner-br{right:14px;bottom:12px}.br-cards-corner .br-felt-info,.br-cards-corner .br-felt-status{font-size:.85rem}.br-cards-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:#14301f;color:hsla(0,0%,100%,.95);font-size:.8rem;line-height:1.4;white-space:nowrap;border:1.5px solid hsla(0,0%,100%,.38);box-shadow:0 1px 4px rgba(0,0,0,.35)}.br-cards-chip[data-active]{border-color:#ffd166;box-shadow:0 0 0 2px rgba(255,209,102,.45)}.br-cards-chip[data-dummy]{border-color:rgba(26,143,122,.9)}.br-cards-chip-seat{font-weight:800;border-radius:4px;padding:0 4px}.br-cards-chip-seat[data-vul]{background:#c0392b;color:#fff}.br-cards-chip-dealer{font-weight:800;font-size:.7rem;background:hsla(0,0%,100%,.85);color:#1c1a16;border-radius:3px;padding:0 3px}.br-cards-chip-name{font-weight:600}.br-cards-chip-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;background:rgba(26,143,122,.9);color:#fff;border-radius:3px;padding:0 4px}.br-cards-felt-boxed .tv2-seat-center{align-items:center;justify-content:center;padding:0}.br-cards-felt-boxed.tv2-felt{padding:5px 14px}.br-cards-felt-boxed .tv2-hand[data-variant=horizontal]{padding-top:0}.br-cards-felt-boxed .tv2-seat-bottom,.br-cards-felt-boxed .tv2-seat-top{--tv2-card-w:clamp(34px,18cqi,220px);--tv2-card-h:calc(var(--tv2-card-w) / var(--tv2-aspect))}.br-cards-center-box{position:relative;width:90%;height:90%;flex-direction:column;gap:6px;border:2px solid hsla(0,0%,100%,.22);border-radius:20px;padding:24px;min-width:110px;min-height:110px}.br-cards-box-center,.br-cards-center-box{display:flex;align-items:center;justify-content:center}.br-cards-box-center{flex:1 1 auto;align-self:stretch;width:100%;min-height:0}.br-cards-box-center>.br-bid-center,.br-cards-box-center>.br-trick{flex:1 1 auto;align-self:stretch;width:100%;height:100%}.br-cards-box-center>.br-trick{justify-content:space-between}.br-cards-box-center .br-trick-mid{align-self:stretch;width:100%;justify-content:space-between;gap:0}.br-cards-box-center .br-chip{width:clamp(42px,1.9rem + 1vw,60px);height:clamp(34px,1.5rem + .8vw,48px);font-size:clamp(.95rem,.8rem + .6vw,1.35rem);border-radius:7px}.br-cards-box-meta{color:hsla(0,0%,100%,.82);font-size:.82rem;text-align:center}.br-cards-box-status{position:absolute;bottom:8px;right:14px}.br-cards-box-status .br-felt-status{font-size:.85rem}.br-cards-pill{position:absolute;z-index:3}.br-cards-pill-n{top:0;left:50%;transform:translate(-50%,-50%)}.br-cards-pill-s{bottom:0;left:50%;transform:translate(-50%,50%)}.br-cards-pill-w{left:0;top:50%;transform:translate(-50%,-50%) rotate(-90deg)}.br-cards-pill-e{right:0;top:50%;transform:translate(50%,-50%) rotate(90deg)}.br-felt-info,.br-felt-status{display:flex;flex-direction:column;gap:2px;color:hsla(0,0%,100%,.92);font-size:1rem;line-height:1.3}.br-felt-status{align-items:flex-end;text-align:right}.br-felt-contract{font-weight:700;font-size:1.15rem}.br-hand{background:#fff;border:3px solid transparent;border-radius:8px;overflow:hidden;min-width:132px}.br-hand-empty{background:transparent;border-color:transparent;min-width:132px;min-height:1px}.br-hand-active{border-color:#ffd166;box-shadow:0 0 0 5px rgba(255,209,102,.55)}.br-hand-dummy{box-shadow:0 0 0 5px rgba(26,143,122,.6)}.br-hand-dummy.br-hand-active{box-shadow:0 0 0 5px rgba(255,209,102,.55),0 0 0 9px rgba(26,143,122,.5)}.br-hand-head{font-weight:700;font-size:12px;color:#fff;background:#555;padding:3px 9px;display:flex;align-items:center;gap:6px}.br-hand-vul .br-hand-head{background:#c0392b}.br-hand-name{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.br-hand-name-link{color:inherit;text-decoration:none;cursor:pointer}.br-hand-name-link:hover{text-decoration:underline}.br-hand-dealer{background:var(--accent)}.br-hand-dealer,.br-hand-dummy-tag{font-size:9px;color:#fff;border-radius:4px;padding:0 4px}.br-hand-dummy-tag{background:var(--accent-2);text-transform:uppercase;letter-spacing:.05em}.br-hand-suits{padding:6px 10px}.br-hand-suit{display:flex;gap:5px;font-size:21px;line-height:1.5;color:#1c1a16;padding-bottom:3px}.br-hand-suit.red{color:#c0392b}.br-suit-sym{width:24px;flex-shrink:0}.br-suit-cards{letter-spacing:.03em}.br-hand-foot{padding:3px 10px 6px;font-size:10.5px;color:var(--muted);border-top:1px solid var(--border)}.br-card{position:relative;display:inline-block;margin-right:3px}.br-card-clickable{cursor:pointer}.br-card-clickable:hover{color:var(--accent);text-decoration:underline}.br-lead-num{position:absolute;top:-5px;right:-9px;font-size:8px;background:var(--accent-2);color:#fff;border-radius:8px;min-width:15px;height:13px;padding:0 2px;display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.br-lead-num.down{background:#c0392b}.br-trick{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:92px}.br-trick-mid{display:flex;gap:26px}.br-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:1px;width:38px;height:30px;box-sizing:border-box;font-weight:700;font-size:14px;color:#1c1a16;background:#fff;border-radius:5px}.br-chip.red{color:#c0392b}.br-chip.winner{box-shadow:inset 0 0 0 2px #ffd166}.br-chip-empty{background:transparent}.br-chip-rank{font-size:.85em}.br-chip-dd{position:absolute;top:-6px;right:-8px;font-size:8px;background:var(--accent-2);color:#fff;border-radius:8px;min-width:14px;height:13px;padding:0 2px;display:flex;align-items:center;justify-content:center;line-height:1}.br-chip-dd.down{background:#c0392b}.br-lead-prompt{font-size:.85rem;max-width:110px}.br-contract-center,.br-lead-prompt{color:#fff;text-align:center}.br-contract-big{font-size:1.6rem;font-weight:800}.br-claim-big{font-size:1.4rem;font-weight:800;color:#ffd166}.br-contract-by{font-size:.85rem;opacity:.85}.br-bid-center{display:flex;align-items:center;justify-content:center;min-width:128px;min-height:98px}.br-bid-center[data-dir=w]{justify-content:flex-start}.br-bid-center[data-dir=e]{justify-content:flex-end}.br-bid-center[data-dir=n]{align-items:flex-start}.br-bid-center[data-dir=s]{align-items:flex-end}.br-bid-chip{display:inline-flex;align-items:baseline;justify-content:center;font-size:clamp(1.1rem,.95rem + 1.5vw,2.2rem);font-weight:800;color:#1c1a16;background:#fff;border-radius:6px;padding:4px 12px;min-width:30px;min-height:26px;animation:br-flash .45s ease}@keyframes br-flash{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.br-explore-banner{background:#1f5e50;color:#fff;padding:6px 16px;font-size:.82rem}.br-auction{flex:0 1 220px}.br-auction-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.br-auction-seat{background:#555;color:#fff;font-weight:700;font-size:.78rem;text-align:center;padding:4px 0}.br-auction-seat.active{background:var(--accent)}.br-auction-cell{background:#fff;text-align:center;padding:4px 0;font-size:.85rem;font-family:var(--font-mono,monospace);min-height:1.4rem}.br-auction-cell.pass{color:var(--muted)}.br-auction-alert{color:#c0392b;font-weight:700;margin-left:1px}.cheat-bidding-review{max-width:280px;margin:0 auto}.cheat-bidding-review .br-auction{flex:none}.br-side{flex:0 1 240px;min-width:200px;min-height:0;display:flex;flex-direction:column;gap:12px;align-self:stretch}.br-graph,.br-side .br-auction{flex:0 0 auto}.br-graph{display:flex;flex-direction:column;gap:6px;padding:8px 10px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface,transparent)}.br-graph-loading{font-size:.82rem;color:var(--muted);text-align:center;padding:20px 10px}.br-graph-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.br-graph-title{font-size:.8rem;font-weight:700}.br-graph-readout{font-size:.72rem;color:var(--muted);font-family:var(--font-mono,monospace)}.br-graph-rel{margin-left:6px;font-weight:700;color:var(--good,#2e9e5b)}.br-graph-rel[data-down]{color:var(--bad,#d3455b)}.br-graph-svg{display:block;width:100%;height:auto}.br-graph-grid{stroke:var(--border);stroke-width:1}.br-graph-axis{fill:var(--muted);font-size:9px;font-family:var(--font-mono,monospace)}.br-graph-trickline{stroke:var(--border);stroke-width:1;opacity:.5}.br-graph-cursor{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.7}.br-graph-contract{stroke:var(--muted);stroke-width:1.5}.br-graph-makeable{stroke:var(--good,#2e9e5b);stroke-width:1.5;stroke-dasharray:5 4;opacity:.8}.br-graph-line{stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.br-graph-node{fill:var(--accent)}.br-graph-node-neutral{fill:var(--accent);opacity:.75}.br-graph-node-declarer{fill:var(--bad,#d3455b)}.br-graph-node-defender{fill:var(--warn,#e2a53a)}.br-graph-node-cur{fill:#fff;stroke:var(--accent);stroke-width:2.5}.br-graph-slider{display:flex;align-items:center;gap:8px}.br-graph-slider input[type=range]{flex:1 1 auto;min-width:0}.br-graph-slider-label{font-size:.72rem;color:var(--muted)}.br-graph-slider-val{font-size:.72rem;font-family:var(--font-mono,monospace);min-width:1.4em;text-align:right}.br-graph-legend{display:flex;gap:12px;font-size:.68rem;color:var(--muted)}.br-graph-legend-item{display:inline-flex;align-items:center;gap:5px}.br-graph-swatch{display:inline-block;width:14px;height:0;border-top-width:2px;border-top-style:solid}.br-graph-swatch-contract{border-top-color:var(--muted)}.br-graph-swatch-makeable{border-top-style:dashed;border-top-color:var(--good,#2e9e5b)}.br-side .br-others{flex:1 1}.br-side-tabbed{gap:0}.br-side-tabs{display:flex;gap:4px;flex:0 0 auto;border-bottom:1px solid var(--border);margin-bottom:12px}.br-side-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:6px 10px;font:inherit;font-size:.85rem;font-weight:600;color:var(--muted);cursor:pointer}.br-side-tab:hover{color:var(--ink)}.br-side-tab.active{color:var(--ink);border-bottom-color:var(--accent)}.br-side-tabpanel{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.br-side-tabpanel .da-body{padding:0;overflow:visible}.br-side-empty{color:var(--muted);font-size:.85rem;margin:8px 0}.br-feedback{display:flex;flex-direction:column;min-height:0}.br-feedback-pick{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-bottom:10px}.br-feedback-pick-label{font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.br-feedback-select{flex:1 1 auto;min-width:0;font:inherit;font-size:.85rem;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--ink)}.br-feedback-single{flex:0 0 auto;margin-bottom:10px;font-size:.85rem;font-weight:700;color:var(--ink)}.br-modal-bidding{width:min(560px,100%)}.br-bidding-body{display:flex;gap:16px;padding:16px;flex-wrap:wrap;align-items:flex-start}.br-bidding-summary{flex:1 1 220px;min-width:200px;background:#2d6a4f;border-radius:16px;padding:16px;gap:14px}.br-bidding-lead,.br-bidding-summary{display:flex;flex-direction:column;align-items:center}.br-bidding-lead{gap:4px;color:#fff}.br-bidding-lead-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.br-bidding-note{margin:0;font-size:.75rem;line-height:1.4;text-align:center;color:hsla(0,0%,100%,.75)}.br-bidding-body .br-side{flex:1 1 220px;align-self:flex-start}.br-others{display:flex;flex-direction:column;min-height:0}.br-others-head{flex:0 0 auto;font-weight:700;font-size:.78rem;color:var(--ink);margin-bottom:4px}.br-others-scroll{flex:1 1;min-height:0;overflow-y:auto;border:1px solid var(--border);border-radius:8px}@media (max-width:760px){.br-side .br-others{flex:0 1 auto}.br-others-scroll{flex:0 1 auto;max-height:55vh}}.br-others-table .br-others-contract{width:1%;white-space:nowrap}.br-others-table{width:100%;border-collapse:collapse;font-size:.76rem}.br-others-table th{position:-webkit-sticky;position:sticky;top:0;background:#555;color:#fff;font-weight:700;text-align:left;padding:3px 6px;white-space:nowrap}.br-others-table td{padding:3px 6px;border-top:1px solid var(--border);white-space:nowrap}.br-others-table tbody tr:nth-child(2n){background:var(--bg)}.br-others-self{background:rgba(255,209,102,.28)!important;font-weight:600}.br-others-label{max-width:120px;overflow:hidden;text-overflow:ellipsis}.br-makeable{flex:0 0 auto;margin-top:10px;border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:.76rem;color:var(--ink);background:var(--bg)}.br-makeable-title{font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}.br-makeable-list{line-height:1.5}.br-makeable-par{margin-top:3px}.br-makeable-loading,.br-makeable-par{color:var(--muted)}.br-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border)}.br-btn{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:.85rem;cursor:pointer;color:var(--ink)}.br-btn:hover:not(:disabled){border-color:var(--accent)}.br-btn:disabled{opacity:.4;cursor:default}.br-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.br-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.br-btn-whatif{background:#4a2e6b;border-color:#4a2e6b;color:#fff}.br-btn-sm{padding:4px 10px;font-size:.8rem}.br-progress{font-size:.8rem;color:var(--muted);margin:0 4px}@media (max-width:700px){.br-modal,.br-modal-cards{height:92vh;max-height:92vh}.br-modal .br-body.br-body-mobile{display:flex;flex-direction:column;flex-wrap:nowrap;gap:10px;padding:10px;flex:1 1 auto;min-height:0;overflow:hidden}.br-body-mobile>.br-cards-root,.br-body-mobile>.br-diagram{flex:1 1 auto;min-height:0}.br-body-mobile .br-cards-felt.tv2-felt{min-height:0}.br-mobile-tray{flex:0 1 auto;max-height:45vh;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.br-mobile-tray-head{display:flex;align-items:center;justify-content:flex-end;gap:8px}.br-mobile-results{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.br-mobile-results-head{position:-webkit-sticky;position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;margin-bottom:-4px;background:var(--panel);border-bottom:1px solid var(--border)}.br-mobile-results-title{font-weight:700;font-size:.85rem;color:var(--ink)}.br-mobile-sec-head{margin:0 0 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.br-controls-mobile{flex-wrap:nowrap;gap:6px;padding:8px 10px}.br-media{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--ink);font-size:1.05rem;line-height:1;cursor:pointer}.br-media:hover:not(:disabled){border-color:var(--accent)}.br-media:disabled{opacity:.35;cursor:default}.br-media-primary{background:var(--accent);border-color:var(--accent);color:#fff}.br-media-whatif{background:#4a2e6b;border-color:#4a2e6b;color:#fff;font-weight:700}.br-media-replay-wrap{margin-left:auto;display:inline-flex}.br-media-replay-btn{width:auto;min-width:40px;padding:0 12px;background:#2d6a4f;border-color:#2d6a4f;color:#fff}}.da-scrim{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,18,14,.55)}.da-panel{background:var(--panel);color:var(--ink);border:1px solid var(--border);border-radius:12px;width:min(680px,100%);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.35)}.da-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.da-head-info{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.da-head-title{font-weight:700;font-size:1rem}.da-meta{font-size:.75rem;color:var(--muted)}.da-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--muted);line-height:1}.da-close:hover{color:var(--ink)}.da-body{padding:16px;overflow-y:auto;font-size:.9rem;line-height:1.5}.da-body p{margin:0 0 10px;white-space:pre-line}.da-section{margin:0 0 18px}.da-section:last-child{margin-bottom:0}.da-section-title{margin:0 0 8px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:4px}.da-list{margin:0 0 10px;padding-left:18px}.da-list li{margin:2px 0}.da-auction{border-collapse:collapse;width:100%;font-size:.85rem}.da-auction th{text-align:left;font-weight:600;color:var(--muted)}.da-auction td,.da-auction th{padding:4px 8px;border-bottom:1px solid var(--border)}.da-auction td{vertical-align:top}.da-auction .da-seat{font-weight:700;width:3em}.da-auction .da-call{font-weight:600;white-space:nowrap;width:4.5em}.da-auction .da-why{color:var(--ink)}.da-alert{color:var(--accent);font-weight:700;margin-left:2px}.da-alert-text{color:var(--muted);font-size:.82rem}.da-contract{margin-top:10px}.learn-page{max-width:760px;margin:0 auto}.learn-group{margin-bottom:28px}.learn-group-title{font-size:1.05rem;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line,#d0ccc0);color:var(--ink)}.learn-player-head h1{margin:6px 0 4px}.learn-stats{display:flex;gap:14px;color:var(--muted);font-size:.9rem}.learn-stat strong{color:var(--ink)}.learn-progressbar{height:6px;background:#e8e4d8;border-radius:4px;margin:12px 0;overflow:hidden}.learn-progressbar-fill{height:100%;background:var(--accent);transition:width .3s ease}.learn-stepper{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.learn-step{width:32px;height:32px;border-radius:50%;border:1px solid #d0ccc0;background:#fff;color:var(--ink);cursor:pointer;font-weight:600}.learn-step.active{border-color:var(--accent);color:var(--accent)}.learn-step.done{background:var(--accent);color:#fff;border-color:var(--accent)}.learn-unit{padding:24px}.learn-unit-title h2{margin:4px 0 16px}.learn-md-h{margin:16px 0 8px;font-size:1.1rem}.learn-md-p{margin:10px 0;line-height:1.55}.learn-md-list{margin:8px 0 8px 18px;line-height:1.6}.learn-diagram{margin:14px 0}.learn-caption{color:var(--muted);font-size:.85rem;margin-top:6px}.learn-quiz{margin:18px 0;padding:16px;border:1px solid #e0dcd0;border-radius:10px;background:#faf8f2}.learn-quiz-prompt{font-weight:600;margin-bottom:12px}.learn-quiz-choices{display:flex;flex-direction:column;gap:8px}.learn-choice{text-align:left;padding:10px 14px;border:1px solid #d0ccc0;border-radius:8px;background:#fff;cursor:pointer;font-size:.95rem}.learn-choice.picked{border-color:var(--accent)}.learn-choice.correct{border-color:#2f7d3a;background:#eef7ec}.learn-choice.wrong{border-color:#8a2222;background:#fbeaea}.learn-quiz-feedback{margin-top:12px;padding:10px 12px}.learn-quiz-feedback.ok{background:#eef7ec;border-left:3px solid #2f7d3a}.learn-quiz-feedback.no{background:#fbeaea;border-left:3px solid #8a2222}.learn-quiz-feedback p{margin:6px 0 0;font-size:.9rem}.learn-kind{display:inline-block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border-radius:6px;margin-bottom:12px}.learn-kind-twist{background:#fff1d6;color:#8a5a00}.learn-myhand{margin:8px 0 14px}.learn-myhand-label{font-size:.85rem;color:var(--muted);margin-bottom:6px}.learn-auction-wrap{margin:12px 0}.learn-auction-label{font-size:.85rem;color:var(--muted);margin-bottom:4px}.learn-auction{display:flex;gap:8px;flex-wrap:wrap}.learn-call{min-width:34px;text-align:center;padding:4px 8px;border:1px solid #e0dcd0;border-radius:6px;background:#fff;font-weight:600}.learn-call.red{color:var(--card-red)}.learn-call-you{border-color:var(--accent);color:var(--accent)}.learn-reveal{margin-top:14px}.learn-contract{font-size:1rem}.learn-commentary{margin-top:8px;line-height:1.5;color:var(--ink)}.learn-nav{display:flex;justify-content:space-between;margin-top:18px}.bb-btn.ghost{background:transparent;border:1px solid #d0ccc0;color:var(--ink)}.learn-complete{text-align:center;padding:40px 16px}.learn-complete-badge{font-size:48px}.learn-complete h1{margin:8px 0}.learn-complete-stats{display:flex;gap:18px;justify-content:center;margin:16px 0 24px;color:var(--muted)}.learn-complete-stats strong{color:var(--ink)}.learn-complete-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.learn-choice{position:relative;transition:border-color .15s ease,background .15s ease,transform .12s ease}.learn-choice:not(:disabled):hover{transform:translateY(-1px);border-color:var(--accent)}.learn-choice:not(:disabled):active{transform:translateY(0) scale(.99)}.learn-choice-text{display:inline-block}.learn-choice-spinner{position:absolute;right:12px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;border:2px solid #d0ccc0;border-top:2px solid var(--accent)}.learn-points-pop{position:absolute;right:10px;top:-4px;font-weight:700;color:#2f7d3a;pointer-events:none;opacity:0}.learn-coach{margin-right:2px}.learn-streak{color:#b04a00;font-weight:700}.learn-quiz-feedback{border-radius:8px}.learn-progressbar-fill{transition:width .6s cubic-bezier(.22,1.2,.36,1)}.learn-step{transition:transform .12s ease,background .15s ease,color .15s ease}.learn-step:hover{transform:translateY(-1px)}.learn-step.active{transform:scale(1.12)}.learn-call-you{animation:none}.learn-confetti{position:relative;height:0}.learn-confetti i{position:absolute;top:-8px;left:50%;width:8px;height:12px;border-radius:2px;opacity:0}.learn-confetti i:nth-child(4n+1){background:var(--accent)}.learn-confetti i:nth-child(4n+2){background:#2f7d3a}.learn-confetti i:nth-child(4n+3){background:#c8a24a}.learn-confetti i:nth-child(4n+4){background:#4a6fc8}@media (prefers-reduced-motion:no-preference){.learn-unit-enter{animation:learn-unit-in .28s ease both}.learn-choice.pop{animation:learn-pop .35s ease}.learn-choice.shake{animation:learn-shake .4s ease}.learn-choice.glow{animation:learn-glow 1.1s ease .15s both}.learn-choice-spinner{animation:learn-spin .7s linear infinite}.learn-points-pop{animation:learn-float-up .9s ease .05s both}.learn-quiz-feedback{animation:learn-unit-in .25s ease both}.learn-streak{animation:learn-flare .5s ease}.learn-call-you{animation:learn-beckon 1.4s ease-in-out infinite}.learn-call-reveal{animation:learn-call-in .3s ease both}.learn-reveal{animation:learn-unit-in .3s ease both}.learn-complete-badge{animation:learn-pop .5s ease .1s both}.learn-confetti i{animation:learn-confetti-fall 1.6s ease-out both}.learn-confetti i:nth-child(2n){animation-duration:1.9s}.learn-confetti i:nth-child(3n){animation-delay:.12s}.learn-confetti i:first-child{--dx:-140px;--rot:200deg}.learn-confetti i:nth-child(2){--dx:-105px;--rot:-160deg}.learn-confetti i:nth-child(3){--dx:-75px;--rot:260deg}.learn-confetti i:nth-child(4){--dx:-50px;--rot:-120deg}.learn-confetti i:nth-child(5){--dx:-28px;--rot:180deg}.learn-confetti i:nth-child(6){--dx:-10px;--rot:-220deg}.learn-confetti i:nth-child(7){--dx:8px;--rot:140deg}.learn-confetti i:nth-child(8){--dx:26px;--rot:-180deg}.learn-confetti i:nth-child(9){--dx:48px;--rot:240deg}.learn-confetti i:nth-child(10){--dx:72px;--rot:-140deg}.learn-confetti i:nth-child(11){--dx:98px;--rot:200deg}.learn-confetti i:nth-child(12){--dx:130px;--rot:-240deg}.learn-confetti i:nth-child(13){--dx:-120px;--rot:160deg}.learn-confetti i:nth-child(14){--dx:55px;--rot:-200deg}.learn-confetti i:nth-child(15){--dx:-35px;--rot:220deg}.learn-confetti i:nth-child(16){--dx:115px;--rot:-160deg}}@keyframes learn-unit-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes learn-pop{0%{transform:scale(1)}40%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes learn-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}@keyframes learn-glow{0%{box-shadow:0 0 0 0 rgba(47,125,58,.45)}70%{box-shadow:0 0 0 7px rgba(47,125,58,0)}to{box-shadow:0 0 0 0 rgba(47,125,58,0)}}@keyframes learn-spin{to{transform:rotate(1turn)}}@keyframes learn-float-up{0%{opacity:0;transform:translateY(4px)}25%{opacity:1}to{opacity:0;transform:translateY(-18px)}}@keyframes learn-flare{0%{transform:scale(1)}35%{transform:scale(1.35) rotate(-4deg)}to{transform:scale(1)}}@keyframes learn-beckon{0%,to{transform:translateY(0);box-shadow:0 0 0 0 rgba(199,95,45,.35)}50%{transform:translateY(-2px);box-shadow:0 0 0 5px rgba(199,95,45,0)}}@keyframes learn-call-in{0%{opacity:0;transform:translateY(-6px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learn-confetti-fall{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx,0),130px) rotate(var(--rot,180deg))}}.mpk{display:flex;flex-direction:column;gap:6px}.mpk-caption{font-size:.75rem;opacity:.7;min-height:1em}.mpk-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-gap:4px;gap:4px}.mpk-cards{display:flex;flex-direction:column;gap:4px}.mpk-cardrow{display:flex;flex-wrap:wrap;gap:4px}.mpk-actionrow,.mpk-btn{display:flex}.mpk-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #aaa;border-radius:6px;background:#fff;color:#222;font:inherit;font-weight:600;font-size:.92rem;height:34px;align-items:center;justify-content:center;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mpk-btn:disabled{opacity:.32;cursor:default}.mpk-btn:not(:disabled):active{transform:translateY(1px)}.mpk-btn-pass{background:#2f7d4f;border-color:#246240}.mpk-btn-dbl,.mpk-btn-pass{color:#fff;font-size:.78rem}.mpk-btn-dbl{background:#b3372f;border-color:#8f2a24}.mpk-btn-dbl[data-rdbl]{background:#2b5fb3;border-color:#224b8e}.mpk-btn-level[data-selected]{background:var(--gold,#c9a227);border-color:var(--gold,#c9a227);color:#221a05}.mpk-btn-suit{font-size:1.05rem}.mpk-btn-nt{grid-column:span 3}.mpk-card{width:auto;min-width:38px;padding:0 8px}.mpk-back{width:auto;padding:0 12px;margin-left:auto;font-size:.82rem}.prompts-subtabs{margin:4px 0 14px}.prompts-editor{display:flex;flex-direction:column;gap:6px}.prompts-field-label{font-size:13px;font-weight:700;color:var(--muted);margin-top:10px}.prompts-textarea{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border,#2a2a2a);border-radius:8px;background:var(--card,hsla(0,0%,100%,.03));color:inherit;font-family:inherit;font-size:13px;line-height:1.45;resize:vertical}.prompts-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.prompts-tokens{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0}.prompts-tokens-hint{font-size:12px;color:var(--muted);margin:2px 0}.prompts-token-chip{padding:2px 8px;border:1px solid var(--border,#2a2a2a);border-radius:999px;background:var(--card,hsla(0,0%,100%,.03));color:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;cursor:pointer}.prompts-token-chip:hover{border-color:var(--accent,#6aa3ff)}.prompts-fields{display:flex;flex-direction:column;gap:8px}.prompts-field-row{display:flex;flex-direction:column;gap:3px}.prompts-field-key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--accent,#6aa3ff)}.prompts-desc{font-size:12.5px}.prompts-publish{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.prompts-reason{flex:1 1 260px;padding:8px 10px;border:1px solid var(--border,#2a2a2a);border-radius:8px;color:inherit;font-size:13px}.prompts-preview-pane,.prompts-reason{background:var(--card,hsla(0,0%,100%,.03))}.prompts-preview-pane{white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow:auto;padding:12px 14px;border:1px solid var(--border,#2a2a2a);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}.prompts-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.prompts-history-item{border-left:2px solid var(--border,#2a2a2a);padding:4px 0 4px 10px}.prompts-history-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.prompts-history-meta{color:var(--muted);font-size:12px}.prompts-history-reason{font-style:italic;font-size:12.5px;margin:2px 0}.prompts-history-change{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;margin-top:2px}.prompts-history-field{color:var(--accent,#6aa3ff);margin-right:6px}.prompts-history-before{opacity:.6;text-decoration:line-through}.prompts-history-after{opacity:.95}.handeditor-page{display:flex;flex-direction:column;gap:16px}.handeditor-muted{color:#8a8578;font-size:12px}.handeditor-error{background:#fdecea;border:1px solid #e5b4ae;color:#a33a2f;padding:8px 12px;border-radius:8px;font-size:13px}.handeditor-btn-danger{background:#a33a2f!important;border-color:#a33a2f!important;color:#fff!important}.handeditor-list{display:flex;flex-direction:column;gap:14px}.handeditor-list-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.handeditor-set-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.handeditor-set-row{gap:10px;border:1px solid #e2ddd2;border-radius:10px;background:#fffdf8;padding:10px 14px}.handeditor-dup-prompt,.handeditor-set-row{display:flex;align-items:center;flex-wrap:wrap}.handeditor-dup-prompt{flex-basis:100%;gap:8px 12px;border-top:1px solid #eee7d9;padding-top:8px;font-size:13px}.handeditor-dup-prompt-actions{display:flex;gap:6px;margin-left:auto}.handeditor-set-open{flex:1 1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit;padding:0}.handeditor-set-name{font-weight:600;font-size:15px}.handeditor-set-actions{display:flex;gap:6px}.handeditor-editor{display:flex;flex-direction:column;gap:14px}.handeditor-meta-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.handeditor-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#6f6a5e}.handeditor-field input,.handeditor-field select,.handeditor-field textarea{border:1px solid #d8d3c6;border-radius:8px;padding:7px 10px;font:inherit;font-size:14px;background:#fff;color:#1a1612}.handeditor-field-grow{flex:1 1;min-width:200px}.handeditor-main{display:grid;grid-template-columns:minmax(420px,1.4fr) minmax(360px,1fr);grid-gap:18px;gap:18px;align-items:start}@media (max-width:1100px){.handeditor-main{grid-template-columns:1fr}}.handeditor-left{display:flex;flex-direction:column;gap:10px;min-width:0}.handeditor-board-controls{display:flex;gap:12px;flex-wrap:wrap}.handeditor-side{display:flex;flex-direction:column;gap:14px;min-width:0}.handeditor-felt-root{min-height:460px;max-width:760px}.handeditor-felt-root .br-cards-felt{min-height:460px}.handeditor-felt-root .tv2-seat-bottom,.handeditor-felt-root .tv2-seat-top{--tv2-card-w:clamp(34px,18cqi,96px);--tv2-card-h:calc(var(--tv2-card-w) / var(--tv2-aspect))}.handeditor-felt-root .tv2-seat-bottom .tv2-hand[data-variant=horizontal]{padding-top:14px}.handeditor-felt-root .tv2-seat-top .tv2-hand[data-variant=horizontal]{padding-top:0;padding-bottom:14px}.handeditor-felt-root .tv2-seat-center{--tv2-card-w:54px;--tv2-card-h:calc(var(--tv2-card-w) / var(--tv2-aspect))}.handeditor-felt-root .br-cards-box-center{flex:1 1;align-self:stretch;min-height:170px}.handeditor-felt-root .tv2-seat.handeditor-drop{min-height:calc(var(--tv2-card-h) * .9)}.handeditor-felt-root .tv2-seat-left.handeditor-drop,.handeditor-felt-root .tv2-seat-right.handeditor-drop{min-width:calc(var(--tv2-card-w) * 1.4)}.handeditor-chip{cursor:pointer;font:inherit}.handeditor-chip[data-active]{outline:2px solid var(--gold,#b98a2f);outline-offset:1px}.handeditor-pool-count{font-size:12px;color:#fff;opacity:.85;text-align:center}.handeditor-pool{border:1px solid #ddd8cb;border-radius:10px;background:#fffdf8;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.tv2-root.handeditor-pool{--tv2-card-w:44px}.handeditor-pool-head{display:flex;flex-direction:column;gap:2px}.handeditor-pool-title{font-weight:700;font-size:13px}.handeditor-pool-row{display:flex;flex-wrap:nowrap}.handeditor-poolslot{position:relative;margin-right:-14px;transition:transform .12s}.handeditor-poolslot:hover{transform:translateY(-4px);z-index:3}.handeditor-poolslot:last-child{margin-right:0}.handeditor-poolslot .tv2-card[data-state=dimmed]{opacity:.35}.handeditor-card-holder{position:absolute;top:-5px;right:8px;z-index:2;background:var(--ink,#1a1612);color:#fff;font-size:9px;font-weight:700;border-radius:6px;padding:1px 4px;pointer-events:none}.handeditor-auction,.handeditor-pool-actions{display:flex;gap:8px}.handeditor-auction{flex-direction:column}.handeditor-section-title{font-weight:700;font-size:13px}.handeditor-bid{flex:1 1;padding:4px 0;border-radius:6px;border:1px solid #d8d3c6;background:#fff;font-weight:600;font-size:12px;cursor:pointer;color:#1a1612}.handeditor-bid[data-suit=D],.handeditor-bid[data-suit=H]{color:#c0392b}.handeditor-bid[disabled]{opacity:.3;cursor:not-allowed}.handeditor-bid:not([disabled]):hover{border-color:var(--gold,#b98a2f)}.handeditor-bid-actions{display:flex;gap:6px;flex-wrap:wrap}.handeditor-commentary textarea{resize:vertical}.handeditor-cell-selected{outline:2px solid var(--gold,#b98a2f);outline-offset:-2px}.handeditor-note-mark{margin-left:3px;font-size:10px}.handeditor-note-comment{color:#6f6a5e}.handeditor-note-warning{color:#b06000}.handeditor-note-alert{color:#a33a2f}.handeditor-note-editor{border:1px solid #ddd8cb;border-radius:10px;background:#fffdf8;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.handeditor-note-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.handeditor-note-kinds{display:flex;gap:6px;flex-wrap:wrap}.handeditor-kind{border:1px solid #d8d3c6;border-radius:999px;background:#fff;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer}.handeditor-kind-active{border-color:var(--gold,#b98a2f);box-shadow:0 0 0 1px var(--gold,#b98a2f) inset}.handeditor-note-editor textarea{border:1px solid #d8d3c6;border-radius:8px;padding:7px 10px;font:inherit;font-size:14px;background:#fff;color:#1a1612;resize:vertical}.handeditor-note-editor .bb-btn{align-self:flex-start}.handeditor-header-controls{display:flex;align-items:center;gap:10px}.handeditor-meta-edit .handeditor-meta-row{margin-bottom:4px}.handeditor-guard{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff8e6;border:1px solid #e5cf8f;border-radius:8px;padding:8px 12px;font-size:13px}.handeditor-guard-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.handeditor-main{grid-template-columns:minmax(400px,1.3fr) minmax(340px,1fr)}@media (max-width:1100px){.handeditor-main{grid-template-columns:1fr}.handeditor-side{grid-column:1/-1}}.handeditor-boardbar{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.handeditor-boardbar-chips{display:flex;flex-wrap:wrap;gap:4px;flex:1 1;min-width:0}.handeditor-boardchip{min-width:30px;height:30px;padding:0 6px;border-radius:7px;border:1px solid #d8d3c6;background:#fff;cursor:pointer;font-weight:600;font-size:13px;color:#1a1612}.handeditor-boardchip-active{border-color:var(--ink,#1a1612);background:var(--ink,#1a1612);color:#fff}.handeditor-boardchip-incomplete:not(.handeditor-boardchip-active){border-style:dashed;color:#a09a8c}.handeditor-boardchip-lock{margin-left:3px;font-size:10px}.handeditor-locked-chip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 10px;margin-bottom:8px;border-radius:7px;border:1px solid #d8d3c6;background:#f6f3ea;color:#6f6a5e;font-size:13px}.handeditor-boardbar-add{border-style:dashed;color:#6f6a5e;font-size:15px;font-weight:400}.handeditor-boardbar-tools{display:flex;gap:4px;flex:none}.handeditor-boardbar-tools .bb-btn-sm{padding:6px 8px;min-width:30px}.handeditor-imported-chip{align-items:center;font-size:12px;color:#6f6a5e;background:#f3ede0;border:1px solid #ddd8cb;border-radius:8px;padding:6px 10px;white-space:nowrap}.handeditor-tabs{display:flex;gap:4px;border-bottom:1px solid #e2ddd2}.handeditor-tab{background:none;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:#8a8578;padding:6px 12px;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.handeditor-tab-active{color:var(--ink,#1a1612);border-bottom-color:var(--gold,#b98a2f)}.handeditor-bidbox{border:1px solid #ddd8cb;border-radius:10px;background:#fffdf8;padding:10px 12px}.handeditor-bidbox .bbo-auction-wrap{display:none}.handeditor-bidbox .tv2-bidgrid{position:static}.handeditor-bidbox-inner{display:flex;justify-content:space-between;align-items:stretch;gap:12px}.handeditor-bidbox-actions{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:6px;flex:none}.handeditor-bidbox-actions-row{display:flex;gap:6px}.handeditor-bidbox-done{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;padding:10px 12px;min-height:110px}.handeditor-auction .br-auction{flex:none}.handeditor-auction .br-auction-cell:empty:before{content:"\00a0"}.handeditor-play{display:flex;flex-direction:column;gap:8px}.handeditor-tricks{display:flex;flex-direction:column;gap:3px}.handeditor-trick{display:flex;gap:4px;align-items:center}.handeditor-trick-num{width:22px;text-align:right;font-size:11px;color:#8a8578;flex:none}.handeditor-trick-card{display:inline-flex;align-items:center;gap:4px;border:1px solid #ddd8cb;border-radius:6px;background:#fff;padding:3px 8px;cursor:pointer;font:inherit;font-size:13px;font-weight:600}.handeditor-trick-card [data-suit=D],.handeditor-trick-card [data-suit=H]{color:#c0392b}.handeditor-trick-card:hover{border-color:var(--gold,#b98a2f)}.handeditor-trick-win{box-shadow:0 0 0 1px var(--gold,#b98a2f) inset}.handeditor-trick-seat{font-size:10px;color:#8a8578;font-weight:700}.handeditor-gen{display:flex;flex-direction:column;gap:8px}.handeditor-gen .handeditor-tabs{margin-bottom:2px}.handeditor-gen-sublabels{font-size:10px;color:#a09a8c}.handeditor-gen-sublabels .handeditor-gen-cell span{flex:1 1;text-align:center}.handeditor-field-inline{flex-direction:row;align-items:center;gap:10px}.handeditor-field-inline>span{flex:none;width:130px}.handeditor-field-inline>select{flex:1 1;min-width:0}.handeditor-gen-hint{font-size:12px;margin:0}.handeditor-gen-check{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.handeditor-gen-scroll{overflow-x:auto}.handeditor-gen-grid{display:inline-flex;flex-direction:column;gap:3px;min-width:100%}.handeditor-gen-row{display:flex;align-items:center;gap:4px}.handeditor-gen-headrow{font-size:11px;color:#8a8578;font-weight:600}.handeditor-gen-seat{width:18px;flex:none;text-align:center;font-weight:700;font-size:12px}.handeditor-gen-cell{display:flex;gap:2px;flex:none;width:54px}.handeditor-gen-cell-label{width:54px;flex:none;text-align:center}.handeditor-gen-cell-label[data-suit=D],.handeditor-gen-cell-label[data-suit=H]{color:#c0392b}.handeditor-gen-num{width:26px;height:24px;flex:none;text-align:center;border:1px solid #ddd8cb;border-radius:5px;background:#fff;font:inherit;font-size:12px;padding:0 2px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.handeditor-gen-num::-webkit-inner-spin-button,.handeditor-gen-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.handeditor-gen-num:focus{outline:none;border-color:var(--gold,#b98a2f)}.handeditor-gen-bal,.handeditor-gen-bal-label{width:26px;flex:none;display:flex;align-items:center;justify-content:center}.handeditor-print-doc{background:#fff;color:#111;min-height:100vh}.handeditor-print-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-2,#d8d3c6);background:var(--paper,#fff);position:-webkit-sticky;position:sticky;top:0;z-index:5}.handeditor-print-toolbar-title{font-weight:700;font-size:16px;margin-right:auto}.handeditor-print-toolbar-check,.handeditor-print-toolbar-field{display:flex;align-items:center;gap:6px;font-size:13px}.handeditor-print-message{padding:24px 16px;color:var(--muted,#666)}.handeditor-print-heading strong{font-weight:700}.handeditor-print-dd{font-size:12px;margin-top:6px;line-height:1.4}.handeditor-print-dd-label{font-weight:600}.handeditor-print-dd-loading{color:#999}.handeditor-print-leads{margin-top:3px;line-height:1.35}.handeditor-print-lead-row{font-size:11px;white-space:nowrap;overflow-x:auto}.handeditor-print-doc[data-layout=boards] .handeditor-print-lead-row{font-size:12px}.handeditor-print-traveler{margin-top:8px;border-collapse:collapse;font-size:11px;line-height:1.35;width:100%;break-inside:avoid;page-break-inside:avoid}.handeditor-print-traveler td,.handeditor-print-traveler th{border:1px solid #ddd;padding:1px 5px;text-align:left;white-space:nowrap}.handeditor-print-traveler th{font-weight:600;background:#f4f4f4}.handeditor-print-traveler-pct{text-align:right}.handeditor-print-traveler-contract,.handeditor-print-traveler-lead{white-space:nowrap}.handeditor-print-hand{font-size:11px;line-height:1.35}.handeditor-print-suit{display:flex;gap:4px;white-space:nowrap}.handeditor-print-sym{width:12px;flex-shrink:0}.handeditor-print-ranks{letter-spacing:.02em}.handeditor-print-records{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;padding:12px}.handeditor-print-cell{break-inside:avoid;page-break-inside:avoid;border:1px solid #ccc;border-radius:6px;padding:8px;max-width:90mm}.handeditor-print-cell-head{font-size:12px;margin-bottom:4px}.handeditor-print-mini{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-gap:4px 10px;gap:4px 10px;align-items:start}.handeditor-print-mini-n{grid-column:1/3;grid-row:1;justify-self:center}.handeditor-print-mini-w{grid-column:1;grid-row:2;justify-self:start}.handeditor-print-mini-e{grid-column:2;grid-row:2;justify-self:end}.handeditor-print-mini-s{grid-column:1/3;grid-row:3;justify-self:center}.handeditor-print-mini-seat{font-weight:700;font-size:11px}.handeditor-print-mini-seat[data-vul]{color:#c0392b}.handeditor-print-dealer{margin-left:3px;font-size:9px}.handeditor-print-boards{padding:12px}.handeditor-print-board{break-inside:avoid;page-break-inside:avoid;min-height:118mm;border-bottom:1px dashed #bbb;padding:8px 0 16px}.handeditor-print-board-head{font-size:14px;margin-bottom:8px}.handeditor-print-board-body{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.handeditor-print-diagram{flex:0 0 auto}.handeditor-print-board-side{flex:1 1 240px;min-width:220px}.handeditor-print-notes{margin:8px 0;padding-left:20px;font-size:12px;line-height:1.5}.handeditor-print-note-call{font-weight:600}.handeditor-print-note-mark{font-size:9px;margin-left:2px;font-weight:700}.handeditor-print-commentary{margin-top:8px;font-size:12px;line-height:1.5;max-width:640px}.handeditor-print-doc .diagram{background:#fff;padding:6px}.handeditor-print-doc .diagram-pts-center{color:#4a4a4a}.handeditor-print-curtain{display:block;padding:0}.handeditor-print-curtain-card{break-inside:avoid;page-break-inside:avoid;break-after:page;page-break-after:always;box-sizing:border-box;width:100%;height:100vh;margin:0 auto;display:grid;grid-template-columns:85mm 1fr 85mm;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;padding:3mm}.handeditor-print-curtain-card:last-child{break-after:auto;page-break-after:auto}.handeditor-print-curtain-edge{overflow:visible}.handeditor-print-curtain-n{grid-column:2;grid-row:1;transform:rotate(180deg)}.handeditor-print-curtain-s{grid-column:2;grid-row:3}.handeditor-print-curtain-w{grid-column:1;grid-row:2;transform:rotate(90deg)}.handeditor-print-curtain-e{grid-column:3;grid-row:2;transform:rotate(-90deg)}.handeditor-print-curtain-center{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.handeditor-print-curtain-arrow{font-size:56px;line-height:1;color:#333}.handeditor-print-curtain-num{font-size:72px;font-weight:800;line-height:1}.handeditor-print-curtain-meta{font-size:15px;color:#333}.handeditor-print-curtain-hand{display:flex;flex-direction:column;align-items:center;gap:24px}.handeditor-print-curtain-seat{font-size:36px;font-weight:800;line-height:1}.handeditor-print-curtain-seat[data-vul]{color:#b0000d;text-decoration:underline;text-underline-offset:4px}.handeditor-print-curtain-card .handeditor-print-hand{gap:7px;align-items:flex-start}.handeditor-print-curtain-card .handeditor-print-suit{gap:.35em;align-items:baseline}.handeditor-print-curtain-card .handeditor-print-sym{width:1.4em;text-align:left;font-size:56px;line-height:1.15}.handeditor-print-curtain-card .handeditor-print-ranks{font-size:56px;line-height:1.15;letter-spacing:.07em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}@page{margin:12mm}@media print{.handeditor-print-toolbar{display:none!important}.handeditor-print-doc{background:#fff;print-color-adjust:exact;-webkit-print-color-adjust:exact}.handeditor-print-boards,.handeditor-print-curtain,.handeditor-print-records{padding:0}.handeditor-print-board,.handeditor-print-cell,.handeditor-print-curtain-card{break-inside:avoid;page-break-inside:avoid}.handeditor-print-board:last-child{border-bottom:none}}.present-root{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:#17352a;color:#f4efe3}.present-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;background:rgba(0,0,0,.32);border-bottom:1px solid hsla(0,0%,100%,.12);flex-shrink:0}.present-title{font-size:16px;font-weight:600}.present-count{opacity:.7;font-weight:400}.present-bar-actions{display:flex;gap:8px;align-items:center}.present-stage{flex:1 1;min-height:0;display:flex;align-items:center;justify-content:center;gap:28px;padding:24px}.present-felt{flex:0 1 auto}.present-side{display:flex;flex-direction:column;gap:14px;align-items:center}.present-dd-toggle{align-self:stretch}.present-dd-on{background:var(--bb-gold,#c9a227);color:#1a1a1a}.present-message{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#17352a;color:#f4efe3;margin:0}.handeditor-play-choice{position:absolute;top:calc(100% + 4px);right:0;z-index:30;width:260px;background:var(--paper,#fff);border:1px solid var(--line-2,#d8d3c6);border-radius:8px;padding:12px;box-shadow:0 4px 14px rgba(0,0,0,.15);text-align:left}.handeditor-play-choice p{margin:0 0 10px;font-size:13px;line-height:1.4}.handeditor-play-choice-actions{display:flex;flex-direction:column;gap:6px}.tvd-panel{background:var(--panel,#fff);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:18px}.tvd-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tvd-heading{margin:0;font-size:17px}.tvd-filters{display:flex;align-items:center;gap:8px}.tvd-filters select{padding:5px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel,#fff);color:var(--ink);font-size:13px}.tvd-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.tvd-tile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg,#f6f3ee)}.tvd-tile-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tvd-tile-value{font-size:21px;font-weight:650;color:var(--ink)}.tvd-tile-sub{font-size:11px;color:var(--muted)}.tvd-chart-wrap{position:relative;margin-bottom:14px}.tvd-chart-svg{width:100%;height:auto;display:block}.tvd-grid{stroke:var(--border);stroke-width:1}.tvd-grid-mid{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4;opacity:.6}.tvd-axis{fill:var(--muted);font-size:11px}.tvd-area{fill:var(--accent);opacity:.07}.tvd-line{stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.tvd-line-faint{stroke-width:1.5;opacity:.3}.tvd-trend{stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.tvd-dot{fill:var(--accent)}.tvd-dot-hover{fill:#fff;stroke:var(--accent);stroke-width:2.5}.tvd-tooltip{position:absolute;transform:translate(-50%,-100%) translateY(-12px);background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(20,18,14,.14);padding:10px 12px;min-width:200px;max-width:260px;pointer-events:none;z-index:5;font-size:12px}.tvd-tooltip-title{font-weight:650;margin-bottom:1px}.tvd-tooltip-sub{color:var(--muted);margin-bottom:4px}.tvd-tooltip-partner{margin-bottom:2px}.tvd-tooltip-score{font-size:16px;font-weight:650;margin-bottom:6px}.tvd-tooltip-rank{font-size:12px;font-weight:400;color:var(--muted)}.tvd-tooltip-stats{display:grid;grid-template-columns:1fr auto;grid-gap:1px 12px;gap:1px 12px;margin:0}.tvd-tooltip-stats dt{color:var(--muted)}.tvd-tooltip-stats dd{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tvd-tooltip-hint{margin-top:6px;color:var(--muted);font-size:11px}.tvd-donuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:10px;gap:10px}.tvd-donut-card{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--panel,#fff)}.tvd-donut-title{margin:0 0 8px;font-size:13px}.tvd-donut-empty{color:var(--muted);font-size:12px;margin:0}.tvd-donut-body{display:flex;align-items:center;gap:12px}.tvd-donut-plot{position:relative;flex:0 0 110px;width:110px}.tvd-donut-plot svg{width:100%;height:auto;display:block}.tvd-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:22px}.tvd-donut-center-value{font-size:15px;font-weight:650}.tvd-donut-center-label{font-size:9.5px;color:var(--muted);line-height:1.2}.tvd-donut-legend{list-style:none;margin:0;padding:0;flex:1 1;display:flex;flex-direction:column;gap:3px;font-size:12px}.tvd-donut-legend li{display:flex;align-items:center;gap:6px;border-radius:6px;padding:1px 4px;line-height:1.25}.tvd-donut-legend li.tvd-legend-hover{background:var(--bg,#f6f3ee)}.tvd-swatch{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.tvd-legend-label{flex:1 1;min-width:0;font-size:11.5px}.tvd-legend-value{flex:0 0 auto;margin-left:auto;white-space:nowrap;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tvd-caveat,.tvd-legend-pct{color:var(--muted)}.tvd-caveat{margin:10px 0 0;font-size:11.5px}.tvd-partners{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.tvd-partners-heading{margin:0 0 8px;font-size:13px}.tvd-partner-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.tvd-partner{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tvd-partner-name{background:none;border:none;padding:2px 0;cursor:pointer;font-size:13px;font-weight:600;color:var(--accent-2);text-decoration:underline;text-underline-offset:2px}.tvd-partner-name.tvd-partner-active{color:var(--accent)}.tvd-partner-stats{font-size:12px;color:var(--muted)}.tvd-partner-card-btn{margin-left:auto;padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel,#fff);color:var(--ink);font-size:12px;cursor:pointer}.tvd-partner-card-btn:hover{border-color:var(--accent-2);color:var(--accent-2)}.tvd-table-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tvd-search{padding:5px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel,#fff);color:var(--ink);font-size:13px;min-width:200px}.tvd-pager{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:8px 0 4px}.tvd-pager-btn{padding:2px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel,#fff);color:var(--ink);font-size:14px;cursor:pointer}.tvd-pager-btn:disabled{opacity:.4;cursor:default}.tvn{--tvn-good:#1a8f7a;--tvn-poor:#a8232b;--tvn-you:#9a7420;--tvn-you-wash:rgba(176,137,45,.12);--tvn-good-wash:rgba(26,143,122,.12)}.tvn-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.tvn-classic-link{font-size:13px;color:var(--muted);text-decoration:underline}.tvn-kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}.tvn-kpi{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;min-width:0}.tvn-kpi-value{font-size:20px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tvn-kpi-label{text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.tvn-kpi-label,.tvn-kpi-sub{font-size:11px;color:var(--muted)}.tvn-hero{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--tvn-good);border-radius:10px;padding:12px 16px;margin-bottom:14px}.tvn-hero-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.tvn-hero-name{font-size:16px}.tvn-hero-sub{color:var(--muted);font-size:13px;margin-top:2px}.tvn-hero-actions{margin-top:10px;display:flex;gap:8px}.tvn-primary{background:var(--accent-2,#1a8f7a);color:#fff;border-color:var(--accent-2,#1a8f7a)}.tvn-primary:hover{opacity:.9}.tvn-list{border:1px solid var(--border);border-radius:12px;background:var(--panel);overflow:hidden;margin-bottom:14px}.tvn-month-head{padding:6px 14px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f5f0eb;border-bottom:1px solid var(--border)}.tvn-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:none;border-bottom:1px solid var(--border);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.tvn-row:last-child{border-bottom:none}button.tvn-row:hover{background:#f7f3ee}div.tvn-row{cursor:default}.tvn-row-child{padding-left:30px;background:#fbf8f4}.tvn-row-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.tvn-row-main strong{font-size:15px}.tvn-row-main small{color:var(--muted);font-size:13.5px}.tvn-row-side{display:flex;align-items:center;gap:8px;flex-shrink:0}.tvn-chip{display:inline-flex;align-items:center;font-size:12.5px;border:1px solid var(--border);border-radius:20px;padding:1px 8px;color:var(--muted);white-space:nowrap}.tvn-pct{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:15px}.tvn-pct.good{color:var(--tvn-good)}.tvn-pct.poor{color:var(--tvn-poor)}.tvn-bar{position:relative;display:block;height:5px;border-radius:3px;background:#eee7dd;overflow:hidden;margin-top:4px}.tvn-bar i{position:absolute;top:0;bottom:0;left:0;background:var(--tvn-good);border-radius:3px}.tvn-bar i.lo{background:var(--tvn-poor)}.tvn-fold{display:block;width:100%;text-align:left;padding:10px 14px;border:1px dashed var(--border);border-radius:10px;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;margin-bottom:14px}.tvn-fold:hover{background:#f7f3ee}.tvn-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.tvn-star{background:none;border:none;cursor:pointer;font-size:16px;color:var(--muted);padding:2px 6px}.tvn-star.is-on{color:#f5c518}.tvn-event-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}.tvn-event-id h1{margin:0 0 2px}.tvn-event-meta{color:var(--muted);font-size:14px;margin:0}.tvn-event-actions{display:flex;align-items:center;gap:8px}.tvn-menu-wrap{position:relative}.tvn-menu{position:absolute;right:0;top:calc(100% + 4px);min-width:220px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);z-index:30;padding:6px;display:flex;flex-direction:column}.tvn-menu-item{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:none;border-radius:6px;font:inherit;font-size:13px;color:inherit;text-decoration:none;cursor:pointer}.tvn-menu-item:hover{background:#f7f3ee}.tvn-menu-danger{color:var(--tvn-poor);border-top:1px solid var(--border);border-radius:0 0 6px 6px;margin-top:4px}.tvn-switcher{display:flex;gap:16px;margin-bottom:10px}.tvn-switch-group,.tvn-switcher{flex-wrap:wrap;align-items:center}.tvn-switch-group{display:inline-flex;gap:4px}.tvn-pill{border:1px solid var(--border);background:var(--panel);border-radius:16px;padding:3px 12px;font:inherit;font-size:12.5px;cursor:pointer}.tvn-pill.is-on{background:var(--accent-2,#1a8f7a);border-color:var(--accent-2,#1a8f7a);color:#fff}.tvn-pill:disabled{opacity:.4;cursor:default}.tvn-event-tabs{margin-bottom:14px}.tvn-rank{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);width:26px;flex-shrink:0;text-align:right}.tvn-standing.is-mine{box-shadow:inset 3px 0 0 var(--tvn-you)}.tvn-standing.is-mine,.tvn-standing.is-mine:hover{background:var(--tvn-you-wash)}.tvn-you-chip{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tvn-you);border:1px solid var(--tvn-you);border-radius:12px;padding:0 6px;vertical-align:2px}.tvn-standing .tvn-bar{max-width:420px}.tvn-board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));grid-gap:5px;gap:5px;max-width:560px;margin-bottom:4px}.tvn-bcell{position:relative;aspect-ratio:1;border:1px solid var(--border);border-radius:7px;background:var(--panel);font:inherit;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);cursor:pointer;padding-bottom:6px}.tvn-bcell:after{content:"";position:absolute;left:6px;right:6px;bottom:4px;height:3px;border-radius:2px;background:var(--border)}.tvn-bcell.hi:after{background:var(--tvn-good)}.tvn-bcell.lo:after{background:var(--tvn-poor)}.tvn-bcell.mid:after{background:#c9bfae}.tvn-bcell.cur{border-color:var(--accent-2,#1a8f7a);background:var(--tvn-good-wash);color:var(--ink);font-weight:700}.tvn-heat-legend{font-size:11.5px;color:var(--muted);margin:0 0 12px}.tvn-board-layout{margin-top:8px}.tvn-traveller-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.tvn-freq{border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.tvn-freq-row{display:grid;grid-template-columns:minmax(110px,auto) 1fr 44px minmax(90px,auto) 56px 56px;grid-gap:10px;gap:10px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--border);font-size:14px}.tvn-freq-row:last-child{border-bottom:none}.tvn-freq-row.is-mine{background:var(--tvn-you-wash);box-shadow:inset 3px 0 0 var(--tvn-you)}.tvn-freq-bar{position:relative;height:12px;border-radius:4px;background:var(--tvn-good-wash);overflow:hidden}.tvn-freq-bar i{position:absolute;top:0;bottom:0;left:0;background:var(--tvn-good);opacity:.75;border-radius:4px}.tvn-freq-row.is-mine .tvn-freq-bar i{background:var(--tvn-you);opacity:1}.tvn-freq-count,.tvn-freq-pct,.tvn-freq-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.tvn-freq-count{color:var(--muted)}.tvn-journey-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}.tvn-journey-id h2{margin:0 0 2px;font-size:22px}.tvn-standings-link{background:none;border:none;padding:0;font:inherit;font-size:13px;cursor:pointer}.tvn-journey-score{text-align:right}.tvn-pct-big{font-size:26px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:block}.tvn-pct-big.good{color:var(--tvn-good)}.tvn-pct-big.poor{color:var(--tvn-poor)}.tvn-journey-rank{color:var(--muted);font-size:13.5px}.tvn-role-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tvn-role-chip{padding:4px 10px;font-size:13px;background:var(--panel)}.tvn-journey-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 10px}.tvn-board-card{align-items:flex-start}.tvn-bd{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);min-width:48px;flex-shrink:0;padding-top:2px;font-size:14px}.tvn-board-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tvn-board-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;font-size:14.5px}.tvn-contract-cell{display:inline-flex;align-items:center;gap:2px}.tvn-note-btn{padding:0 4px;line-height:1}.tvn-chart{border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:8px 10px 4px;max-width:640px}.tvn-chart-grid{stroke:var(--border);stroke-width:1}.tvn-chart-tick{font-size:10px;fill:var(--muted)}.tvn-chart-band{fill:rgba(26,143,122,.14);stroke:none}.tvn-chart-median{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 4}.tvn-chart-mine{stroke:var(--tvn-you);stroke-width:2.5;stroke-linejoin:round}.tvn-chart-dot,.tvn-chart-label{fill:var(--tvn-you)}.tvn-chart-label{font-size:12px;font-weight:700}.tvn-chart-legend{display:flex;gap:16px;padding:4px 2px 6px;font-size:11px;color:var(--muted);flex-wrap:wrap}.tvn-chart-legend i{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}.tvn-leg-mine{background:var(--tvn-you)}.tvn-leg-band{background:rgba(26,143,122,.3)}.tvn-leg-median{background:var(--muted)}.tvn-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--accent-2,#1a8f7a);background:rgba(26,143,122,.08);border-radius:10px;padding:8px 14px;margin-bottom:12px;font-size:13.5px}.tvn-banner a{font-weight:600}@media (max-width:720px){.tvn-kpis{grid-template-columns:repeat(2,1fr)}.tvn-kpi-value{font-size:17px}.tvn-row{padding:10px 12px}.tvn-standing .tvn-bar{max-width:none}.tvn-board-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));max-width:none}.tvn-journey-score{text-align:left}.tvn-freq-row{grid-template-columns:minmax(80px,auto) 1fr 34px auto auto;gap:6px;font-size:12px}.tvn-freq-ew{display:none}.tvn-event-actions{width:100%;justify-content:flex-end}}.tvn-board-sub{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.tvn-role-tag{font-weight:700}.tvn-role-tag.is-declared{color:#0e6152;border-color:var(--tvn-good);background:var(--tvn-good-wash)}.tvn-role-tag.is-defended{color:#1d4f9e;border-color:#1d4f9e;background:rgba(29,79,158,.08)}.tvn-pair-switch{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}.tvn-pair-switch label{font-size:13.5px;color:var(--muted)}.tvn-pair-switch select{font:inherit;font-size:13.5px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);max-width:min(70vw,380px)}.admin-pill-root{position:fixed;z-index:1500;width:40px;height:40px;transition:opacity .15s ease,transform .2s ease}.admin-pill-root[data-tucked=left]{transform:translateX(-30px);opacity:.45}.admin-pill-root[data-tucked=right]{transform:translateX(30px);opacity:.45}.admin-pill-root[data-tucked]:hover{opacity:.8}.admin-pill-btn{width:40px;height:40px;border-radius:999px;border:1px solid hsla(0,0%,100%,.18);background:rgba(17,17,20,.85);color:#f2c14e;position:relative;display:flex;align-items:center;justify-content:center;cursor:-webkit-grab;cursor:grab;touch-action:none;box-shadow:0 2px 10px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.admin-pill-btn[data-dragging]{cursor:-webkit-grabbing;cursor:grabbing}.admin-pill-btn[data-open]{border-color:#f2c14e}.admin-pill-alert-dot{position:absolute;top:-1px;right:-1px;width:11px;height:11px;border-radius:999px;background:#e0524d;border:2px solid rgba(17,17,20,.9);pointer-events:none}.admin-pill-menu{position:absolute;min-width:250px;max-width:min(80vw,320px);max-height:min(70vh,480px);overflow-y:auto;background:rgba(20,20,24,.96);color:#f4f2ee;border:1px solid hsla(0,0%,100%,.14);border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px;font-size:.85rem}.admin-pill-menu[data-h=left]{right:46px}.admin-pill-menu[data-h=right]{left:46px}.admin-pill-menu[data-v=up]{bottom:0}.admin-pill-menu[data-v=down]{top:0}.admin-pill-menu-head{display:flex;align-items:center;justify-content:space-between;padding:4px 10px 6px;border-bottom:1px solid hsla(0,0%,100%,.1);margin-bottom:4px}.admin-pill-menu-title{font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#f2c14e}.admin-pill-head-btn{background:none;border:none;color:#b9b5ad;cursor:pointer;font-size:.95rem;padding:2px 4px;border-radius:6px}.admin-pill-head-btn:hover{color:#fff;background:hsla(0,0%,100%,.08)}.admin-pill-section{padding:2px 0}.admin-pill-section+.admin-pill-section{border-top:1px solid hsla(0,0%,100%,.08)}.admin-pill-section-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:#8f8b83;padding:6px 10px 2px}.admin-pill-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:none;color:inherit;font:inherit;padding:7px 10px;border-radius:8px;cursor:pointer}.admin-pill-item:hover:not(:disabled){background:hsla(0,0%,100%,.08)}.admin-pill-item:disabled{opacity:.45;cursor:default}.admin-pill-subitem{padding-left:22px}.admin-pill-caret{color:#8f8b83;font-size:.75rem}.admin-pill-toggle input{position:absolute;opacity:0;pointer-events:none}.admin-pill-switch{flex:none;width:30px;height:17px;border-radius:999px;background:hsla(0,0%,100%,.18);position:relative;transition:background .15s ease}.admin-pill-switch:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:left .15s ease}.admin-pill-toggle input:checked+.admin-pill-switch{background:#f2c14e}.admin-pill-toggle input:checked+.admin-pill-switch:after{left:15px}.admin-pill-select select{background:hsla(0,0%,100%,.08);color:inherit;border:1px solid hsla(0,0%,100%,.16);border-radius:6px;font-size:.8rem;padding:2px 6px;max-width:150px}.admin-pill-empty{color:#8f8b83;padding:8px 10px;margin:0}.admin-pill-footer .admin-pill-item{color:#b9b5ad}.admin-pill-node .btn-ghost,.admin-pill-node>button,.admin-pill-node>span{display:block;width:100%;text-align:left;background:none;border:none;color:inherit;font:inherit;padding:7px 10px;border-radius:8px;cursor:pointer}.admin-pill-node .btn-ghost:hover:not(:disabled),.admin-pill-node>button:hover:not(:disabled){background:hsla(0,0%,100%,.08)}.admin-pill-node>button:disabled{opacity:.45;cursor:default}.admin-pill-engine-notices{padding:6px 10px 8px}.admin-pill-engine-title{color:#e8a09d;font-weight:600;font-size:.78rem;padding-bottom:4px}.admin-pill-engine-notice{display:flex;flex-direction:column;gap:1px;padding:3px 0}.admin-pill-engine-notice+.admin-pill-engine-notice{border-top:1px dashed hsla(0,0%,100%,.1)}.admin-pill-engine-bid{font-weight:600;font-size:.8rem}.admin-pill-engine-warning{color:#b9b5ad;font-size:.72rem;font-family:var(--font-mono,monospace);overflow-wrap:anywhere}.conn-pill{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:400;background:rgba(176,58,42,.92);color:#fff;font-size:12.5px;font-weight:600;padding:5px 14px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.28);pointer-events:none;animation:conn-pill-pulse 1.6s ease-in-out infinite}@keyframes conn-pill-pulse{0%,to{opacity:1}50%{opacity:.65}}