@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0e1a;--bg-secondary:#101729;--bg-tertiary:#162034;--bg-card:#16203499;--bg-glass:#16203466;--bg-glass-hover:#162034b3;--accent-primary:#1565c0;--accent-secondary:#1976d2;--accent-light:#42a5f5;--accent-gradient:linear-gradient(135deg, #0d47a1 0%, #1565c0 50%, #1e88e5 100%);--accent-gradient-hover:linear-gradient(135deg, #1565c0 0%, #1e88e5 50%, #42a5f5 100%);--cta-primary:#f4511e;--cta-hover:#e64a19;--cta-gradient:linear-gradient(135deg, #e64a19 0%, #f4511e 50%, #ff6e40 100%);--cta-gradient-hover:linear-gradient(135deg, #f4511e 0%, #ff6e40 50%, #ff8a65 100%);--text-primary:#e8edf5;--text-secondary:#94a3b8;--text-muted:#64748b;--danger:#ef4444;--danger-hover:#dc2626;--success:#22c55e;--warning:#f59e0b;--border-color:#94a3b81a;--border-glow:#1565c04d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #1565c026;--shadow-glow-strong:0 0 40px #1565c040;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg-primary:#f5f7fb;--bg-secondary:#fff;--bg-tertiary:#e8ecf4;--bg-card:#fffc;--bg-glass:#fff9;--bg-glass-hover:#ffffffd9;--accent-primary:#1565c0;--accent-secondary:#1976d2;--accent-light:#1e88e5;--accent-gradient:linear-gradient(135deg, #0d47a1 0%, #1565c0 50%, #1e88e5 100%);--accent-gradient-hover:linear-gradient(135deg, #1565c0 0%, #1e88e5 50%, #42a5f5 100%);--cta-primary:#f4511e;--cta-hover:#e64a19;--cta-gradient:linear-gradient(135deg, #e64a19 0%, #f4511e 50%, #ff6e40 100%);--cta-gradient-hover:linear-gradient(135deg, #f4511e 0%, #ff6e40 50%, #ff8a65 100%);--text-primary:#1a2332;--text-secondary:#475569;--text-muted:#94a3b8;--danger:#ef4444;--danger-hover:#dc2626;--success:#16a34a;--warning:#d97706;--border-color:#00000014;--border-glow:#1565c033;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001a;--shadow-glow:0 0 20px #1565c01a;--shadow-glow-strong:0 0 40px #1565c026}body{color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-base), color var(--transition-base);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}[data-theme=light] .lobby:before{background:radial-gradient(at 30% 20%,#1565c00f 0%,#0000 50%),radial-gradient(at 70% 80%,#1976d20a 0%,#0000 50%),radial-gradient(#42a5f508 0%,#0000 60%)}[data-theme=light] .lobby-preview-video{background:#dfe4ed;border-color:#0000001a}[data-theme=light] .lobby-media-btn{color:var(--text-primary);background:#fffc;border-color:#0000001f}[data-theme=light] .lobby-media-btn:hover{background:#fffffff2}[data-theme=light] .lobby-media-btn.is-off{color:#fff;background:#ef4444d9}[data-theme=light] .video-card{background:#dfe4ed;border-color:#00000014}[data-theme=light] .video-card.is-screen{background:#e8ecf4;border-color:#38bdf866}[data-theme=light] .video-card-overlay{background:linear-gradient(#0000,#0000008c)}[data-theme=light] .control-btn-default{color:var(--text-primary);background:#fff;border-color:#0000001a}[data-theme=light] .control-btn-default:hover{background:#f0f4ff}[data-theme=light] .control-btn-muted{background:#ef444414}[data-theme=light] .btn-secondary{background:#fff;border-color:#0000001a}[data-theme=light] .btn-secondary:hover:not(:disabled){background:#f0f4ff}[data-theme=light] .room-header,[data-theme=light] .control-bar{background:#ffffffb3;border-color:#0000000f}[data-theme=light] .room-peer-count{background:#fff9;border-color:#00000014}[data-theme=light] .toast{color:var(--text-primary);background:#ffffffe6;border-color:#1565c033}.theme-toggle{border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);justify-content:center;align-items:center;display:flex}.theme-toggle svg{width:18px;height:18px}.theme-toggle:hover{background:var(--bg-glass-hover);color:var(--text-primary);border-color:var(--accent-primary);box-shadow:var(--shadow-glow);transform:scale(1.08)}html,body,#root{width:100%;height:100%}html{overflow-x:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-ring{0%{box-shadow:0 0 #1565c066}70%{box-shadow:0 0 0 10px #1565c000}to{box-shadow:0 0 #1565c000}}@keyframes speaking-pulse{0%,to{box-shadow:0 0 #22c55e66,inset 0 0 0 2px #22c55e99}50%{box-shadow:0 0 0 6px #22c55e00,inset 0 0 0 2px #22c55e4d}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes gradientFlow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.lobby{background:var(--bg-primary);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:auto}.lobby-theme-toggle{z-index:10;position:fixed;top:20px;right:20px}.lobby:before{content:"";pointer-events:none;background-color:#0000;background-image:radial-gradient(at 30% 20%,#1565c014 0%,#0000 50%),radial-gradient(at 70% 80%,#1976d20f 0%,#0000 50%),radial-gradient(#42a5f50a 0%,#0000 60%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:200% 200%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:200%;height:200%;animation:15s infinite gradientFlow;position:fixed;top:-50%;left:-50%}.lobby-container{z-index:1;align-items:center;gap:60px;width:100%;max-width:1200px;padding:40px;animation:.6s ease-out fadeIn;display:flex;position:relative}.lobby-hero{flex:1;max-width:480px}.lobby-logo{align-items:center;gap:14px;margin-bottom:16px;display:flex}.lobby-logo-icon{border-radius:var(--radius-md);background:var(--accent-gradient);width:52px;height:52px;box-shadow:var(--shadow-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.lobby-logo-icon svg{color:#fff;width:28px;height:28px}.lobby-logo h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:2.2rem;font-weight:800}.lobby-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:1rem;line-height:1.6}.lobby-features{flex-direction:column;gap:12px;list-style:none;display:flex}.lobby-features li{color:var(--text-secondary);background:var(--bg-glass);border-radius:var(--radius-md);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-base);align-items:flex-start;gap:14px;padding:14px 18px;font-size:.88rem;line-height:1.45;display:flex}.lobby-features li:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow);transform:translate(4px)}.lobby-features .feature-icon{flex-shrink:0;font-size:1.2rem;line-height:1.2}.lobby-features .feature-text strong{color:var(--text-primary);margin-bottom:2px;font-size:.92rem;display:block}.lobby-panel{flex-direction:column;flex:1;gap:24px;max-width:440px;display:flex}.lobby-preview{width:100%}.lobby-preview-video{aspect-ratio:16/9;border-radius:var(--radius-lg);background:var(--bg-tertiary);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-lg), var(--shadow-glow);position:relative;overflow:hidden}.lobby-preview-video video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.lobby-preview-placeholder{width:100%;height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.lobby-preview-placeholder svg{opacity:.5;width:48px;height:48px}.lobby-preview-controls{z-index:2;gap:12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.lobby-media-btn{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;cursor:pointer;width:44px;height:44px;transition:all var(--transition-base);background:#00000080;border:1px solid #fff3;justify-content:center;align-items:center;display:flex}.lobby-media-btn svg{width:20px;height:20px}.lobby-media-btn:hover{background:#000000b3;border-color:#fff6;transform:scale(1.08)}.lobby-media-btn.is-off{background:#ef4444b3;border-color:#ef444480}.lobby-media-btn.is-off:hover{background:#ef4444e6}.lobby-form{width:100%}.lobby-field{margin-bottom:20px}.lobby-field label{color:var(--text-secondary);letter-spacing:.02em;margin-bottom:8px;font-size:.85rem;font-weight:500;display:block}.lobby-field input{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);outline:none;padding:14px 16px;font-family:inherit;font-size:.95rem}.lobby-field input::placeholder{color:var(--text-muted)}.lobby-field input:focus{border-color:var(--accent-primary);background:var(--bg-glass-hover);box-shadow:0 0 0 3px #1565c026}.lobby-divider{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:16px;margin:24px 0;font-size:.8rem;display:flex}.lobby-divider:before,.lobby-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.lobby-actions{flex-direction:column;gap:12px;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);letter-spacing:.01em;border:none;justify-content:center;align-items:center;gap:10px;padding:14px 24px;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--cta-gradient);color:#fff;box-shadow:var(--shadow-md), 0 0 20px #f4511e33}.btn-primary:hover:not(:disabled){background:var(--cta-gradient-hover);box-shadow:var(--shadow-lg), 0 0 40px #f4511e4d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-secondary:hover:not(:disabled){background:var(--bg-glass-hover);border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.btn-icon{border-radius:var(--radius-full);width:48px;height:48px;padding:0}.btn-icon svg{width:22px;height:22px}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover);transform:translateY(-1px)}.room{background:var(--bg-primary);flex-direction:column;width:100%;height:100%;display:flex;position:relative}.room-header{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;padding:12px 24px;animation:.4s ease-out slideUp;display:flex}.room-header-left{align-items:center;gap:12px;display:flex}.room-header-logo{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:700}.room-header-divider{background:var(--border-color);width:1px;height:20px}.room-id{color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;font-size:.85rem}.room-header-right{align-items:center;gap:8px;display:flex}.room-peer-count{background:var(--bg-glass);border-radius:var(--radius-full);color:var(--text-secondary);border:1px solid var(--border-color);align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.room-peer-count .dot{background:var(--success);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-ring}.video-grid{transition:grid-template var(--transition-slow);flex:1;gap:12px;padding:12px;display:grid;overflow:hidden}.video-grid>div{min-width:0;min-height:0}.video-grid>div>.video-card{height:100%}.video-layout-focused{flex:1;gap:12px;padding:12px;display:flex;overflow:hidden}.video-main{cursor:pointer;flex:1;min-width:0}.video-main>.video-card{height:100%}.video-sidebar{flex-direction:column;flex-shrink:0;gap:10px;width:220px;padding-right:4px;display:flex;overflow:hidden auto}.video-sidebar::-webkit-scrollbar{width:4px}.video-sidebar::-webkit-scrollbar-track{background:0 0}.video-sidebar::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.video-sidebar-item{cursor:pointer;border-radius:var(--radius-lg);height:140px;transition:transform var(--transition-fast), box-shadow var(--transition-fast);flex-shrink:0}.video-sidebar-item:hover{box-shadow:var(--shadow-glow);transform:scale(1.03)}.video-sidebar-item>.video-card{height:100%}.video-grid[data-count="1"]{grid-template-rows:1fr;grid-template-columns:1fr}.video-grid[data-count="2"]{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.video-grid[data-count="3"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.video-grid[data-count="3"] .video-card:first-child{grid-column:1/-1}.video-grid[data-count="4"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.video-grid[data-count="5"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr}.video-grid[data-count="5"] .video-card:nth-child(4){grid-column:1/2}.video-grid[data-count="6"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr}.video-grid[data-count="7"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr 1fr}.video-grid[data-count="7"] .video-card:nth-child(5){grid-column:1/2}.video-grid[data-count="8"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr 1fr 1fr}.video-card{border-radius:var(--radius-lg);background:var(--bg-tertiary);border:1px solid var(--border-color);transition:border-color var(--transition-base), box-shadow var(--transition-base);animation:.4s ease-out fadeInScale;position:relative;overflow:hidden}.video-card:hover{box-shadow:var(--shadow-glow);border-color:#1565c033}.video-card.is-local{border-color:#1565c04d}.video-card.is-screen{background:#0a0a14;border-color:#38bdf866}.video-card.is-screen:hover{border-color:#38bdf899;box-shadow:0 0 20px #38bdf826}.video-card video{object-fit:cover;width:100%;height:100%}.video-card.is-local:not(.is-screen) video{transform:scaleX(-1)}.video-card-overlay{background:linear-gradient(#0000,#000000b3);justify-content:space-between;align-items:flex-end;padding:12px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}.video-card-name{color:#fff;text-shadow:0 1px 3px #00000080;align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.video-card-name .badge{border-radius:var(--radius-full);background:var(--accent-gradient);text-shadow:none;padding:2px 8px;font-size:.7rem;font-weight:500}.video-card-status{align-items:center;gap:6px;display:flex}.video-card-status .muted-icon{border-radius:var(--radius-full);background:#ef4444cc;justify-content:center;align-items:center;width:20px;height:20px;padding:3px;display:flex}.video-card-status .muted-icon svg{color:#fff;width:100%;height:100%}.video-card-avatar{background:var(--accent-gradient);color:#fff;text-transform:uppercase;width:80px;height:80px;box-shadow:var(--shadow-lg);border-radius:50%;justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.control-bar{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border-color);z-index:10;justify-content:center;align-items:center;gap:12px;padding:16px 24px;animation:.4s ease-out slideUp;display:flex}.control-btn{border-radius:var(--radius-full);cursor:pointer;width:52px;height:52px;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;display:flex;position:relative}.control-btn svg{width:22px;height:22px}.control-btn-default{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.control-btn-default:hover{background:var(--bg-glass-hover);border-color:var(--accent-primary);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.control-btn-active{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-glow)}.control-btn-active:hover{background:var(--accent-light);transform:translateY(-2px)}.control-btn-muted{color:var(--danger);background:#ef444426;border:1px solid #ef44444d}.control-btn-muted:hover{background:#ef444440;transform:translateY(-2px)}.control-btn-leave{background:var(--danger);color:#fff;gap:8px;width:auto;padding:0 24px;font-family:inherit;font-size:.9rem;font-weight:600}.control-btn-leave:hover{background:var(--danger-hover);transform:translateY(-2px);box-shadow:0 4px 16px #ef44444d}.control-btn-leave svg{width:18px;height:18px}.control-divider{background:var(--border-color);width:1px;height:32px;margin:0 8px}.control-btn-tooltip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);padding:6px 12px;font-size:.75rem;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.control-btn:hover .control-btn-tooltip{opacity:1}.toast{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-glow);border-radius:var(--radius-full);color:var(--text-primary);z-index:100;box-shadow:var(--shadow-lg), var(--shadow-glow);align-items:center;gap:8px;padding:12px 24px;font-size:.85rem;font-weight:500;animation:.3s ease-out fadeIn;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}.toast svg{width:16px;height:16px;color:var(--success)}@media (max-width:768px){.lobby-container{flex-direction:column;gap:24px;padding:24px 16px}.lobby-preview{max-width:100%}.lobby-form{width:100%;max-width:100%}.lobby-logo h1{font-size:1.5rem}.video-grid[data-count="2"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.video-layout-focused{flex-direction:column}.video-sidebar{flex-direction:row;width:100%;height:100px;overflow:auto hidden}.video-sidebar-item{flex-shrink:0;width:140px;height:100%}.control-bar{gap:8px;padding:12px 16px}.control-btn{width:44px;height:44px}.control-btn-leave{gap:6px;min-width:70px;padding:0 14px;font-size:.8rem}.control-btn-leave svg{width:20px;height:20px}.room-header{padding:10px 16px}}.page-loading{width:100%;height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.navbar{z-index:50;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.navbar-left{align-items:center;display:flex}.navbar-logo{color:var(--text-primary);align-items:center;gap:10px;text-decoration:none;display:flex}.navbar-logo-icon{border-radius:var(--radius-sm);background:var(--accent-gradient);justify-content:center;align-items:center;width:36px;height:36px;display:flex}.navbar-logo-icon svg{width:20px;height:20px}.navbar-logo span{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-weight:700}.navbar-right{align-items:center;gap:12px;display:flex}.navbar-user{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-full);align-items:center;gap:10px;padding:4px 8px 4px 4px;display:flex}.navbar-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.navbar-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.85rem;font-weight:500;overflow:hidden}.navbar-signout{width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.navbar-signout:hover{color:var(--danger);background:#ef44441a}.landing{background:var(--bg-primary);min-height:100vh}.landing-main{max-width:960px;margin:0 auto;padding:80px 24px 60px;animation:.6s ease-out fadeIn}.landing-hero{text-align:center;margin-bottom:56px}.landing-title{color:var(--text-primary);letter-spacing:-.03em;margin-bottom:16px;font-size:3.2rem;font-weight:800}.landing-title-accent{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.landing-subtitle{color:var(--text-secondary);max-width:520px;margin:0 auto;font-size:1.15rem;line-height:1.6}.role-selector{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:64px;display:grid}.role-card{text-align:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-base);color:var(--text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;align-items:center;padding:40px 32px 32px;font-family:inherit;display:flex}.role-card:hover:not(:disabled){border-color:var(--border-glow);box-shadow:var(--shadow-lg), var(--shadow-glow-strong);transform:translateY(-4px)}.role-card:disabled{opacity:.6;cursor:not-allowed}.role-card-icon{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex}.role-card-icon svg{color:#fff;width:36px;height:36px}.role-card-icon--student{background:var(--accent-gradient);box-shadow:0 0 24px #1565c04d}.role-card-icon--teacher{background:var(--cta-gradient);box-shadow:0 0 24px #f4511e4d}.role-card h2{margin-bottom:8px;font-size:1.3rem;font-weight:700}.role-card p{color:var(--text-secondary);margin-bottom:24px;font-size:.9rem;line-height:1.5}.role-card-action{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-primary);transition:all var(--transition-fast);align-items:center;gap:10px;padding:12px 24px;font-size:.9rem;font-weight:600;display:flex}.role-card:hover .role-card-action{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.landing-features{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.landing-feature{text-align:center;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-base);padding:32px 24px}.landing-feature:hover{border-color:var(--border-glow);transform:translateY(-2px)}.landing-feature-icon{margin-bottom:12px;font-size:2rem;display:block}.landing-feature h3{color:var(--text-primary);margin-bottom:8px;font-size:1rem;font-weight:600}.landing-feature p{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.dashboard{background:var(--bg-primary);min-height:100vh}.dashboard-content{max-width:960px;margin:0 auto;padding:32px 24px;animation:.5s ease-out fadeIn}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.dashboard-header h1{font-size:1.6rem;font-weight:700}.dashboard-empty{text-align:center;color:var(--text-muted);padding:64px 24px}.dashboard-empty-icon{margin-bottom:16px;font-size:3rem}.dashboard-empty h3{color:var(--text-secondary);margin-bottom:8px;font-size:1.1rem}.dashboard-empty p{margin-bottom:24px;font-size:.9rem}.dashboard-grid{flex-direction:column;gap:16px;display:flex}.request-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);color:inherit;cursor:pointer;align-items:center;gap:20px;padding:20px 24px;text-decoration:none;display:flex}.request-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-md), var(--shadow-glow);transform:translate(4px)}.request-card-subject{border-radius:var(--radius-md);background:var(--accent-gradient);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.2rem;display:flex}.request-card-body{flex:1;min-width:0}.request-card-body h3{margin-bottom:4px;font-size:1rem;font-weight:600}.request-card-body p{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.request-card-meta{flex-shrink:0;align-items:center;gap:12px;display:flex}.status-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;padding:4px 12px;font-size:.75rem;font-weight:600}.status-badge--open{color:var(--success);background:#22c55e1a;border:1px solid #22c55e33}.status-badge--matched{color:var(--accent-light);background:#1565c01a;border:1px solid #1565c033}.status-badge--completed{color:var(--text-muted);background:#64748b1a;border:1px solid #64748b33}.status-badge--cancelled{color:var(--danger);background:#ef44441a;border:1px solid #ef444433}.status-badge--pending_confirmation{color:#d97706;background:#f59e0b1f;border:1px solid #f59e0b40}.confirmation-banner{border-radius:var(--radius-lg);background:linear-gradient(135deg,#f59e0b14,#fbbf241f);border:1px solid #f59e0b4d;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;padding:20px 24px;display:flex}.confirmation-banner-icon{flex-shrink:0;font-size:2rem}.confirmation-banner-text{flex:1;min-width:200px}.confirmation-banner-text h3{color:var(--text-primary);margin-bottom:4px;font-size:1rem;font-weight:700}.confirmation-banner-text p{color:var(--text-secondary);font-size:.88rem;line-height:1.5}.confirmation-banner-actions{flex-shrink:0;gap:10px;display:flex}.btn-confirm{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#16a34a;border:none;align-items:center;gap:6px;padding:10px 22px;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}.btn-confirm:hover{background:#15803d;transform:translateY(-1px)}.btn-decline{color:var(--danger);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #ef44444d;align-items:center;gap:6px;padding:10px 22px;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}.btn-decline:hover{border-color:var(--danger);background:#ef444414}.wizard{max-width:640px;margin:0 auto}.wizard-progress{gap:8px;margin-bottom:40px;display:flex}.wizard-progress-step{background:var(--border-color);height:4px;transition:background var(--transition-base);border-radius:2px;flex:1}.wizard-progress-step.is-active{background:var(--accent-primary)}.wizard-progress-step.is-done{background:var(--success)}.wizard-title{margin-bottom:8px;font-size:1.4rem;font-weight:700}.wizard-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:.95rem}.wizard-options{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:32px;display:grid}.wizard-option{background:var(--bg-glass);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-primary);text-align:left;padding:16px 20px;font-family:inherit;font-size:.95rem}.wizard-option:hover{border-color:var(--accent-primary);background:var(--bg-glass-hover)}.wizard-option.is-selected{border-color:var(--accent-primary);box-shadow:var(--shadow-glow);background:#1565c01a}.wizard-actions{justify-content:space-between;gap:12px;display:flex}.wizard-textarea{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:120px;color:var(--text-primary);resize:vertical;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;margin-bottom:24px;padding:14px 16px;font-family:inherit;font-size:.95rem}.wizard-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #1565c026}.wizard-textarea::placeholder{color:var(--text-muted)}.teacher-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);gap:16px;padding:20px;display:flex}.teacher-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow)}.teacher-card-avatar{object-fit:cover;background:var(--bg-tertiary);border-radius:50%;flex-shrink:0;width:56px;height:56px}.teacher-card-info{flex:1}.teacher-card-info h3{margin-bottom:4px;font-size:1rem;font-weight:600}.teacher-card-info p{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;line-height:1.4}.teacher-card-tags{flex-wrap:wrap;gap:6px;display:flex}.teacher-card-tag{border-radius:var(--radius-full);color:var(--accent-light);background:#1565c01a;border:1px solid #1565c026;padding:2px 10px;font-size:.75rem}.schedule-grid{grid-template-columns:auto repeat(3,1fr);gap:8px;margin-bottom:24px;display:grid}.schedule-grid-header{color:var(--text-secondary);text-align:center;padding:8px;font-size:.8rem;font-weight:600}.schedule-grid-day{color:var(--text-primary);align-items:center;padding:8px 12px;font-size:.85rem;font-weight:500;display:flex}.schedule-grid-cell{border:2px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);text-align:center;color:var(--text-muted);background:0 0;padding:8px;font-family:inherit;font-size:.8rem}.schedule-grid-cell:hover{border-color:var(--accent-primary)}.schedule-grid-cell.is-selected{border-color:var(--accent-primary);color:var(--accent-light);background:#1565c026;font-weight:600}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:12px 16px;font-family:inherit;font-size:.95rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #1565c026}.form-group textarea{resize:vertical;min-height:100px}.form-tags{flex-wrap:wrap;gap:8px;display:flex}.form-tag{border:2px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;padding:8px 16px;font-family:inherit;font-size:.88rem}.form-tag:hover{border-color:var(--accent-primary);color:var(--text-primary)}.form-tag.is-selected{border-color:var(--accent-primary);color:var(--accent-light);background:#1565c01a;font-weight:600}.room{overflow:hidden}@media (max-width:768px){.landing-main{padding:40px 16px}.landing-title{font-size:2rem}.landing-subtitle{font-size:1rem}.role-selector{grid-template-columns:1fr;gap:16px}.role-card{padding:28px 24px 24px}.landing-features{grid-template-columns:1fr;gap:12px}.navbar-name{display:none}.dashboard-header{flex-direction:column;align-items:flex-start;gap:12px}.wizard-options{grid-template-columns:1fr 1fr}.schedule-grid{font-size:.75rem}.request-card{flex-direction:column;align-items:flex-start;gap:12px}.schedule-time-row{flex-direction:column}.schedule-days{gap:8px}.schedule-day-btn{width:60px;height:60px}.schedule-day-full{display:none}.schedule-day-abbr{display:block!important}}.schedule-recurrence{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px;display:grid}.schedule-recurrence-btn{background:var(--bg-glass);border:2px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);flex-direction:column;align-items:center;gap:8px;padding:20px 16px;font-family:inherit;font-size:.9rem;font-weight:500;display:flex}.schedule-recurrence-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.schedule-recurrence-btn.is-active{border-color:var(--accent-primary);color:var(--accent-light);box-shadow:var(--shadow-glow);background:#1565c01a;font-weight:600}.schedule-recurrence-icon{font-size:1.5rem}.schedule-days{flex-wrap:wrap;gap:10px;display:flex}.schedule-day-btn{border-radius:var(--radius-md);border:2px solid var(--border-color);background:var(--bg-glass);cursor:pointer;width:72px;height:72px;transition:all var(--transition-fast);color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-family:inherit;display:flex}.schedule-day-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.schedule-day-btn.is-selected{border-color:var(--accent-primary);color:var(--accent-light);box-shadow:var(--shadow-glow);background:#1565c026}.schedule-day-abbr{text-transform:uppercase;font-size:.85rem;font-weight:700;display:none}.schedule-day-full{font-size:.8rem;font-weight:500}.schedule-time-row{gap:20px;margin-bottom:24px;display:flex}.schedule-duration-options{flex-wrap:wrap;gap:8px;display:flex}.schedule-duration-btn{border:2px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;padding:8px 16px;font-family:inherit;font-size:.85rem}.schedule-duration-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.schedule-duration-btn.is-selected{border-color:var(--accent-primary);color:var(--accent-light);background:#1565c026;font-weight:600}.schedule-preview{border-radius:var(--radius-md);background:#1565c014;border:1px solid #1565c033;align-items:center;gap:14px;margin-bottom:28px;padding:16px 20px;animation:.3s ease-out fadeIn;display:flex}.schedule-preview-icon{font-size:1.5rem}.schedule-preview strong{color:var(--text-primary);font-size:.95rem}.schedule-preview span{color:var(--text-secondary);font-size:.85rem}.confirm-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:32px;padding:4px 0}.confirm-row{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;padding:12px 24px;display:flex}.confirm-row:last-child{border-bottom:none}.confirm-label{color:var(--text-muted);flex-shrink:0;min-width:100px;font-size:.85rem;font-weight:500}.confirm-value{color:var(--text-primary);text-align:right;font-size:.9rem;font-weight:500}@media (min-width:769px){.schedule-day-abbr{display:none}.schedule-day-full{display:block}}.role-switcher{position:relative}.role-switcher-btn{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-full);cursor:pointer;color:var(--text-primary);transition:all var(--transition-fast);align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:.85rem;font-weight:500;display:flex}.role-switcher-btn:hover{background:var(--bg-glass-hover);border-color:var(--accent-primary)}.role-switcher-icon{font-size:1rem}.role-switcher-label{font-weight:600}.role-switcher-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--shadow-lg);z-index:100;animation:.15s ease-out fadeIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.role-switcher-option{cursor:pointer;width:100%;color:var(--text-secondary);transition:all var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 16px;font-family:inherit;font-size:.9rem;display:flex}.role-switcher-option:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.role-switcher-option.is-active{color:var(--accent-light);background:#1565c014;font-weight:600}.role-switcher-option+.role-switcher-option{border-top:1px solid var(--border-color)}.admin-filters{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.admin-filter-search{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:200px;transition:border-color var(--transition-fast);flex:1;align-items:center;gap:8px;padding:8px 14px;display:flex}.admin-filter-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px #1565c01a}.admin-filter-search svg{color:var(--text-muted);flex-shrink:0}.admin-filter-search input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:.9rem}.admin-filter-search input::placeholder{color:var(--text-muted)}.admin-filter-select{background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast);outline:none;min-width:160px;padding:8px 14px;font-family:inherit;font-size:.85rem}.admin-filter-select:focus{border-color:var(--accent-primary)}.admin-table{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.admin-table-header{background:var(--bg-tertiary);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:2fr 2fr 1.5fr 100px;gap:12px;padding:12px 20px;font-size:.78rem;font-weight:600;display:grid}.admin-table-row{border-top:1px solid var(--border-color);transition:background var(--transition-fast);grid-template-columns:2fr 2fr 1.5fr 100px;align-items:center;gap:12px;padding:14px 20px;display:grid}.admin-table-row:hover{background:var(--bg-glass)}.admin-user-info{align-items:center;gap:12px;display:flex}.admin-user-info strong{font-size:.9rem;display:block}.admin-user-email{color:var(--text-muted);font-size:.78rem;display:block}.admin-role-chips{flex-wrap:wrap;gap:6px;display:flex}.admin-role-chip{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:600}.admin-role-chip:hover:not(:disabled){border-color:var(--accent-light);color:var(--text-primary)}.admin-role-chip.is-on{color:#4caf50;background:#4caf5026;border-color:#4caf50}.admin-role-chip:disabled{opacity:.5;cursor:wait}.admin-role-empty{color:var(--text-muted);opacity:.7;margin-top:4px;font-size:.75rem;display:inline-block}.admin-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}.admin-avatar-placeholder{background:var(--bg-tertiary);justify-content:center;align-items:center;font-size:1rem;display:flex}.admin-bio{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:250px;margin-top:2px;font-size:.8rem;line-height:1.3;overflow:hidden}.admin-col-date{color:var(--text-secondary);font-size:.85rem}:is(.admin-table:has(.admin-col-date) .admin-table-header,.admin-table:has(.admin-col-date) .admin-table-row){grid-template-columns:2fr 1fr 1fr}:is(.admin-table:has(.admin-col-roles) .admin-table-header,.admin-table:has(.admin-col-roles) .admin-table-row){grid-template-columns:minmax(200px,1.2fr) 3fr}.admin-col-roles{min-width:0}:is(.admin-table:has(.admin-col-class) .admin-table-header,.admin-table:has(.admin-col-class) .admin-table-row){grid-template-columns:2fr 1.3fr 1.3fr 1.2fr 1fr}.admin-col-class{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-col-class strong{font-size:.9rem}.admin-class-sub{color:var(--text-muted);font-size:.8rem}.admin-class-muted{color:var(--text-muted);opacity:.7;font-size:.8rem}.admin-status-pills{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.admin-status-pill{cursor:pointer;transition:all var(--transition-fast);opacity:.85;border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:600}.admin-status-pill strong{margin-left:2px;font-weight:800}.admin-status-pill:hover{opacity:1}.admin-status-pill.is-active{opacity:1;box-shadow:0 0 0 2px var(--accent-light)}.admin-classes-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-classes-toolbar .admin-status-pills{margin-bottom:0}.admin-view-toggle{border:1px solid var(--border-color);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.admin-view-toggle button{background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border:none;padding:7px 14px;font-size:.82rem;font-weight:600}.admin-view-toggle button.is-active{background:var(--accent-light);color:#fff}.schedule-grid-cell:has(.agenda-cell-chips){justify-content:flex-start;align-items:stretch;padding:4px}.agenda-cell-chips{flex-direction:column;gap:3px;width:100%;display:flex}.agenda-chip{white-space:nowrap;text-overflow:ellipsis;cursor:default;border-radius:6px;padding:2px 7px;font-size:.72rem;font-weight:600;line-height:1.3;display:block;overflow:hidden}.agenda-more{color:var(--text-muted);padding-left:2px;font-size:.68rem;font-weight:700}.agenda-chip{cursor:pointer}.agenda-chip:hover{filter:brightness(.95);box-shadow:inset 0 0 0 1.5px}.admin-table-row--clickable{cursor:pointer}.class-detail-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.class-detail-field{flex-direction:column;gap:2px;min-width:0;display:flex}.class-detail-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.72rem;font-weight:700}.class-detail-value{color:var(--text-primary);font-size:.92rem}.class-detail-cancel .class-detail-value{color:var(--danger)}.class-detail-room{border-top:1px solid var(--border-color);margin-top:24px;padding-top:20px}.class-detail-room .btn{justify-content:center;width:100%;padding:12px;font-size:.95rem}.class-detail-room-off{text-align:center;border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-muted);padding:12px;font-size:.85rem}@media (max-width:560px){.class-detail-grid{grid-template-columns:1fr}}.agenda-legend{color:var(--text-secondary);flex-wrap:wrap;gap:14px;margin-top:14px;font-size:.78rem;display:flex}.agenda-legend-item{align-items:center;gap:6px;display:inline-flex}.agenda-legend-dot{border-radius:50%;width:12px;height:12px;display:inline-block}@media (max-width:768px){.admin-table-header{display:none}.admin-table-row{grid-template-columns:1fr;gap:8px;padding:16px}.admin-filters{flex-direction:column}.admin-filter-select{min-width:unset;width:100%}.role-switcher-label{display:none}}.admin-teacher-list{flex-direction:column;gap:16px;display:flex}.admin-teacher-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:box-shadow var(--transition-fast);padding:20px}.admin-teacher-card:hover{box-shadow:var(--shadow-md)}.admin-teacher-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.admin-email{color:var(--accent-light);margin-top:2px;font-size:.8rem}.admin-teacher-details{flex-wrap:wrap;gap:32px;margin-bottom:12px;display:flex}.admin-teacher-section{flex-direction:column;gap:6px;display:flex}.admin-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.admin-teacher-schedule{border-top:1px solid var(--border-color);padding-top:12px}.admin-schedule-compact{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.admin-schedule-day{border-radius:var(--radius-sm);background:#1565c00f;align-items:center;gap:6px;padding:4px 10px;display:flex}.admin-schedule-day-name{color:var(--accent-light);min-width:28px;font-size:.78rem;font-weight:700}.admin-schedule-slots{gap:4px;display:flex}.admin-schedule-slot{color:var(--text-secondary);background:var(--bg-glass);border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem}.schedule-overview{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:24px;padding:20px}.schedule-overview-title{color:var(--text-primary);margin-bottom:16px;font-size:1rem;font-weight:600}.schedule-grid-wrapper{overflow-x:auto}.schedule-grid{background:var(--border-color);border-radius:var(--radius-md);grid-template-columns:100px repeat(7,1fr);gap:1px;min-width:640px;display:grid;overflow:hidden}.schedule-grid-corner{background:var(--bg-tertiary);padding:10px}.schedule-grid-day-header{background:var(--bg-tertiary);text-align:center;color:var(--accent-light);text-transform:uppercase;letter-spacing:.03em;padding:10px 4px;font-size:.8rem;font-weight:700}.schedule-grid-period-label{background:var(--bg-tertiary);color:var(--text-primary);flex-direction:column;gap:2px;padding:10px 12px;font-size:.85rem;font-weight:600;display:flex}.schedule-grid-period-range{color:var(--text-muted);font-size:.7rem;font-weight:400}.schedule-grid-period-band{background:var(--bg-tertiary);color:var(--accent-light);text-transform:uppercase;letter-spacing:.04em;grid-column:1/-1;padding:6px 12px;font-size:.72rem;font-weight:700}.schedule-grid-hour-label{background:var(--bg-tertiary);color:var(--text-primary);align-items:center;padding:8px 12px;font-size:.8rem;font-weight:600;display:flex}.schedule-grid-cell{background:var(--bg-secondary);cursor:pointer;min-height:42px;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:6px;display:flex}.schedule-grid-cell:hover{background:var(--bg-glass-hover)}.schedule-grid-cell.is-empty{background:var(--bg-secondary)}.schedule-grid-cell.is-empty:hover{background:#ff52520d}.schedule-grid-cell.has-teachers{background:#4caf500f}.schedule-grid-cell.has-teachers:hover{background:#4caf501f}.schedule-grid-avatars{align-items:center;gap:0;display:flex}.schedule-grid-avatar{object-fit:cover;border:2px solid var(--bg-secondary);border-radius:50%;width:28px;height:28px;margin-left:-6px}.schedule-grid-avatar:first-child{margin-left:0}.schedule-grid-avatar-placeholder{background:var(--bg-tertiary);justify-content:center;align-items:center;font-size:.7rem;display:flex}.schedule-grid-more{color:var(--accent-light);margin-left:4px;font-size:.7rem;font-weight:700}.schedule-grid-empty{color:var(--text-muted);opacity:.4;font-size:.85rem}@media (max-width:768px){.schedule-grid{grid-template-columns:80px repeat(7,1fr);min-width:560px}.schedule-grid-period-label{padding:8px;font-size:.75rem}.schedule-grid-avatar{width:22px;height:22px}}.avail-grid-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow-x:auto}.avail-grid{background:var(--border-color);grid-template-columns:60px repeat(7,1fr);gap:1px;min-width:520px;display:grid}.avail-corner{background:var(--bg-tertiary);padding:8px}.avail-day-header{background:var(--bg-tertiary);text-align:center;color:var(--accent-light);text-transform:uppercase;padding:8px 4px;font-size:.78rem;font-weight:700}.avail-period-header{background:var(--bg-tertiary);color:var(--text-primary);border-top:2px solid var(--accent-primary);padding:6px 14px;font-size:.82rem;font-weight:700}.avail-period-range{color:var(--text-muted);margin-left:6px;font-size:.72rem;font-weight:400}.avail-hour-label{background:var(--bg-secondary);color:var(--text-secondary);justify-content:center;align-items:center;padding:4px 8px;font-size:.75rem;font-weight:500;display:flex}.avail-cell{background:var(--bg-secondary);cursor:pointer;min-height:30px;color:var(--text-muted);transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;padding:4px;font-family:inherit;font-size:.75rem;display:flex}.avail-cell:hover{background:#1565c014}.avail-cell.is-selected{color:var(--accent-light);background:#1565c026;font-weight:700}.avail-cell.is-selected:hover{background:#1565c038}@media (max-width:768px){.avail-grid{grid-template-columns:50px repeat(7,1fr);min-width:440px}.avail-cell{min-height:26px;font-size:.7rem}}.lp{color:#2d3748;background:#fafbfd;font-family:Inter,sans-serif}.lp-nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-bottom:1px solid #e8ecf1;position:sticky;top:0}.lp-nav-inner{align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:14px 24px;display:flex}.lp-nav-logo{height:40px}.lp-nav-links{gap:8px;margin-left:auto;display:flex}.lp-nav-links button{font:inherit;color:#4a5568;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 14px;font-size:.88rem;font-weight:500;transition:all .2s}.lp-nav-links button:hover{color:#2d3748;background:#edf2f7}.lp-nav-cta{color:#fff;font:inherit;cursor:pointer;background:#4a90d9;border:none;border-radius:10px;padding:8px 20px;font-size:.85rem;font-weight:600;transition:all .2s}.lp-nav-cta:hover{background:#357abd;transform:translateY(-1px)}.lp-hero{max-width:1200px;margin:0 auto;padding:60px 24px 40px}.lp-hero-content{grid-template-columns:1.1fr .9fr;align-items:center;gap:60px;display:grid}.lp-hero-badge{color:#4a90d9;background:#ebf5ff;border-radius:20px;margin-bottom:16px;padding:6px 16px;font-size:.82rem;font-weight:600;display:inline-block}.lp-hero-text h1{color:#1a202c;margin-bottom:20px;font-size:2.8rem;font-weight:800;line-height:1.15}.lp-accent-blue{color:#4a90d9}.lp-accent-pink{color:#e91e63}.lp-accent-green{color:#4caf50}.lp-accent-yellow{color:#ff9800}.lp-hero-text p{color:#4a5568;margin-bottom:28px;font-size:1.08rem;line-height:1.7}.lp-hero-actions{gap:14px;margin-bottom:36px;display:flex}.lp-hero-image img{width:100%;max-width:480px;margin:0 auto;display:block}.lp-hero-stats{gap:36px;display:flex}.lp-hero-stats div{flex-direction:column;gap:2px;display:flex}.lp-hero-stats strong{color:#4a90d9;font-size:1.6rem;font-weight:800}.lp-hero-stats span{color:#718096;font-size:.82rem}.lp-btn{font:inherit;cursor:pointer;border:none;border-radius:12px;align-items:center;gap:8px;padding:12px 28px;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.lp-btn-primary{color:#fff;background:#4a90d9;box-shadow:0 4px 14px #4a90d94d}.lp-btn-primary:hover{background:#357abd;transform:translateY(-2px);box-shadow:0 6px 20px #4a90d966}.lp-btn-outline{color:#4a5568;background:0 0;border:2px solid #e2e8f0}.lp-btn-outline:hover{color:#4a90d9;background:#ebf5ff;border-color:#4a90d9}.lp-btn-full{justify-content:center;width:100%}.lp-strip{background:#fff;border-top:1px solid #e8ecf1;border-bottom:1px solid #e8ecf1}.lp-strip-inner{grid-template-columns:repeat(4,1fr);gap:24px;max-width:1200px;margin:0 auto;padding:32px 24px;display:grid}.lp-strip-item{align-items:center;gap:14px;display:flex}.lp-strip-item span{font-size:2rem}.lp-strip-item strong{color:#2d3748;font-size:.88rem;font-weight:700}.lp-strip-item p{color:#718096;margin:0;font-size:.78rem}.lp-section-header{text-align:center;max-width:680px;margin:0 auto 48px}.lp-section-tag{color:#4a90d9;text-transform:uppercase;letter-spacing:.04em;background:#ebf5ff;border-radius:16px;margin-bottom:12px;padding:5px 14px;font-size:.8rem;font-weight:700;display:inline-block}.lp-section-header h2{color:#1a202c;margin-bottom:14px;font-size:2.2rem;font-weight:800;line-height:1.2}.lp-section-header p{color:#4a5568;font-size:1rem;line-height:1.6}.lp-methods{max-width:1200px;margin:0 auto;padding:80px 24px}.lp-methods-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.lp-method-card{background:#fff;border:1px solid #e8ecf1;border-radius:16px;padding:28px;transition:all .3s}.lp-method-card:hover{border-color:#0000;transform:translateY(-4px);box-shadow:0 12px 32px #0000000f}.lp-method-icon{color:#fff;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:18px;font-size:1.5rem;display:flex}.lp-method-card h3{color:#1a202c;margin-bottom:10px;font-size:1.05rem;font-weight:700}.lp-method-card p{color:#4a5568;font-size:.88rem;line-height:1.65}.lp-benefits{background:#fff;padding:80px 24px}.lp-benefits-grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto;display:grid}.lp-benefit{background:#fafbfd;border:1px solid #e8ecf1;border-radius:16px;padding:28px;transition:all .3s}.lp-benefit:hover{background:#ebf5ff;border-color:#b3d4fc}.lp-benefit-num{color:#d6e4f0;margin-bottom:12px;font-size:2.2rem;font-weight:800}.lp-benefit h3{color:#1a202c;margin-bottom:8px;font-size:1rem;font-weight:700}.lp-benefit p{color:#4a5568;font-size:.88rem;line-height:1.6}.lp-pricing{max-width:1200px;margin:0 auto;padding:80px 24px}.lp-pricing-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:24px;display:grid}.lp-pricing-grid-2{grid-template-columns:repeat(2,1fr);max-width:860px;margin:0 auto}.lp-pricing-obs{text-align:center;color:#6b7280;background:#fff7ed;border:1px solid #fcd9b6;border-radius:12px;max-width:860px;margin:28px auto 0;padding:14px 20px;font-size:.9rem}.lp-price-card{background:#fff;border:1px solid #e8ecf1;border-radius:20px;padding:32px;transition:all .3s;position:relative}.lp-price-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #0000000f}.lp-price-featured{border:2px solid #4a90d9;box-shadow:0 8px 28px #4a90d91f}.lp-price-featured:hover{box-shadow:0 16px 40px #4a90d92e}.lp-price-badge{color:#fff;white-space:nowrap;background:linear-gradient(135deg,#4a90d9,#357abd);border-radius:12px;padding:4px 16px;font-size:.75rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.lp-price-header h3{color:#1a202c;font-size:1.2rem;font-weight:700}.lp-price-header p{color:#718096;margin-bottom:16px;font-size:.85rem}.lp-price-value{align-items:baseline;gap:4px;margin-bottom:8px;display:flex}.lp-price-currency{color:#4a5568;font-size:1.2rem;font-weight:700}.lp-price-amount{color:#1a202c;font-size:3.2rem;font-weight:800;line-height:1}.lp-price-period{color:#718096;font-size:.9rem}.lp-price-note{color:#4a90d9;margin-bottom:16px;font-size:.8rem;font-weight:600}.lp-price-features{flex-direction:column;gap:10px;margin:20px 0;list-style:none;display:flex}.lp-price-features li{color:#4a5568;font-size:.88rem}.lp-cta{background:linear-gradient(135deg,#1a365d 0%,#2a4a7f 50%,#4a90d9 100%);padding:80px 24px}.lp-cta-inner{text-align:center;max-width:800px;margin:0 auto}.lp-cta-inner h2{color:#fff;margin-bottom:12px;font-size:2rem;font-weight:800}.lp-cta-inner>p{color:#fffc;margin-bottom:40px;font-size:1.05rem}.lp-cta-cards{grid-template-columns:1fr 1fr;gap:20px;display:grid}.lp-cta-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;cursor:pointer;color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:16px;padding:28px;transition:all .3s}.lp-cta-card:hover{background:#ffffff2e;transform:translateY(-3px)}.lp-cta-card:disabled{opacity:.7;cursor:wait}.lp-cta-card-icon{margin-bottom:10px;font-size:2.5rem;display:block}.lp-cta-card h3{margin-bottom:8px;font-size:1.15rem;font-weight:700}.lp-cta-card p{color:#ffffffbf;margin-bottom:16px;font-size:.85rem;line-height:1.5}.lp-cta-card-btn{color:#1a365d;background:#fff;border-radius:10px;align-items:center;gap:8px;padding:10px 22px;font-size:.85rem;font-weight:600;display:inline-flex}.lp-footer{color:#a0aec0;background:#1a202c;padding:48px 24px 0}.lp-footer-inner{grid-template-columns:2fr 1fr 1fr;gap:40px;max-width:1200px;margin:0 auto;padding-bottom:32px;display:grid}.lp-footer-logo{filter:brightness(0)invert();height:36px;margin-bottom:12px}.lp-footer-brand p{font-size:.88rem;line-height:1.6}.lp-footer-links h4{color:#e2e8f0;margin-bottom:14px;font-size:.9rem;font-weight:700}.lp-footer-links button,.lp-footer-links a{font:inherit;color:#a0aec0;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.85rem;text-decoration:none;transition:color .2s;display:block}.lp-footer-links button:hover,.lp-footer-links a:hover{color:#fff}.lp-footer-bottom{text-align:center;border-top:1px solid #2d3748;padding:18px 0}.lp-footer-bottom p{font-size:.8rem}.lp-hamburger{cursor:pointer;background:0 0;border:none;flex-shrink:0;width:40px;height:40px;margin-left:auto;padding:8px;display:none;position:relative}.lp-hamburger span{background:#2d3748;border-radius:2px;width:22px;height:2px;transition:all .3s;display:block;position:absolute;left:9px}.lp-hamburger span:first-child{top:11px}.lp-hamburger span:nth-child(2){top:19px}.lp-hamburger span:nth-child(3){top:27px}.lp-hamburger.is-open span:first-child{top:19px;transform:rotate(45deg)}.lp-hamburger.is-open span:nth-child(2){opacity:0}.lp-hamburger.is-open span:nth-child(3){top:19px;transform:rotate(-45deg)}.lp-mobile-menu{border-top:1px solid #e8ecf1;flex-direction:column;padding:8px 24px 20px;animation:.25s ease-out lpSlideDown;display:none}.lp-mobile-menu button{font:inherit;color:#4a5568;cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #f0f3f7;padding:12px 0;font-size:.95rem;font-weight:500;transition:color .2s}.lp-mobile-menu button:last-child{border-bottom:none}.lp-mobile-menu button:hover{color:#4a90d9}.lp-mobile-menu-cta{border-radius:10px;margin-top:8px;color:#fff!important;text-align:center!important;background:#4a90d9!important;border-bottom:none!important;padding:12px!important;font-weight:600!important}@keyframes lpSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.lp-nav-links,.lp-nav-cta-desktop{display:none}.lp-hamburger{display:block}.lp-mobile-menu{display:flex}.lp-hero{padding:40px 20px 32px}.lp-hero-content{grid-template-columns:1fr;gap:32px}.lp-hero-text h1{font-size:2rem}.lp-hero-text p{font-size:1rem}.lp-hero-image{text-align:center;order:-1}.lp-hero-image img{max-width:320px}.lp-strip-inner{grid-template-columns:repeat(2,1fr);gap:20px}.lp-methods{padding:56px 20px}.lp-methods-grid{grid-template-columns:repeat(2,1fr);gap:16px}.lp-benefits{padding:56px 20px}.lp-benefits-grid{grid-template-columns:repeat(2,1fr);gap:16px}.lp-pricing{padding:56px 20px}.lp-pricing-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}.lp-cta{padding:56px 20px}.lp-cta-cards{grid-template-columns:1fr;max-width:400px;margin:0 auto}.lp-footer-inner{text-align:center;grid-template-columns:1fr;gap:28px}.lp-footer-logo{margin:0 auto 12px}.lp-section-header{margin-bottom:32px}.lp-section-header h2{font-size:1.8rem}}@media (max-width:600px){.lp-nav-inner{padding:10px 16px}.lp-nav-logo{height:32px}.lp-hero{padding:28px 16px 24px}.lp-hero-text h1{font-size:1.6rem}.lp-hero-text p{margin-bottom:20px;font-size:.92rem}.lp-hero-badge{padding:5px 12px;font-size:.75rem}.lp-hero-actions{flex-direction:column;gap:10px}.lp-hero-actions .lp-btn{justify-content:center;width:100%}.lp-hero-stats{justify-content:space-between;gap:16px}.lp-hero-stats strong{font-size:1.3rem}.lp-hero-stats span{font-size:.75rem}.lp-hero-image img{max-width:260px}.lp-strip-inner{grid-template-columns:1fr;gap:16px;padding:24px 16px}.lp-methods{padding:40px 16px}.lp-methods-grid{grid-template-columns:1fr;gap:14px}.lp-method-card{padding:20px}.lp-benefits{padding:40px 16px}.lp-benefits-grid{grid-template-columns:1fr;gap:14px}.lp-benefit{padding:20px}.lp-pricing{padding:40px 16px}.lp-price-card{padding:24px}.lp-price-amount{font-size:2.6rem}.lp-section-header h2{font-size:1.5rem}.lp-section-header p{font-size:.9rem}.lp-section-header{margin-bottom:28px;padding:0 4px}.lp-cta{padding:40px 16px}.lp-cta-inner h2{font-size:1.5rem}.lp-cta-inner>p{margin-bottom:28px;font-size:.92rem}.lp-cta-card{padding:20px}.lp-cta-card-icon{font-size:2rem}.lp-footer{padding:32px 16px 0}.lp-footer-inner{gap:24px}.lp-footer-bottom{padding:14px 0}.lp-mobile-menu{padding:8px 16px 16px}}.prof-schedule-grid{grid-template-columns:60px repeat(7,1fr);gap:2px;font-size:.75rem;display:grid}.prof-sched-corner{background:0 0}.prof-sched-day-header{text-align:center;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:8px 4px;font-size:.7rem;font-weight:700}.prof-sched-hour{color:var(--text-muted);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;padding-right:8px;font-size:.7rem;font-weight:500;display:flex}.prof-sched-cell{border-radius:6px;justify-content:center;align-items:center;min-height:38px;transition:all .15s;display:flex;position:relative}.prof-sched-empty{background:0 0;border:1px dashed #64748b1a}.prof-sched-free{background:#22c55e14;border:1px solid #22c55e26}.prof-sched-free:hover{background:#22c55e26;border-color:#22c55e4d}.prof-sched-check{color:#22c55e80;font-size:.7rem;font-weight:700}.prof-sched-booked{cursor:pointer;background:#1565c01f;border:1px solid #1565c040}.prof-sched-booked:hover{z-index:2;background:#1565c038;border-color:#1565c066;transform:scale(1.05);box-shadow:0 2px 8px #1565c026}.prof-sched-pending{background:#f59e0b1a!important;border-color:#f59e0b40!important}.prof-sched-pending:hover{background:#f59e0b33!important;border-color:#f59e0b66!important;box-shadow:0 2px 8px #f59e0b26!important}.prof-sched-cell-content{justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.prof-sched-avatar{object-fit:cover;border:2px solid #1565c04d;border-radius:50%;width:24px;height:24px}.prof-sched-pending .prof-sched-avatar{border-color:#f59e0b4d}.prof-sched-avatar-placeholder{color:var(--text-secondary);background:#1565c026;justify-content:center;align-items:center;font-size:.6rem;font-weight:700;display:flex}.prof-sched-pending .prof-sched-avatar-placeholder{background:#f59e0b26}.prof-sched-recurring{font-size:.55rem;line-height:1;position:absolute;top:-4px;right:-6px}@media (max-width:640px){.prof-schedule-grid{grid-template-columns:44px repeat(7,1fr);gap:1px}.prof-sched-cell{min-height:30px}.prof-sched-avatar{width:18px;height:18px}.prof-sched-day-header{padding:6px 2px;font-size:.6rem}.prof-sched-hour{font-size:.6rem}}.agenda-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a8c;justify-content:center;align-items:flex-start;padding:40px 20px;animation:.18s agenda-fade;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes agenda-fade{0%{opacity:0}to{opacity:1}}.agenda-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;width:100%;max-width:900px;animation:.2s agenda-pop;box-shadow:0 24px 64px #0f172a59}@keyframes agenda-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.agenda-modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.agenda-modal-close{border:1px solid var(--border-color);width:36px;height:36px;color:var(--text-primary);cursor:pointer;background:0 0;border-radius:10px;flex-shrink:0;font-size:1rem;transition:all .15s}.agenda-modal-close:hover{background:#94a3b81f}.agenda-modal-body{padding:24px}.approval-banner{border:1px solid #0000;border-radius:14px;align-items:flex-start;gap:14px;margin-bottom:20px;padding:16px 18px;display:flex}.approval-banner strong{margin-bottom:2px;display:block}.approval-banner p{opacity:.92;margin:0;font-size:.88rem}.approval-banner-icon{font-size:1.4rem;line-height:1.4}.approval-banner--pending{background:#f59e0b1f;border-color:#f59e0b59}.approval-banner--approved{background:#22c55e1f;border-color:#22c55e59}.approval-banner--rejected{background:#ef44441f;border-color:#ef444459}.eligibility-note{color:var(--text-secondary);background:var(--bg-glass);border:1px solid var(--border-color);border-radius:12px;margin-bottom:20px;padding:14px 16px;font-size:.85rem;line-height:1.5}.admin-approval-grid{border-top:1px solid var(--border-color);grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;padding-top:16px;display:grid}.admin-approval-field{flex-direction:column;gap:6px;display:flex}.admin-approval-value{color:var(--text-primary);font-size:.9rem}.admin-approval-link{text-align:left;color:var(--accent-light);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.admin-approval-link:hover{text-decoration:underline}.admin-approval-interview{flex-wrap:wrap;gap:16px;margin-top:16px;display:flex}.admin-approval-actions{border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;display:flex}.admin-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.admin-toggle input{display:none}.admin-toggle-track{background:#94a3b866;border-radius:999px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.admin-toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.admin-toggle input:checked+.admin-toggle-track{background:var(--success)}.admin-toggle input:checked+.admin-toggle-track .admin-toggle-thumb{transform:translate(20px)}.admin-toggle-label{color:var(--text-primary);font-size:.85rem;font-weight:500}@media (max-width:640px){.admin-approval-grid{grid-template-columns:1fr}}
