:root{color:#edf4ea;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#0a120e;--panel:#111e17;--panel-2:#16261d;--panel-3:#1b2f23;--line:#c8decc24;--line-strong:#c8decc42;--text:#edf4ea;--soft:#c7d5c8;--muted:#a9baac;--quiet:#8fa394;--green:#bff576;--green-2:#d0ff9c;--green-ink:#15220f;--gold:#e9c98b;--red:#ff9d97;--card:#fbfaf4;--card-ink:#18211b;--radius:14px;--tap:44px;background:#0a120e;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.55}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;min-width:320px}body{min-width:320px;min-height:100vh;margin:0;font-size:1rem;line-height:1.55}button,select,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,a:focus-visible,[role=switch]:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:8px}button:disabled{cursor:not-allowed}::selection{color:#f7fff1;background:#bff57642}.red{color:#c33f4c!important}.black{color:#1b2b22!important}.suit-red{color:#ff9d97!important}.suit-light{color:#eef5ee!important}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.app-shell{background:radial-gradient(ellipse at 50% -16%, #2f5c3f47, transparent 44%), var(--bg);min-height:100vh}.skip-link{z-index:100;background:var(--green);color:var(--green-ink);border-radius:0 0 10px;padding:12px 18px;font-weight:800;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#09110deb;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;min-height:64px;padding:0 24px;display:grid}.brand-lockup{align-items:center;gap:11px;min-width:0;display:flex}.brand-mark{color:#172519;letter-spacing:-.08em;background:#d8f9a4;border-radius:10px;flex-shrink:0;grid-template-columns:1fr 1fr;align-content:center;justify-items:center;width:36px;height:36px;font-size:13px;font-weight:900;line-height:1;display:grid;position:relative;box-shadow:0 4px 14px #b5f36b1f}.brand-mark i{color:#37643e;font-size:8px;font-style:normal;position:absolute;bottom:5px;right:5px}.brand-text{min-width:0}.brand-text>div{letter-spacing:-.035em;white-space:nowrap;font-size:17px;font-weight:760}.brand-text>div span{color:var(--green);letter-spacing:.14em;vertical-align:2px;margin-left:6px;font-size:11px}.brand-text small{color:#83968a;letter-spacing:.01em;white-space:nowrap;margin-top:1px;font-size:11.5px;display:block}.match-strip{justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.score-cluster{border:1px solid var(--line);background:#ffffff09;border-radius:12px;align-items:center;gap:3px;padding:4px;display:flex;box-shadow:inset 0 1px #ffffff0b}.team-score{border-radius:8px;align-items:center;gap:7px;min-width:70px;padding:3px 7px 3px 3px;display:flex}.team-token{border:1px solid var(--line);color:#cbd8cd;letter-spacing:-.02em;background:#ffffff0d;border-radius:7px;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:11px;font-weight:900;line-height:1;display:grid}.score-cluster .team-score:first-of-type .team-token{color:#dcf8b9;background:#b8f36b24;border-color:#b8f36b4d}.team-copy{flex-direction:column;gap:1px;line-height:1;display:flex}.team-copy span{letter-spacing:.12em;text-transform:uppercase;color:#8fa394;font-size:8.5px;font-weight:850}.team-copy strong{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:16px;font-weight:800}.team-score.is-ahead .team-copy strong{color:var(--green)}.team-score.is-behind .team-copy strong{color:var(--red)}.score-sep{background:var(--line);flex-shrink:0;width:1px;height:24px}.match-tile{border:1px solid var(--line);white-space:nowrap;background:#ffffff07;border-radius:10px;align-items:center;gap:7px;min-height:42px;padding:4px 9px 4px 5px;display:flex}.tile-icon{color:#a9bbac;background:#ffffff0d;border-radius:6px;flex-shrink:0;place-items:center;width:25px;height:30px;display:grid}.tile-copy{flex-direction:column;gap:1px;min-width:0;line-height:1.05;display:flex}.tile-copy>span{letter-spacing:.12em;text-transform:uppercase;color:#8fa394;font-size:8.5px;font-weight:850}.tile-copy strong{font-variant-numeric:tabular-nums;font-size:13px;font-weight:780}.tile-copy small{color:#8ea192;margin-top:2px;font-size:9.5px}.match-contract.is-empty .contract-mini{opacity:.55}.contract-mini{color:#18211b;background:linear-gradient(150deg,#fffefa,#eeece2);border:1px solid #cdd6c9;border-radius:4px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:34px;padding:2px;line-height:1;display:flex;box-shadow:0 1px 3px #00000038}.contract-mini-back{color:#eaf8e0d9;letter-spacing:.04em;background:repeating-linear-gradient(45deg,#e4f6d724 0 2px,#0000 2px 4px),linear-gradient(140deg,#235640,#143a28);border-radius:3px;place-items:center;width:100%;height:100%;font-size:9px;font-weight:900;display:grid}.contract-mini-rank{letter-spacing:-.06em;font-size:12px;font-weight:850}.contract-mini-suit{margin-top:1px;font-size:11px}.suit-muted{color:#8b9a8c!important}.dealer-token{width:23px;height:23px;color:var(--gold);border:1px dashed #e9c98b8c;border-radius:50%;flex-shrink:0;place-items:center;font-size:10px;font-weight:900;display:grid}.match-state{border:1px solid var(--line);color:#c3d2c5;white-space:nowrap;background:#ffffff0a;border-radius:999px;align-items:center;gap:7px;padding:7px 11px;font-size:11.5px;font-weight:750;display:inline-flex}.match-state.state-mine{color:#dcf8b9;background:#b8f36b1c;border-color:#b8f36b57}.state-dot{background:#7f9382;border-radius:50%;flex-shrink:0;width:6px;height:6px}.state-mine .state-dot{background:var(--green)}.topbar-actions{align-items:center;gap:7px;display:flex}.top-action,.round-icon-button,.icon-button{border:1px solid var(--line);color:#c6d2c8;cursor:pointer;background:#ffffff06;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:13px;font-weight:700;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.top-action:hover,.round-icon-button:hover,.icon-button:hover{color:var(--text);border-color:var(--line-strong);background:#ffffff0f}.round-icon-button,.icon-button{width:38px;padding:0}.coach-switch{width:auto;padding:0 11px;position:relative}.coach-label{font-size:12.5px;font-weight:700}.coach-switch.is-on{color:var(--green);background:#b8f36b0f;border-color:#b8f36b47}.coach-switch.is-off{opacity:.55}.coach-dot{background:var(--green);border-radius:50%;width:5px;height:5px;position:absolute;top:7px;right:7px}.app-layout{grid-template-columns:minmax(0,1fr) 318px;align-items:start;gap:24px;width:min(1460px,100%);margin:0 auto;padding:20px 24px 30px;display:grid}.game-column{min-width:0}.right-rail{flex-direction:column;gap:12px;min-width:0;display:flex}.table-frame{background:#0c1711;border:1px solid #c4ddc729;border-radius:22px;padding:10px;box-shadow:0 22px 60px #0000002e}.turn-dot{background:#7f9382;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.felt-table{isolation:isolate;background:radial-gradient(at 50% 44%,#347a50 0%,#24613f 38%,#194b31 68%,#123923 100%);border:1px solid #bfe8b238;border-radius:17px;height:clamp(390px,34vw,460px);min-height:390px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 10px #04140b29,inset 0 0 90px #00000057}.felt-table.is-bidding{height:clamp(330px,29vw,390px);min-height:330px}.felt-table:before{content:"";pointer-events:none;border:1px solid #ddface29;border-radius:12px;position:absolute;inset:13px}.felt-table:after{content:"";pointer-events:none;border:1px solid #ddface12;border-radius:50%;width:76%;height:78%;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.felt-grain{z-index:0;opacity:.08;pointer-events:none;background-image:repeating-linear-gradient(35deg,#0000 0 4px,#ffffff14 5px,#0000 6px),repeating-linear-gradient(125deg,#0000 0 7px,#0000001a 8px,#0000 9px);position:absolute;inset:0}.felt-orbit{pointer-events:none;z-index:0;border:1px solid #cbf2be0f;border-radius:50%;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.orbit-one{width:58%;height:64%}.orbit-two{border-style:dashed;border-color:#cbf2be0b;width:38%;height:44%}.table-fact{z-index:3;pointer-events:none;flex-direction:column;gap:1px;display:flex;position:absolute;top:18px}.fact-tl{left:20px}.fact-tr{text-align:right;right:20px}.table-fact span{letter-spacing:.13em;text-transform:uppercase;color:#dcf4d5ad;font-size:9px;font-weight:850}.table-fact strong{color:#ebfae5e6;font-variant-numeric:tabular-nums;font-size:13px}.table-fact em{color:#dcf4d5a6;font-size:10px;font-style:normal}.player-seat{z-index:4;background:linear-gradient(150deg,#10281a,#0b1e14);border:1px solid #ddf5d726;border-radius:11px;align-items:center;gap:8px;width:clamp(126px,14vw,158px);padding:7px 9px 7px 11px;transition:border-color .16s,box-shadow .16s,background .16s;display:flex;position:absolute;box-shadow:0 8px 18px #05140c2e}.player-seat.seat-ours{border-color:#b8f36b33}.player-seat.seat-theirs{border-color:#e9c98b2b}.player-seat.seat-active{background:linear-gradient(150deg,#14331f,#0e2317);border-color:#c6f48d9e;box-shadow:0 0 0 2px #b8f36b1c,0 8px 20px #0003}.seat-north{top:16px;left:50%;transform:translate(-50%)}.seat-south{bottom:33px;left:50%;transform:translate(-50%)}.seat-west{top:50%;left:20px;transform:translateY(-50%)}.seat-east{top:50%;right:20px;transform:translateY(-50%)}.seat-avatar{color:#d5e9d3;background:#294231;border:1px solid #cbebc938;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12.5px;font-weight:850;display:grid;box-shadow:inset 0 1px #ffffff14}.avatar-ours{color:#ddffb9;background:radial-gradient(circle at 35% 25%,#3c6b3f,#23432c);border-color:#b8f36b52}.avatar-theirs{color:#e0e7d8;background:radial-gradient(circle at 35% 25%,#41473a,#262d25);border-color:#dce6d22e}.seat-copy{flex:1;min-width:0}.seat-name-line{align-items:center;gap:5px;display:flex}.seat-name-line strong{color:#edf4e9;white-space:nowrap;font-size:13px;font-weight:750}.seat-handline{align-items:center;gap:6px;margin-top:3px;display:flex}.seat-fan{align-items:center;height:13px;display:flex}.seat-fan i{background:repeating-linear-gradient(45deg,#1f3d2a 0 2px,#3c6344 2px 3px);border:1px solid #9fc09c;border-radius:2px;width:6px;height:13px;margin-left:-3px}.seat-fan i:first-child{margin-left:0}.seat-count{color:#b9cbbb;font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:750}.seat-tokens{align-items:center;gap:3px;display:flex;position:absolute;top:-7px;right:-5px}.seat-token{border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;font-size:9px;font-weight:900;display:grid}.seat-token-dealer{color:var(--gold);border:1px dashed #e9c98b8c}.seat-token-bid{color:#f2d69b;background:#e9c98b24;border:1px solid #e9c98b47}.table-center{z-index:1;text-align:center;pointer-events:none;flex-direction:column;align-items:center;width:42%;min-width:180px;max-width:320px;display:flex;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.table-center.is-bidding{width:min(720px,72%);max-width:720px}.center-logo{color:#dcf5d2eb;background:#ddf8d214;border:1px solid #daf8cf2e;border-radius:11px;justify-content:center;align-items:center;gap:2px;width:38px;height:38px;margin-bottom:7px;font-size:14px;font-weight:900;display:flex}.center-logo i{align-self:flex-start;margin-top:8px;font-size:11px;font-style:normal}.center-title{color:#eaf5e7;letter-spacing:-.035em;font-size:19px;font-weight:760}.center-title span{color:#b0d3b4;font-size:14px;font-weight:500}.center-subtitle{color:#d8eed8;margin-top:3px;font-size:12px;line-height:1.4}.table-message{color:#e4f7e0d6;max-width:280px;margin-top:7px;font-size:11.5px;line-height:1.45}.auction-seats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;max-width:680px;margin:12px auto 0;display:grid}.auction-seat{background:#071e122e;border:1px solid #ddf5d71f;border-radius:7px;flex-direction:column;align-items:center;gap:1px;padding:5px 4px;display:flex}.auction-seat span{letter-spacing:.08em;text-transform:uppercase;color:#ddf4d6b8;font-size:9.5px;font-weight:800}.auction-seat strong{color:#e4f2df;font-variant-numeric:tabular-nums;font-size:13px}.auction-current{background:#b8f36b12;border-color:#b8f36b6b}.auction-high{background:#e9c98b12;border-color:#e9c98b66}.auction-high strong{color:#f3d79f}.bid-ladder{justify-content:center;gap:3px;width:100%;max-width:620px;margin:7px auto 0;display:flex}.bid-step{color:#ddf4d68c;font-variant-numeric:tabular-nums;text-align:center;border:1px solid #ddf5d71a;border-radius:4px;flex:1;min-width:0;padding:3px 0;font-size:9.5px;font-weight:800}.bid-step-past{opacity:.55}.bid-step-min{color:#cfe9b6;border-color:#b8f36b4d}.bid-step-current{background:var(--green);border-color:var(--green-2);color:var(--green-ink)}.trump-pips{gap:10px;margin-top:12px;display:flex}.trump-pip{background:#071e1229;border:1px solid #ddf5d724;border-radius:8px;place-items:center;width:32px;height:32px;font-size:18px;display:grid}.played-card{z-index:3;filter:drop-shadow(0 7px 7px #0000003d);position:absolute}.played-north{top:28%;left:50%;transform:translate(-50%,-50%)rotate(-2deg)}.played-south{top:72%;left:50%;transform:translate(-50%,-50%)rotate(2deg)}.played-west{top:50%;left:32%;transform:translate(-50%,-50%)rotate(-4deg)}.played-east{top:50%;left:68%;transform:translate(-50%,-50%)rotate(4deg)}.played-winner .playing-card{border-color:var(--green-2);box-shadow:0 0 0 2px #bff57699,0 12px 18px #0000003d}.trick-slot{z-index:2;color:#e1fcd733;letter-spacing:.1em;background:#071e121a;border:1px dashed #e1fcd724;border-radius:8px;place-items:center;width:50px;height:70px;font-size:9px;font-weight:850;display:grid;position:absolute}.trick-slot-north{top:28%;left:50%;transform:translate(-50%,-50%)}.trick-slot-south{top:72%;left:50%;transform:translate(-50%,-50%)}.trick-slot-west{top:50%;left:32%;transform:translate(-50%,-50%)}.trick-slot-east{top:50%;left:68%;transform:translate(-50%,-50%)}.felt-bottom{z-index:5;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:20px;display:grid;position:absolute;bottom:12px;left:20px;right:20px}.table-object-label{letter-spacing:.14em;text-transform:uppercase;color:#e1f5d89e;margin:0;font-size:8.5px;font-weight:850;display:block}.table-scoreboard,.trump-stash,.felt-contract{grid-template-rows:12px 46px 12px;align-items:center;min-height:70px;display:grid}.table-scoreboard{justify-items:start}.trump-stash{justify-items:center;width:72px}.felt-contract{justify-items:stretch}.score-stacks{grid-template-columns:32px 10px 32px;align-items:end;gap:7px;display:grid}.score-card-stack{width:32px;height:46px;position:relative}.score-card-ghost{transform:translate(calc(var(--depth) * 2px), calc(var(--depth) * -2px));background:repeating-linear-gradient(45deg,#24402f 0 2px,#355940 2px 4px);border:1px solid #f0f8eb8c;border-radius:4px;position:absolute;inset:0}.score-card{color:#18211b;background:linear-gradient(150deg,#fffefa,#f0eee4);border:1px solid #d3dccd;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:0;box-shadow:0 3px 8px #00000047}.score-card strong{letter-spacing:-.07em;font-variant-numeric:tabular-nums;font-size:17px;font-weight:900;line-height:1}.score-card-pip{color:#18211b;font-size:10px;line-height:1}.score-card-stack.is-positive .score-card strong,.score-card-stack.is-positive .score-card-pip{color:#2f6b31}.score-card-stack.is-negative .score-card strong,.score-card-stack.is-negative .score-card-pip{color:#a8323c}.score-team-labels{text-align:center;grid-template-columns:32px 10px 32px;gap:7px;display:grid}.score-team-labels span{letter-spacing:.1em;text-transform:uppercase;color:#ebfae5b8;font-size:8px;font-weight:850}.score-vs{color:#ebfae580;place-items:center;font-size:11px;display:grid}.felt-contract-body{align-items:center;display:flex}.contract-meter-track{background:#ffffff24;border-radius:99px;width:100%;height:5px;margin-top:0;overflow:hidden}.contract-meter-track i{border-radius:inherit;background:var(--green);height:100%;display:block}.felt-contract.is-opponent .contract-meter-track i{background:var(--gold)}.felt-contract-caption{color:#ebfae5b8;font-variant-numeric:tabular-nums;font-size:8.5px}.trump-stash-card{border-radius:4px;width:34px;height:46px}.stash-back{background:linear-gradient(140deg,#1b4a34,#0f2f20);border:1px solid #c7d6c2;border-radius:4px;place-items:center;width:100%;height:100%;padding:3px;display:grid;box-shadow:0 3px 8px #00000047}.stash-back-pattern{background:repeating-linear-gradient(45deg,#dff3d617 0 2px,#0000 2px 5px),repeating-linear-gradient(-45deg,#dff3d617 0 2px,#0000 2px 5px);border:1px solid #dff3d680;border-radius:2px;place-items:center;width:100%;height:100%;display:grid}.stash-back-pattern span{color:#e6f8dec7;letter-spacing:.06em;background:#06180e73;border:1px solid #e6f8de59;border-radius:2px;padding:1px 2px;font-size:9px;font-weight:900}.stash-face{background:linear-gradient(150deg,#fffefa,#f0eee4);border:1px solid #d3dccd;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;box-shadow:0 3px 8px #00000047}.stash-face strong{align-items:center;font-size:21px;line-height:1;display:inline-flex}.stash-two{margin-right:1px;font-size:15px;font-style:normal;font-weight:900}.stash-red{color:#c33f4b}.stash-black{color:#18211b}.stash-index{letter-spacing:.04em;opacity:.65;font-size:7px;font-weight:900;position:absolute;top:3px;left:4px}.stash-index-bottom{inset:auto 4px 3px auto;transform:rotate(180deg)}.stash-flipped{animation:.7s cubic-bezier(.2,.8,.2,1) stash-flip}.trump-stash.is-reverse .table-object-label,.trump-stash.is-reverse .trump-stash-caption{color:var(--gold)}.trump-stash-caption{text-overflow:ellipsis;white-space:nowrap;color:#ebfae5bf;max-width:76px;font-size:8.5px;overflow:hidden}.trump-stash.is-revealed .trump-stash-caption{color:#ecffd8;font-weight:700}@keyframes stash-flip{0%{transform:rotateY(90deg)scale(.9)}60%{transform:rotateY(-8deg)scale(1.04)}to{transform:rotateY(0)scale(1)}}.table-announce{z-index:9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#07140df5;border:1px solid #b8f36b59;border-radius:14px;align-items:center;gap:12px;padding:12px 18px 12px 12px;animation:2.4s forwards announce-in;display:flex;position:absolute;top:46%;left:50%;box-shadow:0 24px 50px #00000073,inset 0 1px #ffffff0d}.felt-table.is-announcing .table-center{opacity:0;transition:opacity .16s}.table-announce:before{content:"";z-index:-1;background:radial-gradient(circle,#b8f36b2e,#0000 66%);border-radius:50%;position:absolute;inset:-44px}.announce-card{background:linear-gradient(150deg,#fffefa,#f0eee4);border:1px solid #d3dccd;border-radius:6px;flex-shrink:0;place-items:center;width:44px;height:60px;display:grid;position:relative;box-shadow:0 6px 14px #00000059}.announce-card>span{font-size:30px;line-height:1}.announce-red{color:#c33f4b}.announce-black{color:#18211b}.announce-crown{color:var(--gold);background:radial-gradient(circle at 50% 40%,#e9c98b4d,#12251a);border-color:#e9c98b66}.announce-copy{flex-direction:column;gap:2px;display:flex}.announce-copy>span{letter-spacing:.16em;color:#a9c58c;font-size:9px;font-weight:850}.announce-copy strong{color:#f0f8ea;letter-spacing:-.03em;font-size:17px}.announce-copy small{color:#a9bbad;font-size:10.5px}.announce-pair{border-color:#e9c98b6b}.announce-pair .announce-copy>span{color:var(--gold)}.announce-pair:before{background:radial-gradient(circle,#e9c98b33,#0000 66%)}.announce-reverse{color:var(--gold);background:radial-gradient(circle at 50% 40%,#e9c98b47,#12251a);border-color:#e9c98b80}.announce-reverse>span{font-size:28px;font-weight:900}.announce-reverse i{background:var(--gold);color:#1b2a1c;border-radius:3px;padding:0 2px;font-size:8px;font-style:normal;font-weight:900;position:absolute;bottom:4px;right:4px}.announce-reverse .announce-copy>span{color:var(--gold)}.announce-reverse:before{background:radial-gradient(circle,#e9c98b33,#0000 66%)}@keyframes announce-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.94)}10%{opacity:1;transform:translate(-50%,-50%)scale(1)}82%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-54%)scale(.98)}}.playing-card{width:64px;height:90px;color:var(--card-ink);background:linear-gradient(145deg,#fffefa,#f2f0e7);border:1px solid #d8dfd6;border-radius:8px;flex-shrink:0;padding:0;transition:transform .15s,box-shadow .15s,opacity .15s;display:block;position:relative;box-shadow:0 4px 10px #0003,inset 0 0 0 1px #fff}.playing-card:not(.card-back):after{content:"";pointer-events:none;border:1px solid #18211b17;border-radius:5px;position:absolute;inset:3px}.card-corner{flex-direction:column;align-items:center;gap:0;font-size:10px;font-weight:800;line-height:1;display:flex;position:absolute;top:5px;left:6px}.card-corner strong{letter-spacing:-.07em;font-size:14px}.card-corner span{margin-top:1px;font-size:9px}.corner-bottom{inset:auto 6px 5px auto;transform:rotate(180deg)}.card-center-suit{opacity:.94;text-shadow:0 1px #ffffffb3;place-items:center;font-size:34px;display:grid;position:absolute;inset:0}.playing-card.card-compact{border-radius:6px;width:50px;height:70px}.card-compact .card-corner{font-size:8px;top:4px;left:4px}.card-compact .card-corner strong{font-size:11px}.card-compact .card-corner span{font-size:7px}.card-compact .corner-bottom{inset:auto 4px 4px auto}.card-compact .card-center-suit{font-size:26px}.card-back{background:linear-gradient(140deg,#1d5138,#103425);border-color:#b9cbb8;place-items:center;padding:4px;display:grid;overflow:hidden}.back-pattern{background:radial-gradient(circle,#dff3d624 0 26%,#0000 27%),repeating-linear-gradient(45deg,#dff3d617 0 2px,#0000 2px 6px),repeating-linear-gradient(-45deg,#dff3d617 0 2px,#0000 2px 6px);border:1px solid #dff3d68c;border-radius:3px;place-items:center;width:100%;height:100%;display:grid}.back-pattern span{color:#eaf8e0d9;letter-spacing:.05em;background:#071a0f80;border:1px solid #e4f6d76b;border-radius:3px;padding:3px 4px;font-size:8px;font-weight:900}.card-playable{cursor:pointer;border-color:#f2f5de;box-shadow:0 4px 10px #00000030,0 0 0 1px #b8f36b4d}.card-playable:hover:not(:disabled){box-shadow:0 12px 16px #0000003b, 0 0 0 2px var(--green);transform:translateY(-7px)}.card-disabled{opacity:.55;filter:grayscale(.18)}.playing-card:disabled{cursor:not-allowed}.button-primary,.button-secondary,.button-quiet{cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:13px;font-weight:760;line-height:1;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.button-primary{color:var(--green-ink);background:var(--green);border:1px solid var(--green-2);box-shadow:0 1px #0000002e}.button-primary:hover:not(:disabled){background:var(--green-2)}.button-primary:disabled{opacity:.5}.button-secondary{color:#d1ddd3;border:1px solid var(--line-strong);background:#16241b}.button-secondary:hover:not(:disabled){color:#f1f8ef;background:#1d3024}.button-quiet{color:#cbe7ac;background:0 0;border:1px solid #0000;padding:0 8px}.button-quiet:hover{color:#e6ffc9;background:#b8f36b0f}.pass-button{padding-left:16px;padding-right:16px}.trick-result{background:linear-gradient(120deg,#233a27ad,#122017eb);border:1px solid #b8f36b3d;border-radius:13px;align-items:center;gap:14px;margin-top:11px;padding:12px 14px;display:flex}.trick-result-copy{flex:1;min-width:0}.trick-result-kicker{letter-spacing:.12em;text-transform:uppercase;color:#a9c58c;font-size:9.5px;font-weight:850;display:block}.trick-result-copy strong{color:#edf6e8;margin-top:2px;font-size:14.5px;display:block}.trick-result-copy small{color:#a9bbad;margin-top:2px;font-size:12px;display:block}.pair-declare{color:#f1d59c;background:#e9c98b12;border-color:#e9c98b52}.pair-declare:hover{background:#e9c98b1f}.stake-panel{background:linear-gradient(120deg,#48391957,#181e15e6);border:1px solid #e9c98b3d;border-radius:14px;align-items:center;gap:18px;margin-top:11px;padding:15px 16px;display:flex}.stake-copy{flex:1;min-width:0}.stake-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:9.5px;font-weight:850;display:block}.stake-copy h2{letter-spacing:-.03em;margin:2px 0 3px;font-size:18px}.stake-copy p{color:#b7b39d;max-width:62ch;margin:0;font-size:13px;line-height:1.5}.stake-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.trump-chooser{border:1px solid var(--line);background:linear-gradient(140deg,#121f17f5,#0e1812f5);border-radius:14px;margin-top:11px;padding:14px}.action-copy{display:block}.action-copy h3{letter-spacing:-.02em;margin:0 0 3px;font-size:15px;font-weight:750}.action-copy p{color:#aabbb0;margin:0;font-size:12.5px;line-height:1.5}.suit-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:11px;display:grid}.suit-choice{color:#e0eae1;cursor:pointer;background:#ffffff08;border:1px solid #d5e5d524;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:78px;padding:9px 6px;font-size:12px;font-weight:700;transition:background .16s,border-color .16s;display:flex}.suit-choice:hover{background:#b8f36b12;border-color:#b8f36b5c}.suit-choice .suit-choice-symbol{font-size:28px;line-height:1}.suit-choice .choice-arrow{color:#9db2a0;align-items:center;gap:3px;margin-top:1px;font-size:10px;font-weight:650;display:inline-flex}.seventh-choice{color:#d8efc0;text-align:left;cursor:pointer;background:#b8f36b0a;border:1px dashed #b8f36b47;border-radius:9px;align-items:center;gap:10px;width:100%;margin-top:8px;padding:10px 12px;display:flex}.seventh-choice:hover{background:#b8f36b14}.seventh-choice-icon{width:30px;height:30px;color:var(--green);background:#b8f36b17;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.seventh-choice>span:nth-child(2){flex:1;min-width:0}.seventh-choice strong{font-size:13px;display:block}.seventh-choice small{color:#a9bbad;margin-top:2px;font-size:11.5px;line-height:1.4;display:block}.reverse-choice{color:#f3ddb2;background:#e9c98b0d;border-color:#e9c98b61}.reverse-choice:hover{background:#e9c98b1a}.reverse-choice-icon{color:var(--gold);background:#e9c98b24;font-size:13px;font-weight:900}.match-contract.is-reverse .contract-mini{border-color:#e9c98bbf}.decision-dock{border:1px solid var(--line);background:linear-gradient(150deg,#14231b,#101a15);border-radius:15px;margin-top:11px;padding:13px 15px 14px;transition:border-color .18s,box-shadow .18s}.decision-dock.dock-active{border-color:#b8f36b4d;box-shadow:0 0 0 1px #b8f36b0a,0 16px 36px #00000029}.dock-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.dock-title{align-items:center;gap:8px;display:flex}.dock-title svg{color:var(--green)}.dock-title h2{letter-spacing:-.02em;margin:0;font-size:15.5px;font-weight:760}.dock-count{border:1px solid var(--line);color:#a3b5a7;font-variant-numeric:tabular-nums;border-radius:5px;padding:2px 6px;font-size:10.5px}.dock-actions{align-items:center;gap:5px;margin-left:auto;display:flex}.dock-actions .button-quiet,.dock-actions .button-secondary{min-height:32px;padding:0 9px;font-size:12px}.dock-help{color:#a4b6a8;margin:3px 0 0;font-size:12.5px;line-height:1.45}.dock-coach{margin-top:11px}.dock-coach-mobile{display:none}.hand-cards{justify-content:center;align-items:flex-end;gap:8px;min-height:116px;padding:15px 2px 3px;display:flex}.hand-cards-empty{align-items:center;min-height:64px;padding-top:8px}.hand-card-wrap{flex-direction:column;align-items:center;transition:transform .16s;display:flex;position:relative}.hand-card-wrap.is-playable{margin-top:-5px}.hand-card-wrap.is-muted{opacity:.78}.hand-card-wrap .playing-card{width:clamp(54px,5vw,68px);height:clamp(76px,7vw,96px)}.hand-card-wrap .card-corner{top:5px;left:6px}.hand-card-wrap .corner-bottom{inset:auto 6px 5px auto}.hand-card-wrap .card-center-suit{font-size:clamp(26px,2.4vw,34px)}.empty-hand{text-align:center;color:#9bad9f;width:100%;padding:22px;font-size:14px}.seventh-note{color:#c9b98f;background:#e9c98b0b;border:1px dashed #e9c98b3d;border-radius:8px;align-items:flex-start;gap:7px;margin-top:9px;padding:8px 10px;font-size:11.5px;line-height:1.5;display:flex}.seventh-note svg{color:var(--gold);flex-shrink:0;margin-top:1px}.seventh-note b{color:#f1ddb0}.action-bar{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:10px;padding-top:12px;display:flex}.action-copy{min-width:0}.action-copy h3{margin:0 0 2px;font-size:15px}.action-copy p{color:#a4b6a8;max-width:46ch;margin:0;font-size:12.5px;line-height:1.45}.action-advice{color:#cfe8b4;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;font-weight:650;display:inline-flex}.action-advice .turn-dot{background:var(--green)}.action-advice .turn-dot.is-idle{background:#7f9382}.bid-controls{flex-shrink:0;align-items:flex-end;gap:7px;display:flex}.bid-select-wrap{flex-direction:column;gap:3px;display:flex}.bid-select-wrap span{color:#9fb2a2;letter-spacing:.1em;font-size:9.5px;font-weight:850}.bid-select-wrap select{border:1px solid var(--line-strong);color:#e8f2e6;background:#17261c;border-radius:8px;outline:none;min-width:108px;min-height:40px;padding:0 9px;font-size:13.5px}.waiting-strip{border-top:1px solid var(--line);color:#b4c4b6;align-items:center;gap:9px;margin-top:10px;padding:11px 0 0;font-size:12.5px;display:flex}.waiting-strip>svg{color:var(--gold);flex-shrink:0}.waiting-strip>span:nth-child(2){flex:1}.thinking-dots{gap:3px;display:inline-flex}.thinking-dots i{background:#a8c491;border-radius:50%;width:4px;height:4px;animation:1s ease-in-out infinite pulse}.thinking-dots i:nth-child(2){animation-delay:.12s}.thinking-dots i:nth-child(3){animation-delay:.24s}@keyframes pulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.play-footer-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.coach-feed{flex-direction:column;gap:9px;display:flex}.coach-feed-nav{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding-bottom:8px;display:flex}.coach-feed-count{text-align:center;color:#b9cbbb;font-variant-numeric:tabular-nums;min-width:42px;font-size:10.5px;font-weight:750}.coach-feed-count i{color:#6f8477;padding:0 2px;font-style:normal}.coach-nav{border:1px solid var(--line);color:#c8d7ca;cursor:pointer;background:#ffffff09;border-radius:7px;flex-shrink:0;place-items:center;width:28px;height:28px;transition:background .15s,border-color .15s,opacity .15s;display:grid}.coach-nav:hover:not(:disabled){color:#e4f7d2;background:#b8f36b17;border-color:#b8f36b52}.coach-nav:disabled{opacity:.3;cursor:default}.coach-live{color:#9fbd83;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:5px;margin-left:auto;font-size:9.5px;font-weight:850;display:inline-flex}.coach-live i{background:var(--green);border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 3px #b8f36b1a}.coach-latest{color:#d8f3b5;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:#b8f36b12;border:1px solid #b8f36b3d;border-radius:5px;margin-left:auto;padding:4px 7px;font-size:9.5px;font-weight:850}.coach-latest:hover{background:#b8f36b1f}.coach-insight{flex-direction:column;gap:8px;display:flex}.inline-coach-head{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.coach-tag{letter-spacing:.09em;color:#b9cbbc;border:1px solid var(--line);background:#ffffff0e;border-radius:4px;align-items:center;gap:4px;padding:3px 6px;font-size:9.5px;font-weight:850;display:inline-flex}.tone-good .coach-tag{color:#d6f3b2;background:#b8f36b1a;border-color:#b8f36b3d}.tone-warn .coach-tag{color:#f4d9a0;background:#e5c27d1a;border-color:#e5c27d3d}.tone-danger .coach-tag{color:#ffc0bb;background:#f17b791a;border-color:#f17b7942}.coach-confidence{color:#93a796;letter-spacing:.03em;font-size:9.5px;font-weight:750}.coach-insight-title{color:#eaf4e7;letter-spacing:-.015em;margin:0;font-size:15px;font-weight:750;line-height:1.35}.coach-summary{color:#b6c7b8;margin:0;font-size:13px;line-height:1.55}.coach-bullets{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.coach-bullets li{color:#aebfb1;padding-left:15px;font-size:12.5px;line-height:1.5;position:relative}.coach-bullets li:before{content:"";background:#b8f36b85;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:1px}.coach-action{color:#dcf5c3;background:#b8f36b14;border:1px solid #b8f36b33;border-radius:7px;align-self:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12.5px;font-weight:700;display:inline-flex}.coach-action strong{color:#eaffd2}.coach-reco{color:#cfe9b6;background:#b8f36b0d;border:1px dashed #b8f36b40;border-radius:7px;align-items:flex-start;gap:7px;padding:7px 9px;font-size:11.5px;line-height:1.5;display:flex}.coach-reco svg{flex-shrink:0;margin-top:1px}.coach-reading{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.coach-reading li{color:#b0c1b2;padding-left:15px;font-size:12.5px;line-height:1.5;display:block;position:relative}.coach-reading li:before{content:"";background:#b8f36b6b;border-radius:50%;width:5px;height:5px;position:absolute;top:.58em;left:1px}.coach-reading li b{color:#e2efdc;font-weight:750}.rail-panel{border:1px solid var(--line);background:#ffffff06;border-radius:13px;min-width:0;padding:13px}.rail-panel-coach{background:#b8f36b07;border-color:#b8f36b2b}.rail-panel-coach .coach-insight-title{font-size:15.5px}.rail-head{justify-content:space-between;align-items:center;gap:9px;margin-bottom:8px;display:flex}.rail-head h2{letter-spacing:.1em;text-transform:uppercase;color:#a9bbac;margin:0;font-size:10.5px;font-weight:850}.rail-head svg{color:#8fa394}.rail-count{color:#8fa394;font-variant-numeric:tabular-nums;font-size:10.5px}.rail-footnote{color:#91a494;align-items:center;gap:5px;margin:9px 0 0;font-size:10.5px;display:flex}.event-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.event-row{border-bottom:1px solid var(--line);gap:8px;padding:7px 0;display:flex}.event-row:last-child{border-bottom:0}.event-row p{color:#a9baab;margin:0;font-size:12px;line-height:1.45}.event-current p{color:#e4efe1}.event-bullet{background:#5f7465;border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:6px}.event-current .event-bullet{background:var(--green)}.stats-list{flex-direction:column;gap:7px;margin:0;display:flex}.stats-list>div{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.stats-list dt{color:#9fb1a3;font-size:12px}.stats-list dd{font-variant-numeric:tabular-nums;margin:0;font-size:13.5px;font-weight:750}.stat-sub{color:#91a494;font-size:10.5px;font-weight:500}.link-button{color:#cfe8b4;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:10px;padding:3px 0;font-size:12px;font-weight:700;display:inline-flex}.link-button svg:last-child{color:#8fa394}.link-button:hover{color:#e6ffc9}.rank-row{gap:3px;display:flex}.rank-row span{border:1px solid var(--line);color:#dfe9dc;background:#ffffff08;border-radius:4px;flex:1;place-items:center;padding:4px 0;font-size:11px;font-weight:800;display:grid}.rail-copy{color:#a4b6a8;margin:8px 0 0;font-size:11.5px;line-height:1.5}.review-screen{width:100%}.review-topline{justify-content:space-between;align-items:flex-start;gap:18px;margin:0 0 15px;display:flex}.review-topline h2{letter-spacing:-.045em;margin:0 0 5px;font-size:2rem;line-height:1.1}.review-meta{letter-spacing:.03em;color:#9fb1a3;margin:6px 0 0;font-size:12px}.review-subtitle{color:#a9bbad;max-width:64ch;margin:7px 0 0;font-size:13.5px;line-height:1.55}.review-top-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.result-stamp{white-space:nowrap;letter-spacing:.06em;border:1px solid;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;font-size:10.5px;font-weight:850;display:inline-flex}.result-good{color:#d3f4ac;background:#b8f36b12;border-color:#b8f36b3d}.result-bad{color:#ffb3ac;background:#f17b7912;border-color:#f17b793d}.stake-chip{background:#0000002e;border-radius:4px;margin-left:2px;padding:1px 4px;font-size:10px}.review-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:9px;display:grid}.review-stat{border:1px solid var(--line);background:linear-gradient(135deg,#17261c,#111d16);border-radius:11px;min-width:0;padding:11px 12px}.review-stat>span{color:#9fb1a3;font-size:11.5px;display:block}.review-stat>strong{color:#eef6ea;letter-spacing:-.05em;margin-top:4px;font-size:26px;line-height:1.15;display:block}.review-stat>strong small{color:#a4b6a6;letter-spacing:0;font-size:13px;font-weight:600}.review-stat>small{color:#9bad9e;margin-top:4px;font-size:11.5px;line-height:1.4;display:block}.review-modifiers{color:#9fb1a3;flex-wrap:wrap;gap:6px 16px;margin-bottom:12px;font-size:11.5px;display:flex}.review-modifiers span{white-space:nowrap}.review-main-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.review-panel{border:1px solid var(--line);background:linear-gradient(150deg,#14231a,#101a15);border-radius:13px;min-width:0;padding:14px}.panel-heading{align-items:center;gap:9px;margin-bottom:12px;display:flex}.panel-icon{border:1px solid var(--line);border-radius:8px;place-items:center;width:31px;height:31px;display:grid}.gold-icon{color:var(--gold);background:#e5c27d12;border-color:#e5c27d2b}.green-icon{color:var(--green);background:#b8f36b0f;border-color:#b8f36b29}.panel-heading h3{margin:0;font-size:14.5px;font-weight:760}.panel-heading p{color:#9caea0;margin:2px 0 0;font-size:11.5px}.no-mistakes{text-align:center;background:#ffffff04;border:1px dashed #bed5c326;border-radius:10px;padding:22px 12px 18px}.success-orbit{width:42px;height:42px;color:var(--green);background:#b8f36b12;border:1px solid #b8f36b38;border-radius:50%;place-items:center;margin:0 auto 10px;display:grid}.no-mistakes h4{margin:0;font-size:14.5px}.no-mistakes p{color:#a2b4a5;max-width:380px;margin:6px auto 0;font-size:12px;line-height:1.55}.feedback-list{flex-direction:column;gap:8px;display:flex}.feedback-item{background:#f17b790a;border:1px solid #f17b7929;border-radius:9px;gap:9px;padding:10px;display:flex}.feedback-efficiency{background:#e5c27d0a;border-color:#e5c27d2b}.feedback-good{background:#b8f36b0a;border-color:#b8f36b2b}.feedback-icon{color:#ffa8a0;background:#f17b791a;border-radius:7px;flex-shrink:0;place-items:center;width:27px;height:27px;display:grid}.feedback-efficiency .feedback-icon{color:var(--gold);background:#e5c27d17}.feedback-good .feedback-icon{color:var(--green);background:#b8f36b17}.feedback-item>div:nth-child(2){flex:1;min-width:0}.feedback-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px;display:flex}.feedback-kicker{color:#b0a48f;letter-spacing:.1em;font-size:10px;font-weight:850}.feedback-tag{color:#ffb8b1;background:#f17b7917;border-radius:4px;padding:2px 5px;font-size:10px}.feedback-efficiency .feedback-tag{color:#f3d79f;background:#e5c27d17}.feedback-good .feedback-tag{color:#d8f3b5;background:#b8f36b17}.feedback-item h4{color:#eaf2e7;margin:5px 0 3px;font-size:13.5px}.feedback-item p{color:#b0c0b2;margin:0;font-size:12px;line-height:1.5}.inline-link{color:#cdecaa;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-top:6px;padding:2px 0;font-size:11.5px;font-weight:750;display:inline-flex}.inline-link:hover{color:#e3ffc4}.lesson-callout{color:var(--green);background:#b8f36b0b;border:1px solid #b8f36b24;border-radius:9px;align-items:flex-start;gap:9px;margin-top:11px;padding:11px;display:flex}.lesson-callout>svg{flex-shrink:0;margin-top:1px}.lesson-callout strong{color:#dcf0c9;font-size:12.5px}.lesson-callout p{color:#b3c4b3;margin:3px 0 0;font-size:12px;line-height:1.55}.contract-note{color:#a0b2a3;align-items:flex-start;gap:7px;margin-top:9px;font-size:11.5px;line-height:1.5;display:flex}.contract-note svg{color:#a8c496;flex-shrink:0}.bid-review{border:1px solid var(--line);background:#ffffff06;border-radius:9px;gap:9px;margin-bottom:9px;padding:10px;display:flex}.bid-review-good{background:#b8f36b0d;border-color:#b8f36b33}.bid-review-aggressive{background:#f17b790b;border-color:#f17b7933}.bid-review-timid{background:#e5c27d0b;border-color:#e5c27d33}.bid-review-icon{width:29px;height:29px;color:var(--gold);background:#e5c27d1a;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.bid-review-good .bid-review-icon{color:var(--green);background:#b8f36b1a}.bid-review-aggressive .bid-review-icon{color:#ffa8a0;background:#f17b791a}.bid-review h4{color:#eaf2e7;margin:1px 0 3px;font-size:13.5px}.bid-review p{color:#b0c0b2;margin:0;font-size:12px;line-height:1.5}.bid-review-meta{color:#9fb1a3;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:10.5px;font-weight:700;display:flex}.bid-review-meta b{color:#e2efdc}.review-insights{border:1px solid var(--line);background:#ffffff06;border-radius:9px;margin-top:11px;padding:10px}.review-insights h4{letter-spacing:.09em;color:#a8bbab;text-transform:uppercase;margin:0 0 7px;font-size:10.5px;font-weight:850}.review-insights ul{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.review-insights li{color:#b0c1b2;padding-left:15px;font-size:12px;line-height:1.5;position:relative}.review-insights li:before{content:"";background:#b8f36b80;border-radius:50%;width:5px;height:5px;position:absolute;top:6px;left:1px}.review-insights li b{color:#e6f1e1}.trick-timeline{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.trick-chip{border:1px solid var(--line);color:#e2ece0;text-align:left;cursor:pointer;background:#ffffff06;border-radius:8px;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;min-height:78px;padding:8px;display:flex}.trick-chip:hover{border-color:#b8f36b47}.trick-chip.selected{background:#b8f36b14;border-color:#b8f36b73;box-shadow:inset 0 0 0 1px #b8f36b0f}.trick-chip-num{color:#9eb0a0;letter-spacing:.09em;font-size:10px;font-weight:850}.trick-chip-winner{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11.5px;font-weight:750;overflow:hidden}.trick-chip strong{letter-spacing:-.03em;font-size:17px}.trick-chip strong small{color:#a0b2a2;font-size:10px;font-weight:500}.trick-chip-mark{color:#9aac9c;letter-spacing:.06em;font-size:9.5px}.selected-trick-detail{border-top:1px solid var(--line);margin-top:11px;padding-top:11px}.selected-trick-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.selected-trick-head h4{margin:3px 0 0;font-size:14px}.detail-label{letter-spacing:.1em;color:#a9bbac;font-size:9.5px;font-weight:850;display:block}.trick-won-badge{color:#c9eea3;white-space:nowrap;background:#b8f36b14;border:1px solid #b8f36b2e;border-radius:4px;padding:4px 7px;font-size:10px}.review-plays{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding-top:10px;display:grid}.review-play{background:#ffffff08;border:1px solid #ffffff0a;border-radius:7px;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:7px 2px;display:flex}.review-play-player{color:#b3c5b5;text-align:center;white-space:nowrap;font-size:10.5px;font-weight:700}.review-play-order{color:#8ea292;letter-spacing:.07em;font-size:9px;font-weight:850}.trick-explainer{color:#a4b6a7;margin:9px 0 0;font-size:11.5px;line-height:1.5}.review-footer{justify-content:space-between;align-items:center;gap:12px;padding:11px 1px 0;display:flex}.review-footer-copy{color:#8fa394;align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.review-footer-copy svg{color:var(--green)}.review-actions{align-items:center;gap:6px;display:flex}.move-analysis-panel,.deep-review-panel{background:linear-gradient(145deg,#15241afa,#0d1711fa);border:1px solid #b8f36b33;border-radius:13px;margin-top:12px;padding:14px}.analysis-panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.analysis-panel-heading h3{color:#eaf3e6;letter-spacing:-.025em;margin:3px 0 0;font-size:16px;line-height:1.3}.analysis-sample-pill{color:var(--green);background:#b8f36b12;border:1px solid #b8f36b29;border-radius:5px;flex-shrink:0;padding:4px 7px;font-size:10.5px;font-weight:800}.analysis-intro{color:#b0c1b2;margin:7px 0 11px;font-size:12px;line-height:1.55}.move-estimate-list,.deep-review-list{flex-direction:column;gap:7px;display:flex}.move-estimate-row{background:#ffffff06;border:1px solid #ffffff12;border-radius:9px;align-items:center;gap:10px;padding:9px;display:flex}.move-estimate-best{background:#b8f36b0e;border-color:#b8f36b4d}.move-estimate-card{color:#1a211b;background:#f7f5eb;border-radius:6px;flex-shrink:0;place-items:center;width:40px;height:48px;font-size:15px;font-weight:850;display:grid;box-shadow:0 2px 6px #00000029}.move-estimate-detail{flex:1;min-width:0}.move-estimate-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.move-estimate-top strong{color:#eaf3e6;font-size:12.5px}.move-estimate-top span{color:var(--green);font-variant-numeric:tabular-nums;font-size:15px;font-weight:850}.move-estimate-track{background:#ffffff17;border-radius:99px;height:4px;margin:5px 0;overflow:hidden}.move-estimate-track i{border-radius:inherit;background:var(--green);height:100%;display:block}.move-estimate-detail small{color:#a2b4a5;font-size:10.5px;line-height:1.45}.analysis-best-tag{max-width:80px;color:var(--green);letter-spacing:.06em;text-align:right;flex-shrink:0;font-size:9px;font-weight:900;line-height:1.35}.analysis-footnotes{gap:5px;margin-top:9px;display:grid}.analysis-footnotes p,.analysis-caveat{color:#9fb2a2;margin:0;font-size:11px;line-height:1.55}.review-coach-heading{flex-wrap:wrap;align-items:center}.deep-analyze-button{margin-left:auto}.analysis-spin{animation:1.2s linear infinite analysis-spin}@keyframes analysis-spin{to{transform:rotate(360deg)}}.deep-review-panel{background:#ffffff05;border-color:#b8f36b29;padding:12px}.deep-review-item{background:#00000017;border:1px solid #ffffff12;border-radius:9px;padding:10px}.deep-review-actionable{background:#e5c27d09;border-color:#e5c27d42}.deep-review-item-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px;margin-bottom:5px;display:flex}.deep-review-item>strong{color:#eaf3e6;font-size:12.5px;line-height:1.5;display:block}.deep-review-item>p{color:#acbeae;margin:4px 0 1px;font-size:11.5px;line-height:1.5}.deep-confidence{letter-spacing:.02em;font-size:10px;font-weight:800}.confidence-strong{color:#f0cd88}.confidence-suggestive{color:#cfe4ab}.confidence-close{color:#a2b6a5}.analysis-caveat{margin-top:9px}.analysis-error{color:#ffb7b1;background:#f17b790f;border:1px solid #f17b7938;border-radius:7px;padding:9px 11px;font-size:12.5px;line-height:1.5}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#020805c7;place-items:center;padding:18px;animation:.18s ease-out fade-in;display:grid;position:fixed;inset:0}.modal-card{background:#111e16;border:1px solid #c5dec733;border-radius:17px;width:min(620px,100%);max-height:min(88vh,920px);overflow-y:auto;box-shadow:0 22px 80px #00000073}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:17px 19px 14px;display:flex}.eyebrow{color:#a5b8a8;letter-spacing:.13em;margin:0;font-size:10px;font-weight:850}.modal-head h2{letter-spacing:-.05em;margin:5px 0 0;font-size:25px;line-height:1.15}.guide-content{padding:14px 19px 4px}.guide-intro{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.guide-large-icon{width:36px;height:36px;color:var(--green);background:#b8f36b14;border:1px solid #b8f36b26;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.guide-intro p{color:#a4b5a5;margin:0;font-size:13px;line-height:1.6}.guide-rule{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.guide-rule>span{width:23px;height:23px;color:var(--green);background:#b8f36b0f;border:1px solid #b8f36b21;border-radius:6px;flex-shrink:0;place-items:center;font-size:11px;font-weight:850;display:grid}.guide-rule h3{margin:0 0 3px;font-size:13.5px}.guide-rule p{color:#8ea292;margin:0;font-size:12px;line-height:1.55}.guide-rule p strong{color:#dce9da}.guide-footnote{color:#bba777;background:#e5c27d0e;border-radius:7px;align-items:flex-start;gap:6px;margin:7px 0 10px;padding:9px;font-size:11.5px;line-height:1.5;display:flex}.guide-footnote svg{flex-shrink:0;margin-top:1px}.modal-bottom{border-top:1px solid var(--line);justify-content:flex-end;padding:10px 19px 16px;display:flex}.settings-content{padding:14px 19px 16px}.settings-group{margin-bottom:14px}.settings-group-title{color:#a9bbac;letter-spacing:.11em;text-transform:uppercase;margin:0 0 2px;font-size:10px;font-weight:850}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.setting-row:last-child{border-bottom:0}.setting-copy strong{font-size:13.5px}.setting-copy p{color:#8ea293;max-width:420px;margin:3px 0 0;font-size:12px;line-height:1.5}.toggle{cursor:pointer;background:0 0;border:0;flex-shrink:0;width:46px;height:44px;padding:0;position:relative}.toggle:before{content:"";background:#24352a;border:1px solid #455a49;border-radius:999px;height:26px;transition:background .18s,border-color .18s;position:absolute;top:50%;left:1px;right:1px;transform:translateY(-50%)}.toggle span{z-index:1;background:#8ea08e;border-radius:50%;width:16px;height:16px;transition:transform .18s,background .18s;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.toggle-on:before{background:#5c8c3e;border-color:#81b65a}.toggle-on span{background:#edffda;transform:translate(18px,-50%)}.settings-note{border:1px solid var(--line);color:#8da090;border-radius:8px;align-items:flex-start;gap:7px;margin-top:12px;padding:9px;font-size:11.5px;line-height:1.5;display:flex}.settings-note svg{color:var(--green);flex-shrink:0}.settings-summary{border-top:1px solid var(--line);grid-template-columns:92px minmax(0,1fr);gap:6px 9px;margin-top:12px;padding-top:11px;font-size:11.5px;display:grid}.settings-summary span{color:#7f9384}.settings-summary strong{color:#dbe8d8;font-size:11.5px;font-weight:650}.site-footer{color:#7f9384;letter-spacing:.03em;border-top:1px solid #bed5c312;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;padding:12px 24px 14px;font-size:10.5px;display:flex}.site-footer span:first-child{letter-spacing:.12em;white-space:nowrap;font-weight:850}.site-footer span:nth-child(2){text-align:center}.site-footer span:last-child{color:#6f8477;white-space:nowrap}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width<=1180px){.app-layout{grid-template-columns:minmax(0,1fr);max-width:940px}.right-rail{flex-direction:column;align-items:stretch;gap:12px;display:flex}.rail-panel-coach{display:none}.dock-coach-mobile{border-top:1px solid var(--line);margin-top:13px;padding-top:12px;display:block}.dock-coach+.hand-cards,.dock-coach-mobile+.hand-cards{border-top:0;margin-top:10px;padding-top:3px}.felt-table{height:clamp(400px,44vw,450px)}.felt-table.is-bidding{height:430px;min-height:430px}.table-center.is-bidding{top:45%}}@media (width<=980px){.topbar{gap:14px;padding:0 18px}.match-strip{gap:7px}.match-dealer,.brand-text small{display:none}}@media (width<=820px){.app-layout{gap:16px;padding:16px 16px 24px}.table-fact{display:none}.felt-table{height:430px}.felt-table:before{inset:10px}.seat-north{top:14px}.seat-south{bottom:31px}.table-center{width:44%}.table-center.is-bidding{width:72%}.played-west{left:23%}.played-east{left:77%}.played-north{top:29%}.played-south{top:71%}.trick-slot-west{left:23%}.trick-slot-east{left:77%}.trick-slot-north{top:29%}.trick-slot-south{top:71%}.hand-cards{scrollbar-width:thin;justify-content:safe center;gap:0;padding-left:3px;padding-right:3px;overflow-x:auto}.hand-card-wrap{flex:none}.hand-card-wrap+.hand-card-wrap{margin-left:-4px}.action-bar{flex-direction:column;align-items:stretch}.bid-controls{grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;display:grid}.play-footer-actions{width:100%}.play-footer-actions>button{flex:1}.review-main-grid{grid-template-columns:1fr}.review-topline{display:block}.review-topline h2{font-size:1.6rem}.review-top-right{justify-content:flex-start;margin-top:10px}.review-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trick-review-panel{position:static}.stake-panel{flex-direction:column;align-items:stretch;gap:11px}.stake-actions>button{flex:1}.trick-result{flex-wrap:wrap}.trick-result-copy{flex-basis:100%}.trick-result .button-primary,.pair-declare{flex:1}.site-footer{flex-wrap:wrap;padding:12px 16px}.site-footer span:nth-child(2){text-align:left;order:3;width:100%}}@media (width<=940px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;min-height:0;padding:9px 18px}.brand-lockup{grid-area:1/1}.topbar-actions{grid-area:1/2}.match-strip{border-top:1px solid var(--line);flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:flex-start;gap:8px;padding-top:8px}.match-state{margin-left:0}}@media (width<=760px){.tile-copy small{display:none}.top-action{width:38px;padding:0}.top-action span{display:none}.felt-table{height:420px}.felt-table.is-bidding{height:400px;min-height:400px}.table-center.is-bidding{top:44%}.player-seat{gap:6px;width:124px;padding:6px 8px 6px 10px}.seat-avatar{width:27px;height:27px;font-size:11.5px}.seat-name-line strong{font-size:12px}.seat-count{font-size:10px}.seat-fan i{width:5px;height:11px;margin-left:-3px}.table-center{width:42%;min-width:140px}.center-title{font-size:16px}.center-title span{font-size:12px}.center-subtitle{font-size:10.5px}.table-message{max-width:200px;font-size:10.5px}.auction-seats{grid-template-columns:repeat(2,minmax(0,1fr))}.bid-ladder{display:none}.trick-slot{width:40px;height:56px;font-size:8px}.felt-bottom{gap:12px;bottom:10px;left:16px;right:16px}.table-scoreboard,.trump-stash,.felt-contract{grid-template-rows:11px 42px 11px;min-height:64px}.score-stacks,.score-team-labels{grid-template-columns:29px 8px 29px;gap:6px}.score-card-stack{width:29px;height:42px}.score-card strong{font-size:15px}.score-card-pip{font-size:9px}.trump-stash{width:60px}.trump-stash-card{width:31px;height:42px}.table-object-label,.felt-contract-caption,.trump-stash-caption{font-size:8px}.review-stat>strong{font-size:23px}.trick-timeline{gap:5px}.trick-chip{min-height:0;padding:7px 6px}.review-plays{gap:4px}.review-play{padding:6px 2px}.analysis-footnotes p,.analysis-caveat{font-size:10.5px}}@media (width<=680px){.seat-west,.seat-east{border-radius:10px;flex-direction:column;gap:1px;width:48px;min-width:48px;max-width:48px;padding:5px 4px}.seat-west{left:12px}.seat-east{right:12px}.seat-west .seat-name-line,.seat-east .seat-name-line,.seat-west .seat-fan,.seat-east .seat-fan{display:none}.seat-west .seat-copy,.seat-east .seat-copy{flex:0}.seat-west .seat-handline,.seat-east .seat-handline{justify-content:center;margin-top:0}.seat-west .seat-avatar,.seat-east .seat-avatar{width:27px;height:27px}.seat-west .seat-count,.seat-east .seat-count{font-size:9.5px}.seat-west .seat-tokens,.seat-east .seat-tokens{top:-6px;right:-4px}}@media (width<=560px){.brand-mark{border-radius:9px;width:33px;height:33px}.brand-text>div{font-size:15px}.brand-text>div span{display:none}.topbar-actions{gap:5px}.round-icon-button{width:36px;min-height:36px}.match-strip{gap:7px}.score-cluster{padding:3px}.team-score{gap:5px;min-width:58px;padding:2px 5px 2px 2px}.team-token{width:21px;height:21px;font-size:10px}.team-copy span{font-size:8px}.team-copy strong{font-size:14px}.match-tile{gap:5px;min-height:37px;padding:3px 7px 3px 4px}.tile-icon{width:22px;height:27px}.tile-copy>span{font-size:8px}.tile-copy strong{font-size:12px}.contract-mini{width:23px;height:30px}.contract-mini-rank{font-size:10.5px}.contract-mini-suit{font-size:9px}.dealer-token{width:20px;height:20px;font-size:9px}.match-state{padding:5px 8px;font-size:10px}.app-layout{padding-left:10px;padding-right:10px}.felt-table{height:420px}.player-seat{gap:5px;width:116px;padding:5px 7px 5px 9px}.seat-west,.seat-east{width:45px;min-width:45px;max-width:45px;padding:5px 4px}.seat-avatar{width:24px;height:24px;font-size:10.5px}.seat-name-line strong{font-size:11px}.seat-count{font-size:9.5px}.seat-fan i{width:5px;height:10px;margin-left:-3px}.table-center{width:42%;min-width:128px}.table-center.is-bidding{width:76%}.center-logo{border-radius:8px;width:30px;height:30px;margin-bottom:5px;font-size:12px}.center-logo i{margin-top:6px;font-size:9px}.center-title{font-size:14.5px}.center-subtitle,.table-message{font-size:10px}.played-card .playing-card.card-compact{width:40px;height:56px}.played-card .card-compact .card-center-suit{font-size:20px}.played-card .card-compact .card-corner strong{font-size:9px}.played-card .card-compact .card-corner span{font-size:7px}.trick-slot{width:36px;height:50px}.seat-north{top:12px}.seat-south{bottom:29px}.felt-bottom{grid-template-columns:auto auto;justify-content:space-between;gap:10px;bottom:10px;left:16px;right:16px}.felt-bottom .felt-contract{display:none}.score-stacks,.score-team-labels{grid-template-columns:27px 8px 27px;gap:5px}.score-card-stack{width:27px;height:39px}.score-card strong{font-size:14px}.score-card-pip{font-size:8px}.trump-stash{width:54px}.trump-stash-card{width:29px;height:39px}.stash-face strong{font-size:18px}.stash-two{font-size:13px}.table-object-label,.felt-contract-caption,.trump-stash-caption,.score-team-labels span{font-size:7.5px}.hand-card-wrap .playing-card{width:clamp(52px,14vw,62px);height:clamp(72px,19vw,86px)}.hand-card-wrap .card-center-suit{font-size:24px}.decision-dock{padding:11px 11px 12px}.dock-title h2{font-size:14.5px}.dock-help{font-size:11.5px}.bid-controls{grid-template-columns:minmax(0,1fr) auto auto}.action-copy p,.action-advice{font-size:11.5px}.trick-result{padding:10px}.trick-result-copy strong{font-size:13px}.trick-result-copy small{font-size:11px}.stake-copy h2{font-size:16px}.stake-copy p{font-size:12px}.suit-choice-grid{gap:6px}.suit-choice{min-height:70px;padding:7px 3px;font-size:10.5px}.suit-choice .suit-choice-symbol{font-size:24px}.suit-choice .choice-arrow{font-size:9px}.review-stat{padding:9px}.review-stat>strong{font-size:21px}.review-panel{padding:11px}.review-footer{flex-direction:column;align-items:stretch}.review-actions>button{flex:1}.trick-timeline,.review-plays{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-card{border-radius:14px}.modal-head h2{font-size:21px}.settings-summary{grid-template-columns:80px minmax(0,1fr)}.site-footer{font-size:9.5px}.site-footer span:last-child{display:none}}@media (width<=390px){.player-seat{width:108px}.seat-west,.seat-east{width:43px;min-width:43px;max-width:43px}.seat-fan{display:none}.felt-table{height:410px}.center-title{font-size:13.5px}.table-message{max-width:150px}}@media (width<=350px){.match-hand{display:none}.table-center{width:34%;min-width:100px}.played-west,.trick-slot-west{left:25%}.played-east,.trick-slot-east{left:75%}.seat-west{top:10px;left:8px;right:auto;transform:none}.seat-east{top:10px;left:auto;right:8px;transform:none}}@media (width<=700px){.button-primary,.button-secondary,.button-quiet,.top-action,.round-icon-button,.icon-button,.suit-choice,.link-button,.seventh-choice{min-height:44px}.top-action,.round-icon-button,.icon-button{width:44px;min-width:44px;padding:0}.bid-select-wrap select{min-height:44px}.hand-cards{min-height:104px;padding-top:12px}.review-top-right .button-primary{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.turn-dot{animation:none}}@media (prefers-contrast:more){:root{--line:#daecdd47;--line-strong:#daecdd6b;--muted:#c7d5c8}.seat-count,.event-row p,.rail-copy,.table-message,.center-subtitle,.coach-summary{color:#d3e2d4}}@media (width>=1181px){.trick-review-panel{position:sticky;top:16px}}@media (width>=1320px){.deep-review-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px;display:grid}}.topbar{padding-top:max(0px, env(safe-area-inset-top));padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}.app-layout{padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right))}.site-footer{padding-bottom:max(14px, env(safe-area-inset-bottom))}@media (width<=980px){.topbar{padding-left:max(18px, env(safe-area-inset-left));padding-right:max(18px, env(safe-area-inset-right))}}@media (width<=760px){.topbar{padding-top:max(9px, env(safe-area-inset-top));padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right))}.app-layout{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}}@media (width<=560px){.app-layout{padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right))}}
