:root{--base:#f5f1e8;--surface:#fffdf8;--surface-strong:#efe7d6;--ink:#17140f;--muted:#6c6355;--momentum:#cf4f24;--momentum-strong:#8b2f14;--warning:#9f4a17;--border:#d9cfbe;--empty:#ebe4d6;--partial:#f2bf8e;--strong:#d55a2f;--habit-gym:#8b2f14;--habit-reading:#2d5b89;--habit-diary:#4f6b2f}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:linear-gradient(180deg,#f7f2e8,#ede4d2);color:var(--ink);font-family:IBM Plex Sans,Avenir Next,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.shell{max-width:1100px;margin:0 auto;padding:24px 20px 48px}.auth-shell{max-width:720px}.app-nav{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid rgba(23,20,15,.08)}.brand-link{display:inline-block;font-family:"IBM Plex Serif",Georgia,serif;font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.brand-copy,.helper-copy,.muted-copy,.secondary-link,.status-copy{color:var(--muted)}.nav-links{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.ghost-button,.primary-button,.secondary-button{border:2px solid var(--ink);background:transparent;color:var(--ink);padding:10px 14px;min-height:44px}.primary-button{background:var(--momentum);border-color:var(--momentum-strong);color:#fff8f0;font-weight:700}.secondary-button{background:var(--surface)}.panel{background:rgba(255,253,248,.92);border:2px solid rgba(23,20,15,.08);padding:20px;margin-bottom:16px;box-shadow:0 14px 40px rgba(36,24,5,.08)}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.page-title{margin:0;font-family:"IBM Plex Serif",Georgia,serif;font-size:clamp(2rem,4vw,3rem);line-height:.95}.eyebrow{margin:0 0 6px;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:var(--muted)}.summary-chip-row{display:flex;gap:10px;flex-wrap:wrap}.summary-chip{border:1px solid rgba(23,20,15,.12);padding:8px 10px;min-width:96px;background:rgba(255,255,255,.65)}.summary-chip strong{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.summary-chip span{display:block;margin-top:4px;font-weight:700}.grid-two{grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr)}.grid-two,.stack{display:grid;grid-gap:16px;gap:16px}.module-status{font-size:.9rem;color:var(--muted)}.field,.json-input,.textarea{width:100%;border:2px solid rgba(23,20,15,.14);background:rgba(255,255,255,.8);padding:12px 14px;min-height:44px}.json-input,.textarea{min-height:120px;resize:vertical}.checkbox-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.checkbox-row input{width:22px;height:22px}.status-pill{display:inline-block;padding:6px 10px;border:1px solid rgba(23,20,15,.12);background:rgba(255,255,255,.72);font-size:.82rem}.status-pill[data-state=saving]{color:var(--warning)}.status-pill[data-state=saved]{color:var(--momentum-strong)}.status-pill[data-state=error]{color:var(--warning);border-color:rgba(159,74,23,.4)}.exercise-row,.gym-grid{display:grid;grid-gap:12px;gap:12px}.exercise-row{border-top:1px solid rgba(23,20,15,.08);padding-top:12px}.exercise-fields{display:flex;flex-wrap:wrap;gap:12px}.stepper{display:grid;grid-template-columns:44px minmax(72px,100px) 44px;align-items:center}.stepper button{min-height:44px;border:2px solid rgba(23,20,15,.14);background:var(--surface)}.stepper input{min-height:44px;border-top:2px solid rgba(23,20,15,.14);border-bottom:2px solid rgba(23,20,15,.14);border-left:0;border-right:0;text-align:center}.calendar-header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:8px;gap:8px}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.legend-item{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:var(--muted)}.calendar-cell{min-height:108px;padding:10px;border:2px solid rgba(23,20,15,.08);display:flex;flex-direction:column;justify-content:space-between}.calendar-cell[data-strength=empty]{background:var(--empty)}.calendar-cell[data-strength=partial]{background:var(--partial)}.calendar-cell[data-strength=strong]{background:var(--strong);color:#fff9f2}.calendar-day{font-weight:800;font-size:1.25rem}.marker-row{display:flex;gap:6px}.habit-marker{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(23,20,15,.28);background:rgba(255,255,255,.35);color:rgba(23,20,15,.38)}.habit-marker[data-active=true]{background:rgba(23,20,15,.18);color:#fff9f2}.habit-marker[data-kind=gym]{color:var(--habit-gym)}.habit-marker[data-kind=reading]{color:var(--habit-reading)}.habit-marker[data-kind=diary]{color:var(--habit-diary)}.habit-marker[data-kind=gym][data-active=true]{background:var(--habit-gym);border-color:var(--habit-gym)}.habit-marker[data-kind=reading][data-active=true]{background:var(--habit-reading);border-color:var(--habit-reading)}.habit-marker[data-kind=diary][data-active=true]{background:var(--habit-diary);border-color:var(--habit-diary)}.habit-marker[data-kind=reading]{border-radius:4px}.habit-marker[data-kind=diary]{border-radius:999px}.calendar-cell[data-strength=strong] .habit-marker[data-active=false]{background:rgba(255,249,242,.12);border-color:rgba(255,249,242,.4);color:rgba(255,249,242,.72)}.habit-icon{width:12px;height:12px;display:block}.template-list{display:grid;grid-gap:12px;gap:12px}.template-card{border:2px solid rgba(23,20,15,.08);padding:14px;background:rgba(255,255,255,.65)}.template-card[data-active=true]{border-color:rgba(207,79,36,.5);background:rgba(213,90,47,.08)}.error-banner{border:2px solid rgba(159,74,23,.28);background:rgba(159,74,23,.1);color:var(--warning)}.error-banner,.success-banner{padding:12px 14px;margin-bottom:14px}.success-banner{border:2px solid rgba(139,47,20,.18);background:rgba(207,79,36,.1);color:var(--momentum-strong)}.empty-state{border-style:dashed}.detail-list{padding-left:18px}.detail-list,.kv-grid{display:grid;grid-gap:8px;gap:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width:900px){.grid-two{grid-template-columns:1fr}}@media (max-width:680px){.shell{padding:18px 14px 38px}.app-nav{flex-direction:column}.nav-links{width:100%;justify-content:space-between}.calendar-grid{gap:6px}.calendar-cell{min-height:90px}}