:root{color-scheme:dark;--ink:#f7f0df;--muted:#b8b7aa;--surface:#23251f;--line:#44483c;--gold:#f1bd43;--red:#d4503f;--blue:#5fa8d3;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#171813;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% 0,#283b2f 0,transparent 38rem),#171813;min-height:100vh}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}.top-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:12px max(20px,calc((100% - 1200px)/2));background:#171813ee;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.wordmark{display:flex;gap:6px;align-items:center;color:var(--gold);text-decoration:none}.wordmark small{font-size:9px}.top-nav nav{display:flex;gap:8px;align-items:center}.top-nav nav a,.bottom-nav a{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:10px;transition:color .15s ease,background-color .15s ease}.top-nav nav a:hover,.top-nav nav a:focus-visible{color:var(--ink);background:var(--surface)}.top-nav nav a{display:inline-flex;align-items:center;gap:7px}.top-nav nav a span:first-child{display:grid;place-items:center;opacity:.85}.top-nav nav a span:first-child svg{width:16px;height:16px}.admin-link{border:1px solid var(--gold)}#shell{width:min(1200px,100%);margin:auto;padding:38px 24px 100px}.hero{position:relative;padding:clamp(42px,8vw,100px) 0;max-width:760px;isolation:isolate}.hero::before{content:"♠";position:absolute;z-index:-1;right:clamp(-40px,-2vw,10px);top:-40px;color:#f1bd431a;font:800 clamp(220px,26vw,420px)/1 Georgia,serif;pointer-events:none}.hero h1,.detail-hero h1,.page-heading h1{font-family:Georgia,serif;font-size:clamp(38px,7vw,76px);line-height:.96;margin:12px 0}.hero p,.page-heading p,.detail-hero p{font-size:clamp(17px,2vw,22px);color:var(--muted)}.eyebrow{color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.13em}.button,button{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:11px 16px;background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 1px 0 #ffffff0d inset,0 3px 8px #00000030;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease,background-color .12s ease,border-color .12s ease}.button:hover:not(:disabled),button:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 1px 0 #ffffff14 inset,0 6px 16px #00000040}.button:active:not(:disabled),button:active:not(:disabled){transform:translateY(1px);filter:brightness(.97);box-shadow:0 1px 0 #ffffff0d inset,0 2px 5px #00000030}.button:disabled,button:disabled{cursor:default;opacity:.5;box-shadow:none;filter:none}.primary{background:linear-gradient(155deg,#ffd876,var(--gold) 60%,#d99f2c);border-color:#f8df9a;color:#211a0c;font-weight:800}.secondary{background:var(--surface)}.danger{background:transparent;border-color:var(--red);color:#ffaea2}.text-button{border:0;background:none;box-shadow:none;text-decoration:underline;min-height:0;padding:0;font-weight:600}.hero-cta{font-size:18px;padding:15px 24px;box-shadow:0 1px 0 #ffffff14 inset,0 10px 26px #00000050}.content-section{margin:42px 0}.content-section>h2{font-family:Georgia,serif;font-size:30px}.card-grid,.play-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.tournament-card,.play-option,.recovery-card,.community-card,.registration-panel,.match-card,.admin-row,.metrics-grid article{background:linear-gradient(145deg,#292c25,#20221d);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 26px #00000030;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.tournament-card,.play-option,.recovery-card{position:relative;overflow:hidden}.tournament-card::before,.play-option::before,.recovery-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--gold),#d99f2c)}.play-option:hover,.tournament-card:hover{transform:translateY(-3px);border-color:#5c6152;box-shadow:0 16px 34px #00000045}.card-top{display:flex;justify-content:space-between;gap:12px}.tournament-card progress{width:100%;accent-color:var(--gold)}.muted{color:var(--muted)}.status,.participant-state{display:inline-block;font-weight:800;font-size:12px;letter-spacing:.06em}.status-running,.status-check_in,.state-offered{color:var(--gold)}.status-finished,.state-champion,.success-copy{color:#78db9e}.view-state{border:1px dashed var(--line);padding:22px;border-radius:14px;color:var(--muted)}.view-state.error,.view-state.forbidden{border-color:var(--red);color:#ffc1b9}.view-state.warning{border-color:var(--gold);color:#ffdf8e}.facts-grid,.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:24px 0}.facts-grid div{padding:16px;border-left:3px solid var(--gold);background:var(--surface)}.facts-grid small,.facts-grid strong{display:block}.registration-panel{margin:24px 0}.registration-panel>*{margin-right:8px}.countdown-strip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:var(--gold);color:#211a0c;padding:14px 20px;border-radius:14px}.countdown{font:800 25px ui-monospace,monospace}.participant-list{list-style:none;padding:0}.participant-list li,.participant-admin-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.round-tabs{display:flex;gap:8px;overflow:auto;margin:20px 0}.round-tabs button[aria-pressed=true]{background:var(--gold);color:#211a0c}.bracket-board{display:flex;gap:20px;overflow-x:auto;align-items:stretch}.bracket-round{min-width:280px;display:flex;flex-direction:column;gap:14px}.match-card{position:relative}.entrant{display:flex;justify-content:space-between;padding:9px;border-bottom:1px solid var(--line)}.entrant.winner{color:var(--gold);font-weight:800}.my-match{border:2px solid var(--gold)}.my-match-label{position:absolute;right:10px;top:-10px;background:var(--gold);color:#211a0c;padding:3px 8px;font-size:10px;font-weight:900}.champion-view{text-align:center;padding:40px;background:radial-gradient(circle,#614a16,#24241d 70%);border-radius:20px}.champion-avatar{width:90px;height:90px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#211a0c;font-size:44px;margin:20px auto}.admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-form label span{display:block;margin-bottom:7px;color:var(--muted)}.admin-form input,.admin-form select,.admin-form textarea{width:100%;min-height:44px;padding:10px;background:#161712;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.admin-form fieldset{grid-column:1/-1;border:1px solid var(--line)}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.notice-region{position:fixed;top:76px;right:16px;z-index:50;display:grid;gap:8px}.notice{max-width:360px;padding:14px 18px;background:#30342a;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 35px #0008}.notice.error{border-color:var(--red)}.bottom-nav{display:none}
@media(max-width:700px){#shell{padding:24px 14px 92px}.top-nav{padding:10px 14px}.top-nav nav>a:not(.admin-link){display:none}.wordmark small{display:none}.bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);bottom:0;left:0;right:0;z-index:30;background:#171813f5;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{display:grid;justify-items:center;gap:2px;font-size:11px;padding:8px 4px}.bottom-nav a span:first-child{display:grid;place-items:center}.bottom-nav a span:first-child svg{width:21px;height:21px}.hero{padding:40px 0}.admin-form{grid-template-columns:1fr}.bracket-board{display:block;overflow:visible}.bracket-round{display:none;min-width:0}.bracket-round.active{display:flex}.facts-grid{grid-template-columns:1fr 1fr}.participant-admin-row{align-items:flex-start;flex-wrap:wrap}.desktop-only{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.public-table-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.public-table-card{display:flex;flex-direction:column;gap:14px;background:linear-gradient(145deg,#292c25,#20221d);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 26px #00000030;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.public-table-card:hover{transform:translateY(-3px);border-color:#5c6152;box-shadow:0 16px 34px #00000045}.table-card-head,.table-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.table-card-head h3,.table-dialog-head h2{margin:0;font-family:Georgia,serif}.table-state{font-size:10px;font-weight:900;letter-spacing:.08em}.table-state.available{color:#78db9e}.table-state.waiting{color:var(--gold)}.table-card-seats{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.table-card-seats span{min-width:0;overflow-wrap:anywhere}.table-card-seats .empty{color:var(--muted)}.versus{color:var(--gold);font-size:11px;font-weight:900}.public-table-card>button{margin-top:auto}.public-table-dialog{width:min(520px,calc(100% - 28px));border:1px solid var(--line);border-radius:20px;padding:24px;background:#20221d;color:var(--ink);box-shadow:0 20px 70px #000b}.public-table-dialog::backdrop{background:#080a08c9;backdrop-filter:blur(4px)}.table-seats{list-style:none;padding:0;display:grid;gap:10px}.table-seat{display:flex;gap:10px;padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.table-seat.occupied{border-style:solid;color:var(--ink)}.seat-mark{color:var(--gold)}.table-lobby-actions{display:flex;flex-wrap:wrap;gap:10px}.table-lobby-feedback{min-height:24px;color:#ffcf78}
@media(max-width:700px){.public-table-grid{grid-template-columns:1fr}.table-lobby-actions>*{width:100%}}
@media(max-width:700px){.top-nav nav .admin-link{display:none}.top-nav nav{gap:0}.top-nav #app-login{padding-inline:10px}.detail-hero h1,.tournament-card h3,.participant-list span{overflow-wrap:anywhere}.round-tabs{max-width:100%}}
.public-table-group{margin-top:28px}.public-table-group>h3{font-family:Georgia,serif;font-size:24px}
.player-card{background:linear-gradient(145deg,#302d22,#20231d);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 12px 30px #00000038}.player-card-head{display:flex;align-items:center;gap:16px}.player-card-copy h2,.player-action-group h3{margin:.25rem 0}.player-card-copy p{margin:.4rem 0}.player-avatar{flex:0 0 58px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#211a0c;font:800 28px Georgia,serif}.player-actions{display:grid;grid-template-columns:1fr;gap:16px;margin-top:20px}.player-action-group{border:1px solid var(--line);border-radius:14px;padding:18px;background:#17181380}.player-action-buttons{display:flex;gap:10px;flex-wrap:wrap}.player-action-buttons button{flex:1 1 130px}@media(max-width:700px){.player-actions{grid-template-columns:1fr}.player-card{padding:18px}}
.match-settings-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:10px}.switch-group{display:flex;align-items:center;gap:10px}.switch-group-label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.switch-group-label+.switch-option,.switch-option+.switch-option{margin-left:-1px}.switch-option{min-height:32px;padding:5px 14px;border-radius:0;font-size:12px;font-weight:700;background:#171712;border:1px solid var(--line);color:var(--muted);box-shadow:none;transition:background-color .12s ease,color .12s ease}.switch-option:first-of-type{border-radius:999px 0 0 999px}.switch-option:last-of-type{border-radius:0 999px 999px 0}.switch-option:only-of-type{border-radius:999px}.switch-option:hover:not([aria-pressed=true]):not(:disabled){background:#20221c;color:var(--ink)}.switch-option[aria-pressed=true]{position:relative;z-index:1;background:linear-gradient(155deg,#ffd876,var(--gold) 60%,#d99f2c);border-color:#f8df9a;color:#211a0c}
.public-table-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player-avatar{overflow:hidden}.player-avatar img{width:100%;height:100%;object-fit:cover}@media(max-width:700px){.public-table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-table-card{padding:14px}.table-card-head h3{font-size:16px}}
#app-login{gap:8px;padding-inline:10px}.nav-avatar{position:relative;overflow:hidden;flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#211a0c;font:800 12px Georgia,serif}.nav-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}@media(max-width:700px){#app-login span:last-child{display:none}}
.game-shell{display:flex;flex-direction:column;gap:18px}.game-score{font:800 28px Georgia,serif;color:var(--gold);margin-right:10px}.game-turn-status{margin:0;color:var(--muted)}.opponent-chip{display:inline-flex;flex-direction:column;gap:2px;padding:8px 14px;margin:0 8px 8px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.opponent-chip.online strong::before{content:"● ";color:#78db9e;font-size:10px}.trick-play{display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;margin:0 8px 8px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:48px}.game-card{width:56px;height:82px;margin:0 6px 6px 0;border:1px solid var(--line);border-radius:10px;background:linear-gradient(160deg,#2c2f27,#1c1e19);color:var(--ink);font:800 16px Georgia,serif;cursor:pointer}.game-card.played{opacity:.4;cursor:default}.game-card.selected-for-cover{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset}.game-card:disabled{cursor:default;opacity:.55}.primary-controls,.envite-fan,.decision-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.primary-controls .armed{border-color:var(--gold);color:var(--gold)}.call-amount-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.call-amount-row input{min-height:44px;width:90px;padding:8px;background:#161712;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.call-menu{background:linear-gradient(145deg,#292c25,#20221d);border:1px solid var(--line);border-radius:18px;padding:20px;margin-top:14px}.call-menu>button,.call-menu>.call-amount-row,.call-menu>.button{margin:0 8px 8px 0}.lobby-seat-list{list-style:none;padding:0;display:grid;gap:8px}.lobby-seat-list li{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.lobby-status{color:var(--muted)}.result-tricks{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.trick-pill{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--line)}.trick-pill-win{color:#78db9e;border-color:#78db9e}.trick-pill-loss{color:#ffaea2;border-color:var(--red)}.trick-pill-draw{color:var(--muted)}.result-tricks-empty{color:var(--muted)}.point-breakdown{display:grid;gap:6px;margin:12px 0}.point-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.flower-reveal{color:var(--gold)}.result-ready-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.result-ready-avatar{padding:6px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--muted)}.result-ready-avatar.is-ready{color:#78db9e;border-color:#78db9e}.result-ready-avatar.is-leaving{color:#ffaea2;border-color:var(--red)}.result-award{color:var(--gold);font-weight:800}.result-score{font-size:18px}.ghost{background:transparent;border-color:transparent;color:var(--muted)}.ghost:hover,.ghost:focus-visible{border-color:var(--line)}
@media(max-width:700px){.game-card{width:48px;height:70px;font-size:14px}.opponent-chip,.trick-play{padding:8px 10px}.primary-controls,.envite-fan,.decision-actions{gap:8px}.primary-controls .button,.envite-fan .button,.decision-actions .button{flex:1 1 45%;min-width:0}}
.classic-game-shell{width:min(920px,100%);margin:0 auto;gap:12px}.classic-scoreboard{width:min(610px,100%);min-height:62px;display:flex;align-items:center;gap:10px;margin:0 auto;padding:7px 15px;border:1px solid #355345;border-radius:18px;background:rgba(5,17,12,.78)}.classic-score-fact{flex:1 1 0;display:grid;gap:3px;text-align:center}.classic-score-fact small{color:#899e92;font-size:9px;font-weight:800;letter-spacing:.1em}.classic-score-fact strong{color:#f7d890;font:700 21px/1 Georgia,serif}.classic-table-wrap{padding:7px;border-radius:38px;background:linear-gradient(135deg,#9c622d,#e2ad58 22%,#75431f 62%,#c0833e);box-shadow:0 22px 55px #0008}.classic-table{position:relative;height:min(625px,calc(100vh - 245px));min-height:510px;overflow:hidden;border:2px solid #143e2f;border-radius:32px;background:radial-gradient(ellipse at center,rgba(54,135,94,.52),transparent 64%),linear-gradient(135deg,#236a4c,#0f402d);box-shadow:inset 0 0 75px #0006}.classic-table::after{content:"TRUCO DEL BUDARE";position:absolute;left:50%;top:50%;color:#f4c15b1f;font:800 clamp(22px,4vw,42px) Georgia,serif;letter-spacing:.12em;transform:translate(-50%,-50%) rotate(-8deg);white-space:nowrap}.classic-opponents{position:absolute;z-index:5;top:14px;left:18px;right:18px;display:flex;justify-content:center;gap:10px}.classic-opponents .opponent-chip{width:min(260px,46%);display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;margin:0;padding:6px 10px 6px 6px;border:1px solid #ffffff24;border-radius:999px;background:#04150eae;box-shadow:0 6px 15px #0004}.classic-opponent-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#251904;background:#e4aa3c;font-weight:900}.classic-opponent-copy{min-width:0;display:grid}.classic-opponent-copy strong,.classic-opponent-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classic-opponent-copy small{color:#9eb1a7;font-size:10px}.classic-card-backs{position:relative;width:54px;height:34px}.classic-card-backs i{position:absolute;bottom:0;width:22px;height:32px;border:2px solid #d8a44e;border-radius:4px;background:repeating-linear-gradient(45deg,#173d2e 0 4px,#d8a44e 4px 6px);box-shadow:0 4px 7px #0006}.classic-card-backs i:nth-child(1){left:2px;transform:rotate(-9deg)}.classic-card-backs i:nth-child(2){left:16px;transform:translateY(-3px)}.classic-card-backs i:nth-child(3){left:30px;transform:rotate(9deg)}.classic-turn{position:absolute;z-index:8;top:82px;left:50%;transform:translateX(-50%)}.classic-turn .game-turn-status{padding:7px 14px;border:1px solid #f1bd4370;border-radius:999px;color:#ffe8ab;background:#092719df;font-weight:800}.classic-trick-area{position:absolute;z-index:4;inset:125px 8% 150px;display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,38px)}.classic-trick-area .trick-play{display:grid;justify-items:center;gap:5px;margin:0;padding:0;border:0;background:none}.classic-trick-area .trick-play small{max-width:100px;overflow:hidden;color:#d6e0da;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.classic-played-card{width:72px;height:104px;object-fit:contain;filter:drop-shadow(0 12px 12px #0007)}.classic-hand{position:absolute;z-index:7;left:0;right:0;bottom:12px;display:flex;align-items:flex-end;justify-content:center;gap:4px}.classic-hand .game-card{width:94px;height:136px;margin:0 -5px;padding:0;overflow:visible;border:0;border-radius:8px;background:transparent;box-shadow:none;transition:transform .16s ease}.classic-hand .game-card:hover:not(:disabled){transform:translateY(-10px)}.classic-hand .game-card:disabled{opacity:1}.classic-hand .game-card.played{opacity:.14}.classic-hand .game-card.selected-for-cover{transform:translateY(-14px);box-shadow:0 0 0 4px #f1bd4399}.classic-card-art{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 13px 13px #0008);pointer-events:none}.classic-controls{display:grid;gap:5px;padding:12px 12px 4px;border:1px solid #304d3f;border-radius:18px;background:#071a12c7}.classic-controls .primary-controls,.classic-controls .envite-fan{justify-content:center;margin:0}.classic-decision:not(:empty){padding:18px;border:1px solid #d29e40;border-radius:18px;background:linear-gradient(145deg,#2b342b,#18251d);text-align:center}.classic-decision .decision-actions{justify-content:center}.classic-game-shell+.call-menu,.classic-game-shell~.call-menu{width:min(640px,100%);margin-inline:auto}@media(max-width:700px){#shell:has(.classic-game-shell){padding:14px 8px 92px}.classic-scoreboard{min-height:52px}.classic-score-fact strong{font-size:18px}.classic-table-wrap{padding:5px;border-radius:28px}.classic-table{height:510px;min-height:510px;border-radius:23px}.classic-opponents{top:10px;left:10px;right:10px}.classic-opponents .opponent-chip{width:min(280px,100%);grid-template-columns:30px 1fr auto}.classic-opponent-avatar{width:28px;height:28px}.classic-card-backs{transform:scale(.85);transform-origin:right center}.classic-turn{top:72px}.classic-trick-area{inset:112px 4% 132px;gap:12px}.classic-played-card{width:55px;height:80px}.classic-hand{bottom:8px}.classic-hand .game-card{width:76px;height:110px;margin:0 -7px}.classic-controls{padding:9px 7px 2px}.classic-controls .primary-controls .button,.classic-controls .envite-fan .button{min-height:40px;padding:8px 10px;font-size:12px}}
