:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#e2e8f0;background-color:#070c16;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-size-base: clamp(.75rem, 1.6vw, 1rem);--font-size-sm: clamp(.65rem, 1.2vw, .85rem);--font-size-lg: clamp(1rem, 3.2vw, 1.5rem);--font-size-xl: clamp(1.4rem, 3.8vw, 2rem);--spacing-xs: clamp(.25rem, 1vw, .35rem);--spacing-sm: clamp(.35rem, 1.2vw, .5rem);--spacing-md: clamp(.5rem, 1.6vw, .75rem);--spacing-lg: clamp(.7rem, 2vw, 1rem);--radius-sm: clamp(.35rem, 1vw, .5rem);--radius-md: clamp(.6rem, 1.6vw, .9rem);--radius-lg: clamp(.9rem, 2.2vw, 1.2rem);--card-width: clamp(3.75rem, 9vw, 5.625rem);--card-height: clamp(5.25rem, 12.6vw, 7.875rem);--played-card-width: clamp(3.75rem, 8.4vw, 5.25rem);--played-card-height: clamp(5.25rem, 11.6vw, 7.35rem);--kitty-card-width: clamp(3.75rem, 7.2vw, 4.5rem);--kitty-card-height: clamp(5.25rem, 10.5vw, 6.5rem);--scoreboard-width: clamp(6rem, 14vw, 8rem);--scoreboard-row-height: clamp(2.4rem, 6vw, 3.5rem)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#070c16}#root{min-height:100vh}.confirm-modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-modal{background-color:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:400px;width:90%;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #e5e7eb}.confirm-modal__title{font-size:1.25rem;font-weight:600;margin:0;color:#111827}.confirm-modal__close{background:none;border:none;font-size:2rem;line-height:1;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background-color .2s,color .2s}.confirm-modal__close:hover{background-color:#f3f4f6;color:#111827}.confirm-modal__close:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.confirm-modal__body{padding:20px 24px}.confirm-modal__message{margin:0;color:#4b5563;font-size:.9375rem;line-height:1.6}.confirm-modal__actions{display:flex;gap:12px;padding:16px 24px 20px;justify-content:flex-end}.confirm-modal__button{padding:10px 20px;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;min-width:80px}.confirm-modal__button--cancel{background-color:#f3f4f6;color:#374151}.confirm-modal__button--cancel:hover{background-color:#e5e7eb}.confirm-modal__button--cancel:focus-visible{outline:2px solid #6b7280;outline-offset:2px}.confirm-modal__button--primary{background-color:#3b82f6;color:#fff}.confirm-modal__button--primary:hover{background-color:#2563eb}.confirm-modal__button--primary:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.confirm-modal__button--danger{background-color:#ef4444;color:#fff}.confirm-modal__button--danger:hover{background-color:#dc2626}.confirm-modal__button--danger:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.app-header{--header-height: var(--header-height, 5rem);position:fixed;top:0;left:0;right:0;height:var(--header-height);display:block;padding:.9rem 1.1rem;background:radial-gradient(circle at 18% 18%,#0f172a,#0c1426 45%,#080f1c);color:#e2e8f0;border:1px solid rgba(255,255,255,.06);box-shadow:0 20px 40px #0006,inset 0 0 0 1px #ffffff05;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:60;box-sizing:border-box}.app-header--overlay{position:fixed;top:1rem;left:1rem;right:auto;height:auto;padding:0;background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:90}.app-header__inner{position:relative;display:flex;align-items:center;justify-content:space-between;width:min(72rem,100%);margin:0 auto;padding:0;border-radius:0;background:transparent;color:#e2e8f0;gap:1rem;height:100%;box-sizing:border-box}.app-header__inner--overlay{width:auto;margin:0;padding:0;gap:.35rem}.app-header__title{font-size:1.05rem;font-weight:800;letter-spacing:.02em;color:#f8fafc;text-shadow:0 2px 10px rgba(0,0,0,.35)}.app-header__title-block{display:flex;flex-direction:column;gap:.15rem}.app-header__title-block{align-items:flex-start;text-align:left;flex:1 1 auto;min-width:0}.app-header__subtitle{font-size:.9rem;color:#cbd5e1;letter-spacing:.01em;opacity:.92}.app-header__actions{margin-left:0;display:flex;align-items:center}.app-header__actions--overlay{margin:0}.header-login-button{padding:.55rem 1.1rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#f8fafc;font-weight:800;letter-spacing:.01em;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease;box-shadow:0 12px 26px #2563eb47;opacity:.94}.header-login-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb57;opacity:1}.header-login-button:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.header-avatar-menu{position:relative;display:inline-flex;align-items:center;gap:.6rem}.header-avatar-menu--overlay{padding:.25rem;border-radius:999px;background:#0f172a73;border:1px solid rgba(255,255,255,.06);box-shadow:0 12px 26px #00000057;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-avatar-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.08);padding:.2rem;border-radius:50%;background:linear-gradient(135deg,#ffffff0a,#ffffff14);box-shadow:0 12px 24px #00000047,inset 0 0 0 1px #ffffff0d;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.header-avatar-button:hover{transform:translateY(-1px) scale(1.01);box-shadow:0 16px 32px #00000052,0 0 0 1px #38bdf847}.header-avatar-button--overlay{background:linear-gradient(135deg,#ffffff14,#ffffff24);box-shadow:0 12px 24px #0000004d,inset 0 0 0 1px #ffffff14}.header-avatar-button:focus-visible{outline:2px solid #38bdf8;outline-offset:3px}.header-avatar{width:2.8rem;height:2.8rem;border-radius:50%;display:block;background:#0f172a}.header-menu-icon{width:1.5rem;height:1.5rem;display:inline-flex;flex-direction:column;justify-content:center;gap:.3rem;padding:.25rem}.header-menu-icon__bar{height:2px;width:100%;border-radius:999px;background:#e2e8f0;box-shadow:0 1px 2px #0f172a80}.header-identity{display:flex;flex-direction:column;justify-content:center}.header-username{font-weight:800;letter-spacing:.01em;color:#e2e8f0;text-shadow:0 1px 8px rgba(0,0,0,.35);max-width:11rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-useralias{font-size:.75rem;font-weight:500;letter-spacing:.02em;color:#94a3b8;text-shadow:0 1px 4px rgba(0,0,0,.35);max-width:11rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.2rem}.header-avatar-popover{position:absolute;top:calc(100% + .65rem);right:0;min-width:12rem;display:flex;flex-direction:column;gap:.45rem;background:#0b1223;border:1px solid rgba(255,255,255,.08);border-radius:.85rem;padding:.85rem;box-shadow:0 16px 32px #0000005c,0 0 0 1px #3b82f640;z-index:12}.header-avatar-popover--overlay{left:0;right:auto;min-width:13rem}.header-avatar-popover--overlay .header-avatar-popover__caret{left:26px;right:auto}.header-avatar-popover__caret{position:absolute;top:-8px;right:18px;width:16px;height:16px;transform:rotate(45deg);background:#0b1223;border-top:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.08);box-shadow:-4px -4px 12px #0000002e}.header-menu-item{width:100%;padding:.55rem .8rem;background:linear-gradient(135deg,#ffffff0f,#ffffff1f);border:1px solid rgba(255,255,255,.08);border-radius:.65rem;color:#f1f5f9;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.header-menu-item:hover{transform:translateY(-1px);background:linear-gradient(135deg,#3b82f633,#2563eb29);box-shadow:0 12px 22px #2563eb38}.header-menu-item:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.header-menu-item--ghost{background:linear-gradient(135deg,#ffffff0a,#ffffff0f);box-shadow:none}.header-menu-item--danger{background:linear-gradient(135deg,#f8717126,#dc262633);color:#fecaca;border-color:#f8717159}.header-menu-item--danger:hover{background:linear-gradient(135deg,#f8717147,#dc262659);box-shadow:0 12px 22px #dc262640}.header-account-modal__backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f121ac2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:9999}.header-account-modal{width:min(30rem,100%);background:linear-gradient(150deg,#0c1221,#0a101c 40%,#080d18);border:1px solid rgba(255,255,255,.08);border-radius:1.1rem;box-shadow:0 24px 60px #00000080,0 0 0 1px #3b82f64d;padding:1.35rem;color:#e2e8f0}.header-account-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.header-account-modal__eyebrow{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.header-account-modal__title{font-size:1.2rem;font-weight:800;color:#f8fafc}.header-account-modal__close{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#e2e8f0;border-radius:.6rem;width:2.4rem;height:2.4rem;cursor:pointer;font-size:1rem;transition:transform .14s ease,background .14s ease,box-shadow .14s ease}.header-account-modal__close:hover{transform:translateY(-1px);background:#3b82f62e;box-shadow:0 10px 20px #3b82f640}.header-account-modal__close:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.header-account-modal__body{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:center}.header-account-modal__warning{grid-column:1 / -1;padding:.75rem .9rem;border-radius:.85rem;border:1px solid rgba(248,113,113,.35);background:#f871711f;color:#fecdd3;font-weight:800;box-shadow:inset 0 1px #ffffff0f}.header-account-modal__avatar-block{display:flex;align-items:center;justify-content:center;padding:.75rem;background:#ffffff08;border-radius:.9rem;border:1px solid rgba(255,255,255,.06)}.header-account-avatar-wrapper{position:relative;display:inline-flex}.header-account-avatar-button{border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#ffffff0d,#ffffff1a);border-radius:50%;padding:.2rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.header-account-avatar-button:hover{transform:translateY(-1px) scale(1.01);box-shadow:0 14px 28px #3b82f640}.header-account-avatar-button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.header-account-avatar-button:focus-visible{outline:2px solid #38bdf8;outline-offset:3px}.header-account-modal__avatar{width:5rem;height:5rem;border-radius:50%;background:#0f172a;border:2px solid rgba(255,255,255,.08)}.header-account-avatar-popover{position:absolute;top:calc(100% + .65rem);left:50%;transform:translate(-50%);min-width:13rem;background:#0b1223;border:1px solid rgba(255,255,255,.08);border-radius:.85rem;padding:.75rem;box-shadow:0 16px 32px #0000005c,0 0 0 1px #3b82f640;z-index:12}.header-account-avatar-popover__caret{position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(45deg);width:16px;height:16px;background:#0b1223;border-top:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.08);box-shadow:-4px -4px 12px #0000002e}.header-account-avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.header-account-avatar-option{border:1px solid rgba(255,255,255,.08);border-radius:.7rem;padding:.25rem;background:#ffffff0a;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.header-account-avatar-option img{width:100%;display:block;border-radius:.5rem}.header-account-avatar-option:hover{transform:translateY(-1px);box-shadow:0 10px 18px #3b82f62e}.header-account-avatar-option--active{border-color:#3b82f6cc;box-shadow:0 10px 18px #3b82f63d}.header-account-avatar-option:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.header-account-modal__fields{display:grid;gap:.85rem}.header-account-modal__field{display:grid;gap:.25rem}.header-account-modal__label{font-size:.8rem;color:#94a3b8;letter-spacing:.01em}.header-account-modal__value{font-weight:700;color:#e2e8f0;word-break:break-word}.header-account-modal__input{width:100%;padding:.55rem .75rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#e2e8f0;font-weight:600}.header-account-modal__input:disabled{opacity:.7;cursor:not-allowed}.header-account-modal__input:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.header-account-modal__input--error{border-color:#f87171cc;background:#f8717114}.header-account-modal__error{margin-top:.35rem;color:#fca5a5;font-size:.8rem;font-weight:700;visibility:hidden;height:1.2rem}.header-account-modal__error--visible{visibility:visible}.header-account-modal__actions{margin-top:.4rem;display:flex;justify-content:flex-end}.header-account-modal__save{border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#3b82f63d,#2563eb33);color:#f8fafc;padding:.45rem .85rem;border-radius:.55rem;font-weight:800;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.header-account-modal__save:hover:enabled{transform:translateY(-1px);box-shadow:0 10px 18px #3b82f638}.header-account-modal__save:disabled{opacity:.6;cursor:not-allowed}.header-account-modal__save:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.header-account-modal__footer{grid-column:1 / -1;margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem}.header-account-modal__delete{border:1px solid rgba(248,113,113,.5);background:#f871711f;color:#fecaca;padding:.45rem .85rem;border-radius:.55rem;font-weight:800;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.header-account-modal__delete:hover:enabled{transform:translateY(-1px);box-shadow:0 10px 18px #f8717138}.header-account-modal__delete:disabled{opacity:.6;cursor:not-allowed}.header-account-modal__delete:focus-visible{outline:2px solid #fca5a5;outline-offset:2px}.header-account-modal__link{color:#93c5fd;text-decoration:none}.header-account-modal__link:hover{text-decoration:underline}@media(max-width:720px){.header-account-modal__body{grid-template-columns:1fr;text-align:center}.header-account-modal__avatar-block{justify-content:center}.header-account-modal__fields{text-align:left}}.app-shell{--header-height: 5rem;min-height:100vh;background:#070c16;display:flex;flex-direction:column;height:100vh;width:100%;box-sizing:border-box}.app-shell__main{padding-top:var(--header-height);box-sizing:border-box;min-height:calc(100vh - var(--header-height));flex:1 0 auto}.app-shell__header{position:relative}.app-shell--overlay-header .app-shell__main{padding-top:0;min-height:100vh}.game-awaiting{display:flex;justify-content:center;align-items:center;flex-direction:column}.game-awaiting__content{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.game-awaiting__content--preview{gap:.5rem}.game-awaiting__message{font-weight:700;color:#e2e8f0;background:#0f172abf;border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 16px #00000040;padding:.65rem 1rem;border-radius:.75rem;min-height:3.25rem;display:flex;align-items:center;justify-content:center}.euchre-hand-preview{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.euchre-hand-preview__title{font-size:1.5rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0}.euchre-hand-preview__hand{width:100%;max-width:20rem;margin-bottom:2rem}.play-card{position:relative;width:var(--card-width);height:var(--card-height);border-radius:.625rem;border:.0625rem solid #0f172a;background:radial-gradient(circle at 30% 20%,#fff,#f5f5f5);box-shadow:0 .25rem .75rem #0003;display:grid;align-items:center;justify-items:center;font-size:clamp(.5rem,1.2vw,1rem);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;overflow:hidden}.play-card--red{color:#c1121f}.play-card--black{color:#0f172a}.play-card--joker{color:#facc15;background:radial-gradient(circle at 30% 20%,#0f172a,#111827 40%,#0b1224);border-color:#facc1555}.play-card:hover{transform:translateY(-.25rem);box-shadow:0 .625rem 1.5rem #00000038}.play-card--dimmed{filter:grayscale(.3) brightness(1.15)}.play-card__corner{position:absolute;display:grid;gap:.125rem;font-weight:700;font-size:1em;text-align:center;line-height:1.1}.play-card__corner span:last-child{font-size:.875em}.play-card__corner--top{top:.5rem;left:.5rem;align-items:start}.play-card__corner--bottom{bottom:.5rem;right:.5rem;align-items:end;transform:rotate(180deg)}.play-card__symbol{font-size:2.25em;opacity:.8}.play-card__joker{display:grid;place-items:center;gap:.625rem;letter-spacing:.08em;font-weight:700;text-transform:uppercase}.play-card__joker-label{font-size:.875em;color:#e2e8f0}.play-card--back{background:linear-gradient(135deg,#1d4ed8,#7c3aed);border-color:#fff6}.play-card__pattern{width:100%;height:100%;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) .375rem,transparent .375rem,transparent .75rem),repeating-linear-gradient(-45deg,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) .375rem,transparent .375rem,transparent .75rem);background-size:1.25rem 1.25rem;opacity:.9}.play-card.gold-glow{animation:goldPulse 1.5s ease-in-out infinite;box-shadow:0 0 20px 8px #ffd700cc,0 0 40px 15px #ffd70066}@keyframes goldPulse{0%,to{box-shadow:0 0 20px 8px #ffd700cc,0 0 40px 15px #ffd70066}50%{box-shadow:0 0 30px 12px gold,0 0 60px 20px #ffd70099}}.play-hand{display:flex;min-height:7.875rem}.play-hand--stacked{position:relative;display:block;min-height:7.875rem;width:5.5rem}.play-hand-wrapper{display:flex;align-items:center;justify-content:center;margin-top:.5rem}.play-card-wrapper--stacked{position:absolute;top:0;left:0}.play-hand-split{display:flex;align-items:center;gap:2rem;justify-content:center}.play-hand-split--left,.play-hand-split--right{flex-direction:row}.play-hand-deck{flex-shrink:0}.play-hand-cards{display:flex;align-items:center;justify-content:center;flex:1;min-width:0}.play-hand--unfanned{display:flex;flex-wrap:nowrap}.play-card-wrapper--unfanned{flex-shrink:0;margin-left:-3.5rem}.play-card-wrapper--unfanned:first-child{margin-left:0}.hand{--hand-scale: 1;display:inline-flex;flex-wrap:nowrap;gap:.5rem;transform-origin:center center;transform:scale(var(--hand-scale))}.play-card-wrapper--dealer-selection-winner .play-card{box-shadow:0 0 0 4px #facc15,0 0 18px 6px #facc15cc,0 0 32px 12px #facc1599}.play-euchre-dialog-backdrop{position:fixed;inset:0;background:#050810c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1100;animation:play-euchre-fade-in .18s ease-out}@keyframes play-euchre-fade-in{0%{opacity:0}to{opacity:1}}.play-euchre-dialog{width:min(720px,92vw);border-radius:1.2rem;padding:1.6rem;color:#e2e8f0;background:radial-gradient(circle at 10% 10%,rgba(56,189,248,.18),transparent 55%),linear-gradient(135deg,#0f172af2,#0a0f1efa);border:1px solid rgba(148,163,184,.2);box-shadow:0 30px 60px #00000080,inset 0 1px #ffffff0f;animation:play-euchre-rise .2s ease-out}@keyframes play-euchre-rise{0%{transform:translateY(14px);opacity:.8}to{transform:translateY(0);opacity:1}}.play-euchre-dialog__header{text-align:center;margin-bottom:1.4rem}.play-euchre-dialog__title{margin:0 0 .4rem;font-size:clamp(1.4rem,2.8vw,2rem);letter-spacing:.02em}.play-euchre-dialog__subtitle{margin:0;color:#e2e8f0bf;font-size:.98rem}.play-euchre-dialog__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}.play-euchre-option{border:1px solid rgba(148,163,184,.2);border-radius:1rem;background:#0f172a99;color:#e2e8f0;padding:1.15rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.play-euchre-option:hover:not(:disabled){transform:translateY(-2px);border-color:#38bdf899;box-shadow:0 18px 30px #082f4966;background:#1e293bd9}.play-euchre-option:focus-visible{outline:2px solid #38bdf8;outline-offset:3px}.play-euchre-option:disabled{cursor:not-allowed;opacity:.45;box-shadow:none;transform:none}.play-euchre-option__icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:#38bdf829;color:#bae6fd;box-shadow:inset 0 0 0 1px #7dd3fc40}.play-euchre-option__icon svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.play-euchre-option__label{font-size:1rem;font-weight:700}.play-euchre-option__meta{font-size:.82rem;color:#e2e8f0b3}.play-euchre-dialog__actions{display:flex;justify-content:center;margin-top:1.5rem}.play-euchre-dialog__cancel{padding:.7rem 1.8rem;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0f172abf;color:#e2e8f0;font-weight:700;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.play-euchre-dialog__cancel:hover{transform:translateY(-1px);border-color:#94a3b8a6;box-shadow:0 12px 24px #00000059}.play-euchre-dialog__cancel:focus-visible{outline:2px solid #38bdf8;outline-offset:3px}@media(max-width:560px){.play-euchre-dialog{padding:1.2rem}.play-euchre-dialog__grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.play-euchre-option{padding:.9rem}}.logged-in-no-game{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;width:100%;padding:2rem 1rem;min-height:100%;height:100%;box-sizing:border-box}.logged-in-no-game__preview{max-width:520px;width:100%}.logged-in-no-game__actions{display:flex;gap:.75rem;justify-content:center;width:100%}.logged-in-no-game__cta{padding:.6rem 1.4rem;min-width:clamp(12rem,24vw,16rem);height:auto;min-height:2.85rem;display:inline-flex;align-items:center;justify-content:center}.logged-in-no-game__status{font-size:1rem;color:var(--color-text-secondary, #666);margin:0;text-align:center}.seat-badge{display:inline-flex;position:relative;align-items:center;align-self:center;flex:0 0 auto;gap:.45rem;padding:.35rem .5rem;border-radius:999px;background:#0f172ab8;color:#e2e8f0;border:1px solid rgba(148,163,184,.35);box-shadow:0 6px 14px #0000004d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.75rem;max-width:10.5rem}.seat-badge__chat{position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%);max-width:24rem;padding:.7rem 1.1rem;border-radius:1.1rem;background:#0f172aeb;color:#f8fafc;font-weight:600;font-size:.85rem;line-height:1.25;text-align:center;white-space:nowrap;box-shadow:0 10px 22px #00000059;border:1px solid rgba(148,163,184,.35);pointer-events:none;z-index:12;animation:seat-badge-chat-fade 3s ease-in-out}@keyframes seat-badge-chat-fade{0%{opacity:0;transform:translate(-50%) translateY(6px)}12%{opacity:1;transform:translate(-50%) translateY(0)}88%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(4px)}}.seat-badge__chat:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:.95rem solid transparent;border-right:.95rem solid transparent;border-top:.95rem solid rgba(148,163,184,.35);filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.seat-badge__chat:before{content:"";position:absolute;top:calc(100% - 1px);left:50%;transform:translate(-50%);width:0;height:0;border-left:.85rem solid transparent;border-right:.85rem solid transparent;border-top:.85rem solid rgba(15,23,42,.92)}.seat-badge__quick-chat{position:absolute;right:0;bottom:calc(100% + .55rem);min-width:9.5rem;padding:.55rem .65rem .65rem;border-radius:.9rem;background:#0f172af0;border:1px solid rgba(148,163,184,.4);box-shadow:0 12px 28px #0006;z-index:12}.seat-badge__quick-chat:after{content:"";position:absolute;top:100%;right:1.1rem;width:0;height:0;border-left:.75rem solid transparent;border-right:.75rem solid transparent;border-top:.75rem solid rgba(148,163,184,.4);filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.seat-badge__quick-chat:before{content:"";position:absolute;top:calc(100% - 1px);right:1.2rem;width:0;height:0;border-left:.65rem solid transparent;border-right:.65rem solid transparent;border-top:.65rem solid rgba(15,23,42,.94)}.seat-badge__quick-chat-title{display:block;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f099;font-weight:700;margin:0 0 .35rem}.seat-badge__quick-chat-options{display:flex;flex-direction:column;gap:.35rem}.seat-badge__quick-chat-option{border:1px solid transparent;border-radius:.6rem;padding:.4rem .6rem;font-size:.78rem;font-weight:700;color:#f8fafc;background:#94a3b81f;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease;text-align:left}.seat-badge__quick-chat-option:hover{transform:translateY(-1px);border-color:#94a3b88c;background:#94a3b833;box-shadow:0 6px 12px #00000040}.seat-badge__quick-chat-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#0f172a99;color:#e2e8f0;font-size:.85rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}.seat-badge__quick-chat-toggle:hover{transform:translateY(-1px);border-color:#94a3b8bf;background:#1e293bb3;box-shadow:0 6px 12px #00000040}.seat-badge__quick-chat-toggle:focus-visible{outline:2px solid rgba(59,130,246,.8);outline-offset:2px}.seat-badge__name-row{display:inline-flex;align-items:center;gap:.35rem}.seat-badge__remove{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;height:1.05rem;border-radius:999px;border:1px solid rgba(248,113,113,.5);background:#b91c1c40;color:#fecaca;cursor:pointer;padding:0;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease}.seat-badge__remove:hover{transform:translateY(-1px);border-color:#f87171cc;background:#b91c1c73;box-shadow:0 6px 12px #b91c1c59}.seat-badge__remove svg{width:.6rem;height:.6rem;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}.seat-badge--empty{justify-content:center;min-width:5.5rem;opacity:.85}.seat-badge__placeholder{font-weight:600}.seat-badge__avatar{position:relative;display:inline-flex;align-items:center}.seat-badge__avatar-img{width:1.65rem;height:1.65rem;border-radius:999px;object-fit:cover;box-shadow:0 0 0 1px #fff3,0 6px 12px #00000040;background:#0f172a}.seat-badge__active-dot{position:absolute;right:-.1rem;bottom:-.1rem;width:.55rem;height:.55rem;border-radius:999px;background:#22c55e;box-shadow:0 0 8px #22c55ee6;border:1px solid rgba(15,23,42,.8)}.seat-badge__info{display:flex;flex-direction:column;min-width:0}.seat-badge__name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:7rem}.seat-badge__meta{display:flex;align-items:center;gap:.3rem;margin-top:.1rem}.seat-badge__pill{font-size:.65rem;padding:.1rem .35rem;border-radius:999px;background:#94a3b840;color:#e2e8f0;font-weight:700}.seat-badge__pill--alone{background:linear-gradient(135deg,#a855f759,#8b5cf673);color:#f3e8ff;border:1px solid rgba(192,132,252,.6);box-shadow:0 6px 14px #a855f759}.seat-badge__dealer-pill{position:absolute;bottom:-.15rem;left:-.35rem;font-size:.6rem;padding:.1rem .3rem;border-radius:999px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#3b2f00;border:1px solid rgba(251,191,36,.6);box-shadow:0 6px 14px #fbbf2459;font-weight:700}.seat-badge__pill--hearts,.seat-badge__pill--diamonds{background:#fb718533;color:#fecdd3}.seat-badge__pill--clubs,.seat-badge__pill--spades{background:#94a3b840;color:#f8fafc}.seat-badge__tricks{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.35rem;padding:0 .35rem;border-radius:.5rem;font-weight:700;font-size:.75rem;border:1px solid rgba(15,23,42,.35)}.seat-badge__tricks--blue{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#e2e8f0}.seat-badge__tricks--red{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fee2e2}.seat-badge__tricks--neutral{background:#cbd5e1;color:#0f172a}.seat-badge--active{box-shadow:0 0 18px #3b82f673,0 10px 22px #00000059}.seat-badge--alone{box-shadow:0 0 0 2px #c084fc99,0 10px 22px #00000059}.seat-badge--sitting-out{opacity:.55}@media(min-width:768px){.seat-badge{font-size:.85rem;padding:.4rem .6rem;max-width:13rem}.seat-badge__avatar-img{width:1.9rem;height:1.9rem}.seat-badge__name{max-width:9rem}}@media(max-width:600px){.seat-badge{gap:0;padding:.2rem;width:2.4rem;height:2.4rem;max-width:2.4rem;border-radius:999px;justify-content:center}.seat-badge__avatar-img{width:2rem;height:2rem}.seat-badge__info,.seat-badge__tricks{display:none}.seat-badge__quick-chat-toggle{position:absolute;right:-.2rem;bottom:-.2rem;width:1.4rem;height:1.4rem;font-size:.75rem}.seat-badge__quick-chat{right:-.4rem;min-width:8.5rem}.seat-badge__chat{max-width:18rem;font-size:.75rem;padding:.6rem .85rem}}.poker-table{width:100%;height:100%;position:relative}.poker-table .play-grid{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.poker-table .played-card-grid{--played-card-grid-size: clamp(3.75rem, 6vw, 4.75rem);display:grid;grid-template-columns:var(--played-card-grid-size) var(--played-card-grid-size) var(--played-card-grid-size);grid-template-rows:var(--played-card-grid-size) var(--played-card-grid-size) var(--played-card-grid-size);justify-items:center;align-items:center;justify-content:center;align-content:center;margin:0 auto;pointer-events:auto;grid-template-areas:". player-3 ." "player-2 . player-4" ". player-1 ."}.poker-table .played-card-grid .grid-space{display:flex;justify-content:center;align-items:center;position:relative}.poker-table .played-card-grid .played-card-slot{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:visible}.poker-table .played-card-grid .played-card{position:absolute;transition:transform .12s ease}.poker-table .played-card-grid .played-card .play-card{width:var(--played-card-width);height:var(--played-card-height)}.poker-table .played-card-grid .played-card.played-card--winner .play-card{box-shadow:0 0 0 3px #facc15,0 0 18px 8px #facc15e6,0 0 32px 14px #facc1580}.poker-table .played-card-grid .kitty{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.poker-table .played-card-grid .kitty-stack{position:relative;width:var(--kitty-card-width);height:var(--kitty-card-height)}.poker-table .played-card-grid .kitty-card{position:absolute;inset:0}.poker-table .played-card-grid .kitty-card .play-card{width:100%;height:100%}.poker-table .played-card-grid .deck-to-deal{background:transparent;border:none;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;cursor:pointer;color:#fef3c7;text-transform:none;font-size:1rem}.poker-table .played-card-grid .deck-to-deal:disabled{cursor:default;opacity:.85}.poker-table .played-card-grid .deck-to-deal__label{font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.bidding-overlay{position:absolute;display:flex;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:radial-gradient(circle at 20% 20%,#3b82f638,#0f172ae0);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-md);color:#f8fafc;align-items:center;min-width:clamp(9rem,28vw,12rem);font-size:var(--font-size-base);border:1px solid rgba(148,163,184,.35);box-shadow:0 18px 36px #00000059,inset 0 0 0 1px #ffffff0d}.bidding-overlay--stacked{flex-direction:column;align-items:flex-start}.bidding-row{display:flex;gap:var(--spacing-md);align-items:center;flex-wrap:nowrap;width:100%;justify-content:center}.bidding-overlay button{border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#2563ebbf,#1d4ed8f2);color:#f8fafc;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-weight:700;letter-spacing:.01em;font-size:var(--font-size-sm);box-shadow:0 10px 20px #0f172a59;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.bidding-overlay button:hover:enabled{transform:translateY(-1px);box-shadow:0 12px 24px #2563eb59}.bidding-overlay button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.bidding-overlay button:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.bidding-overlay input:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.bidding-overlay--bottom{top:80%;left:50%;transform:translate(-50%,-50%);z-index:2}.bidding-overlay--center{inset:0;margin:auto;width:fit-content;height:fit-content;max-width:clamp(10rem,34vw,14rem);flex-direction:column}.choose-trump{display:grid;grid-template-columns:repeat(2,auto);grid-template-rows:auto repeat(2,auto);gap:var(--spacing-xs) var(--spacing-md);align-items:center;width:100%;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);background:#0f172a66;border:1px solid rgba(255,255,255,.08)}.choose-trump span{grid-column:1 / -1;justify-self:start}.choose-trump label{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:#f8fafc;padding:.15rem var(--spacing-xs);border-radius:var(--radius-sm);transition:background .12s ease}.choose-trump label:hover{background:#3b82f633}.choose-trump__icon{font-size:var(--font-size-xl);line-height:1}.choose-trump__icon--hearts,.choose-trump__icon--diamonds{color:#dc0505}.choose-trump__icon--clubs,.choose-trump__icon--spades{color:#0f172a;text-shadow:0 1px 2px rgba(15,23,42,.35)}.discard-message{margin-left:.5rem;color:#fbbf24;font-weight:700;font-size:var(--font-size-base);text-shadow:0 2px 6px rgba(0,0,0,.35)}.bidding-overlay__alone-toggle{display:inline-flex;align-items:center;justify-content:center;width:100%;gap:var(--spacing-xs)}.bidding-overlay__alone-toggle--inline{width:auto}.card-table-grid{--grid-side: clamp(12rem, 20vw, 20rem);--grid-center: clamp(16rem, 30vw, 25rem);--grid-top: clamp(6rem, 12vh, 8rem);--grid-middle: clamp(16rem, 32vh, 25rem);--grid-bottom: clamp(12rem, 24vh, 20rem);position:relative;display:grid;grid-template-columns:var(--grid-side) var(--grid-center) var(--grid-side);grid-template-rows:minmax(var(--grid-top),max-content) minmax(var(--grid-middle),max-content) minmax(var(--grid-bottom),max-content);grid-template-areas:"share-link player-3 scoreboard" "player-2 card-table player-4" ". player-1 ."}.card-table-grid .table{width:100%}.card-table-grid .table-status-wrapper{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.card-table-grid .table-status-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:4;padding:var(--spacing-sm) var(--spacing-lg);border-radius:999px;background:#0f172abf;color:#f8fafc;font-size:var(--font-size-base);font-weight:600;letter-spacing:.02em;text-transform:none;max-width:min(90vw,20rem);text-align:center;box-shadow:0 .4rem 1rem #00000059,inset 0 0 0 1px #94a3b859}.card-table-grid .share-link{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start;padding:.5rem .6rem;border-radius:.8rem;background:#0f172ab3;border:1px solid rgba(148,163,184,.25);box-shadow:0 .4rem 1rem #00000040,inset 0 0 0 1px #94a3b826;max-width:min(90vw,18rem)}.card-table-grid .share-link__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#e2e8f0b3;font-weight:700}.card-table-grid .share-link__row{display:flex;align-items:center;gap:.4rem}.card-table-grid .share-link__url{font-size:.8rem;color:#e2e8f0;word-break:break-all}.card-table-grid .share-link__copy{border:1px solid rgba(148,163,184,.35);background:#1e293bcc;color:#e2e8f0;border-radius:.5rem;width:28px;height:28px;display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.card-table-grid .share-link__copy:hover{transform:translateY(-1px);border-color:#38bdf8b3;box-shadow:0 8px 18px #082f4959}.card-table-grid .share-link__copy:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.card-table-grid .share-link__copy svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.card-table-grid .share-link__status{font-size:.75rem;color:#a7f3d0;font-weight:700}.card-table-grid .player-slot-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem}.card-table-grid .player-slot-empty--selectable{cursor:pointer}.card-table-grid .player-slot-empty__icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#94a3b81f;border:1px dashed rgba(148,163,184,.35);color:#e2e8f0bf}.card-table-grid .player-slot-empty__icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card-table-grid .player-slot-empty__text{opacity:.9;font-weight:700}.card-table-grid .player-slot-empty__actions{display:flex;flex-direction:column;gap:.35rem;width:100%;align-items:center}.card-table-grid .player-slot-empty__button{padding:.4rem .8rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#f8fafc;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;opacity:.95}.card-table-grid .player-slot-empty__button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #2563eb59;opacity:1}.card-table-grid .player-slot-empty__button:disabled{cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.card-table-grid .player-slot-empty__button--ghost{background:#94a3b81f;border-color:#94a3b859;color:#e2e8f0}.card-table-grid .player-slot-empty__button--ghost:hover{box-shadow:0 10px 20px #0f172a59}.card-table-grid .player-1,.card-table-grid .player-2,.card-table-grid .player-3,.card-table-grid .player-4{display:flex;position:relative;z-index:10}.card-table-grid .player-1{flex-direction:column;align-items:center;padding-top:.5rem}.card-table-grid .player-3{height:100%;justify-content:flex-end;flex-direction:column;padding-bottom:.5rem}.card-table-grid .player-2,.card-table-grid .player-4{width:100%;height:100%;display:flex;align-items:center}.card-table-grid .player-2{justify-content:flex-end;padding-right:.5rem}.card-table-grid .player-4{justify-content:flex-start;padding-left:.5rem}.card-table-grid .spectators-overlay{position:absolute;left:1.2rem;bottom:1.2rem;padding:.6rem .8rem;border-radius:.9rem;background:#0f172ae6;border:1px solid rgba(148,163,184,.35);box-shadow:0 .6rem 1.2rem #0006,inset 0 0 0 1px #94a3b833;min-width:9rem;max-width:14rem}.card-table-grid .spectators-overlay__title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#e2e8f0bf;margin-bottom:.4rem}.card-table-grid .spectators-overlay__list{display:flex;flex-direction:column;gap:.35rem}.card-table-grid .spectators-overlay__item{display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.85rem;color:#f8fafc;font-weight:600}.card-table-grid .spectators-overlay__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-table-grid .spectators-overlay__remove{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;height:1.05rem;border-radius:999px;border:1px solid rgba(248,113,113,.5);background:#b91c1c40;color:#fecaca;cursor:pointer;padding:0;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease}.card-table-grid .spectators-overlay__remove:hover{transform:translateY(-1px);border-color:#f87171cc;background:#b91c1c73;box-shadow:0 6px 12px #b91c1c59}.card-table-grid .spectators-overlay__remove svg{width:.6rem;height:.6rem;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}@media(max-width:600px){.card-table-grid{--grid-side: clamp(6.5rem, 18vw, 9.5rem)}.card-table-grid .player-2,.card-table-grid .player-4{width:auto}}@layer components{.scoreboard{display:flex;flex-direction:column;width:var(--scoreboard-width);border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 6px 18px #0000002e;font-family:Helvetica Neue,Arial,sans-serif;color:#f8fafc;background:#0f172a}.scoreboard__team{display:grid;place-items:center;height:var(--scoreboard-row-height);font-size:var(--font-size-lg);font-weight:700;letter-spacing:.02em}.scoreboard__team--blue{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.scoreboard__team--red{background:linear-gradient(135deg,#ef4444,#b91c1c)}}.player-ready-overlay{inset:0;display:flex;align-items:center;justify-content:center;z-index:6;pointer-events:none}.player-ready-overlay__content{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:.65rem;padding:1rem 1.25rem;border-radius:1rem;background:#0a0f1ee6;border:1px solid rgba(148,163,184,.35);box-shadow:0 16px 36px #00000073;text-align:center}.player-ready-overlay__title{font-size:1.05rem;font-weight:700;color:#e2e8f0}.player-ready-overlay__subtitle{margin:0;font-size:.85rem;color:#cbd5e1}.player-ready-overlay__button{padding:.65rem 1.2rem;border-radius:999px;border:1px solid rgba(59,130,246,.5);background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#f8fafc;font-weight:700;cursor:pointer;box-shadow:0 12px 24px #2563eb59;transition:transform .12s ease,box-shadow .12s ease}.player-ready-overlay__button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb66}.euchre-engine{position:relative;width:100%;max-width:none;height:100%;margin:0;padding:0;border-radius:0;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at 20% 20%,#0f172a,#0a1020 42%,#05070f);box-shadow:0 25px 55px #00000073,inset 0 0 0 1px #ffffff08;color:#e2e8f0}.euchre-engine--empty{min-height:calc(100vh - var(--header-height, 88px));flex-direction:column;gap:1rem}.euchre-engine__join-container{height:3.5rem;display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.euchre-engine__join-button{height:100%;min-width:10rem;padding:0 1.1rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#f8fafc;font-weight:800;letter-spacing:.01em;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease;box-shadow:0 12px 26px #2563eb47;opacity:.94}.euchre-engine__join-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb57;opacity:1}.euchre-engine__join-button--secondary{background:linear-gradient(135deg,#ffffff14,#ffffff24);color:#e2e8f0;box-shadow:0 8px 18px #00000059}.euchre-engine__join-button--secondary:hover{box-shadow:0 10px 22px #00000061}.euchre-engine__join-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.euchre-engine__join-status{height:100%;min-width:10rem;padding:0 1.1rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.08);background:#ffffff0f;color:#e2e8f0;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 20px #00000047;opacity:.9}.euchre-engine__join-button:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.euchre-engine__status{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin-bottom:1.25rem;padding:.75rem 1rem;border-radius:.75rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);box-shadow:0 8px 20px #00000040;font-weight:600}.euchre-engine__status button{justify-self:start;padding:.45rem .9rem;border-radius:.65rem;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#f8fafc;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;opacity:.95}.euchre-engine__status button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px #2563eb59;opacity:1}.euchre-engine__status button:disabled{opacity:.55;cursor:not-allowed}.report-issue-backdrop{position:fixed;inset:0;background-color:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:reportIssueFadeIn .2s ease-out}@keyframes reportIssueFadeIn{0%{opacity:0}to{opacity:1}}.report-issue{background:#fff;color:#0f172a;border-radius:12px;box-shadow:0 16px 40px #0f172a33;width:min(92vw,460px);animation:reportIssueSlideUp .2s ease-out}@keyframes reportIssueSlideUp{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}.report-issue__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 14px;border-bottom:1px solid #e2e8f0}.report-issue__title{margin:0;font-size:1.1rem;font-weight:700}.report-issue__close{background:transparent;border:none;font-size:1.8rem;line-height:1;color:#64748b;cursor:pointer;padding:0;width:32px;height:32px;display:grid;place-items:center;border-radius:6px;transition:background .2s ease,color .2s ease}.report-issue__close:hover{background:#f1f5f9;color:#0f172a}.report-issue__close:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.report-issue__body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.report-issue__field{display:flex;flex-direction:column;gap:8px}.report-issue__label{font-size:.92rem;font-weight:600;color:#0f172a}.report-issue__select,.report-issue__textarea{width:100%;border-radius:8px;border:1px solid #cbd5f5;background:#f8fafc;padding:10px 12px;font-size:.95rem;color:#0f172a;transition:border-color .2s ease,box-shadow .2s ease}.report-issue__select:focus,.report-issue__textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa40}.report-issue__textarea{resize:vertical;min-height:110px}.report-issue__helper{display:flex;justify-content:space-between;font-size:.8rem;color:#64748b}.report-issue__error{color:#dc2626;font-weight:600;font-size:.8rem}.report-issue__error--form{background:#fef2f2;border:1px solid #fecaca;padding:10px 12px;border-radius:8px}.report-issue__message{margin:0;font-size:.95rem;line-height:1.6;color:#475569}.report-issue__actions{display:flex;justify-content:flex-end;gap:12px}.report-issue__actions--single{justify-content:flex-end}.report-issue__button{padding:10px 18px;border-radius:8px;border:none;font-size:.92rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.report-issue__button--cancel{background:#e2e8f0;color:#1f2937}.report-issue__button--cancel:hover{background:#cbd5e1}.report-issue__button--primary{background:#2563eb;color:#fff;box-shadow:0 10px 18px #2563eb40}.report-issue__button--primary:hover{background:#1d4ed8;transform:translateY(-1px)}.report-issue__button:disabled{cursor:not-allowed;opacity:.7;box-shadow:none;transform:none}.euchre-game-page{position:relative;min-height:100%;height:100%;background:radial-gradient(circle at 12% 18%,#0f172a,#0c1426 40%,#070c16 90%);color:#e2e8f0;overflow:hidden}.euchre-game-page__backdrop{position:absolute;inset:0;pointer-events:none;overflow:hidden}.euchre-game-page__orb{position:absolute;width:28rem;height:28rem;border-radius:999px;filter:blur(120px);opacity:.65}.euchre-game-page__orb--left{top:-8rem;left:-10rem;background:radial-gradient(circle,#3b82f659,#0f172a00 65%)}.euchre-game-page__orb--right{bottom:-12rem;right:-14rem;background:radial-gradient(circle,#10b98159,#0f172a00 65%)}.euchre-game-page__content{position:relative;z-index:1;width:100%;padding:0;display:block;height:100%}.euchre-game-page__content .euchre-game-page__status{position:absolute;top:80px;left:50%;transform:translate(-50%);width:fit-content;max-width:min(90%,520px);padding:8px 16px;border-radius:999px;background:#0f172ae6;color:#e2e8f0;border:1px solid rgba(148,163,184,.3);font-size:.95rem;font-weight:600;box-shadow:0 8px 20px #02061759;text-align:center;pointer-events:none;z-index:3}.euchre-game-page__main{width:100%;max-width:none;margin:0;display:flex;justify-content:center;min-height:100%;height:100%}.euchre-game-page__header{position:sticky;top:0;width:100%;z-index:3;padding:0;background:linear-gradient(180deg,#070c16e6,#070c16a6 70%,#070c1600);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.euchre-game-page__header-inner{width:100%;margin:0}.euchre-game-page__header-inner .app-header{margin:0;width:100%;max-width:100vw;border-radius:0;box-sizing:border-box;min-height:var(--header-height)}.game-complete-modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.game-complete-modal{background-color:#fff;border-radius:12px;padding:40px 30px;box-shadow:0 4px 20px #0000004d;text-align:center;min-width:300px;max-width:400px}.game-complete-message{margin:0 0 30px;font-size:24px;font-weight:600;color:#333}.game-complete-buttons{display:flex;gap:12px;flex-direction:column}.game-complete-btn{padding:12px 24px;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.play-again-btn{background-color:#4caf50;color:#fff}.play-again-btn:hover{background-color:#45a049;transform:translateY(-2px);box-shadow:0 2px 8px #4caf504d}.play-again-btn:active{transform:translateY(0)}.leave-game-btn{background-color:#f44336;color:#fff}.leave-game-btn:hover{background-color:#da190b;transform:translateY(-2px);box-shadow:0 2px 8px #f443364d}.leave-game-btn:active{transform:translateY(0)}.logged-in-active-game{min-height:100%;height:100%;box-sizing:border-box;width:100%;display:flex}.logged-in-active-game>*{flex:1 0 auto;height:100%}.loading-dialog-backdrop{position:fixed;inset:0;background:#0a0f1999;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.loading-dialog{min-width:260px;max-width:360px;background:#0b1b2d;color:#e2e8f0;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:24px 28px;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:0 20px 50px #02061780}.loading-dialog__message{margin:0;font-size:1rem;font-weight:600;letter-spacing:.01em;text-align:center}.loading-dialog__spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(226,232,240,.2);border-top-color:#38bdf8;animation:loading-spin .9s linear infinite}.loading-dialog__cancel{margin-top:6px;padding:8px 16px;border-radius:999px;border:1px solid rgba(148,163,184,.4);background:transparent;color:#e2e8f0;font-weight:600;cursor:pointer;transition:all .2s ease}.loading-dialog__cancel:hover{border-color:#38bdf8;color:#38bdf8;box-shadow:0 0 0 3px #38bdf833}.loading-dialog__cancel:active{transform:translateY(1px)}@keyframes loading-spin{to{transform:rotate(360deg)}}.tos-modal-backdrop{position:fixed;inset:0;background-color:#0f172aa6;display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:tosFadeIn .2s ease-out}@keyframes tosFadeIn{0%{opacity:0}to{opacity:1}}.tos-modal{width:min(900px,92vw);max-height:88vh;background:#fff;border-radius:16px;box-shadow:0 18px 60px #0f172a59;display:flex;flex-direction:column;overflow:hidden;animation:tosSlideUp .2s ease-out}@keyframes tosSlideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.tos-modal__header{padding:24px 28px 12px;border-bottom:1px solid #e2e8f0}.tos-modal__title{font-size:1.5rem;font-weight:700;margin:0 0 6px;color:#0f172a}.tos-modal__meta{margin:0;color:#64748b;font-size:.95rem}.tos-modal__body{padding:20px 28px;overflow-y:auto}.tos-section+.tos-section{margin-top:18px}.tos-section__title{margin:0 0 6px;font-size:1.05rem;color:#0f172a}.tos-section__paragraph{margin:0 0 8px;color:#334155;line-height:1.6;font-size:.95rem}.tos-section__list{margin:0 0 8px 18px;color:#334155;line-height:1.6;font-size:.95rem}.tos-modal__notice{margin-top:16px;font-weight:600;color:#1e293b}.tos-modal__actions{display:flex;flex-wrap:wrap;gap:12px;padding:16px 28px 24px;border-top:1px solid #e2e8f0;justify-content:flex-end;background:#f8fafc}.tos-modal__button{padding:10px 18px;border-radius:10px;font-size:.95rem;font-weight:600;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .2s}.tos-modal__button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.tos-modal__button--primary{background:#2563eb;color:#fff;box-shadow:0 10px 20px #2563eb40}.tos-modal__button--primary:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.tos-modal__button--danger{background:#fee2e2;color:#b91c1c}.tos-modal__button--danger:hover:not(:disabled){background:#fecaca}.toast-container{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;gap:.6rem;z-index:9999}.toast{padding:.65rem .9rem;border-radius:10px;color:#f8fafc;box-shadow:0 10px 24px #00000059,0 0 0 1px #ffffff14 inset;font-size:.92rem;font-weight:600;letter-spacing:.01em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.toast--info{background:#111827}.toast--error{background:#b91c1c}
