:root{--font-main: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition-fast: .15s ease;--transition-smooth: .3s ease}[data-theme=dark]{--bg-base: #09090b;--bg-elevated: #18181b;--bg-surface: #27272a;--bg-hover: #3f3f46;--accent: #f59e0b;--accent-dim: rgba(245, 158, 11, .15);--accent-border: rgba(245, 158, 11, .3);--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-muted: #52525b;--border: #27272a;--border-subtle: rgba(255, 255, 255, .06);--success: #22c55e;--weekend: #f87171;--shadow: 0 4px 20px rgba(0, 0, 0, .5)}[data-theme=light]{--bg-base: #fafafa;--bg-elevated: #ffffff;--bg-surface: #f4f4f5;--bg-hover: #e4e4e7;--accent: #d97706;--accent-dim: rgba(217, 119, 6, .1);--accent-border: rgba(217, 119, 6, .3);--text-primary: #18181b;--text-secondary: #52525b;--text-muted: #a1a1aa;--border: #e4e4e7;--border-subtle: rgba(0, 0, 0, .06);--success: #16a34a;--weekend: #dc2626;--shadow: 0 4px 20px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-main);background:var(--bg-base);color:var(--text-primary);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color var(--transition-smooth),color var(--transition-smooth)}.app{padding:0;position:relative}.header{padding:2.5rem 1.5rem 1.5rem;text-align:center;position:relative}.header-top{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;position:absolute;top:1rem;right:1rem}.faq-link{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);text-decoration:none;font-size:.9rem;font-weight:600;transition:var(--transition-smooth)}.faq-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.theme-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-main);font-size:.75rem;font-weight:500;color:var(--text-secondary);transition:var(--transition-smooth)}.theme-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.theme-icon{font-size:.65rem}.header h1{font-size:clamp(2rem,6vw,3rem);font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:.25rem}.header h1 span{color:var(--accent)}.header-sub{font-size:.8rem;font-weight:400;color:var(--text-muted);letter-spacing:.05em}.stats{display:flex;justify-content:center;gap:2.5rem;margin:1.5rem 0;padding:1rem}.stat{text-align:center}.stat-value{font-size:1.75rem;font-weight:700;color:var(--accent);line-height:1}.stat-label{font-size:.65rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:.35rem}.nav-section{padding:0 1.5rem}.quarter-nav{display:flex;justify-content:center;gap:.35rem;margin-bottom:.75rem;flex-wrap:wrap}.quarter-btn{padding:.6rem 1rem;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-main);font-size:.75rem;font-weight:600;cursor:pointer;border-radius:var(--radius-md);transition:var(--transition-fast);-webkit-tap-highlight-color:transparent}.quarter-btn:hover{border-color:var(--accent-border);color:var(--text-primary)}.quarter-btn.active{background:var(--accent);border-color:var(--accent);color:#000}.view-toggle{display:flex;justify-content:center;gap:.25rem;margin-bottom:1.25rem;background:var(--bg-elevated);padding:.25rem;border-radius:var(--radius-md);width:fit-content;margin-left:auto;margin-right:auto;border:1px solid var(--border)}.view-btn{padding:.5rem 1rem;background:transparent;border:none;color:var(--text-muted);font-family:var(--font-main);font-size:.7rem;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);-webkit-tap-highlight-color:transparent}.view-btn:hover{color:var(--text-primary)}.view-btn.active{background:var(--bg-surface);color:var(--accent)}.controls{padding:0 1.5rem;margin-bottom:1.5rem}.search-box{display:flex;align-items:center;max-width:280px;margin:0 auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.6rem 1rem;gap:.6rem;transition:var(--transition-smooth)}.search-box:focus-within{border-color:var(--accent-border)}.search-icon{color:var(--text-muted);font-size:.85rem}.search-box input{flex:1;background:none;border:none;color:var(--text-primary);font-family:var(--font-main);font-size:.85rem}.search-box input::placeholder{color:var(--text-muted)}.search-box input:focus{outline:none}.search-results{font-size:.7rem;color:var(--accent);font-weight:600;white-space:nowrap}.search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;font-size:.8rem;transition:var(--transition-fast)}.search-clear:hover{color:var(--text-primary)}.year-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:0 1.5rem 5rem;max-width:1400px;margin:0 auto}.month-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:var(--transition-smooth)}.month-card:hover{border-color:var(--accent-border)}.month-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.month-name{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.month-badge{font-size:.65rem;font-weight:600;color:var(--text-muted)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day-header{text-align:center;padding:.4rem 0;font-size:.6rem;font-weight:700;color:var(--text-muted);text-transform:uppercase}.day-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:500;color:var(--text-secondary);transition:var(--transition-fast);position:relative;-webkit-tap-highlight-color:transparent}.day-cell:hover:not(.empty){background:var(--bg-hover);color:var(--text-primary)}.day-cell:active:not(.empty){transform:scale(.95)}.day-cell.empty{cursor:default}.day-cell.weekend{color:var(--weekend)}.day-cell.today{background:var(--accent);color:#000;font-weight:700;border:2px solid #b45309;box-shadow:0 0 0 2px var(--accent-dim)}.day-cell.has-event{background:var(--accent-dim);color:var(--accent);font-weight:600}.day-cell.has-event:after{content:"";position:absolute;bottom:2px;width:4px;height:4px;background:var(--accent);border-radius:50%}.day-cell.today.has-event:after{background:#000}.day-cell.holiday{background:#22c55e26;color:var(--success);font-weight:600}.day-cell.holiday:before{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;background:var(--success);border-radius:50%}.day-cell.holiday.today{background:var(--accent);color:#000}.day-cell.holiday.today:before{background:#000}.events-section{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-subtle);max-height:120px;overflow-y:auto}.event-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;background:var(--bg-surface);border-radius:var(--radius-sm);margin-bottom:.4rem;font-size:.75rem;transition:var(--transition-fast);cursor:pointer}.event-item:hover{background:var(--bg-hover)}.event-item.search-match,.goal-item.search-match{border-left:3px solid var(--accent);background:var(--accent-dim)}.event-date{min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#000;border-radius:var(--radius-sm);font-weight:700;font-size:.7rem}.event-icon{font-size:.9rem}.event-text{flex:1;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.2rem;opacity:0;transition:var(--transition-fast);font-size:.8rem}.event-item:hover .event-delete{opacity:1}.event-delete:hover{color:var(--weekend)}.compact-container{display:none;padding:0 0 5rem;overflow:hidden}.compact-container.active{display:block}.compact-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 1rem}.compact-table{border-collapse:separate;border-spacing:2px;margin:0 auto;min-width:max-content}.compact-header-row th{padding:.3rem 0 .5rem;font-size:.6rem;font-weight:600;color:var(--text-secondary);text-align:center;min-width:30px;position:sticky;top:0;background:var(--bg-base);z-index:5}.compact-header-row th:first-child{min-width:70px;text-align:left;position:sticky;left:0;background:var(--bg-base);z-index:10;padding-left:.5rem}.compact-month-row td{padding:0;vertical-align:middle}.compact-month-label{position:sticky;left:0;background:var(--bg-base);z-index:5;padding-right:.75rem!important;padding-left:.5rem!important;white-space:nowrap}.month-label-inner{display:flex;align-items:center;gap:.4rem}.month-label-text{font-size:.85rem;font-weight:700;color:var(--text-primary)}.month-label-count{font-size:.6rem;font-weight:600;color:var(--text-muted);background:var(--bg-surface);padding:.15rem .4rem;border-radius:var(--radius-sm)}.compact-day{width:30px;height:30px;border-radius:var(--radius-sm);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);background:var(--bg-elevated);color:var(--text-secondary);border:1px solid transparent;-webkit-tap-highlight-color:transparent;position:relative}.compact-day .day-letter{font-size:.45rem;font-weight:700;color:var(--text-muted);margin-top:1px;line-height:1}.compact-day.weekend .day-letter{color:var(--weekend)}.compact-day:hover:not(.empty){background:var(--bg-hover);border-color:var(--accent-border);transform:scale(1.1);z-index:10;position:relative}.compact-day:active:not(.empty){transform:scale(.95)}.compact-day.empty{background:transparent;cursor:default}.compact-day.empty:hover{transform:none}.compact-day.weekend{color:var(--weekend);opacity:.8}.compact-day.today{background:var(--accent);color:#000;font-weight:700;border:2px solid #b45309;box-shadow:0 0 0 2px var(--accent-dim)}.compact-day.today .day-letter{color:#000;opacity:.7}.compact-day.has-event{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.compact-day.has-event .day-letter{color:var(--accent)}.compact-day.weekend.has-event{opacity:1}.compact-day.holiday{background:#22c55e26;color:var(--success);border-color:#22c55e4d}.compact-day.holiday .day-letter{color:var(--success)}.quarter-label-row td{padding-top:1.25rem;padding-bottom:.5rem}.quarter-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.65rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.1em}.quarter-label:after{content:"";display:block;width:60px;height:1px;background:var(--border)}.compact-day .tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--bg-surface);border:1px solid var(--border);padding:.5rem .75rem;border-radius:var(--radius-md);font-size:.7rem;white-space:nowrap;z-index:100;box-shadow:var(--shadow);color:var(--text-primary)}.compact-day:hover .tooltip{display:block}.compact-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1.5rem;padding:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.65rem;font-weight:600;color:var(--text-muted)}.legend-dot{width:18px;height:18px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700}.legend-dot.today{background:var(--accent);color:#000;border:2px solid #b45309;box-shadow:0 0 0 2px var(--accent-dim)}.legend-dot.event{background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent)}.legend-dot.weekend{background:var(--bg-elevated);color:var(--weekend)}.legend-dot.normal{background:var(--bg-elevated);color:var(--text-secondary)}.legend-dot.holiday{background:#22c55e26;color:var(--success)}.calendar-legend{display:none;justify-content:center;gap:1.5rem;padding:1rem 1.5rem 2rem;flex-wrap:wrap;max-width:1400px;margin:0 auto}.calendar-legend.active{display:flex}.goals-panel{display:none;max-width:900px;margin:0 auto;padding:0 1.5rem 5rem}.goals-panel.active{display:block}.annual-goal-card{background:linear-gradient(135deg,var(--bg-elevated) 0%,var(--bg-surface) 100%);border:2px solid var(--accent-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;position:relative;overflow:hidden}.annual-goal-card:before{content:"2026";position:absolute;top:-20px;right:-10px;font-size:6rem;font-weight:900;color:var(--accent);opacity:.08;line-height:1;pointer-events:none}.annual-goal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.annual-goal-label{font-size:.65rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.annual-goal-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.3}.annual-goal-description{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin-bottom:1rem}.annual-goal-motivation{font-size:.8rem;color:var(--text-muted);font-style:italic;padding-left:1rem;border-left:3px solid var(--accent);margin-bottom:1rem}.annual-goal-progress{display:flex;align-items:center;gap:1rem}.annual-progress-bar{flex:1;height:10px;background:var(--bg-hover);border-radius:5px;overflow:hidden}.annual-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:5px;transition:width .5s ease}.annual-progress-text{font-size:1rem;font-weight:700;color:var(--accent);min-width:50px;text-align:right}.annual-goal-edit{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;font-weight:600;transition:var(--transition-fast)}.annual-goal-edit:hover{border-color:var(--accent);color:var(--accent)}.annual-goal-empty{text-align:center;padding:2rem}.annual-goal-empty p{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem}.annual-goal-empty button{background:var(--accent);color:#000;border:none;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition-fast)}.annual-goal-empty button:hover{opacity:.9}.annual-goal-status{font-size:.65rem;font-weight:700;padding:.25rem .6rem;border-radius:var(--radius-sm);text-transform:uppercase;margin-left:.75rem}.annual-goal-status.active,.annual-goal-status.in_progress{background:#3b82f626;color:#3b82f6}.annual-goal-status.completed{background:#22c55e26;color:var(--success)}.annual-goal-status.abandoned{background:#ef444426;color:#ef4444}.goals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.quarter-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:var(--transition-smooth)}.quarter-card:hover{border-color:var(--accent-border)}.quarter-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.quarter-title{font-size:1.1rem;font-weight:700;color:var(--accent)}.add-goal-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);width:28px;height:28px;border-radius:var(--radius-sm);cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.add-goal-btn:hover{border-color:var(--accent);color:var(--accent)}.goals-list{display:flex;flex-direction:column;gap:.5rem}.goal-item{background:var(--bg-surface);border-radius:var(--radius-sm);padding:.75rem;cursor:pointer;transition:var(--transition-fast)}.goal-item:hover{background:var(--bg-hover)}.goal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}.goal-title{font-size:.85rem;font-weight:600;color:var(--text-primary);flex:1}.goal-status{font-size:.6rem;font-weight:700;padding:.2rem .5rem;border-radius:var(--radius-sm);text-transform:uppercase}.goal-status.pending{background:var(--bg-hover);color:var(--text-muted)}.goal-status.in_progress{background:#3b82f626;color:#3b82f6}.goal-status.completed{background:#22c55e26;color:var(--success)}.goal-status.abandoned{background:#ef444426;color:#ef4444}.goal-milestones{margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem;position:relative}.goal-milestones-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.add-milestone-inline-btn{background:none;border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;padding:.2rem .5rem;font-size:.65rem;font-family:var(--font-main);font-weight:600;border-radius:var(--radius-sm);transition:var(--transition-fast);display:flex;align-items:center;gap:.25rem}.add-milestone-inline-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.goal-milestone-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-secondary);padding:.35rem .5rem;margin:0 -.5rem;border-radius:var(--radius-sm);transition:var(--transition-fast);cursor:pointer;position:relative}.goal-milestone-item:hover{background:var(--bg-hover)}.goal-milestone-item.checked{color:var(--text-primary)}.goal-milestone-item.checked .milestone-text{text-decoration:line-through;opacity:.6}.goal-milestone-item.dragging{opacity:.4;background:var(--accent-dim)}.goal-milestone-item.drag-over{border-top:2px solid var(--accent);margin-top:-2px}.milestone-drag-handle-card{cursor:grab;color:var(--text-muted);font-size:.7rem;opacity:0;transition:var(--transition-fast);padding:.1rem;user-select:none}.goal-milestone-item:hover .milestone-drag-handle-card{opacity:.6}.milestone-drag-handle-card:hover{opacity:1!important;color:var(--accent)}.milestone-drag-handle-card:active{cursor:grabbing}.milestone-toggle{width:14px;height:14px;cursor:pointer;accent-color:var(--accent);flex-shrink:0}.milestone-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.milestone-due-badge{font-size:.6rem;padding:.1rem .35rem;border-radius:var(--radius-sm);font-weight:600;white-space:nowrap;letter-spacing:-.01em}.milestone-due-badge.overdue{background:#ef444426;color:#ef4444}.milestone-due-badge.due-soon{background:#f59e0b26;color:#f59e0b}.milestone-due-badge.due-future{background:var(--bg-hover);color:var(--text-muted)}.goal-progress-text{font-size:.7rem;color:var(--text-muted);margin-top:.5rem;font-weight:600}.goal-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.2rem;opacity:0;transition:var(--transition-fast);font-size:.75rem}.goal-item:hover .goal-delete{opacity:1}.goal-delete:hover{color:var(--weekend)}.empty-goals{text-align:center;padding:1.5rem;color:var(--text-muted);font-size:.8rem}.quarter-progress{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-subtle)}.quarter-progress-bar{flex:1;height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.quarter-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.quarter-progress-text{font-size:.7rem;font-weight:700;color:var(--text-muted);min-width:35px;text-align:right}.all-events-panel{display:none;max-width:550px;margin:0 auto;padding:0 1.5rem 5rem}.all-events-panel.active{display:block}.all-events-list{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.event-group{margin-bottom:1.25rem}.event-group:last-child{margin-bottom:0}.event-group-header{font-size:1rem;font-weight:700;color:var(--accent);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.empty-state{text-align:center;padding:2.5rem;color:var(--text-muted)}.empty-state p{font-size:.85rem;font-weight:500}.modal-overlay{display:none;position:fixed;inset:0;background:#000c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center;padding:1.5rem}.modal-overlay.active{display:flex}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;width:100%;max-width:380px;max-height:90vh;overflow-y:auto;animation:modalReveal .2s ease}@keyframes modalReveal{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:1.25rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.4rem;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem .875rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-main);font-size:.85rem;font-weight:500;transition:var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center}.form-group textarea{resize:vertical;min-height:70px}.goal-modal-hint{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-md);font-size:.8rem;color:var(--text-secondary)}.goal-modal-hint .hint-icon{font-size:1rem}.btn-group{display:flex;gap:.6rem;margin-top:1.25rem}.btn{flex:1;padding:.75rem 1.25rem;border-radius:var(--radius-md);font-family:var(--font-main);font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);border:none;-webkit-tap-highlight-color:transparent}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{opacity:.9}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text-primary)}.milestone-editor-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:var(--transition-fast)}.milestone-editor-overlay.active{opacity:1;visibility:visible}.milestone-editor{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;width:90%;max-width:360px;box-shadow:var(--shadow),0 0 0 1px #ffffff0d;transform:scale(.95) translateY(10px);transition:var(--transition-smooth)}.milestone-editor-overlay.active .milestone-editor{transform:scale(1) translateY(0)}.milestone-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.milestone-editor-title{font-size:.9rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.milestone-editor-title:before{content:"◆";color:var(--accent);font-size:.7rem}.milestone-editor-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;font-size:1rem;line-height:1;transition:var(--transition-fast);border-radius:var(--radius-sm)}.milestone-editor-close:hover{color:var(--text-primary);background:var(--bg-hover)}.milestone-editor-field{margin-bottom:1rem}.milestone-editor-label{display:block;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.milestone-editor-input{width:100%;padding:.65rem .85rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-main);font-size:.85rem;transition:var(--transition-fast)}.milestone-editor-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.milestone-editor-input::placeholder{color:var(--text-muted)}.milestone-editor-actions{display:flex;gap:.5rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.milestone-editor-btn{flex:1;padding:.6rem 1rem;border-radius:var(--radius-md);font-family:var(--font-main);font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--transition-fast)}.milestone-editor-btn.primary{background:var(--accent);border:none;color:#000}.milestone-editor-btn.primary:hover{filter:brightness(1.1)}.milestone-editor-btn.secondary{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary)}.milestone-editor-btn.secondary:hover{border-color:var(--text-muted);color:var(--text-primary)}.milestone-editor-btn.danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;flex:0 0 auto;padding:.6rem}.milestone-editor-btn.danger:hover{background:#ef444433;border-color:#ef4444}.action-buttons{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;gap:.5rem;z-index:100}.action-btn{display:flex;align-items:center;gap:.4rem;padding:.75rem 1rem;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-main);font-size:.7rem;font-weight:700;border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-smooth);box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent}.action-btn:hover{border-color:var(--accent-border);color:var(--text-primary)}.action-btn:active{transform:scale(.98)}.action-btn.save-btn{border-color:var(--accent-border);color:var(--accent)}.action-btn.save-btn:hover,.action-btn.save-btn.has-changes{background:var(--accent);color:#000}.toast{position:fixed;bottom:4rem;left:50%;transform:translate(-50%) translateY(10px);background:var(--success);color:#000;padding:.75rem 1.25rem;border-radius:var(--radius-md);font-size:.8rem;font-weight:600;opacity:0;transition:var(--transition-smooth);z-index:1001;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.auth-overlay{position:fixed;inset:0;background:var(--bg-base);z-index:9999;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-overlay.hidden{display:none}.auth-container{text-align:center;max-width:380px;width:100%}.auth-logo h1{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:.25rem}.auth-logo h1 span{color:var(--accent)}.auth-subtitle{font-size:.9rem;color:var(--text-muted);margin-bottom:2.5rem}.auth-step{animation:fadeIn .3s ease}.auth-step.hidden{display:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-label{text-align:left;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:-.5rem}.auth-input{width:100%;padding:1rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-family:var(--font-main);font-size:1rem;transition:var(--transition-smooth)}.auth-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.auth-input::placeholder{color:var(--text-muted)}.auth-input.auth-otp{font-size:1.75rem;letter-spacing:.75rem;text-align:center;font-family:SF Mono,Monaco,Inconsolata,monospace;padding:1.25rem}.auth-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem 1.5rem;background:var(--accent);border:none;border-radius:var(--radius-lg);color:#000;font-family:var(--font-main);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition-smooth)}.auth-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.auth-btn:active{transform:translateY(0)}.auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-btn-icon{font-size:1.1rem}.auth-link-btn{background:none;border:none;color:var(--text-muted);font-family:var(--font-main);font-size:.85rem;cursor:pointer;padding:.5rem;transition:var(--transition-fast)}.auth-link-btn:hover{color:var(--accent)}.auth-info{font-size:.9rem;color:var(--text-secondary);margin-bottom:.25rem}.auth-email-display{font-size:1rem;font-weight:600;color:var(--accent);margin-bottom:1.5rem}.auth-spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.auth-loading-text{color:var(--text-muted);font-size:.9rem}.user-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-main);font-size:.7rem;font-weight:700;transition:var(--transition-smooth);margin-right:.5rem;box-shadow:var(--shadow)}.user-btn:hover{border-color:var(--accent-border);color:var(--text-primary)}.user-btn:hover .user-logout{color:var(--weekend)}.user-email{font-size:.7rem;font-weight:600;color:var(--text-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-logout{font-size:.7rem;font-weight:700;color:var(--text-muted);transition:var(--transition-fast)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media(max-width:768px){.header{padding:3rem 1rem 1rem}.header-top{top:.75rem;right:.75rem}.theme-toggle{padding:.4rem .75rem;font-size:.7rem}.stats{gap:1.5rem;padding:.75rem}.stat-value{font-size:1.5rem}.quarter-nav{gap:.25rem}.quarter-btn{padding:.5rem .75rem;font-size:.7rem}.year-container{grid-template-columns:1fr;gap:.75rem;padding:0 1rem 5rem}.month-card{padding:1rem}.compact-day{width:26px;height:26px;font-size:.65rem}.compact-day .day-letter{font-size:.4rem}.compact-header-row th{font-size:.55rem;min-width:26px}.action-buttons{bottom:1rem;right:1rem}.action-btn{padding:.6rem .8rem;font-size:.65rem}.modal{padding:1.5rem}}@media(max-width:480px){.header h1{font-size:1.75rem}.stats{gap:1rem}.stat-value{font-size:1.25rem}.stat-label{font-size:.55rem}.quarter-btn{padding:.45rem .6rem;font-size:.65rem}.compact-legend{gap:.75rem;padding:.75rem}.legend-item{font-size:.6rem}.legend-dot{width:16px;height:16px}.user-email{display:none}.user-btn{padding:.5rem .6rem;font-size:.65rem}}@media(hover:none)and (pointer:coarse){.day-cell:hover:not(.empty){background:transparent;color:var(--text-secondary)}.day-cell.weekend:hover{color:var(--weekend)}.day-cell.has-event:hover{background:var(--accent-dim);color:var(--accent)}.day-cell.today:hover{background:var(--accent);color:#000}.compact-day:hover:not(.empty){transform:none;border-color:transparent}.compact-day.has-event:hover{border-color:var(--accent-border)}.event-delete{opacity:1}.compact-day .tooltip{display:none!important}}@media(max-width:768px){body{overscroll-behavior-y:contain}}@media print{.action-buttons,.toast,.search-box,.theme-toggle{display:none!important}body{background:#fff;color:#000}.month-card{break-inside:avoid;border:1px solid #ccc}}
