:root{--bg: #f5f7f4;--surface: #ffffff;--surface-2: #eef2ef;--field: #ffffff;--cell: #ffffff;--ink: #1d2520;--muted: #65736b;--line: #d8ded8;--green: #0f6b4f;--green-2: #dfeee8;--red: #a43d3a;--steel: #3f5968;--action-hit: #f04a39;--action-hit-ink: #ffffff;--action-stand: #f3dd3a;--action-stand-ink: #302700;--action-double: #3658d7;--action-double-ink: #ffffff;--action-split: #48de51;--action-split-ink: #102d12;--action-surrender: #cfd8dc;--action-surrender-ink: #1d2520;--card-red: #c62828;--card-black: #1d2520;--axis-bg: #d9e0da;--axis-ink: #3c4942;--on-ink: #ffffff;--overlay: rgba(29, 37, 32, .22);--shadow: 0 14px 34px rgba(29, 37, 32, .08);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}:root[data-theme=dark]{--bg: #101512;--surface: #17201b;--surface-2: #202b25;--field: #111713;--cell: #151d19;--ink: #eef5f0;--muted: #a2afa7;--line: #2c3932;--green: #54c69e;--green-2: #203b32;--red: #f07873;--steel: #92b7c9;--action-hit: #d45548;--action-hit-ink: #fff6f5;--action-stand: #d8bf2b;--action-stand-ink: #181200;--action-double: #5473ea;--action-double-ink: #f4f7ff;--action-split: #4fcf68;--action-split-ink: #0c2010;--action-surrender: #7f8f98;--action-surrender-ink: #0e1411;--card-red: #c62828;--card-black: #1d2520;--axis-bg: #3a453f;--axis-ink: #dce5df;--on-ink: #101512;--overlay: rgba(0, 0, 0, .48);--shadow: 0 14px 34px rgba(0, 0, 0, .22)}:root[data-theme=felt],:root[data-theme=felt-green]{--bg: radial-gradient(circle at top, rgba(88, 167, 126, .24), rgba(88, 167, 126, 0) 30%), linear-gradient(180deg, #1f654a 0%, #184f3b 52%, #143f2f 100%);--surface: linear-gradient(180deg, #1a5b43 0%, #144a37 100%);--surface-2: linear-gradient(180deg, #20674d 0%, #185540 100%);--field: #123f2f;--cell: #1b5a43;--ink: #f3e2ad;--muted: #dcc887;--line: #c7a54f;--green: #8fe0b7;--green-2: rgba(143, 224, 183, .16);--red: #ff8d82;--steel: #8fc5d0;--action-hit: #e6523f;--action-hit-ink: #fff8f6;--action-stand: #edd63a;--action-stand-ink: #2b2400;--action-double: #3358d6;--action-double-ink: #ffffff;--action-split: #42d954;--action-split-ink: #0f2a12;--action-surrender: #c8d4cf;--action-surrender-ink: #1b231e;--card-red: #c62828;--card-black: #1d2520;--axis-bg: #21684e;--axis-ink: #f3e2ad;--on-ink: #183726;--overlay: rgba(11, 21, 16, .42);--shadow: 0 16px 36px rgba(8, 20, 14, .24)}:root[data-theme=felt-red]{--bg: radial-gradient(circle at top, rgba(193, 83, 87, .24), rgba(193, 83, 87, 0) 30%), linear-gradient(180deg, #7a2428 0%, #641d20 52%, #4f1719 100%);--surface: linear-gradient(180deg, #6e2024 0%, #59181b 100%);--surface-2: linear-gradient(180deg, #7d292d 0%, #672124 100%);--field: #4f1719;--cell: #6b2326;--ink: #f3e2ad;--muted: #dcc887;--line: #c7a54f;--green: #a6e5bf;--green-2: rgba(166, 229, 191, .16);--red: #ffaba0;--steel: #8fc5d0;--action-hit: #e6523f;--action-hit-ink: #fff8f6;--action-stand: #edd63a;--action-stand-ink: #2b2400;--action-double: #3358d6;--action-double-ink: #ffffff;--action-split: #42d954;--action-split-ink: #0f2a12;--action-surrender: #c8d4cf;--action-surrender-ink: #1b231e;--card-red: #c62828;--card-black: #1d2520;--axis-bg: #842c30;--axis-ink: #f3e2ad;--on-ink: #301011;--overlay: rgba(18, 7, 8, .48);--shadow: 0 16px 36px rgba(20, 5, 6, .26)}@media(prefers-color-scheme:dark){:root[data-theme=system]{--bg: #101512;--surface: #17201b;--surface-2: #202b25;--field: #111713;--cell: #151d19;--ink: #eef5f0;--muted: #a2afa7;--line: #2c3932;--green: #54c69e;--green-2: #203b32;--red: #f07873;--steel: #92b7c9;--action-hit: #d45548;--action-hit-ink: #fff6f5;--action-stand: #d8bf2b;--action-stand-ink: #181200;--action-double: #5473ea;--action-double-ink: #f4f7ff;--action-split: #4fcf68;--action-split-ink: #0c2010;--action-surrender: #7f8f98;--action-surrender-ink: #0e1411;--card-red: #c62828;--card-black: #1d2520;--axis-bg: #3a453f;--axis-ink: #dce5df;--on-ink: #101512;--overlay: rgba(0, 0, 0, .48);--shadow: 0 14px 34px rgba(0, 0, 0, .22)}}*{box-sizing:border-box}body{background:var(--bg);margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{min-height:100vh;padding:14px}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin:0 auto 10px;max-width:1480px}.topbar-actions{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:flex-end;min-width:0}.topbar h1,.ruleset-drawer h2,.app-settings-drawer h2,.strategy-io-drawer h2,.panel-title h3,.cell-inspector h3{letter-spacing:0;margin:0}.topbar h1{font-size:24px;line-height:1.05}.ruleset-drawer h2,.app-settings-drawer h2,.strategy-io-drawer h2{font-size:22px;line-height:1}.eyebrow,.picker-title,.group-head span,.metric span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.eyebrow{margin:0 0 4px}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;gap:4px;padding:4px}.tab,.segmented button{background:transparent;border-radius:6px;color:var(--muted);min-height:28px;padding:0 11px}.tab.active,.segmented button.selected{background:var(--ink);color:var(--on-ink)}.top-controls{align-items:center;display:flex;gap:6px;min-width:0;order:2}.tabs{order:1}.ruleset-summary,.chrome-icon-button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink);display:flex;height:36px}.ruleset-summary{gap:10px;max-width:min(660px,48vw);min-width:0;padding:0 10px}.ruleset-summary:hover,.chrome-icon-button:hover{border-color:var(--green)}.ruleset-copy{font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chrome-icon-button{justify-content:center;padding:0;width:36px}.settings-icon{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:18px}.drawer-scrim{background:var(--overlay);inset:0;position:fixed;z-index:20}.ruleset-drawer,.app-settings-drawer,.strategy-io-drawer{align-content:start;background:var(--surface);border-left:1px solid var(--line);box-shadow:-18px 0 42px #1d252029;display:grid;gap:12px;grid-auto-rows:max-content;height:100%;margin-left:auto;max-width:440px;overflow-y:auto;padding:16px;width:min(440px,100%)}.drawer-head{align-items:center;display:flex;justify-content:space-between}.ruleset-panel{align-content:start;display:grid;gap:10px;grid-auto-rows:max-content}.settings-section{align-content:start;border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;grid-auto-rows:max-content;padding:11px}.section-head{align-items:center;display:flex;justify-content:space-between}.section-head span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.settings-row,.setting-switch{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(150px,auto)}.settings-row .segmented-group{min-width:150px}.setting-title,.setting-subtitle{display:block}.settings-note{color:var(--muted);font-size:11px;line-height:1.35;margin:-2px 0 0}.strategy-io-actions{display:flex;flex-wrap:wrap;gap:8px}.strategy-json-input{background:var(--field);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:260px;padding:10px;resize:vertical;width:100%}.strategy-io-message{color:var(--muted);font-size:12px;margin:0}.setting-title{color:var(--ink);font-size:13px;font-weight:900}.setting-subtitle{color:var(--muted);font-size:11px;line-height:1.35;margin-top:2px}.settings-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.field-control{font-size:10px}.field-control.wide-field{grid-column:1 / -1}.narrow-field{max-width:132px}.setting-switch{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;text-transform:none}.setting-switch input{justify-self:end}.drawer-status{padding-top:2px}.config-group{background:var(--surface);border-right:1px solid var(--line);display:grid;gap:7px;min-width:0;padding:10px}.config-group:last-child{border-right:0}.group-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.hand-title{align-items:center;display:flex;gap:8px;min-width:0}.hand-title strong{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--ink);font-size:11px;font-weight:900;line-height:1;padding:5px 8px;white-space:nowrap}.hand-title .positive{background:var(--green-2);color:var(--green)}.hand-title .negative{background:#a43d3a1f;color:var(--red)}.hand-group{align-content:start}.state-deck{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:1px;grid-template-columns:1fr;overflow:hidden}.state-deck .config-group{border-bottom:1px solid var(--line);border-right:0}.state-deck .config-group:last-child{border-bottom:0}.analyzer-phase-group{align-content:start}.reset-button{justify-self:start}.slot-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px}.card-slot{background:#fff;border:1px solid #cfd8d1;border-radius:7px;color:var(--ink);min-height:0;padding:0}.playing-card{aspect-ratio:5 / 7;box-shadow:0 7px 16px #1d252014;display:block;overflow:hidden;position:relative;text-align:left;width:62px}.filled-card{background:linear-gradient(145deg,#ffffffeb,#f5f7f4c7),#fff}.card-slot.selected{border-color:var(--green);box-shadow:0 0 0 2px #ffffffeb,0 0 0 5px #0f6b4fb8,0 14px 28px #1d252038;transform:translateY(-1px)}.red-suit{color:var(--card-red)}.black-suit{color:var(--card-black)}.card-corner{align-items:center;display:grid;justify-items:center;line-height:1;position:absolute}.card-corner strong{font-size:11px;font-weight:900}.card-corner span{font-size:12px}.top-corner{left:7px;top:6px}.bottom-corner{bottom:6px;right:7px;transform:rotate(180deg)}.card-center{align-items:center;display:grid;gap:1px;inset:24px 12px 20px;justify-items:center;line-height:1;position:absolute}.card-center strong{font-size:20px;font-weight:900}.card-center span{font-size:17px}.face-card strong{font-family:Georgia,Times New Roman,serif;font-size:25px}.card-position{background:#ffffffdb;border:1px solid rgba(101,115,107,.18);border-radius:999px;color:var(--muted);font-size:9px;font-weight:900;line-height:1;min-width:22px;padding:3px 5px;position:absolute;right:5px;text-align:center;top:5px}.empty-card{align-items:center;background:#f7faf7;border:1px dashed #bcc8bf;box-shadow:none;color:#8b9990;display:grid;justify-items:center}.empty-card-mark{align-items:center;border:1px solid #cbd5ce;border-radius:999px;display:inline-flex;font-size:20px;font-weight:700;height:28px;justify-content:center;width:28px}.rank-grid{display:grid;gap:4px;grid-template-columns:repeat(5,1fr);max-width:360px;width:100%}.rank-button{background:var(--surface-2);border:1px solid transparent;border-radius:5px;color:var(--ink);font-weight:800;min-height:28px}.rank-button:hover,.chart-cell:hover{border-color:var(--green)}.text-button{background:transparent;color:var(--green);font-size:12px;font-weight:800;min-height:26px;padding:0 4px}.icon-button{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;color:var(--ink);display:inline-flex;font-size:20px;font-weight:700;height:32px;justify-content:center;line-height:1;width:32px}label{color:var(--muted);display:grid;font-size:11px;font-weight:800;gap:4px;text-transform:uppercase}input,select{background:var(--field);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:30px;padding:0 8px;text-transform:none}.toggle-row{align-items:center;display:flex;flex-direction:row;gap:8px;min-height:30px}.toggle-row input{min-height:auto}.segmented-group{display:grid;gap:4px}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px}.segmented button{min-height:26px;padding:0 8px;white-space:nowrap}.status-dot{align-items:center;color:var(--muted);display:inline-flex;flex:0 0 auto;font-size:11px;font-weight:900;gap:6px;white-space:nowrap}.status-dot span{background:var(--muted);border-radius:999px;height:7px;width:7px}.status-dot.ready span{background:var(--green)}.status-dot.updating span,.status-dot.loading span{background:var(--steel)}.status-dot.error span{background:var(--red)}.status-chip{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:11px;font-weight:800;min-height:26px;padding:0 8px;width:fit-content}.status-chip.ready{background:var(--green-2);color:var(--green)}.status-chip.updating,.status-chip.loading{background:#eef5f8;color:var(--steel)}.notice{background:#fff8e7;border:1px solid #ead6a7;border-radius:8px;color:#705000;margin:0 auto 12px;max-width:1480px;padding:10px 12px}.notice.error{background:#fff0ef;border-color:#efc7c5;color:var(--red)}.analyzer-layout,.strategy-layout{display:grid;gap:12px;margin:0 auto;max-width:1480px}.analyzer-layout{align-items:start;grid-template-columns:minmax(250px,300px) minmax(0,1fr)}.analysis-workspace{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(300px,.82fr)}.strategy-metrics,.data-panel,.chart-panel,.cell-inspector{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.strategy-metrics{align-items:center;display:grid;gap:8px;grid-column:1 / -1;grid-template-columns:repeat(6,minmax(82px,auto)) minmax(150px,1fr) auto;padding:10px}.metric{display:grid;gap:3px;min-width:0}.metric strong{font-size:16px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric .large-value,.large-value{font-size:20px}.wide-metric{min-width:180px}.data-panel,.chart-panel,.cell-inspector{min-width:0;padding:12px}.wide-panel{grid-column:1 / -1}.panel-title{align-items:baseline;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.panel-title p{color:var(--muted);margin:0}.action-table{border-collapse:collapse;width:100%}.action-table th{color:var(--muted);font-size:11px;text-align:right;text-transform:uppercase}.action-table th:first-child,.action-table td:first-child{text-align:left}.action-table td,.action-table th{border-bottom:1px solid var(--line);padding:8px 6px;text-align:right;white-space:nowrap}.interactive-table tbody tr{cursor:pointer}.interactive-table tbody tr:hover td,.interactive-table tbody tr:focus td{background:var(--surface-2)}.interactive-table tbody tr.best-row:hover td,.interactive-table tbody tr.best-row:focus td{background:var(--green-2)}.best-row td{background:var(--green-2)}.action-mark{align-items:center;border-radius:5px;display:inline-flex;font-size:11px;font-weight:900;height:22px;justify-content:center;margin-right:7px;width:22px}.positive{color:var(--green);font-weight:900}.negative{color:var(--red);font-weight:900}.bars{display:grid;gap:8px}.bar-row{align-items:center;display:grid;gap:8px;grid-template-columns:82px minmax(70px,1fr) 54px}.bar-row span,.bar-row strong{font-size:12px}.bar-track,.mini-track{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.bar-track div,.mini-track div{background:var(--steel);height:100%}.outcome-strip{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.action-unavailable{display:grid;gap:12px}.action-unavailable p{color:var(--muted);margin:0}.resolved-metrics{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}.outcome{background:var(--surface-2);border-radius:7px;display:grid;gap:7px;padding:10px}.outcome span{font-weight:900}.strategy-metrics{grid-template-columns:minmax(150px,1.2fr) repeat(3,minmax(88px,.85fr)) minmax(150px,1fr) auto}.strategy-metrics .metric{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;min-height:58px;padding:8px 10px}.strategy-metrics .metric-primary,.strategy-metrics .metric-policy,.strategy-metrics .wide-metric{min-width:0}.strategy-toolbar{align-items:start;display:grid;gap:8px 12px;grid-template-columns:minmax(0,1fr) max-content;width:100%}.toolbar-selector,.toolbar-selector .segmented-group{min-width:0}.toolbar-selector .segmented{width:100%}.toolbar-meta{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) repeat(2,max-content)}.toolbar-note{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:flex;font-size:12px;justify-content:center;min-height:34px;padding:0 12px;text-align:center;white-space:nowrap}.toolbar-action{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--green);display:inline-flex;justify-content:center;min-height:34px;padding:0 10px}.strategy-legend{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.legend-item{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;padding:8px 10px}.legend-swatch{align-items:center;border-radius:6px;display:inline-flex;font-size:14px;font-weight:900;height:32px;justify-content:center;width:32px}.legend-copy{display:grid;gap:2px}.legend-copy strong{font-size:13px}.legend-copy span{color:var(--muted);font-size:11px}.strategy-content{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,max-content) minmax(280px,340px)}.chart-scroller{overflow-x:auto}.strategy-grid{--chart-gap: 2px;--chart-cell-size: 36px;--chart-label-size: 46px;display:grid;gap:var(--chart-gap);grid-template-columns:var(--chart-label-size) repeat(10,var(--chart-cell-size));width:max-content}.grid-head,.row-head,.chart-cell{align-items:center;aspect-ratio:1;display:flex;height:var(--chart-cell-size);justify-content:center;width:var(--chart-cell-size)}.corner-cell,.row-head{aspect-ratio:auto;width:var(--chart-label-size)}.grid-head,.row-head{background:var(--axis-bg);color:var(--axis-ink);font-size:11px;font-weight:900}.chart-cell{background:var(--cell);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-weight:900;position:relative}.chart-cell.overridden{border-color:var(--ink)}.chart-cell.overridden:after{background:var(--ink);border-radius:999px;content:"";height:7px;position:absolute;right:4px;top:4px;width:7px}.chart-cell.selected{box-shadow:0 0 0 2px var(--ink) inset}.cell-inspector{align-self:start}.cell-inspector h3{margin:0 0 10px}.inspector-action{align-items:center;border-radius:7px;display:flex;gap:8px;font-weight:900;margin-bottom:10px;padding:10px}.inspector-action .action-mark{border:1px solid rgba(0,0,0,.75)}.inspector-action-tag{background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;font-weight:700;margin-left:auto;padding:3px 8px}.inspector-meta{color:var(--muted);display:grid;font-size:12px;gap:4px;margin-bottom:12px}.action-hit{background:var(--action-hit);color:var(--action-hit-ink)}.action-stand{background:var(--action-stand);color:var(--action-stand-ink)}.action-double{background:var(--action-double);color:var(--action-double-ink)}.action-split{background:var(--action-split);color:var(--action-split-ink)}.action-surrender{background:var(--action-surrender);color:var(--action-surrender-ink)}.inline-loading,.empty-state{align-items:center;background:var(--surface);border:1px dashed var(--line);border-radius:8px;color:var(--muted);display:flex;justify-content:center;min-height:140px;padding:18px}@media(max-width:1220px){.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{align-items:flex-start;flex-direction:column;justify-content:flex-start;width:100%}.top-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;order:1;width:100%}.tabs{order:2}.ruleset-summary{max-width:none;width:100%}}@media(max-width:1180px){.analysis-workspace,.strategy-content{grid-template-columns:1fr}.strategy-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.strategy-metrics .metric-primary,.strategy-metrics .metric-policy{grid-column:span 2}.cell-inspector{order:-1}}@media(max-width:720px){.strategy-toolbar{grid-template-columns:1fr}.toolbar-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-note{grid-column:1 / -1;white-space:normal}.toolbar-action{width:100%}}@media(max-width:960px){.analyzer-layout{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{padding:10px}.topbar-actions{align-items:stretch;width:100%}.tabs{width:100%}.tabs .tab{flex:1}.state-deck{grid-template-columns:1fr}.strategy-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.strategy-metrics .metric-primary,.strategy-metrics .metric-policy{grid-column:span 2}.strategy-metrics .status-chip{grid-column:1 / -1;justify-self:center}.ruleset-summary{max-width:none;width:100%}.settings-row,.setting-switch{grid-template-columns:1fr}.settings-row .segmented-group{min-width:0}.setting-switch input{justify-self:start}.slot-row{gap:7px}.playing-card{width:58px}.rank-grid{grid-template-columns:repeat(5,minmax(42px,1fr));max-width:none}.rank-button{min-height:32px}.strategy-grid{--chart-cell-size: clamp(20px, calc((100vw - 120px)*.1) , 32px);--chart-label-size: clamp(30px, calc((100vw - 120px)*.1 + 10px) , 42px)}.chart-cell.overridden:after{right:2px;top:2px}.action-table{font-size:13px}.panel-title{align-items:flex-start;flex-direction:column}}
