:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-height:100vh}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff}.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-screen p{font-size:18px;opacity:.9}.welcome-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:20px}.welcome-card{background:#fffffff2;border-radius:24px;padding:48px;max-width:440px;width:100%;box-shadow:0 25px 50px -12px #00000040;text-align:center;position:relative}.back-button{position:absolute;top:20px;left:20px;background:none;border:none;color:#64748b;font-size:14px;cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .2s}.back-button:hover{background:#f1f5f9;color:#334155}.logo{margin-bottom:24px}.logo-icon{font-size:64px;display:block;margin-bottom:16px}.logo h1{font-size:32px;font-weight:700;color:#1e293b;margin:0}.tagline{color:#64748b;font-size:18px;margin-bottom:32px}.features{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.feature{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:12px;text-align:left}.feature-icon{font-size:24px}.feature span:last-child{color:#334155;font-size:15px}.action-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.primary-button{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:16px 32px;font-size:16px;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #3b82f666}.primary-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f680}.secondary-button{background:transparent;color:#3b82f6;border:2px solid #e2e8f0;padding:14px 30px;font-size:16px;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s}.secondary-button:hover{border-color:#3b82f6;background:#eff6ff}.privacy-note{color:#94a3b8;font-size:13px;margin:0}.setup-card h1,.import-card h1{font-size:28px;color:#1e293b;margin-bottom:8px;margin-top:24px}.subtitle{color:#64748b;margin-bottom:32px}.setup-form{text-align:left}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:600;color:#374151;margin-bottom:8px}.form-group input{width:100%;padding:14px 16px;font-size:16px;border:2px solid #e2e8f0;border-radius:10px;transition:all .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input::placeholder{color:#94a3b8}.error{color:#ef4444;font-size:14px;margin-bottom:16px}.setup-form .primary-button{width:100%;margin-top:8px}.import-area{margin:32px 0}.file-input{display:none}.file-label{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px;border:2px dashed #cbd5e1;border-radius:16px;cursor:pointer;transition:all .2s}.file-label:hover{border-color:#3b82f6;background:#f8fafc}.file-icon{font-size:48px}.file-label span:last-child{color:#64748b;font-size:16px}.hint{color:#64748b;font-size:14px;line-height:1.6}.connect-section{margin-bottom:24px;text-align:center}.folder-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.btn-icon{font-size:20px}.folder-hint{color:#64748b;font-size:13px;margin-top:8px}.reconnect-prompt{display:flex;flex-direction:column;gap:12px}.reconnect-prompt p{color:#64748b;font-size:14px;margin:0}.reconnect-prompt strong{color:#334155}.text-button{background:none;border:none;color:#3b82f6;font-size:14px;cursor:pointer;padding:8px}.text-button:hover{text-decoration:underline}.divider{display:flex;align-items:center;margin:20px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#e2e8f0}.divider span{padding:0 16px;color:#94a3b8;font-size:13px}.folder-badge{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;margin-bottom:24px;font-size:14px;color:#059669}.folder-badge .folder-icon{font-size:16px}.todo-view{padding:1.5rem;max-width:900px;margin:0 auto}.view-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.view-header-left h1{margin:0;font-size:1.75rem;font-weight:600}.view-header-left p{margin:.25rem 0 0;color:#64748b}.overdue-badge{color:#dc2626;font-weight:500}.quick-add{display:flex;gap:.5rem;margin-bottom:1rem;background:#f8fafc;border:2px dashed #e2e8f0;border-radius:12px;padding:.75rem;transition:all .2s}.quick-add:focus-within{border-color:#3b82f6;background:#fff}.quick-add input{flex:1;border:none;background:transparent;font-size:1rem;outline:none;padding:.5rem}.quick-add button{width:40px;height:40px;border-radius:8px;border:none;background:#3b82f6;color:#fff;font-size:1.5rem;cursor:pointer;transition:background .2s}.quick-add button:hover:not(:disabled){background:#2563eb}.quick-add button:disabled{background:#cbd5e1;cursor:not-allowed}.filter-tabs{display:flex;gap:.5rem;margin-bottom:1rem;overflow-x:auto;padding-bottom:.25rem}.filter-tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:20px;background:#fff;font-size:.875rem;cursor:pointer;white-space:nowrap;transition:all .2s}.filter-tab:hover{background:#f8fafc;border-color:#cbd5e1}.filter-tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.filter-tab.has-overdue{border-color:#fecaca;background:#fef2f2}.tab-badge{background:#e2e8f0;padding:.125rem .5rem;border-radius:10px;font-size:.75rem;font-weight:500}.filter-tab.active .tab-badge{background:#fff3}.tab-badge.danger{background:#fee2e2;color:#dc2626}.tab-badge.muted{background:#f1f5f9;color:#94a3b8}.entity-filters{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.entity-filter{display:flex;align-items:center;gap:.5rem}.entity-filter label{font-size:.875rem;color:#64748b;white-space:nowrap}.entity-filter select{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;min-width:150px}.todo-list{display:flex;flex-direction:column;gap:.5rem}.empty-state{text-align:center;padding:3rem 1rem;color:#64748b}.empty-icon{font-size:3rem;display:block;margin-bottom:1rem}.empty-state p{margin:0 0 1rem}.todo-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;transition:all .2s;border-left:4px solid transparent}.todo-item:hover{box-shadow:0 2px 8px #0000000d}.todo-item.completed{opacity:.6;background:#f8fafc}.todo-item.completed .todo-title{text-decoration:line-through;color:#94a3b8}.todo-item.priority-low{border-left-color:#22c55e}.todo-item.priority-medium{border-left-color:#eab308}.todo-item.priority-high{border-left-color:#f97316}.todo-item.priority-urgent{border-left-color:#dc2626;background:#fef2f2}.todo-checkbox{width:24px;height:24px;min-width:24px;border:2px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:#3b82f6;transition:all .2s}.todo-checkbox:hover{border-color:#3b82f6;background:#eff6ff}.todo-item.completed .todo-checkbox{background:#3b82f6;border-color:#3b82f6;color:#fff}.todo-content{flex:1;cursor:pointer;min-width:0}.todo-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.todo-priority{font-size:.875rem}.todo-title{font-weight:500;color:#1e293b}.todo-due{font-size:.75rem;padding:.125rem .5rem;border-radius:4px;font-weight:500;margin-left:auto}.due-overdue{background:#fee2e2;color:#dc2626}.due-today{background:#dbeafe;color:#2563eb}.due-tomorrow{background:#fef3c7;color:#d97706}.due-future{background:#f1f5f9;color:#64748b}.todo-description{margin:.5rem 0 0;font-size:.875rem;color:#64748b;line-height:1.4}.todo-links{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.todo-link{font-size:.75rem;padding:.25rem .5rem;background:#f1f5f9;border-radius:4px;color:#64748b}.todo-delete{padding:.25rem;border:none;background:transparent;cursor:pointer;opacity:0;transition:opacity .2s;font-size:1rem}.todo-item:hover .todo-delete{opacity:1}.todo-delete:hover{transform:scale(1.1)}.modal{background:#fff;border-radius:16px;padding:1.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 1.5rem;font-size:1.25rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s}.form-row.thirds{grid-template-columns:1fr 1fr 1fr}@media(max-width:600px){.form-row,.form-row.thirds{grid-template-columns:1fr}}.quick-dates{display:flex;gap:.5rem;margin-top:.5rem}.quick-dates button{padding:.25rem .5rem;font-size:.75rem;border:1px solid #e2e8f0;border-radius:4px;background:#f8fafc;cursor:pointer;transition:all .2s}.quick-dates button:hover{background:#e2e8f0}.priority-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.priority-btn{padding:.5rem .75rem;border:2px solid #e2e8f0;border-radius:8px;background:#fff;font-size:.875rem;cursor:pointer;transition:all .2s}.priority-btn:hover{background:#f8fafc}.priority-btn.active{border-color:currentColor}.priority-btn.priority-low.active{border-color:#22c55e;background:#dcfce7}.priority-btn.priority-medium.active{border-color:#eab308;background:#fef9c3}.priority-btn.priority-high.active{border-color:#f97316;background:#ffedd5}.priority-btn.priority-urgent.active{border-color:#dc2626;background:#fee2e2}.btn-primary{padding:.75rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary{padding:.75rem 1.25rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.calendar-view{padding:1.5rem;max-width:1400px;margin:0 auto}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.calendar-nav{display:flex;align-items:center;gap:.5rem}.calendar-nav button{padding:.5rem 1rem;border:1px solid var(--border-color, #e0e0e0);background:var(--card-bg, white);border-radius:8px;cursor:pointer;font-size:1rem;transition:all .15s ease}.calendar-nav button:hover{background:var(--hover-bg, #f5f5f5)}.calendar-nav button.today-btn{background:var(--primary-color, #4f46e5);color:#fff;border-color:var(--primary-color, #4f46e5)}.calendar-nav button.today-btn:hover{background:var(--primary-hover, #4338ca)}.calendar-title{font-size:1.5rem;font-weight:600;min-width:200px;text-align:center}.calendar-filters{display:flex;gap:.5rem;align-items:center}.calendar-filters select{padding:.5rem 1rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--card-bg, white);font-size:.875rem}.view-toggle{display:flex;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden}.view-toggle button{padding:.5rem 1rem;border:none;background:var(--card-bg, white);cursor:pointer;font-size:.875rem;transition:all .15s ease}.view-toggle button.active{background:var(--primary-color, #4f46e5);color:#fff}.view-toggle button:hover:not(.active){background:var(--hover-bg, #f5f5f5)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border-color, #e0e0e0);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;overflow:hidden}.calendar-day-header{background:var(--card-bg, white);padding:.75rem;text-align:center;font-weight:600;font-size:.875rem;color:var(--text-secondary, #666)}.calendar-day{background:var(--card-bg, white);min-height:120px;padding:.5rem;display:flex;flex-direction:column;position:relative;transition:all .15s ease}.calendar-day:hover{background:var(--hover-bg, #f9f9f9)}.calendar-day.other-month{background:var(--muted-bg, #f5f5f5)}.calendar-day.other-month .day-number{color:var(--text-muted, #999)}.calendar-day.today{background:var(--primary-light, #eef2ff)}.calendar-day.today .day-number{background:var(--primary-color, #4f46e5);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.calendar-day.weekend{background:var(--muted-bg, #fafafa)}.day-number{font-weight:500;font-size:.875rem;margin-bottom:.5rem;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.day-lessons{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.calendar-lesson{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .15s ease;border-left:3px solid transparent}.calendar-lesson:hover{filter:brightness(.95)}.lesson-time{font-weight:500;color:var(--text-secondary, #666);font-size:.7rem;min-width:35px}.lesson-info{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.lesson-class{font-weight:600;white-space:nowrap}.lesson-subject{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-badges{display:flex;gap:2px;margin-left:auto}.lesson-badge{font-size:.65rem;line-height:1}.lesson-icons{display:flex;gap:2px;margin-left:auto}.lesson-icon-btn{background:transparent;border:none;padding:2px 4px;font-size:.7rem;cursor:pointer;border-radius:4px;opacity:.4;transition:all .15s ease;line-height:1}.lesson-icon-btn:hover{opacity:1;background:#ffffff80}.lesson-icon-btn.filled{opacity:1}.lesson-icon-btn.locked{opacity:.7;cursor:default}.calendar-lesson.has-plan{border-left-color:var(--success-color, #22c55e)}.calendar-lesson.has-review{border-left-color:var(--primary-color, #4f46e5)}.more-lessons{font-size:.7rem;color:var(--text-secondary, #666);text-align:center;padding:2px;cursor:pointer}.more-lessons:hover{color:var(--primary-color, #4f46e5)}.week-view{display:grid;grid-template-columns:60px repeat(5,1fr);gap:1px;background:var(--border-color, #e0e0e0);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;overflow:hidden}.week-header-cell{background:var(--card-bg, white);padding:.75rem;text-align:center;font-weight:600;font-size:.875rem}.week-header-cell.today-col{background:var(--primary-light, #eef2ff)}.week-header-cell .day-name{color:var(--text-secondary, #666)}.week-header-cell .day-date{font-size:1.25rem;margin-top:.25rem}.week-time-cell{background:var(--card-bg, white);padding:.5rem;font-size:.75rem;color:var(--text-secondary, #666);text-align:center;display:flex;align-items:center;justify-content:center;min-height:60px}.week-slot-cell{background:var(--card-bg, white);padding:4px;min-height:60px;position:relative}.week-slot-cell.today-col{background:var(--primary-light, #eef2ff)}.week-slot-cell.is-break{background:var(--muted-bg, #f5f5f5)}.week-lesson{padding:6px 8px;border-radius:6px;font-size:.8rem;height:100%;display:flex;flex-direction:column;gap:2px;cursor:pointer;transition:all .15s ease}.week-lesson:hover{filter:brightness(.95);transform:scale(1.02)}.week-lesson .lesson-header{display:flex;justify-content:space-between;align-items:center}.week-lesson .lesson-class{font-weight:600}.week-lesson .lesson-subject{font-size:.75rem;opacity:.8}.week-lesson .lesson-room{font-size:.7rem;opacity:.7}.calendar-legend{display:flex;gap:1.5rem;margin-top:1rem;padding:.75rem 1rem;background:var(--card-bg, white);border-radius:8px;border:1px solid var(--border-color, #e0e0e0);font-size:.875rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-icon{font-size:1rem}@media(max-width:768px){.calendar-view{padding:1rem}.calendar-header{flex-direction:column;align-items:stretch}.calendar-nav{justify-content:center}.calendar-title{text-align:center;font-size:1.25rem}.calendar-filters{justify-content:center;flex-wrap:wrap}.calendar-day{min-height:80px;padding:.25rem}.day-number{font-size:.75rem;min-width:22px;min-height:22px}.calendar-lesson{padding:2px 4px;font-size:.65rem}.lesson-time{display:none}.calendar-day-header{padding:.5rem .25rem;font-size:.75rem}.week-view{grid-template-columns:50px repeat(3,1fr)}.week-header-cell:nth-child(n+5),.week-slot-cell:nth-child(5n+5),.week-slot-cell:nth-child(5n+6){display:none}}.day-lessons::-webkit-scrollbar{width:4px}.day-lessons::-webkit-scrollbar-track{background:transparent}.day-lessons::-webkit-scrollbar-thumb{background:var(--border-color, #e0e0e0);border-radius:2px}.day-lessons::-webkit-scrollbar-thumb:hover{background:var(--text-secondary, #999)}.legend-dot{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.lesson-editor-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.lesson-editor-modal{background:var(--card-bg, white);border-radius:16px;width:100%;max-width:1000px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.lesson-editor-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e0e0e0);display:flex;justify-content:space-between;align-items:flex-start;background:var(--primary-light, #eef2ff)}.lesson-info-header{display:flex;flex-direction:column;gap:.5rem}.lesson-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.lesson-class-badge{font-size:1.25rem;font-weight:700;padding:.25rem .75rem;background:var(--primary-color, #4f46e5);color:#fff;border-radius:8px}.lesson-subject-badge{font-size:1rem;font-weight:600;padding:.25rem .75rem;border-radius:8px}.lesson-date-info{font-size:.875rem;color:var(--text-secondary, #666);display:flex;align-items:center;gap:.5rem}.lesson-time-badge{font-weight:500}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary, #666);padding:.25rem;line-height:1;border-radius:4px}.close-btn:hover{background:var(--hover-bg, #f5f5f5);color:var(--text-primary, #333)}.lesson-editor-content{display:grid;grid-template-columns:300px 1fr;flex:1;overflow:hidden}.lesson-context-panel{background:var(--muted-bg, #f9fafb);border-right:1px solid var(--border-color, #e0e0e0);overflow-y:auto;padding:1rem}.context-section{margin-bottom:1.5rem}.context-section h3{font-size:.875rem;font-weight:600;color:var(--text-secondary, #666);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.context-list{display:flex;flex-direction:column;gap:.5rem}.context-item{background:var(--card-bg, white);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:.75rem;cursor:pointer;transition:all .15s ease}.context-item:hover{border-color:var(--primary-color, #4f46e5);box-shadow:0 2px 8px #4f46e51a}.context-item.expanded{border-color:var(--primary-color, #4f46e5);background:var(--primary-light, #eef2ff)}.context-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.context-date{font-size:.75rem;font-weight:600;color:var(--primary-color, #4f46e5)}.context-badges{display:flex;gap:.25rem}.context-badge{font-size:.65rem}.context-preview{font-size:.8rem;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.context-item.expanded .context-preview{-webkit-line-clamp:unset;overflow:visible}.context-empty{font-size:.8rem;color:var(--text-muted, #999);text-align:center;padding:1rem;background:var(--card-bg, white);border-radius:8px;border:1px dashed var(--border-color, #e0e0e0)}.lesson-edit-panel{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem}.header-actions{display:flex;align-items:center;gap:.5rem}.completed-notice{padding:.75rem 1rem;background:var(--success-light, #dcfce7);color:var(--success-color, #15803d);border-radius:8px;font-size:.85rem;margin-bottom:1rem}.lesson-complete-section{display:flex;justify-content:flex-end}.btn-complete,.btn-finish-planning,.btn-finish-review{padding:.75rem 1.5rem;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease}.btn-complete,.btn-finish-review{background:var(--success-color, #22c55e)}.btn-finish-planning{background:#1976d2}.btn-complete:hover,.btn-finish-review:hover{background:#16a34a}.btn-finish-planning:hover{background:#1565c0}.section-indicator.draft{background:#e3f2fd;color:#1565c0}.section-indicator.planned{background:#1976d2;color:#fff}.legacy-review-note .legacy-content{padding:.75rem;background:var(--muted-bg, #f5f5f5);border-radius:8px;border:1px solid var(--border-color, #e0e0e0);font-size:.9rem;color:var(--text-secondary, #666);white-space:pre-wrap}.step-title-text.done{text-decoration:line-through;opacity:.7}.selected-step-item.completed{background:var(--success-light, #dcfce7);border-color:var(--success-color, #22c55e)}.section-indicator.completed{background:var(--success-light, #dcfce7);color:var(--success-color, #16a34a)}.edit-section.locked{opacity:.85}.edit-section.locked textarea,.edit-section.locked .dropdown-trigger{background:var(--muted-bg, #f5f5f5);cursor:not-allowed}.locked-notice{padding:.75rem 1rem;background:var(--warning-light, #fef3c7);color:var(--warning-color, #92400e);border-radius:8px;font-size:.85rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.step-tag{font-size:.65rem;padding:.125rem .375rem;border-radius:4px;margin-left:auto}.step-tag.spontan{background:var(--info-light, #dbeafe);color:var(--info-color, #2563eb)}.selected-steps-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.selected-step-item{background:var(--muted-bg, #f9fafb);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden;transition:all .15s ease}.selected-step-item:hover{border-color:var(--primary-color, #4f46e5)}.selected-step-item.expanded{background:var(--primary-light, #eef2ff);border-color:var(--primary-color, #4f46e5)}.step-item-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;gap:.5rem}.step-expand-btn{background:none;border:none;padding:.25rem;font-size:.7rem;cursor:pointer;color:var(--text-secondary, #666);border-radius:4px;transition:all .15s ease;flex-shrink:0}.step-expand-btn:hover{background:#0000001a;color:var(--primary-color, #4f46e5)}.step-title-text{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-info-icon{font-size:.75rem;opacity:.6;flex-shrink:0}.step-remove-btn{background:none;border:none;padding:.25rem .5rem;font-size:1rem;cursor:pointer;color:var(--text-secondary, #666);border-radius:4px;transition:all .15s ease;flex-shrink:0}.step-details{padding:.75rem 1rem;border-top:1px solid var(--border-color, #e0e0e0);background:var(--card-bg, white);display:flex;flex-direction:column;gap:.5rem;font-size:.85rem}.step-detail-row{display:flex;gap:.5rem;flex-wrap:wrap}.detail-label{font-weight:500;color:var(--text-secondary, #666);flex-shrink:0}.detail-value{color:var(--text-primary, #333);flex:1}.detail-link{color:var(--primary-color, #4f46e5);text-decoration:none;font-weight:500}.audio-links-section{flex-direction:column;gap:.5rem}.audio-links-list{display:flex;flex-direction:column;gap:.5rem;width:100%}.audio-link-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;background:var(--muted-bg, #f9fafb);border-radius:6px;border:1px solid var(--border-color, #e0e0e0);transition:all .15s ease}.audio-link-item:hover{background:var(--primary-light, #eef2ff);border-color:var(--primary-color, #4f46e5)}.audio-link-icon{font-size:1.1rem;flex-shrink:0;line-height:1.4}.audio-link-content{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.audio-link-title{color:var(--primary-color, #4f46e5);text-decoration:none;font-weight:500;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-link-title:hover{text-decoration:underline}.audio-link-description{font-size:.8rem;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-checkbox-item{background:var(--muted-bg, #f9fafb);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden;transition:all .15s ease}.step-checkbox-item.expanded{background:var(--primary-light, #eef2ff);border-color:var(--primary-color, #4f46e5)}.step-checkbox-item.completed .step-title{text-decoration:line-through;opacity:.7}.step-checkbox-header{display:flex;align-items:center;padding:.75rem;gap:.75rem}.step-checkbox-title .step-title{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-section{background:var(--card-bg, white);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;padding:1.25rem}.edit-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.edit-section h3{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.section-indicator{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500}.section-indicator.future{background:var(--info-light, #dbeafe);color:var(--info-color, #2563eb)}.section-indicator.today{background:var(--success-light, #dcfce7);color:var(--success-color, #16a34a)}.section-indicator.past{background:var(--warning-light, #fef3c7);color:var(--warning-color, #d97706)}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-secondary, #666)}.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;font-size:.9rem;resize:vertical;min-height:100px;font-family:inherit;transition:border-color .15s ease}.form-group textarea:focus{outline:none;border-color:var(--primary-color, #4f46e5);box-shadow:0 0 0 3px #4f46e51a}.form-group textarea.large{min-height:150px}.dropdown-select{position:relative}.dropdown-trigger{width:100%;padding:.75rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--card-bg, white);text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.dropdown-trigger:hover{border-color:var(--primary-color, #4f46e5)}.dropdown-content{position:absolute;top:100%;left:0;right:0;background:var(--card-bg, white);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;margin-top:4px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000001a}.dropdown-item{padding:.75rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.dropdown-item:hover{background:var(--hover-bg, #f5f5f5)}.dropdown-item.selected{background:var(--primary-light, #eef2ff)}.dropdown-item .check{color:var(--primary-color, #4f46e5);font-weight:700}.selected-items{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.selected-item-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--primary-light, #eef2ff);border-radius:4px;font-size:.8rem}.selected-item-tag button{background:none;border:none;cursor:pointer;padding:0;font-size:.9rem;line-height:1;color:var(--text-secondary, #666)}.selected-item-tag button:hover{color:var(--danger-color, #dc2626)}.step-checklist{display:flex;flex-direction:column;gap:.5rem}.step-checkbox{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem;border-radius:6px;cursor:pointer;transition:background .15s ease}.step-checkbox:hover{background:var(--hover-bg, #f5f5f5)}.step-checkbox input[type=checkbox]{margin-top:2px;width:18px;height:18px;cursor:pointer}.step-checkbox .step-title{font-size:.875rem;flex:1}.step-checkbox.completed .step-title{text-decoration:line-through;color:var(--text-muted, #999)}.lesson-editor-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e0e0e0);display:flex;justify-content:space-between;align-items:center;background:var(--muted-bg, #f9fafb)}.footer-info{font-size:.8rem;color:var(--text-secondary, #666)}.footer-actions{display:flex;gap:.75rem}.btn-secondary{padding:.625rem 1.25rem;border:1px solid var(--border-color, #e0e0e0);background:var(--card-bg, white);border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:var(--hover-bg, #f5f5f5)}.btn-primary{padding:.625rem 1.25rem;border:none;background:var(--primary-color, #4f46e5);color:#fff;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary:hover{background:var(--primary-hover, #4338ca)}.btn-primary:disabled{background:var(--muted-color, #9ca3af);cursor:not-allowed}@media(max-width:768px){.lesson-editor-overlay{padding:0}.lesson-editor-modal{max-width:100%;max-height:100%;border-radius:0}.lesson-editor-content{grid-template-columns:1fr}.lesson-context-panel{border-right:none;border-bottom:1px solid var(--border-color, #e0e0e0);max-height:200px}.lesson-editor-header{flex-direction:column;gap:.75rem}.close-btn{position:absolute;top:1rem;right:1rem}.lesson-meta{flex-direction:column;align-items:flex-start;gap:.5rem}.lesson-editor-footer{flex-direction:column;gap:.75rem}.footer-actions{width:100%}.footer-actions button{flex:1}}.lesson-context-panel::-webkit-scrollbar,.lesson-edit-panel::-webkit-scrollbar{width:6px}.lesson-context-panel::-webkit-scrollbar-track,.lesson-edit-panel::-webkit-scrollbar-track{background:transparent}.lesson-context-panel::-webkit-scrollbar-thumb,.lesson-edit-panel::-webkit-scrollbar-thumb{background:var(--border-color, #e0e0e0);border-radius:3px}.lesson-context-panel::-webkit-scrollbar-thumb:hover,.lesson-edit-panel::-webkit-scrollbar-thumb:hover{background:var(--text-secondary, #999)}.save-indicator{display:inline-flex;align-items:center;gap:.375rem;font-size:.85rem;padding:.25rem .5rem;border-radius:4px}.save-indicator.saving{color:var(--warning-color, #d97706);background:var(--warning-light, #fef3c7)}.save-indicator.saved{color:var(--success-color, #16a34a);background:var(--success-light, #dcfce7);animation:fadeIn .2s ease}.dropdown-item.already-completed{opacity:.6;background:#f8fafc}.dropdown-item.already-completed:hover{opacity:.8;background:#f1f5f9}.dropdown-item .completed-check{color:#22c55e;font-size:.9rem;margin-right:.25rem}.dropdown-item .completed-badge{font-size:.65rem;background:#dcfce7;color:#15803d;padding:.125rem .375rem;border-radius:4px;margin-left:auto}.no-modules-hint{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#f8fafc;border-radius:8px;border:1px dashed #cbd5e1;text-align:center;gap:.25rem}.no-modules-hint .hint-icon{font-size:1.5rem;opacity:.5}.no-modules-hint span{font-size:.85rem;color:#64748b}.no-modules-hint .hint-text{font-size:.75rem;color:#94a3b8}.selected-steps-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.selected-step-item{background:var(--card-bg, white);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:.75rem;transition:border-color .15s ease}.selected-step-item.expanded{border-color:var(--primary-color, #4f46e5);background:var(--primary-light, #eef2ff)}.step-item-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.step-item-title{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.step-title-text{font-size:.875rem;line-height:1.4}.step-title-text.clickable{cursor:pointer}.step-title-text.clickable:hover{color:var(--primary-color, #4f46e5)}.step-expand-btn{background:none;border:none;padding:.25rem;font-size:.7rem;cursor:pointer;color:var(--text-secondary, #666);transition:transform .15s ease;flex-shrink:0}.step-expand-btn:hover{color:var(--primary-color, #4f46e5)}.step-info-icon{font-size:.75rem;opacity:.5;flex-shrink:0}.step-remove-btn{background:none;border:none;padding:.25rem .5rem;font-size:1.1rem;cursor:pointer;color:var(--text-muted, #999);line-height:1;border-radius:4px;flex-shrink:0}.step-remove-btn:hover{background:var(--danger-light, #fee2e2);color:var(--danger-color, #dc2626)}.step-details{padding:.75rem;margin-top:.75rem;background:#f8fafc;border-radius:6px;font-size:.85rem;border:1px solid #e2e8f0}.step-detail-row{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.625rem}.step-detail-row:last-child{margin-bottom:0}.detail-label{font-weight:500;color:#64748b;font-size:.75rem}.detail-value{color:var(--text-primary, #333);white-space:pre-wrap}.detail-link{color:#3b82f6;text-decoration:none;word-break:break-all;font-size:.8rem}.detail-link:hover{text-decoration:underline}.step-checklist-expandable{display:flex;flex-direction:column;gap:.5rem}.step-checkbox-item{background:var(--card-bg, white);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:.75rem;transition:all .15s ease}.step-checkbox-item:hover{border-color:var(--primary-color, #4f46e5)}.step-checkbox-item.expanded{border-color:var(--primary-color, #4f46e5);background:var(--primary-light, #eef2ff)}.step-checkbox-item.completed{background:var(--success-light, #dcfce7);border-color:var(--success-color, #22c55e)}.step-checkbox-header{display:flex;align-items:center;gap:.75rem}.step-checkbox-header input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.step-checkbox-title{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.step-checkbox-title .step-title{font-size:.875rem;line-height:1.4}.step-checkbox-title .step-title.clickable{cursor:pointer}.step-checkbox-title .step-title.clickable:hover{color:var(--primary-color, #4f46e5)}.step-checkbox-item.completed .step-title{text-decoration:line-through;color:var(--text-muted, #666)}.step-link-row{display:flex;align-items:center;gap:.5rem}.send-link-btn{width:28px;height:28px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.send-link-btn:hover:not(:disabled){background:#eff6ff;border-color:#3b82f6}.send-link-btn:disabled{cursor:not-allowed;opacity:.7}.send-link-btn.sent{background:#dcfce7;border-color:#22c55e}.tracking-shortcuts{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e0e0e0)}.shortcuts-label{font-size:.85rem;color:var(--text-secondary, #666);font-weight:500}.btn-shortcut{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:var(--primary-light, #eef2ff);color:var(--primary-color, #4f46e5);border:1px solid var(--primary-color, #4f46e5);border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-shortcut:hover{background:var(--primary-color, #4f46e5);color:#fff}.locked-planning-section{background:var(--warning-light, #fef3c7);border:1px solid var(--warning-color, #d97706);border-radius:12px}.locked-info{text-align:center;padding:1rem}.locked-info p{color:var(--text-secondary, #666);margin:0 0 1rem;font-size:.9rem}.btn-unlock{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--warning-color, #d97706);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s ease}.btn-unlock:hover{background:#b45309}.locked-preview{margin-top:1rem;padding:.75rem;background:#fff;border-radius:8px;border:1px solid var(--border-color, #e0e0e0)}.locked-preview strong{display:block;font-size:.8rem;color:var(--text-secondary, #666);margin-bottom:.5rem}.locked-preview p{margin:0;font-size:.9rem;color:var(--text-primary, #333);white-space:pre-wrap}.unlocked-section{border:2px solid var(--success-color, #16a34a);border-radius:12px}.unlocked-section .section-indicator.unlocked{background:var(--success-light, #dcfce7);color:var(--success-color, #16a34a)}@media(max-width:768px){.tracking-shortcuts{flex-direction:column;align-items:stretch}.btn-shortcut{justify-content:center}}.timetable-module{height:100%;display:flex;flex-direction:column}.view-toggle{display:flex;background:var(--bg-secondary);border-radius:8px;padding:4px;gap:4px}.toggle-btn{padding:8px 16px;border:none;background:transparent;border-radius:6px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s}.toggle-btn.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.toggle-btn:hover:not(.active){background:var(--bg-hover)}.today-view{flex:1;overflow-y:auto;padding:20px}.today-header{text-align:center;margin-bottom:24px}.today-header h2{font-size:28px;margin-bottom:4px}.today-date{color:var(--text-secondary);font-size:14px}.today-weekend{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;gap:16px}.weekend-icon{font-size:64px}.today-weekend h3{font-size:24px;margin:0}.today-weekend p{color:var(--text-secondary);margin:0 0 16px}.today-schedule{display:flex;flex-direction:column;gap:8px;max-width:600px;margin:0 auto}.today-slot{display:flex;align-items:stretch;gap:16px;padding:12px 16px;background:var(--bg-secondary);border-radius:12px;border:2px solid transparent;transition:all .15s;cursor:pointer;text-align:left;width:100%;position:relative}.today-slot.lesson:hover{border-color:var(--accent);transform:translate(4px)}.today-slot.current{border-color:var(--accent);background:var(--accent-light);box-shadow:0 4px 12px #4f46e526}.today-slot.next{border-color:var(--success)}.today-slot.past{opacity:.5}.today-slot.break{background:var(--bg-tertiary);cursor:default;padding:8px 16px}.today-slot .slot-time{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:60px;font-size:14px;font-weight:600;color:var(--text-secondary)}.today-slot .time-start{font-size:16px;color:var(--text-primary)}.today-slot .time-end{font-size:12px}.today-slot .slot-content{flex:1;display:flex;flex-direction:column;gap:4px}.today-slot .slot-main{display:flex;align-items:center;gap:12px}.today-slot .slot-class{font-weight:700;font-size:18px;padding:4px 10px;border-radius:6px}.today-slot .slot-subject{font-weight:600;font-size:16px;padding:4px 10px;border-radius:6px}.today-slot .slot-room,.today-slot .slot-notes{font-size:13px;color:var(--text-secondary)}.today-slot .slot-empty{display:flex;flex-direction:column;color:var(--text-secondary)}.today-slot .empty-hint{font-size:12px;opacity:.7}.break-content{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.break-icon{font-size:16px}.current-badge,.next-badge{position:absolute;right:12px;top:12px;font-size:11px;font-weight:700;padding:4px 8px;border-radius:4px;text-transform:uppercase}.current-badge{background:var(--accent);color:#fff}.next-badge{background:var(--success);color:#fff}.week-view{flex:1;overflow:auto;padding:20px}.timetable-grid{display:grid;grid-template-columns:80px repeat(5,1fr);gap:2px;background:var(--border);border-radius:12px;overflow:hidden;min-width:700px}.timetable-header{background:var(--bg-secondary);padding:12px 8px;text-align:center;font-weight:700}.timetable-header.corner{font-size:12px;color:var(--text-secondary)}.timetable-header.today{background:var(--accent-light);color:var(--accent)}.timetable-header .day-short{display:none}.timetable-header .day-full{display:block}@media(max-width:800px){.timetable-header .day-short{display:block}.timetable-header .day-full{display:none}}.timetable-time{background:var(--bg-secondary);padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.timetable-time .time-range{font-weight:600;font-size:13px}.timetable-time .slot-label{font-size:10px;color:var(--text-secondary)}.timetable-time.break{background:var(--bg-tertiary)}.timetable-cell{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;background:var(--bg-primary);border:none;cursor:pointer;transition:all .15s;width:100%}.timetable-cell.lesson:hover{background:var(--bg-hover)}.timetable-cell.today{background:var(--accent-light)}.timetable-cell.break{background:var(--bg-tertiary);cursor:default;min-height:30px}.timetable-cell.break .break-label{font-size:11px;color:var(--text-secondary)}.timetable-cell.empty .cell-empty{font-size:24px;color:var(--text-tertiary)}.timetable-cell.filled .cell-class{font-weight:700;font-size:14px;padding:2px 8px;border-radius:4px}.timetable-cell.filled .cell-subject{font-size:12px;padding:2px 6px;border-radius:4px}.timetable-cell.filled .cell-room{font-size:10px;color:var(--text-secondary)}.modal-info{display:flex;gap:12px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;margin-bottom:16px}.info-day{font-weight:700}.info-time{color:var(--text-secondary)}.modal-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.actions-right{display:flex;gap:12px}.btn-danger{background:var(--danger);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .15s}.btn-danger:hover{opacity:.9}.bg-blue-100{background:#dbeafe}.text-blue-800{color:#1e40af}.bg-indigo-100{background:#e0e7ff}.text-indigo-800{color:#3730a3}.bg-purple-100{background:#f3e8ff}.text-purple-800{color:#6b21a8}.bg-emerald-100{background:#d1fae5}.text-emerald-800{color:#065f46}.bg-amber-100{background:#fef3c7}.text-amber-800{color:#92400e}.bg-red-100{background:#fee2e2}.text-red-800{color:#991b1b}.bg-orange-100{background:#ffedd5}.text-orange-800{color:#9a3412}.bg-yellow-100{background:#fef9c3}.text-yellow-800{color:#854d0e}.bg-green-100{background:#dcfce7}.text-green-800{color:#166534}.bg-pink-100{background:#fce7f3}.text-pink-800{color:#9d174d}.bg-slate-100{background:#f1f5f9}.text-slate-800{color:#1e293b}.lehrplan-view{height:100%;display:flex;flex-direction:column}.fach-select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:pointer;min-width:200px}.lehrplan-content{flex:1;overflow-y:auto;padding:20px}.lehrplan-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-box{flex:1;min-width:250px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px}.search-box .search-icon{font-size:16px;opacity:.6}.search-box input{flex:1;border:none;background:transparent;font-size:14px;outline:none}.clear-search{background:none;border:none;font-size:18px;cursor:pointer;opacity:.6;padding:0 4px}.clear-search:hover{opacity:1}.toolbar-actions{display:flex;gap:8px}.toolbar-actions button{padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;font-size:13px;cursor:pointer;transition:all .15s}.toolbar-actions button:hover{background:var(--bg-hover)}.lehrplan-stats{display:flex;gap:16px;margin-bottom:24px}.lehrplan-stats .stat{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:var(--bg-secondary);border-radius:10px;min-width:100px}.lehrplan-stats .stat-value{font-size:24px;font-weight:700;color:var(--accent)}.lehrplan-stats .stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px}.search-results{margin-bottom:24px}.search-results h3{margin-bottom:16px;font-size:16px}.no-results{color:var(--text-secondary);padding:20px;text-align:center}.kompetenzen-list,.fachbereiche-tree{display:flex;flex-direction:column;gap:12px}.fachbereich-item{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--bg-secondary)}.fachbereich-header{width:100%;display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;cursor:pointer;text-align:left;font-size:15px;transition:all .15s}.fachbereich-header:hover{filter:brightness(1.05)}.expand-icon{font-size:12px;width:16px;transition:transform .2s}.fachbereich-code{font-weight:700;background:#fff3;padding:2px 8px;border-radius:4px;font-size:13px}.fachbereich-titel{flex:1;font-weight:600}.fachbereich-count{font-size:12px;opacity:.8}.fachbereich-content{padding:16px}.fachbereich-beschreibung{color:var(--text-secondary);font-size:13px;margin-bottom:16px;padding:12px;background:var(--bg-tertiary);border-radius:8px;line-height:1.5}.bereich-item{margin-bottom:8px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.bereich-header{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-tertiary);border:none;cursor:pointer;text-align:left;font-size:14px;transition:all .15s}.bereich-header:hover{background:var(--bg-hover)}.bereich-code{font-weight:600;color:var(--accent);font-size:12px}.bereich-titel{flex:1;font-weight:500}.bereich-count{font-size:11px;color:var(--text-secondary);background:var(--bg-secondary);padding:2px 8px;border-radius:10px}.bereich-content{padding:12px;display:flex;flex-direction:column;gap:10px}.kompetenz-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;padding:14px;transition:all .15s}.kompetenz-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #00000014}.kompetenz-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.kompetenz-code{font-weight:700;font-size:12px;color:#fff;background:var(--accent);padding:3px 8px;border-radius:4px}.kompetenz-titel{font-weight:600;font-size:14px}.kompetenz-beschreibung{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0 0 12px}.kompetenz-content{padding-top:10px}.kompetenz-stufen{background:var(--bg-tertiary);border-radius:8px;padding:12px;margin-top:10px}.stufen-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:10px}.stufen-table{width:100%;border-collapse:collapse}.stufen-table tr{border-bottom:1px solid var(--border)}.stufen-table tr:last-child{border-bottom:none}.stufe-code{width:30px;padding:8px 10px 8px 0;font-weight:700;font-size:13px;color:var(--accent);vertical-align:top}.stufe-text{padding:8px 0;font-size:13px;line-height:1.5;color:var(--text-primary)}.expand-icon.small{font-size:10px;width:14px}.kompetenz-card{cursor:pointer}.kompetenz-card.expanded{cursor:default}.lehrplan-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);text-align:center}.lehrplan-footer p{font-size:12px;color:var(--text-secondary);margin:0}.lehrplan-footer a{color:var(--accent)}@media(max-width:600px){.lehrplan-toolbar{flex-direction:column;align-items:stretch}.lehrplan-stats{flex-wrap:wrap}.lehrplan-stats .stat{flex:1;min-width:calc(33% - 12px)}.fachbereich-header{flex-wrap:wrap}.fachbereich-titel{width:100%;order:3;margin-top:8px}}.btn-download-pdf{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:#ef4444;color:#fff;text-decoration:none;border-radius:8px;font-size:.875rem;font-weight:500;transition:background .15s}.btn-download-pdf:hover{background:#dc2626}.header-controls{display:flex;gap:.75rem;align-items:center}.planning-view{padding:1.5rem;max-width:1000px;margin:0 auto}.planning-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.tab-content{min-height:400px}.tab-content.embedded-view .view-header{display:none}.tab-content.embedded-view{margin:-1rem;padding:0}.filter-bar{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center;flex-wrap:wrap}.filter-bar select{padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#fff;min-width:150px}.filter-bar-right{margin-left:auto}.tab-content>.import-message{margin-bottom:1rem}.empty-state p{margin:.5rem 0}.empty-state .hint{font-size:.875rem;color:#94a3b8;margin-bottom:1.5rem}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.module-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;transition:box-shadow .15s}.module-card:hover{box-shadow:0 4px 12px #00000014}.module-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.module-header h3{margin:0;font-size:1.1rem;color:#1e293b}.module-subject{font-size:.75rem;padding:.25rem .5rem;background:#f1f5f9;border-radius:4px;color:#64748b}.module-description{font-size:.875rem;color:#64748b;margin:0 0 .75rem;line-height:1.4}.module-meta{display:flex;gap:1rem;font-size:.8125rem;color:#94a3b8;margin-bottom:.75rem}.module-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem}.tag{font-size:.75rem;padding:.125rem .5rem;background:#dbeafe;color:#1d4ed8;border-radius:4px}.module-competencies-list{margin-bottom:.75rem}.module-competencies-list .competencies-label{display:block;font-size:.75rem;color:#64748b;margin-bottom:.375rem}.module-competencies-list .competencies-badges{display:flex;flex-wrap:wrap;gap:.25rem}.module-competencies-list .competency-badge{font-size:.65rem;padding:.125rem .375rem;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;border-radius:3px;font-family:monospace}.module-eval-progress{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem}.eval-progress-badge{font-size:.7rem;padding:.25rem .5rem;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:4px}.module-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.75rem;border-top:1px solid #f1f5f9}.resources-list{display:flex;flex-direction:column;gap:.75rem}.resource-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;transition:box-shadow .15s}.resource-item:hover{box-shadow:0 2px 8px #0000000d}.resource-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:8px}.resource-content{flex:1;min-width:0}.resource-content h4{margin:0 0 .25rem;font-size:1rem;color:#1e293b}.resource-description{font-size:.875rem;color:#64748b;margin:0 0 .5rem}.resource-link{font-size:.8125rem;color:#3b82f6;text-decoration:none;word-break:break-all}.resource-link:hover{text-decoration:underline}.resource-actions{display:flex;gap:.25rem}.module-modal{max-width:900px;max-height:90vh;overflow-y:auto}.steps-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.step-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8fafc;border-radius:8px}.step-number{width:24px;height:24px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.step-title{flex:1;font-size:.9rem}.step-actions{display:flex;gap:.25rem}.step-actions button{width:28px;height:28px;border:1px solid #e2e8f0;background:#fff;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .15s}.step-actions button:hover:not(:disabled){background:#f1f5f9}.step-actions button:disabled{opacity:.4;cursor:not-allowed}.step-actions button.danger:hover{background:#fee2e2;border-color:#fecaca}.add-step{display:flex;gap:.5rem}.add-step input{flex:1;padding:.5rem .75rem;border:1px dashed #cbd5e1;border-radius:6px;font-size:.875rem}.add-step button{width:36px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:1.25rem;cursor:pointer}.add-step button:hover{background:#2563eb}.type-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.type-btn{padding:.5rem .75rem;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.type-btn:hover{background:#f8fafc}.type-btn.active{background:#eff6ff;border-color:#3b82f6;color:#2563eb}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:#374151}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:500px){.form-row{grid-template-columns:1fr}}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.btn-primary{padding:.75rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{background:#cbd5e1;cursor:not-allowed}.btn-secondary{padding:.75rem 1.25rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-secondary:hover{background:#e2e8f0}.step-item-expanded{background:#f8fafc;border-radius:10px;padding:.75rem;margin-bottom:.5rem}.step-item-expanded .step-header{display:flex;align-items:center;gap:.75rem}.step-item-expanded .step-number{width:28px;height:28px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.step-item-expanded .step-title{flex:1;font-weight:500}.step-item-expanded .step-actions{display:flex;gap:.25rem}.step-item-expanded .step-actions button{width:28px;height:28px;border:1px solid #e2e8f0;background:#fff;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .15s}.step-item-expanded .step-actions button:hover:not(:disabled){background:#f1f5f9}.step-item-expanded .step-actions button:disabled{opacity:.4;cursor:not-allowed}.step-item-expanded .step-actions button.danger:hover{background:#fee2e2;border-color:#fecaca}.step-competencies{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #e2e8f0;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.step-competencies .no-competencies{font-size:.8rem;color:#94a3b8;font-style:italic}.competency-badges{display:flex;flex-wrap:wrap;gap:.375rem}.competency-badge-small{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;padding:.125rem .4rem;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;border-radius:4px;font-family:monospace}.competency-badge-small button{background:none;border:none;color:#dc2626;cursor:pointer;padding:0;margin-left:.125rem;font-size:.85rem;line-height:1}.competency-badge-small button:hover{color:#991b1b}.btn-add-competency{font-size:.75rem;padding:.25rem .5rem;background:#eff6ff;color:#3b82f6;border:1px dashed #93c5fd;border-radius:4px;cursor:pointer;transition:all .15s}.btn-add-competency:hover{background:#dbeafe;border-color:#3b82f6}.step-item-expanded.editing{background:#eff6ff;border:2px solid #3b82f6}.step-item-expanded .step-title-input{flex:1;padding:.375rem .5rem;font-size:.95rem;font-weight:500;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.step-item-expanded .step-title-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.step-quick-info{display:flex;gap:.375rem;margin-left:auto;margin-right:.5rem}.quick-badge{font-size:.7rem;padding:.125rem .375rem;border-radius:4px;white-space:nowrap}.quick-badge.time{background:#fef3c7;color:#92400e}.quick-badge.social{background:#e0e7ff;color:#4338ca}.quick-badge.resources{background:#fce7f3;color:#9d174d}.step-item-expanded .step-actions button.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.step-edit-form{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #cbd5e1;display:flex;flex-direction:column;gap:.75rem}.step-form-row{display:flex;gap:.75rem}.step-form-row.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.step-form-group{flex:1;display:flex;flex-direction:column;gap:.25rem}.step-form-group label{font-size:.75rem;font-weight:500;color:#64748b}.step-form-group input,.step-form-group select,.step-form-group textarea{padding:.5rem;font-size:.875rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.step-form-group input:focus,.step-form-group select:focus,.step-form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.step-form-group textarea{resize:vertical;min-height:60px}.step-form-group input[type=number]{width:100px}.resource-multiselect{min-height:80px;max-height:120px}.resource-multiselect option{padding:.25rem .5rem}.selected-resources{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.resource-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.25rem .5rem;background:#fce7f3;color:#9d174d;border-radius:4px}.resource-badge button{background:none;border:none;color:#9d174d;cursor:pointer;padding:0;margin-left:.25rem;font-size:.9rem;line-height:1}.resource-badge button:hover{color:#be185d}.step-competencies.collapsed{margin-top:.25rem;padding-top:.25rem;border-top:none}.step-competencies.collapsed .competency-badge-small{cursor:default}.step-competencies.collapsed .competency-badge-small button{display:none}.competency-picker-overlay{z-index:1000}.competency-picker-modal{width:98vw;max-width:1400px;height:92vh;max-height:92vh;display:flex;flex-direction:column;padding:0}.picker-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.picker-header h2{margin:0 0 .25rem;font-size:1.25rem}.picker-header p{margin:0;font-size:.875rem;color:#64748b}.picker-selection-info{background:#f0fdf4;color:#15803d;padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:500}.picker-toolbar{display:flex;gap:1rem;padding:1rem 1.5rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;flex-shrink:0}.picker-toolbar .fach-select{padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#fff}.picker-toolbar .search-box{flex:1;min-width:200px;position:relative;display:flex;align-items:center}.picker-toolbar .search-box .search-icon{position:absolute;left:.75rem;color:#94a3b8}.picker-toolbar .search-box input{width:100%;padding:.5rem .75rem .5rem 2.25rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem}.picker-toolbar .search-box .clear-search{position:absolute;right:.5rem;background:none;border:none;font-size:1.25rem;color:#94a3b8;cursor:pointer}.picker-toolbar .toolbar-actions{display:flex;gap:.5rem}.picker-toolbar .toolbar-actions button{padding:.5rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:.8rem;cursor:pointer}.picker-toolbar .toolbar-actions button:hover{background:#f1f5f9}.picker-content{flex:1;overflow-y:auto;padding:1rem 1.5rem}.picker-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.fachbereiche-tree.picker{display:flex;flex-direction:column;gap:.5rem}.fachbereiche-tree.picker .fachbereich-item{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.fachbereiche-tree.picker .fachbereich-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#3b82f6;color:#fff;border:none;cursor:pointer;text-align:left;font-size:.95rem;font-weight:500}.fachbereiche-tree.picker .fachbereich-header:hover{background:#2563eb}.fachbereiche-tree.picker .fachbereich-header.expanded{background:#1d4ed8}.fachbereiche-tree.picker .fachbereich-code{font-weight:700;color:#fff;background:#fff3;padding:.125rem .5rem;border-radius:4px}.fachbereiche-tree.picker .fachbereich-titel{flex:1;color:#fff}.fachbereiche-tree.picker .fachbereich-header .expand-icon{color:#fffc}.fachbereiche-tree.picker .fachbereich-content{padding:.5rem}.fachbereiche-tree.picker .bereich-item{margin:.25rem 0;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.fachbereiche-tree.picker .bereich-header{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:#6366f1;color:#fff;border:none;cursor:pointer;text-align:left;font-size:.9rem;font-weight:500}.fachbereiche-tree.picker .bereich-header:hover{background:#4f46e5}.fachbereiche-tree.picker .bereich-header.expanded{background:#4338ca}.fachbereiche-tree.picker .bereich-code{font-weight:700;color:#fff;background:#fff3;padding:.125rem .4rem;border-radius:4px;font-size:.8rem}.fachbereiche-tree.picker .bereich-titel{flex:1;color:#fff}.fachbereiche-tree.picker .bereich-header .expand-icon{color:#fffc}.fachbereiche-tree.picker .bereich-content{padding:.5rem}.fachbereiche-tree.picker .expand-icon{font-size:.7rem;width:1rem;color:#94a3b8}.kompetenz-card.picker{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.5rem;overflow:hidden}.kompetenz-card.picker .kompetenz-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;background:#fff}.kompetenz-card.picker .kompetenz-header:hover{background:#fafafa}.kompetenz-card.picker .kompetenz-code{font-weight:600;color:#8b5cf6;font-family:monospace;font-size:.85rem}.kompetenz-card.picker .kompetenz-titel{flex:1;font-size:.9rem}.kompetenz-card.picker .selected-count{background:#f0fdf4;color:#15803d;padding:.125rem .5rem;border-radius:10px;font-size:.75rem;font-weight:500}.kompetenz-card.picker .kompetenz-content{padding:0 1rem 1rem;background:#fafafa}.kompetenz-card.picker .kompetenz-beschreibung{font-size:.85rem;color:#64748b;margin:0 0 .75rem;line-height:1.5}.kompetenz-stufen.picker{background:#fff;border-radius:6px;padding:.75rem}.kompetenz-stufen.picker .stufen-label{display:block;font-size:.8rem;font-weight:500;color:#374151;margin-bottom:.5rem}.stufen-list{display:flex;flex-direction:column;gap:.375rem}.stufe-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .15s}.stufe-item:hover{background:#f0fdf4;border-color:#bbf7d0}.stufe-item.selected{background:#dcfce7;border-color:#22c55e}.stufe-checkbox{width:20px;height:20px;border:2px solid #cbd5e1;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#22c55e;font-weight:700;flex-shrink:0;background:#fff}.stufe-item.selected .stufe-checkbox{background:#22c55e;border-color:#22c55e;color:#fff}.stufe-code{font-weight:600;color:#64748b;font-size:.8rem;min-width:1.5rem}.stufe-text{font-size:.85rem;color:#374151;line-height:1.4}.picker-content .search-results h3{margin:0 0 1rem;font-size:1rem;color:#374151}.picker-content .no-results{text-align:center;color:#94a3b8;padding:2rem}.picker-content .kompetenzen-list{display:flex;flex-direction:column;gap:.5rem}.yearplan-view{display:flex;flex-direction:column;height:calc(100vh - 220px);min-height:400px}.yearplan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-shrink:0}.yearplan-hint{color:#64748b;font-size:.875rem;margin:0}.kanban-board{display:flex;gap:1rem;flex:1;overflow-x:auto;padding-bottom:1rem}.kanban-column{min-width:280px;max-width:320px;background:#f1f5f9;border-radius:12px;display:flex;flex-direction:column;flex-shrink:0;transition:background .15s}.kanban-column.drag-over{background:#e0f2fe}.kanban-column-header{padding:.875rem 1rem;display:flex;align-items:center;gap:.5rem;border-bottom:3px solid var(--column-accent, #94a3b8);border-radius:12px 12px 0 0;background:#fff}.kanban-column-header.editable{cursor:pointer;transition:background .15s}.kanban-column-header.editable:hover{background:#f8fafc}.kanban-column-title{font-weight:600;font-size:.9rem;color:#1e293b;flex:1}.kanban-column-count{background:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:10px}.kanban-column-content{flex:1;padding:.75rem;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.kanban-empty{text-align:center;padding:2rem 1rem;color:#94a3b8;font-size:.875rem;border:2px dashed #cbd5e1;border-radius:8px;margin-top:.5rem}.kanban-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.875rem;cursor:grab;transition:all .15s;box-shadow:0 1px 3px #0000000d}.kanban-card:hover{box-shadow:0 4px 12px #0000001a;border-color:#cbd5e1}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.5;transform:rotate(2deg)}.kanban-card-title{font-weight:600;font-size:.9rem;color:#1e293b;margin-bottom:.5rem;line-height:1.3}.kanban-card-subject{display:inline-block;font-size:.7rem;font-weight:500;padding:.125rem .5rem;background:#f1f5f9;color:#475569;border-radius:4px;margin-bottom:.5rem}.kanban-card-meta{display:flex;gap:.75rem;font-size:.75rem;color:#64748b}.kanban-card-meta span{display:flex;align-items:center;gap:.25rem}.kanban-card-prereq{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #e2e8f0;font-size:.7rem;color:#94a3b8}.kanban-drop-indicator{height:3px;background:#3b82f6;border-radius:2px;margin:.25rem 0}.category-modal{max-width:400px}.color-picker{display:flex;gap:.5rem;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:8px;border:3px solid transparent;cursor:pointer;transition:all .15s}.color-option.active{border-color:#1e293b;box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor}.btn-danger{padding:.75rem 1.25rem;background:#fee2e2;color:#dc2626;border:1px solid #fecaca;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-danger:hover{background:#fecaca}.warning-text{color:#dc2626;font-size:.8rem;margin-top:.25rem}@media(max-width:768px){.kanban-column{min-width:260px}.yearplan-header{flex-direction:column;gap:.75rem;align-items:flex-start}}.header-actions{display:flex;gap:.5rem}.import-dropzone{border:2px dashed #cbd5e1;border-radius:12px;padding:2rem;text-align:center;background:#f8fafc;transition:all .2s;margin-bottom:1rem}.import-dropzone.dragging{border-color:#3b82f6;background:#eff6ff}.dropzone-icon{font-size:3rem;display:block;margin-bottom:.75rem}.import-dropzone p{margin:.25rem 0;color:#64748b}.dropzone-hint{font-size:.875rem;color:#94a3b8;margin:.75rem 0!important}.file-select-btn{cursor:pointer;display:inline-block}.import-preview{margin-bottom:1rem}.preview-label{font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:#374151}.json-preview{background:#1e293b;color:#e2e8f0;padding:1rem;border-radius:8px;font-size:.75rem;overflow:auto;max-height:150px;font-family:monospace}.import-message{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem}.import-message.success{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.import-message.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.competency-eval-overlay{z-index:1000}.competency-eval-modal{width:95vw;max-width:900px;height:85vh;max-height:85vh;display:flex;flex-direction:column;padding:0}.eval-header{padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.eval-header h2{margin:0 0 .25rem;font-size:1.25rem}.eval-header p{margin:0;font-size:.875rem;color:#64748b}.eval-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;flex-wrap:wrap;gap:1rem}.class-selector{display:flex;align-items:center;gap:.75rem}.class-selector label{font-weight:500;color:#374151}.class-selector select{padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#fff;min-width:150px}.eval-toolbar .toolbar-actions{display:flex;gap:.5rem}.eval-toolbar .toolbar-actions button{padding:.5rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:.8rem;cursor:pointer}.eval-toolbar .toolbar-actions button:hover{background:#f1f5f9}.eval-content{flex:1;overflow-y:auto;padding:1rem 1.5rem}.eval-footer{padding:1rem 1.5rem;border-top:1px solid #e2e8f0;background:#f8fafc;display:flex;justify-content:flex-end;flex-shrink:0}.competencies-eval-list{display:flex;flex-direction:column;gap:.75rem}.competency-eval-item{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff}.competency-eval-header{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;cursor:pointer;background:#f8fafc;transition:background .15s}.competency-eval-header:hover{background:#f1f5f9}.competency-eval-item.expanded .competency-eval-header{border-bottom:1px solid #e2e8f0}.competency-eval-header .expand-icon{font-size:.7rem;color:#64748b}.competency-eval-header .competency-id{font-family:monospace;font-weight:600;color:#8b5cf6;font-size:.9rem}.competency-stats{margin-left:auto;display:flex;gap:.75rem}.competency-stats .stat{font-size:.8rem;display:flex;align-items:center;gap:.25rem}.competency-stats .stat.not-eval{color:#94a3b8}.competency-eval-content{padding:1rem}.bulk-actions{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px dashed #e2e8f0}.bulk-actions span{font-size:.8rem;color:#64748b}.bulk-btn{padding:.375rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;border:1px solid transparent;transition:all .15s}.bulk-btn.reached{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.bulk-btn.reached:hover{background:#bbf7d0}.bulk-btn.partial{background:#fef9c3;color:#a16207;border-color:#fde047}.bulk-btn.partial:hover{background:#fde047}.bulk-btn.not-reached{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}.bulk-btn.not-reached:hover{background:#e2e8f0}.students-eval-list{display:flex;flex-direction:column;gap:.5rem}.student-eval-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#fafafa;border-radius:8px}.student-eval-row:hover{background:#f1f5f9}.student-name{font-size:.9rem;color:#1e293b}.status-btn{width:36px;height:36px;border-radius:8px;border:2px solid transparent;background:#f1f5f9;font-size:1.1rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.status-btn:hover{transform:scale(1.1)}.status-btn.not-reached{background:#f1f5f9}.status-btn.not-reached.active{background:#e2e8f0;border-color:#94a3b8}.status-btn.partial{background:#fefce8}.status-btn.partial.active{background:#fef08a;border-color:#eab308}.status-btn.reached{background:#f0fdf4}.status-btn.reached.active{background:#bbf7d0;border-color:#22c55e}@media(max-width:600px){.competency-eval-modal{width:100vw;height:100vh;max-height:100vh;border-radius:0}.eval-toolbar{flex-direction:column;align-items:stretch}.class-selector{width:100%}.class-selector select{flex:1}.bulk-actions{flex-wrap:wrap}.student-eval-row{flex-direction:column;align-items:flex-start;gap:.5rem}.status-buttons{width:100%;justify-content:space-around}}.module-form-tab{max-width:1200px;margin:0 auto}.module-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.module-form-header h2{margin:0;font-size:1.5rem;color:#1e293b}.module-form-actions{display:flex;gap:.75rem;flex-wrap:wrap}.success-message{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.module-form-tab .import-message{display:flex;align-items:center;justify-content:space-between;gap:1rem}.module-form-tab .import-message .dismiss-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;opacity:.6;padding:0}.module-form-tab .import-message .dismiss-btn:hover{opacity:1}.module-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media(max-width:900px){.form-grid{grid-template-columns:1fr;gap:1.5rem}}.form-column{display:flex;flex-direction:column}.steps-section{flex:1;display:flex;flex-direction:column}.steps-section .steps-list{flex:1;max-height:400px;overflow-y:auto;padding-right:.25rem}.form-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0;display:flex;justify-content:center}.btn-large{padding:1rem 2rem;font-size:1rem}@media(max-width:600px){.module-form-header{flex-direction:column;align-items:flex-start}.module-form-actions{width:100%}.module-form-actions button{flex:1}.module-form{padding:1rem}.form-actions{flex-direction:column}.btn-large{width:100%}}.resources-filter-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.75rem 1rem;background:#f8fafc;border-radius:10px;margin-bottom:1.25rem}.resources-filter-bar select{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;min-width:130px}.search-input-wrapper{flex:1;min-width:200px;position:relative;display:flex;align-items:center}.search-input-wrapper .search-icon{position:absolute;left:.75rem;color:#94a3b8;pointer-events:none}.tag-search-input{width:100%;padding:.5rem 2rem .5rem 2.25rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff}.tag-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.search-input-wrapper .clear-search{position:absolute;right:.5rem;background:none;border:none;font-size:1.25rem;color:#94a3b8;cursor:pointer;padding:0;line-height:1}.search-input-wrapper .clear-search:hover{color:#64748b}.filter-count{font-size:.8rem;color:#64748b;white-space:nowrap;padding:.25rem .5rem;background:#e2e8f0;border-radius:12px}.resources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.resource-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;transition:box-shadow .15s,border-color .15s;display:flex;flex-direction:column;gap:.5rem}.resource-card:hover{box-shadow:0 4px 12px #00000014;border-color:#cbd5e1}.resource-card-header{display:flex;align-items:flex-start;gap:.5rem}.resource-type-icon{font-size:1.25rem;width:32px;height:32px;background:#f1f5f9;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.resource-title{flex:1;margin:0;font-size:.95rem;font-weight:600;color:#1e293b;line-height:1.3}.resource-card-actions{display:flex;gap:.25rem;flex-shrink:0}.btn-icon-small{width:28px;height:28px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;font-size:.8rem;display:flex;align-items:center;justify-content:center}.btn-icon-small:hover{background:#f8fafc}.btn-icon-small.danger:hover{background:#fef2f2;border-color:#fecaca}.resource-subject-badge{display:inline-block;font-size:.7rem;font-weight:500;padding:.125rem .5rem;background:#f1f5f9;color:#475569;border-radius:4px;align-self:flex-start}.resource-card .resource-description{font-size:.825rem;color:#64748b;margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resource-url{font-size:.8rem;color:#3b82f6;text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;word-break:break-all;padding:.375rem .5rem;background:#eff6ff;border-radius:6px;transition:background .15s}.resource-url:hover{background:#dbeafe;text-decoration:underline}.resource-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem}.resource-tag{font-size:.7rem;padding:.125rem .5rem;background:#dbeafe;color:#1d4ed8;border-radius:4px;cursor:pointer;transition:all .15s}.resource-tag:hover{background:#bfdbfe}.resource-modal{max-width:550px}.resource-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:500px){.resource-form-grid{grid-template-columns:1fr}}@media(max-width:600px){.resources-filter-bar{flex-direction:column;align-items:stretch}.resources-filter-bar select{min-width:auto;width:100%}.search-input-wrapper{width:100%}.filter-count{text-align:center}.resources-grid{grid-template-columns:1fr}}.module-class-assignments{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.assignments-label{font-size:.75rem;color:#64748b;font-weight:500;display:block;margin-bottom:.5rem}.class-badges-row{display:flex;flex-wrap:wrap;gap:.375rem}.class-badge{font-size:.7rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;border:2px solid;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.25rem}.class-badge.unassigned{background:#fff;border-color:#cbd5e1;color:#64748b}.class-badge.unassigned:hover{background:#f1f5f9;border-color:#94a3b8}.class-badge.not_started{background:#fef2f2;border-color:#ef4444;color:#dc2626}.class-badge.not_started:hover{background:#fee2e2}.class-badge.in_progress{background:#fef3c7;border-color:#f59e0b;color:#b45309}.class-badge.in_progress:hover{background:#fde68a}.class-badge.completed{background:#dcfce7;border-color:#22c55e;color:#15803d}.class-badge.completed:hover{background:#bbf7d0}.class-badge .progress-indicator{font-size:.6rem;opacity:.8;margin-left:.125rem}.assignment-popup-overlay{position:fixed;inset:0;z-index:1000}.assignment-popup{position:fixed;background:#fff;border-radius:8px;box-shadow:0 10px 25px #00000026,0 4px 10px #0000001a;min-width:240px;max-width:320px;z-index:1001;overflow:hidden;animation:popupSlide .15s ease-out}@keyframes popupSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.popup-header{padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.85rem}.popup-header strong{color:#1e293b}.popup-progress{padding:.75rem 1rem;border-bottom:1px solid #e2e8f0}.popup-progress .progress-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.popup-progress .progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#4ade80);border-radius:4px;transition:width .3s ease}.popup-progress .progress-text{font-size:.75rem;color:#64748b}.popup-actions{padding:.5rem;display:flex;flex-direction:column;gap:.25rem}.popup-actions button{padding:.5rem .75rem;font-size:.8rem;border:none;background:transparent;text-align:left;cursor:pointer;border-radius:4px;transition:background .15s}.popup-actions button:hover{background:#f1f5f9}.popup-actions button.danger{color:#dc2626}.popup-actions button.danger:hover{background:#fef2f2}.repertoire-view{padding:1.5rem;max-width:900px;margin:0 auto}.repertoire-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.tab{padding:.75rem 1.25rem;border:none;background:transparent;font-size:1rem;font-weight:500;color:#64748b;cursor:pointer;border-radius:8px 8px 0 0;transition:all .15s}.tab:hover{color:#1e293b;background:#f8fafc}.tab.active{color:#3b82f6;background:#eff6ff}.class-selector{display:flex;gap:1rem;margin-bottom:1rem;align-items:center}.class-selector select{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:1rem;background:#fff;min-width:200px}.btn-add-song{padding:.625rem 1rem;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-add-song:hover{background:#dbeafe}.repertoire-list{display:flex;flex-direction:column;gap:.75rem}.repertoire-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;border-left:4px solid #94a3b8;transition:all .15s}.repertoire-item.status-learning{border-left-color:#f59e0b;background:#fffbeb}.repertoire-item.status-known{border-left-color:#22c55e;background:#f0fdf4}.repertoire-item.status-mastered{border-left-color:#8b5cf6;background:#faf5ff}.song-info{flex:1;min-width:0}.song-header{display:flex;align-items:center;gap:.5rem}.song-header h3{margin:0;font-size:1.1rem;color:#1e293b}.difficulty,.leadsheet-badge{font-size:.9rem}.song-artist{margin:.25rem 0 0;font-size:.9rem;color:#64748b}.song-meta{display:flex;gap:1rem;margin-top:.5rem;font-size:.8125rem;color:#94a3b8}.play-count{font-weight:500}.repertoire-actions{display:flex;align-items:center;gap:.75rem}.status-selector{display:flex;gap:.25rem}.status-btn{width:32px;height:32px;border:2px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;font-size:.875rem}.status-btn.status-learning:hover,.status-btn.status-learning.active{background:#fef3c7;border-color:#f59e0b}.status-btn.status-known:hover,.status-btn.status-known.active{background:#dcfce7;border-color:#22c55e}.status-btn.status-mastered:hover,.status-btn.status-mastered.active{background:#e9d5ff;border-color:#8b5cf6}.btn-play{padding:.375rem .625rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:6px;font-size:.8125rem;cursor:pointer;transition:all .15s}.btn-play:hover{transform:scale(1.05)}.btn-remove{width:28px;height:28px;border:none;background:transparent;color:#94a3b8;cursor:pointer;font-size:.875rem;border-radius:4px;transition:all .15s}.btn-remove:hover{background:#fee2e2;color:#dc2626}.songs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.song-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;transition:all .15s}.song-card:hover{box-shadow:0 4px 12px #00000014}.song-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.song-card-header h3{margin:0;font-size:1rem;color:#1e293b}.song-badges{display:flex;gap:.25rem}.badge{font-size:.875rem}.song-card .song-artist{margin:0 0 .5rem}.song-genre{display:inline-block;padding:.125rem .5rem;background:#f1f5f9;border-radius:4px;font-size:.75rem;color:#64748b}.song-classes{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9;font-size:.8125rem;color:#64748b}.song-classes .muted{color:#94a3b8}.song-card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem}.btn-icon{width:32px;height:32px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;font-size:.875rem}.btn-icon:hover{background:#f8fafc}.btn-icon.danger:hover{background:#fef2f2;border-color:#fecaca}.add-to-class-modal{max-width:450px}.search-input{width:100%;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;margin-bottom:1rem}.songs-to-add{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.song-to-add{display:flex;align-items:center;padding:.75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s;text-align:left}.song-to-add:hover{background:#eff6ff;border-color:#bfdbfe}.song-to-add .song-title{flex:1;font-weight:500;color:#1e293b}.song-to-add .song-artist{margin:0 .75rem;font-size:.875rem;color:#64748b}.song-to-add .add-icon{width:24px;height:24px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600}.no-results{text-align:center;color:#94a3b8;padding:2rem}.difficulty-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.difficulty-btn{padding:.5rem .75rem;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.difficulty-btn:hover{background:#f8fafc}.difficulty-btn.active{background:#eff6ff;border-color:#3b82f6}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.quick-links{display:flex;gap:.25rem}.btn-link{width:32px;height:32px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;font-size:.875rem}.btn-link:hover{background:#f8fafc;border-color:#cbd5e1}.song-artist .year{color:#94a3b8}.assigned-classes{color:#059669}.loading-container{display:flex;justify-content:center;align-items:center;padding:4rem}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-text{color:#dc2626}.error-container{display:flex;justify-content:center;padding:2rem}.modal-hint{font-size:.875rem;color:#64748b;margin-bottom:.75rem}@media(max-width:600px){.class-selector{flex-direction:column;align-items:stretch}.repertoire-item{flex-direction:column;align-items:flex-start;gap:1rem}.repertoire-actions{width:100%;justify-content:space-between}.songs-grid{grid-template-columns:1fr}}.group-generator-modal{max-width:900px;width:95vw;max-height:90vh;overflow-y:auto}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;color:#64748b}.generator-content{display:flex;flex-direction:column;gap:1.25rem}.generator-section{display:flex;flex-direction:column;gap:.5rem}.generator-section>label{font-weight:600;font-size:.9rem;color:#374151}.generator-section select{padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem}.hint{font-size:.8125rem;color:#64748b;margin:0}.mode-toggle{display:flex;background:#f1f5f9;border-radius:8px;padding:4px}.mode-toggle button{flex:1;padding:.5rem .75rem;border:none;background:transparent;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .15s;color:#64748b}.mode-toggle button:hover:not(.active){color:#374151}.gender-mode-buttons{display:flex;gap:8px}.gender-mode-buttons button{flex:1;padding:.625rem .75rem;border:2px solid #e2e8f0;background:#fff;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s;color:#64748b}.gender-mode-buttons button:hover{border-color:#cbd5e1;background:#f8fafc}.gender-mode-buttons button.active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.number-input{display:flex;align-items:center;gap:1rem;justify-content:center;padding:.5rem;background:#f8fafc;border-radius:8px}.number-input button{width:40px;height:40px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:1.25rem;cursor:pointer;transition:all .15s}.number-input button:hover{background:#f1f5f9;border-color:#cbd5e1}.number-input span{font-size:1.5rem;font-weight:700;min-width:50px;text-align:center}.student-chips{display:flex;flex-wrap:wrap;gap:.5rem}.student-chip{padding:.375rem .75rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:20px;font-size:.8125rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:4px}.student-chip:hover{background:#e2e8f0}.student-chip.excluded{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0;text-decoration:line-through;opacity:.6}.student-chip.male{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.student-chip.female{background:#fce7f3;border-color:#f9a8d4;color:#be185d}.student-chip.male.excluded,.student-chip.female.excluded{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.gender-icon{font-size:.875rem;line-height:1}.btn-generate{padding:1rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-generate:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.btn-generate:disabled{background:#cbd5e1;cursor:not-allowed}.generator-results{border-top:1px solid #e2e8f0;padding-top:1.25rem;margin-top:.5rem}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.results-header h3{margin:0;font-size:1rem;color:#374151}.results-actions{display:flex;gap:.5rem}.btn-icon{width:36px;height:36px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .15s}.btn-icon:hover{background:#f8fafc;border-color:#cbd5e1}.btn-present{padding:.5rem 1rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}.btn-present:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.group-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.group-card.male-group{border-color:#93c5fd}.group-card.female-group{border-color:#f9a8d4}.group-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.group-card.male-group .group-header{background:linear-gradient(135deg,#3b82f6,#2563eb)}.group-card.female-group .group-header{background:linear-gradient(135deg,#ec4899,#db2777)}.group-number{font-weight:600;font-size:.875rem}.group-count{font-size:.75rem;opacity:.9}.group-members{list-style:none;padding:.5rem;margin:0}.group-members li{padding:.375rem .5rem;font-size:.875rem;color:#374151;border-radius:6px;display:flex;align-items:center;gap:6px}.group-members li.member.male{background:#eff6ff;color:#1d4ed8}.group-members li.member.female{background:#fdf2f8;color:#be185d}.group-members li .gender-indicator{font-size:.75rem;width:16px;text-align:center}@media(max-width:600px){.group-generator-modal{max-width:100%;width:100%;margin:10px}.groups-grid{grid-template-columns:repeat(2,1fr)}.gender-mode-buttons{flex-wrap:wrap}.gender-mode-buttons button{min-width:calc(50% - 4px)}}.quick-tool-modal{max-width:420px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.25rem;line-height:1;color:#64748b;transition:color .15s}.modal-close:hover{color:#1e293b}.quick-tool-content{display:flex;flex-direction:column;gap:1rem}.tool-section{margin-bottom:.5rem}.class-select{width:100%;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:1rem;background:#fff}.tool-actions{display:flex;gap:.75rem;justify-content:center}.tool-stats{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;color:#64748b}.student-display{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;padding:2.5rem 1.5rem;border-radius:16px;text-align:center;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .2s}.student-display.spinning{animation:pulse .15s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.student-display .placeholder{font-size:3rem;opacity:.5}.student-display .student-name{font-size:1.75rem;font-weight:700;margin-bottom:.25rem}.student-display .student-class{font-size:.9rem;opacity:.8}.btn-pick{flex:1;padding:1rem 1.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-pick:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2563eb4d}.btn-pick:disabled{background:#cbd5e1;cursor:not-allowed}.btn-exclude{padding:.75rem 1rem;background:#f0fdf4;color:#166534;border:1px solid #86efac;border-radius:10px;font-size:.9rem;cursor:pointer;transition:all .15s}.btn-exclude:hover{background:#dcfce7}.btn-reset{padding:.5rem .75rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:6px;font-size:.8125rem;cursor:pointer}.btn-reset:hover{background:#e2e8f0}.pick-history{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.75rem;background:#f8fafc;border-radius:8px}.history-label{font-size:.8125rem;color:#64748b}.history-item{font-size:.8125rem;padding:.25rem .5rem;background:#fff;border:1px solid #e2e8f0;border-radius:4px}.exclude-section{border:1px solid #e2e8f0;border-radius:8px;padding:.75rem}.exclude-section summary{cursor:pointer;font-size:.875rem;color:#64748b;-webkit-user-select:none;user-select:none}.exclude-section .student-chips{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.75rem}.student-chip{padding:.25rem .5rem;background:#dbeafe;color:#1d4ed8;border:1px solid #93c5fd;border-radius:12px;font-size:.75rem;cursor:pointer;transition:all .15s}.student-chip:hover{background:#bfdbfe}.student-chip.excluded{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0;text-decoration:line-through}.timer-modal{max-width:360px}.mode-toggle{display:flex;background:#f1f5f9;border-radius:10px;padding:4px}.mode-toggle button{flex:1;padding:.625rem 1rem;border:none;background:transparent;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .15s;color:#64748b}.mode-toggle button.active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #0000001a}.timer-display{position:relative;text-align:center;padding:2rem}.timer-display .progress-ring{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.timer-display .progress-ring svg{width:180px;height:180px;transform:scaleX(-1)}.timer-display .progress-ring circle{transition:stroke-dashoffset .3s ease}.timer-display .time-value{position:relative;z-index:1;font-size:3.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:#1e293b}.timer-display.warning .time-value{color:#ef4444;animation:blink 1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.timer-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.timer-presets button{padding:.625rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.timer-presets button:hover{background:#e2e8f0}.timer-controls{display:flex;gap:.75rem;justify-content:center}.btn-timer{padding:.875rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-timer.start{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.btn-timer.start:hover{transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.btn-timer.pause{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-presets{padding:.75rem 1rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:10px;font-size:.875rem;cursor:pointer}.note-header{font-weight:500;color:#374151;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.lesson-note-input{width:100%;padding:1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:1rem;font-family:inherit;resize:vertical;min-height:120px}.lesson-note-input:focus{outline:none;border-color:#3b82f6}.btn-save{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 .15s}.btn-save:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.note-hint{font-size:.75rem;color:#94a3b8;text-align:center;margin:0}.settings-view{padding:1.5rem;max-width:800px;margin:0 auto}.settings-header{margin-bottom:2rem}.settings-header h1{font-size:1.75rem;font-weight:600;color:var(--text-primary)}.settings-content{display:flex;flex-direction:column;gap:2rem}.settings-section h2{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.settings-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.profile-info{display:flex;flex-direction:column;gap:1rem}.profile-field{display:flex;flex-direction:column;gap:.25rem}.profile-field label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.profile-field span{font-size:1rem;color:var(--text-primary)}.sync-status{display:flex;flex-direction:column;gap:1rem}.sync-indicator{display:flex;align-items:center;gap:.5rem;font-weight:500}.sync-dot{width:10px;height:10px;border-radius:50%}.sync-indicator.connected .sync-dot{background:#22c55e;box-shadow:0 0 8px #22c55e80}.sync-indicator.disconnected .sync-dot{background:#94a3b8}.sync-folder{font-size:.9rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.5rem .75rem;border-radius:6px;font-family:monospace}.sync-description{font-size:.9rem;color:var(--text-secondary);line-height:1.5}.data-stats{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.data-stats h3{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.stats-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:1rem}.stat-mini{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;background:var(--bg-secondary);border-radius:8px}.stat-mini .stat-value{font-size:1.5rem;font-weight:700;color:var(--accent-primary)}.stat-mini .stat-label{font-size:.75rem;color:var(--text-secondary)}.data-actions{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:600px){.data-actions{grid-template-columns:1fr}}.action-group{display:flex;flex-direction:column;gap:.75rem}.action-group h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.action-group p{font-size:.85rem;color:var(--text-secondary);margin:0;line-height:1.4}.import-error{color:#ef4444;font-size:.85rem;margin:0}.import-success{color:#22c55e;font-size:.85rem;margin:0}.danger-zone h2{color:#ef4444}.settings-card.danger{border-color:#ef44444d;background:#ef44440d}.danger-action{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.danger-action h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.danger-action p{font-size:.85rem;color:var(--text-secondary);margin:0}@media(max-width:500px){.danger-action{flex-direction:column;align-items:flex-start}}.btn-primary{padding:.75rem 1.25rem;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{padding:.75rem 1.25rem;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.btn-danger{padding:.75rem 1.25rem;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-text{padding:.5rem 1rem;background:none;color:var(--text-secondary);border:none;font-size:.9rem;cursor:pointer;transition:color .2s}.btn-text:hover{color:var(--text-primary)}.import-modal{max-width:500px}.modal-description{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.5}.import-preview{background:var(--bg-secondary);padding:1rem;border-radius:8px;margin-bottom:1.5rem}.import-preview h4{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem}.import-preview ul{margin:0;padding-left:1.25rem;color:var(--text-primary);font-size:.9rem}.import-preview li{margin:.25rem 0}.import-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.import-option{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:1rem;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.import-option:hover{border-color:var(--accent-primary);background:var(--bg-hover)}.option-icon{font-size:1.25rem}.option-title{font-weight:600;color:var(--text-primary)}.option-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.modal-overlay{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;background:#000000b3!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:99999!important;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-overlay .modal,.import-modal{background:var(--bg-card, #ffffff)!important;border-radius:16px;padding:1.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0006;position:relative;z-index:100000!important}.modal h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}label.btn-secondary{display:inline-block;text-align:center}.timetable-settings-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.timetable-settings-info p{margin:0;color:var(--text-secondary)}.slots-preview{display:flex;flex-wrap:wrap;gap:.5rem}.slot-preview-item{display:flex;flex-direction:column;padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;min-width:100px}.slot-preview-item .slot-label{font-weight:600;font-size:.875rem;color:var(--text-primary)}.slot-preview-item .slot-time{font-size:.75rem;color:var(--text-secondary)}.timetable-modal{max-width:550px}.slots-editor{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0;max-height:400px;overflow-y:auto}.slot-editor-row{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-secondary);border-radius:8px}.slot-label-input{flex:1;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;min-width:100px}.slot-time-input{padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;width:100px}.slot-separator{color:var(--text-secondary);padding:0 .25rem}.btn-delete-slot{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:6px;transition:background .2s}.btn-delete-slot:hover{background:#ef44441a}.btn-add-slot{padding:.75rem;background:var(--bg-hover);border:2px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-size:.875rem}.btn-add-slot:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#3b82f60d}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.btn-edit-profile{margin-top:1rem;padding:.5rem 1rem;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:8px;font-size:.875rem;color:var(--text-secondary);cursor:pointer;transition:all .2s}.btn-edit-profile:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.profile-modal{max-width:400px}.profile-modal h2{margin-bottom:1.5rem}.profile-modal .form-group{margin-bottom:1rem}.profile-modal .form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-primary)}.profile-modal .form-group input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem}.profile-modal .form-group input:focus{outline:none;border-color:var(--accent-primary)}.module-view{max-width:1200px;margin:0 auto}.module-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px;flex-wrap:wrap}.module-header h1{font-size:28px;font-weight:700;color:#1e293b;margin:0 0 4px}.module-header p{font-size:14px;color:#64748b;margin:0}.header-actions{display:flex;gap:8px}.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:16px;border:2px dashed #e2e8f0}.empty-icon{font-size:48px;display:block;margin-bottom:16px}.empty-state h3{font-size:20px;font-weight:600;color:#1e293b;margin:0 0 8px}.empty-state p{font-size:14px;color:#64748b;margin:0 0 20px}.empty-actions{display:flex;gap:12px;justify-content:center}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card{background:#fff;border-radius:12px;padding:20px;border:1px solid #e2e8f0;transition:all .15s}.card:hover{border-color:#c7d2fe;box-shadow:0 4px 12px #0000000d}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-badge{padding:6px 12px;border-radius:8px;font-weight:700;font-size:14px;border:1px solid}.card-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.card:hover .card-actions{opacity:1}.card-title{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 12px}.card-stats{display:flex;gap:16px;padding-top:12px;border-top:1px solid #f1f5f9}.card-stat{display:flex;align-items:center;gap:8px}.card-stat .stat-icon{font-size:16px}.card-stat .stat-value{font-weight:600;color:#1e293b}.card-stat .stat-label{font-size:12px;color:#64748b}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.subject-card{background:#fff;border-radius:12px;padding:16px;border:1px solid #e2e8f0;transition:all .15s}.subject-card:hover{border-color:#c7d2fe;box-shadow:0 4px 12px #0000000d}.subject-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.subject-badge{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border:1px solid}.subject-name{font-size:15px;font-weight:600;color:#1e293b;margin:0}.filters-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.search-box{flex:1;min-width:200px;position:relative}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px}.search-input{width:100%;padding:10px 12px 10px 36px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff}.search-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.filter-select{padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;min-width:150px}.filter-select:focus{outline:none;border-color:#6366f1}.table-container{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:1px solid #e2e8f0}.data-table td{padding:12px 16px;font-size:14px;color:#334155;border-bottom:1px solid #f1f5f9}.data-table tr{cursor:pointer;transition:background .1s}.data-table tbody tr:hover{background:#f8fafc}.data-table tr:last-child td{border-bottom:none}.student-name{display:flex;align-items:center;gap:10px}.student-avatar{font-size:20px}.class-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid}.no-class{color:#94a3b8}.no-results{text-align:center;padding:40px;color:#64748b;background:#fff;border-radius:0 0 12px 12px}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none;padding:10px 18px;font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .15s}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-icon{background:transparent;border:none;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-icon:hover{background:#f1f5f9}.btn-icon.danger:hover{background:#fef2f2}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:16px;width:100%;max-width:420px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .2s ease}.modal.modal-lg{max-width:560px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.modal-header h2{font-size:18px;font-weight:600;color:#1e293b;margin:0}.modal-close{background:transparent;border:none;font-size:24px;color:#94a3b8;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px}.modal-close:hover{background:#e2e8f0;color:#64748b}.modal-form{padding:24px;overflow-y:auto}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #f1f5f9}.form-section{margin-bottom:24px}.form-section h3{font-size:14px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.form-row{display:flex;gap:12px}.form-group{flex:1;margin-bottom:16px}.form-group.flex-grow{flex:2}.form-group label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;transition:all .15s;box-sizing:border-box}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.form-textarea{resize:vertical;min-height:80px}.form-hint{font-size:12px;color:#64748b;margin:0 0 8px}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:36px;height:36px;border-radius:8px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:all .15s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#1e293b;box-shadow:0 0 0 2px #fff,0 0 0 4px #6366f1}.form-preview{display:flex;align-items:center;gap:12px;padding:12px;background:#f8fafc;border-radius:8px;margin-top:8px}.preview-label{font-size:13px;color:#64748b}.preview-badge{padding:6px 12px;border-radius:6px;font-weight:600;font-size:13px;border:1px solid}.import-preview{background:#f8fafc;border-radius:8px;padding:16px;margin-top:16px}.import-preview h4{font-size:14px;font-weight:600;color:#1e293b;margin:0 0 12px}.preview-list{display:flex;flex-direction:column;gap:6px}.preview-item{font-size:13px;color:#334155;padding:6px 10px;background:#fff;border-radius:4px;border:1px solid #e2e8f0}.preview-more{font-size:12px;color:#64748b;padding:6px 10px;font-style:italic}@media(max-width:640px){.form-row{flex-direction:column}.hide-mobile{display:none}.module-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:stretch}.header-actions .btn-primary,.header-actions .btn-secondary{flex:1}}.class-card-extended{display:flex;flex-direction:column;gap:12px}.class-modules-summary{margin-top:8px;padding:10px;background:#f8fafc;border-radius:8px}.modules-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.modules-label{font-weight:600;font-size:13px;color:#475569}.modules-count{display:flex;gap:6px}.completed-badge,.progress-badge{font-size:12px;padding:2px 6px;border-radius:4px}.completed-badge{background:#dcfce7;color:#166534}.progress-badge{background:#fef3c7;color:#92400e}.modules-list-mini{display:flex;flex-direction:column;gap:4px}.module-mini{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#fff;border-radius:4px;font-size:13px}.module-mini.completed{background:#f0fdf4}.module-mini.in-progress{background:#fffbeb}.module-mini.not-started{opacity:.7}.module-status-icon{font-size:11px}.module-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-percent{font-weight:600;color:#64748b;font-size:12px}.modules-more{font-size:12px;color:#64748b;text-align:center;padding:4px}.last-lesson{margin-top:8px;padding:8px 10px;background:#eff6ff;border-radius:6px;font-size:12px;display:flex;gap:6px}.last-lesson-date{color:#3b82f6;font-weight:500;white-space:nowrap}.last-lesson-content{color:#1e40af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-actions{display:flex;gap:4px}.competency-progress-modal{max-height:85vh;overflow-y:auto}.progress-student-info{display:flex;align-items:center;gap:12px;padding:16px;background:#f8fafc;border-radius:10px;margin-bottom:16px}.progress-student-info .student-avatar{font-size:2rem}.progress-student-info strong{display:block;font-size:1.1rem;color:#1e293b}.progress-student-info .student-class{font-size:.875rem;color:#64748b;margin-left:8px}.progress-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.summary-stat{display:flex;flex-direction:column;align-items:center;padding:16px 12px;border-radius:10px;background:#f8fafc}.summary-stat .stat-icon{font-size:1.5rem;margin-bottom:4px}.summary-stat .stat-value{font-size:1.5rem;font-weight:700;color:#1e293b}.summary-stat .stat-label{font-size:.75rem;color:#64748b;text-align:center}.summary-stat.reached{background:#dcfce7}.summary-stat.partial{background:#fef9c3}.summary-stat.not-reached{background:#f1f5f9}.summary-stat.total{background:#eff6ff}.progress-content{max-height:400px;overflow-y:auto}.progress-module-section{margin-bottom:20px}.progress-module-section .module-title{font-size:1rem;font-weight:600;color:#1e293b;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.competency-progress-list{display:flex;flex-direction:column;gap:8px}.competency-progress-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fafafa;border-radius:8px}.competency-progress-item .competency-id{font-family:monospace;font-weight:600;color:#8b5cf6;font-size:.85rem;min-width:100px}.competency-progress-item .competency-status{flex:1;font-size:.875rem;display:flex;align-items:center;gap:6px}.competency-progress-item .competency-status.reached{color:#15803d}.competency-progress-item .competency-status.partial{color:#a16207}.competency-progress-item .competency-status.not-reached{color:#64748b}.competency-progress-item .competency-date{font-size:.75rem;color:#94a3b8}@media(max-width:500px){.progress-summary{grid-template-columns:repeat(2,1fr)}.competency-progress-item{flex-wrap:wrap}.competency-progress-item .competency-id{min-width:auto}}.stammdaten-view{padding:1.5rem;max-width:1400px;margin:0 auto}.stammdaten-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e5e7eb;padding-bottom:.5rem;overflow-x:auto}.stammdaten-tabs .tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;background:transparent;color:#6b7280;font-size:.95rem;font-weight:500;cursor:pointer;border-radius:8px 8px 0 0;transition:all .2s;white-space:nowrap}.stammdaten-tabs .tab:hover{color:#374151;background:#f3f4f6}.stammdaten-tabs .tab.active{color:#3b82f6;background:#eff6ff;border-bottom:2px solid #3b82f6;margin-bottom:-2px}.stammdaten-tabs .tab-badge{background:#e5e7eb;color:#374151;padding:.15rem .5rem;border-radius:10px;font-size:.8rem;font-weight:600}.stammdaten-tabs .tab.active .tab-badge{background:#dbeafe;color:#3b82f6}.stammdaten-content{min-height:400px}.stammdaten-content .view-header{display:none}@media(max-width:768px){.stammdaten-view{padding:1rem}.stammdaten-tabs{gap:.25rem}.stammdaten-tabs .tab{padding:.6rem .8rem;font-size:.85rem}}.attendance-view{padding:1.5rem;max-width:800px;margin:0 auto}.attendance-controls{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.class-select{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font-size:1rem;min-width:150px;background:#fff}.date-controls{display:flex;align-items:center;gap:.5rem}.date-nav{width:36px;height:36px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .15s}.date-nav:hover{background:#f8fafc}.date-input{padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem}.btn-today{padding:.5rem .75rem;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-today:hover{background:#dbeafe}.attendance-summary{display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem;background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow-x:auto}.summary-item{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;border-radius:8px;min-width:70px}.summary-item.present{background:#dcfce7;color:#166534}.summary-item.absent{background:#fee2e2;color:#991b1b}.summary-item.late{background:#fef3c7;color:#92400e}.summary-item.excused{background:#e0e7ff;color:#3730a3}.summary-item.not-marked{background:#f1f5f9;color:#64748b}.summary-count{font-size:1.5rem;font-weight:700}.summary-label{font-size:.75rem;font-weight:500}.quick-actions{display:flex;gap:.75rem;margin-bottom:1rem}.btn-mark-all{padding:.625rem 1rem;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-mark-all:hover{transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.btn-stats{padding:.625rem 1rem;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-stats:hover{background:#e2e8f0}.btn-stats.active{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.student-list{display:flex;flex-direction:column;gap:.5rem}.student-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;transition:all .15s}.student-row.unmarked{border-left:4px solid #94a3b8}.student-row.present{border-left:4px solid #22c55e;background:#f0fdf4}.student-row.absent{border-left:4px solid #ef4444;background:#fef2f2}.student-row.late{border-left:4px solid #f59e0b;background:#fffbeb}.student-row.excused{border-left:4px solid #6366f1;background:#eef2ff}.student-info{display:flex;flex-direction:column;gap:.25rem}.student-name{font-weight:500;color:#1e293b}.student-stats{display:flex;gap:.5rem;font-size:.75rem}.student-stats .stat{padding:.125rem .375rem;border-radius:4px}.student-stats .stat.absent{background:#fee2e2;color:#991b1b}.student-stats .stat.late{background:#fef3c7;color:#92400e}.student-stats .stat.warning{background:#fee2e2;color:#991b1b}.status-buttons{display:flex;gap:.375rem}.status-btn{width:40px;height:40px;border:2px solid #e2e8f0;background:#fff;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.status-btn:hover{transform:scale(1.05)}.status-btn.status-present{color:#16a34a}.status-btn.status-present:hover,.status-btn.status-present.active{background:#dcfce7;border-color:#22c55e}.status-btn.status-absent{color:#dc2626}.status-btn.status-absent:hover,.status-btn.status-absent.active{background:#fee2e2;border-color:#ef4444}.status-btn.status-late{color:#d97706}.status-btn.status-late:hover,.status-btn.status-late.active{background:#fef3c7;border-color:#f59e0b}.status-btn.status-excused{color:#4f46e5}.status-btn.status-excused:hover,.status-btn.status-excused.active{background:#e0e7ff;border-color:#6366f1}.empty-state{text-align:center;padding:4rem 2rem;color:#64748b}.empty-state .empty-icon{font-size:4rem;display:block;margin-bottom:1rem}.weekend-message,.no-lessons-message{text-align:center;padding:4rem 2rem;color:#64748b}.weekend-icon,.empty-icon{font-size:4rem;display:block;margin-bottom:1rem}.weekend-message h3,.no-lessons-message h3{margin:0 0 .5rem;color:#1e293b}.lessons-grid{margin-top:1rem}.lessons-grid h2{font-size:1.1rem;color:#64748b;margin-bottom:1rem;font-weight:500}.lessons-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.lesson-card{display:flex;flex-direction:column;padding:0;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .15s;text-align:left;overflow:hidden}.lesson-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.lesson-card.completed{border-color:#22c55e;background:#f0fdf4}.lesson-card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.lesson-time-slot{font-weight:600;font-size:.875rem;color:#1e293b}.lesson-time{font-size:.8rem;color:#64748b}.lesson-card-body{display:flex;flex-direction:column;gap:.375rem;padding:.875rem 1rem}.lesson-class{font-weight:700;font-size:1.1rem;padding:.125rem .5rem;border-radius:4px;display:inline-block;width:fit-content}.lesson-subject{font-size:.9rem;color:#475569}.lesson-room-small{font-size:.8rem;color:#94a3b8}.lesson-card-footer{padding:.625rem 1rem;background:#f8fafc;border-top:1px solid #e2e8f0}.attendance-status{font-size:.8rem;font-weight:500}.attendance-status.complete{color:#16a34a}.attendance-status.incomplete{color:#64748b}.lesson-attendance{margin-top:1rem}.lesson-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.back-btn{padding:.5rem 1rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-weight:500;transition:all .15s}.back-btn:hover{background:#e2e8f0}.lesson-info h2{margin:0 0 .25rem;font-size:1.25rem}.lesson-time,.lesson-room{font-size:.875rem;color:#64748b;margin-right:1rem}@media(max-width:600px){.attendance-controls{flex-direction:column}.class-select{width:100%}.attendance-summary{flex-wrap:nowrap;padding:.75rem}.summary-item{padding:.375rem .5rem;min-width:55px}.summary-count{font-size:1.25rem}.status-btn{width:36px;height:36px}}.behavior-stats-view{max-width:1000px;margin:0 auto;padding:16px}.stats-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.stats-title{flex:1;min-width:200px}.stats-title h2{margin:0;font-size:1.25rem}.stats-subtitle{color:var(--text-secondary);font-size:.9rem}.stats-tabs{display:flex;gap:4px;background:var(--bg-secondary);border-radius:8px;padding:4px}.stats-tab{padding:8px 16px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-secondary);transition:all .15s}.stats-tab:hover{color:var(--text-primary)}.stats-tab.active{background:var(--bg-primary);color:var(--accent);box-shadow:0 1px 3px #0000001a}.insights-section{margin-bottom:24px}.insights-section h3{font-size:1rem;margin-bottom:12px}.insights-list{display:flex;flex-wrap:wrap;gap:8px}.insight-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;cursor:pointer;transition:all .15s}.insight-item.improving{background:#22c55e26;color:#22c55e}.insight-item.declining,.insight-item.warning{background:#ef444426;color:#ef4444}.insight-item:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.insight-message{font-weight:500;font-size:14px}.insight-trend{font-size:12px;opacity:.8;font-family:monospace}.heatmap-section{margin-bottom:24px}.heatmap-section h3{font-size:1rem;margin-bottom:12px}.heatmap-legend{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;font-size:13px}.legend-item{display:flex;align-items:center;gap:6px}.legend-color{width:16px;height:16px;border-radius:4px}.heatmap-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.heatmap-table{width:100%;border-collapse:collapse;min-width:500px}.heatmap-table th,.heatmap-table td{padding:0;text-align:center}.heatmap-table th{padding:8px 4px;font-size:11px;font-weight:600;color:var(--text-secondary)}.heatmap-name-col{text-align:left!important;width:140px;min-width:140px}.heatmap-week-col{width:50px;min-width:50px}.heatmap-row{cursor:pointer}.heatmap-row:hover .heatmap-name{color:var(--accent)}.heatmap-name{text-align:left;padding:6px 8px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;transition:color .15s}.heatmap-cell{padding:4px}.heatmap-cell>span{display:flex;align-items:center;justify-content:center;width:36px;height:32px;margin:0 auto;border-radius:6px;font-size:11px;font-weight:600}.heatmap-count{display:flex;align-items:center;justify-content:center;width:36px;height:32px;border-radius:6px;font-size:11px;font-weight:600}.heatmap-positive .heatmap-count,.heatmap-positive{background:#22c55e40;color:#16a34a}.heatmap-neutral .heatmap-count,.heatmap-neutral{background:#eab30840;color:#ca8a04}.heatmap-negative .heatmap-count,.heatmap-negative{background:#ef444440;color:#dc2626}.heatmap-none .heatmap-count,.heatmap-none{background:var(--bg-tertiary);color:var(--text-muted)}.legend-color.heatmap-positive{background:#22c55e66}.legend-color.heatmap-neutral{background:#eab30866}.legend-color.heatmap-negative{background:#ef444466}.legend-color.heatmap-none{background:var(--bg-tertiary)}.student-detail-section{margin-bottom:24px}.student-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.student-detail-header h3{font-size:1rem;margin:0}.toggle-label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.toggle-label input{width:16px;height:16px;accent-color:var(--accent)}.chart-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px 8px;margin-bottom:16px}.weekly-counts{margin-top:24px}.weekly-counts h4{font-size:.9rem;margin-bottom:12px;color:var(--text-secondary)}.count-bars{display:flex;gap:4px;align-items:flex-end;overflow-x:auto;padding-bottom:8px}.count-bar-item{display:flex;flex-direction:column;align-items:center;min-width:50px}.count-bar{width:32px;min-height:4px;border-radius:4px 4px 0 0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px;font-size:10px;font-weight:600;color:#fff;transition:height .3s}.count-label{font-size:10px;color:var(--text-secondary);margin-top:4px}.categories-section h3{font-size:1rem;margin-bottom:16px}.category-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:24px}.category-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px}.category-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.category-icon{font-size:1.25rem}.category-name{flex:1;font-weight:600}.category-total{font-size:12px;color:var(--text-secondary)}.category-breakdown{display:flex;flex-direction:column;gap:8px}.breakdown-bar{display:flex;height:24px;border-radius:6px;overflow:hidden;background:var(--bg-tertiary)}.breakdown-segment{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;min-width:0;transition:width .3s}.breakdown-segment.positive{background:#22c55e}.breakdown-segment.neutral{background:#94a3b8}.breakdown-segment.negative{background:#ef4444}.breakdown-labels{display:flex;justify-content:space-between;font-size:12px}.breakdown-labels .label{display:flex;align-items:center;gap:4px}.breakdown-labels .label.positive{color:#22c55e}.breakdown-labels .label.neutral{color:var(--text-secondary)}.breakdown-labels .label.negative{color:#ef4444}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary);background:var(--bg-secondary);border-radius:12px;border:1px dashed var(--border)}@media(max-width:768px){.stats-header{flex-direction:column;align-items:flex-start}.stats-tabs{width:100%;justify-content:center}.stats-tab{flex:1;text-align:center}.heatmap-name-col{width:100px;min-width:100px}.heatmap-name{max-width:100px;font-size:12px}.heatmap-week-col{width:40px;min-width:40px}.heatmap-count{width:30px;height:28px}.category-cards{grid-template-columns:1fr}.insights-list{flex-direction:column}.insight-item{width:100%}}@media(prefers-color-scheme:dark){.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:#94a3b826}.recharts-text{fill:var(--text-secondary)}}.behavior-module{height:100%;display:flex;flex-direction:column}.compact-header{padding-bottom:12px!important}.compact-header h1{margin-bottom:0}.header-controls{display:flex;gap:12px}.class-select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:pointer}.class-select:focus{outline:none;border-color:var(--accent)}.stats-toggle-btn{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.stats-toggle-btn:hover{border-color:var(--accent);background:var(--accent-light, rgba(59, 130, 246, .1));color:var(--accent)}.behavior-content{flex:1;overflow-y:auto;padding:16px 20px}.class-view.compact{max-width:800px;margin:0 auto}.compact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px}.compact-student-row{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-secondary);border-radius:6px;border:1px solid var(--border);min-height:36px}.compact-student-row:hover{border-color:var(--accent)}.student-entry-btn{width:28px;height:28px;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.student-entry-btn:hover{transform:scale(1.1);background:var(--accent-hover, #2563eb)}.student-name-compact{flex:1;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-name-compact:hover{color:var(--accent);text-decoration:underline}.today-badges{display:flex;gap:3px;align-items:center;flex-shrink:0}.mini-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .1s}.mini-badge:hover{transform:scale(1.15);opacity:.8}.no-entries{color:var(--text-muted, #94a3b8);font-size:12px}.rating-excellent{background:#eab30840;color:#ca8a04}.rating-good{background:#22c55e33;color:#22c55e}.rating-neutral{background:#94a3b840;color:#64748b}.rating-bad{background:#ef444433;color:#ef4444}.rating-terrible{background:#ef444459;color:#dc2626}.student-history{max-width:700px;margin:0 auto}.history-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.back-btn{padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-weight:500}.back-btn:hover{background:var(--bg-hover)}.history-title{flex:1}.history-title h2{margin:0 0 4px}.history-stats{display:flex;gap:8px}.stat-box{padding:4px 10px;border-radius:6px;font-size:13px;font-weight:600}.stat-box.positive{background:#22c55e26;color:#22c55e}.stat-box.negative{background:#ef444426;color:#ef4444}.stat-box.total{background:var(--bg-tertiary)}.add-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}.add-btn:hover{opacity:.9}.history-list{display:flex;flex-direction:column;gap:12px}.history-entry{display:flex;align-items:flex-start;gap:16px;padding:12px 16px;border-radius:12px;border:1px solid var(--border)}.entry-date{min-width:70px;font-size:13px;font-weight:600;color:var(--text-secondary)}.entry-time{display:block;font-size:11px;font-weight:400}.entry-content{flex:1}.entry-main{display:flex;gap:12px;align-items:center}.entry-category{font-weight:500}.entry-rating-label{font-weight:600}.entry-note-full{margin:8px 0 0;font-size:13px;color:var(--text-secondary)}.entry-subject{display:inline-block;margin-top:6px;font-size:12px;color:var(--text-secondary)}.entry-delete-btn{background:none;border:none;cursor:pointer;opacity:.5;font-size:16px}.entry-delete-btn:hover{opacity:1}.empty-history{text-align:center;padding:40px;color:var(--text-secondary)}.behavior-modal{max-width:500px}.category-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.category-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:2px solid var(--border);border-radius:10px;background:var(--bg-secondary);cursor:pointer;transition:all .15s}.category-btn:hover{border-color:var(--accent)}.category-btn.active{border-color:var(--accent);background:var(--accent-light)}.cat-icon{font-size:20px}.cat-name{font-size:11px;font-weight:500;text-align:center}.rating-buttons{display:flex;gap:8px}.rating-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all .15s}.rating-btn:hover{transform:scale(1.05)}.rating-btn.active{border-color:var(--text-primary);transform:scale(1.05)}.rating-icon{font-size:22px}.rating-label{font-size:10px;font-weight:600}.multi-select-toggle{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s}.multi-select-toggle:hover{border-color:var(--accent)}.multi-select-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.multi-select-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--accent-light, rgba(59, 130, 246, .1));border:1px solid var(--accent);border-radius:8px;margin-bottom:12px}.selected-count{font-weight:600;font-size:13px}.select-all-btn,.select-none-btn{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);font-size:12px;cursor:pointer}.select-all-btn:hover,.select-none-btn:hover{background:var(--bg-hover)}.multi-entry-btn{margin-left:auto;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer}.multi-entry-btn:disabled{opacity:.5;cursor:not-allowed}.multi-entry-btn:not(:disabled):hover{opacity:.9}.checkbox{width:20px;height:20px;border:2px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;background:var(--bg-primary)}.checkbox.checked{background:var(--accent);border-color:var(--accent);color:#fff}.compact-student-row.selected{background:var(--accent-light, rgba(59, 130, 246, .1));border-color:var(--accent)}.history-btn{width:28px;height:28px;border:none;background:transparent;cursor:pointer;font-size:16px;opacity:.5;flex-shrink:0;border-radius:4px;transition:all .15s}.history-btn:hover{opacity:1;background:var(--bg-hover)}.multi-students-list{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);max-height:80px;overflow-y:auto}.multi-student-chip{padding:4px 8px;background:var(--bg-secondary);border-radius:4px;font-size:12px}.compact-student-row{cursor:pointer}.compact-student-row:active{transform:scale(.98)}@media(max-width:600px){.compact-grid{grid-template-columns:1fr}.rating-buttons{flex-wrap:wrap}.rating-btn{flex:1 1 calc(50% - 4px)}.category-buttons{grid-template-columns:repeat(2,1fr)}.multi-select-bar{flex-wrap:wrap}.multi-entry-btn{width:100%;margin-left:0;margin-top:8px}}.grades-module{height:100%;display:flex;flex-direction:column}.grades-content{flex:1;overflow:auto;padding:16px 20px}.subject-select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:pointer}.subject-select:focus{outline:none;border-color:var(--accent)}.add-grade-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;transition:all .15s}.add-grade-btn:hover{opacity:.9}.empty-grades{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-grades .empty-icon{font-size:48px;margin-bottom:16px}.empty-grades h3{margin:0 0 8px;color:var(--text-primary)}.empty-grades p{margin:0 0 20px;color:var(--text-secondary)}.grades-table-container{overflow-x:auto;max-width:100%}.grades-table{width:100%;border-collapse:collapse;font-size:13px;min-width:500px}.grades-table th,.grades-table td{padding:8px 12px;text-align:center;border-bottom:1px solid var(--border)}.grades-table th{background:var(--bg-secondary);font-weight:600;position:sticky;top:0;z-index:1}.grades-table tbody tr:hover{background:var(--bg-hover)}.student-col{text-align:left!important;white-space:nowrap;min-width:160px;position:sticky;left:0;background:var(--bg-primary);z-index:2}.grades-table th.student-col{background:var(--bg-secondary);z-index:3}.grades-table tbody tr:hover .student-col{background:var(--bg-hover)}.student-name{font-weight:500}.grade-col{min-width:70px;max-width:100px}.average-col{min-width:60px;font-weight:600;background:var(--bg-tertiary)}.grades-table th.average-col{background:var(--bg-tertiary)}.assessment-header{display:flex;flex-direction:column;gap:2px}.assessment-date{font-size:11px;color:var(--text-secondary);font-weight:500}.assessment-label{font-size:12px;font-weight:600;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grade-cell{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:40px;padding:4px 8px;border-radius:6px;border:1px solid;font-weight:600;font-size:13px;cursor:pointer;transition:all .15s;background:none}.grade-cell:hover{transform:scale(1.05);box-shadow:0 2px 6px #0000001a}.grade-weight{font-size:10px;opacity:.7;font-weight:500}.no-grade{color:var(--text-muted);font-size:12px}.average-value{font-weight:700;font-size:14px}.grade-good{background:#22c55e26;color:#22c55e;border-color:#22c55e}.grade-ok{background:#f59e0b26;color:#f59e0b;border-color:#f59e0b}.grade-bad{background:#ef444426;color:#ef4444;border-color:#ef4444}.grades-modal{max-width:600px;max-height:90vh;overflow-y:auto}.grades-edit-modal{max-width:450px}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.grades-input-list{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}.grade-input-row{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border)}.grade-input-row:last-child{border-bottom:none}.grade-input-name{flex:1;font-size:13px;font-weight:500}.grade-input-field{width:60px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;text-align:center;font-size:14px;font-weight:600;background:var(--bg-primary);color:var(--text-primary)}.grade-input-field:focus{outline:none;border-color:var(--accent)}.grade-input-field::placeholder{color:var(--text-muted);font-weight:400}.edit-info{background:var(--bg-secondary);padding:12px 16px;border-radius:8px;margin-bottom:16px}.edit-info p{margin:4px 0;font-size:13px}.edit-info strong{color:var(--text-secondary)}.grade-edit-input{font-size:20px;font-weight:700;text-align:center}.action-spacer{flex:1}.btn-danger{padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .15s}.btn-danger:hover{background:#dc2626}@media(max-width:768px){.grades-content{padding:12px}.grades-table{font-size:12px}.grades-table th,.grades-table td{padding:6px 8px}.student-col{min-width:120px}.grade-col{min-width:55px}.form-row{flex-direction:column;gap:12px}.header-controls{flex-wrap:wrap}}@media(max-width:480px){.grades-modal{max-width:95vw;margin:10px}.grade-input-row{padding:6px 10px}.grade-input-name{font-size:12px}}.import-modal{background:#fff;border-radius:16px;width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.import-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px 16px 0 0}.import-modal-header h2{margin:0;font-size:1.25rem;color:#fff;font-weight:600}.import-modal-header .close-btn{width:32px;height:32px;border:none;background:#fff3;border-radius:8px;color:#fff;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.import-modal-header .close-btn:hover{background:#ffffff4d}.import-modal-content{padding:1.5rem;overflow-y:auto;flex:1}.upload-section{text-align:center;padding:2rem 1rem}.upload-info{margin-bottom:2rem;text-align:left;background:#f8fafc;padding:1.25rem;border-radius:12px}.upload-info p{margin:0 0 .75rem;color:#475569}.upload-info ul{margin:0;padding-left:1.25rem;color:#64748b}.upload-info li{margin-bottom:.35rem}.upload-info .hint{margin-top:1rem;font-size:.875rem;color:#94a3b8}.upload-btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.upload-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.upload-icon{font-size:1.25rem}.preview-section{display:flex;flex-direction:column;gap:1.25rem}.preview-header{display:flex;align-items:center;justify-content:space-between}.preview-header h3{margin:0;font-size:1.1rem;color:#1e293b}.preview-info{background:#f8fafc;padding:1rem 1.25rem;border-radius:12px;display:flex;flex-direction:column;gap:.5rem}.info-row{display:flex;gap:.75rem;align-items:flex-start}.info-label{font-weight:500;color:#64748b;min-width:100px;flex-shrink:0}.info-value{color:#1e293b;display:flex;flex-wrap:wrap;gap:.35rem}.competency-badge{display:inline-block;padding:.125rem .5rem;background:#e0e7ff;color:#4f46e5;border-radius:4px;font-size:.8rem;font-weight:500;font-family:monospace}.match-summary{display:flex;gap:1rem;padding:.75rem 1rem;background:#f1f5f9;border-radius:8px}.match-count{font-weight:500;color:#64748b}.match-count.success{color:#16a34a}.match-count.warning{color:#d97706}.match-list{overflow-x:auto;border:1px solid #e2e8f0;border-radius:12px}.match-list table{width:100%;border-collapse:collapse;font-size:.9rem}.match-list th{text-align:left;padding:.75rem 1rem;background:#f8fafc;color:#64748b;font-weight:500;border-bottom:1px solid #e2e8f0}.match-list td{padding:.75rem 1rem;border-bottom:1px solid #f1f5f9;vertical-align:middle}.match-list tr:last-child td{border-bottom:none}.match-list tr.unmatched{background:#fef9c3}.status-cell{width:40px;text-align:center}.email-cell{display:flex;flex-direction:column;gap:.125rem}.email-cell .email{font-family:monospace;font-size:.85rem;color:#475569}.email-cell .display-name{font-size:.8rem;color:#94a3b8}.match-cell .student-match{display:flex;align-items:center;gap:.5rem;color:#1e293b}.match-cell .class-name{font-size:.8rem;color:#64748b}.match-cell .no-match{color:#d97706;font-style:italic}.data-cell{display:flex;gap:.5rem}.data-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:#e2e8f0;color:#475569;border-radius:4px;font-size:.75rem}.import-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.import-actions .btn-secondary{padding:.75rem 1.25rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-weight:500;cursor:pointer;transition:all .15s}.import-actions .btn-secondary:hover{background:#e2e8f0}.import-actions .btn-primary{padding:.75rem 1.5rem;background:linear-gradient(135deg,#16a34a,#15803d);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .15s}.import-actions .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.import-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.import-success{text-align:center;padding:1.5rem 1rem}.success-icon{font-size:3rem;margin-bottom:1rem}.import-success h3{margin:0 0 1.5rem;color:#16a34a;font-size:1.25rem}.import-stats{display:flex;justify-content:center;gap:2rem;margin-bottom:1.5rem}.import-stats .stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.import-stats .stat-value{font-size:2rem;font-weight:700;color:#1e293b}.import-stats .stat-label{font-size:.85rem;color:#64748b}.unmatched-warning{background:#fef9c3;padding:1rem 1.25rem;border-radius:8px;text-align:left;margin-bottom:1.5rem}.unmatched-warning strong{color:#92400e}.unmatched-warning ul{margin:.5rem 0;padding-left:1.25rem;color:#92400e}.unmatched-warning .hint{margin:.75rem 0 0;font-size:.85rem;color:#a16207}.error-message{margin-top:1rem;padding:.75rem 1rem;background:#fef2f2;color:#dc2626;border-radius:8px;font-size:.9rem}@media(max-width:640px){.import-modal{width:95%;max-height:90vh;border-radius:12px}.import-modal-header{padding:1rem;border-radius:12px 12px 0 0}.import-modal-content{padding:1rem}.preview-info{font-size:.9rem}.info-row{flex-direction:column;gap:.25rem}.info-label{min-width:auto;font-size:.8rem}.match-list{font-size:.8rem}.match-list th,.match-list td{padding:.5rem}.email-cell .email{font-size:.75rem;word-break:break-all}.import-stats{gap:1rem}.import-stats .stat-value{font-size:1.5rem}.import-actions{flex-direction:column-reverse}.import-actions button{width:100%}}.tracking-view{padding:1.5rem;max-width:1400px;margin:0 auto}.tracking-view .view-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.tracking-view .view-header-actions{display:flex;gap:.75rem;align-items:center}.btn-import{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-import:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.tracking-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e5e7eb;padding-bottom:.5rem;overflow-x:auto}.tracking-tabs .tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;background:transparent;color:#6b7280;font-size:.95rem;font-weight:500;cursor:pointer;border-radius:8px 8px 0 0;transition:all .2s;white-space:nowrap}.tracking-tabs .tab:hover{color:#374151;background:#f3f4f6}.tracking-tabs .tab.active{color:#10b981;background:#ecfdf5;border-bottom:2px solid #10b981;margin-bottom:-2px}.tracking-tabs .tab-badge{background:#e5e7eb;color:#374151;padding:.15rem .5rem;border-radius:10px;font-size:.8rem;font-weight:600}.tracking-tabs .tab.active .tab-badge{background:#d1fae5;color:#10b981}.tracking-content{min-height:400px}.tracking-content .view-header{display:none}@media(max-width:768px){.tracking-view{padding:1rem}.tracking-tabs{gap:.25rem}.tracking-tabs .tab{padding:.6rem .8rem;font-size:.85rem}}.bibliothe-view{padding:1.5rem;max-width:1400px;margin:0 auto}.bibliothe-view .view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.bibliothe-content{min-height:400px}.bibliothe-view .filter-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1.5rem;padding:1rem;background:#f9fafb;border-radius:12px}.bibliothe-view .filter-bar select{padding:.5rem 1rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;font-size:.9rem}.bibliothe-view .search-input-wrapper{flex:1;min-width:200px;position:relative;display:flex;align-items:center}.bibliothe-view .search-icon{position:absolute;left:.75rem;color:#9ca3af}.bibliothe-view .tag-search-input{width:100%;padding:.5rem 2rem .5rem 2.25rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem}.bibliothe-view .clear-search{position:absolute;right:.5rem;background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.2rem;padding:.25rem}.bibliothe-view .filter-count{color:#6b7280;font-size:.85rem;padding:.5rem .75rem;background:#e5e7eb;border-radius:8px}.bibliothe-view .resources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.bibliothe-view .resource-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1rem;transition:all .2s}.bibliothe-view .resource-card:hover{box-shadow:0 4px 12px #0000001a;border-color:#d1d5db}.bibliothe-view .resource-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.bibliothe-view .resource-type-icon{font-size:1.5rem}.bibliothe-view .resource-title{flex:1;margin:0;font-size:1rem;font-weight:600;color:#1f2937}.bibliothe-view .resource-card-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.bibliothe-view .resource-card:hover .resource-card-actions{opacity:1}.bibliothe-view .btn-icon-small{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:4px;font-size:.9rem}.bibliothe-view .btn-icon-small:hover{background:#f3f4f6}.bibliothe-view .btn-icon-small.danger:hover{background:#fef2f2}.bibliothe-view .resource-subject-badge{display:inline-block;padding:.2rem .5rem;font-size:.75rem;font-weight:500;border-radius:6px;background:#e5e7eb;color:#374151;margin-bottom:.5rem}.bibliothe-view .resource-description{color:#6b7280;font-size:.85rem;margin:.5rem 0;line-height:1.5}.bibliothe-view .resource-url{display:block;color:#3b82f6;font-size:.8rem;text-decoration:none;margin:.5rem 0;word-break:break-all}.bibliothe-view .resource-url:hover{text-decoration:underline}.bibliothe-view .resource-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.bibliothe-view .resource-tag{padding:.2rem .5rem;background:#f3f4f6;border-radius:4px;font-size:.75rem;color:#6b7280;cursor:pointer;transition:all .2s}.bibliothe-view .resource-tag:hover{background:#e5e7eb;color:#374151}.bibliothe-view .empty-state{text-align:center;padding:3rem 1rem;color:#6b7280}.bibliothe-view .empty-icon{font-size:4rem;display:block;margin-bottom:1rem}.bibliothe-view .empty-state p{margin:.5rem 0}.bibliothe-view .empty-state .hint{font-size:.9rem;color:#9ca3af}.bibliothe-view .modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.bibliothe-view .modal{background:#fff;border-radius:12px;padding:1.5rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.bibliothe-view .modal h2{margin:0 0 1.5rem;font-size:1.25rem}.bibliothe-view .form-group{margin-bottom:1rem}.bibliothe-view .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.bibliothe-view .form-group input,.bibliothe-view .form-group textarea,.bibliothe-view .form-group select{width:100%;padding:.75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.95rem}.bibliothe-view .resource-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.bibliothe-view .type-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.bibliothe-view .type-btn{padding:.5rem 1rem;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:.85rem;transition:all .2s}.bibliothe-view .type-btn:hover{background:#f3f4f6}.bibliothe-view .type-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.bibliothe-view .modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}@media(max-width:768px){.bibliothe-view{padding:1rem}.bibliothe-view .resources-grid,.bibliothe-view .resource-form-grid{grid-template-columns:1fr}}.main-layout{display:flex;min-height:100vh;background:#f8fafc}.sidebar{width:260px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;transition:width .2s ease;position:fixed;left:0;top:0;bottom:0;z-index:100}.sidebar.closed{width:72px}.sidebar-header{padding:20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:12px}.logo-icon{font-size:28px}.logo-text{font-size:20px;font-weight:700;color:#1e293b}.sidebar.closed .logo-text{display:none}.sidebar-toggle{background:#f1f5f9;border:none;width:28px;height:28px;border-radius:6px;cursor:pointer;color:#64748b;font-size:12px;display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{background:#e2e8f0}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border:none;background:transparent;border-radius:10px;cursor:pointer;transition:all .15s ease;margin-bottom:4px;text-align:left}.nav-item:hover{background:#f1f5f9}.nav-item.active{background:#eef2ff}.nav-icon{font-size:20px;width:24px;text-align:center}.nav-label{flex:1;font-size:15px;font-weight:500;color:#334155}.nav-item.active .nav-label{color:#4f46e5;font-weight:600}.nav-badge{background:#e2e8f0;color:#64748b;font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px}.nav-item.active .nav-badge{background:#c7d2fe;color:#4f46e5}.nav-item.highlight{background:linear-gradient(135deg,#fef3c7,#fef9c3);border:1px solid #fcd34d}.nav-item.highlight:hover{background:linear-gradient(135deg,#fde68a,#fef08a)}.nav-item.highlight.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent}.nav-item.highlight.active .nav-label{color:#fff}.nav-item.highlight.active .nav-icon{filter:brightness(0) invert(1)}.nav-badge.danger{background:#fee2e2;color:#dc2626}.nav-item.active .nav-badge.danger{background:#ffffff4d;color:#fff}.sidebar-footer{padding:16px;border-top:1px solid #e2e8f0}.sync-status{margin-bottom:12px}.sync-connected{display:flex;align-items:center;gap:10px;padding:10px;background:#ecfdf5;border-radius:8px;border:1px solid #a7f3d0}.sync-icon{font-size:18px}.sync-info{flex:1;display:flex;flex-direction:column}.sync-label{font-size:12px;font-weight:600;color:#059669}.sync-folder{font-size:11px;color:#10b981;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-saving{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.sync-connect{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:#f1f5f9;border:1px dashed #cbd5e1;border-radius:8px;cursor:pointer;font-size:13px;color:#64748b;transition:all .15s}.sync-connect:hover{background:#e2e8f0;border-color:#94a3b8;color:#334155}.user-info{display:flex;align-items:center;gap:10px;padding:10px;background:#f8fafc;border-radius:8px}.user-avatar{width:36px;height:36px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}.user-details{flex:1;display:flex;flex-direction:column;overflow:hidden}.user-name{font-size:14px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-school{font-size:12px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-content{flex:1;margin-left:260px;padding:24px;min-height:100vh;transition:margin-left .2s ease}.sidebar.closed~.main-content{margin-left:72px}.dashboard-view{max-width:1000px;margin:0 auto}.view-header{margin-bottom:32px}.view-header h1{font-size:28px;font-weight:700;color:#1e293b;margin:0 0 8px}.view-header p{font-size:16px;color:#64748b;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000000d;border:1px solid #e2e8f0}.stat-card.clickable{cursor:pointer;transition:all .15s}.stat-card.clickable:hover{border-color:#c7d2fe;box-shadow:0 4px 12px #6366f11a;transform:translateY(-2px)}.stat-icon{font-size:32px;background:#f1f5f9;width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-content{flex:1;display:flex;flex-direction:column}.stat-number{font-size:28px;font-weight:700;color:#1e293b}.stat-label{font-size:14px;color:#64748b}.stat-arrow{font-size:20px;color:#cbd5e1;transition:transform .15s}.stat-card.clickable:hover .stat-arrow{transform:translate(4px);color:#6366f1}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:32px}.info-card{background:#fff;border-radius:16px;padding:24px;border:1px solid #e2e8f0}.info-card.highlight{background:linear-gradient(135deg,#eef2ff,#f0fdf4);border-color:#c7d2fe}.info-card h3{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 12px}.info-card p{font-size:14px;color:#64748b;line-height:1.6;margin:0 0 16px}.info-actions{display:flex;gap:12px;flex-wrap:wrap}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none;padding:12px 20px;font-size:14px;font-weight:600;border-radius:10px;cursor:pointer;transition:all .15s}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0;padding:10px 16px;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.btn-text{background:transparent;border:none;color:#64748b;font-size:13px;cursor:pointer;padding:8px 12px;border-radius:6px}.btn-text:hover{background:#f1f5f9;color:#334155}.btn-text.danger:hover{background:#fef2f2;color:#dc2626}.dashboard-footer{text-align:center;padding:24px;color:#94a3b8;font-size:13px}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:#fff;border-bottom:1px solid #e2e8f0;z-index:90;padding:0 16px;align-items:center;gap:12px}.hamburger-btn{width:40px;height:40px;border:none;background:#f1f5f9;border-radius:8px;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.hamburger-btn:hover{background:#e2e8f0}.mobile-title{font-size:1.125rem;font-weight:700;color:#1e293b}.mobile-saving{margin-left:auto;animation:pulse 1s ease-in-out infinite}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:95}@media(max-width:768px){.mobile-header{display:flex}.sidebar-overlay{display:block}.sidebar{transform:translate(-100%);width:280px;z-index:100}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;padding-top:72px}.stats-grid{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.view-header h1{font-size:1.5rem}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.quick-tools-bar{padding:.75rem;gap:.5rem}.quick-tool-btn{padding:.5rem .625rem;min-width:60px}.quick-tool-btn .tool-icon{font-size:1.25rem}.quick-tool-btn .tool-label{font-size:.625rem}}.btn-demo{padding:8px 16px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-demo:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.view-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.view-header-left h1{margin:0 0 4px}.view-header-left p{margin:0;color:#64748b}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}@media(max-width:768px){.today-grid{grid-template-columns:1fr}}.today-card{background:#fff;border-radius:16px;border:1px solid #e2e8f0;padding:20px;min-height:200px}.today-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.today-card-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#1e293b}.today-card-title{display:flex;align-items:center;gap:.75rem}.date-picker-wrapper{position:relative;cursor:pointer;display:inline-flex;align-items:center;min-height:32px;min-width:70px}.date-picker-input{position:absolute;opacity:0;cursor:pointer;inset:-4px -8px;width:calc(100% + 16px);height:calc(100% + 8px);z-index:1}.date-display{font-size:.85rem;color:#3b82f6;padding:.35rem .6rem;background:#eff6ff;border-radius:6px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.date-display:hover{background:#dbeafe}.btn-today-reset{background:none;border:1px solid #e2e8f0;color:#64748b;font-size:.875rem;padding:.25rem .5rem;border-radius:6px;cursor:pointer;transition:all .15s ease}.btn-today-reset:hover{background:#f1f5f9;color:#3b82f6;border-color:#3b82f6}.btn-calendar-shortcut{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;font-size:1.1rem;padding:.35rem .5rem;border-radius:8px;cursor:pointer;transition:all .15s ease;line-height:1}.btn-calendar-shortcut:hover{background:#dcfce7;border-color:#86efac;transform:scale(1.05)}.btn-link{background:none;border:none;color:#3b82f6;font-size:.875rem;cursor:pointer;padding:0}.btn-link:hover{text-decoration:underline}.today-empty{text-align:center;padding:24px;color:#64748b}.today-empty .empty-icon{font-size:2.5rem;display:block;margin-bottom:8px}.today-empty p{margin:0 0 12px}.btn-sm{padding:6px 12px;font-size:.8125rem}.lessons-list{display:flex;flex-direction:column;gap:8px}.lesson-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:.9rem}.lesson-time{font-weight:600;color:#3b82f6;min-width:50px}.lesson-class{font-weight:600;color:#1e293b;min-width:40px}.lesson-subject{color:#475569;flex:1}.lesson-room{font-size:.8125rem;color:#94a3b8;background:#e2e8f0;padding:2px 8px;border-radius:4px}.todos-list{display:flex;flex-direction:column;gap:8px}.todo-mini{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:.9rem}.todo-mini.overdue{background:#fef2f2;border:1px solid #fecaca}.todo-check{width:20px;height:20px;border:2px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;flex-shrink:0;transition:all .15s}.todo-check:hover{border-color:#3b82f6;background:#eff6ff}.todo-mini .todo-priority{font-size:.875rem}.todo-mini .todo-title{flex:1;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-overdue-badge{font-size:.75rem;padding:2px 8px;background:#fee2e2;color:#dc2626;border-radius:4px;font-weight:500}.overdue-warning{margin-top:12px;padding:10px;background:#fef3c7;border-radius:8px;font-size:.875rem;color:#92400e;text-align:center}.view-header-actions{display:flex;gap:8px;align-items:center}.btn-tool{padding:8px 16px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-tool:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1}.btn-tool:disabled{opacity:.5;cursor:not-allowed}.quick-tools-bar{display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:#fff;border-radius:16px;border:1px solid #e2e8f0;overflow-x:auto}.quick-tool-btn{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.875rem 1.25rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .15s;min-width:100px}.quick-tool-btn:hover:not(:disabled){background:#eff6ff;border-color:#93c5fd;transform:translateY(-2px)}.quick-tool-btn:disabled{opacity:.5;cursor:not-allowed}.quick-tool-btn .tool-icon{font-size:1.5rem}.quick-tool-btn .tool-label{font-size:.75rem;font-weight:500;color:#475569;white-space:nowrap}@media(max-width:600px){.quick-tools-bar{gap:.5rem;padding:.75rem}.quick-tool-btn{padding:.625rem .75rem;min-width:70px}.quick-tool-btn .tool-icon{font-size:1.25rem}.quick-tool-btn .tool-label{font-size:.625rem}}.birthday-banner{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:12px;padding:16px 20px;margin-bottom:24px;display:flex;align-items:center;gap:16px;animation:birthday-glow 2s ease-in-out infinite alternate}@keyframes birthday-glow{0%{box-shadow:0 0 5px #f59e0b4d}to{box-shadow:0 0 20px #f59e0b80}}.birthday-icon{font-size:32px;animation:birthday-bounce 1s ease-in-out infinite}@keyframes birthday-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.birthday-content{flex:1}.birthday-content strong{color:#92400e;font-size:16px}.birthday-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.birthday-student{background:#fff;padding:4px 10px;border-radius:20px;font-size:14px;color:#78350f;font-weight:500}.lesson-item{position:relative}.lesson-item .btn-doc{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:#f1f5f9;border:none;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s}.lesson-item:hover .btn-doc{opacity:1}.lesson-item .btn-doc:hover{background:#e2e8f0}.lesson-item .btn-doc.done{background:#dcfce7;color:#166534;opacity:1}.lesson-item.documented{background:#f0fdf4;border-left:3px solid #22c55e}.lessons-list .lesson-item{padding-right:44px}.lesson-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1px solid #ccc}.lesson-status-dot.status-empty{background:#fff}.lesson-status-dot.status-draft{background:#bbdefb;border-color:#90caf9}.lesson-status-dot.status-planned{background:#1976d2;border-color:#1565c0}.lesson-status-dot.status-completed{background:#4caf50;border-color:#388e3c}.module-progress-card{margin-bottom:1.5rem}.module-progress-list{display:flex;flex-direction:column;gap:.75rem}.module-progress-item{display:flex;align-items:center;gap:.75rem}.module-progress-info{flex:1;min-width:0}.module-progress-title{display:block;font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-progress-class{font-size:.75rem;color:#666}.module-progress-bar-wrap{width:100px;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;flex-shrink:0}.module-progress-bar{height:100%;background:#1976d2;border-radius:4px;transition:width .3s}.module-progress-pct{font-size:.8rem;font-weight:600;color:#555;width:35px;text-align:right;flex-shrink:0}
