:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--bg-app:#0c101d;--bg-gradient:radial-gradient(circle at 15% 10%, #1e3a8a73, transparent 45%), radial-gradient(circle at 85% 85%, #4338ca4d, transparent 45%), #0a0e1a;--surface-card:#131a2cbf;--surface-hover:#1c2641d9;--surface-input:#0e1424e6;--border-subtle:#ffffff14;--border-focus:#6366f199;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#3b82f6;--accent-hover:#2563eb;--accent-glow:#3b82f640;--badge-lecture-bg:#3b82f626;--badge-lecture-text:#60a5fa;--badge-practice-bg:#10b98126;--badge-practice-text:#34d399;--badge-other-bg:#f59e0b26;--badge-other-text:#fbbf24;--btn-zoom:#2d8cff;--btn-zoom-bg:#2d8cff1f;--btn-zoom-hover:#2d8cff40;--btn-meet:#00ac47;--btn-meet-bg:#00ac471f;--btn-meet-hover:#00ac4740;--shadow-sm:0 2px 8px #0003;--shadow-lg:0 16px 36px -8px #0006;--backdrop-blur:blur(16px);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px}[data-theme=light]{--bg-app:#f1f5f9;--bg-gradient:radial-gradient(circle at 10% 10%, #dbeafecc, transparent 50%), radial-gradient(circle at 90% 90%, #eef2ffe6, transparent 50%), #f8fafc;--surface-card:#ffffffd9;--surface-hover:#f1f5f9f2;--surface-input:#fff;--border-subtle:#e2e8f0e6;--border-focus:#3b82f699;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-primary:#2563eb;--accent-hover:#1d4ed8;--accent-glow:#2563eb33;--badge-lecture-bg:#eff6ff;--badge-lecture-text:#1d4ed8;--badge-practice-bg:#ecfdf5;--badge-practice-text:#047857;--badge-other-bg:#fffbeb;--badge-other-text:#b45309;--btn-zoom-bg:#2d8cff1a;--btn-zoom-hover:#2d8cff33;--btn-meet-bg:#00ac471a;--btn-meet-hover:#00ac4733;--shadow-sm:0 2px 8px #0000000a;--shadow-lg:0 12px 32px -4px #0f172a14}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-gradient);color:var(--text-primary);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;padding-bottom:60px;line-height:1.5}.container{max-width:1680px;margin:0 auto;padding:0 16px}.app-header{-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--surface-card);border-bottom:1px solid var(--border-subtle);z-index:100;box-shadow:var(--shadow-sm);transition:all .3s;position:sticky;top:0}.header-inner{justify-content:space-between;padding:16px 0}.brand,.header-inner{align-items:center;display:flex}.brand{color:inherit;gap:14px;text-decoration:none}.brand-icon{border-radius:var(--radius-md);color:#fff;width:44px;height:44px;box-shadow:0 4px 14px var(--accent-glow);background:linear-gradient(135deg,#1e40af,#3b82f6);justify-content:center;font-size:20px;font-weight:800}.brand-icon,.brand-title{align-items:center;display:flex}.brand-title{letter-spacing:-.02em;gap:8px;font-size:1.25rem;font-weight:700}.brand-title span.highlight{color:var(--accent-primary)}.brand-subtitle{color:var(--text-muted);font-size:.8rem;font-weight:500}.header-actions{gap:12px}.header-actions,.icon-btn{align-items:center;display:flex}.icon-btn{background:var(--surface-input);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;justify-content:center;width:40px;height:40px;transition:all .2s}.icon-btn:hover{color:var(--text-primary);border-color:var(--accent-primary);background:var(--surface-hover);transform:translateY(-1px)}.panel-section{margin-top:10px}.filter-panel{background:var(--surface-card);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:8px;padding:10px 14px;transition:all .3s;display:flex}.selectors-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;display:grid}.form-group{flex-direction:column;gap:3px;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:flex}.select-wrapper{position:relative}.custom-select{width:100%;color:var(--text-primary);background:var(--surface-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;appearance:none;outline:none;height:34px;padding:5px 28px 5px 10px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .2s}.custom-select:hover:not(:disabled){border-color:#6366f166}.custom-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.custom-select:disabled{opacity:.5;cursor:not-allowed}.select-arrow{pointer-events:none;color:var(--text-muted);font-size:.75rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.sub-controls{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:6px;padding-top:6px}.day-filters,.sub-controls{flex-wrap:wrap;display:flex}.day-filters{gap:4px}.day-tab{border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:3px 8px;font-size:.75rem;font-weight:600;transition:all .2s}.day-tab:hover{color:var(--text-primary);border-color:#fff3}.day-tab.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 2px 8px var(--accent-glow)}.search-box{min-width:210px;position:relative}.search-input{width:100%;color:var(--text-primary);background:var(--surface-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);outline:none;height:28px;padding:4px 10px 4px 28px;font-family:inherit;font-size:.8rem;transition:all .2s}.search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.search-icon{color:var(--text-muted);pointer-events:none;width:13px;height:13px;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.status-bar{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-top:8px;font-size:.78rem;display:flex}.active-selection-badge{color:var(--badge-lecture-text);background:#3b82f61a;border:1px solid #3b82f633;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:.76rem;font-weight:600;display:inline-flex}.schedule-container{margin-top:8px}.days-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:start;gap:8px;display:grid}@media (width<=768px){.days-grid{grid-template-columns:1fr}}.day-card{background:var(--surface-card);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s;overflow:hidden}.day-card:hover{border-color:#6366f14d}.day-header{border-bottom:1px solid var(--border-subtle);background:#ffffff05;justify-content:space-between;align-items:center;padding:6px 9px;display:flex}.day-title-group{flex-direction:column;display:flex}.day-name{letter-spacing:-.01em;font-size:.85rem;font-weight:700}.day-date{color:var(--text-muted);font-size:.68rem;font-weight:500}.day-count{background:var(--surface-input);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:999px;padding:1px 6px;font-size:.65rem;font-weight:600}.lessons-list{padding:5px}.lesson-item,.lessons-list{flex-direction:column;gap:4px;display:flex}.lesson-item{background:var(--surface-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:7px 9px;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.lesson-item.lesson-type--lecture{background:linear-gradient(135deg,#3b82f60f 0,var(--surface-input) 100%);border:1.5px solid #3b82f680;border-left:4.5px solid #3b82f6}.lesson-item.lesson-type--lecture:hover{border-color:#3b82f6d9;box-shadow:0 4px 16px #3b82f633}.lesson-item.lesson-type--practice{background:linear-gradient(135deg,#10b9810f 0,var(--surface-input) 100%);border:1.5px solid #10b98180;border-left:4.5px solid #10b981}.lesson-item.lesson-type--practice:hover{border-color:#10b981d9;box-shadow:0 4px 16px #10b98133}.lesson-item.lesson-type--other{border:1.5px solid #f59e0b66;border-left:4.5px solid #f59e0b}.lesson-item.lesson-type--other:hover{border-color:#f59e0bcc;box-shadow:0 4px 16px #f59e0b26}.lesson-meta{justify-content:space-between}.lesson-meta,.lesson-time-badge{align-items:center;gap:4px;display:flex}.pair-number{color:var(--accent-primary);background:#3b82f61f;border-radius:3px;padding:1px 5px;font-size:.68rem;font-weight:700}.pair-clock,.pair-number{font-family:var(--font-mono);white-space:nowrap}.pair-clock{color:var(--text-secondary);font-size:.67rem;font-weight:600}.lesson-type{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:3px;padding:1px 5px;font-size:.62rem;font-weight:700}.lesson-type.lecture{background:var(--badge-lecture-bg);color:var(--badge-lecture-text)}.lesson-type.practice{background:var(--badge-practice-bg);color:var(--badge-practice-text)}.lesson-type.other{background:var(--badge-other-bg);color:var(--badge-other-text)}.lesson-subject{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;font-weight:600;line-height:1.22;display:-webkit-box;overflow:hidden}.lesson-details{color:var(--text-secondary);border-top:1px dashed var(--border-subtle);justify-content:space-between;padding-top:3px;font-size:.7rem}.lesson-details,.teacher-name{align-items:center;gap:4px;display:flex}.teacher-name{flex:1;min-width:0;font-weight:500}.teacher-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audience-badge{font-family:var(--font-mono);border:1px solid var(--border-subtle);white-space:nowrap;background:#ffffff0a;border-radius:3px;align-items:center;gap:3px;padding:1px 4px;font-size:.65rem;font-weight:600;display:inline-flex}.lesson-actions{margin-top:5px;display:flex}.conf-link,.lesson-actions{align-items:center;width:100%}.conf-link{letter-spacing:.01em;border-radius:7px;justify-content:center;gap:7px;padding:7px 12px;font-size:.78rem;font-weight:700;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 2px 6px #0000001f}.conf-link.zoom{color:#60a5fa;background:linear-gradient(135deg,#2d8cff38,#1e40af61);border:1.5px solid #3b82f68c}.conf-link.zoom:hover{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 4px 16px #2563eb66}.conf-link.meet{color:#34d399;background:linear-gradient(135deg,#10b98138,#04785761);border:1.5px solid #10b9818c}.conf-link.meet:hover{color:#fff;background:linear-gradient(135deg,#059669,#047857);border-color:#6ee7b7;transform:translateY(-1px);box-shadow:0 4px 16px #05966966}.state-box{background:var(--surface-card);border:1px dashed var(--border-subtle);border-radius:var(--radius-xl);text-align:center;flex-direction:column;gap:16px;padding:60px 24px}.state-box,.state-icon{align-items:center;display:flex}.state-icon{background:var(--surface-input);width:64px;height:64px;color:var(--accent-primary);border-radius:50%;justify-content:center}.state-title{font-size:1.25rem;font-weight:700}.state-desc{max-width:420px;color:var(--text-secondary);font-size:.9rem}.skeleton-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);height:380px;position:relative;overflow:hidden}.skeleton-card:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0d,#0000);width:100%;height:100%;animation:1.5s infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{to{left:100%}}.spinner{border:3px solid #3b82f633;border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.hidden{display:none!important}@media (width<=768px){.container{padding:0 12px}body{padding-bottom:40px}.header-inner{padding:10px 0}.brand{gap:10px}.brand-icon{border-radius:9px;width:36px;height:36px;font-size:16px}.brand-title{font-size:1.1rem}.brand-subtitle{font-size:.72rem}.icon-btn{width:36px;height:36px}.panel-section{margin-top:8px}.filter-panel{border-radius:14px;gap:10px;padding:12px}.selectors-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.selectors-grid .form-group:first-child,.selectors-grid .form-group:nth-child(4){grid-column:1/-1}.selectors-grid .form-group:nth-child(2),.selectors-grid .form-group:nth-child(3){grid-column:span 1}.form-group{gap:3px}.form-label{font-size:.73rem;font-weight:700}.custom-select{appearance:none;text-overflow:ellipsis;border-radius:9px;height:40px;padding:6px 32px 6px 12px;font-size:.84rem}.select-arrow{font-size:.8rem;right:12px}.sub-controls{flex-direction:column;align-items:stretch;gap:8px;padding-top:8px}.day-filters{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding:2px 2px 6px;display:flex;overflow-x:auto}.day-filters::-webkit-scrollbar{display:none}.day-tab{border-radius:8px;flex-shrink:0;padding:7px 14px;font-size:.82rem;font-weight:700}.search-box{width:100%;min-width:100%}.search-input{border-radius:9px;height:38px;padding-left:34px;font-size:.86rem}.search-icon{width:15px;height:15px;left:11px}.status-bar{flex-direction:column;align-items:stretch;gap:5px;margin-top:8px}.active-selection-badge{text-align:center;border-radius:10px;justify-content:center;width:100%;padding:6px 12px;font-size:.82rem;line-height:1.35}.status-meta{text-align:center;font-size:.75rem}.schedule-container{margin-top:8px}.days-grid{grid-template-columns:1fr;gap:12px}.day-card{border-radius:14px}.day-header{padding:10px 14px}.day-name{font-size:1rem}.day-date{font-size:.75rem}.day-count{padding:2px 8px;font-size:.72rem}.lessons-list{gap:8px;padding:8px}.lesson-item{border-radius:10px;gap:6px;padding:10px 12px}.lesson-time-badge{gap:6px}.pair-number{border-radius:4px;padding:2px 6px}.pair-clock,.pair-number{font-size:.74rem}.lesson-type{border-radius:4px;padding:2px 7px;font-size:.68rem}.lesson-subject{-webkit-line-clamp:unset;font-size:.88rem;line-height:1.35;display:block}.lesson-details{padding-top:5px;font-size:.78rem}.teacher-name{max-width:100%}.teacher-text{white-space:normal;word-break:break-word}.audience-badge{border-radius:4px;padding:2px 7px;font-size:.72rem}.lesson-actions{margin-top:6px}.conf-link{border-radius:8px;justify-content:center;gap:8px;width:100%;height:40px;font-size:.85rem;font-weight:700}}
