*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#0f111a;--color-surface:#1a1d2e;--color-surface-hover:#242840;--color-border:#2e3348;--color-text:#e2e8f0;--color-text-muted:#94a3b8;--color-primary:#818cf8;--color-primary-hover:#6366f1;--color-success:#34d399;--color-success-hover:#10b981;--color-danger:#f87171;--color-warning:#f59e0b;--color-on-primary:#fff;--color-hover-overlay:#ffffff0d;--color-accent-amber:#fbbf24;--color-accent-purple:#a78bfa;--rgb-primary:129, 140, 248;--rgb-primary-strong:99, 102, 241;--rgb-success:52, 211, 153;--rgb-danger:248, 113, 113;--rgb-warning:245, 158, 11;--rgb-amber:251, 191, 36;--rgb-purple:167, 139, 250;--radius:10px;--font:system-ui, -apple-system, "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--tab-bar-height:60px}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;overflow-x:hidden}:root[data-theme=light]{--color-bg:#f5f6fa;--color-surface:#fff;--color-surface-hover:#eceef4;--color-border:#d5d9e3;--color-text:#1a1d2e;--color-text-muted:#5a6478;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-success:#059669;--color-success-hover:#047857;--color-danger:#dc2626;--color-warning:#b45309;--color-on-primary:#fff;--color-hover-overlay:#0f172a0a;--color-accent-amber:#b45309;--color-accent-purple:#7c3aed;--rgb-primary:79, 70, 229;--rgb-primary-strong:67, 56, 202;--rgb-success:5, 150, 105;--rgb-danger:220, 38, 38;--rgb-warning:180, 83, 9;--rgb-amber:180, 83, 9;--rgb-purple:124, 58, 237;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);overscroll-behavior-x:none;min-height:100dvh;line-height:1.6;overflow-x:hidden}.app-layout{overscroll-behavior-y:contain;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-main{width:100%;max-width:1000px;padding:1.25rem .75rem;padding-bottom:calc(1.25rem + var(--safe-bottom) + var(--tab-bar-height));padding-left:calc(.75rem + var(--safe-left));padding-right:calc(.75rem + var(--safe-right));flex:1;margin:0 auto}@media (width>=768px){.app-main{padding:2rem 1.5rem;padding-bottom:calc(2rem + var(--safe-bottom));padding-left:calc(1.5rem + var(--safe-left));padding-right:calc(1.5rem + var(--safe-right))}}.header-wrapper{z-index:50;padding-top:var(--safe-top);background:var(--color-surface);position:sticky;top:0}.app-header{padding:1rem 1.5rem;padding-left:calc(1.5rem + var(--safe-left));padding-right:calc(1.5rem + var(--safe-right));background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.header-brand{align-items:center;gap:.5rem;display:flex}.header-home-btn{border:1px solid var(--color-border);border-radius:var(--radius);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.header-home-btn:hover{background:var(--color-surface-hover);color:var(--color-primary);border-color:var(--color-primary)}.header-home-btn:active{transform:scale(.92)}.header-logo{object-fit:contain;border-radius:6px;flex-shrink:0;width:28px;height:28px}.header-title{color:var(--color-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;font-size:1.25rem;font-weight:700}.header-subtitle{color:var(--color-text-muted);font-size:.75rem;display:none}@media (width>=640px){.header-subtitle{display:block}}.header-center{align-items:center;gap:.5rem;margin-left:auto;display:flex}.theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.theme-toggle:hover{background:var(--color-surface-hover);color:var(--color-primary);border-color:var(--color-primary)}.theme-toggle:active{transform:scale(.92)}.theme-toggle--floating{top:calc(var(--safe-top) + .75rem);right:calc(var(--safe-right) + .75rem);z-index:100;background:var(--color-surface);width:40px;height:40px;position:fixed}.desktop-nav{display:none}.desktop-nav-item{color:var(--color-text-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:.4rem .75rem;font-size:.8rem;font-weight:500;transition:background .1s,color .1s}.desktop-nav-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.desktop-nav-item:active{transform:scale(.97)}.desktop-nav-item--active{color:var(--color-primary);background:rgba(var(--rgb-primary), .1);font-weight:600}.desktop-nav-item--signout{color:var(--color-danger)}.desktop-nav-item--signout:hover{background:rgba(var(--rgb-danger), .1)}.app-header{position:relative}.hamburger-btn{border:1px solid var(--color-border);border-radius:var(--radius);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.hamburger-btn:hover{background:var(--color-surface-hover);color:var(--color-primary);border-color:var(--color-primary)}.hamburger-btn:active{transform:scale(.92)}.hamburger-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:60;flex-direction:column;min-width:180px;display:flex;position:absolute;top:100%;right:1.5rem;overflow:hidden;box-shadow:0 8px 24px #0006}.hamburger-dropdown-item{width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.75rem 1.25rem;font-size:.95rem;font-weight:500;transition:background .1s,color .1s}.hamburger-dropdown-item:hover,.hamburger-dropdown-item:active{background:var(--color-surface-hover)}.hamburger-dropdown-item--active{color:var(--color-primary);background:rgba(var(--rgb-primary), .08);font-weight:600}.hamburger-dropdown-item+.hamburger-dropdown-item{border-top:1px solid var(--color-border)}.hamburger-dropdown-item--signout{color:var(--color-danger)}.hamburger-dropdown-item--signout:hover{background:rgba(var(--rgb-danger), .1)}@media (width>=768px){.desktop-nav{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.hamburger-btn,.hamburger-dropdown{display:none!important}.header-center{margin-left:0}.app-header{flex-wrap:wrap;gap:.5rem}}.page-title{margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.page-description{color:var(--color-text-muted);margin-bottom:1.5rem}.placeholder-text{color:var(--color-text-muted);font-style:italic}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem;display:flex}.stat-value{color:var(--color-primary);font-size:2rem;font-weight:800}.stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.dashboard-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}@media (width>=768px){.dashboard-section{padding:1.5rem}}.dashboard-section h3{margin-bottom:.5rem}.task-form{gap:.75rem;margin-bottom:2rem;display:flex}.task-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font:inherit;flex:1;padding:.75rem 1rem;font-size:.95rem}.task-input::placeholder{color:var(--color-text-muted)}.task-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.btn{border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;border:none;padding:.75rem 1.5rem;font-weight:600;transition:background .15s}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:active{background:var(--color-primary-hover);transform:scale(.97)}.med-timetable{flex-direction:column;gap:1.5rem;display:flex}.med-time-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.med-time-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:.6rem 1.25rem;font-size:.8rem;font-weight:700}.med-list{list-style:none}.med-item{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.75rem 1.25rem;display:flex}.med-item:last-child{border-bottom:none}.med-item-name{flex:1;font-weight:500}.med-item-freq{color:var(--color-text-muted);text-transform:capitalize;font-size:.8rem}.med-edit-input{flex:1;min-width:0;padding:.4rem .6rem;font-size:.9rem}.med-edit-select{width:auto;padding:.4rem .6rem;font-size:.9rem}.med-week-box{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin-bottom:1.5rem;padding:.5rem}@media (width>=768px){.med-week-box{padding:.5rem .75rem .75rem}}.med-week-box-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.5rem;font-size:.7rem;font-weight:700;display:block}.med-week-strip{gap:.4rem;display:flex}.med-week-cell{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);font:inherit;cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.5rem .25rem;transition:border-color .15s,background .15s;display:flex}.med-week-cell:hover{border-color:var(--color-primary)}.med-week-cell:active{transform:scale(.95)}.med-week-cell--today{border-color:var(--color-primary);background:rgba(var(--rgb-primary), .1)}.med-week-day{text-transform:uppercase;font-size:.65rem;font-weight:600}.med-week-date{color:var(--color-text);font-size:.9rem;font-weight:700}.med-week-status{font-size:1rem;font-weight:700;line-height:1}.med-week-status--complete{color:var(--color-success)}.med-week-status--missed{color:var(--color-danger)}.med-week-status--future,.med-week-status--today-incomplete{color:var(--color-text-muted)}.med-week-status--none{color:var(--color-border)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;max-width:400px;max-height:80vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-header h3{font-size:1rem;font-weight:600}.med-dialog-list{list-style:none}.med-dialog-item{border-bottom:1px solid var(--color-border)}.med-dialog-item:last-child{border-bottom:none}.med-dialog-label{cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1.25rem;transition:background .1s;display:flex}.med-dialog-label:hover{background:var(--color-surface-hover)}.med-dialog-name{flex:1;font-weight:500}.med-dialog-name--taken{color:var(--color-text-muted);text-decoration:line-through}.task-list-container{flex-direction:column;gap:1rem;display:flex}.task-list-empty{text-align:center;padding:3rem 1rem}.task-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .15s;overflow:hidden}.task-card:hover{border-color:var(--color-primary)}.task-card--done{opacity:.65}.task-card--overdue{border-color:var(--color-danger)}.task-card-header{width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;gap:.5rem;padding:1rem 1.25rem;display:flex;position:relative}.task-card-top{justify-content:space-between;align-items:center;display:flex}.task-card-title{font-size:1rem;font-weight:600}.task-card-meta{width:100%;color:var(--color-text-muted);justify-content:space-between;font-size:.8rem;display:flex}.task-card-expand{color:var(--color-text-muted);font-size:.7rem;position:absolute;top:50%;right:1.25rem;transform:translateY(-50%)}.priority-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.priority-badge--high{background:rgba(var(--rgb-danger), .2);color:var(--color-danger)}.priority-badge--medium{background:rgba(var(--rgb-amber), .2);color:var(--color-accent-amber)}.priority-badge--low{background:rgba(var(--rgb-success), .2);color:var(--color-success)}.priority-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.priority-dot--high{background:var(--color-danger)}.priority-dot--medium{background:var(--color-accent-amber)}.priority-dot--low{background:var(--color-success)}.task-due{color:var(--color-text-muted);cursor:pointer;border-radius:4px;padding:.15rem .35rem;font-size:.8rem;transition:background .1s}.task-due:hover{background:var(--color-surface-hover)}.task-due--overdue{color:var(--color-danger);font-weight:600}.task-due-edit{display:inline-flex}.task-due-input{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-primary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:6px;outline:none;padding:.25rem .5rem;font-size:.8rem}.progress-bar{background:var(--color-border);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--color-primary);border-radius:3px;height:100%;transition:width .3s}.task-card--done .progress-bar-fill{background:var(--color-success)}.subtask-list{border-top:1px solid var(--color-border);list-style:none}.subtask-item{border-bottom:1px solid var(--color-border)}.subtask-item:last-child{border-bottom:none}.subtask-label{cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1.25rem;transition:background .1s;display:flex}.subtask-label:hover,.subtask-label:active{background:var(--color-surface-hover)}.subtask-checkbox{width:22px;height:22px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.subtask-title{white-space:normal;word-break:break-word;flex:1;min-width:0}.subtask-item--done .subtask-title{color:var(--color-text-muted);text-decoration:line-through}.subtask-time{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem}.subtask-drag-handle{cursor:grab;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;opacity:.7;touch-action:none;flex-shrink:0;font-size:1rem;transition:opacity .15s}@media (hover:hover){.subtask-drag-handle{opacity:.4}.subtask-label:hover .subtask-drag-handle{opacity:1}}.subtask-item--dragging{opacity:.4;background:var(--color-surface-hover);z-index:10;position:relative;transform:scale(1.02);box-shadow:0 4px 12px #0000004d}.subtask-item--drag-over{border-top:2px solid var(--color-primary)}.task-card-body{border-top:1px solid var(--color-border)}.task-card-actions{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.5rem 1.25rem;display:flex}.task-total-time{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.task-card-action-buttons{align-items:center;gap:.5rem;display:flex}.btn-icon{border:1px solid var(--color-border);min-width:44px;min-height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.9rem;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.btn-icon:hover{background:var(--color-surface-hover);color:var(--color-text);border-color:var(--color-text-muted)}.btn-icon:active{background:var(--color-surface-hover);transform:scale(.92)}.btn-add-subtask:hover{color:var(--color-primary);border-color:var(--color-primary)}.btn-delete-task:hover,.btn-delete-subtask:hover{color:var(--color-danger);border-color:var(--color-danger)}.btn-save{color:var(--color-success);border-color:var(--color-success)}.btn-save:hover{background:rgba(var(--rgb-success), .15)}.btn-cancel:hover{color:var(--color-danger);border-color:var(--color-danger)}.btn-edit-subtask,.btn-delete-subtask{opacity:.7;transition:opacity .1s,background .1s,color .1s,border-color .1s}@media (hover:hover){.btn-edit-subtask,.btn-delete-subtask{opacity:0}.subtask-label:hover .btn-edit-subtask,.subtask-label:hover .btn-delete-subtask{opacity:1}}.delete-confirm{align-items:center;gap:.5rem;display:flex}.delete-confirm-text{color:var(--color-danger);font-size:.8rem;font-weight:600}.btn-confirm-yes,.btn-confirm-no{border:1px solid var(--color-border);font:inherit;cursor:pointer;border-radius:6px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;transition:background .1s}.btn-confirm-yes{background:rgba(var(--rgb-danger), .2);color:var(--color-danger);border-color:var(--color-danger)}.btn-confirm-yes:hover{background:rgba(var(--rgb-danger), .35)}.btn-confirm-no{background:var(--color-surface);color:var(--color-text-muted)}.btn-confirm-no:hover{background:var(--color-surface-hover)}.subtask-edit-form,.subtask-add-form{align-items:center;gap:.5rem;padding:.5rem 1.25rem;display:flex}.subtask-add-form{border-bottom:1px solid var(--color-border)}.subtask-edit-input{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font:inherit;border-radius:6px;flex:1;padding:.4rem .6rem;font-size:.9rem}.subtask-edit-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.subtask-edit-time{background:var(--color-bg);border:1px solid var(--color-border);width:55px;color:var(--color-text);font:inherit;text-align:center;border-radius:6px;padding:.4rem;font-size:.9rem}.subtask-edit-time:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.subtask-edit-min-label{color:var(--color-text-muted);font-size:.8rem}.task-form{flex-wrap:wrap}.form-group{flex-direction:column;gap:.3rem;display:flex}.form-group--full{width:100%}.form-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.task-date-input{max-width:160px}.task-priority-input,.task-size-input{max-width:110px}.task-description-input{flex:unset;resize:vertical;width:100%;min-height:70px;max-height:200px;line-height:1.5;overflow-y:auto}.collapsible-section{margin-bottom:2rem}.collapsible-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;color:var(--color-text);font:inherit;cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .15s;display:flex}.collapsible-header:hover{background:var(--color-surface-hover)}.collapsible-header .page-title{margin:0}.collapsible-chevron{font-size:1.2rem;transition:transform .2s;transform:rotate(-90deg)}.collapsible-chevron--open{transform:rotate(0)}.collapsible-body{padding:1rem 1rem 0}.dashboard-section--urgent{border-color:rgba(var(--rgb-danger), .4)}.dashboard-section--urgent h3{color:var(--color-danger)}.dashboard-task-list{flex-direction:column;gap:.5rem;margin-top:.75rem;list-style:none;display:flex}.dashboard-task-item{align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.dashboard-task-item--link{cursor:pointer;border-radius:6px;margin:0 -.5rem;padding:.5rem;transition:background .1s}.dashboard-task-item--link:hover{background:var(--color-surface-hover)}.dashboard-task-title{flex:1;font-size:.95rem}.dashboard-task-due{color:var(--color-text-muted);font-size:.8rem}.dashboard-task-progress{color:var(--color-primary);font-size:.8rem;font-weight:600}.dashboard-section+.dashboard-section,.dashboard .onboarding-box+.onboarding-box{margin-top:1rem}.onboarding-box{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius);width:100%;color:var(--color-text);font:inherit;cursor:pointer;align-items:center;gap:1rem;padding:1.5rem;font-size:1rem;font-weight:500;transition:border-color .15s,background .15s;display:flex}.onboarding-box:hover{border-color:var(--color-primary);background:rgba(var(--rgb-primary), .06)}.onboarding-box--action{margin-top:1.5rem}.onboarding-box-icon{background:rgba(var(--rgb-primary), .15);width:40px;height:40px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;display:flex}.onboarding-box-text{text-align:left}.dashboard-today-schedule{margin-bottom:1.5rem}.dashboard-class-time{color:var(--color-primary);white-space:nowrap;flex-shrink:0;font-size:.8rem;font-weight:600}.dashboard-class-location{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.8rem}.loading-indicator{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius);align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--color-text-muted);font-size:.9rem}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-block{background:linear-gradient(90deg, var(--color-surface) 25%, var(--color-surface-hover) 50%, var(--color-surface) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}.skeleton-container{pointer-events:none}.skeleton-med-week{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.75rem;padding:.75rem 1rem;display:flex}.skeleton-med-strip{gap:.25rem;display:flex}.skeleton-med-cell{flex:1;height:56px}.skeleton-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.skeleton-list{flex-direction:column;gap:0;display:flex}.skeleton-list--bordered .skeleton-schedule-item{border-top:1px solid var(--color-border)}.skeleton-list--bordered .skeleton-schedule-item:first-child{border-top:none}.skeleton-dashboard-item{border-top:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.75rem .25rem;display:flex}.skeleton-dashboard-item:first-child{border-top:none}.skeleton-schedule-item{border-left:3px solid var(--color-border);align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}@media (width>=768px){.skeleton-section{padding:1.5rem}}.decompose-error{background:rgba(var(--rgb-amber), .1);border:1px solid rgba(var(--rgb-amber), .3);border-radius:var(--radius);color:var(--color-accent-amber);margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.9rem}.btn:disabled{opacity:.6;cursor:not-allowed}.task-input:disabled{opacity:.5;cursor:not-allowed}.class-add-btn{margin-bottom:1.5rem}.class-action-buttons{gap:.75rem;margin-bottom:1.5rem;display:flex}.class-list{flex-direction:column;gap:1rem;display:flex}.class-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .15s;overflow:hidden}.class-card:hover{border-color:var(--color-primary)}.class-card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.class-card-name{font-size:1rem;font-weight:600}.class-card-action-buttons{align-items:center;gap:.5rem;display:flex}.class-card-details{flex-direction:column;gap:.5rem;padding:.75rem 1.25rem;display:flex}.class-card-detail{gap:.75rem;font-size:.9rem;display:flex}.class-card-detail--notes{flex-direction:column;gap:.25rem}.class-detail-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);flex-shrink:0;min-width:80px;font-size:.8rem;font-weight:700}.class-detail-notes{white-space:pre-wrap;color:var(--color-text);line-height:1.5}.class-form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem}.class-form-title{margin-bottom:1rem;font-size:1rem;font-weight:600}.class-form{flex-direction:column;gap:1rem;display:flex}.class-form-row{flex-direction:column;display:flex}.class-form-row--inline{flex-direction:row;gap:1rem}.class-form-row--inline .class-form-label{flex:1}.class-form-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:600;display:flex}.class-form-time,.class-form-duration{max-width:140px}.class-form-fieldset{border:none;padding:0}.class-form-legend{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.8rem;font-weight:600}.class-form-days{flex-wrap:wrap;gap:.4rem;display:flex}.class-day-btn{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);font:inherit;cursor:pointer;padding:.4rem .75rem;font-size:.85rem;font-weight:600;transition:border-color .15s,background .15s,color .15s}.class-day-btn:hover{border-color:var(--color-primary)}.class-day-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.class-form-notes{resize:vertical;min-height:70px;max-height:200px;line-height:1.5}.class-form-actions{gap:.75rem;display:flex}.btn-secondary{background:var(--color-surface-hover);color:var(--color-text)}.btn-secondary:hover{background:var(--color-border)}.btn-secondary:active{background:var(--color-border);transform:scale(.97)}.btn-edit-class{opacity:.7;transition:opacity .1s,background .1s,color .1s,border-color .1s}@media (hover:hover){.btn-edit-class{opacity:0}.class-card:hover .btn-edit-class{opacity:1}}.btn-edit-class:hover{color:var(--color-primary);border-color:var(--color-primary)}.class-card--highlight{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--rgb-primary), .3);transition:border-color .3s,box-shadow .3s}.week-overview{margin-bottom:2rem}.week-overview-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.week-overview-grid{flex-wrap:wrap;gap:.75rem;display:flex}.week-day-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex:calc(25% - .75rem);min-width:150px;overflow:hidden}.week-day-card--today{border-color:var(--color-primary);box-shadow:0 0 0 1px rgba(var(--rgb-primary), .25)}.week-day-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8rem;font-weight:700;display:flex}.week-day-header--today{color:var(--color-primary);background:rgba(var(--rgb-primary), .08)}.week-day-today-badge{text-transform:uppercase;letter-spacing:.05em;background:var(--color-primary);color:var(--color-on-primary);border-radius:4px;padding:.1rem .4rem;font-size:.65rem;font-weight:700}.week-day-classes{flex-direction:column;padding:.5rem 0;display:flex}.week-day-empty{color:var(--color-text-muted);padding:.25rem .75rem;font-size:.8rem;font-style:italic}.week-class-item{color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:.5rem;width:100%;padding:.35rem .75rem;font-size:.85rem;transition:background .1s;display:flex}.week-class-item:hover{background:var(--color-surface-hover)}.week-class-time{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.75rem;font-weight:600}.week-class-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.term-list{flex-direction:column;gap:.75rem;display:flex}.term-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .15s}.term-card:hover{border-color:var(--color-primary)}.term-card--active{border-color:var(--color-primary);box-shadow:0 0 0 1px rgba(var(--rgb-primary), .25)}.term-card-header{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.term-card-info{flex-direction:column;gap:.25rem;min-width:0;display:flex}.term-card-name{align-items:center;gap:.5rem;font-size:1rem;font-weight:600;display:flex}.term-active-badge{text-transform:uppercase;letter-spacing:.05em;background:var(--color-primary);color:var(--color-on-primary);border-radius:4px;flex-shrink:0;padding:.1rem .4rem;font-size:.65rem;font-weight:700}.term-card-dates{color:var(--color-text-muted);font-size:.8rem}.term-card-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.term-form{flex-direction:column;gap:1rem;display:flex}.btn-sm{padding:.4rem .75rem;font-size:.8rem}.term-switcher{align-items:center;display:flex}.term-switcher-label{color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.3rem .6rem;font-size:.8rem;font-weight:600}.term-switcher-select{font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;padding:.3rem .6rem;font-size:.8rem;font-weight:600;transition:border-color .15s}.term-switcher-select:hover{border-color:var(--color-primary)}.term-switcher-select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.auth-page{background:var(--color-bg);min-height:100dvh;padding:calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(1rem + var(--safe-left));justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);text-align:center;width:100%;max-width:400px;padding:2.5rem 2rem}.auth-logo{border-radius:var(--radius);object-fit:contain;width:88px;height:88px;margin:0 auto 1rem;display:block}.auth-title{color:var(--color-primary);margin-bottom:.25rem;font-size:2rem;font-weight:700}.auth-subtitle{color:var(--color-text-muted);margin-bottom:2rem;font-size:.9rem}.auth-form{flex-direction:column;gap:.75rem;display:flex}.auth-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;color:var(--color-text);font-size:.95rem;font-family:var(--font);padding:.75rem 1rem}.auth-input:focus{border-color:var(--color-primary);outline:none}.auth-input::placeholder{color:var(--color-text-muted)}.auth-submit{width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem}.auth-error{color:var(--color-danger);text-align:left;font-size:.85rem}.auth-success{background:rgba(var(--rgb-success), .1);border:1px solid var(--color-success);border-radius:var(--radius);color:var(--color-success);margin:1.5rem 0;padding:1rem;font-size:.9rem}.auth-hint{color:var(--color-text-muted);text-align:left;font-size:.8rem}.auth-toggle{color:var(--color-primary);cursor:pointer;font-size:.85rem;font-family:var(--font);background:0 0;border:none;margin-top:1.5rem}.auth-toggle:hover{text-decoration:underline}.settings{overflow-x:hidden}.settings-group{margin-bottom:1.5rem}.settings-group-header{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.5rem;padding-left:.25rem;font-size:.7rem;font-weight:700}.settings-card{background:var(--color-surface);border-radius:var(--radius);overflow:hidden}.settings-row{justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.settings-row+.settings-row{border-top:1px solid var(--color-border)}.settings-row--toggle{align-items:flex-start}.settings-row-label{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.settings-label-text{color:var(--color-text);font-size:.85rem;font-weight:600}.settings-label-hint{color:var(--color-text-muted);font-size:.75rem;line-height:1.3}.settings-row-input{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font:inherit;text-align:right;box-sizing:border-box;border-radius:8px;flex-shrink:1;width:160px;min-width:0;max-width:50%;padding:.45rem .65rem;font-size:1rem}.settings-row-input::placeholder{color:var(--color-text-muted)}.settings-row-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.settings-row-input--time{width:110px;max-width:40%}.settings-row--link{cursor:pointer;color:inherit;text-decoration:none;transition:background .15s}.settings-row--link:hover,.settings-row--link:active{background:var(--color-surface-hover)}.settings-row-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1.2rem}.settings-row-status{color:var(--color-text-muted);margin-top:.15rem;font-size:.7rem}.settings-row-status--warn{color:var(--color-warning)}.settings-save-bar{bottom:calc(var(--tab-bar-height) + var(--safe-bottom) + 8px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:50;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}.settings-save-bar .btn{padding:.45rem 1.25rem;font-size:.85rem}.settings-save-bar--flash{pointer-events:none}.settings-save-flash{color:var(--color-success);padding:.45rem 1rem;font-size:.85rem;font-weight:600}.settings--has-unsaved{padding-bottom:5rem}.loading-screen{background:var(--color-bg);justify-content:center;align-items:center;min-height:100dvh;display:flex}.loading-screen .loading-spinner{width:40px;height:40px}.header-signout-btn{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius);cursor:pointer;font-size:.75rem;font-family:var(--font);background:0 0;padding:.25rem .5rem}.header-signout-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.daily-schedule{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1rem}@media (width>=768px){.daily-schedule{padding:1.5rem}}.daily-schedule-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.daily-schedule-header h3{font-size:1rem;font-weight:700}.daily-schedule-btn{padding:.5rem 1.25rem;font-size:.9rem}.daily-schedule-hint{color:var(--color-text-muted);margin-bottom:1rem;font-size:.85rem}.schedule-list{flex-direction:column;list-style:none;display:flex}.schedule-item{border-left:3px solid var(--color-border);align-items:center;gap:.75rem;padding:.6rem .75rem;transition:background .1s,border-color .15s;display:flex}.schedule-item+.schedule-item{border-top:1px solid var(--color-border)}.schedule-item:active{background:rgba(var(--rgb-primary), .08)}.schedule-item--class{border-left-color:var(--color-primary);background:rgba(var(--rgb-primary), .06)}.schedule-item--meal{border-left-color:var(--color-accent-amber);background:rgba(var(--rgb-amber), .04)}.schedule-item--break{border-left-color:var(--color-border);opacity:.7}.schedule-item--task{border-left-color:var(--color-success);padding:.15rem .19rem}.schedule-item--task:hover{background:var(--color-surface-hover)}.schedule-item--event{border-left-color:var(--color-accent-purple);background:rgba(var(--rgb-purple), .06)}.schedule-item--locked{border-left-color:var(--color-primary);background:rgba(var(--rgb-primary), .08)}.schedule-item--done{opacity:.5}.schedule-time{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;min-width:72px;font-size:.75rem;font-weight:700}.schedule-icon{text-align:center;flex-shrink:0;width:20px;font-size:1rem}.calendar-day-icon{border:1.5px solid var(--color-accent-purple);border-radius:3px;flex-direction:column;width:18px;height:20px;line-height:1;display:inline-flex;overflow:hidden}.calendar-day-icon-header{background:var(--color-accent-purple);height:5px}.calendar-day-icon-date{color:var(--color-accent-purple);flex:1;justify-content:center;align-items:center;font-family:-apple-system,system-ui,sans-serif;font-size:9px;font-weight:700;display:flex}.schedule-content{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.schedule-content--clickable{cursor:pointer;border-radius:4px;margin:-2px -4px;padding:2px 4px}.schedule-content--clickable:hover{background:var(--color-hover-overlay)}.schedule-title{white-space:normal;word-break:break-word;font-size:.9rem;font-weight:500}.schedule-title--done{color:var(--color-text-muted);text-decoration:line-through}.schedule-task-parent{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.schedule-end-time{color:var(--color-text-muted);font-size:.7rem}.schedule-end-time--inline{white-space:nowrap;flex-shrink:0;margin-left:auto}.schedule-item--class>.schedule-title,.schedule-item--meal>.schedule-title,.schedule-item--break>.schedule-title,.schedule-item--event>.schedule-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.schedule-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.schedule-lock-btn{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;transition:border-color .15s,background .15s;display:inline-flex}.schedule-lock-btn:hover{border-color:var(--color-primary);background:rgba(var(--rgb-primary), .1)}.schedule-lock-btn--active{border-color:var(--color-primary);background:rgba(var(--rgb-primary), .15)}@media (width<=480px){.schedule-item{flex-wrap:wrap}.schedule-item--class,.schedule-item--meal,.schedule-item--break,.schedule-item--event{flex-wrap:nowrap}.schedule-content{flex-basis:100%;order:1;margin-top:.15rem}.schedule-end-time{display:none}.schedule-end-time--inline{display:inline}.schedule-time{min-width:auto}.schedule-actions{margin-left:auto}}.daily-schedule-time-config{gap:1rem;margin-bottom:1rem;display:flex}.schedule-time-label{color:var(--color-text-muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.schedule-time-label input[type=time]{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:.4rem .5rem;font-size:.9rem}.daily-schedule--chat-open{z-index:100;background:var(--color-bg);border-radius:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.daily-schedule--chat-open>:not(.schedule-chat-fixed){flex-shrink:0}.daily-schedule--chat-open:before{content:none}.daily-schedule--chat-open{padding-bottom:33.5vh;overflow-y:auto}.schedule-chat-fixed{bottom:calc(var(--tab-bar-height) + var(--safe-bottom) + var(--keyboard-height,0px));z-index:101;background:var(--color-bg);border-top:2px solid var(--color-border);flex-direction:column;height:33vh;transition:bottom .25s ease-out;display:flex;position:fixed;left:0;right:0}@media (width>=768px){.schedule-chat-fixed{height:calc(33vh + var(--safe-bottom));padding-bottom:var(--safe-bottom);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:1000px;bottom:0;left:50%;transform:translate(-50%)}}.schedule-chat-fixed-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-text);flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:.9rem;font-weight:600;display:flex}.schedule-chat-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1rem}.schedule-chat-close:hover{color:var(--color-text)}.schedule-chat-messages{flex-direction:column;flex:1;gap:.5rem;padding:.75rem;display:flex;overflow-y:auto}.schedule-chat-placeholder{color:var(--color-text-muted);margin:0;padding:.5rem;font-size:.85rem;font-style:italic}.schedule-chat-message{border-radius:8px;padding:.5rem .75rem;font-size:.85rem}.schedule-chat-message--user{background:var(--color-primary);color:var(--color-on-primary);align-self:flex-end;max-width:85%}.schedule-chat-message--assistant{background:var(--color-surface);color:var(--color-text);align-self:flex-start;max-width:85%}.schedule-chat-role{text-transform:uppercase;letter-spacing:.03em;opacity:.7;margin-bottom:.15rem;font-size:.7rem;font-weight:600;display:block}.schedule-chat-text{white-space:pre-wrap;margin:0;line-height:1.4}.schedule-chat-typing{opacity:.6;font-style:italic}.schedule-chat-input-row{border-top:1px solid var(--color-border);flex-shrink:0;gap:.5rem;padding:.75rem;display:flex}.schedule-chat-input{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;flex:1;padding:.5rem .75rem;font-size:.85rem}.schedule-chat-input:focus{border-color:var(--color-primary);outline:none}.schedule-chat-input:disabled{opacity:.6}.schedule-chat-send{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.schedule-chat-mic{border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.schedule-chat-mic:hover{border-color:var(--color-primary);color:var(--color-primary)}.schedule-chat-mic--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);animation:1.5s ease-in-out infinite mic-pulse}.schedule-chat-mic:disabled{opacity:.4;cursor:not-allowed}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 rgba(var(--rgb-primary-strong), .4)}50%{box-shadow:0 0 0 8px rgba(var(--rgb-primary-strong), 0)}}.schedule-chat-mic--desktop,.schedule-chat-send--desktop{display:none}.schedule-chat-action--mobile{display:flex}@media (width>=768px){.schedule-chat-mic--desktop,.schedule-chat-send--desktop{display:flex}.schedule-chat-action--mobile{display:none}}.schedule-chat-textarea{resize:none;min-height:44px;max-height:120px;font-family:inherit;line-height:1.4}.chat-class-preview{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;margin:.5rem .75rem;padding:.75rem}.chat-class-preview-title{color:var(--color-text);margin:0 0 .5rem;font-size:.85rem;font-weight:600}.chat-class-preview-item{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding:.35rem 0;font-size:.82rem}.chat-class-preview-item:last-of-type{border-bottom:none}.chat-class-preview-item strong{color:var(--color-text)}.chat-class-preview-actions{gap:.5rem;margin-top:.75rem;display:flex}.chat-class-preview-actions .btn{flex:1;padding:.5rem;font-size:.85rem}.task-card--chat-open{top:0;left:0;right:0;bottom:calc(33vh + var(--tab-bar-height));z-index:100;background:var(--color-bg);border:none;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;overflow:hidden}@media (width>=768px){.task-card--chat-open{border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--color-border);border-bottom:none;width:100%;max-width:1000px;max-height:60vh;top:auto;bottom:33vh;left:50%;transform:translate(-50%)}}.task-card--chat-open .task-card-header{background:var(--color-bg);flex-shrink:0}.task-card--chat-open .task-card-body{flex:1;min-height:0;overflow-y:auto}.btn-chat-task,.btn-focus-task{padding:.25rem .6rem;font-size:.75rem}.chat-resize-handle{display:none}@media (width>=768px){.chat-resize-handle{cursor:col-resize;background:var(--color-border);flex-shrink:0;width:6px;transition:background .15s;display:block;position:relative}.chat-resize-handle:hover,.chat-resize-handle:active{background:var(--color-primary)}.chat-resize-handle:after{content:"";background:var(--color-text-muted);opacity:.5;border-radius:1px;width:2px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.chat-resize-handle:hover:after{opacity:1;background:var(--color-text)}.daily-schedule--chat-open{flex-direction:row;padding-bottom:0;overflow:hidden}.daily-schedule--chat-open .daily-schedule-content{flex:1;min-width:0;padding-bottom:1rem;overflow-y:auto}.class-schedule--chat-open{z-index:100;background:var(--color-bg);flex-direction:row;display:flex;position:fixed;inset:0;overflow:hidden}.class-schedule--chat-open .class-schedule-content{flex:1;min-width:0;padding:1rem;overflow-y:auto}.task-card-chat-wrapper--open{z-index:100;background:var(--color-bg);flex-direction:row;display:flex;position:fixed;inset:0;overflow:hidden}.task-card-chat-wrapper--open .task-card--chat-open{border:none;border-radius:0;flex:1;min-width:0;max-width:none;max-height:none;position:static;overflow-y:auto;transform:none}.daily-schedule--chat-open>.schedule-chat-fixed,.class-schedule--chat-open>.schedule-chat-fixed,.task-card-chat-wrapper--open>.schedule-chat-fixed{z-index:auto;border-top:none;border-left:2px solid var(--color-border);border-radius:0;flex-shrink:0;width:420px;min-width:0;max-width:none;height:auto;max-height:none;padding-bottom:0;transition:none;position:static;inset:auto;transform:none}}.daily-schedule-save{align-items:center;gap:.75rem;margin-top:1rem;display:flex}.plan-tomorrow-card{background:var(--color-surface);border:1px solid var(--color-primary);text-align:center;cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;margin-top:1.5rem;padding:1.25rem;transition:background .15s;display:flex}.plan-tomorrow-card:hover{background:var(--color-primary)}.plan-tomorrow-text{color:var(--color-text-muted);margin:0;font-size:.95rem}.daily-schedule-tomorrow{border-top:2px solid var(--color-border);margin-top:2rem;padding-top:1.5rem}.schedule-date-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.schedule-date-item{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;width:100%;color:var(--color-text);padding:.75rem 1rem;font-size:.95rem;transition:background .1s}.schedule-date-item:hover{background:var(--color-surface-hover)}.schedule-readonly-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.schedule-readonly-header .page-title{margin-bottom:0}.schedule-readonly-times{color:var(--color-text-muted);margin-bottom:1rem;font-size:.85rem}.daily-schedule-hint-row{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.daily-schedule-hint-row .daily-schedule-hint{margin-bottom:0}.schedule-pin-all-btn{white-space:nowrap;background:var(--color-surface-hover);color:var(--color-text-muted);border:1px solid var(--color-border);flex-shrink:0}.schedule-pin-all-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.schedule-pin-all-btn--active{border-color:var(--color-primary);background:rgba(var(--rgb-primary), .15);color:var(--color-text)}.med-week-cell--disabled{cursor:not-allowed;opacity:.5}.med-week-cell--disabled:hover{border-color:var(--color-border)}.med-week-cell--past{cursor:pointer;opacity:.7}.med-week-cell--past:hover{opacity:1;border-color:var(--color-primary)}.modal-card--confirm{max-width:380px}.modal-confirm-message{color:var(--color-text-muted);padding:.75rem 1.25rem 1rem;font-size:.95rem;line-height:1.5}.modal-confirm-message strong{color:var(--color-text)}.modal-confirm-actions{justify-content:flex-end;gap:.75rem;padding:0 1.25rem 1.25rem;display:flex}.schedule-item--active{border-left-color:var(--color-primary);background:rgba(var(--rgb-primary), .12);box-shadow:inset 0 0 0 1px rgba(var(--rgb-primary), .25)}.schedule-item--active .schedule-time{color:var(--color-primary)}.schedule-item--overdue{border-left-color:var(--color-danger);background:rgba(var(--rgb-danger), .08)}.schedule-item--overdue .schedule-time{color:var(--color-danger)}.schedule-overdue-label{color:var(--color-danger);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.schedule-item--conflict{border-left-color:var(--color-warning);background:rgba(var(--rgb-warning), .08)}.schedule-item--conflict .schedule-time{color:var(--color-warning)}.schedule-conflict-label{color:var(--color-warning);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.schedule-conflict-banner{background:rgba(var(--rgb-warning), .1);border:1px solid rgba(var(--rgb-warning), .3);border-radius:var(--radius);color:var(--color-warning);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.625rem .875rem;font-size:.85rem;display:flex}.schedule-conflict-banner p{margin:0}.schedule-conflict-banner .btn{white-space:nowrap;flex-shrink:0}.daily-schedule-tomorrow-note{background:rgba(var(--rgb-primary-strong), .1);border-left:3px solid var(--color-primary);color:var(--color-text-muted);border-radius:4px;margin:0 0 .75rem;padding:.625rem .875rem;font-size:.85rem;line-height:1.4}.time-sim-toggle{bottom:calc(1rem + var(--safe-bottom) + var(--tab-bar-height));right:calc(1rem + var(--safe-right));border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;z-index:9999;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;transition:transform .15s;display:flex;position:fixed;box-shadow:0 2px 8px #0000004d}.time-sim-toggle:hover{transform:scale(1.1)}.time-sim-panel{bottom:calc(1rem + var(--safe-bottom));right:calc(1rem + var(--safe-right));background:var(--color-surface);border:2px solid var(--color-primary);z-index:9999;border-radius:12px;flex-direction:column;gap:.75rem;width:300px;padding:1rem;display:flex;position:fixed;box-shadow:0 4px 20px #0006}.time-sim-header{justify-content:space-between;align-items:center;display:flex}.time-sim-title{color:var(--color-primary);font-size:.95rem;font-weight:600}.time-sim-current{flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.85rem;display:flex}.time-sim-label{color:var(--color-text-muted);font-size:.8rem}.time-sim-value{color:var(--color-text);font-family:monospace;font-size:.85rem}.time-sim-value--simulated{color:var(--color-warning)}.time-sim-badge{color:var(--color-warning);background:rgba(var(--rgb-warning), .15);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.125rem .375rem;font-size:.65rem;font-weight:700}.time-sim-inputs{gap:.5rem;display:flex}.time-sim-input-label{color:var(--color-text-muted);flex-direction:column;flex:1;gap:.25rem;font-size:.8rem;display:flex}.time-sim-input-label input{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:6px;padding:.375rem;font-size:.85rem}.time-sim-quick{flex-direction:column;gap:.375rem;display:flex}.time-sim-quick-btns{flex-wrap:wrap;gap:.375rem;display:flex}.time-sim-quick-btns .btn{min-width:unset;padding:.25rem .5rem;font-size:.75rem}.time-sim-actions{gap:.5rem;display:flex}.time-sim-actions .btn{flex:1;padding:.375rem .5rem;font-size:.8rem}.error-boundary{background:var(--color-bg);min-height:100dvh;color:var(--color-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.error-boundary h2{font-size:1.5rem;font-weight:700}.error-boundary p{color:var(--color-text-muted);max-width:400px}.swipeable-row{position:relative;overflow:hidden}.swipeable-row-inner{z-index:1;background:var(--color-surface);will-change:transform;position:relative}.swipeable-row-inner--animating{transition:transform .25s ease-out}.swipeable-row-actions{z-index:0;align-items:stretch;display:flex;position:absolute;top:0;bottom:0;right:0}.swipeable-row-action{width:52px;color:var(--color-on-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;padding:0;font-size:1.1rem;display:flex}.swipeable-row-action--edit{background:var(--color-primary)}.swipeable-row-action--delete{background:var(--color-danger)}.swipeable-row-action--pin{background:var(--color-primary)}.swipeable-row-action--complete,.swipeable-row-action--focus{background:var(--color-success)}.schedule-item>.swipeable-row{flex:1;min-width:0}.schedule-item>.swipeable-row>.swipeable-row-inner{align-items:center;gap:.75rem;padding:.45rem .56rem;display:flex}@media (hover:none){.subtask-label .btn-edit-subtask,.subtask-label .btn-delete-subtask,.schedule-item--task .schedule-actions{display:none}@media (width<=480px){.schedule-item--task{flex-wrap:nowrap}.schedule-item--task .schedule-content{flex-basis:auto;order:0;margin-top:0}}}.pull-to-refresh-container{-webkit-overflow-scrolling:touch;overscroll-behavior-x:none;flex:1;position:relative;overflow:hidden auto}.pull-to-refresh-indicator{z-index:10;pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:.5rem;display:flex;position:absolute;top:0;left:0;right:0;overflow:hidden}.pull-to-refresh-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;transition:transform .1s}.pull-to-refresh-indicator.refreshing .pull-to-refresh-spinner{animation:.8s linear infinite ptr-spin}.pull-to-refresh-text{color:var(--color-text-muted);margin-top:.25rem;font-size:.75rem}.pull-to-refresh-content{transition:transform .2s}@keyframes ptr-spin{to{transform:rotate(360deg)}}.toast-container{bottom:calc(1rem + var(--safe-bottom));right:calc(1rem + var(--safe-right));z-index:9999;pointer-events:none;flex-direction:column;gap:.5rem;width:calc(100% - 2rem);max-width:380px;display:flex;position:fixed}.toast{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);pointer-events:auto;padding:.875rem 1rem;animation:.3s ease-out toast-slide-in;box-shadow:0 4px 20px #0006}.toast-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.25rem;display:flex}.toast-title{color:var(--color-text);font-size:.9rem;font-weight:600;line-height:1.3}.toast-dismiss{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1.25rem;line-height:1}.toast-dismiss:hover{color:var(--color-text)}.toast-body{color:var(--color-text-muted);margin:0;font-size:.8rem;line-height:1.4}.toast-overdue{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.5rem}.toast-overdue-label{color:var(--color-warning);font-size:.75rem;font-weight:600}.toast-overdue-list{margin-top:.25rem;list-style:none}.toast-overdue-list li{color:var(--color-text-muted);font-size:.75rem;line-height:1.4}.toast-overdue-list li:before{content:"•";color:var(--color-warning)}.toast-overdue-parent{color:var(--color-text-muted);opacity:.7}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toggle-switch{flex-shrink:0;width:48px;height:26px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--color-border);cursor:pointer;border-radius:26px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--color-text);border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}@media (width<=480px){.toast-container{right:0;bottom:calc(var(--tab-bar-height) + var(--safe-bottom));width:100%;max-width:100%;padding:.5rem}}.bottom-tab-bar{height:calc(var(--tab-bar-height) + var(--safe-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:var(--safe-bottom);z-index:50;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.bottom-tab-bar{display:none}}.bottom-tab{min-width:44px;min-height:44px;color:var(--color-text-muted);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.4rem .75rem;font-size:.6rem;font-weight:500;transition:color .15s;display:flex}.bottom-tab--active{color:var(--color-primary)}.bottom-tab:active{transform:scale(.92)}.bottom-tab-label{line-height:1}.more-menu-overlay{z-index:55;background:#00000080;position:fixed;inset:0}.more-menu-sheet{bottom:calc(var(--tab-bar-height) + var(--safe-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:var(--radius) var(--radius) 0 0;z-index:56;flex-direction:column;display:flex;position:fixed;left:0;right:0;overflow:hidden;box-shadow:0 -4px 24px #0000004d}.more-menu-item{width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:.9rem 1.25rem;font-size:.95rem;transition:background .1s}.more-menu-item:hover,.more-menu-item:active{background:var(--color-surface-hover)}.more-menu-item--active{color:var(--color-primary);font-weight:600}.more-menu-item+.more-menu-item{border-top:1px solid var(--color-border)}.more-menu-item--signout{color:var(--color-danger)}.more-menu-item--signout:hover{background:rgba(var(--rgb-danger), .1)}@media (width<=767px){.hamburger-btn,.hamburger-dropdown,.header-home-btn{display:none}.daily-schedule,.task-card{border:none;border-radius:0;margin-left:-.75rem;margin-right:-.75rem}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.stagger-item{opacity:0;animation:.3s ease-out forwards fade-in-up}@keyframes checkbox-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.subtask-checkbox.checkbox-pop{animation:.25s ease-out checkbox-pop}@keyframes checkmark-draw{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes task-complete-flash{0%{opacity:0;transform:scale(.5)}30%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.3)}}.task-complete-overlay{pointer-events:none;z-index:5;justify-content:center;align-items:center;animation:1s ease-out forwards task-complete-flash;display:flex;position:absolute;inset:0}.task-complete-overlay svg{width:64px;height:64px}.task-complete-overlay .checkmark-circle{fill:none;stroke:var(--color-success,#22c55e);stroke-width:2px;opacity:.3}.task-complete-overlay .checkmark-check{fill:none;stroke:var(--color-success,#22c55e);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24px;animation:.4s ease-out .15s forwards checkmark-draw}@keyframes streak-bounce{0%{transform:scale(1)translateY(0)}30%{transform:scale(1.25)translateY(-4px)}60%{transform:scale(.95)translateY(0)}to{transform:scale(1)translateY(0)}}.med-streak-counter{align-items:center;gap:.4rem;margin-bottom:.25rem;padding:.25rem 0;display:flex}.med-streak-number{color:var(--color-primary,#818cf8);font-size:1.5rem;font-weight:700;line-height:1}.med-streak-label{color:var(--text-secondary);font-size:.8rem;line-height:1}.med-streak-counter--bounce .med-streak-number{animation:.5s ease-out streak-bounce}@keyframes med-cell-pop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.med-week-status--pop{animation:.3s ease-out med-cell-pop}.focus-overlay{z-index:10000;background:var(--color-bg);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);justify-content:center;align-items:center;animation:.3s ease-out focus-fade-in;display:flex;position:fixed;inset:0}@keyframes focus-fade-in{0%{opacity:0}to{opacity:1}}.focus-content{text-align:center;flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:400px;padding:1.5rem;display:flex}.focus-task-name{color:var(--color-text-muted);margin-bottom:.25rem;font-size:.9rem}.focus-subtask-name{color:var(--color-text);margin:.5rem 0;font-size:1.4rem;font-weight:600;line-height:1.3}.focus-subtask-time{color:var(--color-text-muted);margin-bottom:1rem;font-size:.85rem}.focus-ring-container{width:220px;height:220px;margin:1rem 0;position:relative}.focus-timer-ring{width:100%;height:100%}.focus-ring-track{stroke:var(--color-border)}.focus-ring-progress{stroke:var(--color-primary);transition:stroke-dashoffset 1s linear}.focus-ring-inner{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.focus-timer-text{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:700}.focus-timer-display{margin:1.5rem 0}.focus-timer-big{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:3rem;font-weight:700}.focus-presets{margin:1.5rem 0 .5rem}.focus-presets-label{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.85rem}.focus-preset-row{justify-content:center;gap:.5rem;display:flex}.focus-preset-pill{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:.5rem 1.25rem;font-size:.9rem;transition:all .15s}.focus-preset-pill--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.focus-controls{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem;display:flex}.focus-btn-start,.focus-btn-done{min-width:140px;padding:.85rem 2rem;font-size:1.1rem}.focus-btn-pause,.focus-btn-stop,.focus-btn-close{padding:.75rem 1.5rem}.focus-summary{margin-bottom:1.5rem}.focus-summary-title{color:var(--color-success);margin-bottom:.5rem;font-size:1.6rem;font-weight:700}.focus-summary-stats{justify-content:center;gap:2rem;margin-top:1.5rem;display:flex}.focus-stat{flex-direction:column;align-items:center;display:flex}.focus-stat-value{color:var(--color-text);font-size:1.8rem;font-weight:700}.focus-stat-label{color:var(--color-text-muted);font-size:.8rem}.btn-focus-subtask{border:1px solid var(--color-primary);width:28px;height:28px;color:var(--color-primary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:.25rem;font-size:.7rem;transition:background .15s;display:flex}.btn-focus-subtask:hover{background:var(--color-primary);color:var(--color-on-primary)}@media (width<=480px){.focus-ring-container{width:180px;height:180px}.focus-timer-text{font-size:2rem}.focus-timer-big{font-size:2.5rem}.focus-subtask-name{font-size:1.2rem}}
