:root{color-scheme:dark;--bg:#091c18;--panel:#122b24;--ink:#f3efdf;--muted:#a1b4a8;--gold:#e4c68b;--line:#ffffff18;--green:#d5e4b7;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 18% 8%,#23463770,transparent 50%),var(--bg);color:var(--ink);min-height:100vh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input,select{width:100%;border:1px solid #ffffff25;background:#091c18;color:var(--ink);border-radius:10px;padding:14px;min-height:50px;outline:none}input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #e4c68b18}label{display:block;font-size:13px;font-weight:600;color:#d4dfd6}label input,label select{margin-top:9px}input::placeholder{color:#81978b}h1,h2,p{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400}h2{font-size:30px}p{line-height:1.6}small{font-size:12px}.muted{color:var(--muted);font-size:13px;line-height:1.65}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.1px;color:var(--gold);line-height:1.6}.gold-dot,.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);flex-shrink:0}.pulse{background:#a8c5b2;animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.35}}.home-wrap,.page-wrap{max-width:1192px;margin:auto;padding:0 40px}.app-header{height:100px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:15px;letter-spacing:3px}.brand small{display:block;font-size:8px;letter-spacing:2.7px;color:var(--muted);margin-top:5px}.brand-icon{display:grid;place-content:center;border:1px solid #b6a27880;position:relative;width:41px;height:45px;font:28px Georgia;color:var(--gold);border-radius:6px}.brand-icon span{position:absolute;font-size:12px;right:3px;bottom:2px}.icon-button{margin-left:auto;color:var(--gold);border:1px solid #ffffff2a;background:transparent;width:35px;height:35px;border-radius:50%;font-family:Georgia;font-size:20px}.home-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:75px;align-items:center;min-height:690px;padding:56px 0}.hero .eyebrow{display:flex;align-items:center;gap:9px}.hero h1{font-size:clamp(48px,5.2vw,76px);line-height:1.05;letter-spacing:-2.5px;margin:23px 0}.hero h1 em{font-weight:400;color:var(--gold)}.hero>p{font-size:16px;color:#b9c9bd}.hero-cards{display:flex;align-items:center;margin:30px 0 25px 45px;height:195px;isolation:isolate}.hero-cards .playing-card{width:124px;height:177px;min-width:124px;box-shadow:0 15px 32px #0006}.hero-cards .playing-card:nth-child(1){transform:rotate(-17deg) translateY(8px)}.hero-cards .playing-card:nth-child(2){transform:rotate(-2deg);margin-left:-32px;z-index:1}.hero-cards .playing-card:nth-child(3){transform:rotate(14deg) translateY(6px);margin-left:-33px;z-index:2}.suit-signature{display:flex;gap:15px;align-items:center;color:#aebbad;font-family:Georgia;font-size:19px}.suit-signature small{font:8px Arial;letter-spacing:1.3px;color:var(--muted);margin-left:6px}.entry-panel{border:1px solid #e4c68b32;background:linear-gradient(140deg,#203c30,#142c24);padding:34px;border-radius:22px;box-shadow:0 28px 70px #0003}.entry-panel h2{font-size:39px;margin:8px 0 9px}.entry-panel>.muted{margin-bottom:28px}.btn{border:0;border-radius:10px;min-height:49px;padding:14px 20px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:filter .2s,transform .2s;white-space:normal}.btn:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px)}.btn.primary{background:var(--green);color:#173526}.btn.gold{background:var(--gold);color:#2c281d}.btn.secondary{background:#ffffff09;color:var(--ink);border:1px solid #ffffff2c}.btn:disabled{opacity:.4}.btn.full{width:100%}.entry-panel .primary{margin-top:18px;justify-content:space-between}.divider{position:relative;text-align:center;color:#94a99b;font-size:9px;letter-spacing:1.5px;margin:28px 0}.divider:before{content:'';position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--line)}.divider span{background:#193329;position:relative;padding:0 12px}.join-fields{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;align-items:end}.join-fields input{letter-spacing:3px;font-weight:700;min-width:0;text-transform:uppercase}.entry-foot{border-top:1px solid var(--line);padding-top:22px;margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:10px}.entry-foot>span{font-size:10px;color:var(--muted)}.text-button{border:0;background:none;color:var(--gold);font-size:12px;padding:8px 0;font-weight:600;text-align:left}.home-footer{padding:22px 0;border-top:1px solid var(--line);font-size:9px;letter-spacing:1.5px;color:var(--muted);display:flex;justify-content:space-between}.home-footer span{font-family:Georgia;font-style:italic;font-size:13px;letter-spacing:0}.notice{padding:14px 16px;background:#e4c68b15;border:1px solid #e4c68b40;border-radius:10px;color:#f5d49b;font-size:13px;margin:16px 0;line-height:1.6}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:35px 0 26px}.page-title h1{font-size:42px;margin-top:7px}.connection{border:1px solid #ffffff26;padding:8px 12px;border-radius:20px;font-size:11px;color:var(--muted)}.connection.online{color:#d5e4b7;border-color:#d5e4b750}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{background:linear-gradient(150deg,#1a342b,#10271f);border:1px solid var(--line);border-radius:18px;padding:27px}.invite-panel{text-align:center;display:flex;flex-direction:column;justify-content:center}.room-code{font-size:65px;letter-spacing:14px;font-family:Georgia;color:var(--gold);margin:15px 0 8px;padding-left:14px}.invite-panel>p{font-size:13px;color:var(--muted);max-width:350px;margin:0 auto 20px}.button-row{display:flex;gap:10px;justify-content:center}.invite-url{text-align:left;color:var(--muted);font-size:11px;margin-top:20px}.invite-url input{font-size:11px;color:#bbcdbf;min-height:36px;padding:10px}.tip{border-top:1px solid var(--line);margin-top:20px;padding-top:20px;display:flex;gap:12px;text-align:left;color:var(--muted);font-size:12px}.tip>span{color:var(--gold);font-size:24px}.tip b{color:var(--ink)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.section-heading h2{font-size:25px}.count-badge{border-radius:20px;border:1px solid var(--line);font-size:12px;padding:8px 12px;color:var(--gold)}.roster-row{display:flex;align-items:center;gap:13px;padding:15px 0;border-top:1px solid var(--line);font-size:14px}.avatar{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border:1px solid #b7ccb050;border-radius:50%;background:#304d3c;font-family:Georgia;font-size:20px;color:#d9e4c8;flex-shrink:0}.tone-1{background:#543635;color:#f2c5ac}.tone-2{background:#364452;color:#c5d6ee}.tone-3{background:#544b32;color:#ecdbac}.roster-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:400}.roster-row b small{display:inline}.status-dot{width:6px;height:6px;border-radius:50%;background:#6b746f;margin-left:auto}.status-dot.active{background:#b6d392}.roster-row.empty{color:#83998c}.roster-row.empty .avatar{background:transparent;border-style:dashed;color:#748c7c}.settings-panel{margin-top:22px}.settings-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:18px;margin-top:22px}.check-label{grid-column:1/-1;display:flex;gap:9px;align-items:center;font-size:12px;font-weight:400}.check-label input{width:17px;min-height:17px;height:17px;accent-color:var(--gold);margin:0}.start-row{display:flex;gap:20px;align-items:center;justify-content:space-between;padding-top:20px;border-top:1px solid var(--line);margin-top:20px}.session-note{text-align:center;font-size:11px;color:#92a797;padding:22px 0;line-height:1.7}.waiting-line{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;padding:26px 0;color:#d2dfd1}.game-wrap{max-width:980px;margin:auto;padding:0 32px}.game-wrap .app-header{height:78px}.game-top{display:flex;align-items:center;justify-content:space-between;margin:25px 0 20px}.game-top h1{font-size:36px;margin:4px 0 8px}.game-top p span{padding:0 5px}.trump-chip{background:#f2ecde;border-radius:10px;color:#1b3029;min-width:72px;display:flex;flex-direction:column;align-items:center;padding:8px 12px;gap:2px;box-shadow:0 3px 12px #0003}.trump-chip small{font-size:8px;letter-spacing:2px;color:#586c5a}.trump-chip strong{font-family:Georgia;font-size:25px}.trump-chip>span{font-size:9px;text-transform:capitalize}.opponents{display:flex;justify-content:space-evenly;gap:9px;flex-wrap:wrap;margin-bottom:14px}.opponent{display:flex;flex-direction:column;gap:5px;align-items:center;min-width:84px;padding:10px 12px;border:1px solid transparent;border-radius:14px;max-width:160px}.opponent .avatar{width:37px;height:37px;font-size:19px}.opponent strong{font-size:12px;max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent span:not(.avatar){font-size:10px;color:var(--muted)}.opponent span b{font-weight:400;padding:0 3px}.opponent small{font-size:9px;color:#7f9b89}.opponent.active-turn{background:#e4c68b09;border-color:#e4c68b60}.felt-table{position:relative;border:1px solid #9fc69a33;box-shadow:inset 0 0 0 6px #06181125,inset 0 0 55px #0004;background:radial-gradient(ellipse at center,#305640,#193d2d 75%);border-radius:90px;min-height:266px;padding:23px 30px 22px;display:flex;align-items:center;flex-direction:column;overflow:hidden}.felt-table:before{content:'';position:absolute;inset:12px;border:1px solid #c4d5b41c;border-radius:80px;pointer-events:none}.table-wordmark{position:absolute;top:53%;left:50%;transform:translate(-50%,-50%);font:100px Georgia;color:#e5efd907;letter-spacing:-12px;pointer-events:none}.table-wordmark span{font-size:60px}.table-status{display:flex;align-items:center;gap:9px;font-size:12px;color:#e5eada;z-index:1}.trick-cards{display:flex;justify-content:center;align-items:center;gap:13px;flex-wrap:wrap;position:relative;z-index:1;min-height:167px;margin-top:10px}.played-card{text-align:center}.played-card>small{display:block;font-size:10px;margin-top:7px;color:#dce7d5;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.winning-card .playing-card{box-shadow:0 0 0 3px var(--gold),0 8px 20px #0004}.table-empty{text-align:center;color:#b2cbb8}.table-empty>span{font:25px Georgia;letter-spacing:15px;opacity:.5}.table-empty p{font-size:11px;margin-top:17px}.last-trick{font-size:10px;color:#a5bfa7;margin-top:8px}.playing-card{--suit:#24352d;background:linear-gradient(120deg,#fffdf7,#ece5d5);color:var(--suit);position:relative;width:93px;height:134px;min-width:93px;border:1px solid #d8d2be;border-radius:8px;box-shadow:0 5px 12px #0003;padding:0;display:block;font-family:Georgia;transition:transform .16s,box-shadow .16s;flex-shrink:0}.playing-card.spades{--suit:#273630}.playing-card.hearts{--suit:#b44342}.playing-card.clubs{--suit:#2e755c}.playing-card.diamonds{--suit:#336ead}.hearts{color:#b44342}.clubs{color:#2e755c}.diamonds{color:#336ead}.spades{color:#273630}.card-corner{position:absolute;top:7px;left:7px;display:flex;align-items:center;flex-direction:column;line-height:1;font-size:15px;gap:2px}.card-corner b{font-size:20px;font-weight:400}.card-corner.bottom{transform:rotate(180deg);top:auto;left:auto;bottom:7px;right:7px}.card-center{position:absolute;inset:27px 22px;display:flex;align-items:center;justify-content:center;flex-direction:column}.pip{font-size:43px}.face-card .card-center{inset:23px 22px;border:1px solid #bda66a90;background:repeating-linear-gradient(45deg,#ddcdaa25 0 3px,transparent 3px 9px);border-radius:40% 40% 3px 3px}.court-crown{font-size:18px;color:#a98a45;line-height:1}.court-letter{font-size:30px;line-height:1}.court-suit{font-size:17px}.special-card{border:2px solid #bc9c53}.special-card .six-emblem{font-size:50px;color:#233e2b;line-height:1.2}.special-card .card-center small{font-family:Arial;font-size:5px;white-space:nowrap;letter-spacing:1px;color:#8a6e3a}.mode-label{position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);font:700 7px Arial;letter-spacing:1px;background:#e4c68b;color:#2f3929;border-radius:4px;padding:4px 6px;z-index:2;box-shadow:0 2px 5px #0003}.hand-panel{margin-top:23px}.hand-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.hand-heading h2{font:700 15px Arial;margin-top:5px}.hand-heading h2 small{font-size:10px;color:var(--muted);font-weight:400;margin-left:6px}.my-score{text-align:right}.my-score strong{font-size:25px;font-family:Georgia;font-weight:400;color:var(--gold)}.my-score small{display:block;font-size:8px;letter-spacing:1.4px;color:var(--muted);margin-top:3px}.hand-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:15px 4px 10px}.hand-cards .playing-card:disabled{opacity:.85;cursor:default;box-shadow:0 3px 8px #0003}.hand-cards .playing-card:not(:disabled){box-shadow:0 0 0 2px #c7dca56b,0 6px 12px #0004;cursor:pointer}.hand-cards .playing-card:not(:disabled):hover{transform:translateY(-10px);box-shadow:0 0 0 2px var(--gold),0 12px 22px #0005}.hand-instruction{display:flex;justify-content:space-between;gap:10px;padding:16px 0;color:var(--muted);font-size:11px}.hand-instruction b{color:#d5e4b7;font-weight:400;white-space:nowrap}.bid-panel{border-top:1px solid var(--line);margin-top:13px;padding:17px 0 8px}.bid-panel .section-heading{margin-bottom:13px;font-size:13px}.bid-panel .section-heading small{font-size:10px;color:var(--gold)}.bid-buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.bid-button{border-radius:8px;background:#d7e6be;color:#172e22;border:1px solid #deedca;min-width:43px;min-height:43px;padding:10px 15px;font-size:15px;font-weight:700}.bid-button:disabled{background:#ffffff08;border-color:var(--line);color:#8d9e8a;opacity:.4;text-decoration:line-through}.blind-hand{display:flex;align-items:center;justify-content:center;gap:23px;padding:18px;color:var(--gold)}.blind-hand b{font-family:Georgia;font-size:20px;font-weight:400}.blind-hand p{font-size:12px;color:var(--muted);margin-top:7px}.card-back{display:grid;place-items:center;flex-shrink:0;width:75px;height:105px;background:repeating-linear-gradient(45deg,#193d2f 0 5px,#365744 5px 6px);border:4px solid #ede5d0;border-radius:8px;font:30px Georgia;color:var(--gold)}.score-panel{margin-top:12px;padding:18px 22px}.scores-toggle{display:flex;justify-content:space-between;width:100%;border:0;background:none;color:var(--ink);font-size:13px;font-weight:600;padding:0}.scores-toggle span:last-child{font-size:18px;color:var(--gold)}.score-list{margin-top:12px}.score-line{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.score-line small{color:var(--muted);margin-right:10px}.score-line b{color:var(--gold)}.review-panel{margin:25px 0}.review-panel h2{font-size:36px;margin:10px 0}.review-panel>p{font-size:13px;color:var(--muted);max-width:610px}.score-table-wrap{overflow:auto;margin:24px 0}.review-table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}.review-table th{font-size:10px;color:var(--muted);font-weight:400;padding:10px 9px;white-space:nowrap}.review-table td{padding:14px 9px;border-top:1px solid var(--line)}.review-table td:first-child{padding-left:0}.review-table td>small{display:block;font-size:8px;color:var(--muted);margin-top:4px;white-space:nowrap}.points-input{min-height:40px;max-width:102px;font-size:14px;margin:0;padding:9px;color:var(--gold)}.review-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.finish-panel{text-align:center;padding:50px 20px}.trophy{font-size:68px;color:var(--gold);display:block;margin-bottom:20px}.finish-panel h2{font-size:48px;margin:15px 0}.finish-panel p{color:var(--muted);margin-bottom:25px}.modal-shade{position:fixed;inset:0;z-index:100;background:#020d0ac9;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.modal{position:relative;background:#183329;border:1px solid #b59b6555;box-shadow:0 24px 100px #0008;border-radius:20px;max-width:540px;width:100%;padding:32px;max-height:90dvh;overflow:auto}.modal h2{font-size:31px;margin:10px 0 20px}.six-modal{text-align:center;max-width:395px}.six-modal>.playing-card{margin:0 auto 24px;width:113px;height:159px}.choice-button{display:flex;gap:17px;text-align:left;align-items:center;background:#d5e4b711;border:1px solid #d5e4b735;color:var(--ink);width:100%;padding:17px;border-radius:10px;margin-bottom:12px}.choice-button>span{font-size:25px;color:var(--gold)}.choice-button b{font-size:16px}.choice-button small{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.six-modal .text-button{margin-top:7px}.close{position:absolute;right:16px;top:12px;border:0;background:none;color:var(--muted);font-size:27px;padding:5px}.steps{padding-left:20px;font-size:13px;color:#c4d3c7;line-height:1.7}.steps li{padding-bottom:13px}.steps b{color:var(--ink)}.rule-box{padding:15px;background:#e4c68b0a;border:1px solid #e4c68b25;border-radius:10px;font-size:13px;margin:13px 0}.rule-box p{font-size:12px;color:var(--muted);margin-top:7px}.rules-modal table{width:100%;border-collapse:collapse;font-size:12px;margin:20px 0}.rules-modal td{border-bottom:1px solid var(--line);padding:11px 0}.rules-modal td:last-child{text-align:right;color:var(--gold)}.rules-modal>.muted{margin-top:16px}
@media(min-width:1100px){.game-wrap{max-width:1040px}.felt-table{min-height:280px}.hand-cards .playing-card{width:99px;height:143px;min-width:99px}}
@media(max-width:760px){.home-wrap,.page-wrap{padding:0 22px}.app-header{height:78px}.home-layout{grid-template-columns:1fr;gap:22px;padding:30px 0;min-height:0}.hero h1{font-size:51px;margin:16px 0;line-height:1.02}.hero>p{font-size:13px}.hero-cards{position:absolute;right:5px;top:162px;transform:scale(.6);transform-origin:right top;margin:0;height:170px;opacity:.9;z-index:-1}.hero{position:relative;isolation:isolate;padding-bottom:10px}.hero h1,.hero>p{max-width:310px}.suit-signature{margin-top:22px;gap:12px}.suit-signature small{font-size:7px}.entry-panel{padding:25px;border-radius:17px}.entry-panel h2{font-size:31px}.entry-panel>.muted{margin-bottom:21px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}.entry-foot{padding-top:16px;margin-top:20px}.home-footer{font-size:7px;gap:10px}.home-footer span{font-size:11px}.lobby-grid{grid-template-columns:1fr;gap:16px}.page-title h1{font-size:32px}.page-title{margin:26px 0 20px}.connection{font-size:9px;padding:7px 9px;white-space:nowrap}.panel{padding:22px}.room-code{font-size:53px}.invite-panel{padding:25px}.settings-grid{grid-template-columns:1fr 1fr;gap:15px}.settings-grid label:nth-child(3){grid-column:1/-1}.settings-panel{margin-top:16px}.start-row{flex-direction:column;align-items:stretch}.start-row .btn{width:100%}.start-row p{text-align:center}.game-wrap{padding:0 14px}.game-wrap .app-header{height:63px}.game-wrap .brand{font-size:12px;gap:9px}.game-wrap .brand-icon{width:33px;height:37px;font-size:24px}.game-wrap .brand small{font-size:6px}.game-top{margin:18px 0 13px}.game-top h1{font-size:28px;margin:4px 0 5px}.game-top .eyebrow{font-size:8px;letter-spacing:1.4px}.game-top .muted{font-size:10px}.trump-chip{min-width:59px;padding:7px 10px}.trump-chip strong{font-size:21px}.trump-chip small{font-size:7px}.trump-chip>span{font-size:8px}.opponents{gap:3px;margin-bottom:8px}.opponent{min-width:68px;padding:6px 6px;gap:4px}.opponent .avatar{width:30px;height:30px;font-size:17px}.opponent strong{font-size:11px;max-width:85px}.opponent span:not(.avatar){font-size:9px}.opponent small{font-size:8px}.felt-table{border-radius:42px;min-height:223px;padding:19px 14px}.felt-table:before{inset:8px;border-radius:36px}.table-status{font-size:10px;gap:7px}.trick-cards{gap:7px;min-height:145px;margin-top:6px}.trick-cards .playing-card{width:65px;min-width:65px;height:94px;border-radius:6px}.trick-cards .card-corner{font-size:10px;top:5px;left:5px}.trick-cards .card-corner b{font-size:15px}.trick-cards .card-corner.bottom{top:auto;left:auto;bottom:5px;right:5px}.trick-cards .card-center{inset:22px 18px}.trick-cards .pip{font-size:30px}.trick-cards .court-crown{font-size:12px}.trick-cards .court-letter{font-size:20px}.trick-cards .court-suit{font-size:12px}.trick-cards .six-emblem{font-size:33px}.trick-cards .special-card small{font-size:3px}.played-card>small{font-size:8px;max-width:65px}.table-empty p{font-size:10px;max-width:220px;margin:15px auto 0}.hand-panel{margin-top:18px}.hand-heading h2{font-size:13px}.hand-heading h2 small{display:block;margin:5px 0 0;font-size:9px}.hand-heading .eyebrow{font-size:8px}.my-score strong{font-size:23px}.hand-cards{gap:7px;padding:10px 1px;justify-content:center}.hand-cards .playing-card{width:72px;min-width:72px;height:104px}.hand-cards .card-corner{top:5px;left:5px;font-size:11px}.hand-cards .card-corner b{font-size:18px}.hand-cards .card-corner.bottom{top:auto;left:auto;bottom:5px;right:5px}.hand-cards .card-center{inset:23px 19px}.hand-cards .pip{font-size:35px}.hand-cards .court-letter{font-size:23px}.hand-cards .court-crown{font-size:14px}.hand-cards .court-suit{font-size:13px}.hand-cards .six-emblem{font-size:36px}.hand-cards .special-card small{font-size:3px}.hand-instruction{font-size:10px}.bid-panel{padding-top:14px}.bid-panel .section-heading{font-size:12px;align-items:start}.bid-buttons{gap:7px;justify-content:flex-start}.bid-button{min-width:41px;min-height:44px;padding:9px 13px;font-size:13px}.bid-panel>.muted{font-size:10px}.review-panel{padding:19px 15px;margin:19px 0}.review-panel h2{font-size:28px}.review-panel>p{font-size:12px}.review-table{font-size:11px}.review-table th{font-size:9px;padding:9px 5px}.review-table td{padding:12px 5px}.points-input{max-width:77px;font-size:13px;padding:9px 6px}.review-actions{flex-direction:column;align-items:stretch;gap:12px}.review-actions .text-button{text-align:center}.review-table td:first-child{max-width:85px;overflow-wrap:anywhere}.waiting-line{font-size:12px;line-height:1.6}.score-panel{padding:16px 18px}.modal{padding:26px 22px}.six-modal h2{font-size:29px}.blind-hand{gap:15px;padding:10px}.blind-hand b{font-size:18px}.blind-hand p{font-size:11px}.session-note{font-size:10px;padding:18px 10px}.finish-panel h2{font-size:37px}}
@media(max-width:375px){.home-wrap,.page-wrap{padding:0 16px}.hero-cards{display:none}.hero h1{font-size:45px}.suit-signature{gap:9px}.entry-panel{padding:22px}.join-fields{grid-template-columns:1fr 1.35fr}.join-fields .btn{padding:12px 10px;font-size:12px}.hand-cards{gap:5px}.hand-cards .playing-card{width:65px;min-width:65px;height:96px}.trick-cards{gap:5px}.trick-cards .playing-card{width:60px;min-width:60px;height:88px}.opponent{padding:5px 3px}.game-top .muted{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Moldova: the tricolor, wine country, and warm family-table gold. */
:root{--bg:#1d1119;--panel:#331d29;--muted:#baa6ad;--green:#ead7a7;--line:#edd3ab20}
body{background:radial-gradient(ellipse at 12% 0%,#63343c66,transparent 55%),radial-gradient(ellipse at 95% 90%,#18305250,transparent 65%),var(--bg)}
body:before{content:'';display:block;position:fixed;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0046ae 0 33.333%,#ffd200 33.333% 66.666%,#cc092f 66.666%);z-index:110}
.entry-panel,.panel{background:linear-gradient(140deg,#40252e,#2b1825);border-color:#d7b98635}.divider span{background:#34202a}.entry-panel input,select,input{background:#21141e}.brand-icon{color:#e7c88d}.btn.primary{color:#38211e}.hero>p,.invite-panel>p,.tip,.roster-row small,.session-note{color:#c0acb1}.hero .eyebrow{color:#e1c081}.suit-signature{color:#d5c4b2}.hero-cards .playing-card{box-shadow:0 15px 35px #0007}.felt-table{background:radial-gradient(ellipse at center,#673140,#361625 80%);border-color:#d7b98655;box-shadow:inset 0 0 0 6px #1d0c1935,inset 0 0 70px #17081770}.felt-table:before{border-color:#e4c68b32}.table-status{color:#f2e3d4}.table-wordmark{color:#e6cab30b}.table-empty,.last-trick{color:#d1b5b5}.opponent.active-turn{background:#d7b98612;border-color:#d7b98670}.opponent small{color:#b39a9f}.opponent .avatar{background:#4c303e;border-color:#bda47770;color:#f0d4a7}.tone-1{background:#61323e!important}.tone-2{background:#2c3e61!important}.tone-3{background:#6c572e!important}.hand-cards .playing-card:not(:disabled){box-shadow:0 0 0 2px #d7b98670,0 6px 15px #0005}.hand-instruction b{color:#e8cc94}.bid-button{background:#e8d09c;border-color:#f0dbaa;color:#382126}.modal{background:#321f2b}.choice-button{background:#e4c68b0a;border-color:#e4c68b40}.playing-card:after{content:'';position:absolute;inset:4px;border:1px solid #a787402d;border-radius:5px;pointer-events:none}.playing-card .card-center:before{content:'❧';position:absolute;top:-8px;font-size:13px;color:#aa863c80}.playing-card .card-center:after{content:'❧';position:absolute;bottom:-10px;transform:rotate(180deg);font-size:13px;color:#aa863c80}.face-card .card-center{border-color:#a7834990;background:repeating-linear-gradient(45deg,#b89a5020 0 2px,transparent 2px 7px);border-radius:40% 40% 20% 20%}.special-card{background:radial-gradient(ellipse,#f6eacb,#fffdf4);border:2px solid #b58e44}.special-card .card-center{inset:25px 17px}.six-crown{font-size:15px;line-height:1;color:#9c7638}.special-card .six-emblem{font-size:36px}.special-card .card-center small{font-size:4px;letter-spacing:.8px}.family-portrait{width:100%;height:100%;object-fit:cover;object-position:50% 25%;border-radius:40% 40% 4px 4px}.card-back{background:repeating-linear-gradient(45deg,#4e2739 0 5px,#6e4350 5px 6px);border-color:#e9dcbf}.trump-chip{background:#f4e9d5}.game-wrap .brand small{letter-spacing:1.8px}
@media(max-width:760px){.hero h1{font-size:48px}.hero>p{max-width:270px}.hero-cards{top:152px;right:0;transform:scale(.5)}.hand-cards .six-crown{font-size:10px}.hand-cards .special-card .card-center{inset:22px 16px}.hand-cards .special-card .six-emblem{font-size:26px}.hand-cards .special-card small{font-size:3px}.trick-cards .six-crown{font-size:9px}.trick-cards .special-card .card-center{inset:20px 15px}.trick-cards .special-card .six-emblem{font-size:22px}.trick-cards .special-card small{font-size:3px}.game-wrap .brand small{letter-spacing:1px}}
/* Family deck: embroidered linen, royal blue and vineyard burgundy. */
:root{--bg:#101d34;--panel:#1c304c;--ink:#fff3d8;--muted:#c5bdaf;--line:#dcc39333;--green:#f0d093}
body{background:radial-gradient(ellipse at 85% 10%,#69304360,transparent 55%),repeating-linear-gradient(90deg,#ffffff02 0 1px,transparent 1px 5px),#101d34;padding-bottom:env(safe-area-inset-bottom)}
body:before,body:after{content:'';position:fixed;top:0;bottom:0;width:13px;z-index:-1;background:repeating-conic-gradient(from 45deg,#b2313c 0 25%,#f1d394 0 50%,#21477a 0 75%,#f1d394 0);background-size:13px 26px;opacity:.85}body:before{left:0}body:after{right:0}
.app-header{border-bottom:3px double #d8b97770}.brand-icon{background:#f1deba;color:#183d68;border-radius:3px}.brand small{color:#ddc49b}
.entry-panel,.panel,.review-panel,.score-panel{background:linear-gradient(135deg,#253d59ed,#15253bed);border:1px solid #cfb17877;box-shadow:0 15px 40px #050d1b44,inset 0 0 0 5px #d9b96b08;position:relative}
.entry-panel:before,.settings-panel:before,.review-panel:before{content:'';display:block;height:9px;margin:-5px 0 23px;background:repeating-conic-gradient(from 45deg,#b73b42 0 25%,#e6c989 0 50%,#315e93 0 75%,#e6c989 0);background-size:18px 18px;border-block:1px solid #ebd8b0}
.entry-panel input,input,select{background:#0c1b30;color:#fff1d5;font-size:16px}.divider span{background:#1b304a}.hero h1 em{color:#f0cb78}.hero>p{color:#dbcfb9}.hero-cards{margin-left:25px}.hero-cards .playing-card:nth-child(3){transform:rotate(9deg);margin-left:-32px;z-index:2}.hero-cards .playing-card:nth-child(4){transform:rotate(22deg) translateY(14px);margin-left:-32px;z-index:3}
.felt-table{background:radial-gradient(ellipse,#723548,#3e1c32 85%);border:4px double #e3bd75;box-shadow:inset 0 0 55px #180c23,0 8px 30px #0004}.felt-table:before{border:2px dashed #e8c68944}.table-wordmark{color:#f1d89e12}.table-empty>span{color:#e6c582}.table-empty:after{content:'❧  MOLDOVA  ❧';display:block;font:10px Georgia;letter-spacing:4px;color:#e5bf7877;margin-top:22px}.opponent.active-turn{background:#e6c78319;border-color:#e3c383}.avatar{background:#274568;color:#f5d697;border-color:#e3c38366}
.playing-card{background:#fff3d8;border-color:#d3b877}.playing-card.portrait-card .card-center{inset:5px 21px;border:0;border-radius:0;background:none;overflow:hidden}.playing-card.portrait-card .card-center:before,.playing-card.portrait-card .card-center:after{display:none}.family-portrait{border-radius:0;object-fit:fill;object-position:center;width:100%;height:100%}.card-corner{z-index:2}.playing-card:after{border-color:#b795493d}.special-card{border:2px solid #bc8f35}.card-back{background:repeating-conic-gradient(from 45deg,#b4303a 0 25%,#e7cb8c 0 50%,#183b6a 0 75%,#e7cb8c 0);background-size:16px 16px;box-shadow:inset 0 0 0 5px #f3dfb2,inset 0 0 0 8px #183b6a;color:#fff0c4;text-shadow:0 2px 3px #000;font-weight:bold}
.modal{background:linear-gradient(150deg,#253e5d,#152238);border:1px solid #dfbd79;max-height:calc(100dvh - 32px);overflow-y:auto}.icon-button,.close{min-width:44px;min-height:44px}.choice-button{min-height:76px}.btn,.bid-button{touch-action:manipulation;min-height:48px}.bid-button{min-width:48px}.points-input{font-size:16px;min-height:48px}.text-button{min-height:44px}.hand-cards .playing-card:disabled{opacity:1}.hand-cards .playing-card:not(:disabled){border-color:#e4c26c;box-shadow:0 0 0 2px #e4c26c}
@media(max-width:760px){
 body:before,body:after{width:6px;background-size:6px 12px}.home-wrap,.page-wrap{padding-inline:20px}.hero-cards{position:relative;right:auto;top:auto;transform:none;height:156px;margin:18px 0 16px 12px;z-index:0;opacity:1}.hero-cards .playing-card{width:94px;min-width:94px;height:140px}.hero h1{font-size:46px}.hero>p{max-width:100%}.hero h1{max-width:100%}.home-layout{gap:10px;padding-top:25px}.hero{padding-bottom:0}.suit-signature{margin-top:12px}.suit-signature small{font-size:7px}.entry-panel{padding:22px}.entry-panel:before{margin-bottom:18px}.game-wrap{padding-inline:12px;padding-bottom:18px}.game-top{margin:12px 0}.opponent{flex:1;min-width:0}.opponent strong{max-width:80px}.felt-table{min-height:187px;padding:14px 8px;border-radius:30px}.felt-table:before{border-radius:24px}.trick-cards{min-height:118px;gap:6px}.table-status{font-size:11px}.hand-panel{margin-top:14px}.hand-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 6px;justify-items:center;padding:12px 1px}.hand-cards .playing-card{width:100%;min-width:0;max-width:88px;height:auto;aspect-ratio:2/3}.hand-cards .playing-card:only-child{grid-column:2/4;width:88px}.playing-card.portrait-card .card-center{inset:5px 19px}.trick-cards .portrait-card .card-center{inset:4px 15px}.hero-cards .portrait-card .card-center{inset:5px 21px}.hand-cards .playing-card:not(:disabled):hover{transform:none}.hand-instruction{font-size:12px}.bid-panel .section-heading{font-size:14px}.bid-panel>.muted{font-size:12px}.bid-buttons{gap:8px}.review-table{width:100%;table-layout:fixed}.review-table th:first-child{width:29%}.review-table th:last-child{width:27%}.review-table input{width:100%;min-width:0}.review-table th{overflow-wrap:anywhere}.review-panel{padding:18px 12px}.modal-shade{padding:12px}.modal{max-height:calc(100dvh - 24px);padding:24px 20px}.home-footer{flex-wrap:wrap;line-height:1.6}.button-row{flex-wrap:wrap}
}
@media(max-width:375px){.hero-cards{display:flex;margin-left:4px}.hero-cards .playing-card{width:83px;min-width:83px;height:126px}.hero-cards .playing-card:nth-child(n+2){margin-left:-27px}.hero h1{font-size:41px}.trick-cards .playing-card{width:59px;min-width:59px;height:87px}.game-wrap{padding-inline:10px}.hand-cards{gap:7px 5px}.hand-cards .card-corner b{font-size:16px}.hand-cards .portrait-card .card-center{inset:4px 17px}}

@media(max-width:760px){.review-table th:first-child{width:29%}.review-table th:nth-child(2),.review-table th:nth-child(3){width:12%}.review-table th:nth-child(4){width:29%}.review-table th:last-child{width:18%}}

/* Keep crowded family tables readable and controls easy to tap on phones. */
.scores-toggle{min-height:48px;align-items:center;touch-action:manipulation}
.check-label{min-height:44px}
@media(max-width:760px){
 .opponent{flex:0 1 calc((100% - 12px)/3);min-width:0}
 .opponent strong{max-width:100%}
 .roster-row>div{min-width:0;overflow-wrap:anywhere}
 .review-table th:first-child{width:26%}
 .review-table th:nth-child(2),.review-table th:nth-child(3){width:10%}
 .review-table th:nth-child(4){width:34%}
 .review-table th:last-child{width:20%}
 .review-table .points-input{max-width:none;padding-inline:4px}
}

/* The illustrations are complete mirrored cards: preserve their proportions.
   Small linen corner labels identify the card without reserving side gutters. */
.playing-card.portrait-card .card-center,
.hand-cards .playing-card.portrait-card .card-center,
.trick-cards .playing-card.portrait-card .card-center,
.hero-cards .playing-card.portrait-card .card-center{
 inset:0;border:0;border-radius:inherit;background:none;overflow:hidden
}
.playing-card.portrait-card .family-portrait{object-fit:contain;object-position:center}
.portrait-card .card-corner{
 top:3px;left:3px;min-width:22px;padding:3px 2px;gap:1px;
 background:#fff3d8;border:1px solid #b79549;border-radius:4px;
 box-shadow:0 1px 3px #15223833;line-height:1
}
.portrait-card .card-corner.bottom{top:auto;left:auto;bottom:3px;right:3px}
@media(max-width:760px){
 .hand-cards .portrait-card .card-corner,
 .trick-cards .portrait-card .card-corner{top:2px;left:2px;min-width:18px;padding:2px 1px}
 .hand-cards .portrait-card .card-corner.bottom,
 .trick-cards .portrait-card .card-corner.bottom{top:auto;left:auto;bottom:2px;right:2px}
}

/* Brăiescu: vineyard tones, linen, and clean Moldavian tricolor accents. */
:root{--bg:#191718;--panel:#282326;--ink:#f5eee1;--muted:#c0b4ad;--gold:#cdb58b;--green:#dfcba6;--line:#cdb58b29}
body{background:radial-gradient(ellipse at 80% 0%,#57323e35,transparent 60%),#191718}
body:before,body:after{display:none}
.app-header{border-bottom:1px solid var(--line)}
.brand-icon{background:#dfcba6;color:#36252c;border-color:#dfcba6}
.brand small{color:var(--muted)}
.entry-panel,.panel,.review-panel,.score-panel{background:linear-gradient(135deg,#30282c,#231f22);border-color:#cdb58b38;box-shadow:0 15px 40px #0002}
.entry-panel:before,.settings-panel:before,.review-panel:before{display:none}
.entry-panel input,input,select{background:#191719;color:var(--ink)}
.divider span{background:#292327}
.hero h1 em{color:#dfcba6}
.hero>p,.invite-panel>p,.tip,.roster-row small,.session-note{color:var(--muted)}
.hero .eyebrow,.suit-signature{color:var(--gold)}
.felt-table{background:radial-gradient(ellipse,#533541,#30232c 85%);border:1px solid #cdb58b66;box-shadow:inset 0 0 55px #1c141d55,0 8px 30px #0003}
.felt-table:before{border:1px solid #cdb58b26}
.table-empty:after{content:'❧';font-size:18px;letter-spacing:0;color:#cdb58b66}
.avatar,.opponent .avatar{background:#3c3237;color:#e3d2b4;border-color:#cdb58b55}
.tone-1,.tone-2,.tone-3{background:#3c3237!important}
.modal{background:linear-gradient(150deg,#332b30,#211e22);border-color:#cdb58b66}
.bid-button{background:#dfcba6;border-color:#dfcba6;color:#302329}
.card-back{background:repeating-linear-gradient(45deg,#45313a 0 5px,#59434b 5px 6px);border-color:#d9c7a7;box-shadow:inset 0 0 0 5px #d9c7a7,inset 0 0 0 6px #45313a}

/* Repeat the flag's blue–yellow–red order on welcome, lobby, and play screens. */
:root{--tricolor:linear-gradient(90deg,#0046ae 0 33.333%,#ffd200 33.333% 66.666%,#cc092f 66.666%)}
.app-header{position:relative;border-bottom:0}
.app-header:after{content:'';position:absolute;inset:auto 0 0;height:5px;background:var(--tricolor);border-radius:2px;pointer-events:none}
.entry-panel:before,.settings-panel:before,.review-panel:before{display:block;height:5px;margin:0 0 22px;background:var(--tricolor);border:0;border-radius:2px}
.felt-table:after{content:'';position:absolute;top:0;left:20%;right:20%;height:5px;background:var(--tricolor);border-radius:0 0 3px 3px;pointer-events:none}

.language-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.language-control select{width:134px;min-height:44px;margin:0;padding:8px}
.round-modal p{margin:16px 0;line-height:1.6}
.round-modal .intro-language{margin:20px 0}
.round-modal .text-button{display:block;margin:8px auto 0;text-align:center}
.rules-section{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}
.rules-section h3{font-family:Georgia,serif;color:var(--gold);font-size:20px;font-weight:400;margin:0 0 12px}
.rules-section p,.rules-section li{font-size:14px;line-height:1.65;margin:10px 0}
.rules-section ol{padding-left:22px}
.rules-modal table{width:100%;table-layout:fixed}
.rules-modal td{overflow-wrap:anywhere}
.game-top>div:first-child{min-width:0}
.game-top h1{overflow-wrap:anywhere}
.finish-panel{min-width:0}
.finish-panel h2{overflow-wrap:anywhere;word-break:break-word}
.modal h2{padding-right:25px}
@media(max-width:760px){
 .app-header,.game-wrap .app-header{height:auto;min-height:116px;padding-block:12px;flex-wrap:wrap;gap:8px 12px}
 .app-header .brand{flex:1;min-width:0}
 .app-header .brand small{letter-spacing:1px}
 .language-control{flex-basis:100%;justify-content:flex-end}
 .language-control select{width:142px}
 .hand-instruction{flex-wrap:wrap}
 .hand-instruction b{white-space:normal}
 .page-title{align-items:flex-start;flex-wrap:wrap}
 .entry-foot{flex-wrap:wrap}
 .modal{max-width:100%;overflow-wrap:anywhere}
 .bid-panel .section-heading{flex-wrap:wrap}
 .score-line>span{min-width:0;overflow-wrap:anywhere}
 .review-table th{white-space:normal;vertical-align:bottom}
 .review-table td>small{white-space:normal}
}

/* Keep the exposed card and turn/dealer information in view while hands scroll. */
.game-hud{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:12px;align-items:start;margin:0;padding:12px 0;background:#191718;border-bottom:1px solid var(--line)}
.game-hud h1{font-size:26px;margin:4px 0 6px}
.game-hud .muted{font-size:11px}
.game-hud .text-button{font-size:11px;padding:6px 0;min-height:44px}
.turn-summary{font-size:13px;line-height:1.4;margin-top:6px;color:var(--gold);overflow-wrap:anywhere}
.trump-display{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.trump-display>small{font-size:10px;line-height:1.3;text-align:center;color:var(--gold);font-weight:700}
.trump-display .playing-card{width:68px;min-width:68px;height:102px}
.trump-display .card-corner{font-size:11px;top:4px;left:4px}
.trump-display .card-corner b{font-size:17px}
.trump-display .card-corner.bottom{top:auto;left:auto;bottom:4px;right:4px}
.trump-display .card-center{inset:23px 17px}
.trump-display .portrait-card .card-center{inset:0}
.trump-display .pip{font-size:32px}
.trump-display .portrait-card .card-corner{min-width:18px;padding:2px 1px;top:2px;left:2px}
.trump-display .portrait-card .card-corner.bottom{top:auto;left:auto;bottom:2px;right:2px}
.no-trump-card{display:grid;place-items:center;color:#6a5945;font-size:32px;border-style:dashed}
.numbered-seats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0}
.numbered-seats .opponent{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:6px;min-width:0;max-width:none;padding:8px;border:1px solid var(--line);border-radius:9px;background:#282226}
.numbered-seats .seat-number{display:grid;place-items:center;width:26px;height:26px;border-radius:5px;background:#cdb58b24;color:var(--ink);font-size:17px;font-weight:700}
.numbered-seats .seat-details{min-width:0}
.numbered-seats strong{display:block;max-width:none;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.3}
.seat-roles{display:flex;flex-wrap:wrap;gap:3px 6px;margin:3px 0}
.seat-roles b{font-size:9px;line-height:1.3;color:var(--gold);font-weight:700}
.numbered-seats .seat-stats{font-size:10px;line-height:1.4;display:block;color:var(--muted)}
.numbered-seats .active-turn{background:#dfcba6;border:2px solid #f7dfb4;padding:7px;color:#251c20;box-shadow:0 0 0 1px #dfcba633}
.numbered-seats .active-turn .seat-number{background:#30232c;color:#fff3d8}
.numbered-seats .active-turn .seat-stats,.numbered-seats .active-turn .seat-roles b{color:#49363e}
.felt-table{width:fit-content;max-width:100%;min-height:0;margin:10px auto;padding:10px;border-radius:16px}
.felt-table:before{inset:5px;border-radius:12px}
.trick-cards{min-height:0;margin:0;gap:8px;max-width:100%}
.trick-cards .playing-card{width:64px;min-width:64px;height:96px}
.table-empty{width:64px;min-height:96px;display:grid;place-items:center;border:1px dashed #cdb58b44;border-radius:7px}
.table-empty>span{font-size:30px;letter-spacing:0}
.table-empty:after{display:none}
.last-trick{max-width:240px;text-align:center;overflow-wrap:anywhere}
.played-card>small{max-width:64px}
.bid-modal h2{font-size:27px;margin-top:6px;padding-right:0}
.bid-modal .hand-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-height:28dvh;overflow-y:auto;gap:8px;padding:8px 2px;margin-top:10px;overscroll-behavior:contain}
.bid-modal .hand-cards .playing-card{width:100%;min-width:0;max-width:88px;height:auto;aspect-ratio:2/3;justify-self:center}
.bid-modal .hand-cards .playing-card:only-child{grid-column:2/4;width:72px}
.bid-modal .bid-panel{margin-top:8px}
.bid-modal .bid-panel .section-heading{font-size:13px}
.bid-modal .bid-buttons{gap:6px}
.bid-modal .bid-panel>.muted{font-size:11px}
.bid-modal .blind-hand{padding:14px 0;font-size:13px}
.bid-modal #close-bid{display:block;margin:6px auto 0;text-align:center}
.score-line{gap:12px;align-items:center}
.score-seat{display:flex;align-items:center;gap:10px;min-width:0}
.score-line .score-number{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:6px;background:#dfcba6;color:#30232c;font-size:17px;font-weight:700}
.score-name{min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.4}
.score-total{text-align:right;flex-shrink:0}
.score-total b{font-size:22px;font-variant-numeric:tabular-nums;color:var(--gold)}
.score-line .score-total small{display:block;margin-top:3px;font-size:8px;color:var(--muted)}
@media(max-width:760px){
 .game-wrap .app-header{min-height:64px;padding-block:8px;flex-wrap:nowrap;gap:8px}
 .game-wrap .brand{font-size:11px;letter-spacing:1.5px;gap:6px}
 .game-wrap .brand small{display:none}
 .game-wrap .language-control{flex-basis:auto;margin-left:auto;order:1}
 .game-wrap .language-control>span{display:none}
 .game-wrap .language-control select{width:104px;font-size:16px}
 .game-wrap .icon-button{order:2;margin-left:0;flex-shrink:0}
 .game-hud{padding:8px 0;gap:8px}
 .game-hud h1{font-size:21px}
 .game-hud .eyebrow{font-size:8px;letter-spacing:1px}
 .game-hud .muted{font-size:10px}
 .turn-summary{font-size:12px}
 .numbered-seats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .numbered-seats .opponent{padding:6px;gap:5px}
 .numbered-seats .active-turn{padding:5px}
 .numbered-seats strong{font-size:11px}
 .numbered-seats .seat-stats{font-size:9px}
 .hand-panel{margin-top:10px}
}

/* Turn guidance and a readable, larger private hand. */
.turn-summary{background:#233f60;border:1px solid #7298c1;border-radius:9px;padding:9px 10px;font-size:15px;font-weight:700;color:#fff}
.your-turn .turn-summary{background:#d8edff;color:#102e50;border:2px solid #65b8ff;font-size:17px}
.play-guidance{display:flex;flex-direction:column;gap:5px;background:#d8edff;color:#102e50;border-left:5px solid #1688e5;border-radius:9px;padding:12px;margin-bottom:10px;font-size:13px;line-height:1.4}
.play-guidance b{font-size:18px}
.hand-panel .hand-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:14px 10px;justify-items:center;padding:10px 4px}
.hand-panel .hand-cards .playing-card{width:100%;min-width:0;max-width:120px;height:auto;aspect-ratio:2/3}
.hand-panel .hand-cards .playing-card:only-child{grid-column:1/-1;width:120px}
.play-ready .hand-cards .playing-card:not(:disabled){border:3px solid #1688e5;box-shadow:0 0 0 3px #99d3ff,0 6px 15px #0005}
.play-ready .hand-cards .playing-card:disabled{opacity:.5;filter:saturate(.5)}
@media(max-width:760px){.hand-panel .hand-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 9px}.hand-panel .hand-cards .card-corner b{font-size:20px}.hand-panel .hand-cards .card-corner{font-size:16px}.turn-summary{font-size:14px}}

.arrange-hint{font-size:12px;line-height:1.5;color:var(--muted);margin:8px 0}
.arrange-card{min-width:0;width:100%;max-width:120px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;border-radius:9px}
.arrange-card img{pointer-events:none;-webkit-user-drag:none}
.arrange-card .playing-card:disabled{pointer-events:none}
.arrange-card:only-child{grid-column:1/-1;width:120px;justify-self:center}
.arrange-card.dragging{opacity:.55;outline:3px dashed #99d3ff;transform:scale(.96)}
.arrange-card.drop-target{outline:4px solid #5ae0b5;outline-offset:3px}
.arrange-card:focus-visible{outline:3px dashed #5ae0b5;outline-offset:4px}
.bid-modal .arrange-card{max-width:88px;justify-self:center}
.bid-modal .arrange-card:only-child{width:72px}
.hand-panel .arrange-card .playing-card:only-child,.bid-modal .arrange-card .playing-card:only-child{width:100%}
/* Standard playing-card suit colors; blue is reserved for play guidance. */
.playing-card.hearts,.playing-card.diamonds{--suit:#b42332}
.playing-card.spades,.playing-card.clubs{--suit:#171717}
.hearts,.diamonds{color:#b42332}.spades,.clubs{color:#171717}

.language-options{display:grid;gap:12px;margin-top:20px}.language-modal h2{font-size:24px;margin-bottom:16px}
.has-turn-toast{padding-bottom:120px}.turn-toast{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:440px;z-index:35;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#192c40;color:#fff;border:2px solid #8196ad;border-radius:16px;box-shadow:0 8px 32px #0008;pointer-events:none}
.turn-toast.my-turn-toast{background:#123f31;border-color:#6ce7ac}.turn-toast div{min-width:0}.turn-toast strong,.turn-toast small,.turn-toast div>span{display:block;overflow-wrap:anywhere}.turn-toast strong{font-size:17px;margin:3px 0}.turn-toast small{font-size:10px;text-transform:uppercase;letter-spacing:1px}.turn-toast div>span{font-size:12px}
.profile-picture{width:48px;height:48px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#e7cf9e;color:#192c40;font:bold 24px Georgia;flex-shrink:0}.profile-picture img{width:100%;height:100%;object-fit:cover}
.turn-edges{position:fixed;inset:0;z-index:34;border:4px solid #6ce7ac;box-shadow:inset 0 0 20px #49d69a55;pointer-events:none}
body:has(.modal-shade) .turn-toast,body:has(.modal-shade) .turn-edges{visibility:hidden}

/* Clockwise seat map around the shared trick. Seat numbers never change. */
.table-arena{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);gap:10px 6px;align-items:center;max-width:540px;margin:14px auto;position:relative}
.table-arena:before{content:'';position:absolute;inset:30px 22px;background:radial-gradient(ellipse,#244c42,#172d31);border:1px solid #d8bb7555;border-radius:45%;z-index:-1}
.table-arena .numbered-seats{display:contents}
.table-arena .opponent{padding:8px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;border:1px solid #ad927550;background:#252731;min-width:0;width:100%;max-width:none}
.table-arena .opponent.active-turn{background:#d9ffeb;border:3px solid #43ce91;color:#123f31;box-shadow:0 0 14px #43ce9155}
.table-arena .seat-number{font-size:18px!important;width:30px;height:30px;display:grid;place-items:center;background:#dec698;color:#252731!important;border-radius:50%}
.table-arena .seat-details{width:100%;min-width:0}.table-arena .seat-details strong{font-size:12px;white-space:normal;max-width:none;overflow-wrap:anywhere}
.table-arena .seat-roles{justify-content:center;flex-wrap:wrap}.table-arena .seat-stats{font-size:9px!important;display:block;line-height:1.4}
.table-arena .felt-table{grid-row:2;grid-column:2;margin:0;max-width:100%;padding:6px;justify-self:center}
.table-arena .trick-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 4px;max-width:100%}
.table-arena .trick-cards:has(.table-empty){display:block}
.table-arena .trick-cards .playing-card{width:44px;min-width:0;height:66px}.table-arena .trick-cards .card-corner{font-size:9px;top:2px;left:2px}.table-arena .trick-cards .card-corner b{font-size:12px}.table-arena .trick-cards .card-corner.bottom{top:auto;left:auto;bottom:2px;right:2px}
.table-arena .played-card>small{max-width:44px;font-size:9px}.table-arena .last-trick{font-size:9px;text-align:center}
.table-arena .opponent.active-turn .seat-number{background:#14593d;color:#fff!important}

.vibration-setting{display:flex;align-items:center;gap:10px;min-height:44px;margin-bottom:12px;font-size:12px}.vibration-setting input{width:20px;height:20px;min-height:20px;margin:0;accent-color:#43ce91}

.trump-reason{grid-column:1/-1;font-size:12px;line-height:1.4;background:#ffffff0b;padding:8px;border-radius:8px;color:var(--gold)}

/* Let the visible action or active seat speak; avoid covering it with a duplicate toast. */
.turn-context-visible .turn-toast{visibility:hidden}
.hand-panel.play-ready{padding:12px 0;margin-top:0}.play-ready .hand-heading{margin-bottom:6px}.play-ready .arrange-hint{font-size:11px;margin:5px 0}.play-ready .play-guidance{padding:9px 12px;margin:8px 0}.play-ready .hand-instruction{justify-content:flex-end}
.table-arena:has(+ .hand-panel) + .hand-panel{border-top:1px solid var(--line);padding-top:14px}

.auto-play-notice{display:flex;flex-direction:column;gap:5px;background:#d9ffeb;color:#123f31;border:2px solid #43ce91;border-radius:10px;padding:12px;margin:8px 0;font-size:14px;line-height:1.4}.auto-play-notice span{font-size:12px}.auto-play-feedback{border-color:#43ce91}
.auto-play-feedback{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:440px;z-index:36;margin:0;background:#123f31;color:#d9ffeb;box-shadow:0 8px 24px #0006;pointer-events:none}
body:has(.auto-play-feedback) .turn-toast{visibility:hidden}
/* The game is a viewport-sized surface. Only deliberately opened panels scroll. */
body.game-screen{height:100dvh;overflow:hidden;overscroll-behavior:none}
body.game-screen #app{height:100%;min-height:0}
.game-screen .game-wrap{width:100%;max-width:980px;height:100dvh;padding:env(safe-area-inset-top) 10px env(safe-area-inset-bottom);display:flex;flex-direction:column;overflow:hidden}
.game-screen .game-wrap main{flex:1;min-height:0;display:grid;grid-template-rows:auto clamp(122px,24dvh,180px) minmax(0,1fr);gap:5px}
.game-screen .game-hud{position:relative;top:auto;margin:0;padding:6px 0;display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:3px 8px;min-height:0;border-bottom:1px solid var(--line);background:none}
.game-screen .game-hud .eyebrow{font-size:8px;letter-spacing:.7px}.game-screen .game-hud h1{font-size:18px;margin:2px 0}.game-screen .game-hud>div>p.muted,.game-screen #about-hand{display:none}
.game-screen .turn-summary,.game-screen .your-turn .turn-summary{font-size:12px;line-height:1.2;padding:6px;margin:3px 0 0;border-width:1px;min-height:28px}
.game-screen .trump-display{width:48px;gap:2px}.game-screen .trump-display>small{font-size:8px;letter-spacing:0}.game-screen .trump-display .playing-card{width:42px;min-width:42px;height:63px}.game-screen .trump-display .card-corner{font-size:9px;top:2px;left:2px}.game-screen .trump-display .card-corner b{font-size:12px}.game-screen .trump-display .card-corner.bottom{top:auto;left:auto;bottom:2px;right:2px}
.game-screen .trump-reason{padding:3px 5px;font-size:10px;line-height:1.2}
.game-screen .table-arena{width:100%;height:100%;max-width:600px;margin:0 auto;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr) minmax(0,1fr);grid-template-rows:30px minmax(0,1fr) 30px;gap:2px 5px;min-height:0}
.game-screen .table-arena:before{inset:15px 30px}.game-screen .table-arena .opponent{height:30px;min-height:0;padding:2px 4px;display:flex;flex-direction:row;gap:4px;border-radius:8px;border-width:1px}
.game-screen .table-arena .opponent.active-turn{border:2px solid #43ce91;box-shadow:0 0 8px #43ce9133}.game-screen .table-arena .seat-number{width:20px;height:20px;min-width:20px;font-size:12px!important}
.game-screen .table-arena .seat-details{text-align:left}.game-screen .table-arena .seat-details strong{display:block;font-size:10px;line-height:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.game-screen .seat-stats,.game-screen .turn-label,.game-screen .seat-details>small{display:none!important}
.game-screen .seat-roles{display:block;margin:0;line-height:8px}.game-screen .dealer-label{font-size:8px;padding:0;background:none;color:inherit}.game-screen .seat-roles:empty{display:none}
.game-screen .table-arena .felt-table{padding:2px;width:100%;height:100%;border-radius:18px;justify-content:center;overflow:hidden}.game-screen .felt-table:before{inset:2px;border-radius:16px}.game-screen .last-trick{display:none}
.game-screen .table-arena .trick-cards{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;align-content:center;margin:0;max-height:100%;width:100%}.game-screen .table-arena .trick-cards .playing-card{width:26px;min-width:26px;height:39px;border-radius:4px}.game-screen .trick-cards .card-corner{font-size:7px!important;top:1px!important;left:1px!important;padding:1px!important}.game-screen .trick-cards .card-corner b{font-size:10px!important}.game-screen .trick-cards .card-corner.bottom{display:none}.game-screen .played-card>small{font-size:8px;margin-top:1px;max-width:26px}.game-screen .table-empty{width:38px;height:50px;font-size:22px;padding:0;display:grid;place-content:center}.game-screen .table-empty>span{font-size:22px;letter-spacing:0}
.game-screen .hand-panel,.game-screen .hand-panel.play-ready,.game-screen .table-arena+.hand-panel{min-height:0;margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:3px;overflow:hidden}
.game-screen .hand-heading{height:22px;min-height:22px;margin:0;gap:3px}.game-screen .hand-heading .eyebrow,.game-screen .hand-heading h2 small,.game-screen .my-score,.game-screen .arrange-hint,.game-screen .play-guidance{display:none}.game-screen .hand-heading h2{font:700 12px Arial;margin:0}
.game-screen .hand-panel .hand-cards{flex:1;min-height:0;height:0;display:grid;grid-template-columns:repeat(var(--hand-cols,4),var(--hand-card-width,44px));grid-template-rows:repeat(var(--hand-rows,1),minmax(0,1fr));gap:5px;justify-content:center;align-items:center;justify-items:center;padding:4px;margin:0;overflow:visible}
.game-screen .hand-panel .arrange-card,.game-screen .hand-panel .arrange-card:only-child{width:var(--hand-card-width,44px);max-width:none;grid-column:auto;aspect-ratio:2/3;height:auto}
.game-screen .hand-panel .arrange-card .playing-card,.game-screen .hand-panel .arrange-card .playing-card:only-child{width:100%;height:100%;max-width:none;min-width:0;aspect-ratio:2/3;border-radius:6px}
.game-screen .hand-panel .card-corner{font-size:12px!important;top:2px;left:2px;padding:1px 2px;gap:0}.game-screen .hand-panel .card-corner b{font-size:16px!important;line-height:1}.game-screen .hand-panel .card-corner.bottom{top:auto;left:auto;bottom:2px;right:2px}.game-screen .hand-panel .card-center{inset:2px!important}.game-screen .hand-panel .pip{font-size:24px}
.game-screen .play-ready .hand-cards .playing-card:not(:disabled){border:2px solid #1688e5;box-shadow:0 0 0 2px #99d3ff}.game-screen .hand-instruction{font-size:10px;line-height:13px;min-height:14px;max-height:28px;padding:0;margin:0}.game-screen .hand-instruction span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-screen .compact-bid{display:grid;grid-template-columns:minmax(0,1fr) 58px minmax(70px,1fr);gap:5px;align-items:center;min-height:44px}.compact-bid label{font-size:11px;line-height:1.2}.compact-bid select{min-height:40px;padding:8px;font-size:16px}.compact-bid .btn{min-height:40px;padding:8px;font-size:12px}
.game-screen .bid-panel.waiting-line{font-size:11px;min-height:24px;margin:0;padding:3px;line-height:1.2}.game-screen .blind-hand{flex:1;min-height:0;padding:6px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:12px}.game-screen .blind-hand .card-back{height:80px;width:54px;min-width:54px}.game-screen .blind-hand p{font-size:11px}
.game-screen .game-wrap main>.session-note,.game-screen .turn-toast,.game-screen .turn-edges{display:none!important}.game-screen .game-wrap main>.notice{position:fixed;top:8px;left:10px;right:10px;z-index:40;font-size:12px;margin:0}.game-screen .game-wrap main>.auto-play-feedback{top:auto;left:50%;right:auto;bottom:calc(52px + env(safe-area-inset-bottom));width:calc(100% - 20px)}
.game-nav{flex-shrink:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;height:48px;border-top:1px solid #e4c68b55;margin-top:4px;background:#182332}.game-nav button{min-width:0;min-height:44px;background:transparent;border:0;color:var(--ink);font-size:10px;line-height:1.15;padding:4px}.game-nav button:active{background:#ffffff18}
.game-screen .game-sheet-shade{align-items:flex-end}.game-sheet{width:100%;max-width:600px;border-radius:20px 20px 0 0;padding:22px 14px}.game-sheet h2{font-size:24px;margin:0 40px 20px 0}.game-sheet .score-panel{padding:0;border:0;background:none;box-shadow:none}.game-sheet .scores-toggle{display:none}.game-sheet .score-list{display:block}.game-sheet .vibration-setting{margin-top:18px}
.game-screen .game-wrap main.round-ended{display:flex;flex-direction:column}.round-ended .game-hud{flex-shrink:0}.round-ended .review-panel,.round-ended .finish-panel{min-height:0;overflow:auto;flex:1;margin:0}
.automatic-status span{display:none}.automatic-status b{font-size:12px}
@media(min-width:700px) and (min-height:600px){.game-screen .game-wrap main{grid-template-rows:auto 200px minmax(0,1fr)}.game-screen .table-arena{grid-template-rows:42px minmax(0,1fr) 42px}.game-screen .table-arena .opponent{height:42px}.game-screen .table-arena .seat-details strong{font-size:13px}.game-screen .table-arena .trick-cards .playing-card{width:44px;height:66px}.game-screen .played-card>small{max-width:44px}}
@media(max-height:450px){.game-screen .game-wrap main{grid-template-columns:1fr 1fr;grid-template-rows:78px minmax(0,1fr);gap:4px 10px}.game-screen .game-hud{grid-column:1;grid-row:1}.game-screen .table-arena{grid-column:1;grid-row:2}.game-screen .hand-panel{grid-column:2;grid-row:1/3}.game-screen .trump-reason{position:absolute;bottom:0;font-size:9px}.game-screen .game-hud h1{font-size:14px}.game-screen .game-nav{height:44px}}

/* Trump belongs on the table; the active seat carries turn information. */
.game-screen .game-wrap main{grid-template-rows:clamp(150px,29dvh,210px) minmax(0,1fr);gap:6px}
.game-screen .table-arena{grid-template-rows:32px minmax(0,1fr) 32px;gap:3px 5px;padding-top:3px}.game-screen .table-arena:has(.trump-reason){grid-template-rows:32px minmax(0,1fr) 32px 22px}
.game-screen .table-arena .felt-table{display:flex;flex-direction:row;gap:5px;padding:4px;overflow:visible}.game-screen .table-arena .trump-display{flex-shrink:0;align-self:center;width:38px}.game-screen .table-arena .trump-display .playing-card{width:36px;min-width:36px;height:54px}.game-screen .table-arena .trick-cards{flex:1;min-width:0}.game-screen .table-arena .trump-reason{grid-row:4;grid-column:1/4;position:static;margin:0;text-align:center;font-size:10px;line-height:1.1;padding:3px}
.game-screen .opponent.active-turn .turn-label{display:inline!important;font-size:8px;background:none;color:#14593d;padding:0}.game-screen .seat-roles{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.game-screen .auto-play-notice{flex-shrink:0;margin:0;padding:5px 8px;font-size:12px;line-height:1.2;border-width:1px}.game-screen .auto-play-notice span{display:none}
@media(max-height:450px){.game-screen .game-wrap main{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr)}.game-screen .table-arena{grid-column:1;grid-row:1}.game-screen .hand-panel{grid-column:2;grid-row:1}.game-screen .game-wrap main.round-ended{display:flex}}
@media(min-width:700px) and (min-height:600px){.game-screen .game-wrap main{grid-template-rows:210px minmax(0,1fr)}}

.brand-icon{overflow:hidden;padding:0;background:#191718}.brand-icon img{width:100%;height:100%;object-fit:contain;display:block}
.game-screen .game-wrap main{grid-template-rows:clamp(180px,32dvh,230px) minmax(0,1fr)}
.game-screen .table-arena{grid-template-rows:44px minmax(0,1fr) 44px}.game-screen .table-arena:has(.trump-reason){grid-template-rows:44px minmax(0,1fr) 44px 22px}
.game-screen .table-arena .opponent{height:44px}.game-screen .table-arena .felt-table{justify-content:center}.game-screen .table-arena .trick-cards:empty{display:none}
.game-screen .table-arena .trump-display>small{white-space:normal;overflow:visible;text-overflow:clip;font-size:8px;letter-spacing:0;line-height:1.1;text-align:center;max-width:none;width:100%}
.game-screen .seat-played{flex-shrink:0}.game-screen .seat-played .playing-card{width:24px;min-width:24px;height:36px;border-radius:3px}.game-screen .seat-played .card-corner{top:1px;left:1px;padding:0 1px;font-size:7px;gap:0}.game-screen .seat-played .card-corner b{font-size:10px}.game-screen .seat-played .card-corner.bottom{display:none}.game-screen .seat-played .pip{font-size:16px}.game-screen .seat-played .card-center{inset:1px}.game-screen .seat-played .mode-label{font-size:5px;padding:1px;bottom:0}.game-screen .winning-seat{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
@media(max-height:450px){.game-screen .game-wrap main{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr)}}

@media(orientation:landscape) and (max-height:500px){
 .game-screen .game-wrap main{display:grid;grid-template-columns:1fr;grid-template-rows:clamp(124px,43dvh,170px) minmax(0,1fr);gap:3px}
 .game-screen .table-arena{grid-column:1;grid-row:1;max-width:720px;grid-template-rows:30px minmax(0,1fr) 30px;padding-top:1px}.game-screen .table-arena:has(.trump-reason){grid-template-rows:30px minmax(0,1fr) 30px 16px}
 .game-screen .table-arena .opponent{height:30px}.game-screen .table-arena .trump-reason{font-size:9px;padding:1px}.game-screen .seat-played .playing-card{width:18px;min-width:18px;height:27px}.game-screen .seat-played .card-corner b{font-size:9px}
 .game-screen .hand-panel{grid-column:1;grid-row:2;gap:1px}.game-screen .hand-heading{height:16px;min-height:16px}.game-screen .hand-heading h2{font-size:10px}.game-screen .hand-instruction{display:none}
 .game-screen .hand-panel .hand-cards{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0;padding:4px;isolation:isolate}
 .game-screen .hand-panel .arrange-card{flex-shrink:0;height:calc(var(--hand-card-width)*1.5)}.game-screen .hand-panel .arrange-card+.arrange-card{margin-left:var(--hand-overlap,0px)}
 .game-screen .hand-panel .card-corner.bottom{display:none}.game-screen .hand-panel .card-corner{top:2px;left:2px;padding:1px}.game-screen .hand-panel .card-corner b{font-size:14px!important}.game-screen .hand-panel .card-corner{font-size:11px!important}
 .game-screen .compact-bid{position:absolute;right:12px;top:50px;width:130px;grid-template-columns:52px 1fr;z-index:2}.game-screen .compact-bid label{grid-column:1/3;font-size:10px}.game-screen .compact-bid select,.game-screen .compact-bid .btn{min-height:32px;padding:4px}
 .game-screen .bid-panel.waiting-line{display:none}.game-screen .game-nav{height:44px}.game-screen .auto-play-notice{position:absolute;left:12px;top:48px;max-width:125px;font-size:10px;z-index:2}
}
@media(orientation:landscape) and (max-height:500px){.game-screen .compact-bid{position:static;width:auto;grid-template-columns:minmax(0,1fr) 70px 100px;min-height:34px;gap:4px}.game-screen .compact-bid label{grid-column:auto}.game-screen .auto-play-notice{position:static;max-width:none;font-size:10px;padding:3px 6px}.game-screen .bid-panel.waiting-line{display:block;min-height:16px;font-size:10px}}

.bid-progress{display:inline-block;font:700 10px Arial;line-height:12px;border-radius:4px;padding:1px 3px;color:#e9dfc8;background:#ffffff12;white-space:nowrap}.bid-progress.bid-exact{background:#d9ffeb;color:#14593d}.bid-progress.bid-over{background:#ffdfa6;color:#633500}
.game-screen .seat-roles{display:inline-flex;gap:3px;vertical-align:middle}.game-screen .seat-details .bid-progress{font-size:9px;line-height:10px;margin-left:2px;vertical-align:middle}.game-screen .hand-heading h2 .bid-progress{font-size:11px;margin-left:5px;vertical-align:middle}

.game-screen [data-seat-bid]{cursor:pointer}.game-screen [data-seat-bid]:focus-visible{outline:3px solid #99d3ff;outline-offset:2px}

/* One continuous Moldovan table rail; its centre is not a second container. */
.game-screen .table-arena{isolation:isolate;padding:7px 4px;gap:4px 5px}
.game-screen .table-arena:before{inset:3px 0;border:4px solid transparent;border-radius:70px;background:linear-gradient(135deg,#252833,#34303a) padding-box,linear-gradient(90deg,#245fac 0 33.33%,#e5bb4a 33.33% 66.66%,#ac3946 66.66%) border-box;box-shadow:inset 0 0 30px #0004,0 3px 10px #0003;z-index:-1}
.game-screen .table-arena .felt-table{background:none;border:0;box-shadow:none;border-radius:0;padding:0;gap:0;overflow:visible}
.game-screen .table-arena .felt-table:before,.game-screen .table-arena .felt-table:after{display:none}
.game-screen .table-arena .trump-display{width:100%;max-width:160px;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:7px;margin:0}
.game-screen .trump-caption{min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left}
.game-screen .trump-caption small{font:700 10px Arial;letter-spacing:1px;color:#f1d386}
.game-screen .trump-caption strong{font:700 14px Arial;color:#fff;text-transform:capitalize;overflow-wrap:anywhere}
.game-screen .table-arena .trump-display .playing-card{width:42px;min-width:42px;height:63px;box-shadow:0 3px 6px #0005}
.game-screen .table-arena .trump-display>div[role=img]{flex-shrink:0}
.game-screen .table-arena .opponent{border-radius:18px;background:#20222bef;border-color:#b8a98a66}
.game-screen .table-arena .opponent.active-turn{background:#d9ffeb;border-color:#43ce91;color:#123f31}
.game-screen .opponent.active-turn .turn-label{font-size:9px;line-height:11px}
.game-screen .seat-roles{white-space:normal;flex-wrap:wrap}
.game-screen .table-arena .trump-reason{background:none;border:0;color:#f1d386}
.game-screen .table-arena .seat-details strong{font-size:11px}
.game-screen .hand-heading{border-bottom:1px solid #ffffff20}
.game-screen .hand-heading h2{font-size:13px}
.game-screen .game-nav{background:#20222b;border-radius:14px 14px 0 0}
@media(orientation:landscape) and (max-height:500px){
 .game-screen .table-arena{padding:3px 4px}
 .game-screen .table-arena:before{border-radius:60px;border-width:3px}
 .game-screen .table-arena .trump-display{max-width:200px;gap:10px}
 .game-screen .table-arena .trump-display .playing-card{width:34px;min-width:34px;height:51px}
 .game-screen .trump-caption strong{font-size:13px}
 .game-screen .hand-heading h2{font-size:10px}
}

/* Secondary controls stay behind one accessible menu button. */
.game-screen .game-nav{display:block;flex:0 0 44px;width:44px;height:44px;margin:0 0 0 auto;border:0;background:none;border-radius:0}
.game-screen .game-nav button{width:44px;height:44px;padding:0;border-radius:50%;font-size:22px;color:#e4c68b}
.game-screen .game-nav button:hover{background:#ffffff12}
.game-screen .hand-heading{height:44px;min-height:44px;display:flex;align-items:center}
.game-menu-actions{display:grid;gap:10px}.game-menu-actions .btn{width:100%;min-height:48px}
@media(orientation:landscape) and (max-height:500px){.game-screen .hand-heading{height:30px;min-height:30px}.game-screen .hand-heading .game-nav{position:relative;top:-7px}.game-screen .hand-heading h2{padding-right:48px}}

/* All legal bids appear as soon as this seat's bidding turn starts. */
.game-screen .bid-picker{flex-shrink:0;padding:5px 0 2px;border-top:1px solid #e4c68b55}
.bid-picker-label{display:block;color:#e4c68b;font-size:12px;line-height:16px;margin-bottom:4px}
.bid-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:4px}
.bid-options button{min-width:0;min-height:44px;padding:4px 2px;border:1px solid #e4c68b88;border-radius:9px;background:#e4c68b;color:#25232a;font-size:16px;font-weight:700}
.bid-options button:first-child{font-size:11px}
.bid-options button:disabled{opacity:.3;background:#38343b;color:#d8cbb5;border-style:dashed}
.bid-options button:active:not(:disabled){background:#fff0c4;transform:scale(.96)}
@media(orientation:landscape) and (max-height:500px){
 .game-screen .game-wrap main:has(.bid-picker){grid-template-rows:108px minmax(0,1fr)}
 .game-screen .bid-picker{padding:2px 0}
 .bid-picker-label{font-size:10px;line-height:12px;margin-bottom:2px}
 .bid-options button{min-height:36px}
}

/* A single upright guardian portrait; never crop the crown in the brand mark. */
.brand .brand-icon{display:block;width:44px;height:44px;flex:0 0 44px;padding:0;overflow:hidden;border-radius:8px;background:#082342}
.brand .brand-icon img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;max-width:100%;transform:none}
/* Frosted Moldovan tricolor panels: decoration stays behind all content. */
.entry-panel,.page-wrap .panel,.modal,.game-screen .review-panel{
 border:2px solid transparent;
 background:
  linear-gradient(112deg,rgba(20,43,76,.97),rgba(40,36,39,.98) 38%,rgba(47,40,30,.98) 56%,rgba(62,28,40,.97)) padding-box,
  linear-gradient(110deg,#477bbb 0%,#315d99 28%,#d1ac51 46%,#e3c66c 56%,#a9485a 76%,#853447 100%) border-box;
 box-shadow:inset 0 1px 0 #ffffff0a,0 16px 38px #0003;
 backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
 color:#f5eee1;
}
.entry-panel:before,.page-wrap .settings-panel:before,.game-screen .review-panel:before{display:none}
.entry-panel .muted,.page-wrap .panel .muted,.page-wrap .panel .tip,.page-wrap .panel .roster-row small{color:#d0c5bc}
.page-wrap .panel .room-code{color:#f6ddaa;text-shadow:0 2px 12px #0005}
.entry-panel input,.entry-panel select,.page-wrap .panel input,.page-wrap .panel select,.modal select,.modal input{background:#191b22;color:#f5eee1}
@media(prefers-reduced-transparency:reduce){.entry-panel,.page-wrap .panel,.modal,.game-screen .review-panel{backdrop-filter:none;-webkit-backdrop-filter:none}}


.round-template{border:1px solid #d8bd7a44;border-radius:14px;padding:16px;margin:18px 0;min-width:0}
.round-template legend{padding:0 8px;color:var(--gold);font-weight:700;font-size:13px}
.template-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}
.template-options button{padding:12px 4px;border-radius:9px;border:1px solid #ffffff30;background:#0c231c;color:var(--ink);min-height:44px}
.template-options button[aria-pressed=true]{background:#e0c183;color:#15291d;border-color:#e0c183;font-weight:700}
.round-template label{margin-top:10px}.round-template .text-button{min-height:44px}.round-preview{margin-top:12px;padding:12px;background:#071c1666;border-radius:9px;font-size:12px;overflow-wrap:anywhere}.round-preview p{margin:6px 0;color:#e9d6a3}.round-preview small{color:var(--muted)}
/* Heraldic aces: tricolour enamel within a suit, gold engraving and mirrored ornament. */
.playing-card.ace-card .ace-emblem{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:80%;height:90%;border:1px solid #bc9453;border-radius:50% 50% 42% 42%;background:repeating-conic-gradient(from 0deg,#d6b36515 0deg 8deg,transparent 8deg 16deg);box-shadow:inset 0 0 0 3px #f7ebd8,inset 0 0 0 4px #b7965955}
.playing-card.ace-card .ace-suit{font-family:Georgia,serif;font-size:44cqw;line-height:1;background:linear-gradient(105deg,#154e91 0 33%,#d6ab37 34% 65%,#a92937 66%);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #654815);-webkit-text-stroke:.4px #81612e}
.playing-card.ace-card .ace-crown{font:14cqw Georgia;color:#9c762f;line-height:1.1}.playing-card.ace-card .ace-flourish{font:12cqw Georgia;color:#a27b35;line-height:1}.playing-card.ace-card .ace-flourish:nth-last-child(2){transform:rotate(180deg)}
.playing-card.ace-card .ace-motto{font:5cqw Georgia;letter-spacing:1px;color:#796035;margin-top:3px}.playing-card.ace-card .card-center{overflow:visible}

.playing-card.ace-card{container-type:inline-size}
.playing-card.ace-card .card-center{inset:15% 10%}
