@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";.app{min-height:100vh;width:100%;display:flex;flex-direction:column}.app-content{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.page-title{font-size:2rem;font-weight:700;color:#111827;margin-bottom:1.5rem}.card-shadow{background:#fff;border-radius:14px;padding:1.5rem;box-shadow:0 4px 16px #0000000f;transition:.25s ease}.card-shadow:hover{transform:translateY(-2px);box-shadow:0 6px 22px #0000001a}.responsive-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.fade-in{animation:fadeIn .4s ease}.landing-root{width:100%;margin:0;padding:0;font-family:Inter,system-ui,sans-serif;color:#111827}.btn-primary{background-color:#6366f1;color:#fff;padding:12px 28px;border-radius:8px;border:none;cursor:pointer;font-weight:600;font-size:1rem;transition:background .2s ease}.btn-primary:hover{background-color:#4f46e5}.btn-secondary{background-color:#fff;color:#4f46e5;border:2px solid #6366f1;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;font-size:1rem;transition:.2s ease}.btn-secondary:hover{background-color:#f3f4f6}.hero{display:flex;align-items:center;justify-content:space-between;padding:80px 90px;background:#f9fafb}.hero-content{max-width:480px}.hero-title{font-size:2.8rem;font-weight:800;line-height:1.2;margin-bottom:18px}.hero-subtitle{font-size:1.1rem;color:#4b5563;margin-bottom:32px}.hero-buttons{display:flex;gap:16px}.hero-image img{width:520px;border-radius:12px;box-shadow:0 8px 28px #00000014}.features{text-align:center;padding:90px 60px}.section-title{font-size:2rem;font-weight:700;margin-bottom:60px}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.feature-card{background:#fff;padding:26px 20px;border-radius:16px;box-shadow:0 4px 12px #0000000f;transition:transform .2s ease}.feature-card:hover{transform:translateY(-4px)}.feature-icon{font-size:2rem;margin-bottom:12px}.testimonials{background:#f9fafb;padding:90px 60px}.testimonials-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.testimonial-card{background:#fff;padding:26px;border-radius:16px;box-shadow:0 4px 12px #0000000f}.testimonial-card h4{font-size:1.1rem;font-weight:700}.role{display:block;color:#6b7280;margin-bottom:8px;font-size:.9rem}.stars{display:flex;gap:4px;color:#fbbf24;margin-bottom:12px}.testimonial-card p{color:#374151;line-height:1.5}.cta{text-align:center;padding:100px 60px}.cta h2{font-size:2rem;font-weight:700;margin-bottom:16px}.cta p{color:#4b5563;margin-bottom:30px;font-size:1.1rem}.footer{padding:40px 60px;background:#fff;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;color:#6b7280;font-size:.9rem}.footer-links{display:flex;gap:24px}.footer-links a{cursor:pointer;transition:color .2s ease}.footer-links a:hover{color:#4f46e5}@media(max-width:1024px){.hero{flex-direction:column;text-align:center;gap:40px}.hero-content{max-width:100%}.features-grid{grid-template-columns:repeat(2,1fr)}.testimonials-grid{grid-template-columns:1fr}}@media(max-width:640px){.features-grid{grid-template-columns:1fr}}.auth{height:100vh;width:100%;padding:5rem 2.5rem;overflow:hidden;background:#f8fafc;font-family:Inter,sans-serif}.hero{flex:1;background:url(/auth-illustration.svg) center/cover no-repeat;background-color:#eef2ff}@media(max-width:900px){.hero{display:none}}.card{width:480px;max-width:100%;padding:3rem 2.5rem;background:#fff;box-shadow:0 6px 20px #00000014;border-radius:16px;margin:auto;animation:fadeIn .4s ease}.card h2{margin-bottom:1.5rem;font-size:2rem;font-weight:700;color:#111827;text-align:center}.form{display:flex;flex-direction:column;gap:1.6rem}.field{display:flex;flex-direction:column;gap:1rem}.label{font-size:.95rem;font-weight:600;color:#374151;margin-bottom:.75rem}.inputWrap{position:relative;display:flex;align-items:center}.input{width:100%;padding:.8rem 1rem;padding-right:40px;border:1.5px solid #d1d5db;border-radius:10px;background:#f9fafb;font-size:1rem;outline:none;transition:.2s}.input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f140}.eyeBtn{position:absolute;right:10px;background:none;border:none;padding:4px;cursor:pointer;color:#6b7280;transition:.2s}.eyeBtn:hover{color:#111827}.helper{font-size:.8rem;margin-top:.4rem;color:#6b7280}.btn{margin-top:.5rem;width:100%;padding:.85rem 1rem;background:#4f46e5;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:#fff;cursor:pointer;transition:background .2s}.btn:hover{background:#4338ca}.btn:disabled{background:#9ca3af;cursor:not-allowed}.switch{margin-top:1rem;font-size:.9rem;text-align:center;color:#4b5563}.switch-link{margin-left:6px;color:#4f46e5;font-weight:600;text-decoration:none;transition:.2s}.switch-link:hover{color:#4338ca;text-decoration:underline}.message{margin-top:1rem;background:#fee2e2;color:#b91c1c;padding:.9rem 1rem;border-radius:10px;border-left:4px solid #dc2626;font-size:.9rem;animation:slideUp .25s ease}.verify-wrap{display:flex;align-items:center;justify-content:center;height:100vh;width:100%;background:#f8fafc;font-family:Inter,sans-serif;padding:1rem}.verify-card{width:420px;max-width:100%;background:#fff;padding:2.5rem 2rem;border-radius:16px;box-shadow:0 6px 20px #00000014;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.verify-title{font-size:1.8rem;font-weight:700;color:#111827;text-align:center;margin-bottom:.8rem}.verify-sub{text-align:center;color:#4b5563;font-size:.95rem;margin-bottom:1.5rem;line-height:1.4}.pill{background:#eef2ff;color:#4338ca;padding:.25rem .55rem;border-radius:.5rem;font-size:.85rem;font-weight:600}.verify-form{display:flex;flex-direction:column;gap:1.3rem}.label{color:#374151;font-size:.9rem;font-weight:600;margin-bottom:-.3rem}.token-input{padding:.85rem 1rem;font-size:1.05rem;border:1.5px solid #d1d5db;border-radius:10px;background:#f9fafb;transition:border-color .2s,box-shadow .2s}.token-input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f140}.verify-btn{margin-top:.5rem;padding:.85rem 1rem;width:100%;border:none;border-radius:12px;background:#4f46e5;color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:background .2s}.verify-btn:hover{background:#4338ca}.verify-btn:disabled{background:#9ca3af;cursor:not-allowed}.mock-row{display:flex;align-items:center;gap:.5rem;background:#f3f4f6;padding:.6rem .8rem;border-radius:10px;margin-top:.4rem}.muted{color:#6b7280;font-size:.85rem}.code{background:#e5e7eb;padding:.2rem .4rem;border-radius:6px;font-family:monospace;font-size:.85rem}.link-btn{color:#4f46e5;font-size:.85rem;background:none;border:none;cursor:pointer;font-weight:600}.link-btn:hover{text-decoration:underline}.message{margin-top:1rem;padding:.9rem 1rem;background:#fee2e2;border-left:4px solid #dc2626;border-radius:10px;color:#b91c1c;font-size:.9rem;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}:root{--nav-h: 64px}.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 32px;width:100%;box-sizing:border-box;background-color:#fff;border-bottom:1px solid #eaeaea;z-index:1000}.navbar_brand{grid-column:1;justify-self:start;font-style:italic;font-weight:600;font-size:1.25rem;color:#6366f1;cursor:pointer;-webkit-user-select:none;user-select:none}.navbar_links{grid-column:2;justify-self:center;display:flex;align-items:center;gap:32px}.navbar_link{color:#1f2937;text-decoration:none;font-weight:500;cursor:pointer;transition:color .2s ease}.navbar_link:hover{color:#4f46e5}.navbar_link.active{color:#4f46e5;font-weight:600}.navbar_login_btn,.navbar_logout_btn{background-color:#7c3aed;color:#fff;border:none;border-radius:8px;padding:8px 16px;cursor:pointer;font-weight:500;transition:background .2s ease}.navbar_login_btn:hover,.navbar_logout_btn:hover{background-color:#6d28d9}.navbar_actions{grid-column:3;justify-self:end;display:flex;align-items:center;gap:20px}.navbar_icon{font-size:1.25rem;color:#111827;cursor:pointer;transition:opacity .2s ease}.navbar_icon:hover{opacity:.7}.profile{position:relative;display:inline-block}.profile-btn{padding:8px 12px;cursor:pointer}.profile-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #ddd;border-radius:6px;padding:6px 0;min-width:140px;display:flex;flex-direction:column;gap:6px;animation:fadeIn .15s ease-out;z-index:2000}.profile-menu span{padding:8px 12px;cursor:pointer}.profile-menu span:hover{background:#f0f0f0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:5000}.modal-card{background:#fff;width:95%;max-width:680px;padding:1.5rem 1.8rem;border-radius:16px;box-shadow:0 8px 40px #00000040;animation:fadeInUp .25s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-close-btn{border:none;background:transparent;font-size:20px;cursor:pointer;opacity:.6;transition:opacity .2s ease}.modal-close-btn:hover{opacity:1}.modal-body{margin-top:.5rem}.profile-setup-wrapper{display:flex;flex-direction:column;gap:1.2rem;width:100%;padding:1rem .5rem}.profile-setup-input,.profile-setup-textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #d9d9d9;background:#ffffffd9;font-size:15px;outline:none;transition:.25s ease;font-family:inherit}.profile-setup-input:focus,.profile-setup-textarea:focus{border-color:#4a8bff;background:#fff;box-shadow:0 0 0 3px #4a8bff40}.profile-setup-textarea{resize:vertical;min-height:90px}.profile-setup-btn{margin-top:.5rem;padding:12px 16px;border-radius:10px;border:none;background:linear-gradient(135deg,#4a8bff,#346bd6);color:#fff;font-weight:600;font-size:16px;cursor:pointer;transition:.25s ease}.profile-setup-btn:hover{background:linear-gradient(135deg,#5e9aff,#3d74e0);transform:translateY(-2px)}.profile-setup-btn:active{transform:translateY(0)}@media(max-width:480px){.profile-setup-wrapper{gap:1rem}.profile-setup-btn{font-size:14px;padding:10px 14px}}.profile-pic-wrapper{width:120px;height:120px;margin:0 auto 1.5rem;position:relative;cursor:pointer}.profile-pic-label{display:block;width:100%;height:100%;cursor:pointer;position:relative}.profile-pic{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid #e6e6e6;box-shadow:0 2px 6px #00000014;transition:.25s ease}.profile-pic-wrapper:hover .profile-pic{filter:brightness(.8);transform:scale(1.03)}.profile-pic-overlay{position:absolute;inset:0;border-radius:50%;background:#00000073;opacity:0;color:#fff;display:flex;align-items:center;justify-content:center;transition:.25s ease;font-size:15px;font-weight:600}@media(max-width:480px){.profile-pic-wrapper{width:100px;height:100px}}.profile-page{max-width:900px;margin:0 auto;padding:2rem 1rem 4rem;animation:fadeIn .3s ease}.profile-header{display:flex;flex-direction:row;align-items:flex-start;justify-content:center;gap:3rem;margin-bottom:3rem}.profile-info-over{text-align:center;margin-bottom:1rem}.profile-info-over h1{font-size:1.8rem;font-weight:700;margin:0}.profile-info-over p{margin:4px 0 0;font-size:1rem;color:#666}.profile-pic-wrapper{width:150px;height:150px;position:relative}.profile-pic-label{width:100%;height:100%;display:block;cursor:pointer;position:relative}.profile-pic{width:100%;height:100%;border-radius:50%;object-fit:cover;border:4px solid #e5e8ef;background:#f3f4f7;box-shadow:0 4px 10px #00000014,0 1px 3px #0000000a;transition:transform .25s ease}.profile-pic-column{display:flex;flex-direction:column;align-items:center;position:relative}.profile-pic-overlay{position:absolute;inset:0;border-radius:50%;background:#0000007a;opacity:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.95rem;font-weight:600;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .25s ease}.profile-pic-wrapper:hover .profile-pic-overlay{opacity:1}.profile-file-input{display:none}.profile-sections{display:flex;flex-direction:column;gap:2.5rem}.profile-section h2{font-size:1.35rem;margin-bottom:1rem;font-weight:600;color:#333}.profile-form{display:flex;flex-direction:column;gap:1rem}.profile-form input,.profile-form textarea{padding:12px 14px;border:1px solid #dcdcdc;border-radius:12px;background:#fafafa;transition:.25s;font-size:15px}.profile-form input:focus,.profile-form textarea:focus{background:#fff;border-color:#4a8bff;box-shadow:0 0 0 3px #4a8bff40}.profile-form textarea{resize:vertical;min-height:100px}.profile-save-btn{padding:15px;border-radius:12px;border:none;background:linear-gradient(135deg,#4a8bff,#346bd6);color:#fff;font-size:17px;font-weight:600;cursor:pointer;transition:.25s ease}.profile-save-btn:hover{transform:translateY(-2px);background:linear-gradient(135deg,#5e9aff,#3d74e0)}.profile-save-btn:active{transform:translateY(0)}.profile-loading{text-align:center;padding:3rem 1rem;font-size:1.2rem;color:#444}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.profile-header{flex-direction:column;align-items:center;text-align:center}.profile-info-right,.verification-box{width:100%}}.profile-select{padding:12px 14px;border:1px solid #dcdcdc;border-radius:12px;background:#fafafa;font-size:15px;transition:.25s}.profile-select:focus{background:#fff;border-color:#4a8bff;box-shadow:0 0 0 3px #4a8bff40;outline:none}.profile-approval-textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #ccc;min-height:80px;resize:vertical;background:#fafafa}.profile-info-right{display:flex;flex-direction:column;gap:1.5rem;width:320px}.verification-box{width:100%;padding:1.2rem;border-radius:12px;background:#f5f7fc;border:1px solid #dfe3ee}.verification-header{font-size:1rem;font-weight:600;margin-bottom:.5rem}.status-badge{padding:5px 10px;border-radius:8px;font-weight:600;font-size:.9rem}.status-badge.pending{background:#fff3cd;color:#856404}.status-badge.approved{background:#d4edda;color:#155724}.status-badge.rejected{background:#f8d7da;color:#721c24}.status-badge.neutral{background:#e2e3e5;color:#383d41}.verification-comment{width:100%;height:70px;border-radius:8px;padding:8px;border:1px solid #ccc;margin-top:10px;resize:vertical;background:#fff}.verification-btn{margin-top:10px;width:100%;padding:10px;border-radius:10px;background:#28a745;color:#fff;border:none;cursor:pointer;font-weight:600}.verification-message{margin-top:8px;font-size:.9rem;color:#444}.subbranch-section{margin-top:1rem;padding:1rem;background:#f7f9fc;border-radius:12px;border:1px solid #e3e7ef}.subbranch-section h3{font-size:1.1rem;margin-bottom:.5rem;font-weight:600}.subbranch-list{max-height:180px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px}.subbranch-item{display:flex;align-items:center;gap:6px;font-size:.9rem;cursor:pointer}.level-block{margin-bottom:1rem;border:1px solid #e1e4eb;border-radius:10px;padding:.5rem 1rem;background:#fafbff}.level-toggle summary{cursor:pointer;font-size:1.1rem;font-weight:600;padding:.5rem 0}.subbranch-list{margin-top:.5rem;display:flex;flex-direction:column;gap:6px}.subbranch-item{display:flex;align-items:center;gap:8px;font-size:.95rem}.modal-overlay{position:fixed;inset:0;background:#0000004d;display:flex;justify-content:center;align-items:center;z-index:200}.modal-box{width:550px;max-height:90vh;overflow-y:auto;background:#fff;padding:32px;border-radius:16px}.modal-box h2{margin-bottom:20px}.form-section{margin-bottom:16px;display:flex;flex-direction:column}.form-section label{margin-bottom:6px;opacity:.6}.form-section input,.form-section select,.form-section textarea{padding:10px 12px;border-radius:8px;border:1px solid #dcdcdc;font-size:14px}textarea{resize:vertical;min-height:90px}.modal-actions{margin-top:22px;display:flex;justify-content:flex-end;gap:12px}.cancel{padding:10px 18px;background:#e5e5e5;border-radius:8px;border:none;cursor:pointer}.submit{padding:10px 18px;background:#6366f1;color:#fff;border-radius:8px;border:none;cursor:pointer}:root{--c-border: #e2e8f0;--c-header-bg: #f8fafc;--c-text-main: #334155;--c-text-light: #94a3b8;--c-primary: #3b82f6;--c-success: #10b981;--c-danger: #ef4444;--c-busy: #6366f1;--slot-height: 20px;--time-col-width: 60px}.cal-container{display:flex;flex-direction:column;height:100%;max-height:75vh;background:#fff;font-family:inherit;-webkit-user-select:none;user-select:none}.cal-toolbar{padding:16px 24px;border-bottom:1px solid var(--c-border);display:flex;justify-content:space-between;align-items:center;background:#fff;flex-shrink:0}.cal-info h3{margin:0 0 4px;font-size:16px;font-weight:600;color:#1e293b}.cal-info p{margin:0;font-size:13px;color:#64748b}.highlight-text{color:var(--c-primary);font-weight:500}.highlight-text-red{color:var(--c-danger);font-weight:500}.cal-actions{display:flex;gap:10px}button{cursor:pointer;font-family:inherit}.cal-btn-primary{background:var(--c-text-main);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;box-shadow:0 1px 2px #0000001a}.cal-btn-primary:hover{background:#0f172a}.cal-btn-primary.danger{background:var(--c-danger)}.cal-btn-secondary{background:#fff;border:1px solid var(--c-border);color:var(--c-text-main);padding:8px 12px;border-radius:6px;font-size:13px}.cal-btn-secondary:hover{background:var(--c-header-bg)}.cal-btn-text{background:none;border:none;color:var(--c-text-light);font-size:13px}.cal-btn-text:hover{color:var(--c-text-main)}.cal-viewport{flex:1;overflow-y:auto;position:relative;scrollbar-width:thin;contain:layout}.cal-grid{display:grid;grid-template-columns:var(--time-col-width) repeat(7,1fr);grid-template-rows:auto;width:100%;min-width:800px}.cal-header-row{display:contents}.cal-corner-cell{background:#fff;border-bottom:1px solid var(--c-border);border-right:1px solid var(--c-border);position:sticky;top:0;height:50px}.cal-day-header{background:#fff;border-bottom:1px solid var(--c-border);border-right:1px solid var(--c-border);padding:8px;text-align:center;font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:sticky;top:0;bottom:10;z-index:20;height:50px}.cal-day-header.today{background:#eff6ff}.cal-day-name{text-transform:uppercase;font-size:11px;font-weight:700;color:var(--c-text-light)}.cal-day-header.today .cal-day-name{color:var(--c-primary)}.cal-day-num{font-size:18px;font-weight:600;color:var(--c-text-main)}.cal-day-header.today .cal-day-num{color:var(--c-primary)}.cal-row{display:contents}.cal-time-cell{background:#fff;border-right:1px solid var(--c-border);color:var(--c-text-light);font-size:11px;text-align:right;padding-right:8px;position:sticky;left:0;z-index:10}.cal-time-cell span{display:block;transform:translateY(-50%)}.cal-cell{height:var(--slot-height);border-right:1px solid #f1f5f9;border-bottom:1px solid #f8fafc;background:#fff;cursor:pointer;position:relative;z-index:1}.cal-cell:hover{background:#f8fafc}.cal-cell[data-hour-start=true]{border-top:1px solid #e2e8f0}.cal-cell.declared{background:#10b98126;border-left:3px solid var(--c-success)}.cal-cell.pending-add{background:#3b82f626;border-left:3px solid var(--c-primary)}.cal-cell.pending-del{background:repeating-linear-gradient(45deg,#ef44441a,#ef44441a 10px,#ffffff80 10px 20px);border-left:3px solid var(--c-danger)}.cal-cell.draft-add{background:#3b82f64d}.cal-cell.draft-del{background:#ef44444d}.cal-cell.read-only{cursor:default}.cal-cell.cell-busy{background:#6366f126;border-left:3px solid var(--c-busy)}.cal-cell.cell-avail-ro{background:#10b98114}.cal-legend{display:flex;gap:24px;padding:12px 24px;background:var(--c-header-bg);border-top:1px solid var(--c-border);font-size:12px;color:var(--c-text-main);flex-shrink:0}.legend-item{display:flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:2px}.dot.declared{background:var(--c-success)}.dot.pending{background:var(--c-primary)}.dot.delete{background:var(--c-danger)}.dot.busy{background:var(--c-busy)}.dot.avail-ro{background:#10b98166}.dot.empty{border:1px solid #cbd5e1;background:#fff}.cal-error{color:var(--c-danger);padding:10px 24px;background:#fee2e2}.cal-overlay{position:absolute;inset:0;background:#ffffffb3;z-index:50;display:flex;align-items:center;justify-content:center}.cal-spinner{width:30px;height:30px;border:3px solid #e2e8f0;border-top-color:var(--c-text-main);border-radius:50%;animation:spin .8s linear infinite}.cell-request{background:#fff7e6;border-color:#ffe2b5}.cell-request-selected{outline:3px solid rgba(255,170,0,.25)}.dot.request{background:#ffcc80}:root{--bg: #f6f7fb;--panel: #ffffff;--text: #0f172a;--muted: #64748b;--border: rgba(15, 23, 42, .08);--shadow: 0 10px 30px rgba(15, 23, 42, .08);--shadow-soft: 0 6px 18px rgba(15, 23, 42, .06);--radius-lg: 18px;--radius-md: 14px;--radius-sm: 12px;--blue: #3b82f6;--blue-weak: rgba(59, 130, 246, .12);--green: #22c55e;--green-weak: rgba(34, 197, 94, .12);--amber: #f59e0b;--amber-weak: rgba(245, 158, 11, .14);--red: #ef4444;--red-weak: rgba(239, 68, 68, .12);--purple: #8b5cf6;--purple-weak: rgba(139, 92, 246, .12);--gray-weak: rgba(148, 163, 184, .12);--ring: 0 0 0 4px rgba(59, 130, 246, .14)}.my-lectures-page.v2{padding:28px;min-height:calc(100vh - 80px);background:radial-gradient(1200px 600px at 12% -10%,rgba(59,130,246,.2),transparent 60%),radial-gradient(900px 480px at 88% 0%,rgba(139,92,246,.18),transparent 55%),var(--bg);color:var(--text);display:flex;flex-direction:column;gap:18px;font-family:var(--app-font)}.ml-btn{height:38px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:#fffffff2;cursor:pointer;font-size:13px;color:var(--text);box-shadow:0 1px #0f172a0a;transition:transform .08s ease,box-shadow .08s ease,background .08s ease}.ml-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0f172a1a}.ml-btn:disabled{opacity:.6;cursor:not-allowed}.ml-btn.primary{border-color:#3b82f64d;background:linear-gradient(135deg,#3b82f629,#8b5cf61f)}.ml-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow);padding:16px}.ml-section-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;padding-bottom:12px;border-bottom:1px solid rgba(15,23,42,.06);margin-bottom:12px}.ml-section-head h3{margin:0;font-size:16px;letter-spacing:-.01em}.ml-section-head p{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.4}.ml-section-actions{display:flex;align-items:center;gap:10px}.ml-count{min-width:40px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#0f172a0a;border:1px solid rgba(15,23,42,.06);font-weight:700;letter-spacing:-.01em}.ml-subsection{margin-top:14px}.ml-subhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.ml-subhead h4{margin:0;font-size:13.5px;color:#0f172adb;letter-spacing:-.01em}.ml-subcount{font-size:12px;color:var(--muted);border:1px solid rgba(15,23,42,.08);background:#0f172a08;padding:4px 10px;border-radius:999px}.ml-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:1100px){.ml-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.header-section,.ml-grid{grid-template-columns:1fr}}.ml-card{border:1px solid rgba(15,23,42,.08);border-radius:var(--radius-md);padding:12px;cursor:pointer;background:#eef6fa;position:relative;overflow:hidden}.ml-card:before{content:"";position:absolute;inset:-2px;background:radial-gradient(600px 200px at 10% 10%,rgba(59,130,246,.1),transparent 55%),radial-gradient(600px 200px at 90% 0%,rgba(139,92,246,.1),transparent 55%);opacity:.6;pointer-events:none}.ml-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#3b82f638}.ml-card:active{transform:translateY(-1px)}.ml-card-top{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ml-card-title{position:relative;font-weight:500;font-size:14px;line-height:1.25;letter-spacing:-.01em}.ml-card-sub{position:relative;margin-top:6px;font-size:12.5px;color:var(--muted)}.ml-card-foot{position:relative;margin-top:10px;display:flex;justify-content:space-between;align-items:center}.ml-card-hint{font-size:12px;color:#64748be6}.badge{position:relative;font-size:11.5px;padding:5px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.08);background:#0f172a0a;white-space:nowrap;font-weight:650;letter-spacing:-.01em}.badge.green{background:var(--green-weak);border-color:#22c55e40;color:#166534}.badge.amber{background:var(--amber-weak);border-color:#f59e0b40;color:#92400e}.badge.blue{background:var(--blue-weak);border-color:#3b82f640;color:#1e40af}.badge.gray{background:var(--gray-weak);border-color:#94a3b840;color:#475569}.badge.red{background:var(--red-weak);border-color:#ef444440;color:#991b1b}.badge.purple{background:var(--purple-weak);border-color:#8b5cf640;color:#4c1d95}.ml-empty{padding:14px 12px;font-size:12.5px;color:var(--muted);background:#e7eff3;border:1px dashed rgba(150,244,203,.14);border-radius:var(--radius-md)}.ml-calendar-wrap{margin-top:10px;min-width:0}.ml-calendar-wrap .cal-container{border-radius:var(--radius-lg);border:1px solid rgba(15,23,42,.08);background:#cbdce5;box-shadow:var(--shadow-soft)}.ml-card:focus-visible,.ml-btn:focus-visible{outline:none;box-shadow:var(--ring)}h1,h2,h3,h4{font-weight:500;letter-spacing:-.01em}p,span,button,input,textarea{font-weight:300}.lecture-navbar{display:flex;gap:2rem;border-bottom:1px solid #eee;padding:1rem;font-size:1.1rem;font-weight:600}.lecture-navbar-item{cursor:pointer;padding-bottom:.5rem;color:#666}.lecture-navbar-item.active{color:#1a1a1a;border-bottom:3px solid #5b6dfe}.lecture-navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #eee}.lecture-navbar-left{display:flex;gap:2rem}.create-course-btn-small{background:#5b6dfe;color:#fff;padding:8px 16px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:.2s}.create-course-btn-small:hover{background:#4b5be8;transform:translateY(-1px)}.create-course-btn-small:active{transform:translateY(0)}.course-card{width:100%;background:#fff;border:1px solid #ececec;border-radius:10px;padding:18px 22px;display:flex;justify-content:space-between;align-items:flex-start;transition:.2s ease;margin-bottom:14px;cursor:pointer}.course-card:hover{transform:translateY(-2px);box-shadow:0 4px 15px #00000014}.course-title{font-size:18px;font-weight:600;margin-bottom:6px}.course-meta{display:flex;gap:10px;margin-bottom:10px;align-items:center}.course-date{color:#777;font-size:14px}.course-status{padding:3px 10px;border-radius:8px;font-size:12px;font-weight:600;text-transform:uppercase}.badge-draft{background:#e8e8ff;color:#4e4cd1}.badge-published{background:#e8ffe8;color:#20a020}.badge-ongoing{background:#fff4d6;color:#c47c00}.badge-completed{background:#e6f7ff;color:#007acc}.badge-cancelled{background:#ffe5e5;color:#c00}.course-progress-wrapper{margin-top:6px}.course-progress-bar{width:200px;height:6px;background:#f1f1f1;border-radius:4px;overflow:hidden}.course-progress-bar-fill{height:100%;background:#6a5acd;border-radius:4px}.course-progress-text{font-size:12px;color:#666;margin-top:4px;display:block}.course-card-right{display:flex;flex-direction:column;gap:16px;align-items:flex-end}.course-branch{padding:6px 12px;background:#f3f3f3;border-radius:8px;font-size:13px;color:#555}.cancel-button{padding:6px 12px;background:#e85f5f;border-radius:8px;font-size:13px;color:#fffdfd}.start-button{padding:6px 12px;background:#e85f5f;border-radius:8px;font-size:13px;color:#81ec71}.complete-button{padding:6px 12px;background:#e85fbf;border-radius:8px;font-size:13px;color:#81ec71}.subnavbar{display:flex;gap:2rem;margin-top:1rem;border-bottom:1px solid #eee;padding:.5rem 1rem}.subnavbar-item{cursor:pointer;padding:.4rem 0;color:#666}.subnavbar-item.active{color:#5b6dfe;font-weight:700;border-bottom:2px solid #5b6dfe}.published-page{width:100%;padding:30px}.published-header{margin-top:25px;display:flex;justify-content:space-between;align-items:center}.published-course-list{margin-top:20px}.unpublished-page{width:100%;padding:30px}.unpublished-header{margin-top:25px;display:flex;justify-content:space-between;align-items:center}.create-btn{background:#6a5acd;color:#fff;padding:8px 14px;border-radius:6px;border:none;cursor:pointer}.create-btn:hover{background:#5847d1}.unpublished-course-list{margin-top:20px}.empty-state{padding:20px;text-align:center;color:#777}.loading{text-align:center;padding:20px}.course-hero{position:relative;width:100%;min-height:360px;border-radius:16px;overflow:hidden;background-color:#2c3e50;background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:flex-end;box-shadow:0 10px 30px #00000026;transition:background-image .3s ease-in-out;margin-bottom:30px}.course-hero-overlay{position:absolute;inset:0;background:linear-gradient(to right,#000000d9,#0009,#0000004d);z-index:1}.course-hero-content{position:relative;z-index:2;width:100%;padding:40px;display:flex;justify-content:space-between;align-items:flex-end}.course-hero-left{display:flex;flex-direction:column;gap:16px;max-width:60%}.course-hero-right{flex:1;max-width:380px;display:flex;flex-direction:column;justify-content:flex-end}.banner-upload-section{position:absolute;top:0;right:40px;z-index:10}.upload-banner-btn{display:inline-flex;align-items:center;gap:8px;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:500;font-size:.85rem;padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 10px #0000001a}.upload-banner-btn:before{content:"📷";font-size:1.1em}.upload-banner-btn:hover{background:#ffffff40;transform:translateY(-2px);box-shadow:0 6px 15px #00000026}.upload-banner-btn:active{transform:translateY(0)}.course-title{font-size:3rem;font-weight:800;color:#fff;margin:0;line-height:1.1;text-shadow:0 4px 8px rgba(0,0,0,.3)}.teacher-row{display:flex;align-items:center;gap:12px;background:#0006;padding:6px 16px 6px 6px;border-radius:50px;width:fit-content;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.teacher-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #fff}.teacher-info{display:flex;flex-direction:column;line-height:1.2}.teacher-name{color:#fff;font-weight:700;font-size:.95rem}.teacher-rating{font-size:.8rem;color:#f1c40f}.course-tags{display:flex;gap:8px;flex-wrap:wrap}.tag{background:#fff3;color:#fff;padding:6px 14px;border-radius:6px;font-size:.8rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;border:1px solid rgba(255,255,255,.15)}.approval-box{background:#ffffff26;border:1px solid rgba(255,255,255,.3);padding:15px;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 32px #0000001a}.approval-comment{width:100%;min-height:80px;border-radius:8px;border:none;padding:12px;font-family:inherit;font-size:.9rem;resize:none;background:#ffffffe6;color:#333;outline:none;transition:background .2s}.approval-comment:focus{background:#fff;box-shadow:0 0 0 2px #f1c40f80}.approval-button{background:#f1c40f;color:#2c3e50;border:none;padding:10px;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s;text-transform:uppercase;font-size:.8rem;letter-spacing:.5px;box-shadow:0 4px 6px #0000001a}.approval-button:hover{background:#f39c12;transform:translateY(-1px);box-shadow:0 5px 10px #00000026}.approval-button:active{transform:translateY(0)}.course-page{width:100%;max-width:1250px;margin:0 auto;padding:30px 20px}.tag{background:#f0f3ff;color:#5a61ff;padding:6px 12px;border-radius:8px;font-size:12px}.course-tabs{display:flex;gap:32px;margin-bottom:30px;border-bottom:1px solid #e5e5e5}.course-tab-item{padding:10px 4px;cursor:pointer;font-weight:500}.course-tab-item.active{border-bottom:3px solid #5a61ff;color:#5a61ff}.course-section{margin-bottom:50px;background:#fff;padding:24px;border-radius:12px;border:1px solid #ececec}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.edit-btn{background:#5a61ff;color:#fff;padding:8px 14px;border-radius:8px;border:none;cursor:pointer}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 30px}.syllabus-week{border:1px solid #e6e6e6;border-radius:8px;margin-bottom:10px}.syllabus-week-header{padding:14px 18px;background:#f9faff;font-weight:600;display:flex;justify-content:space-between;border-bottom:1px solid #eee}.syllabus-items{padding:12px 18px}.syllabus-item{display:flex;justify-content:space-between;padding:6px 0}.schedule-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:16px}.schedule-day h4{margin-bottom:12px}.schedule-block{background:#f3f6ff;padding:8px;border-radius:8px;margin-bottom:6px;justify-content:space-between}.edit-actions{display:flex;gap:12px;align-items:center}.cancel-btn,.save-btn{height:44px;padding:0 20px;border-radius:12px;border:none;display:flex;justify-content:center;align-items:center;font-size:15px;font-weight:500;cursor:pointer;line-height:1}.cancel-btn{background:#ececec;color:#222}.save-btn{background:#4a6cf7;color:#fff}.info-edit-form{display:flex;flex-direction:column;gap:20px}.form-field{display:flex;flex-direction:column;gap:6px;font-size:14px}.form-field input,.form-field textarea,.form-field select{border:1px solid #dcdcdc;padding:10px 12px;border-radius:8px;font-size:14px;width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.syllabus-loading-banner{margin-bottom:10px;padding:8px 12px;border-radius:6px;background:#fff7e6;color:#b26b00;font-size:13px}.syllabus-week{margin-bottom:12px;border-radius:10px;overflow:hidden;border:1px solid #ececec;background:#fafafa}.syllabus-week-header{padding:10px 14px;display:flex;justify-content:space-between;cursor:pointer;font-weight:600}.syllabus-items{padding:8px 10px 12px}.syllabus-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:6px;background:#fff;margin-bottom:6px}.syllabus-item-actions{display:flex;gap:6px}.icon-btn{border:1px solid #ddd;background:#f5f5f5;border-radius:4px;padding:2px 6px;cursor:pointer;font-size:11px}.icon-btn:disabled{opacity:.4;cursor:default}.remove-btn{border:none;background:#ffe6e6;color:#c53030;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:40}.modal{width:900px;max-width:95vw;background:#fff;border-radius:12px;padding:16px 18px 14px;box-shadow:0 20px 40px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal-close{border:none;background:transparent;font-size:18px;cursor:pointer}.modal-body{display:grid;grid-template-columns:2fr 2fr 1fr;gap:12px;margin-bottom:12px}.modal-column h4{margin-bottom:6px}.modal-list{list-style:none;padding:0;margin:0;max-height:260px;overflow-y:auto;border-radius:6px;border:1px solid #eee}.modal-list-item{padding:6px 8px;cursor:pointer;font-size:14px}.modal-list-item:hover{background:#f0f3ff}.modal-list-item.selected{background:#e1e5ff;font-weight:600}.week-input{width:100%;padding:6px 8px;border-radius:6px;border:1px solid #ddd}.modal-footer{display:flex;justify-content:flex-end;gap:8px}.primary-btn{background:#4f46e5;color:#fff;border:none;border-radius:6px;padding:8px 14px;cursor:pointer;font-weight:500}.secondary-btn{background:#f3f4f6;color:#111827;border:none;border-radius:6px;padding:8px 14px;cursor:pointer}.syllabus-week{margin-bottom:14px;border:1px solid #eee;border-radius:10px;overflow:hidden}.syllabus-week-header{padding:12px 16px;display:flex;justify-content:space-between;font-weight:600;cursor:pointer;background:#f8f9fe}.syllabus-items-section{display:flex;padding:16px;gap:20px}.unit-picker,.subunit-picker,.current-items{flex:1}.unit-list,.subunit-list{flex:1;border:1px solid #eee;border-radius:8px;padding:8px;overflow-y:auto;max-height:320px}.unit-item,.subunit-item{padding:8px 10px;border-radius:6px;cursor:pointer;margin-bottom:4px}.unit-item:hover,.subunit-item:hover{background:#eef1ff}.unit-item.active,.subunit-item.selected{background:#dfe3ff;font-weight:600}.syllabus-item{padding:8px 10px;background:#fff;border-radius:6px;margin-bottom:6px;display:flex;justify-content:space-between}.syllabus-actions button{margin-left:4px}.modal.small{width:360px}.primary-btn,.secondary-btn,.remove-btn{padding:6px 12px;border-radius:6px;cursor:pointer}.move-btn{width:28px;height:28px;border:1px solid #d8d8ff;background:#f3f4ff;color:#4f46e5;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:.15s ease}.move-btn:hover{background:#e7e8ff;border-color:#b8b8ff}.move-btn:active{background:#d9d9ff}.remove-btn{background:#ffe6e6;color:#d64545;border:none;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:.15s ease}.remove-btn:hover{background:#ffd2d2}.remove-btn:active{background:#ffbaba}.week-move-select{padding:6px 10px;border-radius:6px;border:1px solid #dcdcdc;background:#fff;font-size:13px;cursor:pointer;outline:none;transition:border .15s ease}.week-mmove-select:hover,.week-mmove-select:focus{border-color:#4f46e5}.syllabus-actions{display:flex;align-items:center;gap:6px}.syllabus-col{background:#fff;border:1px solid #ececec;padding:16px;border-radius:10px;display:flex;flex-direction:column;height:100%}.add-week-btn{margin-top:12px;width:100%;justify-self:flex-end}.row-actions{display:flex;align-items:center;gap:8px}.syllabus-actions-top{display:flex;gap:12px;align-items:center}.toggle-btn,.delete-btn,.week-delete-btn{background:#e8e9ff;color:#4b52dd;border:none;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:500}.expand-icon{padding:8px 14px}.collapse-icon{font-size:20px;font-weight:700;margin-left:6px;display:inline-block;cursor:pointer}.view-subunits-tree{margin-left:12px;border-left:2px solid #eee;padding-left:12px}.subunit-tree-header{cursor:pointer;padding:4px 0;font-weight:500;display:flex;justify-content:space-between}.outcomes-list{margin-top:4px;margin-left:16px;padding:0;list-style:none}.outcome-item{padding:2px 0}.outcome-empty{opacity:.6;font-style:italic}.syllabus-grid{display:grid;grid-gap:24px}.syllabus-grid.edit-mode{grid-template-columns:1fr 1fr 1fr}.syllabus-grid.view-mode{grid-template-columns:1fr!important}.view-subunits-tree,.unit-group,.subunit-tree-block{width:100%}.unit-group-title{font-size:20px;padding:8px 14px}.schedule-add-row{display:flex;gap:10px;margin-bottom:20px}.schedule-add-panel{background:#f9f9ff;padding:16px;border-radius:10px;margin-bottom:20px;border:1px solid #ececec}.schedule-add-row{display:flex;gap:12px;align-items:center}.schedule-add-row select,.schedule-add-row input[type=time]{padding:6px 10px;border:1px solid #ddd;border-radius:6px}.schedule-editor-panel{background:#f8f9ff;padding:16px;margin-bottom:20px;border-radius:12px;border:1px solid #e3e3ff}.schedule-editor-row{display:flex;gap:18px;align-items:center}.schedule-editor-row label{display:flex;flex-direction:column;font-size:14px}.schedule-actions{display:flex;gap:6px;margin-left:auto}.icon-btn{width:26px;height:26px;border-radius:6px;border:1px solid #dcdcec;background:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:.15s ease;padding:0}.icon-btn:hover{background:#eef1ff;border-color:#b8b8ff}.icon-btn.edit{color:#4a6cf7}.icon-btn.delete{color:#d64545}.schedule-block{background:#eef2ff;padding:10px;border-radius:10px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.schedule-block.active-edit{border:2px solid #4a6cf7}.schedule-editor-panel{background-color:#f9f9f9;padding:15px;border-radius:8px;border:1px solid #eee;margin-bottom:20px}.schedule-editor-row{display:flex;align-items:flex-end;gap:15px}.form-field-group{display:flex;flex-direction:column;gap:5px}.form-field-group label{font-size:.85rem;font-weight:600;color:#555}.schedule-select{padding:8px;border:1px solid #ccc;border-radius:4px;min-width:100px}.schedule-block{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #eee;padding:8px 12px;border-radius:6px;margin-bottom:8px;box-shadow:0 1px 3px #0000000d}.schedule-block.active-edit{border-color:#2196f3;background-color:#e3f2fd}.block-time{font-weight:600;color:#333}.schedule-actions{display:flex;gap:5px}.icon-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:4px;opacity:.7;transition:opacity .2s}.icon-btn:hover{opacity:1}.teacher-materials-page{max-width:1200px;margin:0 auto;padding:24px;font-family:system-ui,-apple-system,sans-serif;color:#111827}.materials-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.materials-header h2{font-size:1.5rem;font-weight:700;margin:0}.teacher-materials-page button{border:1px solid #d1d5db;background:#fff;color:#111827;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:14px;line-height:1}.teacher-materials-page button:hover:not(:disabled){background:#f9fafb}.teacher-materials-page button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{border:1px solid #2563eb!important;background:#2563eb!important;color:#fff!important}.btn-primary:hover:not(:disabled){background:#1d4ed8!important}.status-error{background:#fef2f2;border:1px solid #fee2e2;color:#b91c1c;padding:12px;border-radius:8px;margin-bottom:16px;font-weight:500}.status-loading{padding:40px;text-align:center;color:#6b7280}.teacher-materials-page>div[role=alert]{margin-bottom:12px;color:#b91c1c}.create-doc-panel{padding:24px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;margin-bottom:24px;box-shadow:0 1px 3px #0000000f}.create-doc-panel h3{margin:0 0 14px;font-size:1.1rem}.create-doc-panel input[type=text],.create-doc-panel input[type=number],.create-doc-panel input[type=datetime-local],.create-doc-panel input[type=file],.create-doc-panel select,.create-doc-panel input:not([type]){width:100%;min-width:0;padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;box-sizing:border-box}.create-doc-panel label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#374151}.create-doc-panel>div{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.create-doc-panel>div>div{width:100%}.doc-workspace{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;height:80vh;margin-bottom:32px}.pdf-container{border:1px solid #d1d5db;border-radius:12px;overflow:hidden;background:#f3f4f6;position:relative;min-height:420px}.preview-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:24px}.side-panel{height:100%;overflow-y:auto}.info-box{background:#fff;padding:20px;border-radius:12px;border:1px solid #e5e7eb}.submissions-container{margin-bottom:24px;border:1px solid #e5e7eb;border-radius:12px;padding:20px;background:#fff}.teacher-materials-page table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}.teacher-materials-page th{text-align:left;padding:12px;border-bottom:2px solid #f3f4f6;color:#4b5563;font-weight:700}.teacher-materials-page td{padding:12px;border-bottom:1px solid #f3f4f6}.document-list{display:flex;flex-direction:column;gap:12px}.document-card{padding:16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:14px;transition:transform .1s,box-shadow .1s}.document-card:hover{box-shadow:0 4px 12px #0000000d}.doc-info strong{font-size:16px;color:#111827}.doc-subtext{font-size:12px;color:#6b7280;margin-top:4px}.doc-warning{color:#dc2626;font-size:12px;margin-top:4px;font-weight:500}.action-group{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.document-card label{border:1px solid #d1d5db;padding:7px 12px;border-radius:8px;cursor:pointer;font-size:14px;background:#fff;display:inline-flex;align-items:center}.document-card label:hover{background:#f9fafb}.btn-file-label{border:1px solid #d1d5db;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:14px;background:#fff}.btn-file-label:hover{background:#f9fafb}.btn-delete{color:#dc2626!important}.hidden-input{display:none}@media(max-width:980px){.doc-workspace{grid-template-columns:1fr;height:auto}.side-panel{max-height:420px}.document-card{flex-direction:column;align-items:flex-start}.action-group{justify-content:flex-start}}.live-lecture-card{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 8px 24px #0000000d;margin-bottom:18px}.live-lecture-card__title{font-weight:700;color:#111827;font-size:1.05rem}.live-lecture-card__subtitle{margin-top:6px;color:#374151;font-size:.95rem}.live-lecture-card__meta{margin-top:10px}.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f3f4f6;color:#111827;font-size:.85rem;border:1px solid #e5e7eb}.live-lecture-card__error{margin-top:10px;color:#b91c1c;font-size:.9rem}.live-lecture-card__right{display:flex;gap:10px;align-items:center}.primary-btn{border:none;border-radius:10px;padding:10px 14px;background:#111827;color:#fff;font-weight:600;cursor:pointer}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.secondary-btn{border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px;background:#fff;color:#111827;font-weight:600;cursor:pointer}.secondary-btn:disabled{opacity:.6;cursor:not-allowed}.announcements-page{padding:24px}.announcements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.announcement-list{display:flex;flex-direction:column;gap:16px}.announcement-card{border:1px solid #e5e7eb;padding:16px;border-radius:10px;background:#fff}.announcement-card.pinned{border-left:4px solid #3b82f6;background:#f8fbff}.announcement-top{display:flex;justify-content:space-between;align-items:center}.pin{font-size:12px;color:#2563eb}.announcement-body{margin:12px 0;white-space:pre-wrap}.announcement-footer{display:flex;justify-content:space-between;font-size:13px;color:#6b7280}.actions{display:flex;gap:8px}.primary-btn{background:#2563eb;color:#fff;padding:8px 14px;border-radius:6px;border:none}.secondary-btn{background:#e5e7eb;padding:8px 12px;border-radius:6px;border:none}.danger-btn{background:#fee2e2;color:#b91c1c;padding:8px 12px;border-radius:6px;border:none}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;padding:24px;width:420px;border-radius:12px;display:flex;flex-direction:column;gap:12px}.modal input,.modal textarea{padding:8px;border:1px solid #d1d5db;border-radius:6px}.checkbox{display:flex;gap:8px;align-items:center}.modal-actions{display:flex;justify-content:flex-end;gap:12px}.enrollment-widget{border:1px solid #eee;border-radius:12px;background:#fff;overflow:hidden}.enrollment-header{padding:12px 12px 8px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #f1f1f1}.enrollment-title{display:flex;align-items:center;gap:10px}.enrollment-title h4{margin:0}.pill{font-size:12px;padding:4px 8px;border:1px solid #eee;border-radius:999px;background:#fafafa}.enrollment-actions button{padding:8px 10px;border-radius:10px;border:1px solid #eee;background:#fff;cursor:pointer}.enrollment-error{padding:10px 12px;color:#dc143c;border-bottom:1px solid #f1f1f1}.enrollment-body{max-height:none;overflow:visible}.roster-list{max-height:70vh;overflow:auto;scrollbar-gutter:stable}.enrollment-empty{opacity:.7;padding:10px 2px}.student-list{display:flex;flex-direction:column;gap:10px}.student-card{display:flex;gap:12px;padding:10px;border:1px solid #eee;border-radius:12px}.avatar{width:44px;height:44px;border-radius:999px;object-fit:cover;border:1px solid #eee}.info{flex:1;min-width:0}.name-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid #eee;background:#fafafa}.status-enrolled{background:#eefbf0;border-color:#d6f3dc}.status-cancelled{background:#fff4e8;border-color:#ffe3c2}.status-returned{background:#eef3ff;border-color:#d8e4ff}.status-unknown{opacity:.7}.meta{margin-top:4px;display:flex;gap:10px;flex-wrap:wrap;font-size:12px;opacity:.85}.buttons{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap}.buttons button{padding:8px 10px;border-radius:10px;border:1px solid #eee;background:#fff;cursor:pointer}.buttons button.danger{border-color:#ffd3d3;background:#fff5f5}.enrollment-footer{padding:10px 12px;border-top:1px solid #f1f1f1;display:flex;justify-content:space-between;align-items:center;gap:10px}.page-pill{font-size:12px;opacity:.8}.roster-widget{width:100%;max-width:720px}.roster-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #f3f3f3}.student-hovercard{width:100%;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 10px 30px #0000001f;padding:12px}.shc-top{display:flex;gap:10px;align-items:center;margin-bottom:10px}.shc-avatar{width:48px;height:48px;border-radius:12px;object-fit:cover}.shc-name{font-weight:800}.shc-sub{opacity:.75;font-size:12px}.shc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shc-item{border:1px solid #f0f0f0;border-radius:10px;padding:8px}.shc-k{font-size:11px;opacity:.65;margin-bottom:4px}.shc-v{font-size:13px;font-weight:600}.student-row{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #eee;border-radius:14px;background:#fff;cursor:pointer;box-sizing:border-box;transition:box-shadow .15s ease}.student-row:hover{box-shadow:0 10px 26px #0000001a}.sr-avatar{width:52px;height:52px;border-radius:14px;object-fit:cover;border:1px solid #f1f1f1;flex:0 0 auto}.sr-main{flex:1;min-width:0}.sr-name-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.sr-name{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-status{font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid #eee;background:#fafafa}.sr-meta{margin-top:6px;display:flex;gap:10px;flex-wrap:wrap;font-size:12px;opacity:.82}.sr-actions{margin-top:10px}.sr-danger{padding:8px 12px;border-radius:10px;border:1px solid #ff9f9f;background:#fff;color:#d11;font-weight:700;cursor:pointer}.sr-popover{position:fixed;z-index:99999;width:380px;max-width:78vw;pointer-events:auto;border-radius:14px;border:1px solid #eee;background:#fff;box-shadow:0 16px 46px #00000029;overflow:hidden}.sr-popover-right:before,.sr-popover-left:before{content:"";position:absolute;top:18px;width:12px;height:12px;background:#fff;border:1px solid #eee;transform:rotate(45deg)}.sr-popover-right:before{left:-6px;border-right:0;border-top:0}.sr-popover-left:before{right:-6px;border-left:0;border-bottom:0}.ll-controls-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#141920f2;padding:10px 16px;border-radius:16px;z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0d}.ll-control-btn{width:42px;height:42px;border-radius:10px;border:none;cursor:pointer;background:#2a3441;color:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative;overflow:hidden}.ll-control-btn svg{width:20px;height:20px;stroke-width:2}.ll-control-btn:hover{transform:scale(1.08)}.ll-control-btn:active{transform:scale(.95)}.ll-control-with-menu{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px}.ll-control-button-group{display:flex;border-radius:10px;overflow:hidden;transition:all .2s ease}.ll-control-main{width:42px;height:42px;border:none;cursor:pointer;background:#2a3441;color:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border-right:1px solid rgba(255,255,255,.1)}.ll-control-main svg{width:20px;height:20px;stroke-width:2}.ll-control-main:hover{background:#3a4451}.ll-control-arrow{width:20px;height:42px;border:none;cursor:pointer;background:#2a3441;color:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.ll-control-arrow svg{width:12px;height:12px;stroke-width:2.5;transition:transform .2s ease}.ll-control-arrow:hover{background:#3a4451}.ll-control-arrow.open svg{transform:rotate(180deg)}.ll-control-button-group.on{box-shadow:0 0 12px #22c55e4d}.ll-control-button-group.on .ll-control-main,.ll-control-button-group.on .ll-control-arrow{background:linear-gradient(145deg,#1e3a2f,#0f2620);border-color:#22c55e4d}.ll-control-button-group.on .ll-control-main:hover,.ll-control-button-group.on .ll-control-arrow:hover{background:linear-gradient(145deg,#245238,#153028)}.ll-control-button-group.off{box-shadow:0 0 12px #ef44444d}.ll-control-button-group.off .ll-control-main,.ll-control-button-group.off .ll-control-arrow{background:linear-gradient(145deg,#3a1e1e,#261010);border-color:#ef44444d}.ll-control-button-group.off .ll-control-main:hover,.ll-control-button-group.off .ll-control-arrow:hover{background:linear-gradient(145deg,#4a2525,#301515)}.ll-control-button-group.neutral .ll-control-main,.ll-control-button-group.neutral .ll-control-arrow{background:linear-gradient(145deg,#2d3748,#1a202c)}.ll-control-button-group.neutral .ll-control-main:hover,.ll-control-button-group.neutral .ll-control-arrow:hover{background:linear-gradient(145deg,#3d4858,#2a303c)}.ll-control-label{font-size:11px;color:#a0aec0;font-weight:500;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none}.ll-control-menu{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;background:#141920fa;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:6px;z-index:1001;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 32px #00000080;animation:menu-fade-in .15s ease-out}@keyframes menu-fade-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ll-control-menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;color:#e2e8f0;font-size:13px;cursor:pointer;border-radius:8px;transition:all .15s ease;text-align:left}.ll-control-menu-item:hover{background:#ffffff1a}.ll-control-menu-item.selected{background:#3b82f626;color:#60a5fa}.ll-control-menu-item .menu-item-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:#a0aec0}.ll-control-menu-item .menu-item-icon svg{width:16px;height:16px}.ll-control-menu-item .menu-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ll-control-menu-item .menu-item-check{width:16px;height:16px;color:#60a5fa;flex-shrink:0}.ll-control-btn.on{background:linear-gradient(145deg,#1e3a2f,#0f2620);border:1px solid #22c55e;box-shadow:0 0 12px #22c55e4d}.ll-control-btn.on:hover{background:linear-gradient(145deg,#245238,#153028);box-shadow:0 0 20px #22c55e66}.ll-control-btn.off{background:linear-gradient(145deg,#3a1e1e,#261010);border:1px solid #ef4444;box-shadow:0 0 12px #ef44444d}.ll-control-btn.off:hover{background:linear-gradient(145deg,#4a2525,#301515);box-shadow:0 0 20px #ef444466}.ll-control-btn.sharing{background:linear-gradient(145deg,#1e2e4a,#10182a);border:1px solid #3b82f6;box-shadow:0 0 12px #3b82f666;animation:pulse-share 2s ease-in-out infinite}.ll-control-btn.sharing:hover{box-shadow:0 0 20px #3b82f680}@keyframes pulse-share{0%,to{box-shadow:0 0 12px #3b82f666}50%{box-shadow:0 0 24px #3b82f699}}.ll-view-toggle{background:linear-gradient(145deg,#2d3748,#1a202c);border:1px solid #4a5568}.ll-view-toggle:hover{background:linear-gradient(145deg,#3d4858,#2a303c);border-color:#718096;box-shadow:0 0 12px #7180964d}.ll-view-toggle.speaker{background:linear-gradient(145deg,#1e3a5f,#0f1f3a);border:1px solid #3b82f6;box-shadow:0 0 12px #3b82f64d}.ll-view-toggle.speaker:hover{background:linear-gradient(145deg,#254a6f,#15294a);box-shadow:0 0 16px #3b82f666}.ll-fullscreen-btn{background:linear-gradient(145deg,#2d3748,#1a202c);border:1px solid #4a5568}.ll-fullscreen-btn:hover{background:linear-gradient(145deg,#3d4858,#2a303c);border-color:#718096;box-shadow:0 0 12px #7180964d}.ll-fullscreen-btn.active{background:linear-gradient(145deg,#1e4a3a,#0f2a1f);border:1px solid #22c55e;box-shadow:0 0 12px #22c55e4d}.ll-fullscreen-btn.active:hover{background:linear-gradient(145deg,#255a4a,#153a2f);box-shadow:0 0 16px #22c55e66}.ll-leave-btn{height:42px;border-radius:10px;padding:0 16px;width:auto;min-width:90px;gap:6px;background:linear-gradient(145deg,#dc2626,#991b1b);border:1px solid #ef4444;font-weight:600;font-size:13px;letter-spacing:.5px}.ll-leave-btn svg{width:18px;height:18px}.ll-leave-btn span{font-size:14px}.ll-leave-btn:hover{background:linear-gradient(145deg,#ef4444,#b91c1c);box-shadow:0 0 20px #ef444480}.ll-controls-bar:before{content:"";position:absolute;right:110px;top:10px;bottom:10px;width:1px;background:#ffffff26}@media(max-width:640px){.ll-controls-bar{padding:8px 12px;gap:6px}.ll-control-btn{width:42px;height:42px}.ll-control-btn svg{width:18px;height:18px}.ll-control-main{width:42px;height:40px}.ll-control-main svg{width:18px;height:18px}.ll-control-arrow{width:20px;height:40px}.ll-control-arrow svg{width:12px;height:12px}.ll-control-label{font-size:10px}.ll-control-menu{min-width:180px}.ll-control-menu-item{padding:8px 10px;font-size:12px}.ll-leave-btn{padding:0 14px;min-width:80px;gap:6px}.ll-leave-btn svg{width:16px;height:16px}.ll-leave-btn span{font-size:12px}.ll-controls-bar:before{right:100px}}.ll-chat-btn{position:relative;background:linear-gradient(145deg,#2d3748,#1a202c);border:1px solid #4a5568}.ll-chat-btn:hover{background:linear-gradient(145deg,#3d4858,#2a303c);border-color:#718096;box-shadow:0 0 12px #7180964d}.ll-chat-btn.has-unread{background:linear-gradient(145deg,#1e3a5f,#0f1f3a);border:1px solid #3b82f6;box-shadow:0 0 12px #3b82f64d;animation:chat-pulse 2s ease-in-out infinite}@keyframes chat-pulse{0%,to{box-shadow:0 0 12px #3b82f64d}50%{box-shadow:0 0 20px #3b82f680}}.chat-unread-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:linear-gradient(145deg,#ef4444,#dc2626);border-radius:10px;font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #ef444466;animation:badge-pop .3s ease-out}@keyframes badge-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.chat-panel{position:fixed;top:0;right:0;width:360px;height:100vh;background:#0f141cfa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;z-index:1100;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:-8px 0 32px #00000080}.chat-panel.open{transform:translate(0)}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#141923cc}.chat-panel-title{margin:0;font-size:18px;font-weight:600;color:#f0f4f8;letter-spacing:.3px}.chat-panel-close{width:32px;height:32px;border:none;background:#ffffff14;border-radius:8px;color:#a0aec0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.chat-panel-close:hover{background:#ffffff26;color:#f0f4f8}.chat-panel-close svg{width:18px;height:18px}.chat-messages-container{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-messages-container::-webkit-scrollbar{width:6px}.chat-messages-container::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.chat-messages-container::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.chat-messages-container::-webkit-scrollbar-thumb:hover{background:#ffffff40}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#64748b;text-align:center;padding:40px 20px}.chat-empty-icon{width:48px;height:48px;color:#475569;margin-bottom:8px}.chat-empty-state p{margin:0;font-size:15px;font-weight:500;color:#94a3b8}.chat-empty-state span{font-size:13px;color:#64748b}.chat-message{max-width:85%;padding:10px 14px;border-radius:12px;background:#2d374899;animation:message-slide-in .2s ease-out}@keyframes message-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message.own-message{align-self:flex-end;background:linear-gradient(145deg,#2563eb,#1d4ed8);border-bottom-right-radius:4px}.chat-message.other-message{align-self:flex-start;background:#2d3748cc;border-bottom-left-radius:4px}.chat-message.private-message{border:1px solid rgba(168,85,247,.4);background:#581c8740}.chat-message.private-message.own-message{background:linear-gradient(145deg,#9333eab3,#7e22ceb3)}.chat-message-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.chat-message-sender{font-size:12px;font-weight:600;color:#f0f4f8}.chat-message-private{display:flex;align-items:center;gap:4px;font-size:11px;color:#c084fc}.chat-message-private .private-icon{width:12px;height:12px}.chat-message-private .private-text{opacity:.9}.chat-message-time{font-size:11px;color:#94a3b8;margin-left:auto}.chat-message-content{font-size:14px;line-height:1.5;color:#e2e8f0;word-wrap:break-word;white-space:pre-wrap}.chat-input-area{padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.1);background:#141923cc;display:flex;flex-direction:column;gap:10px}.chat-recipient-selector{position:relative}.chat-recipient-button{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#2d374880;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e2e8f0;cursor:pointer;transition:all .2s ease}.chat-recipient-button:hover{background:#2d3748cc;border-color:#fff3}.recipient-icon{display:flex;align-items:center;justify-content:center;color:#3b82f6}.recipient-icon svg{width:16px;height:16px}.recipient-name{flex:1;text-align:left;font-size:13px;font-weight:500}.recipient-arrow{width:16px;height:16px;color:#94a3b8;transition:transform .2s ease}.recipient-arrow.open{transform:rotate(180deg)}.chat-recipient-dropdown{position:absolute;bottom:calc(100% + 6px);left:0;right:0;max-height:200px;overflow-y:auto;background:#141923fa;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:6px;z-index:1200;animation:dropdown-fade-in .15s ease-out;box-shadow:0 -8px 24px #0006}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-recipient-option{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:none;border-radius:8px;color:#e2e8f0;cursor:pointer;transition:all .15s ease;text-align:left}.chat-recipient-option:hover{background:#ffffff1a}.chat-recipient-option.selected{background:#3b82f633;color:#60a5fa}.recipient-option-icon{display:flex;align-items:center;justify-content:center;color:#64748b}.chat-recipient-option.selected .recipient-option-icon{color:#60a5fa}.recipient-option-icon svg{width:16px;height:16px}.recipient-option-name{flex:1;font-size:13px;font-weight:500}.recipient-option-private{font-size:11px;color:#c084fc;font-style:italic}.chat-input-wrapper{display:flex;align-items:center;gap:8px}.chat-input{flex:1;padding:10px 14px;background:#2d374880;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#f0f4f8;font-size:14px;outline:none;transition:all .2s ease}.chat-input::placeholder{color:#64748b}.chat-input:focus{background:#2d3748cc;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.chat-input:disabled{opacity:.6;cursor:not-allowed}.chat-send-button{width:42px;height:42px;border:none;border-radius:10px;background:linear-gradient(145deg,#2563eb,#1d4ed8);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.chat-send-button:hover:not(:disabled){background:linear-gradient(145deg,#3b82f6,#2563eb);box-shadow:0 0 12px #3b82f666;transform:scale(1.05)}.chat-send-button:active:not(:disabled){transform:scale(.95)}.chat-send-button:disabled{opacity:.5;cursor:not-allowed}.chat-send-button svg{width:18px;height:18px}@media(max-width:480px){.chat-panel{width:100%}.chat-message{max-width:90%}}.controls-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:auto;padding:16px 0}.controls-wrapper .ll-chat-btn{width:48px;height:48px;border-radius:12px}.controls-wrapper .ll-chat-btn svg{width:22px;height:22px}.chat-file-input{display:none}.chat-attach-button{width:42px;height:42px;border:none;border-radius:10px;background:#2d374880;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.chat-attach-button:hover:not(:disabled){background:#2d3748cc;color:#3b82f6}.chat-attach-button:disabled{opacity:.5;cursor:not-allowed}.chat-attach-button svg{width:18px;height:18px}.chat-selected-file{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:8px;margin-bottom:8px;animation:file-selected .2s ease-out}@keyframes file-selected{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.selected-file-icon{color:#3b82f6;flex-shrink:0}.selected-file-icon svg{width:16px;height:16px}.selected-file-name{flex:1;font-size:13px;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-size{font-size:11px;color:#94a3b8;flex-shrink:0}.selected-file-clear{width:24px;height:24px;border:none;border-radius:6px;background:#ef444433;color:#ef4444;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.selected-file-clear:hover{background:#ef44444d}.selected-file-clear svg{width:14px;height:14px}.chat-file-message{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#1e283799;border-radius:8px;margin-top:6px;position:relative;overflow:hidden}.chat-file-message.sent{background:#2563eb33;border:1px solid rgba(59,130,246,.2)}.chat-file-message.received{background:#2d374899;border:1px solid rgba(255,255,255,.08)}.chat-file-message.transferring{border-color:#3b82f666}.chat-file-message.failed{border-color:#ef444466;background:#ef44441a}.chat-file-message.cancelled{border-color:#9ca3af66;opacity:.7}.chat-file-icon{width:36px;height:36px;border-radius:8px;background:#3b82f633;color:#3b82f6;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-file-icon svg{width:18px;height:18px}.chat-file-message.failed .chat-file-icon{background:#ef444433;color:#ef4444}.chat-file-message.cancelled .chat-file-icon{background:#9ca3af33;color:#9ca3af}.chat-file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-file-name{font-size:13px;font-weight:500;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-file-size{font-size:11px;color:#94a3b8;display:flex;align-items:center;gap:4px}.chat-file-separator{color:#64748b}.chat-file-status-text{font-weight:500;color:#3b82f6}.chat-file-status-text.failed{color:#ef4444}.chat-file-status-text.cancelled{color:#9ca3af}.chat-file-progress-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#3b82f633;overflow:hidden}.chat-file-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);transition:width .3s ease;animation:progress-shine 1.5s ease-in-out infinite}@keyframes progress-shine{0%{background:linear-gradient(90deg,#3b82f6,#60a5fa)}50%{background:linear-gradient(90deg,#60a5fa,#93c5fd)}to{background:linear-gradient(90deg,#3b82f6,#60a5fa)}}.chat-file-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.chat-file-action-btn{width:30px;height:30px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.chat-file-action-btn svg{width:14px;height:14px}.chat-file-action-btn.cancel{background:#ef444433;color:#ef4444}.chat-file-action-btn.cancel:hover{background:#ef44444d;transform:scale(1.05)}.chat-file-action-btn.retry{background:#f59e0b33;color:#f59e0b}.chat-file-action-btn.retry:hover{background:#f59e0b4d;transform:scale(1.05)}.chat-file-action-btn.download{background:#22c55e33;color:#22c55e}.chat-file-action-btn.download:hover{background:#22c55e4d;transform:scale(1.05)}.chat-file-status-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.chat-file-status-icon svg{width:16px;height:16px}.chat-file-status-icon.success{color:#22c55e}.chat-file-status-icon.error{color:#ef4444}.chat-message.has-file{padding-bottom:8px}.chat-message.has-file .chat-message-content{margin-bottom:4px}.leave-confirm-content{display:block}.leave-confirm-warning{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.5rem;text-align:center}.leave-confirm-warning .warning-icon{font-size:2.5rem;color:#f59e0b}.leave-confirm-message{font-size:1rem;color:#374151;line-height:1.5;margin:0}.leave-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.leave-option{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.leave-option-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;font-size:1.5rem;flex-shrink:0}.leave-option-text{display:flex;flex-direction:column;gap:.25rem}.leave-option-title{font-weight:600;font-size:1rem}.leave-option-desc{font-size:.85rem;opacity:.8;line-height:1.4}.leave-option--leave{border:2px solid #e5e7eb;background:#f9fafb;color:#374151}.leave-option--leave:hover{border-color:#3b82f6;background:#eff6ff}.leave-option--leave .leave-option-icon{background:#e5e7eb;color:#6b7280}.leave-option--leave:hover .leave-option-icon{background:#dbeafe;color:#3b82f6}.leave-option--end-all{border:2px solid #fecaca;background:#fef2f2;color:#991b1b}.leave-option--end-all:hover{border-color:#ef4444;background:#fee2e2}.leave-option--end-all .leave-option-icon{background:#fecaca;color:#dc2626}.leave-option--end-all:hover .leave-option-icon{background:#fca5a5;color:#b91c1c}.leave-confirm-actions{display:flex;gap:.75rem;justify-content:center;padding-top:.5rem;border-top:1px solid #e5e7eb}.leave-confirm-btn{padding:.625rem 1.5rem;border-radius:8px;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .15s ease}.leave-confirm-btn--cancel{border:1px solid #d1d5db;background:#f3f4f6;color:#374151}.leave-confirm-btn--cancel:hover{background:#e5e7eb;border-color:#9ca3af}.session-ended-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem 0}.session-ended-icon-wrapper{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#dcfce7,#bbf7d0);margin-bottom:1.5rem}.session-ended-icon{font-size:2.5rem;color:#16a34a}.session-ended-title{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0 0 .75rem}.session-ended-message{font-size:.95rem;color:#6b7280;line-height:1.6;margin:0 0 2rem;max-width:320px}.session-ended-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 2rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px #3b82f659}.session-ended-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f666}.session-ended-btn:active{transform:translateY(0)}.session-ended-btn svg{font-size:1.1rem}.share-blocked-content{display:block}.share-blocked-warning{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.5rem;text-align:center}.share-blocked-warning .warning-icon{font-size:2.5rem;color:#f59e0b}.share-blocked-message{font-size:1rem;color:#374151;line-height:1.5;margin:0}.share-blocked-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.share-blocked-option{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.share-blocked-option-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;font-size:1.5rem;flex-shrink:0}.share-blocked-option-text{display:flex;flex-direction:column;gap:.25rem}.share-blocked-option-title{font-weight:600;font-size:1rem}.share-blocked-option-desc{font-size:.85rem;opacity:.8;line-height:1.4}.share-blocked-option--stop{border:2px solid #fecaca;background:#fef2f2;color:#991b1b}.share-blocked-option--stop:hover{border-color:#ef4444;background:#fee2e2}.share-blocked-option--stop .share-blocked-option-icon{background:#fecaca;color:#dc2626}.share-blocked-option--stop:hover .share-blocked-option-icon{background:#fca5a5;color:#b91c1c}.share-blocked-option--share-own{border:2px solid #bfdbfe;background:#eff6ff;color:#1e40af}.share-blocked-option--share-own:hover{border-color:#3b82f6;background:#dbeafe}.share-blocked-option--share-own .share-blocked-option-icon{background:#bfdbfe;color:#2563eb}.share-blocked-option--share-own:hover .share-blocked-option-icon{background:#93c5fd;color:#1d4ed8}.share-blocked-actions{display:flex;gap:.75rem;justify-content:center;padding-top:.5rem;border-top:1px solid #e5e7eb}.share-blocked-btn{padding:.625rem 1.5rem;border-radius:8px;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .15s ease}.share-blocked-btn--cancel{border:1px solid #d1d5db;background:#f3f4f6;color:#374151}.share-blocked-btn--cancel:hover{background:#e5e7eb;border-color:#9ca3af}.video-off-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(145deg,#1a2028,#0d1117);position:relative}.video-off-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(145deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:2px;box-shadow:0 8px 24px #3b82f64d;border:3px solid rgba(255,255,255,.1)}.video-off-name{font-size:14px;font-weight:600;color:#e2e8f0;text-align:center;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.5)}.video-off-placeholder.minimized .video-off-avatar{width:48px;height:48px;font-size:16px}.video-off-placeholder.minimized .video-off-name{font-size:11px}.self-video-wrapper .video-off-placeholder{border-radius:var(--ll-radius-lg, 16px)}.self-video-wrapper .video-off-avatar{width:64px;height:64px;font-size:22px;background:linear-gradient(145deg,#22c55e,#16a34a);box-shadow:0 8px 24px #22c55e4d}.peer-video.video-off-placeholder{height:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.video-label{position:absolute;bottom:10px;left:10px;display:flex;align-items:center;gap:6px;background:#000000bf;color:var(--ll-text, #e6edf3);padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.5px;max-width:calc(100% - 20px)}.video-label-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.video-label-mic{display:flex;align-items:center;justify-content:center;flex-shrink:0}.video-label-mic svg{width:14px;height:14px}.video-label-mic svg[data-icon=mic-off],.video-label-mic .fi-mic-off{color:var(--ll-danger, #ef4444)}.video-label-mic svg[data-icon=mic],.video-label-mic .fi-mic{color:var(--ll-success, #22c55e)}.peer-video-slot{position:relative;width:100%;max-width:560px;aspect-ratio:16 / 9;background:linear-gradient(145deg,var(--ll-bg-card, #1a2028),var(--ll-bg-dark, #0a0e14));border-radius:var(--ll-radius, 12px);overflow:hidden;border:2px solid var(--ll-border, #2a3441);transition:all .2s ease;box-shadow:0 4px 16px #0000004d;display:none}.peer-video-slot.active{display:block}.peer-video-slot:hover{border-color:var(--ll-accent, #3b82f6);box-shadow:0 8px 24px #0006,0 0 12px var(--ll-accent-glow, rgba(59, 130, 246, .25));z-index:2}.peer-video-slot.speaking{border-color:var(--ll-success, #22c55e);box-shadow:0 0 20px #22c55e80,0 0 40px #22c55e33;animation:slot-speaker-pulse 1.5s ease-in-out infinite}@keyframes slot-speaker-pulse{0%,to{box-shadow:0 0 20px #22c55e80,0 0 40px #22c55e33}50%{box-shadow:0 0 30px #22c55eb3,0 0 60px #22c55e4d}}.peer-video-container{width:100%;height:100%;background:#000}.peer-video-container video-player,.peer-video-container canvas,.peer-video-container video{width:100%;height:100%;object-fit:cover}.peer-video-slot .video-label{position:absolute;bottom:10px;left:10px;z-index:10}.peer-video-slot .video-off-placeholder{position:absolute;inset:0;z-index:5}.peer-video-slot.speaker-main{flex:1 1 100%;max-width:100%;width:100%;min-height:400px;aspect-ratio:16 / 9;border-color:var(--ll-accent, #3b82f6);box-shadow:0 8px 32px #0006,0 0 20px var(--ll-accent-glow, rgba(59, 130, 246, .25));order:-1}.peer-video-slot.speaker-main.speaking{border-color:var(--ll-success, #22c55e);box-shadow:0 0 24px #22c55e80,0 0 48px #22c55e40}.peer-video-slot.speaker-main:after{content:"Speaker";position:absolute;bottom:12px;right:12px;background:#000000bf;color:var(--ll-text, #e6edf3);padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.5px;z-index:10}.peers-grid.minimized .peer-video-slot{max-width:180px;aspect-ratio:4 / 3}.peers-grid.minimized .peer-video-slot .video-off-avatar{width:40px;height:40px;font-size:14px}.peers-grid.minimized .peer-video-slot .video-off-name{font-size:10px}.peers-grid.speaker-strip .peer-video-slot:not(.speaker-main){flex:0 0 auto;max-width:180px;min-width:140px;aspect-ratio:4 / 3;order:0}@media(max-width:640px){.peer-video-slot.speaker-main{min-height:250px}.peers-grid.speaker-strip .peer-video-slot:not(.speaker-main){max-width:120px;min-width:100px}}.camera-preview-wrapper{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#0f1318,#1a1f2e);border:1px solid rgba(255,255,255,.1);margin-bottom:16px}.camera-preview-container{display:block;width:100%;height:100%}.camera-preview-player{width:100%;height:100%;object-fit:cover}.camera-preview-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0009;color:#94a3b8;font-size:14px;z-index:10}.camera-preview-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:#3b82f6;border-radius:50%;animation:preview-spin 1s linear infinite}@keyframes preview-spin{to{transform:rotate(360deg)}}.camera-preview-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ef44441a;color:#f87171;font-size:14px;padding:16px;text-align:center;z-index:10}.camera-preview-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:14px}.camera-preview-section{display:flex;flex-direction:column;gap:12px}.camera-preview-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#0003;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.camera-preview-toggle-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#e2e8f0}.camera-preview-toggle-label svg{width:18px;height:18px;color:#64748b}.camera-preview-toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.camera-preview-toggle-switch input{opacity:0;width:0;height:0}.camera-preview-toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ffffff1a;border-radius:24px;transition:all .25s ease}.camera-preview-toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#94a3b8;border-radius:50%;transition:all .25s ease}.camera-preview-toggle-switch input:checked+.camera-preview-toggle-slider{background:linear-gradient(145deg,#3b82f6,#2563eb)}.camera-preview-toggle-switch input:checked+.camera-preview-toggle-slider:before{transform:translate(20px);background:#fff}.camera-preview-toggle-switch input:focus+.camera-preview-toggle-slider{box-shadow:0 0 0 3px #3b82f633}.camera-preview-info-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 14px;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;border:1px solid rgba(255,255,255,.1);color:#94a3b8;font-size:12px;font-weight:500;z-index:15;white-space:nowrap}.camera-preview-info-banner svg{width:14px;height:14px;color:#64748b}.camera-preview-disabled{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(145deg,#0f1318,#1a1f2e);color:#64748b;font-size:14px;z-index:10}.camera-preview-disabled-icon{width:48px;height:48px;color:#475569}@media(max-width:480px){.camera-preview-wrapper{border-radius:10px;margin-bottom:12px}.camera-preview-toggle-row{padding:10px 12px}.camera-preview-toggle-label{font-size:13px;gap:8px}.camera-preview-info-banner{padding:6px 12px;font-size:11px}}.audio-preview-section{padding:16px;background:#0003;border-radius:12px;margin-bottom:16px}.audio-preview-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:14px;font-weight:600;color:#e2e8f0}.audio-preview-icon{width:18px;height:18px;color:#64748b}.audio-preview-error{padding:10px 14px;margin-bottom:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:13px}.volume-level-container{display:flex;align-items:center;gap:12px;margin-bottom:16px}.volume-level-label{font-size:13px;color:#94a3b8;white-space:nowrap;min-width:100px}.volume-level-bar{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;position:relative}.volume-level-fill{height:100%;background:linear-gradient(90deg,#22c55e,#86efac);border-radius:4px;transition:width .1s ease-out;min-width:0}.volume-level-fill.active{animation:volume-pulse .5s ease-in-out infinite alternate}@keyframes volume-pulse{0%{opacity:.8}to{opacity:1}}.volume-level-value{font-size:12px;color:#64748b;min-width:40px;text-align:right;font-family:monospace}.audio-test-btn{width:100%;padding:12px 20px;border:none;border-radius:10px;background:linear-gradient(145deg,#3b82f6,#2563eb);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.audio-test-btn:hover:not(:disabled){background:linear-gradient(145deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.audio-test-btn:active:not(:disabled){transform:translateY(0)}.audio-test-btn:disabled{opacity:.5;cursor:not-allowed}.audio-test-btn.recording{background:linear-gradient(145deg,#ef4444,#dc2626);animation:recording-pulse 1s ease-in-out infinite}.audio-test-btn.recording:before{content:"";width:10px;height:10px;background:#fff;border-radius:50%;animation:recording-dot 1s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}@keyframes recording-dot{0%,to{opacity:1}50%{opacity:.5}}.audio-test-btn.playing{background:linear-gradient(145deg,#22c55e,#16a34a)}.audio-test-btn.playing:before{content:"";width:0;height:0;border-left:8px solid white;border-top:5px solid transparent;border-bottom:5px solid transparent;margin-right:4px}.audio-test-btn.active{background:linear-gradient(145deg,#f59e0b,#d97706)}.audio-preview-hint{margin:12px 0 0;font-size:12px;color:#64748b;line-height:1.5}@media(max-width:480px){.audio-preview-section{padding:12px;margin-bottom:12px}.volume-level-container{flex-wrap:wrap;gap:8px}.volume-level-label{min-width:auto;width:100%}.volume-level-bar{order:1;flex:1}.volume-level-value{order:2}.audio-test-btn{padding:10px 16px;font-size:13px}}.device-settings-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:6000;animation:overlay-fade-in .2s ease-out}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.device-settings-modal{background:linear-gradient(145deg,#1a1f2e,#0f1318);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:95%;max-width:480px;max-height:90vh;overflow:hidden;box-shadow:0 24px 48px #00000080,0 0 0 1px #ffffff0d;animation:modal-slide-up .25s ease-out}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.device-settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.device-settings-title{margin:0;font-size:20px;font-weight:600;color:#f0f4f8;letter-spacing:-.02em}.device-settings-close{width:36px;height:36px;border:none;border-radius:10px;background:#ffffff0d;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.device-settings-close svg{width:20px;height:20px}.device-settings-close:hover{background:#ffffff1a;color:#f0f4f8}.device-settings-tabs{display:flex;gap:4px;padding:12px 24px;background:#0003}.device-settings-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:none;border-radius:10px;background:transparent;color:#64748b;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.device-settings-tab svg{width:18px;height:18px}.device-settings-tab:hover{background:#ffffff0d;color:#94a3b8}.device-settings-tab.active{background:linear-gradient(145deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.device-settings-content{padding:24px;overflow-y:auto;max-height:calc(90vh - 160px)}.device-settings-section{display:flex;flex-direction:column;gap:24px}.device-field{display:flex;flex-direction:column;gap:10px}.device-field-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#e2e8f0}.device-field-icon{width:18px;height:18px;color:#64748b}.device-field-hint{margin:0;font-size:12px;color:#64748b;line-height:1.5}.device-select{width:100%;padding:12px 40px 12px 16px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#0000004d;color:#f0f4f8;font-size:14px;font-family:inherit;cursor:pointer;transition:all .15s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.device-select:hover{border-color:#fff3;background-color:#0006}.device-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.device-select option{background:#1a1f2e;color:#f0f4f8;padding:8px}.toggle-row{display:flex;align-items:center;gap:12px}.toggle-switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ffffff1a;border-radius:26px;transition:all .25s ease}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background:#94a3b8;border-radius:50%;transition:all .25s ease}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(145deg,#22c55e,#16a34a)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px);background:#fff}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #22c55e33}.toggle-label{font-size:14px;color:#94a3b8;font-weight:500}@media(max-width:480px){.device-settings-modal{width:100%;max-width:none;border-radius:16px 16px 0 0;max-height:85vh;position:fixed;bottom:0}.device-settings-header{padding:16px 20px 12px}.device-settings-title{font-size:18px}.device-settings-tabs{padding:10px 20px}.device-settings-tab{padding:10px 12px;font-size:13px}.device-settings-content{padding:20px}.device-select{padding:10px 14px}}:root{--ll-bg-dark: #0a0e14;--ll-bg-panel: #131920;--ll-bg-card: #1a2028;--ll-border: #2a3441;--ll-text: #e6edf3;--ll-text-muted: #7d8590;--ll-accent: #3b82f6;--ll-accent-glow: rgba(59, 130, 246, .25);--ll-success: #22c55e;--ll-danger: #ef4444;--ll-radius: 12px;--ll-radius-lg: 16px}.live-lecture-wrapper{width:100%;min-height:100vh;background:var(--ll-bg-dark);padding-top:0;box-sizing:border-box}.live-lecture-page{display:flex;width:100%;height:100vh;background:var(--ll-bg-dark);gap:16px;padding:16px;box-sizing:border-box}.lecture-stage{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0;overflow:hidden}.peer-screenshare-area{display:none;background:var(--ll-bg-panel);border-radius:var(--ll-radius-lg);border:1px solid var(--ll-border);overflow:hidden;box-shadow:0 8px 32px #0006}.peer-screenshare-area.active{display:flex;flex:1;min-height:400px}.peer-screenshare-player{width:100%;height:100%;background:#000;border-radius:var(--ll-radius)}.peers-grid{flex:1;display:flex;align-items:center;justify-content:center;background:var(--ll-bg-panel);border-radius:var(--ll-radius-lg);border:1px solid var(--ll-border);overflow:hidden;box-shadow:0 8px 32px #0000004d;transition:all .3s ease}.peers-grid.minimized{flex:0 0 140px;min-height:140px}.peers-container{width:100%;height:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;padding:16px;box-sizing:border-box;align-content:center;justify-items:center}.peers-grid.minimized .peers-container{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;padding:8px}.peer-video{width:100%;max-width:560px;aspect-ratio:16 / 9;background:linear-gradient(145deg,var(--ll-bg-card),var(--ll-bg-dark));border-radius:var(--ll-radius);overflow:hidden;border:2px solid var(--ll-border);transition:all .2s ease;box-shadow:0 4px 16px #0000004d}.peer-video:hover{border-color:var(--ll-accent);box-shadow:0 8px 24px #0006,0 0 12px var(--ll-accent-glow);z-index:2}.peer-video.speaking{border-color:var(--ll-success);box-shadow:0 0 20px #22c55e80,0 0 40px #22c55e33;animation:speaker-pulse 1.5s ease-in-out infinite}@keyframes speaker-pulse{0%,to{box-shadow:0 0 20px #22c55e80,0 0 40px #22c55e33}50%{box-shadow:0 0 30px #22c55eb3,0 0 60px #22c55e4d}}.peers-grid.minimized .peer-video{max-width:180px;aspect-ratio:4 / 3}.lecture-sidebar{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:12px}.self-video-wrapper{position:relative;width:100%;aspect-ratio:4 / 3;background:linear-gradient(145deg,var(--ll-bg-card),var(--ll-bg-panel));border-radius:var(--ll-radius-lg);overflow:hidden;border:2px solid var(--ll-accent);box-shadow:0 8px 24px #0006,0 0 20px var(--ll-accent-glow)}.self-video-container{width:100%;height:100%;background:#000}.self-video{width:100%;height:100%;object-fit:cover}.self-screenshare-preview{display:none;position:relative;width:100%;aspect-ratio:16 / 9;background:linear-gradient(145deg,var(--ll-bg-card),var(--ll-bg-panel));border-radius:var(--ll-radius);overflow:hidden;border:2px solid var(--ll-success);box-shadow:0 4px 16px #0000004d,0 0 16px #22c55e33}.self-screenshare-preview.active{display:block}.preview-label{position:absolute;top:8px;left:8px;background:var(--ll-success);color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;z-index:10;text-transform:uppercase;letter-spacing:.5px}.self-screenshare-video{width:100%;height:100%;object-fit:contain;background:#000}.peers-container:empty:after{content:"Waiting for participants...";color:var(--ll-text-muted);font-size:14px;text-align:center;padding:40px;font-weight:500}.self-video-wrapper .video-off-placeholder{position:absolute;inset:0;z-index:5}.self-video-wrapper.video-off .self-label{z-index:10}.peer-video.video-off-placeholder{position:relative}.peers-grid.minimized .peer-video.video-off-placeholder .video-off-avatar{width:40px;height:40px;font-size:14px}.peers-grid.minimized .peer-video.video-off-placeholder .video-off-name{font-size:10px}.peers-grid.speaker-strip .peer-video.speaker-main.video-off-placeholder .video-off-avatar{width:100px;height:100px;font-size:36px}.peers-grid.speaker-strip .peer-video.speaker-main.video-off-placeholder .video-off-name{font-size:18px}.peers-grid.speaker-strip{display:flex;flex-direction:column;gap:12px}.peers-grid.speaker-strip .peers-container{display:flex;flex-wrap:wrap;gap:12px;padding:12px;align-items:flex-start;justify-content:center;align-content:flex-start}.peers-grid.speaker-strip .peer-video.speaker-main{flex:1 1 100%;max-width:100%;width:100%;min-height:400px;aspect-ratio:16 / 9;border-color:var(--ll-accent);box-shadow:0 8px 32px #0006,0 0 20px var(--ll-accent-glow);order:-1}.peers-grid.speaker-strip .peer-video:not(.speaker-main){flex:0 0 auto;max-width:180px;min-width:140px;aspect-ratio:4 / 3;order:0}.peers-grid.speaker-strip .peer-video.speaker-main.speaking{border-color:var(--ll-success);box-shadow:0 0 24px #22c55e80,0 0 48px #22c55e40}.peer-video.speaker-main:after{content:"Speaker";position:absolute;bottom:12px;left:12px;background:#000000bf;color:var(--ll-text);padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.5px;z-index:10}.peers-grid,.peers-container,.peer-video{transition:all .3s ease}.peer-video video,.peer-video canvas,.peer-video video-player{width:100%;height:100%;object-fit:cover;transition:all .3s ease}.peer-video *{transition:width .3s ease,height .3s ease,transform .3s ease}.peers-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;background:#0000004d;border-radius:8px;margin-top:12px}.pagination-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:var(--ll-bg-card, #1a2028);color:var(--ll-text, #e6edf3);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid var(--ll-border, #2a3441)}.pagination-btn:hover:not(:disabled){background:var(--ll-accent, #3b82f6);border-color:var(--ll-accent, #3b82f6)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{font-size:14px;font-weight:500;color:var(--ll-text-muted, #7d8590);min-width:60px;text-align:center}.self-video-wrapper .video-label,.self-video-wrapper.video-off .video-label{z-index:10}@media(max-width:1024px){.live-lecture-page{flex-direction:column}.lecture-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;gap:12px}.self-video-wrapper,.self-screenshare-preview{width:200px;flex-shrink:0}}@media(max-width:640px){.live-lecture-page{padding:8px;gap:8px}.lecture-sidebar{flex-direction:column}.self-video-wrapper,.self-screenshare-preview{width:100%}.peers-container{grid-template-columns:1fr}.peers-grid.speaker-strip .peer-video.speaker-main{min-height:250px}.peers-grid.speaker-strip .peer-video:not(.speaker-main){max-width:120px;min-width:100px}}:root{--lib-bg: #f8f9fc;--lib-text: #1f2937;--lib-subtext: #6b7280;--lib-primary: #3b82f6;--lib-danger: #ef4444;--lib-danger-bg: #fee2e2;--lib-border: #e5e7eb;--lib-card-bg: #ffffff;--lib-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03);--lib-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, .08)}.lib-container{max-width:1100px;margin:0 auto;padding:28px 20px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--lib-text);background:var(--lib-bg);min-height:100vh}.lib-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.lib-header-right{display:flex;align-items:center;gap:10px}.lib-header h2{font-size:24px;font-weight:700;margin:0;color:#111827}.lib-count{background:#e0e7ff;color:#4338ca;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600}.btn-add{background:var(--lib-primary);border:1px solid var(--lib-primary);color:#fff;padding:8px 14px;border-radius:8px;font-weight:600;cursor:pointer}.btn-add:hover{filter:brightness(.95)}.lib-loading,.lib-empty{text-align:center;padding:60px;background:var(--lib-card-bg);border-radius:12px;border:1px dashed var(--lib-border);color:var(--lib-subtext)}.lib-error,.upload-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:14px}.spinner{width:30px;height:30px;border:3px solid #e5e7eb;border-top-color:var(--lib-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 15px}@keyframes spin{to{transform:rotate(360deg)}}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.upload-card{background:#fff;border:1px solid var(--lib-border);border-radius:12px;box-shadow:var(--lib-shadow);padding:16px;margin-bottom:20px}.upload-card h3{margin:0 0 12px;font-size:17px}.upload-row{margin-bottom:12px}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.upload-grid .full{grid-column:1 / -1}.upload-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#374151}.upload-card input,.upload-card select{border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;font-size:14px;background:#fff}.course-selection{border:1px dashed #d1d5db;border-radius:10px;padding:10px;margin-top:10px}.course-selection p{margin:0 0 8px;font-size:13px;color:#4b5563;font-weight:600}.course-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.course-checks label{flex-direction:row;align-items:center;gap:6px;font-weight:500;font-size:13px}.upload-actions{margin-top:12px;display:flex;gap:8px}button,.btn-view,.btn-ghost,.btn-file-label,.mini-btn{border:1px solid #d1d5db;background:#fff;color:#111827;padding:7px 11px;border-radius:8px;cursor:pointer;font-size:13px}button:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:#f9fafb}.btn-view{border-color:#93c5fd;color:#1d4ed8}.mini-btn{font-size:12px;padding:5px 8px}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px}.lib-card{background:var(--lib-card-bg);border:1px solid var(--lib-border);border-radius:12px;box-shadow:var(--lib-shadow);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;overflow:hidden}.lib-card:hover{transform:translateY(-2px);box-shadow:var(--lib-shadow-hover)}.card-top{padding:14px;display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid #f1f5f9}.file-icon{font-size:24px;background:#f3f4f6;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px}.file-info{flex:1;min-width:0}.file-info h3{margin:0 0 4px;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{display:flex;gap:8px;font-size:12px;color:var(--lib-subtext)}.file-mime{text-transform:uppercase;background:#f3f4f6;padding:0 4px;border-radius:4px;font-weight:700;font-size:10px;line-height:1.6}.card-body{padding:14px;flex:1;background:#fafafa}.section-title{font-size:11px;text-transform:uppercase;color:#9ca3af;margin:0 0 8px;letter-spacing:.05em;font-weight:700}.course-list{display:flex;flex-direction:column;gap:8px}.course-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid #e5e7eb;padding:8px 10px;border-radius:8px}.course-details{display:flex;flex-direction:column;gap:3px;min-width:0}.c-name{font-weight:600;color:#374151;font-size:13px}.c-meta-row{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px}.tag.deadline{color:#b91c1c;background:#fef2f2}.course-item-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.btn-icon-remove{background:transparent;border:none;color:#9ca3af;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .2s}.btn-icon-remove:hover{background:#fee2e2;color:#ef4444}.card-footer{padding:10px 14px;border-top:1px solid var(--lib-border);background:#fff;display:flex;justify-content:flex-end;gap:8px}.btn-file-label{display:inline-flex;align-items:center}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;z-index:1000}.modal-card{width:min(520px,92vw);background:#fff;border-radius:12px;border:1px solid var(--lib-border);box-shadow:0 20px 40px #00000026;padding:16px}.modal-card h3{margin-top:0}.modal-card label{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;font-size:13px;font-weight:600}.modal-card input{border:1px solid #d1d5db;border-radius:8px;padding:8px 10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.panel-wrap{margin-top:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;overflow:hidden}.submissions-container{margin-top:14px;border:1px solid #e5e7eb;border-radius:12px;padding:14px;background:#fff}.submissions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.table-wrapper{overflow-x:auto}.submissions-table{width:100%;border-collapse:collapse;font-size:13px}.submissions-table th,.submissions-table td{text-align:left;padding:10px;border-bottom:1px solid #f1f5f9}.submissions-table th{color:#4b5563;font-weight:700}@media(max-width:760px){.lib-header{flex-direction:column;align-items:flex-start}.lib-header-right{width:100%;justify-content:space-between}.upload-grid,.lib-grid{grid-template-columns:1fr}}.lrw{width:340px;min-width:320px;max-width:380px;border:1px solid #eee;border-radius:12px;background:#fff;overflow:hidden;display:flex;flex-direction:column;height:calc(100vh - 220px)}.lrw-header{padding:14px 14px 10px;border-bottom:1px solid #f1f1f1;display:flex;justify-content:space-between;gap:12px}.lrw-header h3{margin:0;font-size:15px}.lrw-header p{margin:6px 0 0;font-size:12px;color:#666;line-height:1.35}.lrw-refresh{height:34px;padding:0 10px;border:1px solid #eee;background:#fafafa;border-radius:10px;cursor:pointer}.lrw-tabs{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid #f1f1f1;overflow-x:auto}.lrw-tab{padding:8px 10px;border-radius:10px;border:1px solid #eee;background:#fff;font-size:12px;cursor:pointer;white-space:nowrap}.lrw-tab.active{border-color:#cfe4ff;background:#eef6ff}.lrw-error{padding:10px 12px;font-size:12px;color:#b42318;background:#fff4f4;border-bottom:1px solid #ffd7d7}.lrw-list{padding:10px 12px 14px;overflow:auto;display:flex;flex-direction:column;gap:10px}.lrw-empty{padding:18px 8px;font-size:12px;color:#666;text-align:center}.lrw-card{border:1px solid #eee;border-radius:12px;padding:10px;cursor:pointer;background:#fff}.lrw-card.active{border-color:#cfe4ff;box-shadow:0 0 0 3px #0078ff14}.lrw-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.lrw-title{font-weight:600;font-size:13px;line-height:1.25}.lrw-pill{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid #eee;background:#fafafa;white-space:nowrap}.lrw-meta{margin-top:8px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:#444}.lrw-meta-row{display:flex;gap:8px}.lrw-label{color:#777;min-width:52px}.lrw-actions{margin-top:10px;display:flex;gap:8px}.lrw-btn{flex:1;height:34px;border-radius:10px;border:1px solid #eee;cursor:pointer}.lrw-btn.approve{background:#eefaf0;border-color:#c9f0d1}.lrw-btn.reject{background:#fff4f4;border-color:#ffd7d7}:root{--primary: #2563eb;--bg-subtle: #f8fafc;--border-color: #e2e8f0;--text-main: #0f172a;--text-muted: #64748b;--radius: 12px}.schedule-page{max-width:1200px;margin:0 auto;padding:32px 24px;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif}.schedule-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:20px}.page-title{margin:0 0 6px;font-size:24px;font-weight:700;color:var(--text-main);letter-spacing:-.5px}.page-subtitle{margin:0;font-size:14px;color:var(--text-muted)}.segmented-control{display:inline-flex;background:#f1f5f9;padding:4px;border-radius:10px;position:relative}.seg-btn{position:relative;border:none;background:transparent;padding:8px 16px;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;border-radius:8px;transition:all .2s ease;z-index:2}.seg-btn:hover{color:var(--text-main)}.seg-btn.active{color:var(--primary);background:#fff;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;font-weight:600}.schedule-content{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:0 4px 6px -1px #0000000d;overflow:hidden;min-height:600px}.schedule-split{display:flex;gap:16px;align-items:stretch}.schedule-left{flex:1;min-width:0}.schedule-right{width:340px;min-width:320px;max-width:380px}:root{--app-font: "Nunito", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"}html,body{font-family:var(--app-font)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}html,body,#root{height:100%;width:100%}body{background:#f8fafc;color:#111827;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input{font-family:inherit;border:none;outline:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}:root{--primary: #4f46e5;--primary-dark: #4338ca;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-600: #4b5563;--gray-900: #111827}.container{max-width:1200px;margin:0 auto;padding:1rem 1.5rem}
