:root{--color-bg-primary: #1e2a3a;--color-bg-secondary: #253447;--color-bg-tertiary: #2c3e54;--color-bg-elevated: #344863;--color-bg-hover: #3d5472;--color-text-primary: #ffffff;--color-text-secondary: #c8d4e3;--color-text-muted: #8a9bae;--color-text-inverse: #1e2a3a;--color-accent-primary: #4ecdc4;--color-accent-primary-hover: #3dbdb5;--color-accent-muted: rgba(78, 205, 196, .15);--color-accent-secondary: #ff9f7a;--color-accent-secondary-hover: #ff8a5c;--color-accent-secondary-muted: rgba(255, 159, 122, .15);--color-success: #5dd39e;--color-success-muted: rgba(93, 211, 158, .15);--color-warning: #ffd166;--color-warning-muted: rgba(255, 209, 102, .15);--color-error: #ef767a;--color-error-muted: rgba(239, 118, 122, .15);--color-info: #6ec6ff;--color-info-muted: rgba(110, 198, 255, .15);--color-priority-high: #ef767a;--color-priority-medium: #ffd166;--color-priority-low: #5dd39e;--color-priority-none: #8a9bae;--color-border: #3d5472;--color-border-light: #2c3e54;--color-border-focus: #4ecdc4;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--shadow-glow: 0 0 20px rgba(78, 205, 196, .2);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1.0625rem;--text-lg: 1.1875rem;--text-xl: 1.375rem;--text-2xl: 1.625rem;--text-3xl: 2.25rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--sidebar-width: 260px;--header-height: 60px;--content-max-width: 1400px}*,*: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-primary);font-size:var(--text-base);font-weight:var(--font-normal);line-height:1.7;color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}::selection{background-color:var(--color-accent-muted);color:var(--color-text-primary)}a{color:var(--color-accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-primary-hover)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:1.3;color:var(--color-text-primary)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin-bottom:var(--space-4);color:var(--color-text-secondary)}ul,ol{list-style:none}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--color-text-primary);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-muted)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-hover);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}#root{min-height:100vh;display:flex;flex-direction:column}.layout{min-height:100vh;background-color:var(--color-bg-primary)}.top-nav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.logo-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.logo-btn:hover{background-color:var(--color-bg-hover)}.logo-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);color:#fff;font-size:var(--text-sm);font-weight:var(--font-bold)}.logo-text{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);letter-spacing:-.02em}.main-nav{display:flex;align-items:center;gap:var(--space-2)}.nav-link{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.nav-link:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.nav-link.active{color:var(--color-accent-primary);background-color:var(--color-accent-muted)}.user-menu{display:flex;align-items:center;gap:var(--space-3)}.user-email{font-size:var(--text-sm);color:var(--color-text-muted);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sign-out-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.sign-out-btn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.main-content{min-height:100vh}.main-content.with-nav{min-height:calc(100vh - 60px);padding:var(--space-6) var(--space-8);padding-bottom:var(--space-16);max-width:1200px;margin:0 auto;overflow:visible}@media(max-width:768px){.top-nav{padding:var(--space-3) var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.logo-text{display:none}.main-nav{order:3;width:100%;justify-content:center;padding-top:var(--space-2);border-top:1px solid var(--color-border-light)}.nav-link{flex:1;text-align:center}.main-content.with-nav{padding:var(--space-4)}}@media(max-width:480px){.nav-link{padding:var(--space-2) var(--space-2);font-size:var(--text-xs)}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%);padding:var(--space-4)}.auth-container{width:100%;max-width:400px;background-color:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg)}.auth-header{text-align:center;margin-bottom:var(--space-8)}.auth-logo{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.auth-logo .logo-check{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);margin-right:var(--space-2);font-size:var(--text-lg)}.auth-tagline{color:var(--color-text-muted);font-size:var(--text-sm)}.auth-form h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-6);text-align:center}.auth-error{background-color:var(--color-error-muted);color:var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm);text-align:center}.auth-message{background-color:var(--color-success-muted);color:var(--color-success);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm);text-align:center}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.form-group input{width:100%;padding:var(--space-3) var(--space-4);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text-primary);transition:all var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-primary-muted)}.form-group input::placeholder{color:var(--color-text-muted)}.form-group input:disabled{opacity:.7;cursor:not-allowed}.auth-submit{width:100%;padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-primary-hover));color:var(--color-bg-primary);font-size:var(--text-base);font-weight:var(--font-semibold);border-radius:var(--radius-md);margin-top:var(--space-4);transition:all var(--transition-fast)}.auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.auth-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}.auth-switch{text-align:center;margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.auth-switch p{color:var(--color-text-muted);font-size:var(--text-sm)}.auth-switch button{color:var(--color-accent-primary);font-weight:var(--font-medium);background:none;border:none;cursor:pointer;transition:color var(--transition-fast)}.auth-switch button:hover{color:var(--color-accent-primary-hover);text-decoration:underline}.home{min-height:calc(100vh - 120px);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:var(--space-8);padding-top:var(--space-16);max-width:1000px;margin:0 auto}.home-header{text-align:center;margin-bottom:var(--space-12);animation:fadeIn .8s ease}.greeting{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-2);font-weight:var(--font-light);letter-spacing:.02em}.current-date{font-size:var(--text-3xl);font-weight:var(--font-light);color:var(--color-text-primary);letter-spacing:-.01em}.year-visual{width:100%;margin-bottom:var(--space-12);animation:fadeIn 1s ease .2s both}.year-label{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6);letter-spacing:.1em;font-weight:var(--font-medium)}.timeline-container{position:relative;padding:var(--space-4) 0}.months-track{display:flex;justify-content:space-between;margin-bottom:var(--space-6);padding:0}.month-marker{text-align:center;flex:1;min-width:60px}.month-name{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--font-medium);transition:color var(--transition-normal);letter-spacing:.02em}.month-marker.current .month-name{color:var(--color-accent-primary)}.month-marker.past .month-name{color:var(--color-text-muted);opacity:.5}.timeline-line{position:relative;height:6px;background-color:var(--color-border);border-radius:var(--radius-full);margin:var(--space-6) 0}.timeline-progress{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-full);transition:width 1s ease}.today-marker{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:10}.today-dot{width:18px;height:18px;background-color:var(--color-accent-primary);border:3px solid var(--color-bg-secondary);border-radius:50%;box-shadow:0 0 0 2px var(--color-accent-primary),var(--shadow-md)}.today-label{position:absolute;top:28px;font-size:var(--text-sm);color:var(--color-accent-primary);font-weight:var(--font-medium);white-space:nowrap}.goals-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border-light)}.goal-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-full);font-size:var(--text-sm)}.goal-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.goal-name{color:var(--color-text-secondary);max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-goals{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-2)}.calendar-toggle-section{animation:fadeIn 1s ease .4s both;width:100%;max-width:800px}.calendar-toggle-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:0 auto;padding:var(--space-2) var(--space-4);background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:var(--text-sm);transition:all var(--transition-fast);cursor:pointer}.calendar-toggle-btn:hover{border-color:var(--color-accent-primary);color:var(--color-text-secondary)}.calendar-toggle-btn.open{border-color:var(--color-accent-primary);color:var(--color-accent-primary);background-color:var(--color-accent-muted)}.calendar-toggle-icon{font-size:var(--text-base)}.calendar-toggle-arrow{font-size:var(--text-xs);opacity:.6}.calendar-dropdown{margin-top:var(--space-4);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-lg);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.calendar-dropdown-header{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-4)}.cal-nav-btn{padding:var(--space-1) var(--space-2);color:var(--color-text-muted);font-size:var(--text-base);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.cal-nav-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.cal-month-title{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-primary);min-width:150px;text-align:center}.cal-today-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--color-accent-primary);border:1px solid var(--color-accent-primary);border-radius:var(--radius-full);transition:all var(--transition-fast)}.cal-today-btn:hover{background-color:var(--color-accent-muted)}.calendar-dropdown-grid{display:flex;flex-direction:column}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin-bottom:var(--space-2)}.cal-weekday{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--font-medium);padding:var(--space-1)}.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--color-text-secondary);border-radius:var(--radius-md);position:relative;transition:background-color var(--transition-fast)}.cal-day:hover{background-color:var(--color-bg-hover)}.cal-day.other-month{color:var(--color-text-muted);opacity:.4}.cal-day.today{background-color:var(--color-accent-primary);color:#fff;font-weight:var(--font-medium)}.cal-day.today:hover{background-color:var(--color-accent-primary-hover)}.cal-day-number{line-height:1}.cal-day-dot{position:absolute;bottom:4px;width:4px;height:4px;background-color:var(--color-accent-secondary);border-radius:50%}.cal-day.today .cal-day-dot{background-color:#fff}.cal-day.selected{background-color:var(--color-accent-muted);outline:2px solid var(--color-accent-primary)}.cal-day.selected.today{outline:2px solid white}.cal-day-details{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.cal-day-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.cal-day-details-header h4{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-primary)}.cal-close-details{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);color:var(--color-text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.cal-close-details:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.cal-no-items{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-4)}.cal-items-list{display:flex;flex-direction:column;gap:var(--space-2)}.cal-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);width:100%;text-align:left;border:none;cursor:default}.cal-item.clickable{cursor:pointer;transition:all var(--transition-fast)}.cal-item.clickable:hover{background-color:var(--color-bg-hover);transform:translate(2px)}.cal-item-arrow{color:var(--color-text-muted);font-size:var(--text-sm);margin-left:auto;opacity:0;transition:opacity var(--transition-fast)}.cal-item.clickable:hover .cal-item-arrow{opacity:1}.cal-item.done{opacity:.6}.cal-item.done .cal-item-title{text-decoration:line-through}.cal-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-item-dot.goal{background-color:var(--color-warning)}.cal-item-dot.event{background-color:var(--color-accent-secondary)}.cal-item-dot.task{background-color:var(--color-accent-primary)}.cal-item-title{flex:1;font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-item-type{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}@media(max-width:768px){.home{padding:var(--space-6)}.current-date{font-size:var(--text-2xl)}.month-name{font-size:10px}.goals-summary{flex-direction:column;align-items:center}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.goals-page{max-width:800px;margin:0 auto}.goals-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6)}.goals-header h1{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.goals-subtitle{font-size:var(--text-sm);color:var(--color-text-muted)}.add-goal-btn{padding:var(--space-2) var(--space-4);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.add-goal-btn:hover{background-color:var(--color-accent-primary-hover)}.goal-form{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6)}.goal-title-input{width:100%;padding:var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:var(--font-medium);margin-bottom:var(--space-3)}.goal-title-input:focus{border-color:var(--color-accent-primary);outline:none}.goal-desc-input{width:100%;padding:var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);resize:vertical;min-height:60px;margin-bottom:var(--space-3);font-family:var(--font-primary)}.goal-desc-input:focus{border-color:var(--color-accent-primary);outline:none}.goal-form-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.category-select{display:flex;gap:var(--space-2);flex-wrap:wrap}.category-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.category-btn:hover{border-color:var(--cat-color);color:var(--cat-color)}.category-btn.active{background-color:var(--cat-color);border-color:var(--cat-color);color:#fff}.form-actions{display:flex;gap:var(--space-2)}.cancel-btn{padding:var(--space-2) var(--space-4);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:var(--radius-md);font-size:var(--text-sm);transition:all var(--transition-fast)}.cancel-btn:hover{background-color:var(--color-bg-hover)}.save-btn{padding:var(--space-2) var(--space-4);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.goals-list{display:flex;flex-direction:column;gap:var(--space-3)}.empty-goals{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);background-color:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center}.empty-goals .empty-icon{font-size:3rem;color:var(--color-text-muted);opacity:.5;margin-bottom:var(--space-4)}.empty-goals p{color:var(--color-text-secondary);margin-bottom:var(--space-4)}.empty-action{padding:var(--space-2) var(--space-4);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm)}.goal-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.goal-card:hover{border-color:var(--color-border);background-color:var(--color-bg-tertiary)}.goal-card.editing{cursor:default;flex-direction:column;align-items:stretch}.goal-content{display:flex;gap:var(--space-4);flex:1}.goal-category-indicator{width:4px;border-radius:var(--radius-full);flex-shrink:0}.goal-info{flex:1;min-width:0}.goal-title{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary);margin-bottom:var(--space-1)}.goal-description{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2);line-height:1.5}.goal-meta{display:flex;gap:var(--space-3);font-size:var(--text-xs)}.goal-category{font-weight:var(--font-medium)}.goal-tasks{color:var(--color-text-muted)}.goal-target-date{color:var(--color-text-muted);background-color:var(--color-bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.goal-actions{display:flex;gap:var(--space-2);opacity:0;transition:opacity var(--transition-fast)}.goal-card:hover .goal-actions{opacity:1}.action-btn{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}@media(max-width:600px){.goals-header{flex-direction:column;gap:var(--space-4)}.add-goal-btn{width:100%;justify-content:center}.goal-form-row{flex-direction:column;align-items:stretch}.form-actions{justify-content:flex-end}.goal-actions{opacity:1}.goal-card{flex-direction:column;align-items:stretch;gap:var(--space-3)}.goal-actions{justify-content:flex-end}}.comments{background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-4)}.comments.compact{padding:var(--space-3);background-color:transparent;border:none}.comments-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.comments-header-compact{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.comments-icon{font-size:var(--text-base)}.comments-title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.comments-count{font-size:var(--text-xs);color:var(--color-text-muted);background-color:var(--color-bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.comments-collapse{padding:var(--space-1) var(--space-2);font-size:var(--text-base);color:var(--color-text-muted);border-radius:var(--radius-sm)}.comments-collapse:hover{background-color:var(--color-bg-hover)}.comments-compact{padding-top:var(--space-2)}.comments-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--transition-fast)}.comments-toggle:hover{color:var(--color-text-secondary)}.comment-input-area{position:relative}.comment-input{width:100%;padding:var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5;resize:none;font-family:var(--font-primary)}.comment-input:focus{border-color:var(--color-accent-primary);outline:none}.comment-input::placeholder{color:var(--color-text-muted)}.comment-submit{position:absolute;right:var(--space-2);bottom:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.comment-submit:hover{background-color:var(--color-accent-primary-hover)}.comments-list{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.comment{padding:var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.comment-content{font-size:var(--text-sm);color:var(--color-text-primary);line-height:1.6;white-space:pre-wrap;margin-bottom:var(--space-2)}.comment-meta{display:flex;justify-content:space-between;align-items:center}.comment-date{font-size:var(--text-xs);color:var(--color-text-muted)}.comment-delete{font-size:var(--text-base);color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);opacity:0;transition:all var(--transition-fast)}.comment:hover .comment-delete{opacity:1}.comment-delete:hover{background-color:var(--color-error-muted);color:var(--color-error)}.goal-detail{max-width:800px;margin:0 auto}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--text-sm)}.breadcrumb-link{color:var(--color-text-muted);transition:color var(--transition-fast)}.breadcrumb-link:hover{color:var(--color-accent-primary)}.breadcrumb-sep{color:var(--color-text-muted)}.breadcrumb-current{color:var(--color-text-secondary)}.goal-header{display:flex;gap:var(--space-4);padding:var(--space-6);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-6)}.goal-category-bar{width:4px;border-radius:var(--radius-full);flex-shrink:0}.goal-header-content h1{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.goal-header-content .goal-description{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-3)}.goal-category-label{font-size:var(--text-sm);font-weight:var(--font-medium)}.goal-comments-section{margin-bottom:var(--space-8)}.tasks-section{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-6)}.tasks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.tasks-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.add-task-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-accent-primary);background-color:transparent;border:1px solid var(--color-accent-primary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.add-task-btn:hover{background-color:var(--color-accent-muted)}.add-task-form{margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.add-task-form input{width:100%;padding:var(--space-3);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);margin-bottom:var(--space-3)}.add-task-form-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.date-input{padding:var(--space-2) var(--space-3);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);color-scheme:dark}.empty-tasks{text-align:center;padding:var(--space-8);color:var(--color-text-muted)}.empty-tasks button{margin-top:var(--space-3);color:var(--color-accent-primary);font-size:var(--text-sm)}.tasks-list{display:flex;flex-direction:column;gap:var(--space-2)}.task-card{background-color:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:all var(--transition-fast)}.task-card:hover{border-color:var(--color-border)}.task-card.expanded{border-color:var(--color-accent-primary)}.task-main{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);cursor:pointer}.task-checkbox{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text-muted);transition:all var(--transition-fast);flex-shrink:0}.task-title{flex:1;font-size:var(--text-base);color:var(--color-text-primary)}.task-card.done .task-title{color:var(--color-text-muted);text-decoration:line-through}.task-edit-row{display:flex;align-items:center;gap:var(--space-2);flex:1}.task-edit-input{flex:1;padding:var(--space-2) var(--space-3);background-color:var(--color-bg-elevated);border:1px solid var(--color-accent-primary);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text-primary)}.task-edit-input:focus{outline:none;box-shadow:0 0 0 2px var(--color-accent-muted)}.task-save-btn{padding:var(--space-1) var(--space-3);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.task-save-btn:hover:not(:disabled){background-color:var(--color-accent-primary-hover)}.task-save-btn:disabled{opacity:.5;cursor:not-allowed}.task-cancel-btn{padding:var(--space-1) var(--space-3);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:var(--radius-md);font-size:var(--text-sm);transition:all var(--transition-fast)}.task-cancel-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.task-actions{display:flex;align-items:center;gap:var(--space-2);opacity:0;transition:opacity var(--transition-fast)}.task-card:hover .task-actions{opacity:1}.task-due-date{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm)}.task-action-btn{padding:var(--space-1);font-size:var(--text-base);color:var(--color-text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.task-action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.task-action-btn.delete:hover{background-color:var(--color-error-muted);color:var(--color-error)}.task-expanded{padding:var(--space-4);border-top:1px solid var(--color-border-light);background-color:var(--color-bg-secondary)}.task-details{margin-bottom:var(--space-4)}.due-date-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.due-date-input{padding:var(--space-1) var(--space-2);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary)}.completed-section{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}.completed-header{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);margin-bottom:var(--space-3)}.completed-section .task-card{opacity:.7}.tasks-header-actions{display:flex;gap:var(--space-2)}.add-category-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);background-color:transparent;border:1px dashed var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.add-category-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.add-category-form{margin-bottom:var(--space-4);padding:var(--space-4);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.add-category-form input{width:100%;padding:var(--space-3);background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);margin-bottom:var(--space-3);color:var(--color-text-primary)}.add-category-form input:focus{border-color:var(--color-accent-primary);outline:none}.add-category-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.task-category-section{margin-bottom:var(--space-4)}.task-category-section.general{margin-bottom:var(--space-6)}.category-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);border-left:3px solid var(--color-border)}.category-collapse-btn{padding:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);background:transparent;width:20px}.category-collapse-btn:hover{color:var(--color-text-primary)}.category-title{flex:1;font-size:var(--text-sm);font-weight:var(--font-semibold);display:flex;align-items:center;gap:var(--space-2)}.category-count{font-weight:var(--font-normal);color:var(--color-text-muted);font-size:var(--text-xs)}.category-actions{display:flex;align-items:center;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.category-header:hover .category-actions{opacity:1}.category-action-btn{padding:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);border-radius:var(--radius-sm);background:transparent}.category-action-btn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.category-action-btn.delete:hover{color:var(--color-error);background-color:var(--color-error-muted)}.category-add-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-accent-primary);background:transparent;border-radius:var(--radius-sm)}.category-add-btn:hover{background-color:var(--color-accent-muted)}.category-tasks{padding-left:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.empty-category{padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.category-edit-row{display:flex;align-items:center;gap:var(--space-2);flex:1}.category-edit-input{flex:1;padding:var(--space-2);background-color:var(--color-bg-elevated);border:1px solid var(--color-accent-primary);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary)}.category-edit-input:focus{outline:none}.task-title-area{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.recurring-badge{font-size:var(--text-sm);color:var(--color-accent-primary);padding:2px 6px;background-color:var(--color-accent-muted);border-radius:var(--radius-sm);flex-shrink:0}.recurrence-section{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light)}.recurrence-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.recurrence-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent-primary)}.recurrence-options{margin-top:var(--space-3);padding-left:var(--space-4)}.recurrence-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.interval-input{width:60px;padding:var(--space-2);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary);text-align:center}.interval-input:focus{border-color:var(--color-accent-primary);outline:none}.frequency-select{padding:var(--space-2) var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary)}.frequency-select:focus{border-color:var(--color-accent-primary);outline:none}.add-task-options{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.option-row{display:flex;align-items:center;gap:var(--space-3)}.option-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.recurrence-config{padding:var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:var(--space-3)}.detail-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.detail-input{padding:var(--space-2);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary)}.detail-input:focus{border-color:var(--color-accent-primary);outline:none}.detail-select{padding:var(--space-2);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-primary);min-width:150px}.detail-select:focus{border-color:var(--color-accent-primary);outline:none}.save-btn.small,.cancel-btn.small{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.cancel-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);background-color:transparent}.cancel-btn:hover{color:var(--color-text-primary)}.save-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md)}.save-btn:hover:not(:disabled){background-color:var(--color-accent-primary-hover)}.save-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.goal-header,.tasks-section{padding:var(--space-4)}.task-actions,.category-actions{opacity:1}.tasks-header-actions{flex-direction:column;gap:var(--space-1)}.recurrence-row{flex-wrap:wrap}}.tasks-page{max-width:800px;margin:0 auto}.tasks-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}.tasks-header h1{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.tasks-subtitle{font-size:var(--text-sm);color:var(--color-text-muted)}.tasks-actions{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}.filter-tabs{display:flex;background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-1)}.filter-tab{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.filter-tab:hover{color:var(--color-text-secondary)}.filter-tab.active{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.add-task-btn{padding:var(--space-2) var(--space-4);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.add-task-btn:hover{background-color:var(--color-accent-primary-hover)}.add-task-form{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.add-task-form input{width:100%;padding:var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base)}.add-task-form input:focus{border-color:var(--color-accent-primary);outline:none}.goal-select{padding:var(--space-2) var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary)}.date-input-wrapper{display:flex;align-items:center;gap:var(--space-2)}.date-label{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.date-input{padding:var(--space-2) var(--space-3);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);color-scheme:dark}.date-input:focus{border-color:var(--color-accent-primary);outline:none}.add-task-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.add-task-actions .cancel-btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);background-color:transparent}.add-task-actions .save-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md)}.add-task-actions .save-btn:disabled{opacity:.5}.tasks-list{display:flex;flex-direction:column;gap:var(--space-4)}.empty-tasks{text-align:center;padding:var(--space-12);color:var(--color-text-muted);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg)}.task-group{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.task-group-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background-color:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-light);text-align:left;transition:background-color var(--transition-fast)}.task-group-header:not(:disabled):hover{background-color:var(--color-bg-hover)}.task-group-header:disabled{cursor:default}.group-title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.group-count{font-size:var(--text-xs);color:var(--color-text-muted);background-color:var(--color-bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.task-group-items{display:flex;flex-direction:column}.task-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.task-item:last-child{border-bottom:none}.task-item:hover{background-color:var(--color-bg-tertiary)}.task-item.done{opacity:.6}.task-checkbox{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text-muted);transition:all var(--transition-fast);flex-shrink:0}.task-checkbox:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary)}.task-checkbox.done{background-color:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.task-item .task-title{flex:1;font-size:var(--text-base);color:var(--color-text-primary)}.task-item.done .task-title{text-decoration:line-through;color:var(--color-text-muted)}.task-due{font-size:var(--text-xs);color:var(--color-text-muted);background-color:var(--color-bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.task-delete{padding:var(--space-1);font-size:var(--text-lg);color:var(--color-text-muted);opacity:0;transition:all var(--transition-fast)}.task-item:hover .task-delete{opacity:1}.task-delete:hover{color:var(--color-error)}@media(max-width:600px){.tasks-header,.tasks-actions{flex-direction:column;align-items:stretch}.filter-tabs{width:100%;justify-content:center}.add-task-btn{width:100%;text-align:center}.task-delete{opacity:1}}.calendar-page{height:calc(100vh - var(--header-height) - var(--space-12));display:flex;flex-direction:column}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.calendar-nav{display:flex;align-items:center;gap:var(--space-4)}.nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-lg);color:var(--color-text-secondary);transition:all var(--transition-fast)}.nav-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.calendar-title{font-size:var(--text-xl);font-weight:var(--font-semibold);min-width:200px;text-align:center}.today-btn{padding:var(--space-2) var(--space-4);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.today-btn:hover{background-color:var(--color-accent-primary-hover)}.calendar-layout{display:grid;grid-template-columns:1fr 320px;gap:var(--space-4);flex:1;min-height:0}.calendar-grid-container{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background-color:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-light)}.weekday-header{padding:var(--space-3);text-align:center;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted)}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);flex:1}.calendar-day-cell{border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);padding:var(--space-1);height:100px;max-height:100px;cursor:pointer;transition:background-color var(--transition-fast);display:flex;flex-direction:column;overflow:hidden}.calendar-day-cell:nth-child(7n){border-right:none}.calendar-day-cell:hover{background-color:var(--color-bg-hover)}.calendar-day-cell.other-month{background-color:var(--color-bg-primary)}.calendar-day-cell.other-month .day-number{color:var(--color-text-muted);opacity:.5}.calendar-day-cell.today .day-number{background-color:var(--color-accent-primary);color:#fff}.calendar-day-cell.selected{background-color:var(--color-accent-primary-muted)}.day-number{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:50%;margin-bottom:var(--space-1)}.day-items{flex:1;display:flex;flex-wrap:wrap;gap:2px;overflow:hidden;align-content:flex-start}.day-item{font-size:10px;padding:1px 6px;border-radius:var(--radius-full);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}.day-item.event{background-color:var(--color-accent-secondary);color:#fff}.day-item.task{background-color:var(--color-accent-primary);color:#fff}.day-item.goal{background-color:var(--color-warning);color:var(--color-text-inverse);font-weight:var(--font-medium)}.day-item.budget{background-color:#e879f9;color:#fff;font-weight:var(--font-medium)}.day-item.task.completed{opacity:.5;text-decoration:line-through}.more-items{font-size:10px;color:var(--color-text-muted);padding:1px 4px}.calendar-side-panel{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-4);overflow-y:auto}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-light)}.panel-header h3{font-size:var(--text-base);font-weight:var(--font-medium)}.add-event-btn{font-size:var(--text-xs);color:var(--color-accent-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.add-event-btn:hover{background-color:var(--color-accent-primary-muted)}.new-event-form{background-color:var(--color-bg-tertiary);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.new-event-form input{width:100%;margin-bottom:var(--space-2);font-size:var(--text-sm)}.new-event-actions{display:flex;gap:var(--space-2)}.new-event-actions .confirm-btn,.new-event-actions .cancel-btn{flex:1;padding:var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-sm)}.new-event-actions .confirm-btn{background-color:var(--color-accent-primary);color:#fff}.new-event-actions .cancel-btn{background-color:var(--color-bg-hover);color:var(--color-text-muted)}.panel-section{margin-bottom:var(--space-4)}.panel-section h4{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-text{font-size:var(--text-sm);color:var(--color-text-muted)}.panel-items{display:flex;flex-direction:column;gap:var(--space-2)}.panel-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);width:100%;text-align:left;border:none;cursor:default}.panel-item.clickable{cursor:pointer;transition:all var(--transition-fast)}.panel-item.clickable:hover{background-color:var(--color-bg-hover);transform:translate(2px)}.item-arrow{color:var(--color-text-muted);font-size:var(--text-sm);opacity:0;transition:opacity var(--transition-fast)}.panel-item.clickable:hover .item-arrow{opacity:1}.panel-item.completed{opacity:.6}.panel-item.completed .item-title{text-decoration:line-through}.item-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.item-indicator.event{background-color:var(--color-accent-secondary)}.item-indicator.task{background-color:var(--color-accent-primary)}.item-indicator.goal{background-color:var(--color-warning)}.item-indicator.budget{background-color:#e879f9}.item-title{flex:1;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-priority{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);text-transform:capitalize}.item-priority.high{background-color:var(--color-error-muted);color:var(--color-error)}.item-priority.medium{background-color:var(--color-warning-muted);color:var(--color-warning)}.item-priority.low{background-color:var(--color-success-muted);color:var(--color-success)}.item-delete{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);border-radius:var(--radius-sm);font-size:var(--text-lg);opacity:0;transition:all var(--transition-fast)}.panel-item:hover .item-delete{opacity:1}.item-delete:hover{background-color:var(--color-error-muted);color:var(--color-error)}.panel-item.budget{flex-wrap:wrap}.budget-item-content{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.budget-item-content .item-title{font-weight:var(--font-medium)}.budget-amount{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono)}.autopay-indicator{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background-color:var(--color-success-muted);color:var(--color-success);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-bold)}.panel-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-muted)}@media(max-width:1024px){.calendar-layout{grid-template-columns:1fr}.calendar-side-panel{order:-1;max-height:200px}.weekday-header{font-size:var(--text-xs)}}@media(max-width:600px){.weekday-header{padding:var(--space-2)}.calendar-day-cell{min-height:60px;padding:var(--space-1)}.day-number{width:24px;height:24px;font-size:var(--text-xs)}.day-items{display:none}.calendar-day-cell.has-items:after{content:"";width:6px;height:6px;background-color:var(--color-accent-primary);border-radius:50%;margin-top:auto}}.budget-page{max-width:1200px;margin:0 auto}.budget-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6)}.budget-title-section h1{font-size:var(--text-2xl);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.budget-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.add-budget-btn{padding:var(--space-3) var(--space-5);background-color:var(--color-accent-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.add-budget-btn:hover{background-color:var(--color-accent-primary-hover);transform:translateY(-1px)}.budget-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.summary-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;transition:all var(--transition-fast);border:2px solid transparent;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--card-accent, var(--color-accent-primary))}.summary-card:hover{background-color:var(--color-bg-tertiary);transform:translateY(-2px)}.summary-card.active{border-color:var(--card-accent, var(--color-accent-primary));background-color:var(--color-bg-tertiary)}.summary-card.total{--card-accent: var(--color-accent-secondary)}.summary-card.total:before{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary))}.summary-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.card-indicator{width:10px;height:10px;border-radius:50%;background-color:var(--card-accent, var(--color-accent-primary))}.card-indicator.total{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary))}.card-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.card-location{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-3)}.card-amount{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.card-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.budget-add-form{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);border:1px solid var(--color-border);animation:slideUp .2s ease-out}.budget-add-form h3{font-size:var(--text-lg);font-weight:var(--font-medium);margin-bottom:var(--space-5);color:var(--color-text-primary)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.form-group input,.form-group select{padding:var(--space-3);font-size:var(--text-sm)}.checkbox-group{justify-content:flex-end}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-text{font-size:var(--text-sm);color:var(--color-text-secondary)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.form-actions .cancel-btn,.form-actions .save-btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.form-actions .cancel-btn{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.form-actions .cancel-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.form-actions .save-btn{background-color:var(--color-accent-primary);color:#fff}.form-actions .save-btn:hover{background-color:var(--color-accent-primary-hover)}.budget-table-container{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-6)}.budget-table{width:100%;border-collapse:collapse}.budget-table th,.budget-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light)}.budget-table th{background-color:var(--color-bg-tertiary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);white-space:nowrap}.budget-table tbody tr{transition:background-color var(--transition-fast)}.budget-table tbody tr:hover{background-color:var(--color-bg-hover)}.budget-table tbody tr.editing{background-color:var(--color-accent-muted)}.budget-table tbody tr:last-child td{border-bottom:none}.expense-name{font-weight:var(--font-medium);color:var(--color-text-primary)}.category-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background-color:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap}.category-badge:before{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--badge-color, var(--color-accent-primary))}.amount-cell{font-weight:var(--font-medium);color:var(--color-text-primary);font-family:var(--font-mono)}.due-cell,.company-cell{color:var(--color-text-secondary)}.cadence-cell{font-size:var(--text-sm);color:var(--color-text-muted)}.autopay-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium)}.autopay-badge.enabled{background-color:var(--color-success-muted);color:var(--color-success)}.autopay-badge.disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-muted)}.actions-col{width:100px;text-align:center}.action-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-base);transition:all var(--transition-fast);opacity:0}.budget-table tbody tr:hover .action-btn,.budget-table tbody tr.editing .action-btn{opacity:1}.action-btn.edit{color:var(--color-text-secondary)}.action-btn.edit:hover{background-color:var(--color-accent-muted);color:var(--color-accent-primary)}.action-btn.delete{color:var(--color-text-muted)}.action-btn.delete:hover{background-color:var(--color-error-muted);color:var(--color-error)}.action-btn.save{color:var(--color-success)}.action-btn.save:hover{background-color:var(--color-success-muted)}.action-btn.cancel{color:var(--color-text-muted)}.action-btn.cancel:hover{background-color:var(--color-bg-hover)}.edit-input,.edit-select{width:100%;padding:var(--space-2);font-size:var(--text-sm);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.edit-input:focus,.edit-select:focus{border-color:var(--color-accent-primary);outline:none}.amount-input{width:100px}.day-input{width:60px}.edit-checkbox{width:18px;height:18px;cursor:pointer}.empty-row{text-align:center;color:var(--color-text-muted);padding:var(--space-8)!important}.budget-footer{text-align:center;padding:var(--space-4)}.calendar-note{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.link-btn{color:var(--color-accent-primary);font-weight:var(--font-medium);text-decoration:underline;text-underline-offset:2px}.link-btn:hover{color:var(--color-accent-primary-hover)}@media(max-width:900px){.budget-table-container{overflow-x:auto}.budget-table{min-width:700px}.action-btn{opacity:1}}@media(max-width:600px){.budget-header{flex-direction:column;gap:var(--space-4)}.add-budget-btn{width:100%}.budget-summary{grid-template-columns:1fr 1fr}.summary-card{padding:var(--space-4)}.card-amount{font-size:var(--text-lg)}.form-grid{grid-template-columns:1fr}}@media(max-width:400px){.budget-summary{grid-template-columns:1fr}}.app-content{animation:fadeIn var(--transition-normal)}.page-enter{animation:slideUp var(--transition-normal)}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg-primary) 0%,var(--color-bg-secondary) 100%)}.loading-content{text-align:center}.loading-logo{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.loading-logo .logo-check{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);font-size:var(--text-lg)}.loading-content p{color:var(--color-text-muted);font-size:var(--text-base);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}
