:root{--primary: #8b5cf6;--primary-hover: #7c3aed;--bg-main: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--card-bg: #ffffff;--border-color: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:var(--text-primary);background-color:var(--bg-main);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--bg-main);overflow-x:hidden}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center;width:100%}.card{padding:3rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:24px;box-shadow:var(--shadow-lg);margin:2rem 0;transition:transform .3s ease}h1{font-size:3.5rem;line-height:1.1;color:var(--text-primary);margin-bottom:1rem;font-weight:800;letter-spacing:-.025em}button{border-radius:12px;border:1px solid transparent;padding:.8em 1.6em;font-size:1.1em;font-weight:600;font-family:inherit;background-color:var(--primary);color:#fff;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}button:hover{background-color:var(--primary-hover);transform:translateY(-1px)}button:active{transform:translateY(0)}.read-the-docs{color:var(--text-secondary);font-size:1.1rem}code{background:#f1f5f9;padding:.2em .4em;border-radius:6px;font-family:Fira Code,monospace;color:#334155}.login-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;width:100%;background-color:#fff}.login-card{width:100%;max-width:400px;padding:3rem;background-color:#fff;border:1px solid #e2e8f0;border-radius:24px;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #0000000d;animation:slide-up .6s cubic-bezier(.16,1,.3,1)}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.logo-container-outside{display:flex;justify-content:center;margin-bottom:2rem;z-index:10;animation:fade-in-down .8s cubic-bezier(.16,1,.3,1)}.app-logo-outside{height:90px;width:auto;object-fit:contain;transition:transform .3s ease}.app-logo-outside:hover{transform:scale(1.03)}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.login-title{font-size:1.75rem;color:#0f172a;margin-bottom:.5rem;font-weight:700;letter-spacing:-.025em}.login-subtitle{color:#64748b;margin-bottom:2rem;font-size:.95rem}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;font-size:.85rem;color:#475569;margin-bottom:.5rem;font-weight:500;padding-left:.25rem}.form-input{width:100%;padding:.875rem 1rem;background:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#0f172a;font-size:1rem;transition:all .2s ease;box-sizing:border-box}.form-input:focus{outline:none;border-color:#8b5cf6;background:#fff;box-shadow:0 0 0 4px #8b5cf61a}.btn-login{width:100%;padding:1rem;margin-top:1.5rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 6px -1px #8b5cf64d}.btn-login:hover{background-color:#7c3aed;transform:translateY(-1px);box-shadow:0 10px 15px -3px #8b5cf666}.btn-login:active{transform:translateY(0)}.forgot-password{display:block;margin-top:1.5rem;color:#64748b;font-size:.85rem;text-decoration:none;transition:color .2s ease}.forgot-password:hover{color:#8b5cf6}.error-message{color:#ef4444;background-color:#fee2e2;border-radius:8px;padding:.75rem;margin-bottom:1.5rem;font-size:.85rem;font-weight:600;text-align:center}.success-message{color:#10b981;background-color:#d1fae5;border-radius:8px;padding:.75rem;margin-bottom:1.5rem;font-size:.85rem;font-weight:600;text-align:center}.login-footer{margin-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.toggle-auth{background:none;border:none;color:#8b5cf6;font-size:.9rem;font-weight:600;cursor:pointer;padding:.5rem;transition:all .2s ease}.toggle-auth:hover{color:#7c3aed;text-decoration:underline}.dashboard-container{max-width:1200px;margin:0 auto;padding:2rem;text-align:left}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid #e2e8f0}.dashboard-title{font-size:2.25rem;font-weight:800;color:#0f172a;margin:0}.btn-logout-header{padding:.6rem 1.2rem;background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.btn-logout-header:hover{background-color:#e2e8f0;color:#0f172a}.dashboard-actions{display:flex;justify-content:flex-end;margin-bottom:2rem}.btn-open-modal{padding:1rem 2.5rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:16px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 20px -5px #8b5cf666;display:flex;align-items:center;gap:.75rem}.btn-open-modal:hover{transform:translateY(-3px);box-shadow:0 15px 30px -5px #8b5cf680;filter:brightness(1.1)}.btn-open-modal svg{width:1.25rem;height:1.25rem}.game-form-modal{display:flex;flex-direction:column;gap:2rem}@media (max-width: 768px){.game-form{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field label{font-size:.875rem;font-weight:600;color:#64748b}.form-field input,.form-field select{padding:.75rem 1rem;border:1px solid #cbd5e1;border-radius:12px;font-size:1rem;background-color:#f8fafc;transition:all .2s}.form-field input:focus,.form-field select:focus{outline:none;border-color:#8b5cf6;background-color:#fff;box-shadow:0 0 0 4px #8b5cf61a}.btn-add-game{padding:.75rem 2rem;background-color:#8b5cf6;color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s;height:48px}.btn-add-game:hover{background-color:#7c3aed;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem}.game-card{background:#fff;padding:1.75rem;border-radius:24px;border:1px solid #e2e8f0;box-shadow:0 4px 6px -1px #0000000d;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.game-card.inactive{opacity:.6;filter:grayscale(.5)}.game-card:hover{transform:translateY(-8px);box-shadow:0 20px 25px -5px #0000001a;border-color:#8b5cf6}.game-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.game-name{font-size:1.35rem;font-weight:800;color:#0f172a;margin:0;line-height:1.4}.game-type-badge{display:inline-block;padding:.4rem .8rem;background-color:#f1f5f9;color:#64748b;border-radius:10px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-top:.5rem}.game-actions{display:flex;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #f1f5f9}.btn-action{flex:1;padding:.6rem;border:none;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:all .2s}.btn-edit{background-color:#f1f5f9;color:#475569}.btn-edit:hover{background-color:#e2e8f0;color:#8b5cf6}.btn-delete{background-color:#fef2f2;color:#ef4444}.btn-delete:hover{background-color:#fee2e2;transform:scale(1.05)}.btn-toggle{background-color:#f0fdf4;color:#22c55e}.btn-toggle.inactive{background-color:#fff7ed;color:#f97316}.btn-toggle:hover{filter:brightness(.95)}.status-indicator{width:8px;height:8px;border-radius:50%;background-color:#22c55e;display:inline-block;margin-right:6px}.status-indicator.off{background-color:#f97316}.no-games{grid-column:1 / -1;text-align:center;padding:4rem;background:#f8fafc;border:2px dashed #e2e8f0;border-radius:24px;color:#94a3b8;font-weight:500}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0f172a66;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fade-in .3s ease}.modal-content{background-color:#fff;width:100%;max-width:500px;padding:2.5rem;border-radius:28px;box-shadow:0 25px 50px -12px #00000026;position:relative;animation:scale-up .4s cubic-bezier(.16,1,.3,1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-up{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close-btn{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;font-size:1.5rem;color:#94a3b8;cursor:pointer;padding:.5rem;line-height:1;transition:color .2s}.modal-close-btn:hover{color:#0f172a}.modal-title{font-size:1.75rem;font-weight:800;color:#0f172a;margin-top:0;margin-bottom:2rem;text-align:center}.modal-form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2.5rem}.btn-cancel{padding:.75rem 1.5rem;background-color:#f1f5f9;color:#475569;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel:hover{background-color:#e2e8f0}.editor-container{display:flex;flex-direction:column;gap:2rem}.editor-tabs{display:flex;gap:1rem;margin-bottom:1rem;border-bottom:2px solid #f1f5f9;padding-bottom:1rem}.tab-btn{padding:.8rem 1.5rem;border:none;background:transparent;font-size:1rem;font-weight:600;color:#64748b;cursor:pointer;border-radius:12px;transition:all .2s}.tab-btn:hover{background:#f1f5f9}.tab-btn.active{background:#f5f3ff;color:#8b5cf6}.category-selector{display:flex;flex-wrap:wrap;gap:1rem;background:#fff;padding:1.5rem;border-radius:20px;border:1px solid #e2e8f0}.category-chip{padding:.6rem 1.2rem;background:#f1f5f9;border-radius:12px;font-weight:600;color:#475569;cursor:pointer;transition:all .2s;border:2px solid transparent}.category-chip:hover{background:#e2e8f0}.category-chip.active{background:#f5f3ff;color:#8b5cf6;border-color:#8b5cf6}.questions-section{display:flex;flex-direction:column;gap:1.5rem}.question-card{background:#fff;padding:2rem;border-radius:20px;border:1px solid #e2e8f0;text-align:left;display:flex;justify-content:space-between;align-items:center}.question-content h4{margin:0 0 .5rem;font-size:1.1rem;color:#0f172a}.question-meta{font-size:.85rem;color:#64748b;display:flex;gap:1rem}.btn-add-category{padding:.6rem 1.2rem;background-color:#fff;color:#8b5cf6;border:2px dashed #8b5cf6;border-radius:12px;font-weight:600;cursor:pointer}.btn-add-category:hover{background-color:#f5f3ff}.category-selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.category-item-card{background:#fff;padding:1.5rem;border-radius:20px;border:2px solid #e2e8f0;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.5rem;position:relative}.category-item-card:hover{border-color:#cbd5e1;transform:translateY(-2px)}.category-item-card.selected{border-color:#8b5cf6;background-color:#f5f3ff}.checkbox-ui{width:24px;height:24px;border:2px solid #cbd5e1;border-radius:6px;position:absolute;top:1.5rem;right:1.5rem;display:flex;align-items:center;justify-content:center}.category-item-card.selected .checkbox-ui{border-color:#8b5cf6;background-color:#8b5cf6}.checked-indicator{width:10px;height:10px;background:#fff;border-radius:2px}.category-name{font-weight:700;font-size:1.1rem;color:#1e293b;padding-right:2rem}.questions-count{font-size:.85rem;color:#64748b}.empty-state{padding:3rem;text-align:center;color:#94a3b8;background:#f8fafc;border-radius:20px}.game-session-wrapper{width:100%;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:#f8fafc;position:fixed;top:0;left:0}.game-top-bar{display:flex;align-items:center;padding:1.2rem 2rem;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0;gap:1rem}.btn-back-nav{background:#f1f5f9;border:none;padding:.7rem 1.5rem;border-radius:12px;font-weight:800;color:#64748b;cursor:pointer;font-size:.95rem;white-space:nowrap;transition:background .2s}.btn-back-nav:hover{background:#e2e8f0}.active-category-label{flex:1;text-align:center;font-size:1rem;font-weight:700;color:#8b5cf6;letter-spacing:.02em;transition:opacity .3s}.game-main{flex:1;position:relative;overflow:visible}.active-card-area{width:560px;height:392px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100}.card-slot{position:absolute;top:0;left:0;width:100%;height:100%;border:2.5px dashed rgba(0,0,0,.13);border-radius:30px;z-index:0;pointer-events:none}.deck-slot{position:absolute;top:0;left:0;width:100%;height:100%;border:2.5px dashed rgba(0,0,0,.13);border-radius:18px;z-index:0;pointer-events:none}.deck-area{position:absolute;right:4rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;z-index:10}.deck-stack-right{width:180px;height:257px;position:relative}.stack-card-base{position:absolute;width:100%;height:100%;background-color:#fff;background-size:calc(100% - 24px) calc(100% - 24px);background-repeat:no-repeat;background-position:center;border-radius:18px;border:6px solid #94a3b8;box-shadow:-4px 8px 20px #0000001f}.deck-counter{text-align:center;color:#8b5cf6;font-weight:900;font-size:1.3rem}.deck-counter span{display:block;font-size:.75rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.1em;margin-top:.1rem}.game-controls{display:flex;align-items:center;justify-content:space-between;padding:0 4rem;background:#fff;border-top:1px solid #e2e8f0;height:100px;flex-shrink:0}.main-actions{flex:1;display:flex;justify-content:center;gap:1.5rem}.zoom-section{flex:1;display:flex;justify-content:flex-end}.btn-game{padding:1rem 3rem;border-radius:30px;font-weight:900;font-size:1.1rem;cursor:pointer;border:none;transition:all .3s}.btn-next{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 8px 20px #8b5cf659}.btn-next:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 15px 30px #8b5cf666}.btn-next:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed}.btn-flip{background:#fff;border:2.5px solid #8b5cf6;color:#8b5cf6}.btn-flip:hover:not(:disabled){background:#f5f3ff}.btn-flip:disabled{opacity:.3;cursor:not-allowed}.flip-card-wrapper{width:100%;height:100%;position:relative;border-radius:30px}.flip-card{width:100%;height:100%;position:relative;border-radius:30px;box-shadow:0 30px 80px #00000026;border:1px solid #e2e8f0;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;transform-origin:center center;overflow:hidden;box-sizing:border-box}.flip-card:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:6px solid #94a3b8;border-radius:20px;pointer-events:none;z-index:2}.flip-card.flipping-out{animation:cardFlipOut .2s ease-in forwards}@keyframes cardFlipOut{0%{transform:translate(0) scaleX(1)}to{transform:translate(40px) scaleX(0)}}.flip-card.flipping-in{animation:cardFlipIn .2s ease-out forwards}@keyframes cardFlipIn{0%{transform:translate(40px) scaleX(0)}to{transform:translate(0) scaleX(1)}}.flip-card-back-content{justify-content:center}.card-title{font-size:1.8rem;font-weight:900;color:#0f172a;line-height:1.2;text-align:center;position:relative;z-index:1}.card-description{font-size:1.05rem;line-height:1.6;color:#334155;font-weight:600;text-align:center;position:relative;z-index:1}.hints-area{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;align-items:center;width:100%}.hint-label{font-size:.8rem;font-weight:700;color:#8b5cf6;background:#f5f3ff;padding:.35rem .8rem;border-radius:8px}.card-phase1_returning{animation:physicalReturn .7s ease-in forwards}@keyframes physicalReturn{0%{transform:translate(0) rotate(0) scale(1);opacity:1}to{transform:translate(calc(50vw - 160px)) rotate(90deg) scale(.64);opacity:0}}.card-phase2_shuffling{opacity:0!important;pointer-events:none}.card-phase3_drawing{animation:physicalDraw .7s ease-out forwards}@keyframes physicalDraw{0%{transform:translate(calc(50vw - 160px)) rotate(90deg) scale(.64);opacity:0}to{transform:translate(0) rotate(0) scale(1);opacity:1}}.flying-card{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;background-size:calc(100% - 24px) calc(100% - 24px);background-repeat:no-repeat;background-position:center;border-radius:18px;border:6px solid #94a3b8;box-shadow:0 10px 30px #00000026;opacity:0;animation:riffle .7s ease-in-out both}@keyframes riffleTop{0%{transform:translateY(50px) scale(.88);opacity:0;z-index:1}20%{transform:translate(-170px,30px) rotate(-18deg) scale(.9);opacity:1;z-index:999}60%{transform:translate(-130px,-90px) rotate(-10deg) scale(.97);opacity:1;z-index:999}85%{transform:translate(-10px,-8px) rotate(1deg) scale(1.01);opacity:1;z-index:999}to{transform:translate(0) rotate(0) scale(1);opacity:1;z-index:999}}@keyframes riffleBottom{0%{transform:translate(0) scale(1);opacity:0;z-index:999}20%{transform:translate(150px,-20px) rotate(15deg) scale(.95);opacity:1;z-index:999}70%{transform:translate(40px,80px) rotate(5deg) scale(.9);opacity:1;z-index:1}to{transform:translateY(60px) scale(.88);opacity:0;z-index:1}}.zoom-controls{display:flex;align-items:center;gap:.8rem;background:#f8fafc;padding:.4rem .8rem;border-radius:50px;border:1px solid #e2e8f0}.btn-zoom{width:36px;height:36px;aspect-ratio:1 / 1;border-radius:50%;border:none;background:#fff;color:#475569;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:.9rem;box-shadow:0 2px 4px #0000000d}.btn-zoom:hover{background:#8b5cf6;color:#fff;transform:scale(1.1)}.zoom-value{font-size:.85rem;font-weight:700;color:#64748b;min-width:45px;text-align:center}
