.alert-bell{position:relative}.alert-bell-btn{position:relative;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.4rem .6rem;font-size:1.1rem;cursor:pointer;color:var(--color-text-primary)}.alert-bell-btn:hover{border-color:var(--color-accent)}.alert-badge{position:absolute;top:-8px;right:-8px;background:var(--color-error);color:#fff;font-size:.7rem;font-weight:700;min-width:20px;height:20px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 5px}.alert-dropdown{position:absolute;right:0;top:calc(100% + .5rem);width:360px;max-width:90vw;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden}.alert-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.alert-mark-all{font-size:.75rem;padding:.25rem .5rem}.alert-list{max-height:400px;overflow-y:auto}.alert-empty{padding:1.5rem;text-align:center;color:var(--color-text-muted);font-size:.875rem}.alert-item{display:flex;gap:.6rem;align-items:flex-start;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--color-border);padding:.75rem 1rem;cursor:pointer;color:var(--color-text-primary)}.alert-item:hover{background:var(--color-bg-secondary)}.alert-item.unread{background:#4ade800f}.alert-icon{font-size:1.2rem;flex-shrink:0}.alert-text{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.alert-title{font-size:.875rem;font-weight:600}.alert-body{font-size:.8rem;color:var(--color-text-secondary)}.alert-time{font-size:.7rem;color:var(--color-text-muted)}.alert-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-accent);flex-shrink:0;margin-top:.4rem}.weight-form{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.weight-form h3{font-size:1rem;font-weight:500;color:var(--color-text-secondary);margin:0}.btn-toggle-advanced{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;transition:all .2s}.btn-toggle-advanced:hover{border-color:var(--color-accent);color:var(--color-accent)}.form-row{display:flex;gap:1rem;align-items:flex-end}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group.flex-1{flex:1}.input-group label{font-size:.875rem;color:var(--color-text-muted)}.input-with-unit{position:relative;display:flex;align-items:center}.input-with-unit input{padding-right:3rem}.input-with-unit .unit{position:absolute;right:1rem;color:var(--color-text-muted);font-family:var(--font-mono);font-size:.875rem}.weight-form input{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem;color:var(--color-text-primary);font-size:1rem;width:100%;transition:border-color .2s,box-shadow .2s}.weight-form input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #4ade801a}.weight-form input::placeholder{color:var(--color-text-muted)}.btn-submit{background:var(--color-accent);color:var(--color-bg-primary);border:none;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:1rem;font-weight:600;transition:background .2s,transform .1s;white-space:nowrap}.btn-submit:hover:not(:disabled){background:var(--color-accent-hover)}.btn-submit:active:not(:disabled){transform:scale(.98)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.error-message{color:var(--color-error);font-size:.875rem;margin-top:.75rem}.advanced-row{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.pace-auto-hint{font-size:.75rem;color:var(--color-text-muted)}.session-hint{margin-top:.75rem;font-size:.8rem;color:var(--color-text-muted)}@media (max-width: 768px){.form-row{flex-direction:column;align-items:stretch}.btn-submit{width:100%}}.like-btn{display:inline-flex;align-items:center;gap:.25rem;background:transparent;border:none;cursor:pointer;padding:.25rem .4rem;border-radius:var(--radius-sm);font-size:1rem;line-height:1;color:var(--color-text-muted);transition:transform .15s,background .2s}.like-btn:hover{background:#ef44441a;transform:scale(1.05)}.like-btn:disabled{opacity:.6;cursor:default}.like-btn .like-icon{font-size:1.05rem;filter:grayscale(1);opacity:.6;transition:filter .15s,opacity .15s,transform .15s}.like-btn.liked .like-icon{filter:none;opacity:1;transform:scale(1.1)}.like-btn.liked .like-count{color:var(--color-text-primary);font-weight:600}.like-btn .like-count{font-size:.85rem;color:var(--color-text-secondary)}.weight-history{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.weight-history h3{font-size:1rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:1rem}.history-list{display:flex;flex-direction:column;gap:.5rem}.history-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-bg-secondary);border-radius:var(--radius-md);transition:background .2s;opacity:0}.history-item:hover{background:var(--color-bg-tertiary)}.history-main{display:flex;flex-direction:column;gap:.25rem;min-width:150px}.history-weight{font-size:1.125rem;font-weight:600;font-family:var(--font-mono);color:var(--color-text-primary)}.history-unit{font-size:.875rem;color:var(--color-text-muted)}.history-date{font-size:.75rem;color:var(--color-text-muted)}.history-meta{flex:1;display:flex;align-items:center;gap:.75rem}.history-notes{font-size:.875rem;color:var(--color-text-secondary);font-style:italic}.history-delete{background:transparent;border:none;color:var(--color-text-muted);font-size:1.25rem;padding:.25rem .5rem;border-radius:var(--radius-sm);opacity:0;transition:all .2s}.history-item:hover .history-delete{opacity:1}.history-delete:hover{color:var(--color-error);background:#ef44441a}.goal-chart{margin-top:.75rem}.goal-chart svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--color-border);stroke-width:1;opacity:.6}.chart-tick{fill:var(--color-text-muted);font-size:11px;font-family:var(--font-mono)}.chart-target{stroke:var(--color-text-muted);stroke-width:1;opacity:.5}.chart-ideal{stroke:var(--color-text-muted);stroke-width:1.5;opacity:.8}.chart-today{stroke:var(--color-warning);stroke-width:1;opacity:.7}.chart-area{fill:#4ade801f;stroke:none}.chart-line{fill:none;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.chart-line.ahead{stroke:var(--color-accent)}.chart-line.behind{stroke:var(--color-warning)}.chart-dot.ahead{fill:var(--color-accent)}.chart-dot.behind{fill:var(--color-warning)}.chart-legend{display:flex;gap:1rem;align-items:center;font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.chart-legend .sw{display:inline-block;width:18px;height:2px;border-radius:2px;margin-right:.3rem;vertical-align:middle}.chart-legend .sw.actual{background:var(--color-accent)}.chart-legend .sw.ideal{background:var(--color-text-muted)}.goal-sparkline{width:100%;height:40px;display:block;margin-top:.5rem}.goal-sparkline .spark-ideal{stroke:var(--color-text-muted);stroke-width:1;opacity:.6;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.goal-sparkline .spark-area{fill:#4ade8026;stroke:none}.goal-sparkline .spark-line{fill:none;stroke:var(--color-accent);stroke-width:1.5;vector-effect:non-scaling-stroke}.goal-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;transition:border-color .2s;position:relative;overflow:hidden}.goal-card:hover{border-color:var(--color-accent)}.goal-card.overdue{border-color:var(--color-error)}.goal-card.completed{border-color:var(--color-accent)}.goal-success-banner{position:absolute;top:0;left:0;right:0;background:var(--color-accent);color:var(--color-bg-primary);font-weight:700;font-size:.85rem;text-align:center;padding:.25rem;letter-spacing:.03em}.goal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.goal-type-badge{background:var(--color-accent-muted);color:var(--color-accent);padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.goal-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.goal-card:hover .goal-actions{opacity:1}.goal-actions button{background:transparent;border:none;color:var(--color-text-muted);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:1.2rem}.goal-actions button:hover{color:var(--color-error);background:#ef44441a}.goal-main{margin-bottom:1rem}.goal-target{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;justify-content:space-between}.target-label{font-size:1rem;color:var(--color-text-secondary)}.target-weight{font-size:1.5rem;font-weight:600;font-family:var(--font-mono);color:var(--color-text-primary)}.goal-progress{margin-bottom:1rem}.progress-bar{height:8px;background:var(--color-bg-secondary);border-radius:var(--radius-full);overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width .3s ease}.progress-stats{display:flex;justify-content:space-between;font-size:.875rem;color:var(--color-text-muted)}.goal-footer{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--color-text-muted);padding-top:.75rem;border-top:1px solid var(--color-border)}.goal-deadline{font-weight:500}.goal-deadline.warning{color:var(--color-warning)}.goal-deadline.overdue{color:var(--color-error)}.stats-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;opacity:0}.stats-label{font-size:.875rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.stats-value-container{display:flex;align-items:baseline;gap:.5rem}.stats-value{font-size:2rem;font-weight:600;font-family:var(--font-mono);color:var(--color-text-primary)}.stats-unit{font-size:1rem;color:var(--color-text-muted);font-family:var(--font-mono)}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:500;padding:1rem}.celebration-card{background:var(--color-bg-card);border:1px solid var(--color-accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);padding:2.5rem 3rem;text-align:center;max-width:420px}.celebration-card h2{margin:.5rem 0;color:var(--color-accent)}.celebration-card p{color:var(--color-text-secondary);margin-bottom:1.5rem}.celebration-trophy{font-size:3rem;display:block}.dashboard{padding-bottom:3rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;margin-top:1.5rem;flex-wrap:wrap;gap:1rem}.dashboard-header h1{font-size:1.75rem;font-weight:600;color:var(--color-text-primary)}.time-range-selector{display:flex;gap:.5rem;background:var(--color-bg-secondary);padding:.25rem;border-radius:var(--radius-md)}.range-btn{background:transparent;border:none;color:var(--color-text-muted);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;transition:all .2s}.range-btn:hover{color:var(--color-text-secondary)}.range-btn.active{background:var(--color-accent);color:var(--color-bg-primary);font-weight:500}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.loading-state{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.125rem;color:var(--color-text-muted)}.goals-section{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.goals-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.goals-header h3{font-size:1rem;font-weight:500;color:var(--color-text-secondary);margin:0}.goals-actions{display:flex;align-items:center;gap:1rem}.show-all-toggle{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--color-text-muted);cursor:pointer}.btn-add-goal{background:var(--color-accent);color:var(--color-bg-primary);border:none;padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;text-decoration:none}.btn-add-goal:hover{background:var(--color-accent-hover)}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.goals-grid .goal-card{margin-bottom:0}.goals-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.goals-empty a,.goals-empty button{color:var(--color-accent);background:none;border:none;font-size:1rem;cursor:pointer}@media (max-width: 768px){.dashboard-header{flex-direction:column;align-items:flex-start}.time-range-selector{width:100%;overflow-x:auto}}.goal-detail{padding-bottom:3rem;margin-top:1.5rem}.goal-detail-header{display:flex;justify-content:space-between;align-items:center;margin:1rem 0}.goal-detail-header h1{font-size:1.75rem}.goal-summary{padding:1.5rem;margin-bottom:1rem}.goal-summary p{font-size:1.1rem;margin-bottom:.75rem}.goal-period{display:block;margin-top:.75rem;color:var(--color-text-muted);font-size:.85rem}.included-info{padding:1rem 1.5rem;margin-bottom:1.5rem;border-style:dashed}.included-info p{color:var(--color-text-secondary);font-size:.9rem;margin:0}.goal-detail h3{color:var(--color-text-secondary);font-weight:500;margin:1.5rem 0 1rem}:root{--color-bg-primary: #0a0f0d;--color-bg-secondary: #141a17;--color-bg-tertiary: #1e2622;--color-bg-card: #1a211d;--color-accent: #4ade80;--color-accent-hover: #22c55e;--color-accent-muted: #166534;--color-text-primary: #f0fdf4;--color-text-secondary: #a3b8a8;--color-text-muted: #6b7c6f;--color-border: #2d3a32;--color-border-focus: #4ade80;--color-error: #ef4444;--color-success: #4ade80;--color-warning: #fbbf24;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(74, 222, 128, .15);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--font-sans: "Outfit", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--text-muted: var(--color-text-muted);--primary: var(--color-accent);--border: var(--color-border)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 20%,rgba(74,222,128,.03) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(74,222,128,.02) 0%,transparent 50%);pointer-events:none;z-index:-1}#root{min-height:100vh}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-hover)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.container-narrow{max-width:420px;margin:0 auto;padding:0 1.5rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease-out forwards}.animate-slide-up{animation:slideUp .5s ease-out forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.nav-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;width:100%;display:flex;justify-content:space-between;align-items:center}.nav-brand{font-weight:600;font-size:1.25rem;color:var(--color-accent);display:flex;align-items:center;gap:.5rem}.form-group{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;color:var(--color-text-muted)}.form-group input,.form-group select,.form-group textarea{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem;color:var(--color-text-primary);font-size:1rem;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #4ade801a}.btn{padding:.5rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;text-decoration:none;display:inline-block;background:transparent;color:var(--color-text-secondary);transition:all .2s}.btn-primary{background:var(--color-accent);color:var(--color-bg-primary);border-color:var(--color-accent);font-weight:600}.btn-primary:hover{background:var(--color-accent-hover)}.btn-ghost{background:transparent}.btn-ghost:hover{border-color:var(--color-error);color:var(--color-error)}.error-msg{color:var(--color-error);font-size:.875rem;margin-top:.75rem}.progress{height:8px;background:var(--color-bg-secondary);border-radius:var(--radius-full);overflow:hidden}.progress>div{height:100%;background:var(--color-accent);border-radius:var(--radius-full);transition:width .3s ease}.goal-card{padding:1.25rem;margin-bottom:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.9rem}th{color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.auth-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;margin-top:3rem}.auth-card h1{margin-bottom:1.5rem}.auth-links{margin-top:1rem;display:flex;gap:1rem;font-size:.875rem}
