@charset "UTF-8";
:root { --ink:#2c3e50; --muted:#74808b; --forest:#a52a2a; --forest-light:#f7ebeb; --paper:#fff; --white:#fff; --line:#e4e8df; --yellow:#d4db97; --danger:#a34535; --radius:16px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); background:var(--paper); font-size:14px; }
* { box-sizing:border-box; }
body { margin:0; line-height:1.55; }
button,input,select,textarea { font:inherit; }
a { color:var(--forest); text-decoration:none; }
a:hover { text-decoration:underline; }
button,summary { cursor:pointer; }
button { color:inherit; }
button:disabled,input:disabled { opacity:.55; cursor:wait; }
button, input, select, textarea, summary, a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #bb882e; outline-offset:4px; }
[hidden] { display:none !important; }
h1,h2,h3,h4,p { margin:0; }
button { border:0; background:none; }
.icon { width:19px; height:19px; flex-shrink:0; vertical-align:middle; }
.muted { color:var(--muted); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link { position:fixed; left:12px; top:-100px; z-index:100; padding:12px; background:var(--white); }
.skip-link:focus { top:12px; }
.app-shell { min-height:100dvh; }
.app-navbar { background:#f8f9fa; border-bottom:1px solid #e5e8eb; }
.navbar-inner { max-width:1440px; padding:15px 36px; margin:auto; display:flex; align-items:center; gap:40px; }
.brand { font-size:22px; font-weight:600; letter-spacing:-.6px; color:#2c3e50; }
.main-nav { display:flex; align-items:center; gap:22px; }
.nav-item { font-size:12px; color:#6b7681; }
.nav-item.is-current { color:#a52a2a; font-weight:600; }
.navbar-account { margin-left:auto; display:flex; align-items:center; gap:25px; }
.score-total { display:flex; align-items:center; gap:6px; color:#28674c; }
.score-total strong { font-size:14px; font-weight:550; }
.score-total .icon { width:15px; height:15px; }
.account-menu { position:relative; }
.account-menu summary { display:flex; align-items:center; gap:9px; list-style:none; }
.account-menu summary strong { font-size:12px; font-weight:500; }
.account-menu summary .icon { width:14px; }
.avatar { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#e7ebef; font-size:12px; color:#617185; }
.account-links { position:absolute; top:43px; right:0; width:180px; background:white; padding:18px; border:1px solid #e4e8ec; border-radius:10px; box-shadow:0 8px 24px #24344812; z-index:20; display:grid; gap:12px; font-size:12px; }
.main-content { min-width:0; padding:0 36px 28px; max-width:1440px; margin:0 auto; }
.topbar { height:64px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); gap:16px; font-size:11px; }
.breadcrumb { color:var(--muted); }
.breadcrumb-separator { color:#b7c1b4; margin:0 14px; }
.topbar strong { font-weight:500; }
.topbar-date { color:var(--muted); }
.dashboard-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr); gap:32px; align-items:start; }
.workspace { padding-top:24px; position:relative; min-width:0; }
.eyebrow { display:block; font-size:9px; font-weight:700; letter-spacing:1.5px; color:#92989e; }
.workspace-heading h1 { font-weight:500; font-size:30px; line-height:1.18; letter-spacing:-1.3px; margin:12px 0; }
.workspace-heading h1 span { color:var(--forest); }
.workspace-heading p { color:var(--muted); font-size:12px; }
.progress-overview { display:flex; flex-wrap:wrap; margin:20px 0; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); gap:20px 24px; }
.metric { display:flex; align-items:center; gap:11px; flex:1; }
.metric-icon { display:grid; place-items:center; background:#f3e8e7; width:38px; height:38px; border-radius:11px; color:var(--forest); }
.metric-icon.warm { background:#f0eedf; color:#9c8650; }
.metric strong { display:block; font-size:23px; line-height:1.3; font-weight:550; }
.metric div>span { color:var(--muted); font-size:10px; white-space:nowrap; }
.weekly-progress { flex:1 0 100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:14px; border-top:1px solid var(--line); }
.weekly-progress-heading>span:last-child { display:block; margin-top:5px; font-size:10px; color:var(--muted); }
.weekly-rings { display:flex; gap:12px; }
.weekly-ring { margin:0; width:58px; flex-shrink:0; text-align:center; }
.weekly-ring svg { display:block; width:100%; height:auto; }
.weekly-ring-segment { fill:none; stroke-width:10; }
.weekly-ring-segment.is-future { opacity:.45; }
.weekly-ring-total { font-size:11px; font-weight:600; fill:var(--ink); text-anchor:middle; dominant-baseline:central; }
.weekly-ring figcaption { margin-top:4px; font-size:9px; color:var(--muted); white-space:nowrap; }
.weekly-ring.is-current figcaption { color:#28674c; font-weight:600; }
.focus-card { display:flex; align-items:center; gap:16px; padding:16px; background:#faf6f4; border:1px solid #f0e6e2; border-radius:12px; margin-bottom:24px; }
.focus-symbol { width:37px; height:37px; border-radius:50%; display:grid; place-items:center; background:#f2e4e0; color:var(--forest); flex-shrink:0; }
.focus-card>div { flex:1; min-width:0; }
.focus-card h2 { font-size:14px; font-weight:600; line-height:1.4; margin:6px 0 4px; overflow-wrap:anywhere; }
.focus-card p { font-size:10px; color:var(--muted); }
.focus-card .eyebrow { font-size:8px; letter-spacing:1px; }
.button { border-radius:8px; display:inline-flex; justify-content:center; align-items:center; gap:7px; padding:11px 17px; border:1px solid transparent; font-weight:550; font-size:12px; line-height:1.3; cursor:pointer; white-space:nowrap; }
.button:hover { text-decoration:none; filter:brightness(.97); }
.button-primary { background:#fff; color:var(--forest); border-color:var(--forest); }
.button-primary:hover { background:var(--forest); color:white; }
.button-secondary { background:#fff; color:var(--forest); border-color:var(--line); }
.button-small { padding:8px 11px; font-size:11px; }
.button .icon { width:16px; height:16px; }
.text-button { display:inline-flex; align-items:center; padding:0; font-size:11px; text-decoration:underline; text-underline-offset:3px; color:var(--forest); }
.danger { color:var(--danger); }
.section-heading { display:flex; align-items:center; justify-content:space-between; padding-right:135px; }
.section-heading h2 { font-size:19px; font-weight:550; letter-spacing:-.4px; display:flex; align-items:center; gap:10px; }
.section-heading p { color:var(--muted); font-size:11px; margin-top:3px; }
.count-badge { display:grid; place-items:center; background:#f3e8e7; width:22px; height:22px; font-size:10px; color:#6e7f65; border-radius:7px; }
.new-goal { margin-top:-40px; margin-bottom:28px; }
.new-goal>summary { display:flex; width:max-content; margin-left:auto; list-style:none; }
summary::-webkit-details-marker { display:none; }
.goal-create-form { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:22px; margin-top:22px; }
.goal-create-form h3 { font-size:18px; font-weight:550; margin-bottom:20px; }
.goal-filters { display:flex; gap:20px; border-bottom:1px solid var(--line); margin:24px 0 20px; }
.filter-button { padding:0 0 11px; border-bottom:2px solid transparent; font-size:11px; color:var(--muted); }
.filter-button.is-active { border-color:var(--forest); color:var(--forest); font-weight:650; }
.goals-list { display:grid; gap:16px; }
.goal-card { background:#f8f9fa; border:1px solid var(--line); border-radius:var(--radius); padding:22px 22px 0; min-width:0; }
.goal-card-heading { display:flex; align-items:center; gap:12px; }
.goal-number { font-family:Georgia,serif; color:#8b9a7e; background:#f1f4eb; border-radius:10px; width:36px; height:36px; display:grid; place-items:center; font-size:17px; }
.goal-title { flex:1; min-width:0; }
.goal-title h3 { font-size:16px; font-weight:570; letter-spacing:-.3px; overflow-wrap:anywhere; line-height:1.35; }
.goal-title>span { font-size:10px; color:var(--muted); }
.icon-button { display:grid; place-items:center; width:32px; height:32px; color:#8c978b; border-radius:8px; list-style:none; }
.icon-button:hover { background:var(--paper); color:var(--forest); }
.icon-button .icon { width:16px; height:16px; }
.goal-description { font-size:12px; color:var(--muted); margin:15px 0 2px; }
.goal-progress { display:block; width:100%; height:3px; border:0; background:#edf0e9; border-radius:4px; margin:20px 0 8px; accent-color:#7a9667; }
.goal-progress::-webkit-progress-bar { background:#edf0e9; border-radius:4px; }
.goal-progress::-webkit-progress-value { background:#7a9667; border-radius:4px; }
.goal-progress::-moz-progress-bar { background:#7a9667; border-radius:4px; }
.step-row { background:#fff; border-radius:9px; margin-bottom:6px; padding-left:10px !important; padding-right:10px !important; display:flex; align-items:start; gap:11px; padding:15px 0; border-bottom:1px solid #f0f2ec; scroll-margin:24px; }
.step-row:target { background:#f5f6e6; border-radius:8px; box-shadow:0 0 0 8px #f5f6e6; }
.step-check { display:grid; place-items:center; width:19px; height:19px; border:1.5px solid #cbd5c4; border-radius:6px; margin-top:3px; padding:0; }
.step-check:hover { background:#e5edda; border-color:var(--forest); }
.step-check .icon { width:12px; height:12px; }
.step-content { flex:1; min-width:0; }
.step-title { font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.step-meta { display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:9px; color:#819079; margin-top:4px; }
.step-meta>span { display:inline-flex; align-items:center; gap:4px; }
.step-meta .icon { width:11px; height:11px; }
.step-meta .overdue { color:#a65d4d; }
.status-label { padding:1px 6px; border-radius:4px; }
.status-label.doing { background:#edf1e4; color:#597149; }
.status-label.waiting { background:#f5eddb; color:#937434; }
.step-notes { color:var(--muted); font-size:11px; margin-top:8px; }
.start-step { padding:3px 0; font-size:10px; margin-top:2px; }
.step-edit>.icon-button { height:25px; width:24px; }
.is-done .step-title { text-decoration:line-through; color:var(--muted); }
.is-done .step-check { background:#e8f1ec; color:var(--forest); border-color:#eaf0e3; }
.completed-steps>summary { display:flex; align-items:center; gap:8px; font-size:10px; color:var(--muted); padding:14px 0; }
.completed-steps>summary .icon { width:13px; height:13px; }
.completed-steps>summary .icon:last-child { margin-left:auto; }
.add-step { padding:13px 0 15px; }
.add-step>summary { display:flex; align-items:center; gap:8px; font-size:11px; color:#718364; width:100%; list-style:none; }
.add-step>summary .icon { width:15px; height:15px; }
.step-create-form { margin-top:14px; }
.input-row { display:flex; gap:8px; margin-top:5px; }
.input-row input[type=text] { min-width:0; flex:1; }
.goal-edit,.step-edit { position:relative; }
.edit-panel { position:absolute; right:0; top:35px; width:300px; padding:20px; background:white; border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 40px #20302320; z-index:15; }
.edit-panel h4 { font-size:15px; margin-bottom:14px; }
.edit-panel>form+form { border-top:1px solid var(--line); padding-top:14px; margin-top:14px; }
.field { margin-bottom:16px; }
label { display:block; margin-bottom:6px; font-size:11px; font-weight:550; }
input[type=text], input[type=email], input[type=password], input[type=date], select, textarea { width:100%; padding:10px 12px; border:1px solid #dce2d6; border-radius:7px; background:#fff; color:var(--ink); min-height:40px; }
textarea { resize:vertical; }
input::placeholder,textarea::placeholder { color:#9ba497; font-size:12px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
.form-grid>* { min-width:0; }
.form-errors { background:#fbf0e9; color:#934b39; padding:12px 15px; border-radius:8px; margin-bottom:16px; font-size:12px; }
.form-errors ul { margin:6px 0 0; padding-left:16px; }
.empty-goals { padding:45px 20px 50px; text-align:center; border:1px dashed #d8e0cf; border-radius:var(--radius); margin-top:26px; }
.empty-orbit { background:#f1e8e6; border:10px solid #faf6f4; outline:1px solid #e5ecdc; width:76px; height:76px; border-radius:50%; display:grid; place-items:center; margin:0 auto 24px; color:#a97467; }
.empty-orbit .icon { width:30px; height:30px; }
.empty-goals h3 { font-size:18px; font-weight:500; letter-spacing:-.3px; margin-bottom:10px; }
.empty-goals p { color:var(--muted); font-size:12px; line-height:1.8; }
.empty-hint { display:inline-flex; align-items:center; gap:8px; color:#6d815e; font-size:10px; margin-top:25px; }
.empty-hint .icon { width:14px; }
.workspace-footer { display:flex; justify-content:center; align-items:center; gap:6px; padding:27px 0; font-size:10px; color:#8b9583; }
.workspace-footer .icon { width:14px; height:14px; }
.filtered-empty { padding:30px 10px; color:var(--muted); text-align:center; }
.coach-panel { margin-top:24px; position:sticky; top:24px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; min-height:580px; height:calc(100dvh - 145px); max-height:840px; display:flex; flex-direction:column; overflow:hidden; }
.coach-header { display:flex; align-items:center; gap:10px; padding:20px 18px; border-bottom:1px solid #edf0e8; }
.coach-avatar { display:grid; place-items:center; width:34px; height:34px; background:#f5eae7; border-radius:10px; color:#a76a58; flex-shrink:0; }
.coach-header h2 { font-size:13px; font-weight:550; }
.coach-header div>span { color:var(--muted); font-size:9px; }
.ai-label { margin-left:auto; border:1px solid var(--line); border-radius:4px; color:#96a08e; padding:1px 5px; font-size:8px; }
.conversation-thread { display:flex; flex:1; min-height:0; }
.chat-messages { overflow-y:auto; width:100%; padding:22px 18px; overscroll-behavior:contain; }
.coach-welcome { padding:4px 8px 12px; }
.coach-welcome-icon { width:40px; height:40px; display:grid; place-items:center; border:1px solid #e6ecdb; border-radius:50%; color:#718960; margin-bottom:12px; }
.coach-welcome h3 { font-family:Georgia,serif; font-size:24px; font-weight:400; line-height:1.28; letter-spacing:-.5px; }
.coach-welcome p { margin-top:10px; font-size:11px; color:var(--muted); line-height:1.9; }
.coach-prompts { margin:10px 6px 20px; }
.coach-prompts>span { display:block; font-size:8px; letter-spacing:1.1px; color:#98a08f; margin-bottom:12px; }
.coach-prompts button { border:1px solid var(--line); border-radius:8px; padding:11px; margin-bottom:8px; width:100%; text-align:left; display:flex; align-items:center; gap:10px; font-size:10px; }
.coach-prompts button:hover { background:var(--paper); border-color:#b6c5aa; }
.coach-prompts .icon { margin-left:auto; width:13px; height:13px; }
.message-composer { margin:0 16px; border:1px solid #dce3d3; border-radius:11px; padding:11px 12px 9px; background:#fff; }
.message-composer textarea { background:transparent; border:0; padding:0; min-height:46px; font-size:12px; resize:none; }
.message-composer textarea:focus-visible { outline-offset:2px; border-radius:3px; }
.composer-bottom { display:flex; align-items:center; justify-content:space-between; margin-top:6px; }
.composer-bottom>span { font-size:9px; color:#9ba590; }
.send-button { display:grid; place-items:center; width:30px; height:30px; background:var(--forest); color:#fff; border-radius:8px; }
.send-button .icon { width:17px; height:17px; }
.coach-disclaimer { font-size:8px; color:#929c8d; text-align:center; margin:12px 14px 16px; }
.chat-message { padding:14px; background:#f8f9fa; border-radius:11px; margin-bottom:15px; }
.chat-message.user { margin-left:26px; background:#f8eeec; }
.chat-message.bot { margin-right:12px; background:#f8f9fa; border:1px solid #edf0e6; }
.message-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; font-size:9px; color:#687c5c; }
.message-meta time { color:#9ba692; font-size:8px; }
.prose { overflow-wrap:anywhere; }
.prose p+p { margin-top:9px; }
.prose ul,.prose ol { padding-left:18px; }
.prose pre { max-width:100%; overflow:auto; font-size:11px; }
.prose a { text-decoration:underline; }
.chat-message .prose { font-size:12px; line-height:1.8; }
.reply-status { margin-top:12px; font-size:10px; color:#6f8064; }
.thinking-dots { letter-spacing:2px; margin-right:4px; }
.reply-error { color:var(--danger); }
.reply-error form { margin-top:5px; }
.flash-stack { margin-top:15px; }
.flash { padding:13px 17px; border:1px solid #d7e2c9; background:#edf4e6; color:#41603a; border-radius:10px; font-size:12px; margin-bottom:12px; }
.flash-error { background:#fbefe8; border-color:#f0d8cb; color:#984c35; }
.public-header { display:flex; align-items:center; justify-content:space-between; max-width:1240px; padding:28px 48px; margin:auto; }
.public-header .muted { font-size:11px; }
.public-header .brand { color:var(--forest); }
.public-header .brand-mark { background:var(--forest); color:var(--paper); }
.public-main { max-width:1180px; margin:auto; padding:20px 48px 60px; min-height:calc(100dvh - 180px); }
.auth-layout { display:flex; flex-direction:column; align-items:center; gap:25px; max-width:440px; margin:20px auto 0; }
.auth-card { width:100%; }
.auth-story { text-align:center; }
.auth-story h1 { font-size:30px; font-weight:450; letter-spacing:-.8px; line-height:1.12; margin:18px 0 25px; }
.auth-story h1 em { color:#5c7650; font-family:Georgia,serif; font-weight:400; }
.auth-story>p { color:var(--muted); max-width:400px; line-height:1.8; font-size:14px; }
.auth-proof { margin-top:35px; display:flex; align-items:center; gap:10px; color:#6b7e5d; font-size:12px; }
.auth-proof .icon { padding:5px; box-sizing:content-box; background:#e7eedb; border-radius:50%; }
.auth-card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:36px; box-shadow:0 15px 45px #244b3405; }
.auth-card h2 { font-size:25px; font-weight:550; letter-spacing:-.6px; margin-bottom:5px; }
.auth-subtitle { font-size:12px; color:var(--muted); margin-bottom:26px; }
.auth-card .button { width:100%; font-size:12px; padding:12px; }
.auth-card .field { margin-bottom:19px; }
.auth-card label { font-size:12px; }
.auth-card input { font-size:13px; }
.check-row { display:flex; gap:7px; align-items:start; margin:15px 0; font-size:11px; color:var(--muted); }
.check-row input { margin:3px 0 0; }
.check-row label { font-size:11px; font-weight:400; }
.auth-between { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:5px 0 20px; }
.auth-between .check-row { margin:0; }
.auth-between a { font-size:10px; }
.auth-links { text-align:center; margin-top:22px; font-size:11px; display:grid; gap:9px; color:var(--muted); }
.auth-divider { display:flex; gap:12px; align-items:center; margin:20px 0; color:#9ba592; font-size:9px; }
.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.auth-card .form-hint { font-size:10px; color:var(--muted); margin-top:4px; }
.public-footer { display:flex; justify-content:space-between; max-width:1240px; margin:auto; padding:20px 48px; font-size:10px; color:#8b9680; }
.public-footer span { display:flex; gap:18px; }
.settings-page { max-width:660px; margin:45px auto; }
.settings-page h1 { font-size:32px; font-weight:500; letter-spacing:-1px; margin-bottom:10px; }
.settings-page>p { color:var(--muted); margin-bottom:25px; }
.settings-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:30px; margin-bottom:22px; }
.settings-card h2 { font-size:18px; margin-bottom:15px; }
.settings-card p { font-size:12px; color:var(--muted); margin-bottom:18px; }
.space-picker { display:flex; align-items:center; gap:12px; margin-top:20px; }
.space-picker label { margin:0; white-space:nowrap; }
.space-picker select { max-width:300px; }
.legal-page { max-width:700px; margin:50px auto; }
.legal-page h1 { font-size:32px; margin-bottom:15px; }
.legal-page .prose { line-height:1.9; }
@media(min-width:1500px) { .dashboard-layout { gap:48px; } }
@media(max-width:1050px) { .main-content { padding:0 24px 24px; } .dashboard-layout { gap:24px; grid-template-columns:minmax(0,1fr) 320px; } .metric-icon { display:none; } .progress-overview { gap:14px; } .focus-card { padding:15px; } }
@media(max-width:820px) { .dashboard-layout { grid-template-columns:1fr; } .coach-panel { position:relative; top:0; margin-top:0; height:600px; min-height:0; } .coach-welcome { padding:10px 12px; } .coach-welcome h3 br { display:none; } .coach-welcome p { max-width:470px; } .coach-prompts { max-width:470px; } .navbar-inner { padding:16px 24px; gap:25px; } }
@media(max-width:580px) { .navbar-inner { padding:15px 20px; flex-wrap:wrap; gap:15px; } .brand { font-size:21px; } .main-nav { order:3; width:100%; gap:22px; } .navbar-account { gap:15px; } .account-menu summary strong { display:none; } .main-content { padding:0 18px 24px; } .topbar { height:55px; font-size:10px; } .topbar-date { display:none; } .workspace { padding-top:22px; } .workspace-heading h1 { font-size:28px; } .workspace-heading p { font-size:11px; } .progress-overview { gap:14px; margin:24px 0; } .metric strong { font-size:23px; } .metric div>span { font-size:9px; } .weekly-progress { flex-direction:column; align-items:flex-start; gap:12px; } .weekly-rings { width:100%; justify-content:space-between; gap:8px; } .focus-card { margin-bottom:28px; gap:10px; } .focus-card h2 { font-size:12px; } .focus-symbol { width:28px; height:28px; } .focus-card .button { padding:7px; font-size:10px; } .section-heading { padding-right:115px; } .section-heading h2 { font-size:17px; } .section-heading p { font-size:9px; } .new-goal>summary { padding:10px; font-size:11px; } .goal-card { padding:18px 14px 0; } .goal-title h3 { font-size:14px; } .goal-number { width:30px; height:32px; font-size:15px; flex-shrink:0; } .start-step { display:none; } .step-meta { font-size:9px; gap:7px; } .edit-panel { width:min(280px, calc(100vw - 82px)); } .goal-card-heading { gap:9px; } .input-row { flex-wrap:wrap; } .input-row input[type=text] { min-width:140px; } .coach-panel { height:620px; } .coach-header h2 { font-size:14px; } .coach-header div>span { font-size:10px; } .coach-prompts button { font-size:12px; padding:13px; } .coach-welcome p { font-size:12px; } .public-header { padding:24px; } .public-header .muted { display:none; } .public-main { padding:0 20px 35px; } .auth-layout { gap:22px; margin-top:10px; } .auth-story h1 { font-size:29px; margin:12px 0; } .auth-story>p { font-size:12px; } .auth-card { padding:25px; } .public-footer { padding:20px; gap:15px; font-size:9px; } .settings-card { padding:22px; } .settings-page { margin:30px auto; } }
@media(prefers-reduced-motion:no-preference) { .button,.icon-button,.nav-item { transition:background .15s, color .15s; } .thinking-dots { animation:pulse 1.4s ease-in-out infinite; } @keyframes pulse { 50% { opacity:.35; } } }
