:root{--bg:#0f172a;--panel:#111827;--panel-2:#1f2937;--text:#e5e7eb;--muted:#9ca3af;--accent:#22c55e;--accent-2:#3b82f6;--border:#374151;--danger:#ef4444;--bottom-strip-h: 0px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#0f172a url(/horrible_therapy_bg_tile_repeat.png) repeat;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji"}.app-container{max-width:1120px;margin:0 auto;padding:24px;position:relative}.app-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:34px;position:relative;z-index:100}.app-header h1{font-size:24px;margin:0;color:#fff;display:flex;align-items:flex-start;gap:10px}.app-header .room-tag{font-size:16px;font-weight:500;color:#cbd5e1;display:inline-flex;align-items:center;gap:6px}.app-header .app-logo{height:52px;max-height:22vh;width:auto;display:block;object-fit:contain;float:left;margin:8px 16px 16px 0}@media (max-width: 520px){.app-header .app-logo{height:50px;max-height:22vh}}.subtle{color:var(--muted);margin:8px 0}.card{background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 10px 30px #0003,inset 0 1px #ffffff0a}.card.info h3{margin:0 0 6px}.card.auth-card{max-width:520px;margin:0 auto}.field{display:grid;gap:6px;margin-bottom:12px}.field.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}input{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);outline:none;width:100%}input::placeholder{color:#6b7280}.actions{display:flex;gap:10px;align-items:center;margin-top:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;transition:all .15s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #00000040}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.icon{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}.btn.primary{background:linear-gradient(180deg,#16a34a,#15803d);border-color:#14532d}.btn.danger{background:linear-gradient(180deg,#ef4444,#b91c1c);border-color:#7f1d1d}.btn.glow{position:relative;box-shadow:0 0 #22c55e00;animation:glowPulse 1.8s ease-in-out infinite}@keyframes glowPulse{0%,to{box-shadow:0 0 #22c55e00}50%{box-shadow:0 0 18px #22c55e8c,0 0 36px #22c55e59}}.players{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 12px;margin:12px 0 8px}.players .pill{padding:3px 7px;border-radius:12px;background:#111827b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:#e5e7eb;display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.2}.players .player-row{display:flex;align-items:center;gap:6px}.players .status-ico{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;font-size:20px;line-height:1}.players .status-ico.hourglass-anim{animation:hourglassFlip 1.2s ease-in-out infinite;transform-origin:50% 60%}@keyframes hourglassFlip{0%,to{transform:rotate(0)}50%{transform:rotate(180deg)}}.avatar{width:20px;height:20px;border-radius:50%;background:#9ca3af;border:1px solid rgba(255,255,255,.15);display:inline-block}.players .pill .avatar{width:26px;height:26px}.avatar.lg{width:24px;height:24px}.avatar.chat{width:16px;height:16px;vertical-align:middle;margin-right:6px}.players .pill.you{border-width:2px}.players .pill.host,.players .pill.therapist{outline:1px solid #4b5563;background:#1f293799;color:#d1d5db}.players .pill.you.host,.players .pill.you.therapist{border-width:2px}.section{margin:14px 0;padding:12px;border-radius:10px;background:#111827}.section h3{margin:0 0 8px}.waiting{display:inline-flex;align-items:center;gap:8px}.waiting .dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;animation:blink 1s infinite alternate}@keyframes blink{0%{opacity:.2}to{opacity:1}}.therapist-badge{display:inline-flex;align-items:center;gap:6px}.therapist-badge .icon,.patient-icon{display:none}.emoji{font-size:20px;vertical-align:middle;margin-right:6px}.pill{border:1px solid var(--border);background:#ffffff08;padding:6px 10px;border-radius:12px;font-size:13px;display:block;width:fit-content}.pill.accent{border-color:#2563eb;background:#2563eb1f}.hand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;margin-top:8px;justify-content:center}.card-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:10px 12px;border-radius:10px;text-align:left;cursor:pointer}.card-btn:hover{background:#243244}.card-btn:disabled{opacity:.6;cursor:not-allowed}@font-face{font-family:PermanentMarker;src:local("Permanent Marker"),url(../../shared/assets/PermanentMarker.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Chalkboardish;src:local("Chalkboard"),local("Chalkboard SE"),local("Comic Sans MS");font-weight:400}.pcard{border:1px solid #d1d5db;background:#fff;color:#111827;padding:12px;border-radius:10px;box-shadow:0 6px 24px #0003;display:flex;align-items:center;justify-content:center;text-align:center;width:160px;height:224px;font-family:PermanentMarker,Chalkboardish,Comic Sans MS,cursive,system-ui;background-image:url(/moroccan-flower.png);background-size:160px auto;background-repeat:repeat;background-position:center}.qa-col h3,.pick-winner-title{font-family:PermanentMarker,Chalkboardish,Comic Sans MS,cursive,system-ui}.pcard-btn{transition:transform .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.pcard-btn:hover{transform:translateY(-2px)}.pcard-btn:active{transform:translateY(0) scale(.98)}@keyframes flipInRight{0%{transform:translate(30px) rotateY(90deg);opacity:0}60%{transform:translate(0) rotateY(15deg);opacity:1}to{transform:translate(0) rotateY(0)}}.new-card{animation:flipInRight .6s ease both;transform-style:preserve-3d}.hand-grid.disabled{opacity:.5;filter:grayscale(.6);pointer-events:none}.round-transition{animation:flashBg .7s ease}@keyframes flashBg{0%{background:linear-gradient(180deg,#1b2a4f,#0f172a)}to{background:linear-gradient(180deg,#0b1225,#0f172a)}}.lobby{margin-top:12px}.scores{margin:8px 0 0 16px}.game-panel h3{margin:8px 0}.game-panel p{margin:6px 0}.results-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-top:4px}.results-banner{margin:4px 0;padding:6px 12px;border-radius:12px;border:1px solid #60a5fa;background:linear-gradient(180deg,#3b82f633,#3b82f61a);color:#e0f2fe;font-size:20px;font-weight:800;letter-spacing:.2px;display:inline-block}@media (min-width: 720px){.results-banner{font-size:22px}}.results-float-overlay{position:fixed;left:50%;bottom:12%;transform:translate(-50%);z-index:80;pointer-events:none}.results-float-card{pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px 16px;border:1px solid var(--border);border-radius:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(180deg,#111827db,#111827c7);box-shadow:0 10px 30px #00000073}@media (max-width: 520px){.results-float-card{max-width:90vw}}.qa-row{display:grid;gap:8px;align-items:flex-start;grid-template-columns:1fr}.qa-row .section{margin:0}.qa-col{min-width:0;position:relative;overflow:visible}.qa-illustration{position:absolute;z-index:5;pointer-events:none;width:90px;height:90px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.qa-box{position:relative;width:fit-content;margin-left:auto;margin-right:auto;overflow:visible}.qa-box>.qa-illustration{bottom:calc(100% + 6px);left:50%;right:auto;top:auto;transform:translate(-50%)}.qa-illustration.ther-left,.qa-illustration.patient-mid,.qa-illustration.ther-right{top:auto;left:auto}.qa-illustration.patient-mid{transform:scaleX(-1)}@media (max-width: 520px){.qa-illustration{width:64px;height:64px;object-fit:contain}.qa-box>.qa-illustration{bottom:calc(100% + 48px)}}.qa-col h3{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;width:100%;margin-bottom:12px}.qa-col .pcard,.qa-col .slot{margin-left:auto;margin-right:auto}.qa-row .qa-col h3{justify-content:center!important;text-align:center!important}@media (min-width: 640px){.qa-row{grid-template-columns:1fr 1fr}.qa-row.qa-3{grid-template-columns:1fr 1fr 1fr}}.auth-split{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 640px){.auth-split{grid-template-columns:1fr 1fr}}.auth-pane h3{margin:0 0 8px}.game-layout{display:flex;flex-direction:column;gap:12px;margin-top:0;clear:both}.game-main{min-width:0}.players-inline{display:flex;align-items:center;justify-content:center;margin:4px 0 8px;padding:4px 6px}.players-inline{display:none!important}.players-inline .players{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:0}.players-inline .player-row{display:flex;align-items:center;gap:6px}.players-float{display:none}@media (max-width: 720px){.players-inline{margin:4px 0 8px}}.player-strip{position:fixed;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;background:#141414bf;color:#fff;z-index:60;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding-bottom:calc(8px + env(safe-area-inset-bottom));pointer-events:none}.player-strip .players{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0}.player-strip.max-3-rows{max-height:140px;overflow-y:auto}body.with-bottom-strip{padding-bottom:140px}body.with-bottom-strip .app-container,body.with-bottom-strip .game-layout{padding-bottom:calc(var(--bottom-strip-h, 140px) + 12px)}@media (max-width: 520px){.app-container{padding:16px}.field.row{flex-direction:column;align-items:stretch}.field.row .btn{width:100%}.players{gap:6px}.pcard,.slot{width:120px;height:168px}.pcard{background-size:120px auto}.chat-panel{background:linear-gradient(180deg,#ffffff47,#ffffff38)}.qa-row{display:flex;overflow-x:auto;gap:8px;-webkit-overflow-scrolling:touch}.qa-row .section{flex:0 0 auto}.qa-col{min-width:130px}.qa-illustration{width:54px;height:54px;object-fit:contain}.qa-box>.qa-illustration{bottom:calc(100% + 2px);left:50%;right:auto;transform:translate(-50%)}.results-float-overlay{top:50%;left:50%;bottom:auto;transform:translate(-50%,-50%);width:90vw;max-width:420px}.hand-grid{grid-template-columns:repeat(2,minmax(120px,1fr));justify-content:center;gap:4px}}.slot{border:2px dashed #94a3b8;background:#ffffff0a;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9ca3af;text-align:center}@media (min-width: 521px){.slot{width:160px;height:224px}}.slot .hint{font-size:12px;color:#9ca3af}.pick-winner-title{font-size:16px;font-weight:700;padding:6px 12px;border-color:#3b82f6;background:#3b82f626;color:#dbeafe;display:inline-flex;align-items:center;gap:8px;transform-origin:center;animation:winnerPulse 1.6s ease-in-out infinite;box-shadow:0 0 #3b82f600}.pick-winner-title .dot{width:10px;height:10px;background:#60a5fa}@keyframes winnerPulse{0%,to{transform:scale(1);box-shadow:0 0 #3b82f600}50%{transform:scale(1.05);box-shadow:0 0 20px #3b82f666}}.pulse-title{display:inline-flex;align-items:center;gap:8px;animation:titlePulse 1.4s ease-in-out infinite;transform-origin:center}@keyframes titlePulse{0%,to{transform:scale(1);text-shadow:0 0 0 rgba(255,255,255,0)}50%{transform:scale(1.03);text-shadow:0 0 16px rgba(255,255,255,.15)}}code{background:#ffffff0f;padding:2px 6px;border-radius:6px;border:1px solid var(--border)}.chat-widget{position:fixed;right:12px;bottom:calc(12px + var(--bottom-strip-h, 0px));width:260px;max-width:92vw;z-index:70}.chat-panel{position:relative;display:flex;flex-direction:column;max-height:260px;background:linear-gradient(180deg,#ffffff38,#ffffff29);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000059;overflow:hidden}.chat-min-btn{position:absolute;top:6px;right:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid var(--border);color:#cbd5e1;border-radius:999px;padding:2px 6px;line-height:1;font-size:12px;cursor:pointer}.chat-body{flex:1;min-height:120px;overflow:auto;padding:24px 8px 8px}.chat-body ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:12px;line-height:1.2}.chat-input{display:flex;gap:6px;padding:8px;border-top:1px solid var(--border);background:#0b1225}.chat-input input{flex:1}.chat-fab{position:fixed;right:12px;bottom:calc(12px + var(--bottom-strip-h, 0px));z-index:51}.chat-fab .btn{position:relative;border-radius:999px;padding:10px 12px}.chat-fab .btn .badge{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;border-radius:999px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;padding:0 4px;border:2px solid #0b1225;box-shadow:0 2px 6px #00000059}.help-fab{position:fixed;left:12px;bottom:calc(12px + var(--bottom-strip-h, 0px));z-index:51}.help-fab .btn{border-radius:999px;padding:10px 12px}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:70}.help-card{max-width:640px;max-height:80vh;overflow:auto;background:linear-gradient(180deg,#111827f5,#111827e6);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px #00000073;padding:16px}.help-card h2{margin:0 0 8px}.help-card .row{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:flex-start;margin:8px 0}.help-close{position:sticky;top:0;float:right;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#0000004d;color:#cbd5e1;border-radius:999px;padding:6px 10px;cursor:pointer}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;font-size:20px;line-height:1;vertical-align:middle;display:inline-block}@keyframes pillPulseYellow{0%{box-shadow:0 0 #f59e0b8c}70%{box-shadow:0 0 0 10px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}.players .pill.pulse-turn{border-color:#f59e0b;background:#78350f59;color:#fde68a;animation:pillPulseYellow 1.4s ease-out infinite}.players .pill.done{border-color:#16a34a;background:#16a34a38;color:#dcfce7;box-shadow:inset 0 0 0 1px #22c55e40}#banner-root{pointer-events:none}.bottom-strip-spacer{height:var(--bottom-strip-h, 0px)}@media (max-width: 520px){.app-container{padding:8px}.qa-row.qa-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.qa-row.qa-3 .section{margin:0}.pcard{width:108px;height:152px;background-size:108px auto}.section{padding:10px}.qa-col h3{font-size:15px}}@media (min-width: 521px){.qa-col{position:relative;padding-top:62px}.qa-col .qa-illustration.above-title{display:block;position:absolute;top:-30px;left:50%;transform:translate(-50%);width:90px;height:90px;object-fit:contain;pointer-events:none;z-index:5;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.qa-box>.qa-illustration{display:none}.qa-col h3{margin-top:0}}@media (max-width: 520px){.qa-col .qa-illustration.above-title{display:none}}body.mobile{-webkit-text-size-adjust:100%;font-size:14px}body.mobile .app-container{padding:16px 8px}body.mobile .section{padding-left:10px;padding-right:10px}body.mobile .btn{padding:12px 16px}body.mobile .btn.icon{width:40px;height:40px}body.mobile .app-header{flex-direction:row;align-items:center;gap:8px;margin-bottom:20px}body.mobile .app-header .app-logo{height:44px}body.mobile .qa-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;overflow:visible}body.mobile .qa-col{min-width:0;margin-top:12px}body.mobile .pcard,body.mobile .slot{width:100px;height:168px}body.mobile .pcard{background-size:100px auto}body.mobile .qa-box>.qa-illustration{bottom:calc(100% + 48px);left:50%;right:auto;top:auto;transform:translate(-50%)}body.mobile .qa-illustration.patient-mid{transform:translate(-50%) scaleX(-1)!important}body.mobile .hand-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:4px}body.mobile .results-float-card{max-width:92vw}body.mobile .player-strip{gap:10px 12px;padding:10px 12px}body.mobile .players .pill{font-size:14px}body.mobile .chat-input-wrap input{padding:12px}body.mobile.with-bottom-strip .app-container,body.mobile.with-bottom-strip .game-layout{padding-bottom:calc(var(--bottom-strip-h, 120px) + 12px)}@supports (padding: max(0px)){body.mobile .player-strip{padding-bottom:max(10px,env(safe-area-inset-bottom))}}
