:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#fff;--surface-muted:#f4f5f7;--background:#f7f8fa;--border:#dcdfe5;--text:#16181d;--text-muted:#5c6270;--accent:#2f7dd1;--accent-contrast:#fff;--danger:#c0392b;--danger-surface:#fdecea;--radius:10px;--space:16px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#1b1e25;--surface-muted:#23272f;--background:#12141a;--border:#333844;--text:#eef0f4;--text-muted:#9aa1b1;--accent:#5aa2ea;--accent-contrast:#0d1016;--danger:#ff8a7a;--danger-surface:#3a1f1c}*{box-sizing:border-box}body{background:var(--background);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}.app-shell{max-width:960px;padding:var(--space);margin:0 auto}.app-header{gap:var(--space);padding-bottom:var(--space);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;display:flex}.app-header h1{margin:0;font-size:1.35rem}.app-header nav{flex:1;gap:12px;display:flex}.app-header button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;padding:6px 12px}.nav-link{color:var(--text-muted);border-bottom:2px solid #0000;padding:4px 2px;text-decoration:none}.nav-link.is-active{color:var(--text);border-bottom-color:var(--accent)}main{padding-top:var(--space)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space);margin-bottom:var(--space)}.panel h2{margin-top:0;font-size:1.05rem}.api-error,.section-error{background:var(--danger-surface);border:1px solid var(--danger);border-radius:var(--radius);padding:var(--space);color:var(--text)}.api-error h2,.section-error h2{color:var(--danger);margin-top:0;font-size:1rem}.api-error-code{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.api-error button{border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);cursor:pointer;font:inherit;background:0 0;padding:6px 12px}a{color:var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#1b1e25;--surface-muted:#23272f;--background:#12141a;--border:#333844;--text:#eef0f4;--text-muted:#9aa1b1;--accent:#5aa2ea;--accent-contrast:#0d1016;--danger:#ff8a7a;--danger-surface:#3a1f1c}}.panel-header{justify-content:space-between;align-items:baseline;gap:var(--space);display:flex}.panel-header span{color:var(--text-muted);font-size:.9rem}.habit-list{margin:0;padding:0;list-style:none}.habit-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.habit-row:last-child{border-bottom:none}.habit-row.is-completed .habit-title{color:var(--text-muted);text-decoration:line-through}.habit-row.is-skeleton{background:linear-gradient(90deg, var(--surface-muted), var(--border), var(--surface-muted));border-radius:var(--radius);border-bottom:none;height:42px;margin-bottom:8px}.habit-toggle{cursor:pointer;align-items:center;gap:10px;display:flex}.habit-toggle input{width:18px;height:18px;accent-color:var(--accent)}.habit-meta{color:var(--text-muted);font-size:.85rem}.empty-state{padding:var(--space) 0;color:var(--text-muted)}.empty-state h3{color:var(--text);margin:0 0 4px;font-size:1rem}.habit-actions{gap:8px;display:flex}.habit-actions button,.primary-action,.form-actions button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;padding:5px 10px;font-size:.85rem}.primary-action,.form-actions button[type=submit]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);padding:8px 14px;font-size:.9rem}.primary-action{margin-top:var(--space)}button:disabled{opacity:.6;cursor:progress}.habit-form{margin-top:var(--space);padding-top:var(--space);border-top:1px solid var(--border);flex-direction:column;gap:10px;display:flex}.habit-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.habit-form input,.habit-form textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text);font:inherit;padding:8px 10px;font-size:.95rem}.habit-form input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);margin:0;font-size:.85rem}.form-actions{gap:8px;display:flex}.stats-grid{gap:var(--space);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:0;display:grid}.stats-grid dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.stats-grid dd{margin:4px 0 0;font-size:1.5rem;font-weight:600}.panel-placeholder,.panel-caption{color:var(--text-muted);margin:0;font-size:.9rem}.panel-caption{margin-top:10px}.radar{width:100%;max-width:300px;height:auto}.radar-ring,.radar-axis{fill:none;stroke:var(--border);stroke-width:1px}.radar-label{fill:var(--text-muted);font-size:11px}.radar-area{fill:color-mix(in srgb, var(--accent) 35%, transparent);stroke:var(--accent);stroke-width:2px}.contribution{gap:3px;padding-bottom:4px;display:flex;overflow-x:auto}.contribution-week{grid-template-rows:repeat(7,12px);gap:3px;display:grid}.contribution-day{background:var(--surface-muted);border-radius:3px;width:12px;height:12px}.contribution-day.level-1{background:color-mix(in srgb, var(--accent) 30%, var(--surface-muted))}.contribution-day.level-2{background:color-mix(in srgb, var(--accent) 55%, var(--surface-muted))}.contribution-day.level-3{background:color-mix(in srgb, var(--accent) 78%, var(--surface-muted))}.contribution-day.level-4{background:var(--accent)}.auth-page{max-width:380px;padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:10vh auto}.auth-page h1{margin:0 0 4px;font-size:1.4rem}.auth-page>p{margin:0 0 var(--space);color:var(--text-muted);font-size:.9rem}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.auth-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text);font:inherit;padding:8px 10px;font-size:.95rem}.auth-form input[aria-invalid=true]{border-color:var(--danger)}.auth-form p[role=alert]{color:var(--danger);margin:0;font-size:.8rem}
