:root{--cobalt:#1d4aa0;--cobalt-dark:#12326f;--cream:#fff6e3;--cream-2:#f6e8c8;--ink:#1a1a1a;--muted:#4a4a4a;--red:#b1132b;--green:#17652c;--blue:#1446a0;--gold:#e0a800;--felt:#f3e6c4;--radius:14px;color:var(--ink);background:var(--cream);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:18px;line-height:1.4}html.large-text{font-size:21px}html.high-contrast{--muted:#111;--felt:#fff;--cream:#fff;--cream-2:#eee}*{box-sizing:border-box}body{background:var(--cream);min-height:100dvh;margin:0}#root{min-height:100dvh}h1{color:var(--cobalt-dark);text-align:center;flex:1;margin:0;font-size:1.25rem}h2{color:var(--cobalt-dark);margin:.6rem 0 .4rem;font-size:1.15rem}h3{margin:0;font-size:1rem}p{margin:.3rem 0}small,.hint{color:var(--muted);font-size:.85rem}.warn{color:var(--red);font-weight:700}.screen{flex-direction:column;max-width:900px;min-height:100dvh;margin:0 auto;display:flex}.scroll{flex:1;padding:12px;overflow-y:auto}.center{text-align:center;flex-direction:column;align-items:center;display:flex}.topbar{background:var(--cream-2);border-bottom:2px solid var(--cobalt);z-index:5;align-items:center;gap:10px;padding:10px 12px;display:flex;position:sticky;top:0}.actionbar{background:var(--cream-2);border-top:2px solid var(--cobalt);padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:5;position:sticky;bottom:0}.prompt{min-height:1.5em;margin-bottom:8px;font-size:1.05rem;font-weight:600}.btn{font:inherit;border-radius:var(--radius);border:3px solid var(--cobalt);cursor:pointer;touch-action:manipulation;min-width:48px;min-height:48px;padding:8px 16px;font-weight:700}.btn.main{flex:180px;min-height:60px;font-size:1.05rem}.btn.primary{background:var(--cobalt);color:#fff}.btn.primary:active{background:var(--cobalt-dark)}.btn.secondary{color:var(--cobalt-dark);background:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.card.selectable:focus-visible,.toggle:focus-visible{outline:4px solid var(--gold);outline-offset:2px}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.small-wide{margin-top:8px}.home .logo{width:min(72vw,320px);height:auto;margin-top:8px}.tagline{margin:8px 0 16px;font-size:1.1rem}.home-buttons{flex-direction:column;gap:12px;width:min(100%,420px);display:flex}.home-buttons .btn.main{flex:none}.panel{border:2px solid var(--cream-2);border-radius:var(--radius);background:#fff;margin-bottom:14px;padding:12px 14px}.setting-row{border-bottom:1px solid var(--cream-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-row.column{flex-direction:column;align-items:stretch}.setting-label{flex-direction:column;display:flex}.setting-label span{font-weight:600}.toggle{font:inherit;border:3px solid var(--cobalt);cursor:pointer;border-radius:30px;justify-content:center;align-items:center;gap:8px;min-width:104px;min-height:52px;font-weight:800;display:inline-flex}.toggle.on{background:var(--cobalt);color:#fff}.toggle.off{color:var(--ink);background:#fff;border-color:#555}.segmented{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.segmented button{font:inherit;border-radius:var(--radius);border:3px solid var(--cobalt);min-height:52px;color:var(--cobalt-dark);cursor:pointer;background:#fff;flex:120px;font-weight:700}.segmented button.selected{background:var(--cobalt);color:#fff}.player-row{border:2px solid var(--cream-2);border-radius:var(--radius);margin:10px 0;padding:10px}.name-field{flex-direction:column;gap:4px;font-weight:600;display:flex}.name-field input,.name-field textarea{font:inherit;border:2px solid #666;border-radius:10px;min-height:52px;padding:8px 12px}.card{font:inherit;color:var(--ink);-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #555;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.card.big{aspect-ratio:5/7;width:100%;max-width:120px}.card.mid{width:72px;height:100px}.card.mini{border-radius:7px;width:44px;height:60px}.card.down{background:var(--cobalt);border-color:var(--cobalt-dark)}.card-back{background:repeating-linear-gradient(45deg, var(--cobalt), var(--cobalt) 6px, #2a5bb8 6px, #2a5bb8 12px);border:3px solid var(--cream);border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.back-mark{color:var(--cream);letter-spacing:1px;font-size:1.1rem;font-weight:900}.card.mini .back-mark{font-size:.75rem}.card-face{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;line-height:1;display:flex}.card-face .rank{font-size:2rem;font-weight:900}.card-face .pip{font-size:2.2rem}.card-face .value{color:var(--muted);font-size:.8rem;font-weight:700;position:absolute;bottom:4px;right:6px}.card.mid .rank,.card.mid .pip{font-size:1.6rem}.card.mini .rank,.card.mini .pip{font-size:1rem}.card-face.red{color:var(--red)}.card-face.black{color:#111}.card-face.blue{color:var(--blue)}.card-face.green{color:var(--green)}.card-face.joker{color:#7a1fa2}.card-face.special{background:var(--cream-2);border-radius:8px;padding:4px}.special-name{text-align:center;color:var(--cobalt-dark);font-size:.9rem;font-weight:800}.card.selectable{cursor:pointer;box-shadow:0 0 0 3px var(--gold)}.card.selected{box-shadow:0 0 0 5px var(--red);transform:translateY(-4px)}.card.dim{opacity:.45}.card.paired{border-color:var(--green);border-width:3px}.card.empty{background:0 0;border-style:dashed}.grid{grid-template-columns:repeat(4,1fr);justify-items:center;gap:10px;display:grid}.grid.mini{grid-template-columns:repeat(4,44px);justify-content:start;gap:6px}.grid.big{max-width:520px;margin:0 auto}.table-main{background:var(--felt);flex-direction:column;gap:12px;display:flex}.opponents{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.opponent,.my-area,.result-row{border:2px solid var(--cream-2);border-radius:var(--radius);background:#fff;padding:8px 10px}.opponent.active,.my-area.active{border-color:var(--cobalt);box-shadow:0 0 0 2px var(--cobalt)}.opponent.targeted{border-color:var(--red);box-shadow:0 0 0 3px var(--red)}.player-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.score-chip{color:var(--muted);font-size:.85rem;font-weight:600}.middle{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;padding:6px;display:flex}.pile{flex-direction:column;align-items:center;gap:4px;font-size:.85rem;font-weight:600;display:flex}.banner-slot{flex:240px}.drawn{align-items:center;gap:10px;font-weight:700;display:flex}.special-banner{border:3px solid var(--cobalt);border-radius:var(--radius);background:#fff;padding:8px 12px}.house-text{font-size:1.15rem;font-weight:700}.table-status{flex-direction:column;flex-basis:100%;align-items:center;gap:4px;font-size:.9rem;font-weight:600;display:flex}.knock{color:var(--red)}.held{flex-wrap:wrap;gap:6px;margin:4px 0;display:flex}.chip{background:var(--cream-2);border-radius:20px;padding:3px 10px;font-size:.85rem;font-weight:700}.chip.warn{color:var(--red);background:#ffe1e1}.chip.badge{background:#fff1c2}.log{border-radius:var(--radius);color:var(--muted);background:#fff;padding:6px 12px;font-size:.9rem}.modal{background:var(--cream);z-index:20;flex-direction:column;max-width:900px;margin:0 auto;display:flex;position:fixed;inset:0}.modal-body{flex:1;padding:16px;overflow-y:auto}.modal-body.menu{flex-direction:column;gap:12px;display:flex}.modal-body.menu .btn{flex:none}.handoff .modal-body{flex-direction:column;justify-content:center;font-size:1.1rem;display:flex}.handoff h2{font-size:1.6rem}.big-news{color:var(--cobalt-dark);font-size:1.3rem;font-weight:800}.results-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:10px 0;display:grid}.result-row.winner{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.scoreboard-wrap{margin-top:8px;overflow-x:auto}.scoreboard{border-collapse:collapse;background:#fff;width:100%;font-size:1rem}.scoreboard caption{text-align:left;padding:4px 0;font-weight:700}.scoreboard th,.scoreboard td{text-align:center;border:1px solid #bbb;min-width:36px;padding:8px 6px}.scoreboard th[scope=row]{text-align:left;white-space:nowrap}.scoreboard th.current{background:var(--cream-2)}.scoreboard tr.leader{background:#eaf6ea}.scoreboard .total{font-weight:800}.scoreboard .mark{color:var(--red);font-size:.8rem;font-weight:800}.special-list div{margin-bottom:8px}.special-list dt{color:var(--cobalt-dark);font-weight:800}.special-list dd{margin:0 0 0 12px}@media (width>=700px){.card.mini{width:52px;height:72px}.grid.mini{grid-template-columns:repeat(4,52px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.card.selected{transform:none}}.screen.table{height:100dvh;min-height:0}.screen.table .scroll{overflow-y:auto}.table .topbar{padding:6px 10px}.table .topbar h1{font-size:1.05rem}.table .topbar .btn{min-height:48px;padding:4px 12px}.btn.main{flex:140px}.table-main{gap:8px;padding:8px}.middle{flex-wrap:nowrap;gap:12px;padding:0}.table-status{flex-basis:auto}@media (width<=699px){.opponents{scroll-snap-type:x proximity;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.opponent{scroll-snap-align:start;flex:none;min-width:210px;padding:6px 8px}.opponent .player-head{margin-bottom:4px}.opponent h3{font-size:.95rem}.middle{flex-wrap:wrap}.card.mid{width:62px;height:86px}.grid.big{gap:8px}.card.big{max-width:84px}.my-area{padding:6px 8px}.my-area h2{margin:0;font-size:1.05rem}.log p{margin:2px 0}}.table-main>*{flex-shrink:0}
