:root{--ag-felt:#35654d;--ag-felt-edge:#244536;--ag-card-face:#fff;--ag-card-back:#244536;--ag-suit-red:#a12f32;--ag-suit-black:#17221d;--ag-card-radius:6px;--ag-card-shadow:0 2px 5px #071e154d;--ag-motion:180ms}.d2-scope{background:var(--ag-card-bg)!important}.d2-scope .ag-game-card{padding:20px;background:var(--ag-card-bg)}.d2-scope .table{min-height:520px;border:5px solid var(--ag-felt-edge);border-radius:8px;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--ag-felt),#fff 8%),var(--ag-felt));color:#fff}.d2-scope .card{border-radius:var(--ag-card-radius);background:var(--ag-card-face);box-shadow:var(--ag-card-shadow)}.d2-scope .card.back{background:var(--ag-card-back)}html[data-card-back="woven"] .d2-scope .card.back{background:repeating-linear-gradient(45deg,#274f3e 0 3px,#17382b 3px 6px),repeating-linear-gradient(-45deg,#274f3e 0 3px,#17382b 3px 6px)}html[data-card-back="lines"] .d2-scope .card.back{background:repeating-linear-gradient(45deg,#274f3e 0 5px,#17382b 5px 10px)}html[data-large-index="true"] .d2-scope .card{font-size:1.9rem}html[data-four-colour="true"] .d2-scope .card.diamond{color:#2166b1}html[data-four-colour="true"] .d2-scope .card.club{color:#178246}html[data-card-spread="false"] .d2-scope .cards .card{margin-left:2px}html[data-motion="reduce"] .d2-scope *,html[data-motion="instant"] .d2-scope *{animation:none!important;transition:none!important}.d2-scope .turn-tools button,.d2-scope .bid-panel button{border-color:var(--ag-line);background:var(--ag-card-bg);color:var(--ag-ink)}.d2-scope .primary,.d2-scope .bid-panel .accent,.game-score{display:flex;gap:12px;flex-wrap:wrap}.game-score span{font-size:.85rem}.ag-footer{margin-top:32px;padding:22px 0;background:var(--ag-brand-dark);color:#fff;font-size:.82rem}.ag-footer-inner{display:flex;justify-content:space-between;gap:12px;align-items:center}.ag-footer a,.ag-footer-button{color:#fff;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.ag-footer-links{display:flex;gap:12px;flex-wrap:wrap}.table-swatches{display:flex;gap:8px}.table-swatches button{width:28px;height:28px;border:2px solid var(--ag-line);border-radius:999px;cursor:pointer}@media(max-width:640px){.d2-scope .ag-game-card{padding:12px}.d2-scope .table{min-height:500px;padding:12px;border-width:4px}.d2-scope .ag-game-toolbar{align-items:flex-start}.ag-footer-inner{align-items:flex-start;flex-direction:column}}

/* Shared footer and dialog layout. */
.d2-scope dialog{position:fixed;inset:0;margin:auto}
.ag-footer{margin-top:56px;padding:44px 0 0;border-top:1px solid var(--ag-line);background:var(--ag-card-bg);color:var(--ag-ink)}
.ag-footer .ag-container{max-width:980px}.ag-footer-grid{display:grid;grid-template-columns:minmax(15rem,1.5fr) repeat(3,minmax(9rem,1fr));gap:40px;padding-bottom:38px}.ag-footer-brand{display:grid;align-content:start;gap:13px}.ag-footer .ag-footer-logo{display:inline-flex;align-items:center;gap:.45rem;padding:0;background:transparent;color:var(--ag-ink);font-family:Georgia,serif;font-size:1.1rem;font-weight:700;text-decoration:none}.ag-footer .ag-footer-logo span{color:var(--ag-brand);font-size:1.25rem;line-height:1}.ag-footer-brand p{max-width:19rem;margin:0;color:var(--ag-muted-fg);font-size:.9rem;line-height:1.6}
.ag-footer .ag-footer-section{display:flex;flex-direction:column;align-items:flex-start}.ag-footer-section h2{margin:0 0 14px;color:var(--ag-ink);font-family:Georgia,serif;font-size:1rem;font-weight:700;letter-spacing:0;text-transform:none}.ag-footer .ag-footer-section ul{display:grid;width:100%;gap:10px;margin:0;padding:0;list-style:none}.ag-footer .ag-footer-section a{color:var(--ag-ink);font-size:.9rem;line-height:1.45;text-decoration:none}.ag-footer .ag-footer-section a:hover{color:var(--ag-brand);text-decoration:underline;text-underline-offset:3px}.ag-footer-contact{min-height:38px;padding:8px 14px;border:1px solid var(--ag-line-strong);border-radius:6px;background:var(--ag-bg-soft);color:var(--ag-ink);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.ag-footer-contact:hover{border-color:var(--ag-brand);background:var(--ag-brand-soft);color:var(--ag-brand)}.ag-footer-contact:focus-visible,.ag-footer .ag-footer-section a:focus-visible,.ag-footer .ag-footer-logo:focus-visible{outline:3px solid color-mix(in srgb,var(--ag-brand),#fff 30%);outline-offset:3px}.ag-footer-bottom{padding:18px 0;border-top:1px solid var(--ag-line);color:var(--ag-muted-fg);font-size:.78rem;text-align:left}
@media(max-width:760px){.ag-footer{margin-top:40px;padding-top:34px}.ag-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}.ag-footer-brand{grid-column:1/-1}.ag-footer-brand p{max-width:36rem}}@media(max-width:440px){.ag-footer-grid{grid-template-columns:1fr;gap:26px}.ag-footer-brand{grid-column:auto}.ag-footer-bottom{text-align:center}}

.ag-stats-panel,.ag-settings-panel{border-color:color-mix(in srgb,var(--ag-felt-edge),var(--ag-line) 55%);box-shadow:0 6px 18px #15211b12}.ag-stats-panel .ag-card-header,.ag-settings-panel .ag-card-header{background:var(--ag-felt-edge);color:#fff;border:0;padding:11px 14px;font-size:.7rem;letter-spacing:.08em}.ag-stats-panel .ag-card-body,.ag-settings-panel .ag-card-body{gap:14px;padding:16px;background:var(--ag-card-bg)}.ag-stats-panel #stats{margin:0;border-left:3px solid var(--ag-felt);padding:2px 0 2px 10px;color:var(--ag-ink);font-size:.86rem;font-variant-numeric:tabular-nums;line-height:1.6}.ag-stats-panel .ag-btn-outline,.ag-settings-panel .ag-btn-outline{min-height:40px;border-color:var(--ag-felt-edge);background:var(--ag-felt-edge);color:#fff;font-weight:700}.ag-stats-panel .ag-btn-outline:hover,.ag-settings-panel .ag-btn-outline:hover{border-color:var(--ag-felt);background:var(--ag-felt);color:#fff}.ag-stats-dialog,.ag-table-settings-dialog{width:min(28rem,calc(100vw - 2rem));border:1px solid var(--ag-line);border-radius:12px;background:var(--ag-card-bg);color:var(--ag-ink);padding:0;box-shadow:0 18px 48px #0005}.ag-stats-dialog h2,.ag-table-settings-dialog h2{margin:0;padding:18px 52px 16px 20px;border-bottom:1px solid var(--ag-line);font-size:1.15rem;line-height:1.2}.ag-stats-dialog .close,.ag-table-settings-dialog .close{position:absolute;top:12px;right:14px;width:32px;height:32px;border-radius:50%;color:var(--ag-muted-fg);font-size:1.4rem;line-height:1}.ag-stats-dialog .close:hover,.ag-table-settings-dialog .close:hover{background:var(--ag-bg-soft);color:var(--ag-ink)}.ag-stats-dialog #stats-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 20px}.ag-stats-dialog .ag-stat{min-height:68px;border:1px solid var(--ag-line);border-radius:8px;background:var(--ag-bg-soft);padding:10px;display:flex;flex-direction:column;justify-content:space-between}.ag-stats-dialog .ag-stat span{color:var(--ag-muted-fg);font-size:.68rem;line-height:1.15}.ag-stats-dialog .ag-stat strong{color:var(--ag-ink);font-size:1.05rem;font-variant-numeric:tabular-nums}.ag-stats-dialog [data-stats-reset]{width:calc(100% - 40px);margin:0 20px 20px;border-color:#b75b53;background:transparent;color:#9e3b32;font-weight:650}.ag-stats-dialog [data-stats-reset]:hover{background:#fff1ef}.ag-table-settings-dialog>p{margin:18px 20px 9px;color:var(--ag-muted-fg);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.ag-table-settings-dialog .table-swatches{margin:0 20px;padding:10px;border:1px solid var(--ag-line);border-radius:9px;background:var(--ag-bg-soft)}.ag-table-settings-dialog .table-swatches button{width:30px;height:30px;box-shadow:inset 0 0 0 2px #fff8,0 1px 2px #0002}.ag-table-settings-dialog>label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 20px 0;padding:9px 10px;border:1px solid var(--ag-line);border-radius:8px;background:var(--ag-card-bg);font-size:.84rem}.ag-table-settings-dialog input[type=color]{width:42px;height:28px;padding:0;border:0;border-radius:5px;background:none}.ag-table-settings-dialog>p:has(label){margin:0;padding:12px 20px 0;border:0;font-size:.84rem;font-weight:400;letter-spacing:0;text-transform:none}.ag-table-settings-dialog>p:has(input[type=range]) label{display:grid;gap:8px}.ag-table-settings-dialog input[type=range]{width:100%;accent-color:var(--ag-felt-edge)}.ag-table-settings-dialog>p:has(input[type=checkbox]) label,.ag-table-settings-dialog>p:has(input[type=radio]) label{display:flex;align-items:center;gap:9px}.ag-table-settings-dialog>p:last-child{padding-bottom:20px}.ag-table-settings-dialog input[type=checkbox],.ag-table-settings-dialog input[type=radio]{width:16px;height:16px;accent-color:var(--ag-felt-edge)}@media(max-width:380px){.ag-stats-dialog #stats-detail{grid-template-columns:repeat(2,minmax(0,1fr));}}
.bid-panel{background:#00000030;border:1px solid #ffffff21;border-radius:12px;padding:16px 18px}body[data-game=spades] .bid-panel--spades{display:grid;justify-items:center;gap:12px;text-align:center}body[data-game=spades] .bid-panel--spades .bid-panel-title{display:grid!important;justify-content:center;gap:4px}body[data-game=spades] .bid-panel--spades .bid-panel-title span{line-height:1.35;font-size:.9rem;color:#d6ddd3}body[data-game=spades] .bid-panel--spades .bid-group{display:grid;justify-items:center;gap:6px}body[data-game=spades] .bid-panel--spades .bid-group>span,body[data-game=spades] .bid-panel--spades .bid-special>span{font-size:.9rem;color:#d6ddd3}body[data-game=spades] .bid-panel--spades .bid-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}body[data-game=spades] .bid-panel--spades .bid-grid button{min-width:38px;min-height:42px;padding:0 4px;font-weight:700}body[data-game=spades] .bid-panel--spades .bid-special{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}body[data-game=spades] .bid-panel--spades .bid-special>span{width:100%}body[data-game=spades] .bid-panel--spades .bid-special button{min-width:190px;min-height:42px;font-weight:700}body[data-game=spades] .bid-panel--spades .bid-special .bid-blind-nil{margin-top:0}

/* Clear, stateful toolbar controls and grouped in-game settings. */
.ag-game-actions .ag-sound-toggle{width:auto;min-width:96px;padding:0 10px;white-space:nowrap;font-size:.76rem;font-weight:700;letter-spacing:.01em}.ag-game-actions .ag-sound-toggle[aria-pressed="true"]{border-color:var(--ag-felt-edge);background:var(--ag-felt-edge);color:#fff}.ag-game-actions .ag-sound-toggle[aria-pressed="true"]:hover{background:var(--ag-felt);color:#fff}.ag-game-actions .ag-sound-toggle[aria-pressed="false"] .ag-sound-state{color:var(--ag-muted-fg)}
#modal{width:min(31rem,calc(100vw - 2rem))}#modal #modal-body>p{margin:18px 20px 8px;color:var(--ag-ink);font-size:.92rem;line-height:1.5}#modal #modal-body>p:not(:has(label)){display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-weight:650}#modal #modal-body>p:not(:has(label)) strong{color:var(--ag-felt-edge);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase}#modal #modal-body .modal-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px;margin:0 20px 16px}#modal #modal-body .modal-actions button{min-height:42px;border:1px solid var(--ag-line-strong);border-radius:8px!important;background:var(--ag-card-bg);color:var(--ag-ink);font-weight:700;line-height:1.15;transition:background var(--ag-motion),border-color var(--ag-motion),color var(--ag-motion)}#modal #modal-body .modal-actions button:hover{border-color:var(--ag-felt-edge);background:var(--ag-bg-soft)}#modal #modal-body .modal-actions button[aria-pressed="true"]{border-color:var(--ag-felt-edge);background:var(--ag-felt-edge);color:#fff;box-shadow:inset 0 0 0 1px #ffffff22}#modal #modal-body>p:has(label){margin:0 20px;padding:12px 0;border-top:1px solid var(--ag-line)}#modal #modal-body>p:has(label):last-child{margin-bottom:20px;border-bottom:1px solid var(--ag-line)}#modal #modal-body>p:has(label) label{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.9rem;font-weight:650}#modal #modal-body input[type="checkbox"]{width:18px;height:18px;accent-color:var(--ag-felt-edge)}#modal #modal-body>p:has(label) label input[type="checkbox"]{order:2;margin-left:auto}
@media(max-width:520px){.ag-game-actions .ag-sound-toggle{min-width:88px;padding:0 8px;font-size:.72rem}#modal #modal-body .modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));}}
/* Keep game settings readable on the dark theme. */
[data-theme="dark"] #modal{background:var(--ag-card-bg);color:var(--ag-ink);border-color:var(--ag-line)}[data-theme="dark"] #modal #modal-body>p,[data-theme="dark"] #modal #modal-body>p:not(:has(label)),[data-theme="dark"] #modal #modal-body>p:has(label) label{color:var(--ag-ink)}[data-theme="dark"] #modal #modal-body .modal-actions button{background:var(--ag-card-bg);color:var(--ag-ink);border-color:var(--ag-line-strong)}[data-theme="dark"] #modal #modal-body .modal-actions button[aria-pressed="true"]{background:var(--ag-felt-edge);color:#fff;border-color:var(--ag-felt-edge)}
/* Iubenda opens each legal document as an in-page policy widget. */
.ag-footer a.ag-footer-link.iubenda-embed{display:inline-flex!important;align-items:center;min-height:36px;padding:7px 11px;border:1px solid var(--ag-line-strong);border-radius:6px;background:var(--ag-bg-soft);color:var(--ag-ink)!important;font-weight:650;text-decoration:none!important}.ag-footer a.ag-footer-link.iubenda-embed:hover{border-color:var(--ag-brand);background:var(--ag-brand-soft);color:var(--ag-brand)!important}
/* Euchre call panel: mirrors the Spades bid panel structure. */
body[data-game=euchre] .bid-panel--euchre{display:grid;justify-items:center;gap:12px;text-align:center}body[data-game=euchre] .bid-panel--euchre .bid-panel-title{display:grid;gap:4px}body[data-game=euchre] .bid-panel--euchre .bid-panel-title span{font-size:.9rem;color:#d6ddd3;line-height:1.35}body[data-game=euchre] .bid-upcard .card{cursor:default}body[data-game=euchre] .bid-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}body[data-game=euchre] .bid-grid button{min-height:42px;padding:0 18px;font-weight:700}body[data-game=euchre] .bid-grid button.suit-red:not(.accent){color:var(--ag-suit-red)}body[data-game=euchre] .bid-special{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}body[data-game=euchre] .bid-alone{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;font-weight:650;cursor:pointer}body[data-game=euchre] .bid-alone input{width:16px;height:16px;margin:0;accent-color:var(--ag-brand)}.bid-note{font-size:.88rem;color:#d6ddd3}.ag-guide .ag-h3{margin-top:24px}.ag-faq{display:flex;flex-direction:column;gap:8px;margin:4px 0 0}.ag-faq-item{border:1px solid var(--ag-line);border-radius:6px;background:var(--ag-card-bg);overflow:hidden}.ag-faq-item>summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:600;font-size:.875rem;color:var(--ag-ink);display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ag-bg-soft);transition:background 150ms ease,color 150ms ease}.ag-faq-item>summary:hover{background:var(--ag-brand-soft);color:var(--ag-brand)}.ag-faq-item>summary::-webkit-details-marker{display:none}.ag-faq-item>summary::after{content:'';flex-shrink:0;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform 200ms ease;margin-bottom:4px}.ag-faq-item[open]>summary::after{transform:rotate(-135deg);margin-bottom:0;margin-top:4px}.ag-faq-body{padding:12px 14px;border-top:1px solid var(--ag-line);color:var(--ag-subtle-fg)}.ag-faq-body p{margin:0}.game-table .trick-center{display:grid;grid-template-columns:minmax(72px,1fr) 62px minmax(72px,1fr);grid-template-rows:auto 86px 128px 86px;gap:4px 12px;width:min(100%,380px);align-items:center;justify-items:center}.game-table .trick-center .card{width:62px;height:86px;font-size:1.15rem;padding:6px;margin:0;box-shadow:0 6px 14px #00000059}.tc-label{display:inline-flex;flex-direction:column;align-items:center;gap:1px;padding:4px 11px;border-radius:999px;background:#0000002e;border:1px solid #ffffff21;font-size:.78rem;font-weight:650;line-height:1.2;color:#f1eadc;white-space:nowrap;max-width:100%}.tc-label small{font-size:.68rem;font-weight:500;color:#d6ddd3}.tc-label small:empty{display:none}.tc-label.is-turn{background:#f1eadc;border-color:#f1eadc;color:#17221d;box-shadow:0 0 0 3px #f1eadc40}.tc-label.is-turn small{color:#3a4a40}.tc-label.tc-seat-2{grid-area:1/1/2/4;justify-self:center}.tc-card.tc-seat-2{grid-area:2/2}.tc-label.tc-seat-1{grid-area:3/1;align-self:start}.tc-card.tc-seat-1{grid-area:3/1;align-self:end}.tc-label.tc-seat-3{grid-area:3/3;align-self:start}.tc-card.tc-seat-3{grid-area:3/3;align-self:end}.tc-card.tc-seat-0{grid-area:4/2}.tc-empty{grid-area:3/2;font-size:.82rem;color:#d6ddd3;opacity:.8;display:none}.trick-center.is-empty .tc-empty{display:block}.player .seat.is-turn{background:#f1eadc;color:#17221d;padding:2px 10px;border-radius:999px}@media(max-width:560px){.game-table .trick-center{grid-template-columns:minmax(60px,1fr) 54px minmax(60px,1fr);grid-template-rows:auto 76px 116px 76px;gap:4px 8px}.game-table .trick-center .card{width:54px;height:76px;font-size:1rem;padding:5px}.tc-label{padding:3px 8px;font-size:.72rem}}@media(max-width:420px){.game-table .cards .card{width:56px;height:80px;font-size:1rem;padding:4px;margin-left:-32px}.game-table .cards .card:first-child{margin-left:0}}body[data-game=hearts] .bid-panel--hearts{display:grid;justify-items:center;gap:12px;text-align:center}body[data-game=hearts] .bid-panel--hearts .bid-panel-title{display:grid;gap:4px}body[data-game=hearts] .bid-panel--hearts .bid-panel-title span{font-size:.9rem;color:#d6ddd3;line-height:1.35}body[data-game=hearts] .bid-panel--hearts button{min-width:190px;min-height:42px;font-weight:700}body[data-game=hearts] .bid-panel--hearts button:disabled{background:#ffffff1c;border-color:#ffffff2b;color:#ffffff96;cursor:not-allowed}.game-table .cards .card.pass-selected{outline:3px solid #f4cf64;outline-offset:-3px;transform:translateY(-16px)}body[data-game=euchre] .bid-panel--euchre .bid-special{display:grid;justify-items:center;gap:10px}body[data-game=euchre] .bid-panel--euchre .bid-special button{min-width:200px;min-height:42px;font-weight:700}body[data-game=euchre] .bid-panel--euchre .bid-grid button{min-height:42px}body[data-game=euchre] .bid-panel--euchre .bid-grid button:only-child{min-width:200px}body[data-game=euchre] .bid-panel--euchre .bid-alone{padding:7px 14px;border:1px solid #ffffff2b;border-radius:999px;background:#0000002e;color:#f1eadc}body[data-game=euchre] .bid-panel--euchre .bid-alone input{width:16px;height:16px;accent-color:#f4cf64;cursor:pointer}body[data-game=euchre] .bid-panel--euchre .bid-upcard .card{box-shadow:0 6px 14px #00000059}body[data-game=euchre] .bid-panel--euchre .bid-grid button,body[data-game=euchre] .bid-panel--euchre .bid-special button,body[data-game=spades] .bid-panel--spades .bid-grid button,body[data-game=spades] .bid-panel--spades .bid-special button,body[data-game=hearts] .bid-panel--hearts button{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center}.ag-stats-panel .ag-card-body #stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;border:0;padding:0}.ag-stats-panel .ag-card-body #stats .ag-stat{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:0;gap:2px;padding:9px 11px;border:1px solid var(--ag-line);border-radius:8px;background:var(--ag-bg-soft)}.ag-stats-panel .ag-card-body #stats .ag-stat span{font-size:.64rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--ag-muted-fg)}.ag-stats-panel .ag-card-body #stats .ag-stat strong{font-size:1.15rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ag-ink)}.ag-stats-panel .ag-card-body #stats .stats-empty{grid-column:1/-1;margin:0;border-left:3px solid var(--ag-felt);padding:2px 0 2px 10px;font-size:.86rem;line-height:1.6;color:var(--ag-ink)}.trick-center.is-collecting .tc-card{animation:tc-collect 300ms ease-in forwards}@keyframes tc-collect{60%{opacity:.85}to{opacity:0;transform:translate(var(--tc-x,0),var(--tc-y,0)) scale(.7)}}.trick-center.collect-to-0 .tc-card{--tc-y:70px}.trick-center.collect-to-1 .tc-card{--tc-x:-90px}.trick-center.collect-to-2 .tc-card{--tc-y:-70px}.trick-center.collect-to-3 .tc-card{--tc-x:90px}@media(prefers-reduced-motion:reduce){.trick-center.is-collecting .tc-card{animation:none;opacity:0}}[data-motion=reduce] .trick-center.is-collecting .tc-card{animation:none;opacity:0}
.ag-guide .ag-faq-body{color:var(--ag-content-fg)}
