.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:3.5rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-left{display:flex;align-items:center}.logo{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.05rem;letter-spacing:-.02em;color:#a78bfa}.header-right{display:flex;align-items:center}.nav{display:flex;gap:.25rem}.nav-btn{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:#ffffff80;padding:.45rem .85rem;border-radius:.5rem;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.nav-btn:hover{color:#ffffffd9;background:#ffffff0d}.nav-active{color:#a78bfa;background:#a78bfa1a}.nav-btn span{display:inline}@media(max-width:640px){.nav-btn span{display:none}.app-header{padding:0 1rem}.header-left .logo span{display:none}}.btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1rem;border:none;border-radius:.5rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:#7c3aed;color:#fff}.btn-primary:hover:not(:disabled){background:#6d28d9}.btn-ghost{background:#ffffff0f;color:#ffffffb3}.btn-ghost:hover{background:#ffffff1a;color:#fff}.btn-sm{padding:.35rem .7rem;font-size:.78rem}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:.4rem;background:none;color:#fff6;cursor:pointer;transition:all .15s ease}.btn-icon:hover{background:#ffffff14;color:#fffc}.btn-delete:hover{color:#f87171;background:#f871711a}.main{flex:1;padding:1.5rem;max-width:68rem;width:100%;margin:0 auto}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.stat-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.35rem}.stat-icon{opacity:.8}.stat-value{font-size:1.65rem;font-weight:700;letter-spacing:-.03em;line-height:1}.stat-label{font-size:.72rem;color:#ffffff73;text-transform:uppercase;letter-spacing:.06em;font-weight:500}@media(max-width:640px){.stats-row{grid-template-columns:repeat(2,1fr)}}.section{margin-bottom:2rem}.section-title{font-size:.85rem;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.08em;margin:0 0 1rem}.muted{color:#fff6;font-size:.9rem}.empty-state{text-align:center;padding:3rem 1rem}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:50%;background:#7c3aed1f;color:#a78bfa;margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.empty-state p{margin:0 0 1.5rem;color:#ffffff73;font-size:.9rem;max-width:26rem;margin-left:auto;margin-right:auto}.timeline{display:flex;flex-direction:column;gap:.35rem}.timeline-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:.6rem;background:#ffffff06;border:1px solid rgba(255,255,255,.04);transition:all .15s ease}.timeline-done{opacity:.45}.timeline-due{border-color:#eab30840;background:#eab3080a}.timeline-time{font-size:.78rem;font-weight:600;color:#ffffff80;min-width:2.8rem;font-variant-numeric:tabular-nums}.timeline-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.timeline-content{flex:1;display:flex;flex-direction:column;min-width:0}.timeline-title{font-size:.88rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-goal{font-size:.72rem;color:#ffffff59}.timeline-duration{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:#ffffff4d;flex-shrink:0}.goals-list{display:flex;flex-direction:column;gap:.75rem}.goal-card{background:#ffffff06;border:1px solid rgba(255,255,255,.06);border-radius:.75rem;overflow:hidden;transition:border-color .15s ease}.goal-card:hover{border-color:#ffffff1a}.goal-done{border-color:#22c55e40}.goal-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.goal-header-left{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.goal-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.goal-title{margin:0;font-size:.95rem;font-weight:600}.goal-meta{font-size:.72rem;color:#ffffff59}.goal-header-right{display:flex;align-items:center;gap:.5rem}.goal-progress-ring{position:relative;width:2.5rem;height:2.5rem}.goal-progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#ffffffb3}.goal-steps{border-top:1px solid rgba(255,255,255,.04);padding:.4rem 0}.step-row{display:flex;align-items:center;gap:.65rem;padding:.5rem 1rem;width:100%;background:none;border:none;cursor:pointer;color:#ffffffd9;font-family:inherit;font-size:.85rem;text-align:left;transition:background .1s ease}.step-row:hover{background:#ffffff08}.step-done{opacity:.5}.step-done .step-title{text-decoration:line-through}.step-check{width:1.2rem;height:1.2rem;border:1.5px solid rgba(255,255,255,.2);border-radius:.25rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.step-check-done{color:#fff;border-color:transparent}.step-title{flex:1}.step-time{display:flex;align-items:center;gap:.25rem;font-size:.72rem;color:#ffffff4d}.goal-complete-banner{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem;margin:.35rem 1rem .5rem;border-radius:.5rem;background:#22c55e1a;color:#4ade80;font-size:.85rem;font-weight:600}.schedule-view{display:flex;flex-direction:column;gap:1.5rem}.schedule-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.free-time-setting label{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:#ffffff80}.time-inputs{display:flex;align-items:center;gap:.4rem;margin-left:.35rem}.time-inputs span{color:#ffffff4d;font-size:.78rem}.input-sm{padding:.3rem .5rem;font-size:.78rem}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}@media(max-width:768px){.week-grid{grid-template-columns:repeat(3,1fr)}}.day-column{background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:.65rem;min-height:10rem;overflow:hidden}.day-today{border-color:#7c3aed4d;background:#7c3aed0a}.day-header{display:flex;justify-content:space-between;align-items:baseline;padding:.55rem .65rem;border-bottom:1px solid rgba(255,255,255,.04)}.day-name{font-size:.72rem;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.06em}.day-date{font-size:.85rem;font-weight:700;color:#ffffffb3}.day-slots{padding:.4rem;display:flex;flex-direction:column;gap:.3rem}.day-empty{text-align:center;padding:1.5rem .5rem;color:#ffffff26;font-size:.75rem;font-style:italic}.slot-card{padding:.4rem .5rem;border-radius:.35rem;background:#ffffff0a;border-left:3px solid transparent;display:flex;flex-direction:column;gap:.1rem}.slot-done{opacity:.4}.slot-time{font-size:.65rem;color:#ffffff59;font-variant-numeric:tabular-nums}.slot-title{font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-goal{font-size:.62rem;color:#ffffff40;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-view{display:flex;flex-direction:column;gap:1.5rem}.progress-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}@media(max-width:640px){.progress-summary{grid-template-columns:1fr}}.big-stat{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:.75rem;padding:1.25rem;text-align:center}.big-stat-value{display:block;font-size:2rem;font-weight:700;letter-spacing:-.03em;color:#a78bfa}.big-stat-label{font-size:.72rem;color:#fff6;text-transform:uppercase;letter-spacing:.06em;font-weight:500}.heatmap{display:flex;gap:.35rem;flex-wrap:wrap}.heatmap-cell-wrap{display:flex;flex-direction:column;align-items:center;gap:.25rem}.heatmap-cell{width:2rem;height:2rem;border-radius:.35rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.04);transition:all .15s ease}.heatmap-active{background:#7c3aed80;border-color:#7c3aed99}.heatmap-label{font-size:.6rem;color:#ffffff40}.progress-bar-row{margin-bottom:.75rem}.progress-bar-info{display:flex;justify-content:space-between;margin-bottom:.3rem}.progress-bar-name{font-size:.82rem;font-weight:500}.progress-bar-pct{font-size:.75rem;color:#ffffff73;font-variant-numeric:tabular-nums}.progress-bar-track{height:.5rem;border-radius:.25rem;background:#ffffff0f;overflow:hidden}.progress-bar-fill{height:100%;border-radius:.25rem;transition:width .4s ease;min-width:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .15s ease}.modal-card{background:#161618;border:1px solid rgba(255,255,255,.08);border-radius:.85rem;padding:1.5rem;width:100%;max-width:28rem;animation:slideUp .2s ease}.modal-card h2{margin:0 0 1.25rem;font-size:1.15rem;font-weight:600}.modal-card form{display:flex;flex-direction:column;gap:1rem}.modal-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;color:#ffffff8c;font-weight:500}.input{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:.5rem;padding:.6rem .75rem;color:#fff;font-family:inherit;font-size:.88rem;outline:none;transition:border-color .15s ease}.input:focus{border-color:#7c3aed80}.input::placeholder{color:#fff3}.textarea{resize:vertical;min-height:3.5rem}.category-chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{padding:.3rem .65rem;border-radius:1rem;border:1px solid rgba(255,255,255,.1);background:none;color:#ffffff80;font-size:.78rem;cursor:pointer;transition:all .15s ease;font-family:inherit}.chip:hover{border-color:#fff3;color:#fffc}.chip-active{background:#7c3aed26;border-color:#7c3aed66;color:#a78bfa}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease}.celebration-card{background:#161618;border:1px solid rgba(124,58,237,.3);border-radius:1rem;padding:2rem 2.5rem;text-align:center;animation:celebrateIn .4s cubic-bezier(.34,1.56,.64,1);position:relative}.celebration-sparkles{display:flex;justify-content:center;gap:.75rem;color:#a78bfa;margin-bottom:.5rem;animation:sparkle 1s ease infinite alternate}.celebration-emoji{font-size:3rem;margin-bottom:.5rem}.celebration-card h2{margin:0 0 .35rem;font-size:1.15rem;font-weight:700;color:#a78bfa}.celebration-card p{margin:0;color:#ffffff73;font-size:.85rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes celebrateIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sparkle{0%{transform:scale(1)}to{transform:scale(1.15)}}:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:#0a0a0a;color:#fafafa}
