:root{--bg:#0d1411;--felt1:#1e4b3a;--felt2:#123227;--felt-edge:#0a1f19;--ink:#ece7d8;--muted:#9fb3a4;--brass:#d2a955;--brass-dim:#8f7434;--card-face:#faf6ea;--card-face2:#efe9d6;--card-edge:#cfc8b2;--red:#c0392f;--blk:#232a33;--suit-s:#1c2128;--suit-h:#c8262a;--suit-d:#d9731a;--suit-c:#1f7a3a;--glass:#0e1a15c7;--glass-edge:#d2a95547;--good:#86b97c;--bad:#d07a6a;--shadow:0 10px 30px #00000073}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);margin:0;font:15px/1.45 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#app{height:100vh;flex-direction:column;height:100dvh;display:flex}.btn,.card,.bid-btn,.chip{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.topbar{background:linear-gradient(#131d18,#0d1411);border-bottom:1px solid #d2a9552e;flex:none;align-items:center;gap:20px;padding:10px 18px;display:flex}.brand{letter-spacing:.5px;color:var(--brass);white-space:nowrap;font-family:Palatino Linotype,Book Antiqua,Georgia,serif;font-size:21px}.brand-logo{vertical-align:-.3em;width:auto;height:1.25em;margin-right:7px}.brand-sub{color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;margin-left:8px;font-size:12px}.board-info{color:var(--muted);font-variant-numeric:tabular-nums;flex:1;font-size:13px}.board-info b{color:var(--ink)}.tour-badge{color:var(--brass);border:1px solid var(--brass-dim);text-transform:uppercase;letter-spacing:1px;cursor:help;border-radius:999px;padding:1px 8px;font-size:11px}.tour-count{color:var(--muted)}.top-actions{gap:8px;display:flex}.btn{cursor:pointer;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;padding:9px 15px;font:600 13px/1 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;transition:all .15s}.btn.ghost{color:var(--brass);border-color:#d2a95559}.btn.ghost:hover{background:#d2a9551f}.btn.primary{background:var(--brass);color:#1a140a;border-color:var(--brass)}.btn.primary:hover{background:#e0bb6b}.btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.btn[disabled]{opacity:.3;cursor:default}.btn[hidden],input[hidden]{display:none}.btn.toggle.on{color:var(--good);background:#86b97c24;border-color:#86b97c8c}.btn.toggle.on:hover{background:#86b97c38}.btn.exit{color:var(--bad);border-color:#d07a6a73}.btn.exit:hover{background:#d07a6a1f}.table-wrap{flex:1;min-height:0;padding:14px;display:flex}.felt{background:radial-gradient(ellipse at 50% 42%, var(--felt1) 0%, var(--felt2) 62%, var(--felt-edge) 100%);box-shadow:inset 0 0 80px #0000008c, var(--shadow);border:1px solid #d2a95533;border-radius:26px;flex:1;position:relative;overflow:hidden}.seat{flex-direction:column;align-items:center;gap:7px;display:flex;position:absolute}.seat-n{top:14px;left:50%;transform:translate(-50%)}.seat-s{bottom:12px;left:50%;transform:translate(-50%)}.seat-w{top:50%;left:16px;transform:translateY(-50%)}.seat-e{top:50%;right:16px;transform:translateY(-50%)}.seat-label{align-items:center;gap:6px;display:flex}.seat-label .nm{color:var(--muted);letter-spacing:.4px;border:1px solid #0000;border-radius:999px;padding:3px 12px;font-family:Palatino Linotype,Georgia,serif;font-size:14px;transition:all .25s}.seat-label .nm.active{color:var(--brass);border-color:var(--brass-dim);background:#d2a9551a;box-shadow:0 0 14px #d2a95559}.tag{text-transform:uppercase;letter-spacing:1px;color:var(--muted);background:#0000004d;border-radius:999px;padding:2px 8px;font-size:10px}.tag-popartii{color:var(--bad)}.tag-rozgrywa,.tag-dziadek{color:var(--brass)}.tag-pc{color:var(--brass);font-variant-numeric:tabular-nums;cursor:help;border:1px solid #d2a95559}.board-grid{grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px;margin:14px 0;display:grid}.board-btn{cursor:pointer;color:var(--ink);font-variant-numeric:tabular-nums;background:#0000004d;border:1px solid #d2a95540;border-radius:8px;padding:10px 4px;font:700 14px/1 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:relative}.board-btn:hover{border-color:var(--brass);background:#d2a95524}.board-btn.done{color:var(--good);opacity:.8}.board-btn.cur{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}.bd-check{color:var(--good);font-size:9px;position:absolute;top:2px;right:4px}.cards{display:flex}.seat-w .cards,.seat-e .cards{flex-direction:column}.card{aspect-ratio:5/7;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #8e9aa3;border-radius:7px;flex:none;width:clamp(50px,5.6vw,66px);font-size:15px;position:relative;overflow:hidden;box-shadow:1px 2px 5px #0006}.cards .card+.card{margin-left:calc(clamp(50px,5.6vw,66px)/-1.6129)}.seat-w .cards .card+.card,.seat-e .cards .card+.card{margin-top:calc(-1*clamp(50px,5.6vw,66px));margin-left:0}.seat-s .card{width:clamp(62px,6.8vw,84px);font-size:17px}.seat-s .cards .card+.card{margin-left:calc(clamp(62px,6.8vw,84px)/-1.92308)}.seat-n .cards.open-n .card+.card{margin-left:calc(clamp(50px,5.6vw,66px)/-2.17391)}.cards.open-side{flex-direction:column;gap:0}.cards.open-side .suit-row{display:flex}.cards.open-side .suit-row+.suit-row{margin-top:calc(clamp(44px,5vw,58px)/-1.72414)}.cards.open-side .card{width:clamp(44px,5vw,58px);font-size:14px}.cards.open-side .suit-row .card+.card{margin-top:0;margin-left:calc(clamp(44px,5vw,58px)/-2.17391)}.card .cr{text-align:center;letter-spacing:-1.5px;width:46%;font-family:Segoe UI,Arial Black,Arial,sans-serif;font-size:2.15em;font-weight:900;line-height:1.05;position:absolute;top:1%;left:0}.card .cs{text-align:center;width:46%;font-size:2em;line-height:1;position:absolute;top:46%;left:0}.card .pip{display:none}.trick-card .card .cr,.last-trick .card .cr,.trick-card .card .cs,.last-trick .card .cs{width:100%;left:0}.seat-w .cards>.card .cr,.seat-e .cards>.card .cr{letter-spacing:-1px;width:48%;font-size:1.5em;top:3%;left:3%}.seat-w .cards>.card .cs,.seat-e .cards>.card .cs{width:48%;font-size:1.35em;top:4%;left:49%}.cards.open-side .card .cr{width:52%;font-size:1.5em;top:2%}.cards.open-side .card .cs{width:52%;font-size:1.35em;top:29%}.card.s-s{color:var(--suit-s)}.card.s-h{color:var(--suit-h)}.card.s-d{color:var(--suit-d)}.card.s-c{color:var(--suit-c)}.card.red{color:var(--suit-h)}.card.blk{color:var(--suit-s)}.card.back{background:repeating-linear-gradient(45deg,#d2a95529 0 3px,#0000 3px 8px),repeating-linear-gradient(-45deg,#d2a95529 0 3px,#0000 3px 8px),linear-gradient(160deg,#1c3a4e,#12283a);border-color:#0e2233}.card.clickable{cursor:pointer;transition:transform .13s,box-shadow .13s}.card.clickable:hover{box-shadow:0 10px 18px #00000080, 0 0 0 2px var(--brass);z-index:5;transform:translateY(-12px)}.card.dim{filter:brightness(.55)saturate(.6)}.center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.center>*{pointer-events:auto}.glass{background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:16px}.auction-panel{width:max-content;padding:14px 18px}table.auction{border-collapse:collapse;font-variant-numeric:tabular-nums}table.auction th{color:var(--muted);letter-spacing:1px;border-bottom:1px solid #d2a95540;padding:2px 14px 7px;font-family:Palatino Linotype,Georgia,serif;font-size:13px;font-weight:400}table.auction th.me{color:var(--brass)}table.auction td{text-align:center;min-width:58px;padding:5px 10px}td.turn-cell{color:var(--brass);animation:1.1s infinite blink}td.turn-cell.advise{cursor:help;border:1px dashed var(--brass-dim);border-radius:8px;animation:none}td.turn-cell.advise:hover{background:#d2a95526}@keyframes blink{50%{opacity:.25}}.chip{border-radius:7px;padding:3px 10px;font-size:14px;font-weight:700;display:inline-block}.chip[title]{cursor:help}.chip[title]:hover{outline:1px dashed var(--brass-dim);outline-offset:2px}.chip.pass{color:var(--muted);font-weight:400}.chip.dbl{color:var(--bad)}.chip.bidc{background:#faf6eaf2;font-size:15px;box-shadow:0 2px 5px #0000004d}.chip.bidc.s-s{color:var(--suit-s)}.chip.bidc.s-h{color:var(--suit-h)}.chip.bidc.s-d{color:var(--suit-d)}.chip.bidc.s-c{color:var(--suit-c)}.chip.bidc.nt{color:#1c3a4e}.play-info{align-items:center;gap:14px;margin-bottom:4px;display:flex}.contract-chip{color:var(--brass);border:1px solid var(--brass-dim);background:#00000059;border-radius:999px;padding:5px 16px;font-family:Palatino Linotype,Georgia,serif;font-size:17px}.tricks{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.tricks b{color:var(--ink)}.trick-area{width:240px;height:220px;position:relative}.trick-card{animation:.3s ease-out drop;position:absolute}.trick-card.old{animation:none}.trick-card .card{width:66px;font-size:16px}.pos-n{top:0;left:50%;transform:translate(-50%)}.pos-s{bottom:0;left:50%;transform:translate(-50%)}.pos-w{top:50%;left:10px;transform:translateY(-50%)}.pos-e{top:50%;right:10px;transform:translateY(-50%)}@keyframes drop{0%{opacity:0;scale:.7}to{opacity:1;scale:1}}.status{color:var(--muted);max-width:34%;font-size:13px;position:absolute;bottom:10px;left:16px}.board-over{z-index:6;background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;max-width:min(560px,92%);padding:10px 14px;display:flex;position:absolute;top:63%;left:50%;transform:translate(-50%,-50%)}.board-over[hidden]{display:none}.board-over .bo-txt{color:var(--ink);font-size:14px}@media (max-width:700px){.board-over{gap:6px;padding:8px 10px;top:58%}.board-over .bo-txt{width:100%;font-size:13px}}.bidbox{z-index:20;width:320px;padding:14px;position:fixed;bottom:22px;right:22px}.bidbox-title{color:var(--brass);margin-bottom:10px;font-family:Palatino Linotype,Georgia,serif;font-size:15px}.bid-grid{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.bid-btn{cursor:pointer;border:1px solid var(--card-edge);background:#faf6eaf0;border-radius:7px;padding:8px 0;font:700 14px/1 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;transition:transform .1s}.bid-btn.s-s{color:var(--suit-s)}.bid-btn.s-h{color:var(--suit-h)}.bid-btn.s-d{color:var(--suit-d)}.bid-btn.s-c{color:var(--suit-c)}.bid-btn.nt{color:#1c3a4e}.bid-btn:not([disabled]):hover{box-shadow:0 0 0 2px var(--brass);transform:scale(1.08)}.bid-btn[disabled]{opacity:.18;cursor:default}.bid-special{gap:6px;margin-top:8px;display:flex}.bid-special .btn{background:#00000059;border:1px solid #d2a9554d;flex:1}.call-pass:not([disabled]){color:var(--good)}.call-x:not([disabled]),.call-xx:not([disabled]){color:var(--bad)}.bid-hint{color:var(--muted);height:50px;margin-top:10px;font-size:11px;line-height:1.5;overflow:hidden}.bid-hint.warn{color:#ff6b6b;background:#78141459;border:1px solid #ff6b6b8c;border-radius:8px;height:auto;max-height:130px;padding:6px 8px;font-weight:600;animation:.9s ease-in-out 2 warnpulse;overflow-y:auto}@keyframes warnpulse{0%,to{box-shadow:0 0 #ff6b6b00}50%{box-shadow:0 0 0 4px #ff6b6b73}}.quiz-seat{background:#00000040;border:1px solid #d2a95540;border-radius:10px;margin:10px 0;padding:8px 10px}.quiz-head{align-items:center;gap:8px;margin-bottom:6px;font-weight:600;display:flex}.quiz-head small{color:var(--muted);font-weight:400}.quiz-grid{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.quiz-grid label{align-items:center;gap:4px;font-size:13px;display:inline-flex}.quiz-grid input{width:52px;color:var(--ink);background:#00000059;border:1px solid #d2a95566;border-radius:6px;padding:4px 6px;font-size:14px}.quiz-cmp{font-size:13px;line-height:1.6}.quiz-cmp .good,.modal .good{color:var(--good);font-weight:700}.quiz-cmp .bad,.modal .bad{color:var(--bad);font-weight:700}.quiz-cmp .mid,.modal .mid{color:#d7b45f;font-weight:700}.quiz-alt{color:#d7b45f;margin-top:2px}.quiz-why{color:var(--muted);margin-top:6px;font-size:12px}.quiz-why ul{margin:4px 0 0 16px;padding:0}.quiz-why li{margin:2px 0}.modal .muted{color:var(--muted)}.btn.tiny{padding:2px 8px;font-size:11px}.modal{width:min(94vw,640px);max-width:640px}.modal-backdrop{z-index:50;background:#050a08a6;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-backdrop[hidden],.bidbox[hidden]{display:none}.modal{width:min(92vw,520px);max-width:520px;max-height:84vh;padding:26px 30px;overflow-y:auto}.modal h2{color:var(--brass);text-wrap:balance;margin:0 0 14px;font-family:Palatino Linotype,Georgia,serif;font-size:22px;font-weight:400}.modal h2 small{color:var(--muted);font-size:13px}.modal p{color:var(--ink);margin:8px 0}.modal p.big{font-size:17px}.modal p.good{color:var(--good);font-weight:600}.modal p.bad{color:var(--bad)}.modal p.note{color:var(--muted);font-size:13px}.modal .btn{margin-top:14px}.modal-actions{gap:10px;display:flex}.dropdown{position:static}.dd-group{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--glass-edge);margin-top:4px;padding:10px 12px 4px;font-size:12px}.dd-group:first-of-type{border-top:0;margin-top:0}.dropdown-menu{z-index:100;background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:300px;max-height:calc(100vh - 80px);box-shadow:var(--shadow);border-radius:12px;padding:10px;position:fixed;overflow-y:auto}.dropdown-menu[hidden]{display:none}.dd-title{color:var(--brass);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #d2a9552e;margin-bottom:6px;padding:4px 8px 8px;font-family:Palatino Linotype,Georgia,serif;font-size:13px}.dd-mode{gap:6px;padding:4px 8px 10px;display:flex}.dd-mode button{cursor:pointer;color:var(--muted);background:#0000004d;border:1px solid #d2a95540;border-radius:7px;flex:1;padding:7px 8px;font:600 12px/1 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.dd-mode button.on{color:var(--brass);border-color:var(--brass);background:#d2a9551f}.dd-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;align-items:baseline;gap:10px;padding:8px 10px;font:14px/1.2 Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex}.dd-item:hover{background:#d2a9551f;border-color:#d2a9554d}.dd-item .dd-call{min-width:44px;font-size:15px;font-weight:800}.dd-item .dd-desc{color:var(--muted);font-size:12px}.dd-group{align-items:center;gap:6px;display:flex}.dd-group .dd-item{flex:auto;min-width:0}.dd-group .dd-play{white-space:nowrap;flex:none}.dd-item.dd-grp .dd-call,.dd-item.dd-back{color:var(--brass)}.train-badge{color:var(--good);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;border:1px solid #86b97c73;border-radius:999px;padding:1px 8px;font-size:11px}.train-var{color:var(--muted);white-space:nowrap;font-size:12px}.train-info{z-index:3;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;background:#00000059;border:1px solid #86b97c40;border-radius:999px;align-items:center;gap:8px;max-width:44%;padding:4px 10px;display:flex;position:absolute;top:10px;left:16px;overflow:hidden}.train-info[hidden]{display:none}.board-info{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.top-actions{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:6px;min-width:0}.top-actions .btn{white-space:nowrap;flex:none}.topbar{flex-wrap:wrap;gap:8px 14px}.brand{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.board-info{flex:180px}@media (max-width:1100px){.brand-sub{display:none}.btn{padding:8px 11px;font-size:12px}}.mp-input{width:100%;color:var(--ink);background:#00000059;border:1px solid #d2a95559;border-radius:9px;margin:6px 0 14px;padding:11px 14px;font-size:15px;display:block}.mp-input:focus{outline:2px solid var(--brass);outline-offset:1px}.mp-table{color:var(--muted);margin:-4px 0 10px;font-size:13px}.mp-table b{color:var(--ink)}.mp-table a,.mp-table-link{color:var(--brass);text-decoration:none}.mp-table a:hover,.mp-table-link:hover{text-decoration:underline}.mp-tables{margin:0 0 10px;font-size:13px}.mp-tables:empty{display:none}.mp-tables-title{color:var(--muted);margin-bottom:4px}.mp-table-link{margin:0 10px 4px 0;display:inline-block}.mp-table-link span{color:var(--muted)}.auth-err{color:#ff9a8a;margin:0 0 8px}.auth-switch{color:var(--muted);margin-top:12px;font-size:13px}.auth-switch a{color:var(--brass)}.rank-wrap{max-height:50vh;margin:6px 0 10px;overflow:auto}table.rank{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}table.rank th{text-align:left;color:var(--muted);border-bottom:1px solid #ffffff1f;padding:4px 8px;font-weight:600}table.rank td{border-bottom:1px solid #ffffff0f;padding:5px 8px}table.rank .num{text-align:right}table.rank tr.me td{color:var(--brass);font-weight:600}table.rank a{color:var(--ink);text-decoration:none}table.rank a:hover{color:var(--brass);text-decoration:underline}table.rank td.good{color:#9fe0a8}table.rank td.bad{color:#ff9a8a}.prof-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:8px 0 12px;display:grid}.prof-stats div{text-align:center;background:#ffffff0d;border-radius:10px;padding:10px}.prof-stats b{color:var(--brass);font-size:22px;display:block}.prof-stats span{color:var(--muted);font-size:12px}.seat-pick{flex-direction:column;gap:8px;margin:14px 0;display:flex}.seat-btn{text-align:left;background:#00000040;border:1px solid #d2a95540;padding:12px 16px;font-weight:400}.seat-btn[disabled]{opacity:.55;cursor:default}.seat-btn.mine{border-color:var(--brass);opacity:.9}.seat-btn.free{cursor:pointer}.seat-btn.free:hover{border-color:var(--brass);background:#d2a95524}.seat-btn.free span{color:var(--brass)}.sys-h{color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;border-bottom:1px solid #d2a9552e;margin:16px 0 4px;padding-bottom:4px;font-family:Palatino Linotype,Georgia,serif;font-size:14px;font-weight:400}.sys-grid{grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0;font-size:14px;display:grid}.sys-k{color:var(--brass);white-space:nowrap;font-weight:700}.sys-v{color:var(--ink)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:900px){.brand-sub{display:none}.bidbox{width:280px;bottom:10px;right:10px}.status{display:none}}.quiz-grid label.s-s,.quiz-cmp .s-s{color:var(--ink)}.quiz-grid label.s-s .sym,.quiz-cmp .s-s .sym,.quiz-sym-s{text-align:center;min-width:18px;color:var(--suit-s);background:#faf6eaf2;border-radius:4px;padding:0 3px;font-weight:700;display:inline-block}.quiz-sym-h{color:var(--suit-h);font-weight:700}.quiz-sym-d{color:var(--suit-d);font-weight:700}.quiz-sym-c{color:var(--suit-c);font-weight:700}.quiz-grid label.s-h,.quiz-cmp .s-h{color:var(--suit-h)}.quiz-grid label.s-d,.quiz-cmp .s-d{color:var(--suit-d)}.quiz-grid label.s-c,.quiz-cmp .s-c{color:var(--suit-c)}.auction-side{z-index:6;opacity:.92;width:max-content;max-width:260px;padding:8px 10px;font-size:11px;position:absolute;top:14px;right:16px}.auction-side[hidden]{display:none}.auction-side-title{color:var(--brass);margin-bottom:4px;font-size:11px;font-weight:600}.auction-side .auction td,.auction-side .auction th{padding:1px 5px;font-size:11px}.modal-backdrop.quiz{background:0 0}.modal-backdrop.quiz .modal{border:1px solid #d2a95573;width:min(460px,60vw);max-width:460px;max-height:58vh;padding:14px 18px;box-shadow:0 10px 40px #0009}.modal-backdrop.quiz .modal h2{margin-top:0;font-size:18px}.modal-backdrop.quiz .quiz-seat{margin:6px 0;padding:6px 8px}.last-trick{z-index:6;opacity:.92;padding:6px 10px;position:absolute;bottom:12px;right:16px}.last-trick[hidden]{display:none}.last-trick-title{color:var(--brass);margin-bottom:4px;font-size:11px;font-weight:600}.last-trick-title small{color:var(--muted);font-weight:400}.last-trick-cards{gap:6px;display:flex}.last-trick .ltc{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:10px;display:flex}.last-trick .ltc.win .who{color:var(--good);font-weight:700}.last-trick .ltc .card{width:34px;font-size:11px}.last-trick .tricks-log{border-top:1px solid #d2a95533;margin-top:6px;padding-top:5px;display:none}.last-trick.expanded .tricks-log{max-height:30vh;display:block;overflow-y:auto}.last-trick{max-height:56vh}.tl-more{color:var(--brass);font-weight:400}.tl-more:after{content:" \15 be"}.last-trick.expanded .tl-more:after{content:" \15 b4"}.last-trick-title{cursor:pointer}.tricks-log-title{color:var(--brass);margin-bottom:4px;font-size:12px;font-weight:600}.tricks-log-title small{color:var(--muted);font-weight:400}.tl-row{white-space:nowrap;align-items:center;gap:6px;font-size:11px;line-height:1.9;display:flex}.tl-nr{color:var(--muted);text-align:right;min-width:16px}.tl-card{color:var(--muted)}.tl-card.win{color:var(--ink);font-weight:600}.tl-win{color:var(--good);margin-left:2px}.modal .tricks-log{margin:6px 0 10px}.modal .tl-row{font-size:13px}.last-trick .ltc .card .pip{display:none}.hint-toast{z-index:120;max-width:min(92vw,520px);color:var(--ink);padding:10px 14px;font-size:13px;line-height:1.4;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.hint-toast[hidden]{display:none}.hint-toast.top{text-align:center;max-width:min(92vw,640px);top:12px;bottom:auto}.bid-btn.armed,.bid-special .btn.armed{box-shadow:0 0 0 2px var(--brass);transform:scale(1.06)}.bid-btn.rowoff{display:none}.auction-side-title{cursor:pointer}@media (max-width:1000px){.topbar{gap:10px;padding:8px 10px}.brand{font-size:17px}.board-info{font-size:12px}.auction-side{max-width:220px}.modal-backdrop.quiz .modal{width:min(460px,80vw)}}@media (max-width:700px){body{font-size:14px}.topbar{flex-wrap:wrap;gap:4px 8px;padding:6px 8px}.brand{font-size:15px}.brand-sub{display:none}.board-info{order:3;width:100%;font-size:11px}.top-actions{-webkit-overflow-scrolling:touch;scrollbar-width:none;order:2;gap:6px;width:100%;padding-bottom:2px;overflow-x:auto}.top-actions::-webkit-scrollbar{display:none}.btn{padding:7px 10px;font-size:12px}.table-wrap{padding:6px}.felt{border-radius:14px}.seat-n{top:6px}.seat-s{bottom:6px}.seat-w{left:6px}.seat-e{right:6px}.seat{gap:3px}.seat-label .nm{padding:1px 7px;font-size:11px}.tag{padding:1px 5px;font-size:9px}.card{border-radius:4px;width:clamp(26px,7.5vw,40px);font-size:10px}.cards .card+.card{margin-left:calc(clamp(26px,7.5vw,40px)/-2)}.seat-w .cards .card+.card,.seat-e .cards .card+.card{margin-top:calc(-1.04*clamp(26px,7.5vw,40px));margin-left:0}.seat-s .card{width:clamp(38px,11.5vw,56px);font-size:13px}.seat-s .cards .card+.card{margin-left:calc(clamp(38px,11.5vw,56px)/-1.81818)}.seat-n .cards.open-n .card+.card{margin-left:calc(clamp(26px,7.5vw,40px)/-2.17391)}.cards.open-side .card{width:clamp(22px,6.2vw,30px);font-size:8px}.cards.open-side .suit-row+.suit-row{margin-top:calc(clamp(22px,6.2vw,30px)/-2)}.cards.open-side .suit-row .card+.card{margin-left:calc(clamp(22px,6.2vw,30px)/-2.17391)}.card .cr{letter-spacing:-.5px;width:44%;font-size:1.65em}.card .cs{width:44%;font-size:1.5em;top:47%}.seat-s .card .cr{font-size:1.9em}.seat-s .card .cs{font-size:1.7em}.cards.open-side .card .cr{width:54%;font-size:1.35em}.cards.open-side .card .cs{width:54%;font-size:1.2em;top:30%}.card.clickable:hover{transform:none}.auction-panel{border-radius:10px;padding:6px 8px}table.auction th{padding:1px 6px 4px;font-size:11px}table.auction td{min-width:40px;padding:2px 3px}.chip{padding:2px 6px;font-size:12px}.chip.bidc{font-size:12px}.play-info{gap:8px}.contract-chip{padding:3px 10px;font-size:13px}.tricks{font-size:11px}.trick-area{width:150px;height:140px}.trick-card .card{width:40px;font-size:11px}.pos-w{left:2px}.pos-e{right:2px}.status,.train-info{display:none}.train-badge{padding:0 5px;font-size:9px}.auction-side{max-width:56vw;padding:4px 7px;top:auto;bottom:96px;right:6px}.auction-side .auction{display:none}.auction-side.expanded .auction{display:table}.auction-side-title:after{content:" ▾";color:var(--muted)}.auction-side.expanded .auction-side-title:after{content:" ▴"}.last-trick{padding:4px 6px;top:auto;bottom:168px;right:6px}.seat-label .tag-popartii{display:none}.seat-n .seat-label,.seat-s .seat-label{flex-wrap:wrap;justify-content:center;max-width:60vw}.last-trick .ltc .card{width:24px;font-size:8px}.last-trick-cards{gap:3px}.bidbox{border-radius:14px 14px 0 0;order:3;width:100%;padding:6px 8px 8px;position:static;bottom:auto;right:auto}.bidbox-title{display:none}.bid-grid{gap:4px}.bid-btn{padding:7px 0;font-size:13px}.bid-special{gap:4px;margin-top:6px}.bid-special .btn{padding:7px 6px}.bid-hint{height:34px;margin-top:5px;font-size:10px;line-height:1.35}.bid-hint.warn{max-height:90px}.modal,.modal-backdrop.quiz .modal{width:94vw;max-width:94vw;max-height:88vh;padding:14px}.modal-backdrop.quiz .modal{max-height:72vh}.modal h2{margin-bottom:10px;font-size:18px}.modal-actions{flex-wrap:wrap}.modal .btn{margin-top:8px}.sys-grid{grid-template-columns:1fr;gap:2px 0;font-size:13px}.sys-k{margin-top:6px}.quiz-grid input{width:44px;font-size:13px}.dropdown-menu{min-width:0}.board-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}}@media (max-height:520px){.topbar{padding:4px 8px}.brand{font-size:14px}.btn{padding:5px 9px;font-size:11px}.table-wrap{padding:4px}.seat-n{top:2px}.seat-s{bottom:2px}.seat .seat-label{display:none}.seat-s .seat-label{display:flex}.card{width:clamp(24px,5vw,40px);font-size:10px}.seat-s .card{width:clamp(34px,7vw,52px);font-size:12px}.seat-s .cards .card+.card{margin-left:calc(clamp(34px,7vw,52px)/-1.81818)}.cards .card+.card{margin-left:calc(clamp(24px,5vw,40px)/-2)}.card .cr{width:44%;font-size:1.6em}.card .cs{width:44%;font-size:1.45em;top:47%}.seat-s .card .cr{font-size:1.85em}.seat-s .card .cs{font-size:1.65em}.seat-w .cards .card+.card,.seat-e .cards .card+.card{margin-top:calc(-1.06*clamp(24px,5vw,40px));margin-left:0}.trick-area{width:130px;height:110px}.trick-card .card{width:34px;font-size:10px}.bidbox{width:230px;padding:6px;position:fixed;bottom:6px;right:6px}.bidbox-title{display:none}body.bidding-open .seat-e{right:240px}body.bidding-open .seat-s{left:calc(50% - 118px)}body.bidding-open .center{right:236px}body.bidding-open .seat-n{left:calc(50% - 118px)}body.bidding-open .auction-side,body.bidding-open .last-trick{display:none}.bid-btn{padding:4px 0;font-size:11px}.bid-hint{height:28px;font-size:9px}.auction-panel{padding:4px 6px}table.auction td{min-width:36px;padding:1px 3px}.chip{padding:1px 5px;font-size:11px}.status{display:none}.modal,.modal-backdrop.quiz .modal{max-height:92vh;padding:10px 14px}.auction-side .auction{display:none}.auction-side.expanded .auction{display:table}.last-trick{display:none}}.lead-review{z-index:6;opacity:.95;cursor:pointer;max-width:340px;padding:8px 12px;font-size:12px;line-height:1.55;position:absolute;bottom:40px;left:16px}.lead-review[hidden]{display:none}.lead-review-title{color:var(--brass);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:11px;font-weight:700}.lead-review .chip.bidc{padding:1px 6px;font-size:12px}.lead-review .good{color:var(--good);font-weight:700}.lead-review .bad{color:var(--bad);font-weight:700}.lead-review.collapsed>div:not(.lead-review-title){display:none}@media (max-width:700px){.lead-review{max-width:60vw;padding:5px 8px;font-size:10px;bottom:6px;left:6px}}@media (max-height:520px){.lead-review{display:none}}.ana-h{color:var(--brass);border-top:1px solid #d2a95533;margin:16px 0 6px;padding-top:12px;font-family:Palatino Linotype,Georgia,serif;font-size:16px;font-weight:400}.ana-h small{color:var(--muted);font-size:11px}.ana-list{margin:6px 0 10px 18px;padding:0;font-size:13px;line-height:1.7}.ana-list li{margin:2px 0}.ana-list .chip.bidc{padding:1px 6px;font-size:12px}.deal-diagram{background:#00000040;border:1px solid #d2a95533;border-radius:12px;grid-template-columns:1fr 1fr 1fr;grid-template-areas:".n.""w.e"".s.";place-items:center;gap:4px 8px;margin:14px 0 4px;padding:10px;display:grid}.dd-n{grid-area:n}.dd-s{grid-area:s}.dd-w{grid-area:w;justify-self:start}.dd-e{grid-area:e;justify-self:end}.dh-hand{font-variant-numeric:tabular-nums;min-width:110px;font-size:12px;line-height:1.45}.dh-seat{color:var(--brass);margin-bottom:1px;font-weight:700}.dh-seat small{font-weight:400}.dh-row{white-space:nowrap;letter-spacing:.5px}.dh-sym{text-align:center;min-width:14px;display:inline-block}@media (max-width:700px){.deal-diagram{gap:2px 4px;padding:6px}.dh-hand{min-width:88px;font-size:10px}}.dd-table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:8px 0;font-size:13px}.dd-table th,.dd-table td{text-align:center;border-bottom:1px solid #d2a95526;padding:3px 12px}.dd-table thead th{color:var(--muted);font-weight:400}.dd-table tbody th{color:var(--brass)}.dd-table td.dd-make{color:var(--good);font-weight:700}.dd-note{color:var(--muted);padding:0 8px 8px;font-size:12px;line-height:1.4}.prob-task{font-size:15px;line-height:1.5}.prob-sol p{margin:6px 0;font-size:13px;line-height:1.6}.cp-list{margin:6px 0 10px;padding:0;font-size:13px;line-height:1.55;list-style:none}.cp-list li{background:#00000038;border:1px solid #0000;border-radius:8px;margin:6px 0;padding:7px 10px 7px 30px;position:relative}.cp-list li:before{font-weight:700;position:absolute;top:7px;left:9px}.cp-ok{border-color:#86b97c66!important}.cp-ok:before{content:"✓";color:var(--good)}.cp-bad{border-color:#d66a6a73!important}.cp-bad:before{content:"✗";color:var(--bad)}.cp-plan{border-color:#d2a95573!important}.cp-plan:before{content:"•";color:var(--brass)}.pc{color:#16212c;font-variant-numeric:tabular-nums;background:#f3efe4;border-radius:5px;padding:0 5px;font-weight:700;display:inline-block}.pc.s1,.pc.s2{color:#b32424}body.at-home{overflow:auto}body.at-home #app,.home[hidden]{display:none}.home{min-height:100vh;background:radial-gradient(1200px 600px at 70% -10%, #1e4b3a8c, transparent 60%), radial-gradient(900px 500px at -10% 110%, #123227b3, transparent 60%), var(--bg);min-height:100dvh}.home-top{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#131d18,#0d141199);border-bottom:1px solid #d2a9552e;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex;position:sticky;top:0}.home-user{flex-wrap:wrap;gap:8px;display:flex}.home-main{max-width:1120px;margin:0 auto;padding:28px 24px 60px}.home-hero{grid-template-columns:1.4fr 1fr;align-items:end;gap:28px;margin-bottom:26px;display:grid}.home-hero h1{color:var(--brass);letter-spacing:.5px;margin:0 0 8px;font-family:Palatino Linotype,Book Antiqua,Georgia,serif;font-size:clamp(30px,5vw,46px);font-weight:400}.home-lead{color:var(--muted);max-width:560px;margin:0 0 14px;font-size:16px}.home-guest{max-width:420px}.home-guest label{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.home-guest .mp-input{margin-bottom:4px}.home-guest .mp-input.need{outline:2px solid var(--bad)}.home-guest-msg{color:var(--muted);font-size:12px}.home-offline{background:#d07a6a14;border:1px solid #d07a6a73;border-radius:10px;margin:0 0 20px;padding:12px 16px;font-size:14px;line-height:1.5}.home-offline .btn{margin-left:8px}.home-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.home-stats:empty{display:none}.home-stats div{background:var(--glass);border:1px solid var(--glass-edge);text-align:center;border-radius:14px;padding:14px 10px}.home-stats b{color:var(--brass);font-variant-numeric:tabular-nums;font-size:26px;display:block}.home-stats span{color:var(--muted);font-size:12px}.home-tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:36px;display:grid}.tile{text-align:left;cursor:pointer;color:var(--ink);font:inherit;border:1px solid var(--glass-edge);box-shadow:var(--shadow);background:linear-gradient(160deg,#1e4b3a8c,#0e1a15e6);border-radius:16px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 18px 16px;transition:transform .12s,border-color .12s,background .12s;display:flex}.tile:hover{border-color:var(--brass);transform:translateY(-2px)}.tile:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.tile b{color:var(--ink);font-size:18px}.tile>span:last-child{color:var(--muted);font-size:13px}.tile-ico{background:var(--card-face);width:42px;height:42px;color:var(--blk);border-radius:50%;place-items:center;font-size:24px;display:grid;box-shadow:0 2px 6px #00000059}.tile-ico.s{color:var(--suit-s)}.tile-ico.h{color:var(--suit-h)}.tile-ico.d{color:var(--suit-d)}.tile-ico.c{color:var(--suit-c)}.tile-main{background:linear-gradient(160deg,#d2a95547,#1e4b3abf);border-color:#d2a95599}.home-lobby{scroll-margin-top:70px}.lobby-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.lobby-head h2{color:var(--brass);margin:0;font-family:Palatino Linotype,Book Antiqua,Georgia,serif;font-size:26px;font-weight:400}.lobby-actions{flex-wrap:wrap;gap:8px;display:flex}.lobby-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:10px;display:grid}.online-count{color:var(--muted);font-family:inherit;font-size:13px}.online-find{width:auto;min-width:180px;margin:0}.fr-list{gap:8px;margin-top:10px;display:grid}.fr-row{background:var(--glass);border:1px solid var(--glass-edge);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.fr-name{font-weight:600}.fr-stan{color:var(--good);flex:1;font-size:12px}.fr-stan.busy{color:var(--muted)}.fr-sent{color:var(--brass);white-space:nowrap;font-size:12px}.fr-row .btn{margin:0}.fr-head{color:var(--brass);margin:16px 0 0;font-size:15px}.fr-link{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.fr-link code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;overflow:hidden}.fr-link .btn{margin:0}.modal .fr-list{max-height:44vh;overflow:auto}.lobby-table{background:var(--glass);border:1px solid var(--glass-edge);border-radius:16px;padding:12px 14px}.lobby-table header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.lobby-table h3{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;overflow:hidden}.lt-free{color:var(--good);white-space:nowrap;font-size:12px}.lt-free.full{color:var(--muted)}.lt-mode{color:var(--muted);margin:2px 0 10px;font-size:12px}.lt-compass{grid-template:".n.""w f e"".s."/1fr 1fr 1fr;align-items:center;gap:6px;display:grid}.lt-felt{background:radial-gradient(circle, var(--felt1), var(--felt2));border:1px solid var(--felt-edge);border-radius:10px;grid-area:f;height:34px}.lt-seat{font:inherit;text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;min-width:0;padding:5px 4px;font-size:12px;overflow:hidden}.lt-seat.n{grid-area:n}.lt-seat.e{grid-area:e}.lt-seat.s{grid-area:s}.lt-seat.w{grid-area:w}.lt-seat.taken{color:var(--ink);background:#ffffff0f}.lt-seat.taken.away{opacity:.55}.lt-seat.free{color:var(--brass);cursor:pointer;background:0 0;border:1px dashed #d2a9558c}.lt-seat.free:hover{background:#d2a95524;border-style:solid}.lt-dir{color:var(--muted);margin-right:4px;font-weight:700;display:inline-block}.lt-acct{color:var(--good)}.lobby-table footer{margin-top:10px;font-size:12px}.lobby-table footer a{color:var(--brass);text-decoration:none}.lobby-table footer a:hover{text-decoration:underline}@media (max-width:720px){.home-top{padding:10px 14px}.home-top .brand-sub{display:none}.home-main{padding:18px 16px 40px}.home-hero{grid-template-columns:1fr;gap:16px}.home-tiles{grid-template-columns:1fr 1fr;gap:10px}.tile{padding:14px 12px}.tile b{font-size:15px}.tile>span:last-child{font-size:12px}.tile-ico{width:34px;height:34px;font-size:19px}}@media (max-width:380px){.home-tiles{grid-template-columns:1fr}}.chat-btn{position:relative}.chat-badge{background:var(--bad);color:#fff;text-align:center;min-width:18px;height:18px;box-shadow:0 0 0 2px var(--bg);border-radius:9px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-6px;right:-6px}.chat-badge[hidden],.chat-panel[hidden]{display:none}.chat-panel{z-index:25;flex-direction:column;width:320px;height:min(420px,60vh);padding:10px 12px 12px;display:flex;position:fixed;bottom:22px;left:22px}.chat-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.chat-head b{color:var(--brass);font-family:Palatino Linotype,Georgia,serif;font-size:15px;font-weight:400}.chat-close{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 6px;font-size:16px}.chat-close:hover{color:var(--ink);background:#ffffff0f}.chat-list{flex-direction:column;flex:1;gap:6px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.chat-empty{color:var(--muted);text-align:center;margin:auto 0;padding:0 10px;font-size:13px}.cm{background:#ffffff0a;border-radius:10px;align-self:flex-start;max-width:92%;padding:5px 9px}.cm.mine{background:#d2a95524;align-self:flex-end}.cm-head{color:var(--muted);align-items:baseline;gap:6px;font-size:12px;display:flex}.cm-head b{color:var(--ink);font-weight:600}.cm-head time{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:8px}.cm-seat{color:var(--brass);font-weight:700}.cm-seat.watch{font-weight:400}.cm-acct{color:var(--good)}.cm-text{overflow-wrap:anywhere;white-space:pre-wrap;font-size:14px}.chat-err{color:var(--bad);min-height:0;font-size:12px}.chat-err:not(:empty){margin:4px 0 0}.chat-form{gap:6px;margin-top:8px;display:flex}.chat-form .mp-input{flex:1;min-width:0;margin:0}@media (max-width:700px){.chat-panel{width:auto;height:55vh;z-index:40;border-radius:16px 16px 0 0;height:55dvh;bottom:0;left:0;right:0}}@media (max-height:520px){.chat-panel{border-radius:14px;width:300px;height:auto;top:6px;bottom:6px;left:6px}}.ana-sub{color:var(--ink);margin:10px 0 2px;font-size:13px;font-weight:600}.ana-more{margin:6px 0}.ana-more summary{cursor:pointer;color:var(--brass);padding:3px 0;font-size:13px}.ana-wait{animation:1.4s infinite blink}.trick-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;max-width:420px;margin:6px 0 2px;font-size:13px}.trick-table th{color:var(--muted);border-bottom:1px solid #d2a95540;padding:2px 6px;font-weight:400}.trick-table td{text-align:center;border-bottom:1px solid #ffffff0a;padding:2px 6px}.tt-card{white-space:nowrap}.tt-card.lead{font-weight:700}.tt-card.win{background:#d2a9552e;border-radius:6px}.tt-card.s0{color:#6fcf8a}.tt-card.s1{color:#f0a050}.tt-card.s2{color:#ff7a72}.tt-card.s3{color:var(--ink)}.tt-card.mist{outline:1px dashed var(--bad);outline-offset:-2px;cursor:help;border-radius:6px}.tt-card.mist.mine{outline-style:solid}.tt-card sup,.mist-key{color:var(--bad);font-weight:700}.tt-score{color:var(--muted)}@media (max-width:380px){.tt-score{display:none}}.bid-rev{margin:6px 0 8px 20px;padding:0;font-size:13px;line-height:1.6}.bid-rev li{margin:4px 0}.bid-rev .chip{padding:1px 7px;font-size:12px}.br-ok::marker{color:var(--good)}.br-diff::marker{color:var(--bad)}.br-m{color:var(--muted)}.br-sys{margin-top:2px}.br-warn{color:var(--bad);font-size:12px}.pg-chart{width:100%;height:auto;margin:2px 0 4px;display:block;overflow:visible}.pg-axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.pg-val{fill:var(--ink);font-size:10px;font-weight:600}.pg-zero{stroke:#ece7d873;stroke-width:1px}.pg-grid{stroke:#ece7d81a;stroke-width:1px}.pg-hit{cursor:help}.pg-hit:hover rect,rect.pg-hit:hover{fill:#ffffff0d}.pg-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:2px 0 6px;font-size:12px;display:flex}.pg-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.pg-legend b{color:var(--ink)}.pg-bid{margin:8px 0;font-size:13px}.pg-table td,.pg-table th{font-size:12px}.event-list{flex-direction:column;gap:10px;display:flex}.event-card{background:#ffffff08;border:1px solid #d2a9552e;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.event-card h3{color:var(--ink);margin:0 0 2px;font-size:16px;font-weight:600}.ev-meta{color:var(--muted);font-size:13px}.ev-actions{gap:8px;display:flex}.ev-label{color:var(--muted);margin:8px 0 2px;font-size:13px;display:block}.ev-src{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;font-size:14px;display:flex}.ev-select{width:auto;margin:0;padding:4px 8px}.ev-file{color:var(--muted);width:100%;padding-left:22px;font-size:12px}.ev-proto td,.ev-proto th{font-size:12px}table.rank tr.me td{background:#d2a9551f}body.event-table #btnReplay,body.event-table #btnUndo,body.event-table #btnUndoStep,body.event-table #btnAutoBid,body.event-table #btnStrongAI,body.event-table #btnTournament,body.event-table #btnExitTournament,body.event-table #btnInvite,body.event-table #trainWrap,body.event-table #probWrap,body.event-table #btnBoards{display:none!important}@media (max-width:520px){.ev-actions{width:100%}.ev-actions .btn{flex:1}}#events{margin-top:28px}.ev-done{color:var(--good);align-self:center;padding:0 6px;font-size:13px}.tile-course{background:linear-gradient(160deg,#86b97c38,#1e4b3abf);border-color:#86b97c8c}.course[hidden]{display:none}.course{max-width:760px;margin:0 auto;padding:22px 24px 60px}.course-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.course-title{color:var(--brass);margin:0 0 10px;font-family:Palatino Linotype,Book Antiqua,Georgia,serif;font-size:clamp(26px,4.5vw,36px);font-weight:400}.course-progress{background:#ffffff14;border-radius:4px;height:8px;margin-top:4px;overflow:hidden}.course-progress div{background:var(--good);border-radius:4px;height:100%;transition:width .3s}.course-list{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.course-item{text-align:left;width:100%;font:inherit;cursor:pointer;background:var(--glass);border:1px solid var(--glass-edge);color:var(--ink);border-radius:14px;align-items:center;gap:14px;padding:12px 14px;transition:border-color .15s,transform .15s;display:flex}.course-item:hover{border-color:var(--brass);transform:translateY(-1px)}.course-item:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.course-item.next{border-color:#d2a955b3}.ci-nr{width:36px;height:36px;color:var(--brass);background:#d2a95526;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.course-item.done .ci-nr{color:var(--good);background:#86b97c33}.ci-txt{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ci-txt b{font-size:16px}.ci-txt span{color:var(--muted);font-size:13px}.ci-tag{color:#1a140a;background:var(--brass);border-radius:10px;flex:none;padding:2px 9px;font-size:12px}.su0{color:#5cb26e}.su1{color:#ec9447}.su2{color:#ef6a62}.su3{color:var(--ink)}.lesson-steps{gap:4px;margin:0 0 14px;display:flex}.lesson-steps span{background:#ffffff1a;border-radius:3px;flex:1;height:5px}.lesson-steps span.past{background:#86b97c99}.lesson-steps span.now{background:var(--brass)}.lesson-card{background:var(--glass);border:1px solid var(--glass-edge);border-radius:16px;padding:18px 20px;font-size:16px;line-height:1.55}.lesson-card p{margin:0 0 12px}.lesson-card ul,.lesson-card ol{margin:0 0 12px;padding-left:22px}.lesson-card li{margin:4px 0}.lesson-card>:last-child{margin-bottom:0}.lq{font-size:17px;font-weight:600}.lh{background:#00000040;border-radius:12px;gap:2px;margin:0 0 14px;padding:10px 16px;font-size:19px;display:inline-grid}.lh-row{align-items:baseline;gap:12px;display:flex}.lh-row .su{text-align:center;width:18px}.lh-ranks{letter-spacing:1px;font-variant-numeric:tabular-nums}.lt-trick{flex-wrap:wrap;gap:10px;margin:0 0 14px;display:flex}.ltc{flex-direction:column;align-items:center;gap:3px;display:flex}.ltc small{color:var(--muted);font-size:12px}.ltc .pc{padding:6px 10px;font-size:20px}.lq-opts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.lq-opt{font:inherit;cursor:pointer;text-align:center;color:var(--ink);background:#ffffff0d;border:1px solid #d2a95559;border-radius:10px;padding:11px 12px;font-size:16px}.lq-opt:hover:not([disabled]){border-color:var(--brass);background:#d2a95524}.lq-opt:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.lq-opt[disabled]{cursor:default;opacity:.55}.lq-opt.right{border-color:var(--good);opacity:1;background:#86b97c29}.lq-opt.right:before{content:"✓ ";color:var(--good)}.lq-opt.wrong{border-color:var(--bad);opacity:1;background:#d07a6a29}.lq-opt.wrong:before{content:"✗ ";color:var(--bad)}.lq-hcp{gap:8px;max-width:280px;display:flex}.lq-hcp .mp-input{margin:0}.lq-hcp .mp-input.right{outline:2px solid var(--good)}.lq-hcp .mp-input.wrong{outline:2px solid var(--bad)}.lq-why:empty{display:none}.lq-why{border-left:3px solid var(--muted);background:#0003;border-radius:10px;margin-top:14px;padding:10px 12px}.lq-why.ok{border-left-color:var(--good)}.lq-why.ok b{color:var(--good)}.lq-why.bad{border-left-color:var(--bad)}.lq-why.bad b{color:var(--bad)}.lesson-nav{justify-content:space-between;gap:10px;margin-top:16px;display:flex}.lesson-nav.end{flex-wrap:wrap;justify-content:center}.lesson-end{text-align:center}.le-badge{width:56px;height:56px;color:var(--good);background:#86b97c2e;border-radius:50%;place-items:center;margin:0 auto 10px;font-size:28px;display:grid}.le-name{max-width:300px;color:var(--muted);text-align:left;margin:0 auto 6px;font-size:14px;display:block}.le-name .mp-input.need{outline:2px solid var(--bad)}@media (max-width:720px){.course{padding:16px 16px 40px}.lesson-card{padding:14px;font-size:15px}}.tile-daily{border-color:#d2a95599}.ev-daily{vertical-align:middle;color:#1a140a;background:var(--brass);border-radius:9px;margin-left:4px;padding:1px 7px;font-size:11px;font-weight:400}.home-top-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.course-part{color:var(--brass);margin:26px 0 0;font-family:Palatino Linotype,Book Antiqua,Georgia,serif;font-size:21px;font-weight:400}.course-part small{color:var(--muted);margin-left:6px;font-family:inherit;font-size:13px}.rp-diagram{grid-template-areas:".n.""w c e"".s."}.rp-center{background:#00000040;border-radius:10px;grid-area:c;grid-template-rows:repeat(3,26px);grid-template-columns:repeat(3,34px);grid-template-areas:".n.""w.e"".s.";place-items:center;gap:2px;padding:6px;display:grid}.rp-slot.rp-n{grid-area:n}.rp-slot.rp-s{grid-area:s}.rp-slot.rp-w{grid-area:w}.rp-slot.rp-e{grid-area:e}.rp-slot .rp-c{color:#1d1d1d;text-align:center;background:#f6f1e4;border-radius:4px;min-width:26px;padding:1px 4px;font-size:13px;font-weight:700;display:inline-block}.rp-slot .rp-c.quiz-sym-h,.rp-slot .rp-c.quiz-sym-d{color:#c0262d}.rp-slot.win .rp-c{outline:2px solid var(--brass)}.rp-slot.mist .rp-c{box-shadow:0 0 0 2px #d95926}.rp-next{text-underline-offset:2px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.rp-score,.rp-say{margin:6px 0;font-size:14px}.rp-mist{background:#d959261f;border-left:3px solid #d95926;border-radius:4px;margin:6px 0;padding:6px 10px;font-size:14px}.rp-ctrl{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.rp-b{min-width:44px;padding:6px 10px}.rp-b:disabled{opacity:.4;cursor:default}.rp-mini{padding:2px 8px;font-size:12px}@media (max-width:700px){.rp-center{grid-template-rows:repeat(3,22px);grid-template-columns:repeat(3,30px);padding:3px}.rp-slot .rp-c{min-width:22px;font-size:11px}}.mx-meter{vertical-align:middle;background:#ffffff1f;border-radius:3px;width:60px;height:6px;display:inline-block;overflow:hidden}.mx-meter>span{background:#d95926;border-radius:3px;height:100%;display:block}.mx-tip{border-left:3px solid var(--brass);background:#d2a9551a;border-radius:4px;margin:8px 0;padding:8px 10px;font-size:14px;line-height:1.5}.home-tabs{border-bottom:1px solid #d2a95538;flex-wrap:wrap;gap:8px;margin:18px 0 14px;padding-bottom:10px;display:flex}.home-tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:600}.home-tab:hover{color:var(--ink);background:#ffffff0a}.home-tab.on{color:var(--bg);background:var(--brass);border-color:var(--brass)}.home-sec[hidden]{display:none}.sec-lead{color:var(--muted);max-width:70ch;margin:0 0 16px;font-size:14px;line-height:1.6}.gate{z-index:45;background:radial-gradient(ellipse at 50% 30%, var(--felt1) 0%, var(--felt2) 55%, var(--bg) 100%);justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.gate[hidden]{display:none}body.at-gate{overflow:hidden}.gate-box{text-align:center;border-radius:18px;width:min(440px,100%);padding:28px 28px 22px}.gate-brand{justify-content:center;margin-bottom:18px;font-size:22px}.gate-h{color:var(--ink);margin:0 0 10px;font-family:Palatino Linotype,Georgia,serif;font-size:26px}.gate-lead{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.6}.gate-actions{flex-direction:column;gap:10px;display:flex}.gate-btn{width:100%;padding:12px;font-size:16px}.gate-note{margin:16px 0 0;font-size:13px}.gate-note a,.gate-foot a{color:var(--brass)}.gate-foot{color:var(--muted);min-height:18px;margin:14px 0 0;font-size:13px}.tile-review{border-color:#d9592673}.rv-modal .modal{width:min(94vw,760px);max-width:760px}.rv-intro{color:var(--muted);margin:6px 0 12px;font-size:13px;line-height:1.5}.rv-list{flex-direction:column;gap:6px;max-height:48vh;margin-bottom:12px;display:flex;overflow-y:auto}.rv-row{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:#ffffff0a;border:1px solid #d2a95538;border-radius:10px;grid-template-columns:92px 1fr auto auto;align-items:center;gap:10px;padding:9px 12px;display:grid}.rv-row:hover{background:#d2a9551f;border-color:#d2a95580}.rv-row:focus-visible{background:#d2a9551f;border-color:#d2a95580}.rv-kind{letter-spacing:.4px;text-transform:uppercase;text-align:center;color:var(--brass);background:#d2a95529;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.rv-kind-play{color:var(--good);background:#86b97c29}.rv-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.rv-row-main b{font-size:14px}.rv-row-co{color:var(--muted);font-size:13px}.rv-row-no{color:var(--muted);white-space:nowrap;font-size:12px}.rv-row-go{color:var(--brass);white-space:nowrap;font-size:12px}.rv-what{background:#d959261f;border-left:3px solid #d95926;border-radius:8px;margin:8px 0 12px;padding:8px 12px;font-size:14px;line-height:1.5}.rv-what-l{color:var(--muted);margin-right:4px}.rv-what-h{color:var(--brass);margin:14px 0 6px;font-size:15px}.rv-mist{margin:6px 0 10px;padding-left:18px;line-height:1.6}.rv-mist li{margin-bottom:4px}.rv-mist li.good{color:var(--good)}.rv-mist li.bad{color:var(--bad)}.rv-ctx{color:var(--muted);margin:4px 0;font-size:13px}.rv-task{margin:8px 0;font-size:15px;line-height:1.5}.rv-left{color:var(--muted);text-align:right;margin-top:10px;font-size:12px}.rv-hands{background:#00000047;border-radius:12px;flex-wrap:wrap;gap:12px 26px;margin:12px 0;padding:12px;display:flex}.rv-hands .dh-hand{min-width:220px;font-size:14px;line-height:1.4}.rv-hands .dh-seat{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px}.rv-mine .dh-seat{color:var(--brass)}.rv-suit{align-items:center;gap:8px;margin:3px 0;display:flex}.rv-sym{text-align:center;width:16px;font-size:15px}.rv-cards{flex-wrap:wrap;gap:3px;display:flex}.rv-empty{color:var(--muted)}.rv-hands .card{width:34px;height:48px;font-size:13px}.rv-hands .card .pip{display:none}.rv-hands .card.dim{opacity:.58}.rv-pick{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0;line-height:0}.rv-pick .card{transition:transform .12s;box-shadow:0 0 0 2px #d2a9558c}.rv-pick:hover .card{box-shadow:0 0 0 2px var(--brass);transform:translateY(-4px)}.rv-pick:focus-visible .card{box-shadow:0 0 0 2px var(--brass);transform:translateY(-4px)}.rv-auc{margin:10px 0;font-size:14px;line-height:2.1}.rv-opts{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.rv-opt{min-width:70px;font-size:15px}.rv-added{margin-top:8px}@media (max-width:700px){.rv-row{grid-template-columns:1fr auto;row-gap:4px}.rv-kind{grid-row:1;justify-self:start}.rv-row-main{grid-column:1/-1}.rv-hands .dh-hand{min-width:0}.rv-hands .card{width:30px;height:42px;font-size:12px}}.sh-l{color:var(--muted);margin:8px 0 4px;font-size:13px;display:block}.sh-in{box-sizing:border-box;width:100%;font:inherit;color:inherit;background:#0000004d;border:1px solid #d2a95559;border-radius:8px;padding:8px 10px;font-size:13px}.sh-row{justify-content:flex-start}.sh-pre{white-space:pre-wrap;background:#00000040;border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.5}body.big{--muted:#c9d6cc;--ink:#fbf8ee;font-size:17px}body.big .btn{padding:9px 14px;font-size:15px}body.big .note,body.big small{font-size:.95em}body.big .card{width:clamp(58px,6.4vw,76px);font-size:17px}body.big .cards .card+.card{margin-left:calc(clamp(58px,6.4vw,76px)/-1.72414)}body.big .seat-w .cards:not(.open-side) .card+.card,body.big .seat-e .cards:not(.open-side) .card+.card{margin-top:calc(clamp(58px,6.4vw,76px)/-1.02041);margin-left:0}body.big .cards.open-side .card{width:clamp(50px,5.6vw,64px);font-size:16px}body.big .cards.open-side .suit-row+.suit-row{margin-top:calc(clamp(50px,5.6vw,64px)/-1.72414)}body.big .cards.open-side .suit-row .card+.card{margin-top:0;margin-left:calc(clamp(50px,5.6vw,64px)/-2.17391)}body.big .seat-s .card{width:clamp(76px,8.2vw,100px);font-size:20px}body.big .seat-s .cards .card+.card{margin-left:calc(clamp(76px,8.2vw,100px)/-2)}body.big .trick-card .card{width:80px;font-size:19px}body.big .chip,body.big .modal,body.big .home-lead,body.big .tile span{font-size:16px}.btn.toggle.on{border-color:var(--brass);color:var(--brass)}@media (max-width:700px){body.big{font-size:16px}body.big .btn{padding:8px 11px;font-size:14px}body.big .card{width:clamp(28px,8vw,42px);font-size:11px}body.big .cards .card+.card{margin-left:calc(clamp(28px,8vw,42px)/-2)}body.big .seat-w .cards:not(.open-side) .card+.card,body.big .seat-e .cards:not(.open-side) .card+.card{margin-top:calc(-1.02*clamp(28px,8vw,42px));margin-left:0}body.big .cards.open-side .card{width:clamp(22px,6.2vw,30px);font-size:8px}body.big .cards.open-side .suit-row+.suit-row{margin-top:calc(clamp(22px,6.2vw,30px)/-2)}body.big .cards.open-side .suit-row .card+.card{margin-left:calc(clamp(22px,6.2vw,30px)/-2.17391)}body.big .seat-s .card{width:clamp(40px,12vw,58px);font-size:15px}body.big .seat-s .cards .card+.card{margin-left:calc(clamp(40px,12vw,58px)/-1.78571)}body.big .seat-s .card .cr{font-size:2em}body.big .trick-card .card{width:46px;font-size:13px}}.tile-mini{border-color:#86b97c73}.mini-pts{flex-wrap:wrap;gap:8px 18px;font-size:16px;display:flex}.mini-pts span{background:#00000040;border-radius:8px;padding:4px 10px}.home-start{box-shadow:var(--shadow);background:linear-gradient(160deg,#d2a95524,#0e1a15e6);border:1px solid #d2a95573;border-radius:16px;margin-bottom:26px;padding:18px 20px}.home-start[hidden]{display:none}.st-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.st-head h2{color:var(--brass);margin:0 0 2px;font-size:20px}.st-head .note{margin:0}.st-steps{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}.st-step{background:var(--glass);border:1px solid var(--glass-edge);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.st-step.next{border-color:var(--brass)}.st-step.done{opacity:.7}.st-step .btn{align-self:flex-start;margin-top:auto}.st-num{width:28px;height:28px;color:var(--brass);background:#d2a95533;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.st-step.done .st-num{background:var(--good);color:#0d1411}.st-body b{color:var(--ink)}.st-time{color:var(--muted);font-size:12px}.st-text{color:var(--muted);margin-top:4px;font-size:14px;display:block}.st-tip{margin:0 0 8px;padding-left:18px}.st-tip li{margin-bottom:8px}@media (max-width:760px){.st-steps{grid-template-columns:1fr}.home-start{padding:14px}}body.big .st-text,body.big .st-tip li{font-size:17px}
