@font-face{font-family:Manrope;src:url('/fonts/manrope-regular.ttf') format('truetype');font-display:swap;font-weight:200 450}@font-face{font-family:Manrope;src:url('/fonts/manrope-semibold.ttf') format('truetype');font-display:swap;font-weight:500 650}@font-face{font-family:Manrope;src:url('/fonts/manrope-bold.ttf') format('truetype');font-display:swap;font-weight:700 800}
:root{--ground:#f4f3ef;--surface:#fff;--raised:#f7f7f4;--active:#e8e8e2;--border:#e7e7e1;--control:#cbcdc5;--ink:#242923;--muted:#697064;--green:#174c3c;--felt:#205b47;--felt-line:#43745f;--gold:#e4c581;--gold-dark:#876c32;--red:#ba4843;--positive:#276346;--font:Manrope,Arial,sans-serif;--gap:20px;--radius:14px}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.55;color:var(--ink);background:var(--ground)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button,a,select,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bb963d}button{color:inherit}button svg{flex-shrink:0}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:-.8px;font-weight:650;line-height:1.25}h2{font-size:17px;letter-spacing:-.3px;font-weight:650}h3{font-size:15px;font-weight:650}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.positive{color:var(--positive)}.negative{color:var(--red)}.nowrap{white-space:nowrap}.app-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:31px 18px 20px;background:var(--ground)}.brand{display:flex;align-items:center;gap:10px;padding:0 13px 34px;text-decoration:none}.brand-mark{color:var(--green);font-size:40px;font-weight:800;line-height:.9;letter-spacing:-4px}.brand-suit{color:var(--gold-dark);font-size:26px;line-height:1;transform:rotate(-13deg);margin-left:-5px}.brand-name{display:block;font-size:15px;font-weight:750;letter-spacing:.2px}.brand-caption{font-size:11px;line-height:1.4;color:var(--muted);display:block;max-width:90px;margin-top:4px}.nav-label{padding:0 15px 12px;font-size:12px;color:var(--muted)}.nav-list{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 14px;border:0;border-radius:8px;text-align:left;text-decoration:none;background:none;color:#62685f;font-size:13px;font-weight:550}.nav-item:hover{background:#ecece6}.nav-item.active{background:var(--active);color:var(--ink)}.nav-item .icon{width:19px;height:19px}.sidebar-foot{margin-top:auto;padding-top:24px}.sidebar-note{margin:0 13px 20px;padding-top:20px;border-top:1px solid #dedfd7}.sidebar-note strong{display:block;font-size:12px;font-weight:600;margin-bottom:6px}.sidebar-note p{font-size:12px;color:var(--muted);line-height:1.7}.local-indicator{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;padding:18px 14px 0}.status-dot{width:6px;height:6px;border-radius:50%;background:#5a8660;display:inline-block}.workspace{min-width:0;padding:0 30px 28px;background:#fcfcfa;border-left:1px solid var(--border)}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:72px;border-bottom:1px solid var(--border);gap:16px}.breadcrumb{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.breadcrumb .icon{width:13px;height:13px}.breadcrumb strong{font-weight:500;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:18px;font-size:12px;color:var(--muted)}.avatar{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#ece9df;color:#6b6554;font-weight:650}.avatar .icon{width:18px;height:18px}.mobile-brand{display:none}.page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0 24px}.page-header p{color:var(--muted);font-size:13px;margin-top:8px}.header-actions{display:flex;align-items:center;gap:10px}.button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:8px 15px;border:1px solid var(--control);border-radius:7px;background:var(--surface);font-size:12px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .15s,transform .15s}.button:hover{background:#f0f1eb}.button.primary{background:var(--ink);color:white;border-color:var(--ink)}.button.primary:hover{background:#41483c}.button.green{background:var(--green);color:white;border-color:var(--green)}.button.green:hover{background:#27614c}.button.gold{background:var(--gold);color:#23372b;border-color:var(--gold)}.button.gold:hover{background:#efdaab}.button.ghost{background:transparent;border-color:transparent}.button.ghost:hover{background:#ededE7}.button:disabled{background:#efefea;color:#777d72;border-color:#e1e3da}.button .icon{width:17px;height:17px}.button.block{width:100%}.button.compact{min-height:32px;padding:5px 10px}.icon-button{display:grid;place-items:center;width:36px;height:36px;border:0;background:transparent;border-radius:7px;cursor:pointer}.icon-button:hover{background:#eee}.button.text{padding:0;min-height:32px;border:0;background:none;text-decoration:underline;text-underline-offset:3px}.select-wrap{position:relative}.select-wrap label{font-size:11px;color:var(--muted);margin-right:7px}.select{height:40px;border:1px solid var(--control);border-radius:7px;background:white;padding:0 30px 0 11px;color:var(--ink);font-size:12px;font-weight:600;max-width:100%}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.play-column{min-width:0}.game-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 1px 15px}.mode-tabs{display:flex;gap:18px;align-items:center}.mode-tab{background:none;border:0;border-bottom:2px solid transparent;padding:6px 0;font-size:12px;color:var(--muted)}.mode-tab.active{border-bottom-color:var(--green);color:var(--green);font-weight:650}.table-tools{display:flex;align-items:center;gap:5px}.table-tools .button{font-size:11px;padding:3px 7px;gap:6px;min-height:30px;color:var(--muted)}.table-tools .icon{width:15px;height:15px}.table-frame{border-radius:var(--radius);overflow:hidden;background:var(--felt);color:#fff}.table-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 22px;color:#dbe6d8;font-size:11px;border-bottom:1px solid #42725e}.table-status strong{font-weight:600;color:#fff}.table-status .dot-sep{padding:0 8px;color:#a4bda8}.trump-label{display:flex;align-items:center;gap:7px}.trump-label span.suit{font-size:19px;color:var(--gold)}.table-stage{position:relative;display:flex;flex-direction:column;align-items:center;min-height:420px;padding:18px 18px 0}.opponent{display:flex;align-items:center;gap:10px;z-index:2}.opponent-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#41725b;color:#f1f4e9;border:1px solid #669076}.opponent-avatar .icon{width:20px;height:20px}.player-label{font-size:12px;font-weight:600}.player-sub{font-size:11px;color:#c0d4c2;margin-top:1px}.player-score{margin-left:17px;text-align:right;font-size:18px;font-weight:500;line-height:1.1}.player-score small{display:block;font-size:11px;color:#c0d4c2;margin-top:3px}.opponent-cards{height:54px;display:flex;justify-content:center;margin-top:11px;padding-left:15px;max-width:100%}.card-back{position:relative;width:36px;height:50px;flex-shrink:0;border-radius:4px;background:#f4f1e5;border:2px solid #f4f1e5;color:#d5c392;display:grid;place-items:center;overflow:hidden}.card-back:before{content:'';position:absolute;inset:3px;border:1px solid #a5b3a1;border-radius:2px;background:#365d4b}.card-back:after{content:'♠';position:relative;font-size:23px;color:#d3c391;font-family:Georgia,serif}.opponent-cards .card-back{margin-left:-15px;transform:rotate(var(--rotation,0deg))}.table-center{flex:1;width:100%;min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 0 13px}.center-title{text-align:center;color:#f7f6eb;font-size:18px;font-weight:500;letter-spacing:-.4px}.center-subtitle{max-width:360px;font-size:11px;text-align:center;line-height:1.6;color:#c7dbc9;margin-top:5px}.talon-row{display:flex;justify-content:center;gap:34px;margin-top:15px}.talon-choice{background:none;border:0;color:#dde8d9;padding:0 8px;display:flex;align-items:center;flex-direction:column;gap:7px}.talon-choice:enabled:hover .talon-stack{transform:translateY(-5px)}.talon-choice:disabled{opacity:1;cursor:default}.talon-stack{display:flex;transition:transform .15s}.talon-stack .card-back{width:42px;height:59px;transform:rotate(-8deg)}.talon-stack .card-back+.card-back{margin-left:-18px;transform:rotate(9deg)}.talon-choice span{font-size:11px;color:#cfdfce}.talon-choice.talon-selected .talon-stack{outline:2px solid var(--gold);outline-offset:4px;border-radius:4px}.exchange-cards{display:flex;gap:14px;margin-top:14px}.exchange-cards .playing-card{width:69px;height:94px}.table-trick{display:flex;gap:24px;min-height:110px;align-items:center;justify-content:center}.trick-slot{min-width:72px;text-align:center}.trick-slot>small{display:block;color:#c5d8c5;font-size:11px;margin-bottom:7px}.trick-placeholder{width:72px;height:100px;border:1px solid #5a856d;border-radius:6px;display:grid;place-items:center;color:#89aa91;font-size:28px}.trick-slot .playing-card{width:72px;height:100px;transform:rotate(-7deg)}.trick-slot+.trick-slot .playing-card{transform:rotate(7deg)}.trick-message{font-size:11px;color:var(--gold);margin-top:8px;min-height:17px;text-align:center}.hand-wrap{width:100%;position:relative;z-index:3;padding-top:5px}.hand-title{display:flex;align-items:center;justify-content:space-between;color:#e4ecdc;font-size:11px;margin-bottom:13px;padding:0 4px}.hand-title strong{font-weight:500}.hand-title span{color:#c1d7c4;font-size:11px}.hand{display:flex;align-items:flex-end;justify-content:center;padding:0 5px;height:111px}.hand .playing-card{margin-left:clamp(-39px,-2.4vw,-16px);flex-shrink:0;transform:translateY(var(--lift,0px)) rotate(var(--rotation,0deg));transform-origin:center 140%;z-index:var(--z)}.hand .playing-card:first-child{margin-left:0}.playing-card{display:block;position:relative;width:64px;height:91px;padding:0;border-radius:6px;border:1px solid #e3e4d7;background:#fffef8;color:#26372b;font-family:Georgia,'Times New Roman',serif;line-height:1;box-shadow:none;user-select:none;overflow:hidden;text-align:left;transition:transform .16s,outline-color .16s}.playing-card.red{color:var(--red)}.playing-card:enabled:hover{transform:translateY(-17px) rotate(0deg);z-index:99;outline:2px solid var(--gold);outline-offset:1px}.playing-card:focus-visible{z-index:99;outline:3px solid var(--gold);outline-offset:2px}.playing-card.is-disabled{background:#e4e7dc;color:#6c8170}.playing-card.red.is-disabled{color:#b47c72}.playing-card.recommended{outline:3px solid var(--gold);outline-offset:1px;transform:translateY(-12px) rotate(0deg);z-index:95}.card-corner{position:absolute;left:7px;top:6px;display:flex;align-items:center;flex-direction:column;font-size:18px;font-weight:bold;gap:1px;min-width:14px}.card-corner small{font-size:14px;line-height:1}.card-corner.bottom{top:auto;left:auto;bottom:6px;right:7px;transform:rotate(180deg)}.card-center{display:flex;align-items:center;justify-content:center;flex-direction:column;position:absolute;inset:21px 13px;font-size:32px}.card-center .face-rank{font-size:26px;font-weight:400}.card-center .face-suit{font-size:20px;margin-top:2px}.card-mini{display:inline-flex;align-items:center;justify-content:center;gap:2px;font-family:Georgia,serif;font-size:17px;min-width:35px;padding:3px 5px;color:#26372b;line-height:1.2}.card-mini.red{color:var(--red)}.player-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 22px 16px;background:#1b523f;font-size:12px}.player-bottom .you{display:flex;align-items:center;gap:9px}.you .avatar{width:27px;height:27px;background:#d1dfcb;color:#264d34}.you .avatar .icon{width:15px;height:15px}.round-total{display:flex;align-items:center;gap:12px;color:#c8dec9;font-size:11px}.round-total strong{font-size:20px;font-weight:500;color:white}.table-helper{text-align:center;font-size:11px;color:#78917b;margin-top:13px;display:flex;justify-content:center;align-items:center;gap:6px}.table-helper .icon{width:13px;height:13px}.action-panel{padding:20px 0 14px;min-height:104px}.action-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.action-title{font-size:13px;font-weight:650}.action-note{font-size:11px;color:var(--muted);margin-top:3px}.action-controls{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.action-controls .button{min-height:38px}.bid-stepper{display:inline-flex;align-items:center;height:39px;border:1px solid var(--control);border-radius:7px;background:white;overflow:hidden}.bid-stepper button{height:100%;width:34px;border:0;background:none;font-size:19px}.bid-stepper button:hover{background:var(--raised)}.bid-stepper input{width:55px;text-align:center;border:0;outline:none;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.bid-stepper input::-webkit-inner-spin-button{appearance:none}.bid-unit{color:var(--muted);font-size:11px;padding-right:9px}.turn-indicator{display:flex;align-items:center;gap:7px;color:var(--green);font-size:11px;white-space:nowrap}.turn-indicator .status-dot{background:var(--green)}.marriage-option{display:flex;gap:8px;align-items:center;font-size:12px;margin-bottom:10px;color:var(--green)}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}.round-score-strip{display:flex;align-items:center;gap:20px;padding:13px 0;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.round-score-strip strong{color:var(--ink);font-weight:600}.round-score-strip span:last-child{margin-left:auto}.coach{background:#f2f3ee;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.coach-header{padding:20px 20px 16px;display:flex;align-items:center;justify-content:space-between}.coach-title{display:flex;align-items:center;gap:9px}.coach-title .icon{color:var(--green);width:19px;height:19px}.coach-title h2{font-size:15px}.coach-live{display:flex;align-items:center;gap:5px;font-size:11px;color:#586c55}.coach-body{padding:0 20px 20px}.coach-intro{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:17px}.coach-empty-icon{width:48px;height:48px;display:grid;place-items:center;margin:8px 0 15px;color:var(--green);border:1px solid #d7ddd0;border-radius:50%}.coach-empty-icon .icon{width:23px;height:23px}.coach-section{padding:18px 20px;border-top:1px solid #dde1d5}.coach-section h3{font-size:12px;font-weight:650;margin-bottom:11px}.coach-section p{font-size:11px;line-height:1.8;color:var(--muted)}.coach-rule{display:flex;align-items:flex-start;gap:9px;font-size:11px;color:var(--muted);line-height:1.7;margin:8px 0}.coach-rule .icon{width:14px;height:14px;margin-top:3px;color:var(--green);flex-shrink:0}.coach-footer{padding:12px 20px;background:#e9ece3;font-size:11px;line-height:1.7;color:#4d5e45}.toggle-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;margin-top:16px;cursor:pointer;color:var(--muted)}.toggle{position:relative;display:inline-block;width:30px;height:18px;flex-shrink:0}.toggle input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.toggle i{pointer-events:none;display:block;width:30px;height:18px;border-radius:10px;background:#bfc7b7;transition:background .15s}.toggle i:after{content:'';position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s}.toggle input:checked+i{background:var(--green)}.toggle input:checked+i:after{transform:translateX(12px)}.toggle input:focus-visible+i{outline:3px solid var(--gold-dark);outline-offset:3px}.coach-result{padding:14px;background:#fff;border-radius:8px;margin-bottom:13px}.result-label{color:var(--muted);font-size:11px;margin-bottom:7px}.result-action{font-size:18px;letter-spacing:-.3px;color:var(--green);font-weight:650}.result-action .card-mini{font-size:24px}.result-explanation{font-size:11px;line-height:1.8;margin-top:8px;color:#4d5949}.alternative-head{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin:13px 0 6px}.alternative-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px solid #e0e4d8;font-size:11px}.alternative-row.top{font-weight:650;color:var(--green)}.alternative-row .num{text-align:right}.analysis-meta{font-size:11px;color:var(--muted);line-height:1.75;margin:12px 0}.analysis-meta strong{font-weight:600}.coach-loading{display:flex;align-items:center;gap:9px;font-size:12px;padding:16px 0;color:var(--green)}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid #c0d1be;border-top-color:var(--green);animation:spin .7s linear infinite}.thinking{color:#d8e5cd;display:flex;align-items:center;gap:7px;font-size:12px}.thinking .spinner{border-color:#4f7c60;border-top-color:var(--gold)}@keyframes spin{to{transform:rotate(360deg)}}.table-footnote{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted);padding-top:15px}.table-footnote span{display:flex;align-items:center;gap:5px}.table-footnote .icon{width:13px;height:13px}.page-content{max-width:1120px}.panel{background:#f4f5ef;padding:24px;border-radius:var(--radius)}.panel+.panel{margin-top:20px}.panel p{color:var(--muted);font-size:13px;line-height:1.9}.panel h2{margin-bottom:12px}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lesson-list{display:flex;flex-direction:column;gap:12px}.lesson{display:block;text-align:left;background:#f1f3ec;padding:22px;border:1px solid transparent;border-radius:var(--radius);width:100%}.lesson:hover{border-color:#bac5b3}.lesson-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:8px}.lesson-heading h2{font-size:17px}.lesson p{font-size:12px;color:var(--muted);line-height:1.8}.lesson-meta{display:flex;gap:15px;color:var(--muted);font-size:11px;margin-top:15px}.lesson-meta .done{color:var(--green);display:flex;align-items:center;gap:5px}.lesson-meta .icon{width:14px;height:14px}.lesson-detail{max-width:760px}.lesson-hand{display:flex;gap:10px;justify-content:center;align-items:center;padding:27px 14px;background:var(--felt);border-radius:12px;margin:20px 0}.lesson-hand .playing-card{width:70px;height:100px;flex-shrink:0}.lesson-options{display:flex;flex-direction:column;gap:10px;margin:18px 0}.lesson-option{text-align:left;display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--control);padding:14px 16px;border-radius:8px;font-size:13px}.lesson-option:hover{border-color:var(--green)}.lesson-option.correct{background:#eaf2e6;border-color:#9db58d}.lesson-option.incorrect{background:#fcf0e9;border-color:#c9ab94}.lesson-option .option-letter{display:grid;place-items:center;border:1px solid #d3d6cb;min-width:28px;height:28px;border-radius:5px;font-size:12px;color:var(--muted)}.lesson-feedback{padding:20px;background:#eef2e8;border-radius:9px;font-size:13px;line-height:1.9;color:#41563c;margin-top:18px}.lesson-feedback strong{display:block;margin-bottom:7px}.rule-list{display:flex;flex-direction:column;gap:22px}.rule-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;border-top:1px solid var(--border);padding-top:19px}.rule-row h3{font-size:14px}.rule-row p{color:var(--muted);font-size:13px;line-height:1.9}.points-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}.points-item{display:flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap}.points-item strong{font-size:16px;font-weight:500}.archive-empty{padding:48px 24px;background:#f2f3ed;border-radius:var(--radius);display:flex;flex-direction:column;align-items:flex-start;max-width:760px}.archive-empty>.icon{width:32px;height:32px;color:var(--green);margin-bottom:18px}.archive-empty h2{font-size:21px;margin-bottom:9px}.archive-empty p{color:var(--muted);font-size:13px;max-width:480px;line-height:1.9;margin-bottom:23px}.archive-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:20px}.archive-list{display:flex;flex-direction:column;gap:8px}.archive-item{border:1px solid var(--border);border-radius:8px;padding:15px;background:var(--surface);text-align:left;width:100%}.archive-item.selected{border-color:var(--green);background:#f0f3e9}.archive-item strong{font-size:13px;font-weight:600}.archive-item p{font-size:11px;color:var(--muted);margin-top:4px}.archive-item .score{float:right;color:var(--green)}.log-list{max-height:230px;overflow:auto;list-style:none;margin:0;padding:0}.log-list li{font-size:11px;color:var(--muted);padding:6px 0;border-bottom:1px solid #e1e5d9;line-height:1.6}.replay-controls{display:flex;gap:12px;align-items:center;margin:18px 0}.replay-controls input{flex:1;accent-color:var(--green);min-width:0}.replay-state{padding:20px;background:var(--felt);border-radius:10px;color:white}.replay-state p{color:#e1eddd;font-size:12px}.replay-hand{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0}.replay-hand .playing-card{width:45px;height:64px;border-radius:4px}.replay-hand .card-corner{font-size:13px;left:4px;top:4px}.replay-hand .card-corner small{font-size:11px}.replay-hand .card-corner.bottom{right:4px;bottom:4px;left:auto;top:auto}.replay-hand .card-center{font-size:23px;inset:13px 9px}.replay-hand .face-rank{font-size:17px}.replay-hand .face-suit{font-size:13px}.round-summary{display:flex;justify-content:center;gap:35px;margin:17px 0 4px}.round-summary>div{text-align:center}.round-summary small{display:block;font-size:11px;color:#cadcc7}.round-summary strong{display:block;font-size:29px;font-weight:500;margin-top:4px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-row{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;padding:18px 0;border-top:1px solid var(--border)}.settings-row strong{display:block;font-size:13px;font-weight:600}.settings-row p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:4px}.settings-row input{margin-top:4px;flex-shrink:0}.settings-footer{display:flex;align-items:center;gap:12px;margin-top:16px}.inline-notice{font-size:12px;color:#6e6143;background:#f3efdf;border-radius:8px;padding:13px 16px;line-height:1.8;margin-bottom:20px}.score-table{width:100%;border-collapse:collapse;margin:15px 0}.score-table th,.score-table td{padding:10px 4px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border)}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table th{color:var(--muted);font-weight:400}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);padding:12px 19px;border-radius:8px;max-width:calc(100vw - 32px);width:max-content;background:#252f23;color:#fff;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100;font-size:12px}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:14px;padding:25px;width:min(520px,calc(100vw - 32px));max-height:85vh;color:var(--ink);background:#fff}dialog::backdrop{background:rgba(22,35,24,.4)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.modal-head h2{font-size:19px}.modal-body{font-size:13px;color:var(--muted);line-height:1.8}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.memory-grid{display:flex;flex-direction:column;gap:12px}.memory-row{display:flex;align-items:center;gap:5px}.memory-row>strong{font-family:Georgia,serif;font-size:25px;width:27px;font-weight:400}.memory-card{position:relative;width:46px;height:38px;display:grid;place-items:center;font-family:Georgia,serif;font-size:17px;border-radius:5px;border:1px solid #e0e4d8;color:#788471}.memory-card.seen{background:#edf0e9;color:#969e90;text-decoration:line-through}.memory-card.own{background:#e1ebda;border-color:#b5c9aa;color:#284a31}.memory-card.known{background:#f5edd9;border-color:#d7c690;color:#6c5a2f}.memory-legend{display:flex;gap:13px;flex-wrap:wrap;margin-top:18px;font-size:11px}.memory-legend span{display:flex;align-items:center;gap:5px}.memory-legend i{width:10px;height:10px;background:#e1ebda;border:1px solid #b5c9aa;border-radius:2px}.memory-legend span:nth-child(2) i{background:#edf0e9;border-color:#d4d9cf}.memory-legend span:nth-child(3) i{background:#f5edd9;border-color:#d7c690}.mobile-menu-button{display:none}.page-heading-extra{margin-bottom:20px;color:var(--muted);font-size:13px;line-height:1.9}
/* Fluid grid: 216px navigation + 60px canvas padding + 20px gutter + 300px coach + remaining width for table. */
@media(min-width:1600px){.workspace{padding-left:42px;padding-right:42px}.main-grid{grid-template-columns:minmax(0,1fr) 330px;gap:26px}.table-stage{min-height:470px}.table-center{min-height:170px}.hand .playing-card{width:73px;height:104px;margin-left:-14px}.hand{height:122px}.coach-body,.coach-section{padding-left:23px;padding-right:23px}.coach-header{padding-left:23px;padding-right:23px}.main-grid,.page-content,.page-header,.game-toolbar,.topbar{max-width:1440px;margin-left:auto;margin-right:auto}}
@media(max-width:1260px){.app-shell{grid-template-columns:184px minmax(0,1fr)}.sidebar{padding-left:11px;padding-right:11px}.brand{padding-left:10px;padding-right:7px;gap:6px}.brand-mark{font-size:35px}.brand-name{font-size:13px}.brand-caption{font-size:11px}.workspace{padding:0 23px 23px}.main-grid{grid-template-columns:minmax(0,1fr) 275px;gap:16px}.coach-body,.coach-section{padding-left:16px;padding-right:16px}.coach-header{padding-left:16px;padding-right:16px}.table-status{padding-left:17px;padding-right:17px}.hand .playing-card{margin-left:-28px}.hand .playing-card:first-child{margin-left:0}.table-stage{padding-left:12px;padding-right:12px}.select-wrap label{display:none}.header-actions .button{padding-left:11px;padding-right:11px}.table-tools .button span{display:none}.table-tools .button{width:30px;padding:3px}.nav-item{padding-left:12px;gap:10px;font-size:12px}.sidebar-note{margin-left:12px;margin-right:12px}.player-bottom{padding-left:17px;padding-right:17px}.table-status .dot-sep{padding:0 4px}.breadcrumb{font-size:11px}}
@media(max-width:1050px){.app-shell{display:block}.sidebar{display:none;position:fixed;z-index:60;top:60px;bottom:0;left:0;width:245px;height:calc(100dvh - 60px);box-shadow:20px 0 40px rgba(25,35,24,.1);background:#f4f3ef;padding-top:24px}.sidebar.open{display:flex}.workspace{border-left:0;padding:0 24px 24px}.topbar{min-height:60px}.mobile-menu-button{display:grid}.mobile-brand{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700}.mobile-brand .brand-suit{font-size:22px;margin:0}.breadcrumb{display:none}.topbar-left{display:flex;align-items:center;gap:12px}.sidebar .brand{display:none}.main-grid{grid-template-columns:minmax(0,1fr) 300px;gap:20px}.hand .playing-card{margin-left:-22px}.hand .playing-card:first-child{margin-left:0}.page-header{padding-top:24px}.brand-caption{font-size:11px}}
@media(max-width:800px){.workspace{padding-left:20px;padding-right:20px}.main-grid{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.coach-body,.coach-section{padding-left:14px;padding-right:14px}.coach-header{padding-left:14px;padding-right:14px}.hand .playing-card{width:57px;height:83px;margin-left:-30px}.hand .playing-card:first-child{margin-left:0}.hand{height:101px}.playing-card .card-corner{left:5px;top:5px;font-size:17px}.playing-card .card-corner.bottom{left:auto;top:auto;right:5px;bottom:5px}.playing-card .card-center{font-size:28px;inset:20px 12px}.hand-title{font-size:11px}.hand-title span{font-size:11px}.table-status{font-size:11px;padding:14px}.table-stage{min-height:399px}.table-center{min-height:120px}.table-tools .button{width:28px}.mode-tabs{gap:13px}.mode-tab{font-size:11px}.center-title{font-size:16px}.center-subtitle{font-size:11px;max-width:220px}.topbar-right .session-note{display:none}.player-score{margin-left:8px}.player-bottom{padding-left:14px;padding-right:14px}.round-total{gap:8px}.player-label{font-size:11px}.opponent-avatar{width:32px;height:32px}.action-controls{gap:7px}.action-controls .button{font-size:11px;padding:7px 11px}.action-title{font-size:12px}.turn-indicator{font-size:11px}.round-score-strip{gap:12px;font-size:11px}.round-score-strip span:last-child{display:none}.header-actions{gap:7px}.page-header p{font-size:12px}.header-actions .select{font-size:11px;padding-left:7px;height:36px}.header-actions .button{font-size:11px;min-height:36px;padding-left:9px;padding-right:9px}.header-actions .button .icon{width:14px}.page-header{gap:12px}h1{font-size:25px}.table-footnote{font-size:11px;gap:7px}.table-footnote span:last-child{display:none}.archive-layout{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:680px){.workspace{padding:0 16px 95px}.topbar{min-height:56px}.topbar-right{gap:11px}.topbar-right .small{display:none}.topbar-right .avatar{width:30px;height:30px}.sidebar{top:56px;height:calc(100dvh - 56px)}.page-header{align-items:flex-start;padding:21px 0 19px;gap:10px}.page-header h1{font-size:24px}.page-header p{font-size:11px;margin-top:6px;max-width:220px}.header-actions{flex-direction:column-reverse;align-items:stretch;gap:6px}.header-actions .button{min-height:33px;padding:5px 9px;font-size:11px}.header-actions .select{height:30px;width:100%;font-size:11px}.header-actions .button .icon{width:13px;height:13px}.main-grid{display:flex;flex-direction:column;gap:20px}.play-column{width:100%}.coach{width:100%;border-radius:12px}.coach-body,.coach-section{padding-left:18px;padding-right:18px}.coach-header{padding:17px 18px 12px}.coach-intro{font-size:12px;max-width:unset}.coach-body{padding-bottom:18px}.coach-empty-icon{display:none}.coach-body>.button{max-width:100%;min-height:42px}.coach-section{padding-top:15px;padding-bottom:15px}.coach-rule{font-size:12px}.coach-section h3{font-size:13px}.coach-footer{font-size:11px;padding-left:18px;padding-right:18px}.coach-result{padding:15px}.result-explanation{font-size:12px}.alternative-row{font-size:12px}.analysis-meta{font-size:11px}.toggle-label{font-size:12px}.coach-section.pair-reference{display:none}.game-toolbar{padding-bottom:12px}.mode-tab{font-size:12px}.table-tools .button{width:32px;min-height:32px}.table-tools .button .icon{width:17px;height:17px}.table-status{padding:13px 16px;font-size:11px}.table-stage{min-height:410px;padding-top:16px;padding-left:12px;padding-right:12px}.opponent-cards{margin-top:12px}.center-title{font-size:17px}.center-subtitle{font-size:11px;max-width:280px}.table-center{min-height:131px;padding-top:12px;padding-bottom:12px}.talon-row{margin-top:14px;gap:32px}.talon-choice span{font-size:11px}.talon-stack .card-back{width:37px;height:53px}.hand{height:103px;padding-left:0;padding-right:0}.hand .playing-card{width:58px;height:85px;margin-left:-27px}.hand .playing-card:first-child{margin-left:0}.hand .playing-card:hover{transform:translateY(-12px) rotate(0deg)}.hand .playing-card .card-corner{font-size:17px;left:5px;top:5px}.hand .playing-card .card-corner.bottom{right:5px;bottom:5px;left:auto;top:auto}.hand-title{padding:0 5px;font-size:11px;margin-bottom:8px}.hand-title span{font-size:11px}.player-bottom{padding:14px 17px;font-size:11px}.round-total strong{font-size:18px}.round-total{font-size:11px}.action-panel{padding-top:17px;min-height:0;padding-bottom:10px}.action-top{gap:8px;margin-bottom:12px}.action-title{font-size:13px}.action-note{font-size:11px}.action-controls .button{min-height:42px;font-size:12px;padding:8px 15px}.bid-stepper{height:42px}.bid-stepper button{width:35px}.bid-stepper input{width:50px}.turn-indicator{font-size:11px}.round-score-strip{font-size:11px;margin-top:3px;gap:14px;padding-top:12px;padding-bottom:4px}.table-footnote{font-size:11px;padding-top:12px}.section-grid,.settings-grid{grid-template-columns:1fr;gap:16px}.rule-row{grid-template-columns:1fr;gap:8px}.rule-list{gap:18px}.panel{padding:20px}.points-row{gap:10px}.lesson{padding:20px}.lesson-heading h2{font-size:16px}.lesson-hand{gap:7px;padding:24px 10px}.lesson-hand .playing-card{width:55px;height:81px}.lesson-hand .playing-card .card-corner{font-size:16px;left:4px;top:4px}.lesson-hand .playing-card .card-corner.bottom{right:4px;bottom:4px;left:auto;top:auto}.lesson-hand .playing-card .card-center{font-size:26px}.lesson-options{gap:9px}.lesson-option{padding:12px;font-size:12px}.lesson-feedback{padding:17px;font-size:12px}.archive-layout{grid-template-columns:1fr}.archive-list{flex-direction:row;overflow:auto;padding-bottom:5px}.archive-item{min-width:190px}.archive-empty{padding:28px 22px}.archive-empty h2{font-size:20px}.archive-empty p{font-size:12px}.score-table th,.score-table td{font-size:11px}.modal-head h2{font-size:17px}dialog{padding:20px}.memory-row{gap:4px}.memory-card{width:40px;height:36px;font-size:16px}.memory-row>strong{width:20px;font-size:23px}.lesson-detail .page-heading-extra{font-size:12px}.archive-layout .panel{padding:18px}.replay-state{padding:14px}.replay-hand .playing-card{width:40px;height:59px}.replay-controls{gap:7px}.replay-controls .button{padding:7px;min-height:38px}.replay-controls .small{font-size:11px}}
@media(max-width:370px){.workspace{padding-left:12px;padding-right:12px}.hand .playing-card{margin-left:-30px}.hand .playing-card:first-child{margin-left:0}.player-bottom{padding-left:13px;padding-right:13px}.round-total{gap:7px}.header-actions .select{max-width:108px}.table-tools .button{width:28px}.mode-tabs{gap:12px}.table-status{padding-left:13px;padding-right:13px}.round-score-strip{font-size:11px;gap:10px}.action-controls .button{padding-left:11px;padding-right:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.player-extras{display:flex;align-items:center;gap:9px;color:#c4d8c2;font-size:11px;line-height:1.5;margin-top:3px;font-variant-numeric:tabular-nums}.player-bottom{flex-wrap:wrap;row-gap:4px}.player-bottom>.player-extras{width:100%;margin-top:0;padding-left:36px;font-size:11px}.barrel-tag{color:var(--gold);font-weight:600}.opponent .player-extras{gap:6px}.opponent .player-sub{font-size:11px}.player-bottom .small{font-size:11px}
.mobile-brand{text-decoration:none}.round-notes{font-size:11px;line-height:1.7;color:#e4d5a8;text-align:center;margin-top:10px;max-width:380px}.panel>.round-notes{color:#6f5b2b;text-align:left;max-width:none;margin:9px 0 14px}.coach-footer .icon{width:14px;height:14px}
@media(min-width:1261px){.hand .playing-card{width:66px;height:95px;margin-left:-7px}.hand .playing-card:first-child{margin-left:0}}
@media(min-width:1051px) and (max-width:1260px){.hand .playing-card{margin-left:-13px}.hand .playing-card:first-child{margin-left:0}}
@media(min-width:801px) and (max-width:1050px){.hand .playing-card{margin-left:-17px}.hand .playing-card:first-child{margin-left:0}}
@media(min-width:681px) and (max-width:800px){.hand .playing-card{margin-left:-25px}.hand .playing-card:first-child{margin-left:0}}
@media(max-width:680px){.hand{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;height:auto;width:min(100%,420px);margin:0 auto;padding:6px 2px 13px}.hand .playing-card,.hand .playing-card:first-child{width:100%;height:76px;margin:0;transform:none;transform-origin:center}.hand .playing-card:enabled:hover,.hand .playing-card.recommended{transform:translateY(-3px)}.hand .playing-card .card-corner{font-size:15px;left:4px;top:4px}.hand .playing-card .card-corner small{font-size:11px}.hand .playing-card .card-corner.bottom{right:4px;bottom:4px;top:auto;left:auto}.hand .playing-card .card-center{font-size:28px;inset:18px 10px}.hand .playing-card .face-rank{font-size:22px}.hand .playing-card .face-suit{font-size:16px}.hand-title{margin-bottom:3px}.table-stage{min-height:425px}.player-bottom>.player-extras{font-size:11px}.opponent .player-extras{font-size:11px}}
.modal-body .round-notes{color:#6f5b2b;text-align:left;max-width:none}.memory-card,.memory-card.seen{color:#5f6a59}.playing-card.is-disabled{color:#536a58}.playing-card.red.is-disabled{color:#985a4f}.button:disabled{color:#646a60}.table-helper{color:#62775f}
@media(max-width:680px){.lesson-hand .playing-card{width:min(55px,calc((100vw - 95px)/6));height:81px}}
.talon-information{margin-top:13px;padding:12px 15px;border-radius:8px;background:#f0f2e9;border:1px solid #dfe4d6}.talon-information-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.talon-information-title strong{font-size:12px;font-weight:600}.talon-information p{font-size:11px;line-height:1.75;color:#5e6a56;margin-top:4px}.talon-memory-cards{display:flex;gap:5px;flex-shrink:0}.talon-memory-cards .card-mini{background:#fffef8;border:1px solid #dfe2d4;border-radius:4px;min-width:35px;padding:4px 6px}.talon-private-label{display:flex;align-items:center;gap:5px;color:#5e6a56;font-size:11px;flex-shrink:0}.talon-private-label .icon{width:13px;height:13px}.exchange-pair-caption{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;color:#d6e6d1;font-size:11px;line-height:1.8;margin-top:13px}.exchange-pair-caption>span{display:flex;gap:5px}.exchange-pair-caption .card-mini{background:#fffef8;border-radius:4px;padding:5px 7px}.hand-exchange .playing-card{cursor:pointer}.hand-exchange .hand-title>span{color:var(--gold)}
@media(max-width:680px){.talon-information{padding:12px}.talon-information-title{gap:8px}.talon-information-title strong{font-size:11px}.talon-memory-cards{gap:3px}.talon-memory-cards .card-mini{min-width:31px;padding:4px}.hand-title{align-items:flex-start;gap:12px}.hand-title>span{max-width:172px;text-align:right}.talon-private-label{font-size:11px}.exchange-cards{margin-top:10px}}
.hand-exchange .hand{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;height:auto;width:min(100%,840px);margin:0 auto;padding:6px 2px 12px}.hand-exchange .hand .playing-card,.hand-exchange .hand .playing-card:first-child{width:100%;height:95px;margin:0;transform:none}.hand-exchange .hand .playing-card:enabled:hover,.hand-exchange .hand .playing-card.recommended{transform:translateY(-4px)}
@media(max-width:1050px){.hand-exchange .hand{grid-template-columns:repeat(6,minmax(0,1fr));width:min(100%,420px);gap:5px}.hand-exchange .hand .playing-card,.hand-exchange .hand .playing-card:first-child{height:80px}}
/* Physical card table: flat green cloth, woven grain, ivory stock and original court artwork. */
:root{--felt:#1c5642;--green:#174a39;--felt-line:#537c64;--card-paper:#fffdf7;--card-edge:#d4cfba;--ease-card:cubic-bezier(.22,1,.36,1)}
.table-frame{border-radius:20px;border:5px solid #234937;background-color:var(--felt);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.075'/%3E%3C/svg%3E")}
.table-status{background:#174b3980;border-color:#7d9e793d;padding:14px 20px;font-size:11px}.table-stage{min-height:448px;padding-top:24px}.table-stage:before{content:'';position:absolute;inset:20px 17px 13px;border:1px solid #8aa78030;border-radius:150px;pointer-events:none}.table-stage>*{position:relative;z-index:1}.table-center{min-height:146px}.player-bottom{background:#174b39a8;padding-top:15px;padding-bottom:13px}.opponent-avatar{background:#3e7058;border-color:#739179}.opponent-cards{height:64px;margin-top:13px}.opponent-cards .card-back{width:39px;height:57px;margin-left:-15px}.opponent-cards .card-back:first-child{margin-left:0}.opponent .player-score{font-size:22px;min-width:58px}.center-title{font-size:20px;letter-spacing:-.5px}.center-subtitle{font-size:12px;color:#d7e2ce;line-height:1.65}.talon-row{margin-top:20px;gap:43px}.talon-stack .card-back{width:49px;height:71px;border-radius:5px;transform:rotate(-8deg)}.talon-stack .card-back+.card-back{margin-left:-22px;transform:rotate(8deg)}.talon-choice span{font-size:11px;color:#e1e7d4}.talon-choice:enabled:hover .talon-stack{transform:translateY(-4px) rotate(-2deg)}.talon-choice:enabled:active .talon-stack{transform:translateY(-1px)}
.playing-card{background:var(--card-paper);border:1px solid var(--card-edge);border-radius:7px;color:#263d33;box-shadow:0 1px 1px #092d284d,0 5px 9px #0b2c231c;transition:transform 180ms var(--ease-card),box-shadow 180ms ease,outline-color 160ms ease;isolation:isolate}.playing-card.red{color:#b74340}.playing-card:after{content:'';position:absolute;inset:3px;border:1px solid #ece7da;border-radius:4px;pointer-events:none;z-index:-1}.card-corner{font-size:18px;font-weight:400;left:6px;top:5px;gap:1px}.card-corner small{font-size:13px}.card-corner.bottom{bottom:5px;right:6px}.playing-card .card-center{position:absolute;inset:12px 11px;display:block;font-size:inherit}.card-art{display:block;width:100%;height:100%;overflow:visible}.card-art-court{filter:none}.playing-card:enabled:hover{box-shadow:0 2px 2px #092d284d,0 12px 18px #092d2829;outline:2px solid #ead18b;outline-offset:1px}.playing-card.recommended{outline:2px solid #ead18b;outline-offset:2px}.playing-card.is-disabled{background:#e2e5d9;opacity:.67}.playing-card.is-disabled .card-art{opacity:.8}.card-back{border:1px solid #dfd8c3;background:var(--card-paper);padding:0;box-shadow:0 1px 2px #092d2866,0 4px 6px #092d2826;border-radius:5px;isolation:isolate}.card-back:before,.card-back:after{display:none}.card-back-art{display:block;width:100%;height:100%}.hand{height:116px;padding-bottom:2px}.hand .playing-card{width:68px;height:100px;margin-left:-8px;transform-origin:center 150%}.hand .playing-card:first-child{margin-left:0}.hand-title{margin-bottom:12px;padding-left:7px;padding-right:7px;font-size:12px}.hand-title span{font-size:11px}.hand-exchange .hand-title{margin-bottom:7px}.hand-exchange .hand .playing-card{height:100px}.hand-exchange .hand .playing-card:enabled:hover{transform:translateY(-9px)}.table-trick{gap:28px;min-height:143px}.trick-slot{min-width:84px}.trick-slot>small{font-size:11px;color:#dbe4ce;margin-bottom:9px}.trick-slot .playing-card{width:82px;height:119px;transform:rotate(-7deg)}.trick-slot+.trick-slot .playing-card{transform:rotate(7deg)}.trick-slot .card-center{inset:15px 14px}.trick-slot .card-corner{font-size:22px;left:7px;top:6px}.trick-slot .card-corner small{font-size:15px}.trick-slot .card-corner.bottom{bottom:6px;right:7px;top:auto;left:auto}.trick-placeholder{width:82px;height:119px;border:1px solid #74927b80;border-radius:7px;background:#225a45}.trick-placeholder svg{width:54px;height:81px;opacity:.1}.trick-message{min-height:20px;margin-top:12px;font-size:12px;color:#ead497}.exchange-cards .playing-card{width:77px;height:112px}.exchange-pair-caption .card-mini{border:1px solid #dfd8c3;box-shadow:0 1px 2px #173e3050}.button{transition:background 160ms ease,transform 140ms var(--ease-card)}.button:active:enabled{transform:translateY(1px)}.mode-tab{transition:color 150ms ease,border-color 150ms ease}.motion-status{min-height:104px;padding-top:21px}.motion-status .action-title{color:var(--green)}.motion-status .action-note{margin-top:5px}
/* The animation layer persists when app.innerHTML changes. It never accepts input. */
.card-motion-layer{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:clip;perspective:1000px;contain:layout style paint}.card-motion-layer *{pointer-events:none!important}.flying-card{position:fixed;transform-origin:center center;will-change:transform,opacity;perspective:700px;contain:layout style}.flying-card>.playing-card,.flying-card>.card-back{position:absolute;inset:0;width:100%!important;height:100%!important;transform:none!important;margin:0!important;box-shadow:0 4px 4px #082a2738,0 16px 22px #082a2730}.flying-card .playing-card:after{z-index:0}.flying-card .card-center,.flying-card .card-corner{z-index:1}.motion-flipper{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}.motion-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.motion-face-reverse{transform:rotateY(180deg)}.motion-face>.playing-card,.motion-face>.card-back{position:absolute;inset:0;width:100%!important;height:100%!important;margin:0!important;transform:none!important;box-shadow:0 4px 4px #082a2738,0 14px 20px #082a272e}.dealing-deck{z-index:-1}.game-in-motion .hand button,.game-in-motion .talon-choice{pointer-events:none;cursor:default}.game-in-motion .playing-card:disabled{opacity:1;background:var(--card-paper)}.game-in-motion .playing-card.is-disabled{opacity:.67}.game-in-motion .playing-card:disabled .card-art{opacity:1}
@media(min-width:1600px){.table-stage{min-height:492px}.table-center{min-height:170px}.hand .playing-card{width:76px;height:111px;margin-left:-10px}.hand{height:127px}.hand-exchange .hand .playing-card{height:108px}.hand-title{padding-left:11px;padding-right:11px}.table-trick .playing-card,.trick-placeholder{width:87px;height:126px}}
@media(min-width:1051px) and (max-width:1350px){.hand .playing-card{width:64px;height:94px;margin-left:-12px}.hand .playing-card:first-child{margin-left:0}.hand{height:109px}.hand-exchange .hand .playing-card{width:100%;height:93px;margin-left:0}.table-stage{min-height:442px}}
@media(min-width:681px) and (max-width:1050px){.hand .playing-card{width:60px;height:88px;margin-left:-17px}.hand .playing-card:first-child{margin-left:0}.hand{height:105px}.hand-exchange .hand .playing-card{width:100%;height:83px;margin-left:0}.table-stage{padding-left:15px;padding-right:15px;min-height:440px}.hand-exchange .hand{padding-bottom:16px}.table-stage:before{left:12px;right:12px}}
@media(min-width:681px) and (max-width:800px){.hand .playing-card{margin-left:-27px}.hand .playing-card:first-child{margin-left:0}.hand-exchange .hand .playing-card{margin-left:0}.center-title{font-size:18px}.center-subtitle{font-size:11px}.talon-stack .card-back{width:43px;height:62px}}
@media(max-width:680px){.table-frame{border-width:3px;border-radius:17px}.table-status{padding:12px 12px;font-size:11px}.table-stage{padding:19px 10px 0;min-height:462px}.table-stage:before{inset:15px 9px 13px;border-radius:130px}.opponent-cards{height:60px;margin-top:12px}.opponent-cards .card-back{width:36px;height:53px;margin-left:-15px}.opponent .player-score{font-size:20px;min-width:48px}.center-title{font-size:19px}.center-subtitle{font-size:11px;max-width:295px;line-height:1.7}.table-center{min-height:151px;padding:12px 0 16px}.talon-row{gap:38px;margin-top:15px}.talon-stack .card-back{width:46px;height:67px}.talon-stack .card-back+.card-back{margin-left:-22px}.hand,.hand-exchange .hand{height:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;width:min(100%,420px);padding:7px 2px 12px;margin:0 auto}.hand .playing-card,.hand .playing-card:first-child,.hand-exchange .hand .playing-card{width:100%;height:80px;margin:0;transform:none}.hand .playing-card .card-corner{font-size:15px;top:4px;left:4px}.hand .playing-card .card-corner small{font-size:11px}.hand .playing-card .card-corner.bottom{bottom:4px;right:4px;left:auto;top:auto}.hand .playing-card .card-center{inset:12px 9px}.hand .playing-card .card-art{overflow:hidden}.hand .playing-card:enabled:hover,.hand-exchange .hand .playing-card:enabled:hover{transform:translateY(-4px)}.hand-title{padding-left:3px;padding-right:3px;font-size:11px;margin-bottom:3px;gap:8px}.hand-title>span{max-width:170px}.table-trick{min-height:143px;gap:25px}.trick-slot .playing-card,.trick-placeholder{width:78px;height:113px}.trick-slot .card-corner{font-size:20px;left:6px;top:6px}.trick-slot .card-corner.bottom{right:6px;bottom:6px;left:auto;top:auto}.trick-slot .card-corner small{font-size:14px}.trick-slot .card-center{inset:14px 13px}.trick-message{font-size:11px;margin-top:9px}.player-bottom{padding:14px 13px 11px}.exchange-cards .playing-card{width:69px;height:100px}.lesson-hand .playing-card .card-center{inset:12px 9px}.replay-hand .playing-card .card-center{inset:10px 7px}.card-motion-layer{perspective:750px}.flying-card .card-center{inset:12px 10px}}
@media(prefers-reduced-motion:reduce){.card-motion-layer{display:none}.playing-card,.talon-stack,.button{transition:none!important}}
.result-explanation{font-size:13px;line-height:1.75;color:#43533d}.result-label{font-size:11px}.result-plan{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:13px;margin-top:13px;border-top:1px solid #e2e7d9}.result-plan>span{font-size:11px;line-height:1.6;color:#617058}.result-plan strong{display:block;color:var(--green);font-size:18px;font-weight:600;margin-top:3px}.forecast-table{width:100%;border-collapse:collapse;margin-top:15px;table-layout:fixed}.forecast-table th{font-size:11px!important;font-weight:400;color:#5c6955;line-height:1.6;padding:0 0 7px;text-align:right;vertical-align:bottom}.forecast-table th:first-child{width:47%;text-align:left}.forecast-table th:nth-child(2){width:18%}.forecast-table th:last-child{width:35%}.forecast-table td{padding:9px 0;border-top:1px solid #dce2d4;font-size:12px;line-height:1.6;text-align:right;vertical-align:top}.forecast-table td:first-child{text-align:left}.forecast-table td strong{font-size:12px;font-weight:550;white-space:nowrap}.forecast-table td small{display:block;color:#69745f;font-size:11px!important;line-height:1.65;white-space:nowrap}.forecast-table tr.best td strong{color:var(--green);font-weight:700}.analysis-purpose{font-size:11px;line-height:1.8;color:#56634e;margin-top:10px}.analysis-meta{font-size:11px;line-height:1.7;margin-top:14px;margin-bottom:14px}.analysis-meta>strong{display:block;font-weight:600;color:#55604e}.analysis-meta>span{display:block;margin-top:3px}.analysis-details{margin-top:9px}.analysis-details summary,.coach-focus summary{cursor:pointer;font-size:11px;color:#4e5e45;font-weight:550;list-style:disclosure-closed}.analysis-details[open] summary,.coach-focus[open] summary{list-style:disclosure-open}.analysis-details p{font-size:11px;line-height:1.8;margin-top:8px;color:#617058}.coach-focus summary{font-size:12px;color:var(--ink);font-weight:600}.coach-focus p{margin-top:9px}
@media(max-width:680px){.result-explanation{font-size:13px;line-height:1.75}.forecast-table th{font-size:11px!important}.forecast-table td small{font-size:11px!important}.forecast-table th:first-child{width:49%}.forecast-table th:nth-child(2){width:15%}.forecast-table th:last-child{width:36%}.forecast-table td{font-size:13px}.forecast-table td strong{font-size:13px}.analysis-purpose,.analysis-details p,.analysis-meta,.analysis-details summary{font-size:12px}}

.forecast-table td strong.score-negative,.forecast-table tr.best td strong.score-negative{color:var(--red)}
/* Variable talon sizes share the existing table and card treatment. */
.talon-stack[data-count="3"] .card-back+.card-back{margin-left:-25px}.talon-setting-summary{padding:12px 14px;margin:-3px 0 17px;border-radius:7px;background:#e9eee1}.talon-setting-summary p{font-size:12px;line-height:1.8;color:#4f6046}.talon-setting-summary .setting-current-mode{margin-top:8px;padding-top:8px;border-top:1px solid #ced9c3;font-size:11px}.talon-size-setting .select{min-width:98px}.closed-bonus{display:flex;align-items:center;gap:15px;border-top:1px solid #d7dfce;margin-top:11px;padding-top:11px}.closed-bonus strong{font-size:11px;font-weight:600;color:#45553d}.closed-bonus p{font-size:11px;margin-top:2px;line-height:1.7}.bonus-card-stack{display:flex;align-items:center;min-width:55px;height:39px;padding-left:0;flex-shrink:0}.bonus-card-stack .card-back{width:24px;height:35px;flex-shrink:0;margin-left:-12px;transform:rotate(calc((var(--bonus-index) - 1)*4deg));border-radius:3px}.bonus-card-stack .card-back:first-child{margin-left:0}.memory-card.known-bonus{background:#e4e8df;border-color:#b2bca9;color:#4c5b43}.memory-legend .bonus-legend i{background:#e4e8df;border-color:#b2bca9}.memory-uncertainty{font-size:12px;line-height:1.8;margin-top:16px}.memory-uncertainty .card-mini{font-size:16px;padding:0 3px;min-width:27px}.talon-uncertainty{color:#695c35!important}.planned-discard{font-size:11px;line-height:1.8;color:#56634d;margin-top:12px}.planned-discard .card-mini{font-size:17px;min-width:30px;padding:0 2px}
@media(max-width:680px){.talon-stack[data-count="3"] .card-back+.card-back{margin-left:-25px}.talon-row:has(.talon-stack[data-count="3"]){gap:27px}.talon-setting-summary{padding:12px}.talon-size-setting{gap:14px}.closed-bonus{gap:12px}.closed-bonus strong,.closed-bonus p{font-size:11px}.hand-exchange .hand-title>span{max-width:177px}.planned-discard{font-size:12px}.exchange-cards{gap:10px}.exchange-cards .playing-card{width:65px;height:94px}}
