:root{--felt: #0f5a3f;--felt-dark: #0b3d2c;--bg: #0f3d2e;--panel: #fffaf0;--ink: #1d2a24;--muted: #5f6f67;--accent: #d9a21b;--team0: #2f6fd6;--team1: #c2452f;--danger: #b3261e;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0%,#17694b,var(--bg) 70%)}button{font:inherit;cursor:pointer;border:1px solid #c9c2ad;background:#fff;color:var(--ink);padding:.5rem .9rem;border-radius:8px;transition:transform .08s,background .15s}button:hover:not(:disabled){background:#f4eedd}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:#b9860f;font-weight:600}button.primary:hover:not(:disabled){background:#e8b42d}button.danger{color:var(--danger);border-color:#e2b4b0}button.link{background:none;border:none;text-decoration:underline;padding:.2rem .4rem;color:inherit}button.big{font-size:1.1rem;padding:.8rem 1.2rem}input,select{font:inherit;padding:.5rem .7rem;border-radius:8px;border:1px solid #c9c2ad;background:#fff;min-width:0}a{color:#0b5e8a}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger);font-weight:600}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:.6rem}.row.tight{margin-top:0;gap:.3rem}.row input{flex:1}.center-msg{color:#fff;text-align:center;padding:4rem 1rem;font-size:1.2rem}.tag{display:inline-block;font-size:.7rem;padding:.05rem .4rem;border-radius:999px;background:#e9e3cf;color:#444;margin-left:.3rem;vertical-align:middle}.tag.quiero{background:#ffd54f;color:#5a3d00;font-weight:700}.tag.mano{background:var(--accent);color:#fff}.tag.off{background:#f3c3be;color:#7b1d16}.page,.home{max-width:860px;margin:0 auto;padding:1rem}.page.narrow{max-width:520px}.topnav{display:flex;align-items:center;gap:1rem;color:#fff;margin-bottom:.8rem}.topnav span{font-weight:600;flex:1}.topnav button.link{color:#fff}.panel{background:var(--panel);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1rem;box-shadow:0 4px 16px #0003}.panel h2,.panel h3{margin:0 0 .5rem}.field{display:flex;flex-direction:column;gap:.3rem;margin:.4rem 0}.field>span{font-size:.85rem;color:var(--muted);font-weight:600}.toggle{display:inline-flex;gap:.4rem;align-items:center;margin:.4rem .8rem .4rem 0}.segmented{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid #c9c2ad;flex-wrap:wrap}.segmented button{border:none;border-radius:0;display:inline-flex;align-items:center;gap:.3rem}.segmented button.on{background:var(--felt);color:#fff}.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.4rem 1rem}.code{font-family:ui-monospace,monospace;letter-spacing:.15em;background:#222;color:#ffd54f;padding:.1rem .5rem;border-radius:6px}.code-input{text-transform:uppercase;letter-spacing:.2em;font-family:ui-monospace,monospace;max-width:10rem}.hero{text-align:center;color:#fff;padding:1.5rem 0 1rem}.hero h1{font-family:Georgia,Times New Roman,serif;font-size:3rem;margin:.5rem 0 .2rem;letter-spacing:.02em}.tagline{opacity:.9;margin:0}.hero-cards{display:flex;justify-content:center;gap:.5rem}.hero-cards .card:nth-child(1){transform:rotate(-10deg) translateY(6px)}.hero-cards .card:nth-child(3){transform:rotate(10deg) translateY(6px)}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;margin-bottom:1rem}.menu-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;text-align:left;padding:1rem;border-radius:var(--radius);background:var(--panel)}.menu-tile span{font-size:.85rem;color:var(--muted)}.site-footer{color:#cfe3d8;font-size:.8rem;text-align:center;padding:1rem 0 2rem}.site-footer a{color:#fff}.doc{background:var(--panel);border-radius:var(--radius);padding:1rem 1.5rem;line-height:1.55}.doc h1{font-family:Georgia,serif}.doc table{border-collapse:collapse;margin:.6rem 0}.doc td,.doc th{border:1px solid #d8d0b8;padding:.25rem .6rem}.doc code{background:#efe8d3;padding:0 .25rem;border-radius:4px}.doc blockquote{border-left:4px solid var(--accent);margin:.8rem 0;padding:.2rem .8rem;background:#fff3d1}.teams{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.team-col h4{margin:.2rem 0 .5rem}.team-col.team-0 h4{color:var(--team0)}.team-col.team-1 h4{color:var(--team1)}.lobby-seat{display:flex;justify-content:space-between;align-items:center;gap:.4rem;padding:.45rem .6rem;border-radius:8px;background:#f4eedd;margin-bottom:.4rem;flex-wrap:wrap}.lobby-seat.me{outline:2px solid var(--accent)}@media(max-width:600px){.teams{grid-template-columns:1fr}}.card{--w: 64px;--h: 96px;position:relative;width:var(--w);height:var(--h);flex:0 0 auto;background:#fffdf6;border-radius:7px;border:1px solid #b9b2a0;box-shadow:0 2px 6px #00000059;padding:0;display:block;color:var(--suit)}.card.small{--w: 46px;--h: 69px;border-radius:5px}.card.back{background:repeating-linear-gradient(45deg,#7a1f1f 0,#7a1f1f 6px,#942b2b 6px,#942b2b 12px);border:3px solid #fffdf6}.card .face,.card img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}.card .face .idx{font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:17px}.card .face .fx-idx{font-size:12.5px}.card.deck-facciones{border-color:#2a1a10;background:#1b1410}.card.back.deck-facciones{background:#1b1410;border:1px solid #2a1a10}.card .role{position:absolute;bottom:-9px;left:50%;transform:translate(-50%);background:var(--accent);color:#1d1300;font-size:.6rem;font-weight:800;padding:1px 5px;border-radius:999px;white-space:nowrap}.card .role.vira{background:#ffe9a8;font-weight:600}.card.playable{cursor:pointer}.card.playable:hover{transform:translateY(-10px);box-shadow:0 8px 16px #0006}.card.dimmed{filter:grayscale(.7) brightness(.75)}.card.highlight{box-shadow:0 0 0 3px #ffd54f,0 4px 12px #00000080}.suit-icon{display:block}.game{display:flex;flex-direction:column;min-height:100vh;max-width:1000px;margin:0 auto;padding:.5rem;gap:.5rem}.scorebar{display:flex;gap:.5rem;flex-wrap:wrap}.team-score{flex:1 1 160px;background:var(--panel);border-radius:10px;padding:.4rem .7rem;border-top:4px solid}.team-score.team-0{border-color:var(--team0)}.team-score.team-1{border-color:var(--team1)}.team-score.mine{box-shadow:0 0 0 2px var(--accent)}.team-name{font-weight:700;font-size:.9rem}.pts strong{font-size:1.6rem}.pts small{color:var(--muted)}.sub{font-size:.75rem;color:var(--muted)}.hand-info{display:flex;gap:.8rem;align-items:center;background:var(--panel);border-radius:10px;padding:.4rem .7rem}.muestra{display:flex;gap:.5rem;align-items:center}.trump-name{display:flex;align-items:center;gap:.25rem;font-weight:700;text-transform:capitalize}.lbl{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stake{text-align:center}.stake strong{font-size:1.4rem}.banner{padding:.4rem .8rem;border-radius:8px}.banner.warn{background:#fff0c2}.felt{position:relative;flex:1;min-height:380px;border-radius:160px/120px;background:radial-gradient(ellipse at center,var(--felt),var(--felt-dark));border:10px solid #6b4423;box-shadow:inset 0 0 40px #00000080,0 6px 18px #0006}.seat{position:absolute;transform:translate(-50%,-50%);text-align:center;color:#fff;min-width:110px}.seat.side-left{transform:translateY(-50%);text-align:left}.seat.side-right{transform:translate(-100%,-50%);text-align:right}.seat.side-left .seat-tags{justify-content:flex-start}.seat.side-right .seat-tags{justify-content:flex-end}.seat.side-left .bubble{left:0;transform:none}.seat.side-right .bubble{left:auto;right:0;transform:none}.seat-name{display:inline-block;max-width:100%;background:#00000073;padding:.25rem .6rem;border-radius:999px;font-weight:600;font-size:.9rem;border:2px solid transparent;white-space:nowrap}.seat.team-0 .seat-name{border-color:var(--team0)}.seat.team-1 .seat-name{border-color:var(--team1)}.seat.turn .seat-name{background:var(--accent);color:#1d1300;animation:pulse 1.2s infinite}.seat.inactive{opacity:.4}.seat.me .seat-name{display:none}.seat-tags{margin-top:.2rem;font-size:.75rem;display:flex;justify-content:center;gap:.25rem;align-items:center}.count{background:#00000059;padding:0 .4rem;border-radius:999px}.muestra-in-hand{display:flex;justify-content:center;margin-top:.2rem}.bubble{position:absolute;top:-2.2rem;left:50%;transform:translate(-50%);background:#fff;color:var(--ink);padding:.2rem .6rem;border-radius:10px;font-size:.8rem;white-space:nowrap;box-shadow:0 2px 8px #0000004d}.bubble.sena{background:#ffe082;font-weight:700}@keyframes pulse{50%{box-shadow:0 0 0 6px #d9a21b59}}.trick{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.trick-card{position:absolute;transform:translate(-50%,-50%);animation:drop .25s ease-out}@keyframes drop{0%{transform:translate(-50%,-50%) scale(1.25)}}.trick-caption{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0000008c;color:#fff;padding:.15rem .6rem;border-radius:999px;font-size:.8rem;white-space:nowrap}.overlay-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--panel);padding:1rem 1.4rem;border-radius:var(--radius);text-align:center;box-shadow:0 10px 30px #00000080;z-index:5;min-width:240px}.overlay-card h2,.overlay-card h3{margin:.2rem 0}.overlay-card .big{font-size:1.2rem;font-weight:700}.overlay-card .row{justify-content:center}.status{color:#fff;text-align:center;min-height:1.4rem;font-weight:600}.status .error{color:#ffb4ab}.partner-trumps{background:#ffffff1f;color:#fff;padding:.4rem .8rem;border-radius:10px;display:flex;flex-direction:column;gap:.3rem}.partner-trumps>div{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}.actions{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;min-height:2.6rem}.my-hand{display:flex;justify-content:center;gap:.4rem;padding:.6rem 0 .8rem;flex-wrap:wrap;min-height:112px}.toolbar{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;align-items:center;color:#fff}.toolbar button{background:#ffffff1f;color:#fff;border-color:#ffffff40}.toolbar button.on{background:var(--accent);color:#1d1300}.toolbar button.link{background:none}.side-panel{background:var(--panel);border-radius:var(--radius);padding:.8rem 1rem;max-height:40vh;overflow:auto}.side-panel h4{margin:0 0 .3rem}.grid-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.4rem}.log{list-style:none;padding:0;margin:.3rem 0;font-size:.9rem}.log li{padding:.15rem 0;border-bottom:1px dashed #e3dcc7}.ranking{columns:2;font-size:.9rem}html{-webkit-text-size-adjust:100%}button,.card{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.card,.seat,.toolbar,.actions{user-select:none;-webkit-user-select:none}.card.selected{transform:translateY(-14px);box-shadow:0 0 0 3px var(--accent),0 8px 16px #00000073}.side-panel{position:relative}.side-panel .close{position:absolute;top:.4rem;right:.4rem;padding:.2rem .55rem}.game{padding-bottom:calc(.5rem + env(safe-area-inset-bottom));padding-top:calc(.5rem + env(safe-area-inset-top))}@media(max-width:640px){body{overscroll-behavior:none}.game{min-height:100dvh;padding-left:.35rem;padding-right:.35rem;gap:.35rem}.scorebar{display:grid;grid-template-columns:1fr auto 1fr;gap:.35rem}.team-score{padding:.3rem .45rem;border-top-width:3px}.team-score.team-0{order:1}.hand-info{order:2;flex-direction:column;gap:.15rem;padding:.3rem .4rem}.team-score.team-1{order:3;text-align:right}.team-name{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pts strong{font-size:1.35rem}.sub{font-size:.65rem}.team-score .tag.quiero{display:block;width:fit-content;margin:.1rem 0 0}.team-score.team-1 .tag.quiero{margin-left:auto}.muestra{gap:.3rem}.muestra .lbl,.trump-name{font-size:.7rem}.hand-info .stake{display:inline-flex;gap:.25rem;align-items:baseline}.stake strong{font-size:1rem}.lbl{font-size:.6rem}.felt{min-height:270px;border-radius:48px;border-width:5px}.seat{min-width:0;max-width:34vw}.seat-name{font-size:.72rem;padding:.2rem .45rem;overflow:hidden;text-overflow:ellipsis}.seat-name .tag{display:none}.seat-tags{font-size:.65rem;flex-wrap:wrap}.bubble{font-size:.72rem;top:-1.9rem}.card.small{--w: 38px;--h: 57px}.overlay-card{min-width:0;width:86%;padding:.8rem}.my-hand{flex-wrap:nowrap;gap:.3rem;padding:.9rem 0 .5rem;min-height:0}.my-hand .card{--w: clamp(46px, calc((100vw - 2.6rem) / 6), 72px);--h: calc(var(--w) * 1.5)}.card.playable:hover{transform:none;box-shadow:0 2px 6px #00000059}.card.selected,.card.selected:hover{transform:translateY(-14px);box-shadow:0 0 0 3px var(--accent),0 8px 16px #00000073}.actions button{padding:.65rem 1rem;font-size:1rem;flex:1 1 auto;max-width:14rem}.status{font-size:.9rem;padding:0 .3rem}.toolbar{gap:.3rem}.toolbar button{padding:.45rem .7rem;font-size:1.1rem}.tb-label{display:none}.side-panel{position:fixed;left:0;right:0;bottom:0;z-index:30;max-height:55dvh;border-radius:16px 16px 0 0;box-shadow:0 -8px 30px #00000073;padding-bottom:calc(.8rem + env(safe-area-inset-bottom))}.grid-buttons{grid-template-columns:repeat(2,1fr)}.grid-buttons button{padding:.7rem .4rem}.page,.home{padding:.6rem}.hero h1{font-size:2.4rem}.menu-grid{grid-template-columns:1fr 1fr;gap:.5rem}.menu-tile{padding:.7rem}.panel{padding:.8rem}input,select,button{font-size:16px}.lobby-seat button{padding:.45rem .7rem}}.live-board{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.live-team{background:var(--panel);border-radius:var(--radius);padding:1rem;text-align:center;display:flex;flex-direction:column;gap:.5rem;align-items:center;border-top:6px solid}.live-team.team-0{border-color:var(--team0)}.live-team.team-1{border-color:var(--team1)}.live-team h2{margin:0}.live-points{font-size:3.5rem;font-weight:800;line-height:1}.live-points small{font-size:1.2rem;color:var(--muted)}.live-hand>div{margin:.4rem 0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem}.stat{background:#f4eedd;border-radius:10px;padding:.6rem;text-align:center;display:flex;flex-direction:column}.stat strong{font-size:1.6rem}.stat span{font-size:.8rem;color:var(--muted)}.matches{width:100%;border-collapse:collapse;font-size:.9rem}.matches th,.matches td{padding:.3rem;border-bottom:1px solid #e3dcc7;text-align:left}@media(max-width:600px){.live-board{grid-template-columns:1fr}}.deck-row{display:flex;flex-wrap:wrap;gap:.6rem .5rem;margin-bottom:1.2rem}.center-muestra{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;opacity:.95;pointer-events:none}.center-muestra .lbl{color:#ffe9a8;background:#00000073;padding:0 6px;border-radius:999px}.center-muestra .card{box-shadow:0 0 0 2px #ffd54f,0 4px 12px #00000080}.trick{z-index:2}.wins-mark{position:absolute;top:-8px;right:-6px;background:#2e7d32;color:#fff;font-weight:800;font-size:.75rem;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0006}.chat-log{max-height:30vh;overflow:auto}.chat-input input{flex:1;min-width:0}.quick-row{margin-top:.5rem}.card.deck-tradicional{background:#fff;border:1px solid #9c9c9c;overflow:visible}.card.deck-tradicional img{border-radius:inherit}.card.back.deck-tradicional{background:#1d2a6b;border:1px solid #9c9c9c}.big-idx{position:absolute;min-width:1.35em;padding:0 .12em;text-align:center;font-family:Georgia,Times New Roman,serif;font-weight:800;line-height:1.15;font-size:calc(var(--w) * .27);color:var(--suit, #222);background:#fff;border:1.5px solid currentColor;border-radius:4px;box-shadow:0 1px 2px #00000040;pointer-events:none}.big-idx.tl{top:2px;left:2px}.big-idx.br{bottom:2px;right:2px}.card.small .big-idx.br{display:none}
