@import"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@400;500;600&display=swap";.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-elevated);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:1.5rem 1.25rem;border-bottom:1px solid var(--border-color)}.sidebar-logo{font-family:var(--font-heading);font-size:1.375rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:.75rem;letter-spacing:-.01em}.sidebar-logo svg{color:var(--accent);opacity:.9}.sidebar-nav{flex:1;padding:1.25rem .875rem;display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border-radius:var(--border-radius);color:var(--text-secondary);font-size:.9375rem;font-weight:500;letter-spacing:-.01em;transition:all var(--transition);position:relative}.nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-item-active{background:var(--accent-light);color:var(--text-primary)}.nav-item-active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:24px;background:var(--accent);border-radius:0 2px 2px 0}.nav-item-active:hover{background:var(--accent-light);color:var(--text-primary)}.nav-icon{opacity:.8}.nav-item-active .nav-icon{opacity:1;color:var(--accent)}.sidebar-footer{padding:1.25rem;border-top:1px solid var(--border-color);display:flex;align-items:center;gap:.625rem}.theme-toggle{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.theme-toggle:hover{background:var(--border-color);color:var(--text-primary)}.logout-btn{flex:1;padding:.75rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;gap:.5rem}.logout-btn:hover{background:var(--error-light);border-color:var(--error);color:var(--error)}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.content-header{height:var(--header-height);padding:0 2rem;background:var(--bg-elevated);border-bottom:1px solid var(--border-color);display:flex;align-items:center;position:fixed;top:0;left:var(--sidebar-width);right:0;z-index:50}.page-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;color:var(--text-primary);letter-spacing:-.02em}.content-body{flex:1;padding:2rem;padding-top:calc(var(--header-height) + 2rem);background:var(--bg-secondary);overflow-x:hidden;max-width:100%}.hamburger-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);margin-right:.75rem;margin-left:-.5rem}.hamburger-btn:hover{background:var(--bg-tertiary)}.sidebar-close{display:none;width:36px;height:36px;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--border-radius);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.sidebar-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:150;animation:fadeIn var(--transition-fast) ease-out}@media (max-width: 768px){.hamburger-btn{display:flex}.sidebar{transform:translate(-100%);transition:transform var(--transition);z-index:200;width:280px}.sidebar.sidebar-open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between}.sidebar-close{display:flex}.sidebar-overlay{display:block}.main-content{margin-left:0}.content-header{left:0;padding:0 1.25rem}.content-body{padding:1.25rem;padding-top:calc(var(--header-height) + 1.25rem)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg-secondary)}.login-container{width:100%;max-width:400px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:3rem 2.5rem;box-shadow:var(--shadow-md)}.login-header{text-align:center;margin-bottom:2.5rem}.login-logo{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--accent);border-radius:50%;margin:0 auto 1.25rem;border:1px solid var(--border-color)}.login-title{font-family:var(--font-heading);font-size:1.75rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem;letter-spacing:-.02em}.login-subtitle{color:var(--text-tertiary);font-size:.9375rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-error{padding:.875rem 1rem;background:var(--error-light);border:1px solid var(--error);border-radius:var(--border-radius);color:var(--error);font-size:.875rem}.input-with-icon{position:relative}.input-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-tertiary)}.input-with-icon .login-input{padding-left:2.875rem}.login-btn{width:100%;padding:.875rem;margin-top:.5rem;font-size:.9375rem}@media (max-width: 480px){.login-container{padding:2rem 1.5rem}}.login-toggle{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);text-align:center}.login-toggle-text{color:var(--text-tertiary);font-size:.875rem}.login-toggle-btn{background:none;border:none;color:var(--accent);font-size:.875rem;font-weight:500;cursor:pointer;padding:0;margin-left:.375rem;transition:color var(--transition-fast)}.login-toggle-btn:hover{color:var(--text-primary)}.dashboard{max-width:1200px}.dashboard-welcome{font-family:var(--font-heading);font-size:2rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.dashboard-date{display:flex;align-items:center;gap:.625rem;font-family:var(--font-heading);font-size:1.125rem;color:var(--text-secondary);margin-bottom:2rem;font-style:italic}.dashboard-date svg{color:var(--accent);opacity:.8}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.5rem}.dashboard-section{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.5rem;box-shadow:var(--shadow)}.classes-list{display:flex;flex-direction:column;gap:.75rem}.class-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--bg-tertiary);border-radius:var(--border-radius);border-left:3px solid;transition:all var(--transition)}.class-card:hover{background:var(--bg-secondary)}.class-info{display:flex;flex-direction:column;gap:.25rem}.class-name{font-family:var(--font-heading);font-weight:500;font-size:1.0625rem;color:var(--text-primary)}.class-time{font-size:.8125rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.class-room{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-secondary)}.class-countdown{font-family:var(--font-heading);font-size:.9375rem;color:var(--accent);font-style:italic}.homework-list{display:flex;flex-direction:column;gap:.75rem}.homework-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:var(--border-radius);transition:all var(--transition)}.homework-card:hover{background:var(--bg-secondary)}.homework-score{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-family:var(--font-heading);font-size:1.125rem;font-weight:600;color:#fff}.homework-info{flex:1;min-width:0}.homework-title{font-family:var(--font-heading);font-size:1rem;font-weight:500;color:var(--text-primary);display:block;margin-bottom:.25rem}.homework-course{font-size:.8125rem;font-weight:500}.homework-due{font-size:.8125rem;color:var(--text-tertiary);white-space:nowrap}.todos-list{display:flex;flex-direction:column;gap:.5rem}.todo-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--bg-tertiary);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition)}.todo-item:hover{background:var(--bg-secondary)}.todo-completed{opacity:.5}.todo-completed .todo-title{text-decoration:line-through}.todo-checkbox{color:var(--text-tertiary);transition:color var(--transition-fast)}.todo-completed .todo-checkbox{color:var(--accent)}.todo-title{flex:1;font-size:.9375rem}.todo-course-tag{padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--border-radius)}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.dashboard-welcome{font-size:1.5rem}.dashboard-section{padding:1.25rem}.class-card{padding:.875rem 1rem}.class-name{font-size:1rem}.homework-card{padding:.875rem}.todo-item{padding:.75rem}}.custom-select{position:relative;width:100%;min-width:0;max-width:100%}.select-trigger{width:100%;max-width:100%;min-width:0;box-sizing:border-box!important;padding:.5rem 1rem;font-size:.9375rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;transition:border-color var(--transition),box-shadow var(--transition);font-family:var(--font-body);text-align:left;height:auto;min-height:48px}.select-trigger:hover{border-color:var(--text-tertiary)}.select-trigger:focus{outline:none;border-color:var(--text-tertiary);box-shadow:0 0 0 3px var(--accent-light)}.custom-select.open .select-trigger{border-color:var(--text-tertiary);box-shadow:0 0 0 3px var(--accent-light)}.select-value-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.select-value{display:flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden}.select-value-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.select-value-description{font-size:.75rem;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;line-height:1.2;min-width:0}.select-icon{color:var(--text-tertiary);flex-shrink:0;transition:transform var(--transition-fast)}.custom-select.open .select-icon{transform:rotate(180deg)}.select-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);z-index:100;animation:selectDropdown .15s ease-out}@keyframes selectDropdown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.select-option{width:100%;padding:.625rem 1rem;display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text-primary);font-size:.9375rem;font-family:var(--font-body);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.select-option:hover{background:var(--bg-tertiary)}.select-option.selected{background:var(--accent-light)}.select-option-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.select-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-option-description{font-size:.75rem;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-check{color:var(--accent);flex-shrink:0}.alert-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;animation:fadeIn var(--transition-fast) ease-out}.alert-dialog{position:relative;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.75rem;width:100%;max-width:380px;box-shadow:var(--shadow-lg);animation:slideUp var(--transition) ease-out}.alert-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin:0 auto 1rem}.alert-dialog.info .alert-icon{background:var(--info-light);color:var(--info)}.alert-dialog.success .alert-icon{background:var(--success-light);color:var(--success)}.alert-dialog.warning .alert-icon{background:var(--warning-light);color:var(--warning)}.alert-dialog.error .alert-icon{background:var(--error-light);color:var(--error)}.alert-content{text-align:center;margin-bottom:1.5rem}.alert-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.alert-message{font-size:.9375rem;color:var(--text-secondary);line-height:1.5}.alert-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--border-radius);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.alert-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.alert-actions{display:flex;gap:.75rem;justify-content:center}.alert-actions .btn{min-width:100px}.schedule-page{max-width:1400px}.schedule-header{margin-bottom:1.5rem}.schedule-header h3{font-family:var(--font-heading);font-size:1.25rem;color:var(--text-primary)}.schedule-hint{color:var(--text-tertiary);font-size:.875rem;margin-top:.375rem;font-style:italic}.timetable-container{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.25rem;overflow-x:auto;box-shadow:var(--shadow)}.timetable-grid{min-width:700px}.timetable-header{display:grid;grid-template-columns:50px repeat(7,1fr);gap:4px;margin-bottom:4px}.time-column-header{display:block}.day-header{padding:.75rem;text-align:center;font-family:var(--font-heading);font-size:.9375rem;font-weight:500;color:var(--text-primary);background:var(--bg-tertiary);border-radius:var(--border-radius)}.timetable-body{display:grid;grid-template-columns:50px repeat(7,1fr);gap:4px}.time-labels{display:flex;flex-direction:column}.time-label{font-size:.6875rem;color:var(--text-tertiary);text-align:right;padding-right:.5rem;font-variant-numeric:tabular-nums;display:flex;align-items:flex-start;padding-top:2px}.day-column{position:relative;background:var(--bg-secondary);border-radius:var(--border-radius);cursor:pointer;transition:background var(--transition-fast)}.day-column:hover{background:var(--bg-tertiary)}.hour-line{position:absolute;left:0;right:0;height:1px;background:var(--border-color-light);pointer-events:none}.class-block{position:absolute;left:2px;right:2px;border-radius:var(--border-radius);color:#fff;cursor:pointer;overflow:hidden;z-index:10;transition:opacity var(--transition-fast);min-height:20px;display:flex;flex-direction:column}.class-block-content{display:flex;flex-direction:column;padding:.375rem .5rem;height:100%}.class-block:hover{opacity:.9}.class-block-name{font-family:var(--font-heading);font-weight:500;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.class-block-details{font-size:.625rem;opacity:.85;font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-title{font-family:var(--font-heading);font-size:1.375rem;font-weight:500;color:var(--text-primary)}.modal-header .modal-title{margin-bottom:0}.form-group{margin-bottom:1.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.schedule-header h3{font-size:1.125rem}.schedule-hint{font-size:.8125rem}.timetable-container{padding:.75rem;margin:0 -.25rem;border-radius:var(--border-radius)}.timetable-grid{min-width:600px}.form-row{grid-template-columns:1fr}.timetable-header,.timetable-body{grid-template-columns:40px repeat(7,1fr)}.day-header{font-size:.75rem;padding:.5rem .25rem}.class-block-name{font-size:.6875rem}.class-block-time{font-size:.5625rem}.class-block-content{padding:2px 4px;flex-direction:row;align-items:center;justify-content:space-between;gap:4px}.class-block-name{font-size:.75rem;flex:1;margin-bottom:0;line-height:1}.class-block-details{margin-top:0;font-size:.7rem;flex-shrink:0;font-weight:500;opacity:.9}.class-time-separator,.class-time-end,.class-room{display:none}.modal-actions{flex-direction:column-reverse;gap:.75rem}.modal-actions-right{flex-direction:column;width:100%}.modal-actions .btn{width:100%}}.courses-page{max-width:1000px}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.course-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);overflow:hidden;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow)}.course-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-color-bar{height:4px}.course-content{padding:1.5rem}.course-name{font-family:var(--font-heading);font-size:1.25rem;font-weight:500;color:var(--text-primary);margin-bottom:.75rem}.course-detail{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);margin-bottom:.375rem}.course-detail svg{color:var(--text-tertiary);opacity:.8}.course-stats{display:flex;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.stat{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-tertiary)}.stat svg{opacity:.8}.stat.warning{color:var(--accent)}.color-picker{display:flex;gap:.625rem;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-elevated),0 0 0 4px currentColor}.color-option-custom{position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#ff6b6b);background-size:300% 300%;animation:rainbow-shift 4s ease infinite}@keyframes rainbow-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.color-input-hidden{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}.custom-color-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.color-option-custom.selected .custom-color-preview{background:inherit;border-radius:50%}@media (max-width: 640px){.courses-grid{grid-template-columns:1fr}}.homework-page{max-width:900px}.homework-list-full{display:flex;flex-direction:column;gap:.75rem}.homework-item{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);transition:all var(--transition);box-shadow:var(--shadow-sm)}.homework-item:hover{box-shadow:var(--shadow)}.homework-item.completed{opacity:.6}.hw-score{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:#fff;flex-shrink:0}.hw-main{flex:1;min-width:0;cursor:pointer}.hw-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.hw-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:500;color:var(--text-primary)}.hw-course{padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:var(--border-radius)}.hw-meta{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.hw-due{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-tertiary)}.hw-urgency{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--accent)}.hw-urgency svg{width:12px;height:12px}.hw-description{margin-top:.625rem;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.hw-complete-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--border-radius);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.hw-complete-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.hw-complete-btn.done{color:var(--success)}.urgency-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border-radius:3px;cursor:pointer}.urgency-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--text-primary);border-radius:50%;cursor:pointer;transition:transform var(--transition-fast)}.urgency-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.urgency-labels{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.75rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.urgency-value{display:flex;gap:.125rem;color:var(--accent)}@media (max-width: 640px){.homework-item{flex-direction:column;align-items:flex-start;padding:1rem}.hw-score{width:40px;height:40px;font-size:1rem}.hw-main{width:100%}.hw-header{flex-direction:column;align-items:flex-start;gap:.5rem}.hw-title{font-size:1rem}.hw-meta{gap:.75rem}.hw-complete-btn{position:absolute;top:1rem;right:1rem}.homework-item{position:relative;padding-right:3.5rem}}.todos-page{max-width:800px}.quick-add{display:flex;gap:.75rem;margin-bottom:1.75rem}.quick-add-input{flex:1}.todos-list-full{display:flex;flex-direction:column;gap:.5rem}.todo-row{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius);transition:all var(--transition);box-shadow:var(--shadow-sm)}.todo-row:hover{box-shadow:var(--shadow)}.todo-row.completed{opacity:.5}.todo-row.completed .todo-text{text-decoration:line-through}.todo-check{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;border-radius:var(--border-radius)}.todo-check:hover{color:var(--text-primary);background:var(--bg-tertiary)}.todo-row.completed .todo-check{color:var(--accent)}.todo-content{flex:1;min-width:0;cursor:pointer}.todo-text{font-size:.9375rem;color:var(--text-primary);margin-bottom:.375rem}.todo-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.todo-course-badge{padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:var(--border-radius)}.todo-priority{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.priority-1{color:var(--text-tertiary)}.priority-2{color:var(--text-secondary)}.priority-3{color:var(--accent)}@media (max-width: 640px){.quick-add{flex-direction:column}.quick-add .btn{width:100%}.todo-row{flex-wrap:wrap;padding:1rem;gap:.75rem}.todo-check{width:40px;height:40px}.todo-content{flex:1;min-width:calc(100% - 90px)}.todo-meta{gap:.5rem}}.settings-page{max-width:650px;width:100%;box-sizing:border-box}.settings-section{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.75rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.settings-section:last-child{margin-bottom:0}.settings-section .section-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:500;color:var(--text-primary);margin-bottom:1.25rem;padding-bottom:.875rem;border-bottom:1px solid var(--border-color)}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border-color-light)}.setting-item:last-child{border-bottom:none;padding-bottom:0}.setting-item:first-of-type{padding-top:0}.setting-info{display:flex;flex-direction:column;gap:.25rem}.setting-label{font-size:.9375rem;font-weight:500;color:var(--text-primary)}.setting-desc{font-size:.8125rem;color:var(--text-tertiary)}.toggle-btn{width:52px;height:28px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:14px;padding:2px;cursor:pointer;transition:all var(--transition);position:relative}.toggle-btn.active{background:var(--text-primary);border-color:var(--text-primary)}.toggle-circle{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:50%;transition:all var(--transition);box-shadow:var(--shadow-sm)}.toggle-btn.active .toggle-circle{transform:translate(24px);color:var(--text-primary)}.toggle-circle svg{width:14px;height:14px;color:var(--text-secondary)}.file-btn{cursor:pointer}.btn-link{margin-left:auto;background:none;border:none;color:var(--accent);font-size:.875rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--text-primary)}.setting-item-block{padding:1rem 0;border-bottom:1px solid var(--border-color-light)}.setting-item-block:last-child:not(.danger-zone){border-bottom:none;padding-bottom:0}.setting-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;color:var(--text-primary);font-weight:500}.setting-header svg{color:var(--text-secondary)}.setting-form{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:var(--border-radius)}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.form-group input{padding:.75rem 1rem;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-primary);font-size:.9375rem;transition:border-color var(--transition)}.form-group input:focus{outline:none;border-color:var(--text-tertiary)}.form-group input::placeholder{color:var(--text-tertiary)}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.profile-info{padding:0 0 0 1.75rem;color:var(--text-secondary);font-size:.9375rem}.profile-info p{margin:.25rem 0}.profile-info strong{color:var(--text-primary);font-weight:500}.danger-zone{border:1px solid var(--error);border-radius:var(--border-radius);padding:1.25rem 1.25rem 2rem;margin-top:1.5rem;background:#ff4d4f0d}.danger-zone>.btn{margin-top:1rem;margin-bottom:0}.danger-zone .setting-header{color:var(--error);margin-bottom:0}.danger-zone .setting-header svg{color:var(--error)}.warning-text{color:var(--error);font-size:.875rem;line-height:1.5;margin-bottom:.5rem}@media (max-width: 640px){.setting-item{flex-direction:column;align-items:flex-start;gap:1rem}.setting-item .btn{width:100%;justify-content:center}.setting-item .toggle-btn{align-self:flex-start}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}:root{--font-heading: "EB Garamond", Georgia, "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bg-primary: #faf9f7;--bg-secondary: #f5f4f1;--bg-tertiary: #efeee9;--bg-elevated: #ffffff;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-tertiary: #8a8a8a;--text-inverse: #ffffff;--border-color: #e0ddd6;--border-color-light: #eae8e3;--accent: #8b7355;--accent-hover: #6d5a43;--accent-light: rgba(139, 115, 85, .1);--success: #5a7a5a;--success-light: rgba(90, 122, 90, .1);--warning: #9a8355;--warning-light: rgba(154, 131, 85, .1);--error: #9a5555;--error-light: rgba(154, 85, 85, .1);--info: #556a8a;--info-light: rgba(85, 106, 138, .1);--urgency-critical: #2a2a2a;--urgency-high: #4a4a4a;--urgency-medium: #6a6a6a;--urgency-normal: #8a8a8a;--urgency-low: #aaaaaa;--shadow-sm: 0 1px 2px rgba(26, 26, 26, .04);--shadow: 0 2px 8px rgba(26, 26, 26, .06);--shadow-md: 0 4px 16px rgba(26, 26, 26, .08);--shadow-lg: 0 8px 32px rgba(26, 26, 26, .1);--sidebar-width: 260px;--header-height: 72px;--border-radius: 4px;--border-radius-lg: 8px;--transition-fast: .15s ease;--transition: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-primary: #121212;--bg-secondary: #1a1a1a;--bg-tertiary: #242424;--bg-elevated: #1e1e1e;--text-primary: #f0ede8;--text-secondary: #a8a49c;--text-tertiary: #6a6660;--text-inverse: #121212;--border-color: #2e2e2e;--border-color-light: #242424;--accent: #c4a77d;--accent-hover: #d4bc98;--accent-light: rgba(196, 167, 125, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .35);--success: #7a9a7a;--success-light: rgba(122, 154, 122, .15);--warning: #baa875;--warning-light: rgba(186, 168, 117, .15);--error: #ba7575;--error-light: rgba(186, 117, 117, .15);--info: #7588aa;--info-light: rgba(117, 136, 170, .15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;letter-spacing:-.01em}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:500;letter-spacing:-.02em;line-height:1.3}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}button{font-family:var(--font-body);cursor:pointer}input,textarea,select{font-family:var(--font-body);font-size:.9375rem}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.loading-container{display:flex;align-items:center;justify-content:center;min-height:200px}.spinner{width:32px;height:32px;border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1.75rem;box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:500;letter-spacing:.01em;border-radius:var(--border-radius);border:1px solid transparent;transition:all var(--transition)}.btn-primary{background:var(--text-primary);color:var(--text-inverse);border-color:var(--text-primary)}.btn-primary:hover{background:var(--text-secondary);border-color:var(--text-secondary)}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary)}.btn-danger{background:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover{background:#8a4545;border-color:#8a4545}.btn-ghost{background:transparent;color:var(--text-secondary);border:none}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--border-radius)}.input,input.input{width:100%;max-width:100%;min-width:0;display:block;box-sizing:border-box!important;padding:.75rem 1rem;font-size:.9375rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-primary);transition:border-color var(--transition),box-shadow var(--transition)}.input:focus{outline:none;border-color:var(--text-tertiary);box-shadow:0 0 0 3px var(--accent-light)}input[type=time],input[type=date],input[type=datetime-local]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0;box-sizing:border-box!important}.input::placeholder{color:var(--text-tertiary)}.textarea{resize:vertical;min-height:80px;box-sizing:border-box!important;width:100%;max-width:100%;min-width:0}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a8a8a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.75rem;cursor:pointer}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;letter-spacing:.02em;border-radius:var(--border-radius);background:var(--bg-tertiary);color:var(--text-secondary)}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-error{background:var(--error-light);color:var(--error)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:var(--text-tertiary);gap:1rem}.empty-state svg{opacity:.5}.empty-state p{font-family:var(--font-heading);font-size:1.125rem;font-style:italic}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn var(--transition-fast) ease-out}.modal{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);width:100%;max-width:420px;max-height:90vh;overflow-y:auto;padding:1.75rem;box-shadow:var(--shadow-lg);animation:slideUp var(--transition) ease-out}.modal-lg{max-width:560px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.modal-title{font-family:var(--font-heading);font-size:1.375rem;font-weight:500;color:var(--text-primary);margin:0}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--border-radius);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-actions{display:flex;justify-content:space-between;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--border-color)}.modal-actions-right{display:flex;gap:.75rem;margin-left:auto}.form-group{margin-bottom:1.25rem;min-width:0}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fadeIn var(--transition) ease-out}.slide-up{animation:slideUp var(--transition) ease-out}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;flex-wrap:wrap;gap:1rem}.page-header h3{font-family:var(--font-heading);font-size:1.5rem;font-weight:500}.section-title{font-family:var(--font-heading);font-size:1.125rem;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:.625rem;margin-bottom:1rem}.section-title svg{color:var(--text-tertiary)}.filter-tabs{display:flex;gap:.25rem;background:var(--bg-tertiary);padding:.25rem;border-radius:var(--border-radius)}.tab{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;background:transparent;border:none;border-radius:calc(var(--border-radius) - 2px);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.tab:hover{color:var(--text-primary)}.tab.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm)}.header-filters{display:flex;gap:1rem;align-items:center;min-width:0;max-width:100%}.course-filter{width:auto;min-width:140px}@media (max-width: 768px){:root{--sidebar-width: 0px;--header-height: 60px}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.form-row{gap:.5rem}.page-header,.header-filters{flex-direction:column;align-items:stretch}.modal{max-width:100%;margin:0;max-height:85vh;padding:1.25rem}.modal-lg{max-width:100%}.modal-title{font-size:1.25rem}.modal-actions{flex-direction:column-reverse;gap:.75rem}.modal-actions-right{flex-direction:column;width:100%;margin-left:0}.modal-actions .btn{width:100%;justify-content:center}.btn{min-height:44px}.input,input.input,.textarea,.select{min-height:48px;font-size:16px!important}input[type=time],input[type=date],input[type=datetime-local]{padding-left:.25rem;padding-right:.25rem}.filter-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}.filter-tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex-shrink:0}.section-title{font-size:1rem;padding-bottom:.75rem;margin-bottom:1rem}.empty-state{padding:2rem 1.5rem}}
