:root{--bg-primary: #1A1918;--bg-card: #252423;--bg-input: #252423;--border-color: #383736;--border-hover: #4A4948;--text-primary: #F0EFED;--text-secondary: #9C9B99;--text-muted: #6D6C6A;--accent-green: #7E98BD;--accent-green-bg: #1E2A38;--accent-orange: #D89575;--accent-orange-bg: #3D2A20;--accent-red: #E85D5D;--accent-blue-bg: #1E2A3A;--accent-pink-bg: #2A1E3A;--accent-brown-bg: #3A2A1E;--accent-lime-bg: #1E3A1E;--accent-orange-bg: #3A2A1E;--tag-done-color: #7E98BD;--tag-done-bg: #1E2A38;--tag-progress-color: #D89575;--tag-progress-bg: #3D2A20;--tag-high-color: #D08068;--tag-high-bg: #3D2A20;--tag-default-color: #9C9B99;--tag-default-bg: #383736;--logout-bg: #2A1A18;--logout-border: #5C2B2B;--radius-xl: 16px;--radius-lg: 12px;--radius-md: 8px;--radius-sm: 6px;--radius-full: 100px;--font-family: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--nav-height: 84px;--safe-area-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=light]{--bg-primary: #FAFAF7;--bg-card: #F0EFED;--bg-input: #F0EFED;--border-color: #E5E3E0;--border-hover: #D5D3D0;--text-primary: #3A3938;--text-secondary: #8A8987;--text-muted: #AEADAB;--accent-green: #6B9DF0;--accent-green-bg: #E5EDF7;--accent-orange: #D89575;--accent-orange-bg: #F7EDE5;--accent-red: #E85D5D;--accent-blue-bg: #E5EEF7;--accent-pink-bg: #F0E5F5;--accent-brown-bg: #F7EDE5;--accent-lime-bg: #E5F5E5;--logout-bg: #FDF0EE;--logout-border: #E8AAAA;--tag-done-color: #6B9DF0;--tag-done-bg: #E5EDF7;--tag-progress-color: #D89575;--tag-progress-bg: #F7EDE5;--tag-high-color: #D08068;--tag-high-bg: #F7EDE5;--tag-default-color: #8A8987;--tag-default-bg: #E5E3E0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px}body{height:100%;background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{height:100%}.app-layout{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;position:relative;background-color:var(--bg-primary)}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:calc(var(--nav-height) + var(--safe-area-bottom));-webkit-overflow-scrolling:touch}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:calc(var(--nav-height) + var(--safe-area-bottom));background-color:var(--bg-card);border-top:1px solid var(--border-color);display:flex;align-items:flex-start;justify-content:space-between;padding:12px 0 calc(34px + var(--safe-area-bottom)) 0;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--text-muted);font-size:10px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .2s}.nav-item.active{color:var(--accent-green);font-weight:600}.nav-item svg{width:22px;height:22px}.page-header{display:flex;justify-content:space-between;align-items:center;padding:8px 24px 16px}.page-header-left{display:flex;flex-direction:column;gap:4px}.page-title{font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px;line-height:1.2}.page-subtitle{font-size:14px;color:var(--text-muted);font-weight:400}.card{background-color:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-color)}.search-bar{display:flex;align-items:center;gap:12px;height:48px;padding:0 16px;background-color:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);transition:border-color .2s}.search-bar:focus-within{border-color:var(--border-hover)}.search-bar svg{color:var(--text-muted);flex-shrink:0}.search-bar input{width:100%;border:none;outline:none;background:none;color:var(--text-primary);font-size:15px;font-family:var(--font-family)}.search-bar input::placeholder{color:var(--text-muted)}.stats-row{display:flex;gap:12px}.stat-card{flex:1;padding:18px;display:flex;flex-direction:column;gap:8px}.stat-value{font-size:32px;font-weight:700;letter-spacing:-1px;color:var(--text-primary);line-height:1}.stat-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.stat-trend{display:flex;align-items:center;gap:4px}.stat-trend svg{width:14px;height:14px}.stat-trend span{font-size:11px}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.2px}.section-badge{display:flex;align-items:center;gap:4px;color:var(--accent-green);font-size:13px;font-weight:500}.section-badge svg{width:14px;height:14px}.todo-list-card{overflow:hidden}.todo-item{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border-color);transition:background-color .15s;-webkit-tap-highlight-color:transparent}.todo-item:last-child{border-bottom:none}.todo-item:active{background-color:#ffffff08}.todo-checkbox{width:24px;height:24px;border-radius:var(--radius-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.todo-checkbox.unchecked{border:2px solid var(--border-hover);background:transparent}.todo-checkbox.in-progress{background-color:var(--accent-green-bg)}.todo-checkbox.checked{background-color:var(--accent-green)}.todo-checkbox svg{width:14px;height:14px}.todo-text-area{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.todo-title{font-size:15px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-item.completed .todo-title{text-decoration:line-through;color:var(--text-muted)}.todo-time{font-size:12px;color:var(--text-muted)}.todo-tag{padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;white-space:nowrap;flex-shrink:0;align-self:flex-start}.todo-status-tag{padding:4px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.week-progress{display:flex;justify-content:space-between;padding:20px}.week-day{display:flex;flex-direction:column;align-items:center;gap:6px}.week-day-circle{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--text-primary)}.week-day-circle.done{background-color:var(--accent-green)}.week-day-circle.partial{background-color:var(--accent-green-bg)}.week-day-circle.empty{border:2px solid var(--border-hover)}.week-day-label{font-size:11px;font-weight:500;color:var(--text-muted)}.fab-button{width:44px;height:44px;border-radius:var(--radius-full);background-color:var(--accent-green);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 12px #7e98bd40;transition:transform .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.fab-button:active{transform:scale(.92)}.fab-button svg{color:#fff;width:22px;height:22px}[data-theme=light] .fab-button{box-shadow:0 2px 12px #6b9df040}.modal-overlay{position:fixed;inset:0;background-color:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}.modal-content{width:100%;max-width:480px;background-color:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:24px;padding-bottom:calc(24px + var(--safe-area-bottom));animation:slideUp .25s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title{font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close{width:32px;height:32px;border-radius:var(--radius-full);border:none;background-color:var(--border-color);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.modal-input{width:100%;height:48px;padding:0 16px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:15px;font-family:var(--font-family);outline:none;transition:border-color .2s}.modal-input:focus{border-color:var(--accent-green)}.modal-input::placeholder{color:var(--text-muted)}.modal-options{display:flex;flex-direction:column;gap:12px;margin-top:16px}.modal-option-row{display:flex;align-items:center;justify-content:space-between}.modal-option-label{font-size:14px;color:var(--text-secondary)}.tag-selector{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tag-pill{padding:6px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:500;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.tag-pill.selected{background-color:var(--accent-green-bg);border-color:var(--accent-green);color:var(--accent-green)}.modal-submit{width:100%;height:48px;border-radius:var(--radius-lg);border:none;background-color:var(--accent-green);color:#fff;font-size:16px;font-weight:600;font-family:var(--font-family);cursor:pointer;margin-top:20px;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.modal-submit:active{opacity:.8}.modal-submit:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.calendar-card{padding:16px}.calendar-weekdays{display:flex;justify-content:space-between;padding:0 4px;margin-bottom:8px}.calendar-weekday{width:36px;text-align:center;font-size:12px;font-weight:500;color:var(--text-muted)}.calendar-grid{display:flex;flex-direction:column;gap:8px}.calendar-row{display:flex;justify-content:space-between;padding:4px}.calendar-day{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.calendar-day.today{background-color:var(--accent-green);color:#fff;font-weight:600}.calendar-day.selected{background-color:var(--accent-green-bg);color:var(--accent-green)}.calendar-day.has-todos{position:relative}.calendar-day.has-todos:after{content:"";position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background-color:var(--accent-green)}.schedule-card{display:flex;overflow:hidden}.schedule-bar{width:4px;flex-shrink:0}.schedule-content{display:flex;align-items:center;gap:14px;padding:14px 16px;flex:1}.schedule-time{display:flex;flex-direction:column;gap:2px;width:48px;flex-shrink:0}.schedule-time-start{font-size:15px;font-weight:600;color:var(--text-primary)}.schedule-time-end{font-size:10px;font-weight:500;color:var(--text-muted)}.schedule-divider{width:1px;height:36px;background-color:var(--border-color);flex-shrink:0}.schedule-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.schedule-name{font-size:15px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-desc{font-size:12px;color:var(--text-muted)}.stats-overview{display:flex;gap:12px}.stats-overview-card{flex:1;padding:16px;display:flex;flex-direction:column;gap:8px;border-radius:var(--radius-xl);background-color:var(--bg-card)}.stats-number{font-size:28px;font-weight:700;color:var(--text-primary)}.stats-number.green{color:var(--accent-green)}.stats-number.orange{color:var(--accent-orange)}.stats-label{font-size:13px;color:var(--text-secondary)}.category-grid{display:flex;flex-wrap:wrap;gap:12px}.category-card{width:calc(50% - 6px);padding:16px;display:flex;flex-direction:column;gap:12px}.category-header{display:flex;justify-content:space-between;align-items:center}.category-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.category-icon svg{width:16px;height:16px}.category-count{font-size:12px;color:var(--text-secondary)}.category-name{font-size:16px;font-weight:600;color:var(--text-primary)}.progress-bar-bg{width:100%;height:4px;border-radius:2px;background-color:var(--border-color);overflow:hidden}.progress-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.category-progress-text{font-size:12px;color:var(--text-secondary)}.user-card{display:flex;align-items:center;gap:16px;padding:16px}.user-avatar{width:56px;height:56px;border-radius:28px;background-color:var(--accent-green);display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-avatar-text{font-size:22px;font-weight:700;color:#fff}.user-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.user-name{font-size:18px;font-weight:600;color:var(--text-primary)}.user-email{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-group{overflow:hidden}.settings-group-title{font-size:13px;font-weight:500;color:var(--text-secondary);padding:0 0 8px}.setting-row{display:flex;align-items:center;gap:12px;padding:12px 16px}.setting-row:last-child{padding-bottom:16px}.setting-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.setting-icon svg{width:16px;height:16px;color:#fff}.setting-label{font-size:15px;font-weight:500;color:var(--text-primary);flex:1}.setting-value{font-size:13px;color:var(--text-secondary)}.setting-divider{height:1px;background-color:var(--border-color);margin:0 16px}.toggle{width:44px;height:24px;border-radius:12px;padding:2px;cursor:pointer;transition:background-color .2s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.toggle.on{background-color:var(--accent-green)}.toggle.off{background-color:var(--border-hover)}.toggle-knob{width:20px;height:20px;border-radius:10px;background-color:#fff;transition:transform .2s}.toggle.on .toggle-knob{transform:translate(20px)}.logout-button{width:100%;padding:14px 0;text-align:center;border:none;font-size:15px;font-weight:500;color:var(--accent-red);cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:var(--font-family);background:transparent}.priority-options{display:flex;gap:8px}.priority-btn{flex:1;padding:8px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:13px;font-family:var(--font-family);cursor:pointer;text-align:center;transition:all .15s;-webkit-tap-highlight-color:transparent}.priority-btn.selected{border-color:currentColor}.date-input{width:100%;height:40px;padding:0 12px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:var(--font-family);outline:none;-webkit-appearance:none;appearance:none}.date-input::-webkit-calendar-picker-indicator{filter:invert(.7)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--text-muted)}.empty-state svg{width:48px;height:48px;opacity:.5}.empty-state p{font-size:14px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}[data-theme=light] ::-webkit-scrollbar-thumb{background:#0000001a}@media screen and (max-width:360px){.page-title{font-size:24px}.stat-value{font-size:26px}.week-day-circle{width:30px;height:30px;font-size:11px}.category-card{padding:12px}.todo-item{padding:12px 14px;gap:10px}}@media screen and (min-width:481px){.app-layout{border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);box-shadow:0 0 40px #0000004d}}.toast{position:fixed;top:60px;left:50%;transform:translate(-50%);padding:10px 20px;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:14px;z-index:300;animation:fadeInUp .2s ease;max-width:90%;text-align:center}.confirm-overlay{position:fixed;inset:0;background-color:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:250;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.confirm-dialog{width:280px;background-color:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-color);padding:24px;text-align:center}.confirm-dialog h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.confirm-dialog p{font-size:14px;color:var(--text-secondary);margin-bottom:20px}.confirm-actions{display:flex;gap:12px}.confirm-cancel,.confirm-ok{flex:1;height:40px;border-radius:var(--radius-md);border:none;font-size:14px;font-weight:500;font-family:var(--font-family);cursor:pointer;-webkit-tap-highlight-color:transparent}.confirm-cancel{background-color:var(--border-color);color:var(--text-primary)}.confirm-ok{background-color:var(--accent-red);color:#fff}.todo-item-editing{padding:12px 18px;border-bottom:1px solid var(--border-color)}.edit-input-row{display:flex;gap:8px}.edit-input{flex:1;height:40px;padding:0 12px;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:var(--font-family);outline:none}.edit-input:focus{border-color:var(--accent-green)}.edit-btn{height:40px;padding:0 14px;border-radius:var(--radius-md);border:none;font-size:13px;font-weight:500;font-family:var(--font-family);cursor:pointer;-webkit-tap-highlight-color:transparent}.edit-btn-save{background-color:var(--accent-green);color:#fff}.edit-btn-cancel{background-color:var(--border-color);color:var(--text-primary)}.swipe-container{position:relative;overflow:hidden}.swipe-actions{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center}.swipe-delete{height:100%;padding:0 20px;background-color:var(--accent-red);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}.add-category-modal{width:100%;max-width:480px;background-color:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:24px;padding-bottom:calc(24px + var(--safe-area-bottom));animation:slideUp .25s ease}
