.app-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-mark{color:var(--color-gold);font-size:1.5rem;line-height:1;flex-shrink:0}.app-title{margin:0;font-size:1.5rem;color:var(--color-text)}.App{min-height:100vh;max-width:100%;overflow-x:clip;background:radial-gradient(ellipse at top,#1a2230 0%,transparent 55%),var(--color-bg)}.table,.cards_container{display:flex;justify-content:space-around;text-align:center}.cards_container{flex-direction:column}.card{display:inline-flex;gap:var(--space-2);align-items:center;justify-content:center;min-width:3.5rem;padding:var(--space-2) var(--space-3);margin:var(--space-2);border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-text-inverse);font-weight:600}.card.heart,.card.diamond{color:var(--color-danger)}.card.card-back{background:var(--color-surface-raised);color:var(--color-gold);border:1px solid var(--color-gold)}.deal-container{margin:0 auto;padding:var(--space-4);text-align:center}.table-play{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.table-banner{min-height:1.5rem;margin:0;color:var(--color-gold-soft);text-align:center}.table{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin:0 auto;width:100%;max-width:56rem;padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);background:radial-gradient(ellipse at center,var(--color-felt) 0%,var(--color-felt-deep) 70%);border:1px solid color-mix(in srgb,var(--color-gold) 35%,transparent);text-align:center}.felt-rules{margin:0;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--color-gold) 80%,white);text-align:center;max-width:100%;overflow-wrap:anywhere}.table-hands{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);width:100%;min-height:11rem}.table-hands-empty{color:color-mix(in srgb,var(--color-gold) 55%,white);font-size:.9rem;margin:0}.table-meta{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding-right:var(--space-5)}.bankroll{padding:var(--space-4) 0;color:var(--color-gold-soft);font-weight:600}.player-hands{display:flex;flex-wrap:wrap;gap:var(--space-5);justify-content:center;width:100%}.hand-active{outline:1px solid var(--color-gold);border-radius:var(--radius-md);padding:var(--space-3)}.hand-bet{color:var(--color-gold-soft);font-size:.9rem}.bet-circle{min-width:4.5rem;min-height:4.5rem;display:grid;place-items:center;border-radius:999px;border:2px solid var(--color-gold);background:color-mix(in srgb,#8b1e1e 80%,black);color:var(--color-text);font-weight:700}.controls-slot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2);min-height:3.5rem;padding:var(--space-2) var(--space-4)}.chip-row,.action-row,.table-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.table-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);gap:var(--space-4);min-height:3.75rem}.auto-deal{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text)}.hand h3{margin:0 0 var(--space-3);color:var(--color-text)}.score{padding:var(--space-4) var(--space-5);color:var(--color-text-muted)}.score ul{margin:var(--space-2) 0 0;padding-left:1.25rem}.result{padding:0;margin:0;color:var(--color-gold-soft)}.shell{min-height:100vh;max-width:100%;display:flex;flex-direction:column;overflow-x:clip}.shell-top{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);min-width:0}.brand{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}.brand-name{font-family:var(--font-display);font-size:1.35rem;color:var(--color-text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-name:hover{color:var(--color-gold)}.top-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.bankroll-chip{color:var(--color-gold-soft);font-weight:600;white-space:nowrap}.avatar{width:2rem;height:2rem;display:grid;place-items:center;border-radius:999px;background:var(--color-surface-raised);color:var(--color-gold);font-size:.75rem;font-weight:700;flex-shrink:0}.shell-body{display:grid;grid-template-columns:12rem minmax(0,1fr);flex:1;min-height:0;min-width:0}.left-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);border-right:1px solid var(--color-border);background:var(--color-surface);min-width:0}.nav-item{text-align:left;background:transparent;color:var(--color-text-muted);margin:0;justify-content:flex-start}.nav-item.active{color:var(--color-gold);background:var(--color-surface-raised)}.nav-item.active:hover:not(:disabled){background:var(--color-surface-raised)}.nav-tip{margin-top:auto;font-size:.8rem;color:var(--color-text-muted);line-height:1.4}.shell-main{padding:var(--space-4);overflow-x:clip;overflow-y:auto;min-width:0}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,20rem);gap:var(--space-4);align-items:start;min-width:0}.play-main{min-width:0}.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.kpi-label{color:var(--color-text-muted);font-size:.8rem}.kpi strong{font-size:1.35rem;overflow-wrap:anywhere}.kpi-up{color:var(--color-success);font-size:.8rem}.kpi-down{color:var(--color-danger);font-size:.8rem}.kpi-muted{color:var(--color-text-muted);font-size:.8rem}.book-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);position:sticky;top:var(--space-4);min-width:0;display:flex;flex-direction:column}.book-panel-hidden{min-height:8rem;justify-content:center;align-items:flex-start;gap:var(--space-3)}.book-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.book-header h2{margin:0;font-size:1.25rem}.book-advice-slot{min-height:10rem;margin:var(--space-3) 0}.book-idle{margin:0;color:var(--color-text-muted)}.book-banner{margin:var(--space-3) 0;padding:var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-success) 25%,var(--color-surface));border:1px solid var(--color-success);display:flex;flex-direction:column;gap:var(--space-2)}.book-compare{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:var(--space-3) 0}.compare-card{padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-1)}.compare-good{border-color:var(--color-success)}.compare-bad{border-color:var(--color-danger)}.session-panel{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.session-panel ul{padding-left:1.1rem;color:var(--color-text-muted)}.donut{width:5.5rem;height:5.5rem;border-radius:999px;margin:var(--space-3) auto;display:grid;place-items:center}.donut span{width:3.5rem;height:3.5rem;border-radius:999px;background:var(--color-surface);display:grid;place-items:center;font-weight:700}.book-tip{font-size:.85rem;color:var(--color-text-muted)}.page{max-width:56rem;min-width:0}.page h2{margin-top:0}.drill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--space-3)}.drill-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.drill-answer{color:var(--color-gold-soft)}.chart-scroll{overflow-x:auto;margin-bottom:var(--space-5);max-width:100%;-webkit-overflow-scrolling:touch}.strategy-table{border-collapse:collapse;font-size:.85rem;min-width:32rem}.strategy-table th,.strategy-table td{border:1px solid var(--color-border);padding:.35rem .5rem;text-align:center}.strategy-table th{background:var(--color-surface)}.session-log{font-family:ui-monospace,monospace;font-size:.85rem}@media (max-width: 900px){.shell-body{grid-template-columns:minmax(0,1fr)}.left-nav{flex-direction:row;flex-wrap:nowrap;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-right:none;border-bottom:1px solid var(--color-border);overflow-x:auto;-webkit-overflow-scrolling:touch}.nav-item{flex:0 0 auto;padding:var(--space-2) var(--space-3)}.nav-tip{display:none}.play-layout{grid-template-columns:minmax(0,1fr)}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.book-panel{position:static}.table{padding:var(--space-4) var(--space-3)}.table-hands{min-height:9rem}.shell-main{padding:var(--space-3)}}.hide-book-short{display:none}@media (max-width: 480px){.brand-name,.kpi strong{font-size:1.15rem}.felt-rules{font-size:.65rem}.hide-book-full{display:none}.hide-book-short{display:inline}}:root{--color-bg: #0d0f12;--color-surface: #161a21;--color-surface-raised: #1e2430;--color-border: #2a3140;--color-felt: #1a5c3a;--color-felt-deep: #0f3d28;--color-gold: #d4a017;--color-gold-soft: #e8c547;--color-hit: #2e7d4f;--color-stand: #c9a227;--color-double: #7b5ea7;--color-split: #3d6ea8;--color-danger: #c44b4b;--color-success: #3d9b6a;--color-text: #f2f0ea;--color-text-muted: #9aa3b2;--color-text-inverse: #0d0f12;--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Instrument Serif", Georgia, serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--btn-padding-y: .5rem;--btn-padding-x: 1rem;--btn-bg: #2a3140;--btn-bg-hover: #353d4f;--btn-primary-bg: #2e7d4f;--btn-primary-hover: #36945d;--btn-ghost-bg: transparent;--btn-ghost-border: #2a3140}*,*:before,*:after{box-sizing:border-box}html{overflow-x:clip}html,body,#root{min-height:100%;max-width:100%}body{margin:0;font-family:var(--font-sans);font-size:1rem;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;overflow-x:clip}h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:.01em}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);margin:0;padding:var(--btn-padding-y) var(--btn-padding-x);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--color-text);font-family:var(--font-sans);font-size:.95rem;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled),button:hover:not(:disabled){background:var(--btn-bg-hover)}.btn:disabled,button:disabled{opacity:.45;cursor:not-allowed}.btn-primary,button.positive{background:var(--btn-primary-bg);color:var(--color-text)}.btn-primary:hover:not(:disabled),button.positive:hover:not(:disabled){background:var(--btn-primary-hover)}.btn-secondary{background:var(--btn-bg);color:var(--color-text)}.btn-ghost{background:var(--btn-ghost-bg);border-color:var(--btn-ghost-border);color:var(--color-text)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-raised)}.btn-danger,button.negative{background:var(--color-stand);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled),button.negative:hover:not(:disabled){filter:brightness(1.08);background:var(--color-stand)}.btn-hit{background:var(--color-hit);color:var(--color-text)}.btn-stand{background:var(--color-stand);color:var(--color-text-inverse)}.btn-double,.action-double{background:var(--color-double);color:var(--color-text)}.btn-split,.action-split{background:var(--color-split);color:var(--color-text)}.btn-chip,.chip{background:#8b1e1e;border-radius:999px;min-width:3rem;color:var(--color-text)}.btn-chip:hover:not(:disabled),.chip:hover:not(:disabled){background:#a32626}.chip-clear{background:var(--color-surface-raised);border:1px solid var(--color-border)}.chip-clear:hover:not(:disabled){background:var(--btn-bg-hover)}.btn-link,.linkish{background:transparent;border:none;color:var(--color-gold);text-decoration:underline;padding:0;margin:0;font-weight:600;white-space:normal}.btn-link:hover:not(:disabled),.linkish:hover:not(:disabled){background:transparent;color:var(--color-gold-soft)}.tab,.nav-item{background:transparent;border:none}.tab:hover:not(:disabled),.nav-item:hover:not(:disabled){background:transparent}
