html{min-height:100%}body,#root{min-height:100vh}.toast-container{z-index:9999;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.toast{color:#fff;border-radius:8px;padding:12px 20px;font-weight:500;animation:.3s slideIn;box-shadow:0 4px 12px #00000026}.toast-success{background-color:#22c55e}.toast-error{background-color:#ef4444}.toast-info{background-color:#3b82f6}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.sidebar{z-index:300;width:var(--sidebar-width);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 100% 0,#e4aa722e,#0000 28%),radial-gradient(circle at 0 100%,#7bb7a31f,#0000 30%),linear-gradient(#1c2126fa 0%,#272c31fa 100%);border:1px solid #ffffff14;border-radius:28px;flex-direction:column;height:calc(100vh - 24px);display:flex;position:fixed;top:12px;left:12px;overflow:hidden auto;box-shadow:0 24px 60px #1213154d}.sidebar:before{content:"";pointer-events:none;background:linear-gradient(#ffffff0f,#0000 18%),linear-gradient(90deg,#0000 0 calc(100% - 1px),#ffffff0d calc(100% - 1px));position:absolute;inset:0}.sidebar-top-row{border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 16px;display:flex}.sidebar-logo{align-items:center;gap:12px;display:flex}.sidebar-logo-icon{background:#fff8ef24;border-radius:14px;flex-shrink:0;width:40px;height:40px;padding:6px;box-shadow:inset 0 1px #ffffff1a}.sidebar-logo-text{color:#fff8f0;font-family:var(--font-display);letter-spacing:-.03em;font-size:21px;font-weight:700;line-height:1}.sidebar-logo-text span{color:#efb37a}.sidebar-close,.sidebar-hamburger{color:#fff8efd1;box-shadow:none;background:#ffffff0f;border:1px solid #ffffff1a}.sidebar-close{border-radius:12px;justify-content:center;width:38px;height:38px;padding:0;display:none}.sidebar-close:hover,.sidebar-hamburger:hover{color:#fff8f0;background:#ffffff1f;transform:translateY(0)}.sidebar-close svg,.sidebar-hamburger svg{display:block}.sidebar-user{background:#ffffff0d;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:12px;margin:16px 16px 0;padding:16px;display:flex}.user-avatar{color:#fff8f0;letter-spacing:.08em;background:linear-gradient(135deg,#c46a2d 0%,#efb37a 100%);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:14px;font-weight:800;display:flex;box-shadow:0 12px 20px #c46a2d3d}.user-info{flex-direction:column;min-width:0;display:flex}.user-role{color:#efb37a;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.user-email{color:#fff4e88f;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.sidebar-search-wrap{flex-shrink:0;margin:14px 16px 0;position:relative}.sidebar-search-wrap>svg{color:#fff4e857;pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.sidebar-search{color:#fff5eb;box-shadow:none;background:#ffffff0d;border:1px solid #ffffff14;border-radius:16px;margin:0;padding:12px 14px 12px 38px}.sidebar-search::placeholder{color:#fff4e857}.sidebar-search:focus{background:#ffffff14;border-color:#efb37a66;box-shadow:0 0 0 4px #c46a2d24}.sidebar-search-results{z-index:400;background:#22272cf5;border:1px solid #ffffff14;border-radius:18px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:hidden;box-shadow:0 22px 44px #0b0d0e5c}.sidebar-search-result{color:#fff5eb;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex}.sidebar-search-result:hover{color:#fffdf8;background:#ffffff0f}.sidebar-search-result small{color:#fff4e86b;font-size:11px}.sidebar nav{flex-direction:column;flex:1;gap:4px;padding:14px 12px 0;display:flex}.sidebar-nav-link{color:#fff4e8a8;transition:transform var(--transition), background var(--transition), color var(--transition);border-radius:16px;align-items:center;gap:12px;padding:11px 12px;font-size:13.5px;font-weight:600;display:flex}.sidebar-nav-link .nav-icon{opacity:.76;flex-shrink:0;width:18px;height:18px}.sidebar-nav-link:hover{color:#fffaf4;background:#ffffff14;transform:translate(2px)}.sidebar-nav-link.active{color:#fff8f0;background:linear-gradient(135deg,#c46a2df0 0%,#8f491df0 100%);box-shadow:0 14px 26px #c46a2d38}.sidebar-nav-link.active .nav-icon,.sidebar-nav-link:hover .nav-icon{opacity:1}.sidebar-upgrade-btn{color:#fff8f0;cursor:pointer;background:linear-gradient(135deg,#c46a2d 0%,#8f491d 100%);border:none;border-radius:20px;justify-content:center;align-items:center;margin:14px 16px 0;padding:14px 16px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 4px 16px #c46a2d4d}.sidebar-upgrade-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #c46a2d66}.sidebar-invite-btn{color:#e9f3ee;box-shadow:none;background:linear-gradient(135deg,#2f6b5f33 0%,#c46a2d1f 100%);border:1px solid #7bb7a347;border-radius:20px;justify-content:flex-start;margin:14px 16px 0;padding:14px 16px}.sidebar-invite-btn:hover{background:linear-gradient(135deg,#2f6b5f47 0%,#c46a2d2e 100%);transform:translateY(-1px)}.sidebar-bottom{border-top:1px solid #ffffff14;flex-direction:column;flex-shrink:0;gap:8px;margin:16px 12px 12px;padding-top:14px;display:flex}.sidebar-theme-btn,.logout-btn{width:100%;box-shadow:none;border-radius:16px;justify-content:flex-start;padding:12px 14px}.sidebar-theme-btn{color:#fff4e8d1;background:#ffffff0d;border:1px solid #ffffff14}.logout-btn{color:#ffc8c0;background:#c24b431f;border:1px solid #f28a7d38}.sidebar-theme-btn:hover,.logout-btn:hover{transform:translateY(0)}.sidebar-hamburger{z-index:301;border-radius:16px;justify-content:center;width:46px;height:46px;padding:0;display:none;position:fixed;top:16px;left:16px}.sidebar-overlay{z-index:299;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#10111275;position:fixed;inset:0}.qr-modal-overlay{z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f10127a;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.qr-modal{background:radial-gradient(circle at 100% 0,#c46a2d1f,#0000 24%),linear-gradient(#ffffffeb 0%,#fff8f0fa 100%);border:1px solid #dbc8b1b3;border-radius:28px;width:100%;max-width:380px;padding:28px;animation:.22s both fadeInUp;box-shadow:0 30px 64px #18120c38}.qr-modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.qr-modal-header h2{margin:0;font-size:30px}.qr-close{border:1px solid var(--border);width:40px;height:40px;color:var(--text-muted);box-shadow:none;background:#ffffffc7;border-radius:14px;justify-content:center;padding:0}.qr-close:hover{color:var(--text);background:#fffffffa;transform:translateY(0)}.qr-subtitle,.qr-url,.qr-hint{color:var(--text-muted)}.qr-subtitle{margin:0 0 18px;font-size:14px;line-height:1.6}.qr-code-wrap{background:#ffffffb8;border:1px solid #dbc8b1ad;border-radius:22px;justify-content:center;margin-bottom:14px;padding:16px;display:flex}.qr-code-img{border-radius:14px;display:block}.qr-url{text-align:center;word-break:break-all;margin:0 0 16px;font-size:12px}.qr-actions{gap:10px;margin-bottom:14px;display:flex}.qr-copy-btn,.qr-whatsapp-btn{text-align:center;border-radius:16px;flex:1;justify-content:center;padding:12px;font-size:13px;font-weight:800}.qr-copy-btn{box-shadow:none}.qr-whatsapp-btn{color:#fff;background:linear-gradient(135deg,#28b163 0%,#1b9250 100%);align-items:center;display:inline-flex}.qr-whatsapp-btn:hover{color:#fff}.qr-hint{text-align:center;margin:0;font-size:12px;line-height:1.6}.qr-hint strong{color:var(--text)}body.dark .sidebar{background:radial-gradient(circle at 100% 0,#e59b5a2e,#0000 28%),radial-gradient(circle at 0 100%,#7bb7a31a,#0000 30%),linear-gradient(#141619fa 0%,#181b1ffa 100%)}body.dark .qr-modal{background:radial-gradient(circle at 100% 0,#e59b5a1a,#0000 24%),linear-gradient(#212529fa 0%,#1b1e22fa 100%);border-color:#3a4249e6}body.dark .qr-close{border-color:var(--border);color:var(--text-muted);background:#ffffff0a}body.dark .qr-code-wrap{background:#ffffff08;border-color:#3a4249d9}@media (width<=768px){.sidebar{border-radius:0 28px 28px 0;height:100vh;transition:transform .22s;top:0;left:0;transform:translate(-100%)}.sidebar.sidebar-mobile-open{transform:translate(0)}.sidebar-hamburger,.sidebar-close{display:inline-flex}}@media (width<=420px){.qr-modal{padding:22px}.qr-actions{flex-direction:column}}.driving-hero{background:radial-gradient(circle at 0 0,#efb37a33,#0000 28%),radial-gradient(circle at 85% 18%,#7bb7a329,#0000 24%),linear-gradient(135deg,#23282d 0%,#3a2c24 44%,#2f6b5f 100%);border:1px solid #ffffff14;border-radius:30px;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:28px;padding:32px;display:grid;position:relative;overflow:hidden;box-shadow:0 28px 60px #1c140d38}.driving-hero:before{content:"";filter:blur(8px);background:#fff8f014;border-radius:50%;width:240px;height:240px;position:absolute;inset:auto -40px -88px auto}.driving-hero-copy{z-index:1;flex-direction:column;justify-content:center;gap:18px;display:flex;position:relative}.driving-hero-eyebrow{color:#fff8f0db;text-transform:uppercase;letter-spacing:.18em;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;width:fit-content;padding:8px 14px;font-size:11px;font-weight:800;display:inline-flex}.driving-hero-copy h1{color:#fff8f0;margin:0;font-size:clamp(2.5rem,2rem + 1vw,3.5rem)}.driving-hero-copy p{color:#fff0e3d1;max-width:560px;margin:0;font-size:16px;line-height:1.7}.driving-hero-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.hero-highlight-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform var(--transition), border-color var(--transition);background:linear-gradient(#ffffff24 0%,#ffffff0f 100%);border:1px solid #ffffff1f;border-radius:20px;animation:.45s ease-out both fadeInUp;display:flex}.hero-highlight-card:hover{border-color:#efb37a47;transform:translateY(-2px)}.hero-highlight-link{width:100%;color:inherit;flex-direction:column;gap:6px;padding:16px 18px;display:flex}.hero-highlight-link strong{color:#fff8f0;font-size:30px;font-weight:800}.hero-highlight-link span{color:#fff0e3cc;font-size:13px}.hero-highlight-link small{color:#efc18e;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800}.hero-highlight-link:focus-visible{outline-offset:-2px;border-radius:20px;outline:3px solid #efb37a52}.driving-hero-cues{flex-wrap:wrap;gap:10px;display:flex}.cue-pill{color:#f7efe6;letter-spacing:.02em;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:10px 14px;font-size:13px;font-weight:700;animation:2.8s ease-in-out infinite alternate cueSway;display:inline-flex}.cue-pill.mirror{background:#7bb7a32e;border-color:#7bb7a33d}.cue-pill.signal{background:#efb37a2e;border-color:#efb37a3d}.cue-pill.turn{background:#ffffff1f;border-color:#ffffff24}.driving-hero-scene{background:radial-gradient(circle at top,#ffffff29,#0000 44%),linear-gradient(#ffffff0f 0%,#0f111338 100%);border-radius:24px;min-height:320px;position:relative;overflow:hidden}.scene-glow{filter:blur(28px);border-radius:50%;position:absolute}.scene-glow-one{background:#7bb7a338;width:120px;height:120px;top:20px;right:30px}.scene-glow-two{background:#efb37a2e;width:140px;height:140px;bottom:30px;left:20px}.scene-status-card,.scene-coach-card{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform var(--transition), border-color var(--transition);background:#12151861;border:1px solid #ffffff1f;border-radius:20px;padding:14px 16px;position:absolute;box-shadow:0 18px 30px #140f0a2e}.scene-status-card{top:18px;left:18px}.scene-coach-card{max-width:220px;animation:3s ease-in-out infinite floatY;bottom:20px;right:18px}.scene-link-card{color:inherit;flex-direction:column;gap:3px;display:flex}.scene-status-card span,.scene-coach-card span{color:#fff0e3b8;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800}.scene-status-card strong,.scene-coach-card strong{color:#fff8f0;font-size:18px}.scene-status-card small{color:#fff0e3ad;font-size:12px}.scene-link-card:focus-visible{outline-offset:4px;outline:3px solid #efb37a52}.scene-status-card:hover,.scene-coach-card:hover{border-color:#efb37a3d;transform:translateY(-2px)}.scene-traffic-light{z-index:2;background:#0f12146b;border:1px solid #ffffff1f;border-radius:999px;flex-direction:column;gap:8px;padding:12px 10px;display:flex;position:absolute;top:24px;right:24px}.traffic-bulb{opacity:.88;border-radius:50%;width:14px;height:14px}.traffic-bulb.red{background:#ef8276}.traffic-bulb.amber{background:#efb37a}.traffic-bulb.green{background:#72c3aa;animation:2.2s ease-in-out infinite greenPulse}.scene-marker{z-index:2;position:absolute}.scene-marker-left{bottom:56px;left:28px}.scene-marker-right{top:104px;right:58px}.marker-cone{clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(#efb37a 0%,#c46a2d 100%);width:34px;height:48px;position:relative}.marker-cone:before,.marker-cone:after{content:"";background:#ffffffd6;border-radius:999px;height:6px;position:absolute;left:7px;right:7px}.marker-cone:before{top:17px}.marker-cone:after{top:30px}.marker-sign{color:#2f6b5f;background:#fff8f0;border-radius:50%;place-items:center;width:42px;height:42px;font-size:20px;font-weight:800;display:grid;box-shadow:0 10px 24px #140f0a29}.road-frame{z-index:1;position:absolute;inset:26px 92px}.road-surface{background:linear-gradient(90deg,#ffffff14 0 5px,#0000 5px calc(100% - 5px),#ffffff14 calc(100% - 5px) 100%),linear-gradient(#49525a 0%,#24292d 100%);border-radius:90px;width:170px;margin:0 auto;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff0d,0 18px 36px #0f11132e}.lane-segment{background:linear-gradient(#efb37a29 0%,#efb37a 50%,#efb37a29 100%);border-radius:999px;width:8px;height:58px;margin-left:-4px;animation:2.6s linear infinite laneMove;position:absolute;left:50%}.route-dot{z-index:2;background:#72c3aa;border-radius:50%;width:12px;height:12px;animation:1.8s ease-in-out infinite dotPulse;position:absolute;box-shadow:0 0 0 6px #72c3aa24}.route-dot.dot-one{top:58px;left:calc(50% + 32px)}.route-dot.dot-two{animation-delay:.35s;top:156px;left:calc(50% - 48px)}.route-dot.dot-three{animation-delay:.7s;bottom:66px;left:calc(50% + 40px)}.road-note{z-index:2;color:#fff8f0;text-transform:uppercase;letter-spacing:.16em;background:#ffffff24;border:1px solid #ffffff29;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;animation:2.6s ease-in-out infinite alternate noteSway;position:absolute}.road-note-top{top:82px;right:calc(50% - 118px)}.road-note-bottom{animation-direction:alternate-reverse;bottom:96px;left:calc(50% - 132px)}.road-car{z-index:3;width:118px;height:74px;margin-top:-37px;margin-left:-59px;animation:5s ease-in-out infinite carDrive;position:absolute;top:50%;left:50%}.road-car-roof{background:linear-gradient(#fff4e7 0%,#f7d7b0 100%);border-radius:18px 18px 12px 12px;height:28px;position:absolute;top:4px;left:24px;right:24px;box-shadow:inset 0 -2px #ffffff70}.road-car-body{background:linear-gradient(135deg,#c46a2d 0%,#e49f63 46%,#f3c998 100%);border-radius:22px 22px 18px 18px;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:18px 0 8px;box-shadow:0 14px 24px #140f0a2e}.road-car-window{background:#ffffffd1;border-radius:10px;width:22px;height:14px}.road-car-emblem{color:#fff;background:#1f2a3129;border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;font-weight:800;display:grid;position:absolute;top:10px;right:14px}.road-wheel{background:radial-gradient(circle,#b9c2c8 0 4px,#0000 4px),linear-gradient(#111417 0%,#272d31 100%);border-radius:50%;width:22px;height:22px;animation:1.1s linear infinite wheelSpin;position:absolute;bottom:0;box-shadow:inset 0 0 0 4px #181d21}.road-wheel-back{left:18px}.road-wheel-front{right:18px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes cueSway{0%{opacity:.6;transform:translate(0)}to{opacity:1;transform:translate(6px)}}@keyframes greenPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes laneMove{0%{opacity:0;transform:translateY(0)}20%{opacity:.85}80%{opacity:.85}to{opacity:0;transform:translateY(340px)}}@keyframes dotPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes noteSway{0%{transform:translate(0)}to{transform:translate(6px)}}@keyframes carDrive{0%{transform:translate(-18px)rotate(-2deg)}25%{transform:translate(16px,-16px)rotate(2deg)}50%{transform:translate(-12px,-8px)rotate(-1.5deg)}75%{transform:translate(10px,-20px)rotate(1deg)}to{transform:translate(0)rotate(0)}}@keyframes wheelSpin{to{transform:rotate(360deg)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (prefers-reduced-motion:reduce){.cue-pill,.lane-segment,.route-dot,.road-note,.road-car,.road-wheel,.scene-coach-card,.traffic-bulb.green,.hero-highlight-card{animation:none!important}}@media (width<=1080px){.driving-hero{grid-template-columns:1fr}.driving-hero-highlights{grid-template-columns:repeat(3,minmax(0,1fr))}.driving-hero-scene{min-height:300px}}@media (width<=760px){.driving-hero{border-radius:24px;padding:24px}.driving-hero-highlights{grid-template-columns:1fr}.driving-hero-copy p{font-size:15px}.driving-hero-scene{min-height:280px}.road-frame{inset:24px 52px}.scene-marker-right{top:110px;right:28px}}@media (width<=560px){.road-frame{inset:24px 22px}.road-surface{width:148px}.road-note-top{right:calc(50% - 108px)}.road-note-bottom{left:calc(50% - 118px)}.scene-status-card,.scene-coach-card{padding:12px 14px}.scene-status-card strong,.scene-coach-card strong{font-size:16px}}.dashboard-container{flex-direction:column;gap:24px;max-width:1220px;padding-bottom:36px;display:flex}.dashboard-loading{justify-content:center;align-items:center;min-height:240px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:16px;display:grid}.stat-link{color:inherit;display:block}.stat-link:focus-visible{outline:3px solid var(--primary-ring);outline-offset:4px;border-radius:24px}.stat-box{background:linear-gradient(180deg, #ffffff9e 0%, var(--surface) 100%);min-height:112px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);border:1px solid #dbc8b1d6;border-radius:24px;align-items:center;gap:14px;padding:18px;display:flex}.stat-box:hover{box-shadow:var(--shadow);border-color:#c46a2d57;transform:translateY(-2px)}.stat-icon{color:#fff9f2;letter-spacing:.16em;border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:12px;font-weight:800;display:flex;box-shadow:inset 0 1px #ffffff24}.stat-box.total .stat-icon{background:linear-gradient(135deg,#2f6b5f 0%,#1f564b 100%)}.stat-box.lessons .stat-icon{background:linear-gradient(135deg,#c46a2d 0%,#8f491d 100%)}.stat-box.manual .stat-icon{background:linear-gradient(135deg,#8b5a2b 0%,#6c401a 100%)}.stat-box.auto .stat-icon{background:linear-gradient(135deg,#4d7788 0%,#355664 100%)}.stat-box.perfect .stat-icon{background:linear-gradient(135deg,#c24b43 0%,#92342f 100%)}.stat-box.parking .stat-icon{background:linear-gradient(135deg,#b98a2c 0%,#93691a 100%)}.stat-content h3{margin:0;font-size:30px;font-weight:800;line-height:1}.stat-content p{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:6px 0 0;font-size:12px;font-weight:700}.dashboard-sections{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.section-card,.quick-actions{background:linear-gradient(180deg, #ffffff8a 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #dbc8b1d6;border-radius:26px;padding:22px}.quick-actions{background:radial-gradient(circle at top right, #c46a2d1f, transparent 30%), linear-gradient(180deg, #ffffff94 0%, var(--surface) 100%)}.section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.section-header h2,.quick-actions h2{margin:0;font-size:28px}.section-header a{color:var(--primary-dark);text-transform:uppercase;letter-spacing:.12em;background:#c46a2d14;border:1px solid #c46a2d29;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}.section-header a:hover{color:var(--primary)}.empty-text{color:var(--text-muted);text-align:center;background:#ffffff5c;border:1px dashed #bda182a3;border-radius:20px;margin:0;padding:28px;font-size:14px}.recent-list,.lessons-list{flex-direction:column;gap:12px;display:flex}.recent-card,.lesson-item{transition:transform var(--transition), border-color var(--transition), background var(--transition);background:#ffffff75;border:1px solid #dbc8b1c7;border-radius:20px;align-items:center;gap:12px;padding:14px;display:flex}.recent-card:hover,.lesson-item:hover{background:#ffffffb8;border-color:#c46a2d42;transform:translateY(-1px)}.student-avatar{color:#fff9f2;background:linear-gradient(135deg,#c46a2d 0%,#efb37a 100%);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:15px;font-weight:800;display:flex;box-shadow:0 14px 22px #c46a2d2e}.student-info h4,.lesson-info h4{margin:0 0 4px;font-size:15px;font-weight:700}.student-info span,.lesson-info span{color:var(--text-muted);font-size:13px}.lesson-date-box{background:linear-gradient(#f8e6d4eb 0%,#fffc 100%);border:1px solid #c46a2d2e;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;min-width:58px;padding:10px 12px;display:flex}.lesson-date-box .day{color:var(--text);font-size:20px;font-weight:800;line-height:1}.lesson-date-box .month{color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;margin-top:4px;font-size:10px;font-weight:800}.actions-grid{flex-wrap:wrap;gap:10px;display:flex}.actions-grid a{text-decoration:none;display:inline-flex}.action-button{justify-content:center;min-width:164px}.action-button.primary{background:linear-gradient(135deg,#c46a2d 0%,#8f491d 100%)}.action-button.book{background:linear-gradient(135deg,#2f6b5f 0%,#1f564b 100%)}.action-button.tip{background:linear-gradient(135deg,#7b5431 0%,#5e3d1f 100%)}.dash-banner{box-shadow:var(--shadow-sm);border:1px solid #dbc8b1cc;border-radius:24px;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.dash-banner>span:first-child{background:#ffffffc7;border-radius:14px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.dash-banner strong{font-size:15px;display:block}.dash-banner p{margin:4px 0 0;font-size:13px;line-height:1.6}.dash-banner-green{color:#225443;background:linear-gradient(135deg,#dfede8f5 0%,#ffffffe6 100%)}.dash-banner-blue{color:#7a4a1c;background:linear-gradient(135deg,#f8e6d4f5 0%,#ffffffe6 100%)}.dash-banner-amber{color:#8a571c;background:linear-gradient(135deg,#fff1dff5 0%,#ffffffe6 100%)}.dash-today-chip{color:var(--primary-dark);letter-spacing:.04em;background:#ffffffc7;border:1px solid #c46a2d2e;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:800;display:inline-flex}.dash-pay-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.dash-pay-name{min-width:0;color:inherit;flex:1;font-size:13px}.dash-pay-btns{flex-shrink:0;gap:6px;display:flex}.qp{box-shadow:none;text-transform:uppercase;letter-spacing:.08em;border:none;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:800}.qp.cash{color:#236f56;background:#dcefe4}.qp.card{color:#8f491d;background:#f4e3d1}.qp.bank{color:#355664;background:#e0eaef}.qp:hover{filter:brightness(.98);transform:translateY(0)}.dash-reminder-row{background:#fff1dfb8;border:1px solid #b96d1e2e;border-radius:20px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:14px;display:flex}.dash-reminder-info{color:inherit;flex:1;font-size:14px}.dash-reminder-info span{color:var(--text-muted);margin-left:8px}.dash-reminder-btn{white-space:nowrap;padding:9px 14px;font-size:12px}.dash-reminder-btn.sent{color:var(--text-muted);box-shadow:none;cursor:default;background:#ffffffb8}.dash-fade-in{animation:.36s ease-out both dashFadeIn}@keyframes dashFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.dash-fade-in{animation:none!important}}@media (width<=760px){.dashboard-container{gap:18px}.section-card,.quick-actions,.dash-banner{padding:18px}.section-header{flex-direction:column;align-items:flex-start}.actions-grid{flex-direction:column}.actions-grid a,.action-button{width:100%}.dash-reminder-row{flex-direction:column;align-items:flex-start}}.students-page{flex-direction:column;gap:22px;max-width:1180px;padding-bottom:36px;display:flex}.students-hero{color:#fff8f0;background:radial-gradient(circle at 0 0,#efb37a2e,#0000 28%),radial-gradient(circle at 86% 18%,#7bb7a324,#0000 22%),linear-gradient(135deg,#22272c 0%,#3a2c24 52%,#2f6b5f 100%);border:1px solid #ffffff14;border-radius:28px;justify-content:space-between;align-items:flex-end;gap:20px;padding:28px;display:flex;box-shadow:0 28px 60px #1c140d2e}.students-hero-copy{max-width:640px}.students-eyebrow{color:#fff8f0db;text-transform:uppercase;letter-spacing:.16em;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;margin-bottom:10px;padding:8px 14px;font-size:11px;font-weight:800;display:inline-flex}.students-hero h1{color:#fff8f0;margin-bottom:10px}.students-hero p{color:#fff0e3d1;margin:0;font-size:15px;line-height:1.7}.students-add-link{align-self:center;display:inline-flex}.students-summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.students-summary-card{background:linear-gradient(180deg, #ffffff94 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);border:1px solid #dbc8b1d6;border-radius:24px;padding:20px}.students-summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px;font-size:12px;font-weight:800;display:block}.students-summary-value{color:var(--text);font-size:36px;line-height:1;display:block}.students-summary-note{color:var(--text-muted);margin:10px 0 0;font-size:13px;line-height:1.6}.students-loading-shell,.students-empty{background:linear-gradient(180deg, #ffffff8f 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);color:var(--text-muted);text-align:center;border:1px solid #dbc8b1d6;border-radius:24px;padding:32px 24px}.students-empty p{margin:0 0 16px;font-size:15px}.students-filter-row{align-items:center;gap:10px;display:flex}.students-lang-filter{background:var(--surface);color:var(--text);cursor:pointer;border:1px solid #dbc8b1d6;border-radius:12px;padding:8px 14px;font-size:13px;font-weight:600}body.dark .students-lang-filter{border-color:var(--border)}.students-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.student-card{background:linear-gradient(180deg, #ffffff8a 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);border:1px solid #dbc8b1d6;border-radius:24px;overflow:hidden}.student-card:hover{box-shadow:var(--shadow);border-color:#c46a2d47;transform:translateY(-2px)}.student-card-link{color:inherit;align-items:flex-start;gap:14px;padding:18px;display:flex}.student-avatar-img,.student-avatar-initials{border-radius:18px;flex-shrink:0;width:52px;height:52px}.student-avatar-img{object-fit:cover}.student-avatar-initials{color:#fff8f0;background:linear-gradient(135deg,#c46a2d 0%,#efb37a 100%);justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex;box-shadow:0 16px 28px #c46a2d2e}.student-card-body{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.student-card-head h3{margin:0;font-size:17px}.student-card-head p{color:var(--text-muted);margin:5px 0 0;font-size:13px}.student-card-chip-row{flex-wrap:wrap;gap:8px;display:flex}.student-card-chip,.student-readiness-pill{text-transform:uppercase;letter-spacing:.08em;border-radius:999px;align-items:center;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}.student-card-chip{color:var(--primary-dark);background:#c46a2d1a}.student-card-chip-gold{color:#8a571c;background:#b96d1e24}.student-readiness-pill.ready{color:#236f56;background:#2f6b5f1f}.student-readiness-pill.steady{color:#355664;background:#4d77881f}.student-readiness-pill.developing{color:#996024;background:#b96d1e1f}.student-readiness-pill.early,.student-readiness-pill.watch{color:#a4463f;background:#c24b431f}.student-card-progress{flex-direction:column;gap:7px;display:flex}.student-card-progress-top{color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.student-card-progress-top strong{color:var(--text)}.student-card-progress-track{background:#bda18242;border-radius:999px;height:8px;overflow:hidden}.student-card-progress-fill{background:linear-gradient(90deg,#c46a2d 0%,#2f6b5f 100%);border-radius:999px;height:100%;transition:width .4s}.student-card-note{color:var(--text-2);margin:0;font-size:13px;line-height:1.6}.student-card-actions{background:#ffffff5c;border-top:1px solid #dbc8b1bd;gap:10px;padding:14px 18px 18px;display:flex}.student-card-wa-btn{color:#fff;text-transform:uppercase;letter-spacing:.08em;background:linear-gradient(135deg,#29b266 0%,#1d8f52 100%);border-radius:999px;flex:1;justify-content:center;align-items:center;padding:11px 12px;font-size:12px;font-weight:800;display:inline-flex}.student-card-wa-btn:hover{color:#fff}.student-card-delete-btn{color:var(--danger);text-transform:uppercase;letter-spacing:.08em;box-shadow:none;background:#c24b431a;border:1px solid #c24b4338;border-radius:999px;padding:11px 14px;font-size:12px;font-weight:800}.student-card-delete-btn:hover:not(:disabled){background:#c24b4324;transform:translateY(0)}body.dark .students-summary-card,body.dark .students-loading-shell,body.dark .students-empty,body.dark .student-card{border-color:var(--border)}body.dark .student-card-actions{border-top-color:var(--border);background:#ffffff05}@media (width<=760px){.students-hero{flex-direction:column;align-items:flex-start}.students-add-link{align-self:stretch}.students-add-link button{justify-content:center;width:100%}}@media (width<=640px){.students-list{grid-template-columns:1fr}.student-card-actions{flex-direction:column}}.lessons-page{flex-direction:column;gap:22px;max-width:1120px;padding-bottom:36px;display:flex}.lessons-hero{color:#fff8f0;background:radial-gradient(circle at 0 0,#efb37a2e,#0000 26%),radial-gradient(circle at 84% 20%,#7bb7a31f,#0000 24%),linear-gradient(135deg,#23282d 0%,#355664 46%,#2f6b5f 100%);border:1px solid #ffffff14;border-radius:28px;justify-content:space-between;align-items:flex-end;gap:20px;padding:28px;display:flex;box-shadow:0 28px 60px #1c140d2e}.lessons-hero-copy{max-width:640px}.lessons-eyebrow{color:#fff8f0db;text-transform:uppercase;letter-spacing:.16em;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;margin-bottom:10px;padding:8px 14px;font-size:11px;font-weight:800;display:inline-flex}.lessons-hero h1{color:#fff8f0;margin-bottom:10px}.lessons-hero p{color:#fff0e3d1;margin:0;font-size:15px;line-height:1.7}.lessons-header-actions{flex-wrap:wrap;gap:10px;display:flex}.lessons-btn-primary,.lessons-btn-outline{min-height:46px;padding:11px 18px}.lessons-btn-outline{color:#fff8f0;box-shadow:none;background:#ffffff14;border:1px solid #ffffff24}.lessons-btn-outline:hover{background:#ffffff24;transform:translateY(0)}.lessons-summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.lessons-summary-card{background:linear-gradient(180deg, #ffffff94 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);border:1px solid #dbc8b1d6;border-radius:24px;padding:20px}.lessons-summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px;font-size:12px;font-weight:800;display:block}.lessons-summary-value{color:var(--text);font-size:36px;line-height:1;display:block}.lessons-summary-note{color:var(--text-muted);margin:10px 0 0;font-size:13px;line-height:1.6}.lessons-filter-panel,.lessons-loading-shell,.lessons-empty{background:linear-gradient(180deg, #ffffff8f 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);border:1px solid #dbc8b1d6;border-radius:24px;padding:22px}.lessons-filter-copy h2{margin-bottom:8px;font-size:26px}.lessons-filter-copy p{color:var(--text-muted);margin:0 0 18px;font-size:14px;line-height:1.6}.lessons-loading-shell,.lessons-empty{color:var(--text-muted);text-align:center}.lessons-filters{flex-wrap:wrap;gap:12px;display:flex}.lessons-search{flex:1;min-width:220px;margin:0}.lessons-filters select{min-width:170px;margin:0}.lessons-section{flex-direction:column;gap:12px;display:flex}.lessons-section h2{color:var(--text);margin:0;font-size:28px}.lessons-list{flex-direction:column;gap:12px;display:flex}.lesson-card-new{background:linear-gradient(180deg, #ffffff8a 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);border:1px solid #dbc8b1d6;border-radius:24px;display:flex;overflow:hidden}.lesson-card-new:hover{box-shadow:var(--shadow);border-color:#c46a2d47;transform:translateY(-2px)}.lesson-card-new.past{opacity:.88}.lesson-card-left{background:linear-gradient(#c46a2df0 0%,#8f491df0 100%);justify-content:center;align-items:center;width:92px;min-width:92px;padding:16px 12px;display:flex}.lesson-card-new.past .lesson-card-left{background:linear-gradient(#6e7b83eb 0%,#47565feb 100%)}.lesson-card-date{color:#fff8f0;text-align:center;flex-direction:column;align-items:center;display:flex}.lesson-date-month,.lesson-date-dow{letter-spacing:.12em;font-size:11px;font-weight:800}.lesson-card-date strong{margin:4px 0;font-size:28px;line-height:1}.lesson-card-body{flex:1;padding:18px}.lesson-card-top-row{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.lesson-card-top-row h3{margin:0;font-size:18px}.lesson-card-time{color:var(--text-muted);margin:4px 0 0;font-size:13px}.lesson-status-badge{text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:11px;font-weight:800;display:inline-flex}.lesson-card-meta{color:var(--text-2);flex-wrap:wrap;gap:8px;margin-bottom:14px;font-size:13px;display:flex}.lesson-card-meta span{background:#ffffff6b;border:1px solid #dbc8b1b8;border-radius:999px;padding:7px 10px}.lesson-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-payment{text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:800}.lesson-card-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lesson-link-btn,.lesson-delete-btn{text-transform:uppercase;letter-spacing:.08em;border-radius:999px;justify-content:center;align-items:center;min-height:36px;padding:8px 12px;font-size:11px;font-weight:800;display:inline-flex}.lesson-link-btn{color:var(--primary-dark);background:#c46a2d14;border:1px solid #c46a2d29}.lesson-delete-btn{color:var(--danger);box-shadow:none;background:#c24b431a;border:1px solid #c24b4338}.lesson-delete-btn:hover:not(:disabled){background:#c24b4324;transform:translateY(0)}body.dark .lessons-summary-card,body.dark .lessons-filter-panel,body.dark .lessons-loading-shell,body.dark .lessons-empty,body.dark .lesson-card-new{border-color:var(--border);background:var(--surface)}body.dark .lesson-card-meta span{border-color:var(--border);background:#ffffff08}@media (width<=760px){.lessons-hero{flex-direction:column;align-items:flex-start}.lessons-header-actions{width:100%}.lessons-header-actions button{flex:1;justify-content:center}.lesson-card-new{flex-direction:column}.lesson-card-left{width:100%;min-width:0;padding:14px}.lesson-card-date{flex-direction:row;gap:10px}.lesson-card-date strong{margin:0}}@media (width<=640px){.lessons-filters{flex-direction:column}.lessons-search,.lessons-filters select{width:100%}}.messages-page{max-width:700px}.conversations-list{flex-direction:column;gap:8px;display:flex}.conversation-card{border:1px solid var(--border);background:var(--surface);color:inherit;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);border-radius:20px;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:flex}.conversation-card:hover{box-shadow:var(--shadow-sm);border-color:#c46a2d47;transform:translateY(-1px)}.conversation-card.unread{background:var(--surface);border-left:3px solid var(--primary);border-color:#c46a2d52}.conv-avatar{flex-shrink:0}.conv-avatar img{object-fit:cover;border-radius:50%;width:48px;height:48px}.conv-avatar-initial{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:700;display:flex}.conv-content{flex:1;min-width:0}.conv-top{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.conv-top h3{color:var(--text);margin:0;font-size:15px;font-weight:600}.conv-time{color:var(--text-dim);flex-shrink:0;font-size:12px}.conv-bottom{justify-content:space-between;align-items:center;display:flex}.conv-preview{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:400px;margin:0;font-size:13px;overflow:hidden}.you-label{color:var(--text-dim)}.unread .conv-preview{color:var(--text);font-weight:600}.unread-badge{background:var(--primary);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:flex}.conversation-page{flex-direction:column;max-width:700px;height:calc(100vh - 40px);display:flex}.conv-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:12px 0;display:flex}.back-link{color:var(--text-muted);border-radius:8px;align-items:center;padding:6px;text-decoration:none;transition:background .15s;display:flex}.back-link:hover{background:var(--surface-2);color:var(--primary)}.conv-header-info{align-items:center;gap:12px;display:flex}.conv-header-avatar{object-fit:cover;border-radius:50%;width:40px;height:40px}.conv-header-avatar-initial{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;font-weight:700;display:flex}.conv-header-info h2{color:var(--text);margin:0;font-size:16px}.conv-header-status{color:var(--text-muted);font-size:12px}.view-profile-link{color:var(--text-muted);font-size:12px;text-decoration:none}.view-profile-link:hover{color:var(--primary)}.conv-header-menu{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;margin-left:auto;padding:8px;transition:background .15s,color .15s;display:flex}.conv-header-menu:hover{background:var(--surface-2);color:var(--danger,#d32f2f)}.chat-confirm-bar{background:var(--danger-pale,#fdecea);color:var(--text);border:1px solid #d32f2f33;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 14px;font-size:13px;font-weight:600;animation:.15s ease-out bubbleIn;display:flex}.chat-confirm-actions{flex-shrink:0;gap:6px;display:flex}.chat-confirm-cancel{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600}.chat-confirm-delete{background:var(--danger,#d32f2f);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600}.chat-loading{justify-content:center;align-items:center;gap:6px;height:100%;display:flex}.chat-loading-dot{background:var(--text-dim);border-radius:50%;width:8px;height:8px;animation:1.2s infinite chatLoadBounce}.chat-loading-dot:nth-child(2){animation-delay:.2s}.chat-loading-dot:nth-child(3){animation-delay:.4s}@keyframes chatLoadBounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.chat-messages{flex-direction:column;flex:1;gap:4px;padding:16px 0;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--text-dim);flex-direction:column;align-items:center;gap:8px;padding:60px 20px;display:flex}.chat-empty-icon{margin-bottom:4px}.chat-date-divider{justify-content:center;align-items:center;padding:12px 0 8px;display:flex}.chat-date-divider span{background:var(--surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;border-radius:12px;padding:4px 12px;font-size:11px;font-weight:600}.chat-bubble{border-radius:18px;max-width:75%;padding:10px 14px;animation:.2s ease-out bubbleIn;position:relative}@keyframes bubbleIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-bubble.sent{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.received{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.bubble-text{word-wrap:break-word;white-space:pre-wrap;margin:0;font-size:14px;line-height:1.45}.bubble-meta{align-items:center;gap:4px;margin-top:3px;display:flex}.bubble-time{opacity:.65;font-size:10px}.bubble-status{opacity:.7;letter-spacing:-2px;font-size:11px}.chat-bubble.sent .bubble-status{color:#ffffffd9}.chat-bubble.selected{outline:2px solid var(--primary);outline-offset:2px}.bubble-actions{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:2px;margin-top:6px;animation:.12s ease-out bubbleIn;display:flex;overflow:hidden}.bubble-actions button{color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .12s;display:flex}.bubble-actions button:hover{background:var(--surface-2)}.bubble-action-delete{color:var(--danger,#d32f2f)!important}.chat-bubble.sent .bubble-actions{background:#00000026;border-color:#fff3}.chat-bubble.sent .bubble-actions button{color:#fff}.chat-bubble.sent .bubble-action-delete{color:#ffcdd2!important}.typing-bubble{padding:12px 18px}.typing-dots{align-items:center;gap:4px;display:flex}.typing-dots span{background:var(--text-muted);border-radius:50%;width:7px;height:7px;animation:1.4s infinite typingDot}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.quick-replies{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:8px 0;animation:.15s ease-out bubbleIn;display:flex}.quick-reply-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:16px;padding:6px 14px;font-size:13px;transition:background .15s,border-color .15s}.quick-reply-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.chat-input-bar{border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end;gap:8px;padding:10px 0;display:flex}.chat-quick-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:8px;transition:background .15s,color .15s;display:flex}.chat-quick-toggle:hover{background:var(--surface-2);color:var(--primary)}.chat-textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);resize:none;border-radius:20px;outline:none;flex:1;max-height:120px;padding:10px 16px;font-family:inherit;font-size:14px;line-height:1.4;transition:border-color .15s,box-shadow .15s}.chat-textarea::placeholder{color:var(--text-dim)}.chat-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb1f}.chat-send-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .15s,transform .15s;display:flex}.chat-send-btn:hover:not(:disabled){transform:scale(1.05)}.chat-send-btn:disabled{opacity:.35;cursor:not-allowed}@media (width<=600px){.conversation-page{height:calc(100vh - 20px)}.chat-bubble{max-width:85%}.quick-replies{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}}.auth-container{background:radial-gradient(circle at 18% 20%,#c46a2d38,#0000 26%),radial-gradient(circle at 82% 16%,#2f6b5f29,#0000 22%),linear-gradient(135deg,#f3e2cc 0%,#f7efe5 48%,#ead7bc 100%);justify-content:center;align-items:center;min-height:100vh;padding:28px;display:flex}.auth-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 100% 0,#c46a2d1a,#0000 24%),linear-gradient(#ffffffd6 0%,#fff9f2f5 100%);border:1px solid #dbc8b1e0;border-radius:30px;width:100%;max-width:460px;padding:42px 40px 34px;position:relative;box-shadow:0 34px 70px #34220f24}.auth-card:before{content:"";background:linear-gradient(90deg,#c46a2de6 0%,#efb37adb 55%,#2f6b5fdb 100%);border-radius:999px;height:6px;position:absolute;top:18px;left:18px;right:18px}.auth-header{text-align:center;margin-bottom:28px}.auth-logo{background:#ffffffc7;border-radius:18px;width:58px;height:58px;margin:0 auto 18px;padding:8px;display:block;box-shadow:0 18px 32px #34220f14}.auth-header h1{margin:0 0 8px;font-size:clamp(2rem,1.7rem + .7vw,2.4rem)}.auth-header h1 span{color:var(--primary)}.auth-header p{color:var(--text-muted);margin:0;font-size:14px;line-height:1.6}.auth-form{flex-direction:column;gap:18px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group input,.form-group select{background:#ffffffb8;margin:0}.auth-button{justify-content:center;width:100%;margin-top:4px;padding:13px 18px;font-size:15px}.auth-divider{color:var(--text-dim);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:12px;margin:2px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#bda1826b;flex:1;height:1px}.auth-footer{text-align:center;color:var(--text-muted);margin-top:18px;font-size:14px}.auth-footer a{color:var(--primary-dark);font-weight:800}.auth-footer a:hover{text-decoration:underline}.auth-hint{color:#996024;text-align:center;background:#fff1dfeb;border:1px solid #b96d1e38;border-radius:18px;margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.6}.auth-terms-row{align-items:flex-start;gap:10px;margin:-2px 0 4px;display:flex}.auth-terms-row input[type=checkbox]{cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:3px}.auth-terms-row label{letter-spacing:0;text-transform:none;color:var(--text-2);cursor:pointer;font-size:13px;line-height:1.6}.auth-terms-row a{color:var(--primary-dark);font-weight:700}body.dark .auth-container{background:radial-gradient(circle at 18% 20%,#e59b5a2e,#0000 26%),radial-gradient(circle at 82% 16%,#7bb7a31f,#0000 22%),linear-gradient(135deg,#1b1e21 0%,#15181b 48%,#121416 100%)}body.dark .auth-card{background:radial-gradient(circle at 100% 0,#e59b5a14,#0000 24%),linear-gradient(#212529f0 0%,#1b1e22fa 100%);border-color:#3a4249eb;box-shadow:0 34px 70px #00000047}body.dark .auth-logo{box-shadow:none;background:#ffffff0a}body.dark .auth-header p,body.dark .auth-footer,body.dark .auth-terms-row label{color:var(--text-muted)}body.dark .form-group input,body.dark .form-group select{background:#ffffff0a}body.dark .auth-hint{color:#f2c48b;background:#f0b36d14;border-color:#f0b36d2e}@media (width<=520px){.auth-container{padding:18px}.auth-card{border-radius:24px;padding:34px 22px 26px}}.lp-root{background:var(--bg);min-height:100vh;color:var(--text);margin:-28px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.lp-nav{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f141ce0;border-bottom:1px solid #ffffff12;position:sticky;top:0}.lp-nav-inner{justify-content:space-between;align-items:center;max-width:1100px;height:60px;margin:0 auto;padding:0 28px;display:flex}.lp-logo{color:#fff8f0;letter-spacing:-.03em;font-size:20px;font-weight:800}.lp-nav-links{align-items:center;gap:24px;display:flex}.lp-nav-links a{color:#fff8f0b8;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.lp-nav-links a:hover{color:#fff8f0}.lp-nav-login{background:#ffffff14;border-radius:10px;padding:8px 16px;color:#fff8f0!important;border:1px solid #ffffff29!important;font-weight:700!important}.lp-hero{grid-template-columns:1fr 1fr;align-items:center;gap:60px;max-width:1100px;min-height:86vh;margin:0 auto;padding:80px 28px 60px;display:grid}.lp-eyebrow{color:#efb37a;text-transform:uppercase;letter-spacing:.14em;background:#c46a2d1a;border:1px solid #c46a2d4d;border-radius:999px;margin-bottom:20px;padding:8px 14px;font-size:12px;font-weight:800;display:inline-flex}.lp-hero h1{letter-spacing:-.03em;color:var(--text);margin:0 0 20px;font-size:clamp(36px,5vw,58px);font-weight:800;line-height:1.08}.lp-hero p{color:var(--text-2);max-width:480px;margin:0 0 32px;font-size:17px;line-height:1.7}.lp-hero-cta{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.lp-hero-note{color:var(--text-dim);margin:0;font-size:13px}.lp-btn-primary{color:#fff8f0;cursor:pointer;background:linear-gradient(135deg,#c46a2d 0%,#8f491d 100%);border:none;border-radius:14px;justify-content:center;align-items:center;padding:14px 24px;font-size:15px;font-weight:800;text-decoration:none;transition:transform .15s,opacity .15s;display:inline-flex;box-shadow:0 8px 24px #c46a2d59}.lp-btn-primary:hover{opacity:.92;transform:translateY(-2px)}.lp-btn-large{padding:16px 32px;font-size:17px}.lp-btn-outline{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:14px;justify-content:center;align-items:center;padding:14px 24px;font-size:15px;font-weight:700;text-decoration:none;transition:border-color .15s,transform .15s;display:inline-flex}.lp-btn-outline:hover{border-color:#c46a2d66;transform:translateY(-1px)}.lp-hero-visual{height:340px;position:relative}.lp-hero-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;min-width:220px;padding:18px 22px;position:absolute;box-shadow:0 20px 48px #0000002e}.lp-hero-card-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:800}.lp-hero-card-value{color:var(--text);margin-bottom:4px;font-size:22px;font-weight:800}.lp-hero-card-sub{color:var(--text-muted);font-size:13px}.lp-hero-card-1{top:0;left:0;transform:rotate(-2deg)}.lp-hero-card-2{border-color:#c46a2d4d;top:120px;right:0;transform:rotate(1.5deg)}.lp-hero-card-3{border-color:#2f6b5f4d;bottom:0;left:40px;transform:rotate(-1deg)}.lp-section-inner{max-width:1100px;margin:0 auto;padding:0 28px}.lp-section-eyebrow{color:#efb37a;text-transform:uppercase;letter-spacing:.14em;background:#c46a2d14;border:1px solid #c46a2d33;border-radius:999px;margin-bottom:12px;padding:6px 12px;font-size:12px;font-weight:800;display:inline-flex}.lp-features,.lp-pricing{padding:80px 0}.lp-features{background:var(--surface)}.lp-features h2,.lp-pricing h2{letter-spacing:-.03em;color:var(--text);margin:0 0 12px;font-size:clamp(28px,4vw,42px);font-weight:800}.lp-section-sub{color:var(--text-2);max-width:560px;margin:0 0 48px;font-size:17px;line-height:1.7}.lp-features-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.lp-feature-card{border:1px solid var(--border);background:var(--bg);border-radius:20px;padding:24px;transition:transform .2s,border-color .2s}.lp-feature-card:hover{border-color:#c46a2d4d;transform:translateY(-3px)}.lp-feature-icon{color:#c46a2d;width:40px;height:40px;margin-bottom:16px}.lp-feature-icon svg{width:100%;height:100%}.lp-feature-card h3{color:var(--text);margin:0 0 8px;font-size:16px;font-weight:700}.lp-feature-card p{color:var(--text-muted);margin:0;font-size:14px;line-height:1.6}.lp-pricing-card{border:1px solid var(--border);background:var(--surface);border-radius:28px;grid-template-columns:1fr 1fr;align-items:start;gap:48px;margin-top:40px;padding:40px;display:grid}.lp-price{align-items:baseline;gap:4px;margin-bottom:16px;display:flex}.lp-price-amount{letter-spacing:-.04em;color:var(--text);font-size:56px;font-weight:800}.lp-price-period{color:var(--text-muted);font-size:20px;font-weight:500}.lp-pricing-left p{color:var(--text-2);margin:0 0 24px;font-size:15px;line-height:1.7}.lp-pricing-note{color:var(--text-dim)!important;margin:12px 0 0!important;font-size:13px!important}.lp-pricing-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.lp-pricing-list li{color:var(--text-2);align-items:center;gap:10px;font-size:14px;display:flex}.lp-pricing-list li:before{content:"✓";color:#2f6b5f;background:#2f6b5f26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:inline-flex}.lp-pricing-custom{color:var(--text-muted);text-align:center;margin-top:24px;font-size:14px}.lp-pricing-custom a{color:#c46a2d;font-weight:700}.lp-bottom-cta{background:linear-gradient(135deg,#23282d 0%,#3b2d25 48%,#355664 100%);padding:80px 0}.lp-cta-inner{text-align:center}.lp-bottom-cta h2{letter-spacing:-.03em;color:#fff8f0;margin:0 0 12px;font-size:clamp(28px,4vw,42px);font-weight:800}.lp-bottom-cta p{color:#fff0e3c7;margin:0 0 32px;font-size:17px}.lp-footer{border-top:1px solid var(--border);background:var(--bg);padding:24px 28px}.lp-footer-inner{max-width:1100px;color:var(--text-dim);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;font-size:13px;display:flex}.lp-footer-links{gap:20px;display:flex}.lp-footer-links a{color:var(--text-dim);text-decoration:none;transition:color .15s}.lp-footer-links a:hover{color:var(--text-muted)}@media (width<=900px){.lp-hero{grid-template-columns:1fr;min-height:auto;padding:60px 24px 40px}.lp-hero-visual{display:none}.lp-features-grid{grid-template-columns:repeat(2,1fr)}.lp-pricing-card{grid-template-columns:1fr;gap:32px}}@media (width<=600px){.lp-root{margin:-16px}.lp-features-grid{grid-template-columns:1fr}.lp-hero-cta{flex-direction:column}.lp-btn-primary,.lp-btn-outline{text-align:center;width:100%}.lp-pricing-card{padding:24px}.lp-footer-inner{text-align:center;flex-direction:column;gap:8px}}:root{--font-body:"Avenir Next", "Trebuchet MS", "Segoe UI", sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;--primary:#c46a2d;--primary-dark:#8f491d;--primary-hover:#ae5d28;--primary-pale:#f8e6d4;--primary-ring:#c46a2d33;--accent:#2f6b5f;--accent-pale:#dfede8;--bg:#f6efe5;--bg-strong:#ecdfcd;--surface:#fffaf4eb;--surface-2:#f2e6d7;--surface-3:#e8d6c0;--border:#dbc8b1;--border-2:#bda182;--text:#1f2a31;--text-2:#47565f;--text-muted:#6e7b83;--text-dim:#98a0a5;--success:#236f56;--success-pale:#e2efe9;--warning:#b96d1e;--warning-pale:#fff1df;--danger:#c24b43;--danger-pale:#fde8e3;--radius:14px;--radius-lg:24px;--shadow-sm:0 8px 18px #47341f0f;--shadow:0 18px 40px #47341f1a;--shadow-lg:0 28px 64px #2b211424;--transition:.18s ease;--sidebar-width:268px;--sidebar-offset:292px}body.dark{--primary:#e59b5a;--primary-dark:#c17734;--primary-hover:#f0ad6d;--primary-pale:#e59b5a24;--primary-ring:#e59b5a2e;--accent:#7bb7a3;--accent-pale:#7bb7a31f;--bg:#15181b;--bg-strong:#0f1113;--surface:#1f2327eb;--surface-2:#23282d;--surface-3:#2b3137;--border:#3a4249;--border-2:#56616b;--text:#f6efe6;--text-2:#d8cec1;--text-muted:#b09f8e;--text-dim:#81786f;--success:#7fc7ac;--success-pale:#7fc7ac1f;--warning:#f0b36d;--warning-pale:#f0b36d1f;--danger:#f08a7d;--danger-pale:#f08a7d24;--shadow-sm:0 12px 24px #0000002e;--shadow:0 22px 46px #00000038;--shadow-lg:0 28px 64px #0000004d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-ring{0%{box-shadow:0 0 #c24b4357}70%{box-shadow:0 0 0 10px #c24b4300}to{box-shadow:0 0 #c24b4300}}@keyframes progressFill{0%{width:0%}}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(circle at top left, #c46a2d29, transparent 30%), radial-gradient(circle at 82% 12%, #2f6b5f1f, transparent 24%), linear-gradient(180deg, #fbf6ef 0%, var(--bg) 48%, var(--bg-strong) 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern", "liga", "ss01";background-attachment:fixed;margin:0;line-height:1.55}body.dark{background:radial-gradient(circle at top left, #e59b5a1f, transparent 26%), radial-gradient(circle at 85% 8%, #7bb7a31a, transparent 22%), linear-gradient(180deg, #1a1d20 0%, var(--bg) 42%, var(--bg-strong) 100%)}a{color:var(--primary-dark);transition:color var(--transition), opacity var(--transition);text-decoration:none}a:hover{color:var(--primary)}button{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fffdf9;letter-spacing:.02em;cursor:pointer;transition:transform var(--transition), box-shadow var(--transition), filter var(--transition);border:none;border-radius:999px;align-items:center;gap:8px;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:700;display:inline-flex;box-shadow:0 14px 24px #c46a2d33}button:hover:not(:disabled){filter:saturate(1.03);transform:translateY(-1px);box-shadow:0 18px 28px #c46a2d3d}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.56;cursor:not-allowed;box-shadow:none}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);background:#ffffff9e;margin-bottom:12px;padding:12px 14px;font-family:inherit;font-size:14px}body.dark input,body.dark select,body.dark textarea{background:#23282dd6}input::placeholder,textarea::placeholder{color:var(--text-dim)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring);outline:none}h1,h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 16px;line-height:1.05}h1{color:var(--text);font-size:clamp(2rem,1.5rem + 1.35vw,3.1rem)}h2{color:var(--text);font-size:clamp(1.35rem,1.1rem + .4vw,1.8rem)}h3{color:var(--text);letter-spacing:-.01em;margin:0 0 8px;font-size:15px;font-weight:700}label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.main-content{min-height:100vh;padding:clamp(18px,2vw,30px);position:relative}.main-content>*{animation:.38s both fadeInUp}.card{border-radius:var(--radius-lg);background:linear-gradient(180deg, #ffffff94 0%, var(--surface) 100%);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);border:1px solid #dbc8b1d6;padding:22px}.card:hover{border-color:var(--border-2);box-shadow:var(--shadow);transform:translateY(-2px)}.notif-icon{cursor:pointer;font-size:20px;position:relative}.badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:18px;padding:2px 6px;font-size:11px;font-weight:800;animation:2s infinite pulse-ring;position:absolute;top:-5px;right:-10px}.loading-container{min-height:220px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.text-muted{color:var(--text-muted)}.text-small{font-size:13px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.legal-page{max-width:820px;color:var(--text);margin:0 auto;padding:38px 22px 72px;line-height:1.78}.legal-page h1{margin-bottom:10px}.legal-page h2{border-bottom:1px solid var(--border);margin-top:28px;padding-bottom:10px}.legal-page p,.legal-page li{color:var(--text-2);font-size:14px}.legal-page ul{margin:8px 0;padding-left:20px}.legal-page strong{color:var(--text)}.legal-meta{color:var(--text-muted);margin-bottom:28px;font-size:13px}.legal-summary-box{background:linear-gradient(135deg,#dfede8e6 0%,#fffaf4e6 100%);border:1px solid #2f6b5f33;border-radius:18px;margin-bottom:30px;padding:18px 20px}.legal-summary-box p{color:var(--success);margin-bottom:8px;font-weight:800}.legal-summary-box ul{margin:0}.legal-summary-box li{color:var(--success)}.legal-accordion-row{border-bottom:1px solid var(--border)}.legal-accordion-btn{width:100%;box-shadow:none;text-align:left;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;font-size:15px;font-weight:800;display:flex}.legal-accordion-btn:hover{color:var(--primary);box-shadow:none;transform:none}.legal-accordion-icon{color:var(--text-muted);font-size:18px}.legal-accordion-body{color:var(--text-2);padding-bottom:20px;font-size:14px}.legal-footer-box{border:1px solid var(--border);color:var(--text-muted);background:#ffffff75;border-radius:18px;margin-top:38px;padding:20px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#90755673;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#907556ad}@media (width<=768px){.main-content{margin-left:0!important;padding:76px 16px 16px!important}}body.dark .stat-box,body.dark .section-card,body.dark .quick-actions,body.dark .recent-card,body.dark .lesson-item,body.dark .student-card,body.dark .lesson-panel,body.dark .lesson-header-card,body.dark .lesson-info-card,body.dark .report-page,body.dark .report-stat-box,body.dark .earnings-chart-card,body.dark .earnings-unpaid-card,body.dark .earnings-history-card,body.dark .earnings-stat,body.dark .wl-card,body.dark .wl-form,body.dark .calendar-grid-wrapper,body.dark .student-stat-card,body.dark .student-dashboard-panel,body.dark .tip-card,body.dark .resource-card,body.dark .notes-card,body.dark .important-note,body.dark .notif-card,body.dark .notification-card,body.dark .lesson-card-new,body.dark .profile-section,body.dark .car-section{background:var(--surface);border-color:var(--border)}body.dark .student-card-progress-track,body.dark .report-progress-bar-track,body.dark .report-skill-track,body.dark .earnings-bar-track,body.dark .student-progress-bar-track,body.dark .student-skill-track{background:var(--border)}body.dark .lesson-note-box,body.dark .student-message-preview,body.dark .student-empty-state,body.dark .student-empty-shell,body.dark .wl-card-left,body.dark .wl-card-notes,body.dark .earnings-lesson-row,body.dark .earnings-filter-tabs button,body.dark .tip-card,body.dark .resource-card,body.dark .notes-card,body.dark .important-note,body.dark .notif-card,body.dark .notification-card,body.dark .lesson-card-new{background:var(--surface-2);border-color:var(--border)}body.dark p{color:var(--text-2)}body.dark small{color:var(--text-muted)}body.dark button{box-shadow:none}.back-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;transition:border-color var(--transition), color var(--transition);border-radius:12px;align-items:center;gap:6px;margin-bottom:20px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex}.back-btn:hover{color:var(--primary-dark,#c46a2d);border-color:#c46a2d4d}
