:root{--primary:#5cc8bc;--primary-hover:#45b0a5;--accent:#5cc8bc;--accent-light:#f0faf8;--text:#171717;--text-secondary:#737373;--text-tertiary:#a3a3a3;--bg:#fff;--bg-secondary:#fafafa;--bg-hover:#f5f5f5;--border:#e5e5e5;--border-light:#f0f0f0;--error:#dc2626;--success:#16a34a;--warning:#f59e0b;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-lg:0 4px 12px #00000014, 0 1px 3px #0000000a;--transition:.15s ease}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.6}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;letter-spacing:-.01em;border:none;justify-content:center;align-items:center;gap:6px;padding:12px 24px;font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px #5cc8bc4d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;gap:6px;padding:9px 20px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn-secondary:hover{background:var(--bg-hover);border-color:#d4d4d4}.btn-completed{opacity:.7;color:var(--primary)!important;border-color:var(--primary)!important;cursor:default!important}.btn-completed:hover{background:var(--bg)!important;border-color:var(--primary)!important}.btn-text-accent{background:var(--bg);color:var(--accent);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;padding:12px 24px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.btn-text-accent:hover{background:var(--accent-light,#e0f7f4);border-color:var(--accent)}.btn-text-accent:disabled{opacity:.5;cursor:not-allowed}.btn-outline{color:var(--accent);border:1px dashed var(--accent);border-radius:var(--radius);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:12px 24px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn-outline:hover{background:var(--accent-light,#e0f7f4);border-style:solid}.btn-accent{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition);border:none;padding:10px 20px;font-size:14px;font-weight:500}.btn-accent:hover{opacity:.9}.btn-large{padding:14px 28px;font-size:16px}.logo-link{color:inherit;text-decoration:none}.logo-link:hover{opacity:.7}.form-field{margin-bottom:18px}.form-field label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-field input,.form-field textarea,.form-field select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:border-color var(--transition);background:var(--bg);color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:15px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5cc8bc1a}.form-field textarea{resize:vertical}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.error-text{color:var(--error);margin-bottom:6px;font-size:13px}.payment-toast{text-align:center;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:500;animation:5s ease-in-out forwards toast-fade}.payment-toast--success{color:var(--accent);background:#5cc8bc1f;border:1px solid #5cc8bc4d}.payment-toast--fail{color:var(--error);background:#ef444414;border:1px solid #ef444433}@keyframes toast-fade{0%,80%{opacity:1}to{opacity:0}}.auth-page{background:var(--bg-secondary);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-page-logo{z-index:10;position:fixed;top:20px;left:24px}.auth-page-logo a{color:var(--text);letter-spacing:-.03em;font-size:16px;font-weight:700;text-decoration:none}.auth-page-logo a:hover{color:var(--primary)}.session-logo{color:var(--text-secondary);letter-spacing:-.03em;margin-right:8px;font-size:13px;font-weight:700;text-decoration:none}.session-logo:hover{color:var(--primary)}.footer-highlight{color:var(--primary);font-weight:600}.auth-card{background:var(--bg);border:1px solid var(--border-light);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border-radius:16px;padding:40px}.auth-card h1{text-align:center;letter-spacing:-.02em;margin-bottom:24px;font-size:22px;font-weight:600}.auth-card .btn-primary{width:100%;margin-top:6px;padding:10px}.auth-link{text-align:center;color:var(--text-secondary);margin-top:14px;font-size:13px}.auth-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:24px;font-size:14px}.auth-links{text-align:center;color:var(--text-secondary);margin-top:16px;font-size:13px}.auth-links a{color:var(--primary);font-weight:600;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-link a{color:var(--text);text-underline-offset:2px;font-weight:500;text-decoration:underline}.signup-steps{justify-content:center;align-items:center;gap:4px;margin-bottom:24px;display:flex}.signup-step-item{align-items:center;gap:6px;display:flex}.signup-step-num{background:var(--bg-hover);width:26px;height:26px;color:var(--text-tertiary);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.signup-step-num--active{background:var(--primary);color:#fff}.signup-step-label{color:var(--text-tertiary);font-size:13px}.signup-step-label--active{color:var(--text);font-weight:500}.signup-step-dash{color:var(--text-tertiary);margin:0 4px}.signup-verified{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:18px;padding:10px 14px;font-size:14px;font-weight:600}.signup-verified-check{color:var(--primary);margin-left:6px;font-size:13px;font-weight:400}.signup-agree{align-items:center;gap:8px;margin-top:4px;margin-bottom:16px;display:flex}.signup-checkbox{border:2px solid var(--border);background:var(--bg);cursor:pointer;color:#0000;width:20px;height:20px;transition:all var(--transition);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.signup-checkbox--checked{background:var(--primary);border-color:var(--primary);color:#fff}.signup-agree-text{color:var(--text-secondary);font-size:13px}.signup-back{text-align:center;width:100%;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;margin-top:12px;font-size:13px;display:block}.signup-back:hover{color:var(--text)}.birth-inputs{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.birth-field{position:relative}.birth-field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);outline:none;padding:10px 28px 10px 12px;font-size:15px}.birth-field input:focus{border-color:var(--text-tertiary)}.birth-suffix{color:var(--text-tertiary);font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.verify-header{text-align:center;margin-bottom:18px}.verify-header h3{margin-bottom:4px;font-size:16px;font-weight:600}.verify-header p{color:var(--text-secondary);font-size:13px}.input-with-btn{align-items:stretch;gap:6px;display:flex}.input-with-btn input{flex:1 1 0;width:auto;min-width:0}.input-with-btn .btn-primary{white-space:nowrap;flex:none;padding:10px 14px}.otp-input{text-align:center;letter-spacing:.5em;font-weight:700;font-size:24px!important}.form-hint{color:var(--text-tertiary);margin-top:4px;font-size:12px}.form-hint-success{color:var(--primary);font-size:12px;font-weight:500}.loading-screen{min-height:100vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;font-size:14px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.landing-page{flex-direction:column;min-height:100vh;display:flex}.landing-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.landing-header h1{letter-spacing:-.02em;font-size:16px;font-weight:600}.landing-header nav{gap:6px;display:flex}.landing-hero{text-align:center;background:linear-gradient(180deg, var(--accent-light) 0%, var(--bg) 100%);flex-direction:column;justify-content:center;align-items:center;padding:120px 20px 100px;display:flex}.landing-tag{color:var(--primary);letter-spacing:-.01em;margin-bottom:14px;font-size:18px;font-weight:600}.landing-hero h2{letter-spacing:-.04em;color:var(--text);margin-bottom:18px;font-size:60px;font-weight:800;line-height:1.25}.landing-desc{color:var(--text-secondary);letter-spacing:-.01em;margin-bottom:36px;font-size:20px;line-height:1.7}.landing-hero-ctas{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}@media (width<=768px){.landing-hero{padding:80px 20px 60px}.landing-hero h2{font-size:32px}.landing-desc{margin-bottom:24px;font-size:16px}.landing-hero-ctas{flex-direction:column;align-items:center}}.landing-dual{flex-direction:column;align-items:center;padding:80px 20px;display:flex;position:relative;overflow:hidden}.dual-bg{background-position:50%;background-size:cover;width:50%;position:absolute;top:0;bottom:0}.dual-bg--left{left:0}.dual-bg--right{right:0}.dual-overlay{-webkit-backdrop-filter:blur(3px);background:#fff9;position:absolute;inset:0}.landing-dual h3{z-index:1;letter-spacing:-.03em;text-align:center;margin-bottom:40px;font-size:28px;font-weight:700;position:relative}.dual-cards{z-index:1;gap:20px;width:100%;max-width:840px;display:flex;position:relative}@media (width<=768px){.dual-cards{flex-direction:column}.dual-bg{width:100%;height:50%}.dual-bg--left{inset:0 0 auto}.dual-bg--right{inset:auto 0 0}}.dual-card{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);background:#ffffffb8;border:1px solid #fff9;flex:1;padding:28px;box-shadow:0 4px 24px #0000000f}.dual-card--accent{background:#ffffffb8;border-color:#fff9}.dual-card-label{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px;font-weight:700}.dual-card h4{letter-spacing:-.02em;margin-bottom:20px;font-size:18px;font-weight:700;line-height:1.4}.dual-steps{counter-reset:dual;flex-direction:column;gap:16px;margin:0 0 24px;padding:0;list-style:none;display:flex}.dual-steps li{counter-increment:dual;flex-direction:column;gap:2px;padding-left:32px;display:flex;position:relative}.dual-steps li:before{content:counter(dual);background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex;position:absolute;top:0;left:0}.dual-steps li strong{color:var(--text);font-size:14px;font-weight:600}.dual-steps li span{color:var(--text-secondary);font-size:13px}.landing-features{background:var(--bg-secondary);flex-direction:column;align-items:center;padding:80px 20px;display:flex}.landing-features h3{letter-spacing:-.03em;margin-bottom:40px;font-size:28px;font-weight:700}.features-grid{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:900px;display:grid}@media (width<=768px){.features-grid{grid-template-columns:1fr}}.feature-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius);padding:24px}.feature-icon{color:var(--primary);margin-bottom:12px;font-size:13px;font-weight:700}.feature-card h4{letter-spacing:-.02em;margin-bottom:6px;font-size:14px;font-weight:700}.feature-card p{color:var(--text-secondary);font-size:12.5px;line-height:1.6}.landing-pricing{background:var(--bg);flex-direction:column;align-items:center;padding:80px 20px;display:flex}.landing-pricing h3{letter-spacing:-.03em;margin-bottom:8px;font-size:28px;font-weight:700}.landing-pricing-sub{color:var(--text-secondary);margin-bottom:40px;font-size:16px}.pricing-cards{gap:20px;width:100%;max-width:700px;display:flex}@media (width<=768px){.pricing-cards{flex-direction:column}}.pricing-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);flex:1;padding:32px 28px}.pricing-card--featured{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.pricing-card-header{color:var(--primary);letter-spacing:.02em;margin-bottom:12px;font-size:14px;font-weight:700}.pricing-card-price{align-items:baseline;gap:4px;margin-bottom:24px;display:flex}.pricing-amount{color:var(--text);letter-spacing:-.03em;font-size:28px;font-weight:800}.pricing-unit{color:var(--text-secondary);font-size:14px}.pricing-note{color:var(--text-secondary);letter-spacing:-.01em;margin-top:6px;font-size:12px;font-weight:400;display:block}.pricing-list{flex-direction:column;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:flex}.pricing-list li{color:var(--text-secondary);padding-left:20px;font-size:14px;position:relative}.pricing-list li:before{content:"✓";color:var(--primary);font-size:13px;font-weight:700;position:absolute;left:0}.landing-compare{background:var(--bg);flex-direction:column;align-items:center;padding:64px 20px;display:flex}.landing-compare h3{letter-spacing:-.03em;margin-bottom:28px;font-size:28px;font-weight:700}.compare-table{width:100%;max-width:640px}.compare-row{border-bottom:1px solid var(--border-light);color:var(--text-secondary);grid-template-columns:1fr 1fr 1fr;gap:16px;padding:16px 0;font-size:15px;display:grid}.compare-header{color:var(--text);border-bottom:1px solid var(--border);padding-bottom:14px;font-size:13px;font-weight:600}.compare-highlight{color:var(--primary);font-weight:600}.landing-faq{background:var(--bg);flex-direction:column;align-items:center;padding:80px 20px;display:flex}.landing-faq h3{letter-spacing:-.03em;text-align:center;margin-bottom:40px;font-size:28px;font-weight:700}.faq-list{flex-direction:column;width:100%;max-width:680px;display:flex}.faq-item{border-bottom:1px solid var(--border)}.faq-item:first-child{border-top:1px solid var(--border)}.faq-question{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:16px;padding:18px 4px;font-size:15px;font-weight:600;transition:color .15s;display:flex}.faq-question:hover{color:var(--primary)}.faq-chevron{color:var(--text-secondary);flex-shrink:0;font-size:18px;font-weight:300}.faq-answer{color:var(--text-secondary);padding:0 4px 18px;font-size:14px;line-height:1.7}.landing-final{background:var(--bg-secondary);flex-direction:column;align-items:center;gap:20px;padding:72px 20px;display:flex}.landing-final h3{letter-spacing:-.02em;text-align:center;font-size:28px;font-weight:700;line-height:1.4}.landing-footer{text-align:center;color:var(--text-tertiary);border-top:1px solid var(--border-light);padding:16px 20px;font-size:12px;line-height:1.8}.landing-footer p{margin:0}.landing-footer a{color:var(--text-tertiary);text-decoration:none}.landing-footer a:hover{color:var(--text);text-decoration:underline}.footer-divider{color:var(--text-tertiary);margin:0 4px}.legal-page{background:var(--bg-secondary);min-height:100vh;padding:40px 20px}.legal-container{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:720px;margin:0 auto;padding:48px 40px}@media (width<=768px){.legal-container{padding:28px 20px}}.legal-container h1{letter-spacing:-.03em;margin-bottom:4px;font-size:24px;font-weight:700}.legal-date{color:var(--text-tertiary);margin-bottom:32px;font-size:13px}.legal-intro{color:var(--text-secondary);margin-bottom:32px;font-size:14px;line-height:1.7}.legal-section{margin-bottom:28px}.legal-section h2{letter-spacing:-.02em;margin-bottom:10px;font-size:16px;font-weight:700}.legal-section h3{margin:12px 0 6px;font-size:14px;font-weight:600}.legal-section p{color:var(--text-secondary);margin-bottom:8px;font-size:14px;line-height:1.7}.legal-section ol,.legal-section ul{color:var(--text-secondary);margin-bottom:8px;padding-left:20px;font-size:14px;line-height:1.7}.legal-section ol ol{margin-top:4px;list-style-type:lower-alpha}.legal-section li{margin-bottom:4px}.legal-section--info{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius);padding:20px}.legal-section--info ul{padding-left:0;list-style:none}.legal-table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.legal-table th,.legal-table td{border:1px solid var(--border);text-align:left;padding:10px 12px}.legal-table th{background:var(--bg-secondary);color:var(--text);font-weight:600}.legal-table td{color:var(--text-secondary)}.dashboard-page{background:var(--bg-secondary);flex-direction:column;min-height:100vh;display:flex}.dashboard-header{background:var(--bg);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.dashboard-header-left{align-items:center;gap:12px;display:flex}.dashboard-header h1{letter-spacing:-.02em;font-size:18px;font-weight:600}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=768px){.dashboard-header{flex-wrap:wrap;gap:8px;padding:12px 16px}.header-actions{gap:6px}.header-actions .btn-secondary{padding:6px 10px;font-size:12px}}.dashboard-greeting-banner{padding:28px 28px 0}.dashboard-greeting-text{color:var(--text);letter-spacing:-.03em;margin:0 0 4px;font-size:26px;font-weight:700}.dashboard-greeting-name{color:var(--primary)}.dashboard-greeting-date{color:var(--text-tertiary);margin:0;font-size:14px}@media (width<=768px){.dashboard-greeting-banner{padding:20px 16px 0}.dashboard-greeting-text{font-size:22px}}.dashboard-summary-cards{gap:16px;padding:20px 28px 0;display:flex;overflow-x:auto}.summary-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;flex:1;gap:8px;min-width:200px;padding:18px 20px;display:flex}.summary-card--accent{background:linear-gradient(135deg,#5cc8bc14 0%,#5cc8bc05 100%);border-color:#5cc8bc4d}.summary-card-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.summary-card-value{color:var(--text);letter-spacing:-.02em;font-size:18px;font-weight:700}.summary-card-sub{color:var(--text-secondary);font-size:13px}.summary-card-btn{margin-top:4px;padding:8px 16px;font-size:13px}.summary-progress-row{flex-direction:column;gap:4px;display:flex}.summary-progress-header{justify-content:space-between;align-items:center;display:flex}.summary-progress-name{color:var(--text);font-size:13px;font-weight:500}.summary-progress-count{color:var(--primary);font-size:12px;font-weight:600}.summary-progress-bar{background:var(--bg-hover);border-radius:3px;height:6px;overflow:hidden}.summary-progress-fill{background:linear-gradient(90deg, var(--primary), #7dd8cf);border-radius:3px;height:100%;transition:width .5s}.summary-stat-value{letter-spacing:-.02em;font-size:22px;font-weight:700}.summary-stat-label{color:var(--text-tertiary);margin-top:2px;font-size:11px}.profile-quick-fields{flex-direction:column;gap:0;display:flex}.profile-quick-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.profile-quick-row:last-child{border-bottom:none}.profile-quick-label{color:var(--text-tertiary);white-space:nowrap;min-width:52px;font-size:12px}.profile-quick-value{color:var(--text-secondary);text-align:right;font-size:13px}.profile-quick-input{color:var(--text);text-align:right;background:0 0;border:none;outline:none;width:100%;min-width:0;padding:2px 0;font-size:13px}.profile-quick-input:focus{color:var(--primary);border-bottom:1px solid var(--primary);margin-bottom:-1px}.phone-target-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;flex:1;padding:10px 12px;font-size:13px;font-weight:500;transition:all .15s}.phone-target-btn:hover{border-color:var(--primary)}.phone-target-btn--active{border-color:var(--primary);color:var(--primary);background:#5cc8bc1a;font-weight:600}@media (width<=768px){.dashboard-summary-cards{flex-wrap:wrap;gap:10px;padding:16px 16px 0}.summary-card{min-width:150px;padding:14px 16px}}.dashboard-main{flex:1;gap:32px;width:100%;padding:28px;display:flex}@media (width<=768px){.dashboard-main{flex-direction:column;gap:16px;padding:16px}}.dashboard-calendar{flex:1;min-width:0}@media (width<=768px){.dashboard-calendar{width:100%}}.dashboard-lessons{flex:1;min-width:0}.dashboard-role-sections{flex-direction:column;gap:12px;padding:0 28px 20px;display:flex}.role-accordion{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.role-accordion-bar{cursor:pointer;text-align:left;background:#5cc8bc14;border:none;align-items:center;gap:12px;width:100%;padding:16px 20px;transition:background .15s;display:flex}.role-accordion-bar:hover{background:#5cc8bc24}.role-accordion-bar--open{border-bottom:1px solid var(--border-light);background:#5cc8bc24}.role-accordion-title{color:var(--primary);white-space:nowrap;font-size:15px;font-weight:700}.role-accordion-summary{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.role-accordion-chevron{color:var(--text-secondary);flex-shrink:0;font-size:11px}.role-accordion-body{background:var(--bg);padding:0}.instr-sub-accordions{flex-direction:column;display:flex}.instr-quick-actions{border-bottom:1px solid var(--border-light);flex-wrap:wrap;gap:8px;padding:14px 20px;display:flex}.instr-quick-actions .btn-secondary,.instr-quick-actions .btn-text-accent,.instr-quick-actions .btn-primary{padding:6px 14px;font-size:13px}.instr-sub-accordion{border-bottom:1px solid var(--border-light)}.instr-sub-accordion:last-child{border-bottom:none}.instr-sub-bar{background:var(--bg);cursor:pointer;text-align:left;border:none;align-items:center;gap:10px;width:100%;padding:12px 20px;transition:background .15s;display:flex}.instr-sub-bar:hover,.instr-sub-bar--open{background:var(--bg-hover)}.instr-sub-title{color:var(--text);font-size:14px;font-weight:600}.instr-sub-summary{color:var(--text-tertiary);flex:1;font-size:12px}.instr-sub-body{padding:12px 20px 16px}.instr-weekly-list{flex-direction:column;gap:4px;display:flex}.instr-weekly-group{flex-direction:column;gap:2px;display:flex}.instr-weekly-date{color:var(--text-secondary);border-bottom:1px solid var(--border-light);margin-bottom:4px;padding:8px 0 4px;font-size:12px;font-weight:600}.instr-weekly-date--today{color:var(--primary)}.instr-weekly-item{background:var(--bg-hover);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 12px;display:flex}.instr-weekly-time{color:var(--text);min-width:42px;font-size:13px;font-weight:600}.instr-weekly-class{color:var(--primary);flex:1;font-size:13px;font-weight:500}.instr-weekly-record{color:var(--text-tertiary);font-size:11px}.instr-weekly-status{flex-shrink:0;font-size:11px;font-weight:600}@media (width<=768px){.instr-quick-actions{gap:6px;padding:10px 16px}.instr-sub-bar{padding:10px 16px}.instr-sub-body{padding:10px 16px 14px}}.student-section-inner{padding:20px}.student-credits-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.student-credit-row{background:var(--bg-hover);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.student-section-heading{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px;font-size:13px;font-weight:700}.student-credit-row--clickable{cursor:pointer;transition:background .15s}.student-credit-row--clickable:hover{background:var(--border-light)}.student-classroom-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.student-classroom-card-top{justify-content:space-between;align-items:center;display:flex}.student-credit-progress{flex-direction:column;gap:4px;display:flex}.student-credit-progress-label{color:var(--text-secondary);justify-content:space-between;font-size:12px;display:flex}.dashboard-instructor-section{border-top:1px solid var(--border);background:var(--bg);padding:28px}.dashboard-instructor-inner{gap:32px;max-width:100%;padding:20px;display:flex}.dashboard-instructor-left,.dashboard-instructor-right{flex:1;min-width:0}.dashboard-instructor-bottom{grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;display:grid}@media (width<=768px){.dashboard-instructor-bottom{grid-template-columns:1fr}.dashboard-instructor-inner{flex-direction:column;gap:16px}}.status-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px;display:grid}@media (width<=480px){.status-grid{grid-template-columns:1fr}}.status-grid-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;gap:4px;padding:16px;transition:border-color .15s;display:flex}.status-grid-card--clickable{cursor:pointer}.status-grid-card--clickable:hover{border-color:var(--accent);box-shadow:0 0 0 3px #5cc8bc14}.status-grid-card--warning{border-color:var(--warning);background:#fffbeb}.status-grid-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:500}.status-grid-value{color:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:700}.status-grid-sub{color:var(--text-tertiary);font-size:11px}.settings-section{margin-bottom:20px}.settings-section-title{color:var(--text);letter-spacing:-.01em;margin-bottom:12px;font-size:14px;font-weight:600}.settings-info-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.settings-info-label{color:var(--text-tertiary);white-space:nowrap;font-size:13px}.settings-info-value{color:var(--text);text-align:right;font-size:13px}.dashboard-slogan{text-align:center;background:radial-gradient(ellipse at 50% 0%, #5cc8bc1f 0%, transparent 70%), radial-gradient(ellipse at 20% 100%, #5cc8bc14 0%, transparent 50%), radial-gradient(ellipse at 80% 80%, #5cc8bc0f 0%, transparent 50%), var(--bg);border-top:1px solid var(--border-light);padding:80px 28px;position:relative;overflow:hidden}.dashboard-slogan-text{color:var(--text-tertiary);letter-spacing:-.03em;margin-bottom:20px;font-size:22px;font-weight:600;line-height:1.8}.dashboard-slogan-brand{color:var(--primary);letter-spacing:-.02em;font-size:16px;font-weight:400}@media (width<=768px){.dashboard-slogan{padding:52px 20px}.dashboard-slogan-text{font-size:17px}.dashboard-slogan-brand{font-size:14px}}.student-session-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);border:1px solid var(--border-light);margin-bottom:6px;padding:14px 16px}.student-session-card-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.student-session-card-meta{color:var(--text-tertiary);gap:12px;font-size:12px;display:flex}.student-session-card-actions{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.btn-badge{border:2px solid var(--bg);background:#e74c3c;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.settings-toggle-block{border-bottom:1px solid var(--border-light);padding:14px 0}.settings-toggle-block:last-child{border-bottom:none}.settings-empty{color:var(--text-tertiary);text-align:center;padding:20px 0;font-size:13px}.settings-list{flex-direction:column;gap:8px;display:flex}.settings-list-item{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.settings-list-name{color:var(--text);font-size:14px;font-weight:600}.settings-list-sub{color:var(--text-tertiary);font-size:12px}.credit-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.credit-card--inactive{opacity:.6}.credit-card-header{justify-content:space-between;align-items:center;display:flex}.credit-card-name{color:var(--text);font-size:14px;font-weight:600}.credit-card-badge{color:var(--accent);font-size:13px;font-weight:700}.credit-card-badge--inactive{color:var(--text-tertiary);font-weight:500}.credit-card-bar{background:var(--border-light);border-radius:3px;height:6px;overflow:hidden}.credit-card-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .3s}.credit-card-sub{color:var(--text-tertiary);font-size:11px}.lessons-date-label{color:var(--text);letter-spacing:-.01em;margin-bottom:12px;font-size:14px;font-weight:600}.lessons-loading,.lessons-empty{color:var(--text-tertiary);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg);padding:48px 0;font-size:13px}.lessons-list{flex-direction:column;gap:8px;display:flex}.calendar{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg);padding:24px}.calendar-header{align-items:center;gap:8px;margin-bottom:16px;display:flex}.cal-title{text-align:center;letter-spacing:-.01em;flex:1;font-size:18px;font-weight:600}.cal-nav-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);transition:all var(--transition);background:0 0;justify-content:center;align-items:center;font-size:12px;display:flex}.cal-nav-btn:hover{background:var(--bg-hover);color:var(--text)}.cal-today-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition);background:0 0;padding:3px 8px;font-size:12px}.cal-today-btn:hover{background:var(--bg-hover)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-day-header{text-align:center;color:var(--text-secondary);border-bottom:1px solid var(--border-light);margin-bottom:4px;padding:8px 0 12px;font-size:13px;font-weight:600}.cal-day-header:first-child{color:#d4736e}.cal-day-header:nth-child(7){color:#5cc8bc}.cal-cell{border-radius:var(--radius-sm);cursor:pointer;min-height:90px;transition:background var(--transition);background:0 0;border:none;flex-direction:column;align-items:center;gap:5px;padding:18px 4px;display:flex}.cal-cell:hover{background:var(--bg-hover)}.cal-cell--other{opacity:.2}.cal-cell:nth-child(7n+1) .cal-date-num{color:#d4736e}.cal-cell:nth-child(7n) .cal-date-num{color:#5cc8bc}.cal-cell--selected .cal-date-num,.cal-cell--selected:nth-child(7n+1) .cal-date-num,.cal-cell--selected:nth-child(7n) .cal-date-num{color:var(--primary)}.cal-cell--today .cal-date-num{font-weight:700;color:var(--accent)!important}.cal-cell--selected{background:var(--accent-light);border:2px solid var(--primary);border-radius:var(--radius)}.cal-cell--selected .cal-date-num{color:var(--primary);background:0 0;font-weight:700}.cal-cell--selected:hover{background:var(--accent-light)}.cal-date-num{color:var(--text);justify-content:center;align-items:center;font-size:16px;font-weight:500;line-height:1;display:flex}.cal-cell--selected .cal-date-num{color:#fff}.cal-dots{gap:3px;display:flex}.cal-dot{border-radius:50%;width:6px;height:6px}.cal-dot--instructor,.cal-dot--student{background:#fbbf24}.cal-cell--selected .cal-dot--instructor,.cal-cell--selected .cal-dot--student{background:#f59e0b}.session-bar{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);transition:box-shadow var(--transition);padding:16px 18px}.session-bar:hover{box-shadow:var(--shadow-sm)}.session-bar--cancelled{opacity:.5;border-left:3px solid var(--text-tertiary)}.session-bar--cancelled:hover{box-shadow:none}.cancelled-badge{color:var(--text-tertiary);background:#f0f0f0;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.session-btn--cancel{color:#e74c3c;border-color:#f5dada}.session-btn--cancel:hover{background:#fdeaea}.session-bar--pending{border-left:3px solid #e74c3c}.pending-badge{color:#e74c3c;white-space:nowrap;background:#fdeaea;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.session-bar-left{align-items:center;gap:10px;margin-bottom:12px;display:flex}.role-badge{color:#fff;letter-spacing:-.01em;border-radius:10px;padding:3px 10px;font-size:12px;font-weight:600}.role-badge--instructor{background:var(--primary)}.role-badge--student{background:var(--warning)}.pdf-badge{background:var(--accent-light);color:var(--accent);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.session-classroom-name{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:600}.session-time{color:var(--text-secondary);font-size:13px}.session-bar-right{flex-wrap:wrap;gap:4px;display:flex}.session-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);cursor:pointer;color:var(--text);transition:all var(--transition);padding:7px 14px;font-size:13px;font-weight:500}.session-btn:hover{background:var(--bg-hover)}.session-btn--chat{background:var(--bg);color:var(--text);border-color:var(--border)}.session-btn--chat:hover{background:var(--bg-hover)}.session-btn--enter{background:var(--primary);color:#fff;border-color:var(--primary);margin-left:auto}.session-btn--enter:hover{background:var(--primary-hover)}.session-btn--record{background:var(--bg);color:var(--success);border-color:var(--success)}.session-btn--record:hover{background:#f0fdf4}.session-btn--assignment{background:var(--bg);color:var(--accent);border-color:var(--accent)}.session-btn--assignment:hover{background:var(--accent-light)}.session-btn--board{background:var(--bg);color:var(--text-secondary);border-color:var(--border)}.session-btn--board:hover{background:var(--bg-hover)}.session-btn--upload{color:var(--text-secondary)}.session-record{border-top:1px solid var(--border-light);margin-top:8px;padding-top:8px}.session-record-header{align-items:center;gap:8px;font-size:13px;display:flex}.session-record-time{color:var(--text-tertiary);font-size:12px}.session-record-notes{color:var(--text-secondary);margin-top:3px;font-size:13px;line-height:1.5}.session-record--disputable{border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:8px;padding:12px}.session-record-dispute-hover{align-items:center;gap:10px;margin-top:8px;display:none}.session-record--disputable:hover .session-record-dispute-hover{display:flex}.session-record-dispute-hover .btn-sm{white-space:nowrap;padding:4px 10px;font-size:12px}.record-confirmed-badge{background:var(--accent-light);color:var(--accent);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.record-confirm-actions{gap:8px;margin-top:10px;display:flex}.record-confirm-actions .btn-primary,.record-confirm-actions .btn-secondary{padding:8px 16px;font-size:13px}.btn-danger{background:#e74c3c!important}.btn-danger:hover{background:#c0392b!important}.record-dispute-form{margin-top:10px}.record-dispute-form textarea{border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;outline:none;width:100%;margin-bottom:8px;padding:10px;font-family:inherit;font-size:13px}.record-dispute-form textarea:focus{border-color:#e74c3c}.proposal-list{flex-direction:column;gap:12px;display:flex}.proposal-card{border:1px solid var(--border-light);border-radius:var(--radius);padding:16px}.proposal-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.proposal-card-meta{color:var(--text-secondary);font-size:14px}.proposal-per-session{color:var(--text-tertiary);margin-left:4px;font-size:12px}.proposal-schedule-list{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.proposal-schedule-item{background:var(--accent-light);color:var(--accent);border-radius:10px;padding:3px 10px;font-size:12px;font-weight:500}.proposal-card-actions{gap:8px;display:flex}.proposal-card-actions .btn-primary,.proposal-card-actions .btn-secondary{flex:1;font-size:13px}.instructor-ref-prices{border-top:1px solid var(--border-light);margin-top:10px;padding-top:10px}.ref-price-row{color:var(--text-secondary);gap:12px;margin-top:4px;font-size:13px;display:flex}.proposal-status-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.proposal-status--pending{color:#6d4c00;background:#fff8e1}.proposal-status--accepted{color:#1b5e20;background:#e8f5e9}.proposal-status--expired{color:var(--text-tertiary);background:#f0f0f0}.dispute-status{border-radius:var(--radius-sm);margin-top:10px;padding:10px;font-size:13px}.dispute-status--pending{background:#fff8e1;border:1px solid #ffe082}.dispute-status--accepted{background:#e8f5e9;border:1px solid #a5d6a7}.dispute-status--escalated{background:#fce4ec;border:1px solid #ef9a9a}.dispute-reason{margin-bottom:8px;line-height:1.5}.dispute-badge{border-radius:10px;padding:3px 10px;font-size:12px;font-weight:600}.dispute-badge--pending{color:#6d4c00;background:#ffe082}.dispute-badge--accepted{color:#1b5e20;background:#a5d6a7}.dispute-badge--escalated{color:#b71c1c;background:#ef9a9a}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000004d;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.welcome-modal{background:var(--bg);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:460px;padding:36px;box-shadow:0 8px 32px #0000001f}.welcome-modal h2{margin-bottom:8px;font-size:24px;font-weight:700}.welcome-greeting{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.welcome-notices{text-align:left;flex-direction:column;gap:14px;display:flex}.welcome-notice{background:var(--bg-hover);border-radius:var(--radius);color:var(--text);align-items:flex-start;gap:12px;padding:14px;font-size:13px;line-height:1.6;display:flex}.welcome-notice-icon{flex-shrink:0;margin-top:2px;font-size:20px}.welcome-notice p{margin:0}.welcome-notice strong{color:var(--primary)}.welcome-warn{color:#e74c3c!important}.welcome-report{color:var(--text-secondary);text-align:center;margin-top:20px;font-size:12px}.modal-content{background:var(--bg);border-radius:var(--radius-lg);width:100%;max-width:460px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);padding:32px;overflow-y:auto}.modal-content--wide{max-width:540px}@media (width<=768px){.modal-content{max-width:calc(100vw - 32px);padding:20px}.modal-content--wide{max-width:calc(100vw - 32px)}}.modal-card{background:var(--bg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);border-radius:16px;padding:32px}@media (width<=768px){.modal-card{max-width:calc(100vw - 32px);padding:20px}}.modal-card h2{letter-spacing:-.02em;margin-bottom:8px;font-size:18px;font-weight:700}.modal-subtitle{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.5}.trial-success{text-align:center;padding:12px 0}.trial-success-title{color:var(--accent);margin-bottom:8px;font-size:18px;font-weight:700}.trial-success-desc{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.6}.modal-content h2{letter-spacing:-.02em;margin-bottom:18px;font-size:18px;font-weight:600}.modal-content select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);outline:none;padding:8px 10px;font-size:13px}.modal-content select:focus{border-color:var(--text-tertiary)}.modal-actions{justify-content:flex-end;gap:6px;margin-top:16px;display:flex}.mini-calendar{margin:12px 0}.mini-calendar .calendar-grid{gap:1px}.mini-calendar .cal-cell{min-height:30px;padding:3px 2px}.selected-dates-list{margin-top:14px}.selected-dates-list h4{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:600}.selected-date-row{border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:5px 0;display:flex}.selected-date-label{min-width:75px;font-size:13px;font-weight:500}.day-toggle-row{gap:6px;display:flex}.day-toggle{border:1px solid var(--border);background:var(--bg);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:50%;font-size:13px;font-weight:500;transition:all .15s}.day-toggle:hover{border-color:var(--accent);color:var(--accent)}.day-toggle--active{background:var(--accent);border-color:var(--accent);color:#fff}.day-schedule-list{flex-direction:column;gap:8px;display:flex}.day-schedule-row{align-items:center;gap:10px;display:flex}.day-schedule-label{text-align:center;width:24px;color:var(--text);font-size:14px;font-weight:600}.toggle-label-row{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;margin-top:8px;font-size:14px;line-height:1;display:inline-flex}.toggle-label-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;vertical-align:middle;flex-shrink:0;margin:0}.toggle-label-row span{vertical-align:middle;line-height:1}.toggle-switch{appearance:none;background:var(--border);cursor:pointer;border-radius:11px;flex-shrink:0;width:40px;height:22px;margin:0;transition:background .2s;position:relative}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle-switch:checked{background:var(--accent)}.toggle-switch:checked:after{transform:translate(18px)}.datetime-select-row{gap:8px;display:flex}.datetime-select-row select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--bg);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;outline:none;flex:1;padding:10px 32px 10px 12px;font-family:inherit;font-size:14px}.datetime-select-row select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5cc8bc1a}.datetime-select-row--compact select{background-position:right 8px center;min-width:100px;padding:8px 28px 8px 10px;font-size:13px}.remove-date-btn{color:var(--text-tertiary);cursor:pointer;transition:color var(--transition);background:0 0;border:none;padding:0 3px;font-size:16px;line-height:1}.remove-date-btn:hover{color:var(--error)}.session-page{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.session-header{border-bottom:1px solid var(--border-light);z-index:10;background:var(--bg);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:4px;padding:8px 16px;display:flex;position:relative}.session-header-left{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.session-header-right{flex-shrink:0;align-items:center;gap:6px;display:flex}@media (width<=768px){.session-header{padding:6px 8px}.session-header-left{gap:4px}.session-classroom{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:12px;overflow:hidden}.session-header-right .btn-secondary{padding:4px 8px;font-size:11px}.studio-participant-count{font-size:11px}}.session-classroom{letter-spacing:-.01em;font-size:14px;font-weight:600}.voice-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);cursor:pointer;color:var(--text);transition:all var(--transition);padding:5px 12px;font-size:12px;font-weight:500}.voice-btn:hover{background:var(--bg-hover)}.voice-btn--connected{background:var(--success);color:#fff;border-color:var(--success)}.voice-btn--connected:hover{opacity:.9}.voice-btn--connecting{background:var(--warning);color:#fff;border-color:var(--warning)}.voice-btn--mute{background:var(--bg);color:var(--text)}.toolbar{border-bottom:1px solid var(--border-light);background:var(--bg);z-index:10;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:10px 20px;display:flex;position:relative}.toolbar-group{align-items:center;gap:3px;display:flex}.toolbar-divider{background:var(--border-light);width:1px;height:20px;margin:0 4px}.toolbar-btn{background:var(--bg);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition);border:1px solid #0000;padding:7px 14px;font-size:13px;font-weight:500}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text)}.toolbar-btn--active{background:var(--primary);color:#fff;border-color:var(--primary)}.toolbar-btn--active:hover{background:var(--primary-hover)}.toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.color-btn{cursor:pointer;width:24px;height:24px;transition:all var(--transition);border:2px solid #0000;border-radius:50%}.color-btn--active{border-color:var(--text);box-shadow:0 0 0 1.5px var(--bg)}.width-btn{border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;width:28px;height:28px;transition:all var(--transition);border:1px solid #0000;justify-content:center;align-items:center;display:flex}.width-btn:hover{background:var(--bg-hover)}.width-btn--active{border-color:var(--primary);background:var(--primary)}.width-btn--active .width-dot{background:#fff}.width-dot{background:var(--text-secondary);border-radius:50%}.page-indicator{text-align:center;min-width:50px;color:var(--text-secondary);font-size:12px;font-weight:500}.session-canvas-area{background:#f5f5f5;flex:1;justify-content:center;align-items:center;padding:16px;display:flex;overflow:auto}.canvas-stack{flex-shrink:0;position:relative}.pdf-canvas{width:100%;height:100%;position:absolute;top:0;left:0}.session-no-pdf{color:var(--text-tertiary);cursor:pointer;z-index:5;border-radius:var(--radius);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.session-no-pdf p{font-size:14px}.assignment-empty{color:var(--text-tertiary);text-align:center;padding:24px 0;font-size:13px}.assignment-list{flex-direction:column;gap:8px;display:flex}.assignment-item{border:1px solid var(--border-light);border-radius:var(--radius);padding:12px}.assignment-header{justify-content:space-between;align-items:center;margin-bottom:4px;font-size:14px;display:flex}.assignment-meta{align-items:center;gap:6px;display:flex}.assignment-due{color:var(--text-tertiary);font-size:11px}.assignment-delete-btn{color:var(--text-tertiary);cursor:pointer;transition:color var(--transition);background:0 0;border:none;font-size:11px}.assignment-delete-btn:hover{color:var(--error)}.assignment-desc{color:var(--text-secondary);margin-bottom:6px;font-size:13px;line-height:1.5}.draft-notice{background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-secondary);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.draft-discard-btn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;font-size:12px;text-decoration:underline}.draft-discard-btn:hover{color:var(--danger)}.assignment-form{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-secondary);margin-bottom:14px;padding:14px}.assignment-student-area{margin-top:6px}.assignment-type-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);gap:0;width:fit-content;display:flex;overflow:hidden}.type-toggle-btn{background:var(--bg);cursor:pointer;color:var(--text-secondary);border:none;padding:6px 16px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.type-toggle-btn:not(:last-child){border-right:1px solid var(--border)}.type-toggle-btn--active{background:var(--primary);color:#fff}.assignment-type-badge{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);border-radius:3px;margin-right:6px;padding:1px 6px;font-size:11px;font-weight:600}.answer-key-grid{flex-direction:column;gap:6px;max-height:400px;display:flex;overflow-y:auto}.answer-key-row{align-items:center;gap:8px;display:flex}.answer-key-num{text-align:right;width:24px;color:var(--text-secondary);flex-shrink:0;font-size:13px;font-weight:600}.answer-key-choices{gap:4px;display:flex}.answer-key-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;transition:all .12s;display:flex}.answer-key-btn:hover{border-color:var(--primary)}.answer-key-btn--selected{background:var(--primary);border-color:var(--primary);color:#fff}.answer-key-btn--correct{color:#fff;background:#10b981;border-color:#10b981}.answer-key-btn--wrong{color:#fff;background:#ef4444;border-color:#ef4444}.mc-result-score{border-bottom:1px solid var(--border);align-items:baseline;gap:6px;margin-bottom:12px;padding:16px 0;display:flex}.mc-result-number{color:var(--primary);font-size:36px;font-weight:700}.mc-result-total{color:var(--text-secondary);font-size:20px}.mc-result-pct{color:var(--text-tertiary);font-size:14px}.mc-correct{border-radius:var(--radius-sm);background:#f0fdf4;padding:2px 4px}.mc-wrong{border-radius:var(--radius-sm);background:#fef2f2;padding:2px 4px}.mc-correct-mark{color:#10b981;font-size:14px;font-weight:700}.mc-wrong-mark{color:#ef4444;font-size:14px;font-weight:700}.submission-score{color:var(--primary);font-size:13px;font-weight:700}.mc-answer-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.answer-key-banner{color:#b91c1c;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin:12px 16px 0;padding:10px 14px;font-size:13px;font-weight:500}.stroke-grade-list{flex-direction:column;gap:4px;margin-top:16px;display:flex}.stroke-grade-row{border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:13px;display:flex}.stroke-grade-row--correct{color:#166534;background:#f0fdf4}.stroke-grade-row--wrong{color:#b91c1c;background:#fef2f2}.stroke-grade-row--unanswered{background:var(--bg-secondary);color:var(--text-tertiary)}.stroke-grade-num{min-width:36px;font-weight:600}.stroke-grade-label{flex:1}.stroke-grade-mark{font-size:16px;font-weight:700}.submission-info{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.submission-status{border-radius:3px;padding:2px 7px;font-size:11px;font-weight:600}.submission-status--submitted{color:#92400e;background:#fef3c7}.submission-status--reviewed{color:#065f46;background:#d1fae5}.submission-feedback{color:var(--text-secondary);margin-top:3px;font-size:12px}.submit-form{margin-top:6px}.submit-form textarea,.feedback-form textarea{border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;outline:none;width:100%;padding:8px;font-family:inherit;font-size:13px}.submit-form textarea:focus,.feedback-form textarea:focus{border-color:var(--text-tertiary)}.assignment-submissions{border-top:1px solid var(--border-light);margin-top:6px;padding-top:6px}.submissions-count{color:var(--text-tertiary);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.submission-item{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0;display:flex}.submission-date{color:var(--text-tertiary);font-size:11px}.feedback-form{width:100%;margin-top:4px}.back-link{color:var(--text-secondary);margin-bottom:16px;font-size:13px;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text)}.instructor-profile-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);margin-bottom:20px;padding:20px}.instructor-profile-header{align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.instructor-avatar{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:flex}.instructor-profile-header h3{margin-bottom:4px;font-size:16px;font-weight:600}.instructor-bio{color:var(--text-secondary);font-size:13px;line-height:1.5}.instructor-price{color:var(--text);border-top:1px solid var(--border-light);padding-top:14px;font-size:14px}.credit-packages{gap:8px;display:flex}.credit-package{border:1px solid var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--bg);transition:all var(--transition);flex-direction:column;flex:1;gap:4px;padding:14px 10px;display:flex}.credit-package:hover{border-color:var(--primary)}.credit-package--selected{border-color:var(--primary);background:var(--accent-light)}.credit-package-count{color:var(--text);font-size:18px;font-weight:700}.credit-package-price{color:var(--text-secondary);font-size:13px;font-weight:500}.credit-package-validity{color:var(--text-tertiary);font-size:11px}.payment-summary{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-secondary);margin-bottom:16px;padding:14px}.payment-summary-row{justify-content:space-between;font-size:14px;display:flex}.instructor-registered-notice{text-align:center;background:var(--accent-light);border-radius:var(--radius);margin-bottom:20px;padding:24px;font-size:14px;line-height:1.8}.input-disabled{background:var(--bg-secondary);color:var(--text-secondary);cursor:not-allowed}.accordion{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);margin-bottom:12px;transition:border-color .2s,box-shadow .2s;overflow:hidden}.accordion--open{border-color:var(--accent);box-shadow:0 0 0 3px #5cc8bc14}.accordion-header{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px 20px;display:flex}.accordion-header:hover{background:var(--bg-secondary)}.accordion-title-row{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.accordion-title{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:600}.accordion-summary{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.accordion--open .accordion-title{color:var(--accent)}.accordion-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform .25s}.accordion-chevron--open{color:var(--accent);transform:rotate(180deg)}.accordion-body{max-height:0;padding:0 20px;transition:max-height .3s,padding .3s;overflow:hidden}.accordion--open .accordion-body{max-height:1200px;padding:0 20px 20px}.accordion-body textarea,.accordion-body input{width:100%;font-family:inherit;font-size:15px}.request-submitted{text-align:center;padding:20px 0}.request-submitted-title{color:var(--accent);margin-bottom:8px;font-size:16px;font-weight:600}.request-submitted-desc{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.6}.subject-tag{background:var(--accent-light);color:var(--accent);border-radius:10px;margin-top:6px;margin-right:4px;padding:2px 8px;font-size:11px;display:inline-block}.instructor-subjects-tags{margin-top:4px}.subject-grid{flex-wrap:wrap;gap:8px;display:flex}.subject-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s}.subject-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.subject-chip--active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px #5cc8bc40}.subject-chip--active:hover{background:var(--primary-hover);color:#fff}.price-grid{flex-direction:column;gap:10px;display:flex}.price-row{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-light);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.price-row-top{justify-content:space-between;align-items:center;display:flex}.price-label{color:var(--accent);font-size:15px;font-weight:700}.price-per{color:var(--accent);white-space:nowrap;font-size:12px;font-weight:500}.price-input-wrap{align-items:center;gap:8px;display:flex}.price-input-wrap input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex:1;padding:12px 14px;font-size:16px}.price-input-wrap input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5cc8bc1a}.price-suffix{color:var(--text-secondary);white-space:nowrap;font-size:14px;font-weight:500}.instructor-price-notice{text-align:center;background:var(--accent-light);border-radius:var(--radius-lg);color:var(--text-secondary);border:1px solid #5cc8bc26;margin-bottom:16px;padding:16px;font-size:13px;line-height:1.7}.dashboard-status{flex-wrap:wrap;gap:12px;padding:0 28px;display:flex}@media (width<=768px){.dashboard-status{padding:0 16px}}.status-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-secondary);align-items:center;gap:8px;padding:14px 18px;font-size:13px;display:flex}.status-card strong{color:var(--text);font-weight:600}.status-card--warning{border-color:var(--warning);background:#fffbeb}.chat-modal{background:var(--bg);width:100%;max-width:440px;height:70vh;max-height:600px;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.chat-header h3{font-size:15px;font-weight:600}.chat-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.chat-close:hover{color:var(--text)}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:16px 20px;display:flex;overflow-y:auto}.chat-loading,.chat-empty{text-align:center;color:var(--text-tertiary);padding:40px 0;font-size:13px}.chat-bubble{flex-direction:column;gap:2px;max-width:75%;display:flex}.chat-bubble--mine{align-self:flex-end}.chat-bubble--other{align-self:flex-start}.chat-bubble-text{word-break:break-word;border-radius:16px;padding:10px 14px;font-size:14px;line-height:1.5}.chat-bubble--mine .chat-bubble-text{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-bubble--other .chat-bubble-text{background:var(--bg-secondary);color:var(--text);border-bottom-left-radius:4px}.chat-mention{color:var(--primary);cursor:pointer;text-underline-offset:2px;font-weight:600;-webkit-text-decoration:underline #5cc8bc66;text-decoration:underline #5cc8bc66}.chat-mention:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary)}.chat-bubble-time{color:var(--text-tertiary);font-size:10px}.chat-bubble--mine .chat-bubble-time{text-align:right}.chat-input-bar{border-top:1px solid var(--border-light);background:var(--bg-secondary);gap:8px;padding:12px 16px;display:flex}.chat-input-bar input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;flex:1;padding:10px 14px;font-size:14px}.chat-input-bar input:focus{border-color:var(--accent)}.chat-input-bar .btn-primary{white-space:nowrap;padding:10px 18px}.chat-bell{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;align-items:center;padding:6px;transition:color .15s;display:flex;position:relative}.chat-bell:hover{color:var(--accent)}.chat-bell-badge{color:#fff;background:#e53e3e;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:0;right:-4px}.chat-dropdown{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);width:340px;max-height:420px;box-shadow:var(--shadow-lg);z-index:200;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.chat-dropdown-header{border-bottom:1px solid var(--border-light);color:var(--text);justify-content:space-between;align-items:center;padding:14px 16px;font-size:15px;font-weight:700;display:flex}.chat-dropdown-add{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:all .15s;display:flex}.chat-dropdown-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.chat-new-row{border-bottom:1px solid var(--border-light);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:flex}.chat-new-row input{border:1px solid var(--border);border-radius:var(--radius);outline:none;flex:1;min-width:0;padding:8px 12px;font-size:13px}.chat-new-row input:focus{border-color:var(--accent)}.chat-new-row .btn-primary{padding:8px 14px;font-size:13px}.chat-new-error{width:100%;color:var(--error);margin:0;font-size:12px}.chat-dropdown-list{max-height:360px;overflow-y:auto}.chat-dropdown-empty{text-align:center;color:var(--text-tertiary);padding:32px 16px;font-size:13px}.chat-dropdown-item{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:12px 16px;transition:background .1s;display:flex}.chat-dropdown-item:hover{background:var(--bg-secondary)}.chat-dropdown-item--official{background:var(--accent-light);cursor:default}.chat-dropdown-avatar{background:var(--bg-secondary);width:40px;height:40px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.chat-dropdown-avatar--official{background:var(--accent);color:#fff}.chat-dropdown-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chat-dropdown-name{color:var(--text);font-size:14px;font-weight:600}.chat-dropdown-preview{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.chat-dropdown-time{color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;font-size:11px}.chat-section{margin-top:24px}.chat-list{flex-direction:column;gap:4px;display:flex}.chat-list-empty{color:var(--text-tertiary);text-align:center;padding:20px 0;font-size:13px}.chat-list-item{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;text-align:left;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:all .15s;display:flex}.chat-list-item:hover{border-color:var(--accent);background:var(--accent-light)}.chat-list-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.chat-list-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chat-list-name{color:var(--text);font-size:14px;font-weight:600}.chat-list-preview{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.chat-list-time{color:var(--text-tertiary);white-space:nowrap;font-size:11px}.notification-bell{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;transition:all var(--transition);background:0 0;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.notification-bell:hover{background:var(--bg-hover)}.notification-badge{background:var(--error);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notification-dropdown{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:340px;max-height:400px;box-shadow:var(--shadow-lg);z-index:100;position:absolute;top:44px;right:0;overflow-y:auto}.notification-dropdown-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.notification-item{border-bottom:1px solid var(--border-light);cursor:pointer;transition:background var(--transition);padding:12px 16px}.notification-item:hover{background:var(--bg-hover)}.notification-item--unread{background:var(--accent-light)}.notification-item-title{margin-bottom:2px;font-size:13px;font-weight:500}.notification-item-body{color:var(--text-secondary);font-size:12px}.notification-item-time{color:var(--text-tertiary);margin-top:4px;font-size:11px}.notification-empty{text-align:center;color:var(--text-tertiary);padding:32px;font-size:13px}.request-actions{gap:6px;margin-top:8px;display:flex}.btn-accept{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 14px;font-size:12px;font-weight:500}.btn-accept:hover{background:var(--primary-hover)}.btn-reject{background:var(--bg);color:var(--error);border:1px solid var(--error);border-radius:var(--radius-sm);cursor:pointer;padding:5px 14px;font-size:12px;font-weight:500}.btn-reject:hover{background:#fef2f2}.bank-info-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);margin-top:12px;padding:16px}.bank-info-card h3{margin-bottom:12px;font-size:14px;font-weight:600}.bank-info-row{justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.bank-info-row+.bank-info-row{border-top:1px solid var(--border-light)}.bank-info-label{color:var(--text-secondary)}.bank-info-value{color:var(--text);letter-spacing:.02em;font-weight:600}.transfer-status{text-align:center;padding:16px 0}.transfer-done{color:var(--success);margin-bottom:4px;font-size:14px;font-weight:600}.transfer-info{margin-top:8px}.proposal-sections{flex-direction:column;gap:20px;margin-top:16px;display:flex}.proposal-section-title{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.proposal-section-title--confirm{color:var(--accent)}.proposal-section-title--done{color:var(--text-tertiary)}.proposal-section-count{background:var(--accent);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.4}.proposal-section .proposal-card{margin-bottom:8px}.proposal-section-toggle{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-secondary);width:100%;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:4px;padding:12px 14px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.proposal-section-toggle:hover{background:var(--bg-tertiary,#f0f0f0)}.proposal-section-toggle--open{border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.proposal-section-arrow{color:var(--text-tertiary);font-size:12px}.proposal-send-form{border:1px solid var(--border-light);border-radius:0 0 var(--radius) var(--radius);background:var(--bg);border-top:none;margin-bottom:4px;padding:16px}.direct-grant-toggle{border-radius:var(--radius);background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:8px;padding:10px 12px;font-size:13px;transition:background .15s;display:flex}.direct-grant-toggle:hover{background:var(--border-light)}.direct-grant-toggle input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}.proposal-status{white-space:nowrap;border-radius:10px;padding:3px 8px;font-size:11px;font-weight:600}.proposal-status--confirm{background:var(--accent-light,#e0f7f4);color:var(--accent)}.proposal-status--new{color:#1a73e8;background:#e8f4fd}.proposal-status--waiting{color:#f59e0b;background:#fff8e1}.proposal-status--pending{background:var(--bg-secondary);color:var(--text-secondary)}.proposal-status--completed{color:var(--success);background:#e8f5e9}.proposal-status--declined{color:#ef4444;background:#fef2f2}.proposal-status--expired{background:var(--bg-secondary);color:var(--text-tertiary)}.proposal-card-classroom{color:var(--text-tertiary);margin-left:8px;font-size:12px;font-weight:400}.proposal-card-date{color:var(--text-tertiary);margin-left:8px;font-size:11px}.proposal-list-loading{text-align:center;color:var(--text-secondary);padding:24px 0}.student-tags{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.student-tag{background:var(--accent-light);border:1px solid var(--primary);color:var(--text);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:4px 8px;font-size:13px;font-weight:500;display:inline-flex}.student-tag-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.student-tag-remove:hover{color:var(--error)}.student-input-row{gap:8px;display:flex}.student-input-row input{flex:1}.board-container{flex-direction:column;gap:16px;display:flex}.board-write-btn{border:2px dashed var(--border);border-radius:var(--radius-lg);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;padding:14px;font-size:14px;font-weight:500;transition:all .15s}.board-write-btn:hover{border-color:var(--primary);color:var(--primary)}.board-write-form{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:20px;display:flex}.board-type-row{gap:6px;display:flex}.board-type-btn{border:1px solid var(--border);background:var(--bg);cursor:pointer;color:var(--text-secondary);border-radius:16px;padding:5px 14px;font-size:12px;transition:all .15s}.board-type-btn--active{background:var(--bg-secondary);font-weight:600}.board-input{border:1px solid var(--border-light);border-radius:var(--radius);outline:none;width:100%;padding:10px 14px;font-size:14px;transition:border-color .15s}.board-input:focus{border-color:var(--primary)}.board-textarea{border:1px solid var(--border-light);border-radius:var(--radius);resize:vertical;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:13px;line-height:1.6;transition:border-color .15s}.board-textarea:focus{border-color:var(--primary)}.board-write-actions{justify-content:flex-end;gap:8px;display:flex}.board-empty{text-align:center;color:var(--text-tertiary);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:48px 20px}.board-empty p{margin:0;font-size:14px}.board-post-list{flex-direction:column;gap:8px;display:flex}.board-post{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);transition:border-color .15s,box-shadow .15s;overflow:hidden}.board-post--expanded{border-color:var(--primary);box-shadow:0 0 0 3px #5cc8bc14}.board-post-header{background:var(--bg);cursor:pointer;text-align:left;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 18px;transition:background .15s;display:flex}.board-post-header:hover{background:var(--bg-hover)}.board-post-header-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.board-type-badge{flex-shrink:0;font-size:11px;font-weight:600}.board-pin-badge{color:#fff;background:var(--primary);border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:600}.board-post-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.board-post-meta{color:var(--text-tertiary);flex-shrink:0;align-items:center;gap:10px;font-size:12px;display:flex}.board-post-author{font-weight:500}.board-post-date{white-space:nowrap}.board-post-body{border-top:1px solid var(--border-light);padding:16px 18px}.board-post-content{color:var(--text);white-space:pre-wrap;margin:0 0 16px;font-size:14px;line-height:1.8}.board-post-actions{gap:8px;margin-bottom:16px;display:flex}.board-action-btn{color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:3px 10px;font-size:12px;transition:all .15s}.board-action-btn:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.board-action-btn--danger:hover{border-color:var(--error,#e74c3c);color:var(--error,#e74c3c)}.board-comments{border-top:1px solid var(--border-light);padding-top:12px}.board-comment-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.board-comment{background:var(--bg-secondary);border-radius:var(--radius);padding:8px 12px}.board-comment-top{align-items:center;gap:8px;margin-bottom:3px;display:flex}.board-comment-author{color:var(--text);font-size:12px;font-weight:600}.board-comment-date{color:var(--text-tertiary);flex:1;font-size:10px}.board-comment-content{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.board-comment-form{align-items:center;gap:8px;display:flex}.board-comment-input{border:1px solid var(--border-light);border-radius:var(--radius);outline:none;flex:1;padding:8px 12px;font-size:13px;transition:border-color .15s}.board-comment-input:focus{border-color:var(--primary)}.board-comment-submit{color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:0 0;padding:8px 14px;font-size:12px;font-weight:600;transition:all .15s}.board-comment-submit:hover{background:#5cc8bc14}.board-comment-submit:disabled{opacity:.4;cursor:default}.board-file-upload{align-items:center;gap:8px;margin-top:8px;display:flex}.board-file-btn{background:var(--bg-secondary);border:1px dashed var(--border);color:var(--text-secondary);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;max-width:100%;padding:8px 14px;font-size:13px;transition:all .15s;overflow:hidden}.board-file-btn:hover{border-color:var(--primary);color:var(--primary)}.board-file-remove{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.board-file-remove:hover{color:var(--error,#e74c3c)}.board-file-download{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:8px;width:fit-content;margin-top:8px;padding:8px 14px;transition:all .15s;display:inline-flex}.board-file-download:hover{border-color:var(--primary);background:#5cc8bc0a}.board-file-icon{background:var(--primary);color:#fff;letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.board-file-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-size:13px;overflow:hidden}.board-file-indicator{flex-shrink:0;margin-left:4px;font-size:13px}.student-check-list{flex-wrap:wrap;gap:8px;display:flex}.student-check-item{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.student-check-item:has(input:checked){border-color:var(--primary);background:var(--accent-light)}.student-check-item input[type=checkbox]{accent-color:var(--primary)}.student-accordion{flex-direction:column;gap:4px;display:flex}.student-accordion-group{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.student-accordion-header{background:var(--bg-secondary);cursor:pointer;text-align:left;border:none;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}.student-accordion-header:hover{background:var(--bg-tertiary,#f0f0f0)}.student-accordion-arrow{color:var(--text-secondary);text-align:center;width:12px;font-size:16px;font-weight:600;transition:transform .15s}.student-accordion-title{color:var(--text-primary);flex:1;font-weight:600}.student-accordion-count{color:var(--text-tertiary);font-size:12px;font-weight:500}.classroom-group-name{color:var(--accent);font-size:14px;font-weight:600}.classroom-group-header:hover .classroom-group-name{color:var(--accent)}.classroom-group-role{color:var(--text-tertiary);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;font-size:11px}.classroom-schedule-hint{color:var(--text-tertiary);margin-left:8px;font-size:11px;font-weight:400}.classroom-member-list{flex-wrap:wrap;gap:6px;padding:8px 4px 4px;display:flex}.classroom-member-item{background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-secondary);border-radius:10px;padding:3px 10px;font-size:12px}.classroom-member-name{font-weight:500}.classroom-member-empty{color:var(--text-tertiary);padding:8px 4px;font-size:12px}.instructor-action-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:20px;box-shadow:0 1px 3px #0000000a}.instructor-profile-section{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-top:12px;padding:20px;box-shadow:0 1px 3px #0000000a}.instructor-profile-section .lessons-date-label{border-bottom:1px solid var(--border-light);margin-top:0;margin-bottom:12px;padding-bottom:10px}.classroom-member-manage-list{flex-direction:column;gap:8px;display:flex}.classroom-member-manage-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.classroom-member-manage-name{color:var(--text);font-size:14px;font-weight:500}.classroom-member-remove-btn{color:#ef4444;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #fecaca;padding:4px 12px;font-size:12px;font-weight:500;transition:all .15s}.classroom-member-remove-btn:hover{background:#fef2f2}.classroom-member-add-row{gap:8px;margin-top:12px;display:flex}.classroom-member-add-row input{flex:1}.settings-mini-calendar{margin-bottom:16px}.settings-cal-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.settings-cal-title{font-size:14px;font-weight:600}.settings-cal-nav{border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:center;font-size:12px;display:flex}.settings-cal-nav:hover{background:var(--bg-secondary)}.settings-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.settings-cal-day-header{text-align:center;color:var(--text-tertiary);padding:4px 0;font-size:11px;font-weight:600}.settings-cal-cell{text-align:center;border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:0 0;border:none;padding:6px 0;font-size:12px;transition:all .1s;position:relative}.settings-cal-cell:hover{background:var(--bg-secondary)}.settings-cal-cell--other{color:var(--text-tertiary)}.settings-cal-cell--today{color:var(--accent);font-weight:700}.settings-cal-cell--session{background:var(--accent);color:#fff;border-radius:50%;font-weight:600}.settings-cal-cell--session:hover{background:var(--primary-hover)}.settings-cal-cell--session.settings-cal-cell--today{box-shadow:0 0 0 2px var(--accent), 0 0 0 4px #fff}.settings-cal-cell:disabled{cursor:default}.settings-upcoming-lessons{border-top:1px solid var(--border-light);padding-top:12px}.settings-upcoming-item{color:var(--text);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.settings-upcoming-item+.settings-upcoming-item{border-top:1px solid var(--border-light)}.classroom-group{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:0;overflow:hidden;box-shadow:0 1px 3px #0000000a}.classroom-group-header{background:var(--bg);cursor:pointer;text-align:left;border:none;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:14px 16px;transition:background .15s;display:flex}.classroom-group-header:hover{background:var(--bg-secondary)}.classroom-member-list{border-top:1px solid var(--border-light);flex-wrap:wrap;gap:6px;padding:10px 16px 14px;display:flex}.classroom-member-empty{color:var(--text-tertiary);border-top:1px solid var(--border-light);padding:10px 16px 14px;font-size:12px}.classroom-action-bar{border-top:1px solid var(--border-light);gap:6px;padding:8px 16px 12px;display:flex}.studio-page{flex-direction:column;height:100vh;display:flex}.studio-main{flex:1;display:flex;overflow:hidden}.studio-canvas-area{flex:1;min-width:0}@media (width<=768px){.studio-main{flex-direction:column}.studio-status-panel{border-left:none;border-top:1px solid var(--border-light);width:100%;min-width:0;max-height:40vh}.studio-canvas-area{min-height:50vh}}.studio-participant-count{color:var(--text-secondary);margin-left:8px;font-size:13px}.studio-connecting-badge{color:#a16207;cursor:default;background:#fef9c3;border-radius:10px;margin-left:8px;padding:2px 8px;font-size:11px;animation:1.5s ease-in-out infinite voice-pulse}.studio-connecting-badge[style*=cursor]{cursor:pointer}.studio-connecting-badge:hover{opacity:.9}.voice-btn--muted{opacity:.7}.studio-status-panel{border-left:1px solid var(--border-light);background:var(--bg-primary);flex-direction:column;width:280px;min-width:280px;display:flex;overflow-y:auto}.studio-status-panel--collapsed{border-left:1px solid var(--border-light);background:var(--bg-primary);width:auto;min-width:auto}.studio-status-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.studio-status-header h3{margin:0;font-size:14px;font-weight:600}.studio-status-toggle{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px}.studio-status-toggle:hover{background:var(--bg-secondary)}.studio-badge{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:11px;display:inline-flex}.studio-status-section{border-bottom:1px solid var(--border-light);padding:12px 16px}.studio-status-section-title{color:var(--text-secondary);margin-bottom:8px;font-size:12px;font-weight:600}.studio-announcement-edit textarea{border:1px solid var(--border);resize:none;border-radius:6px;width:100%;padding:8px;font-family:inherit;font-size:13px}.studio-announcement-edit .btn-sm{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-top:6px;padding:4px 12px;font-size:12px}.studio-announcement-view{background:var(--bg-secondary);cursor:pointer;white-space:pre-wrap;word-break:break-word;border-radius:6px;min-height:30px;padding:6px 8px;font-size:13px;line-height:1.5}.studio-announcement-view .text-muted{color:var(--text-tertiary);font-style:italic}.studio-pdf-list{flex-direction:column;gap:4px;display:flex}.studio-pdf-item{background:var(--bg-secondary);border-radius:6px;justify-content:space-between;align-items:center;padding:6px 8px;transition:background .15s;display:flex}.studio-pdf-item:hover{background:var(--bg-tertiary,#e8e8e8)}.studio-pdf-item--shared{border:1px solid var(--accent);background:#5cc8bc14}.studio-pdf-name{text-align:left;cursor:pointer;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;padding:0;font-size:13px;overflow:hidden}.studio-pdf-name:hover{color:var(--accent)}.studio-pdf-shared-badge{color:var(--accent);margin-left:6px;font-size:10px;font-weight:600}.studio-pdf-remove{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px;line-height:1}.studio-pdf-remove:hover{color:#ef4444;background:#ef44441a}.studio-pdf-upload-btn{color:var(--accent);border:1px dashed var(--border);cursor:pointer;text-align:center;background:0 0;border-radius:6px;padding:6px;font-size:13px;transition:background .15s}.studio-pdf-upload-btn:hover{background:#5cc8bc14}.studio-pdf-upload-btn:disabled{opacity:.5;cursor:default}.studio-shared-pdf{background:var(--bg-secondary);border-radius:6px;padding:6px 8px;font-size:13px}.studio-shared-pdf-name{color:var(--accent);font-weight:500}.studio-shared-pdf .text-muted{color:var(--text-tertiary)}.studio-student-list{flex-direction:column;gap:4px;display:flex}.studio-student-list .text-muted{color:var(--text-tertiary);font-size:13px}.studio-student-item{background:var(--bg-secondary);border-radius:6px;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.studio-student-name{align-items:center;gap:6px;font-size:13px;display:flex}.studio-student-kick{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px;line-height:1}.studio-student-kick:hover{color:#ef4444;background:#ef44441a}.studio-rep-badge{color:#fff;background:var(--accent);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.studio-rep-select{border:1px solid var(--border);background:var(--bg-primary);cursor:pointer;border-radius:6px;width:100%;padding:6px 8px;font-size:13px}.studio-rep-display{background:var(--bg-secondary);color:var(--accent);border-radius:6px;padding:6px 8px;font-size:13px;font-weight:500}.studio-listening-play-btn{border:1px dashed var(--border);background:var(--bg-primary);width:100%;color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:8px 10px;font-size:13px;transition:all .15s}.studio-listening-play-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--bg-secondary)}.studio-listening-play-btn:disabled{cursor:not-allowed;opacity:.5}.studio-listening-active{background:var(--bg-secondary);border:1px solid var(--accent);border-radius:6px;align-items:center;gap:6px;padding:8px 10px;display:flex}.studio-listening-filename{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:500;overflow:hidden}.studio-listening-banner{background:var(--bg-secondary);border:1px solid var(--accent);color:var(--accent);text-align:center;border-radius:6px;padding:10px 12px;font-size:13px;font-weight:500}.studio-waiting-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;margin:16px auto 0;animation:1s linear infinite spin}.studio-floating-controls{z-index:100;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.studio-voice-controls{gap:6px;display:flex}.studio-media-btn{border:1.5px solid var(--border);background:var(--bg);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 2px 8px #0000001a}.studio-media-btn:hover{background:var(--bg-hover);color:var(--text)}.studio-media-btn--active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.studio-media-btn--off{background:var(--bg);border-color:var(--border);color:var(--text-secondary)}.studio-media-btn--connecting{color:#a16207;background:#fef9c3;border-color:#facc15;animation:1.2s ease-in-out infinite voice-pulse}@keyframes voice-pulse{0%,to{opacity:.6}50%{opacity:1}}.studio-media-dot{border:1.5px solid var(--bg);border-radius:50%;width:8px;height:8px;position:absolute;bottom:2px;right:2px}.studio-media-dot--on{background:#22c55e}.studio-media-dot--off{background:#ef4444}.studio-media-slash{pointer-events:none;background:#ef4444;border-radius:1px;width:28px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.studio-voice-count{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.studio-video-strip{z-index:20;flex-direction:column;gap:8px;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.studio-video-thumb{border:2px solid var(--border);background:#1a1a2e;border-radius:50%;flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.studio-video-thumb video{object-fit:cover;width:100%;height:100%}.studio-video-label{color:#fff;white-space:nowrap;background:#0009;border-radius:4px;padding:0 4px;font-size:9px;font-weight:600;line-height:14px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.studio-chat-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;width:320px;height:400px;display:flex;box-shadow:0 4px 20px #0000001f}.studio-chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.studio-chat-header button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:16px}.studio-chat-messages{flex-direction:column;flex:1;gap:6px;padding:10px 14px;display:flex;overflow-y:auto}.studio-chat-msg{flex-direction:column;gap:2px;display:flex}.studio-chat-msg--mine .studio-chat-nick{color:var(--accent)}.studio-chat-nick{color:var(--text-secondary);font-size:11px;font-weight:600}.studio-chat-text{color:var(--text);word-break:break-word;font-size:13px;line-height:1.4}.studio-chat-input{border-top:1px solid var(--border);gap:6px;padding:8px 10px;display:flex}.studio-chat-input input{border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;flex:1;padding:7px 10px;font-size:13px}.studio-chat-input input:focus{border-color:var(--accent)}.studio-chat-input button{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:7px 14px;font-size:13px;font-weight:500}.studio-chat-input button:disabled{opacity:.4;cursor:default}.studio-pdf-actions{gap:4px;display:flex}.studio-pdf-download{cursor:pointer;opacity:.6;background:0 0;border:none;padding:2px 4px;font-size:14px}.studio-pdf-download:hover{opacity:1}.studio-record-modal{max-width:480px}.studio-record-info{background:var(--bg-secondary);border-radius:8px;align-items:center;gap:12px;margin-bottom:16px;padding:10px 12px;display:flex}.studio-record-class{font-size:14px;font-weight:600}.studio-record-time{color:var(--text-secondary);font-size:13px}.admin-page{max-width:720px;margin:0 auto;padding:32px 20px 80px}.admin-header{margin-bottom:32px}.admin-header h1{letter-spacing:-.02em;margin-top:12px;font-size:22px;font-weight:700}.admin-section{margin-bottom:32px}.admin-section h2{letter-spacing:-.01em;margin-bottom:12px;font-size:16px;font-weight:700}.admin-stats-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.admin-stat-card{border-radius:var(--radius);border:1px solid var(--border-light);background:var(--bg);flex-direction:column;align-items:center;padding:16px 8px;display:flex}.admin-stat-value{color:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:700}.admin-stat-label{color:var(--text-secondary);margin-top:4px;font-size:12px}.admin-grant-form{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg);padding:16px}.admin-days-options{gap:8px;display:flex}.success-text{color:var(--success);font-size:13px}@media (width<=480px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}}
