:root{color-scheme:light dark;--ground: #faf8f4;--surface: #ffffff;--raised: #f1ede5;--line: #e2dcd0;--ink: #26221c;--muted: #71695c;--accent: #8a5a24;--accent-ink: #ffffff;--danger: #b3261e;--user: #efe7d9;font:16px/1.55 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@media(prefers-color-scheme:dark){:root{--ground: #171512;--surface: #201d19;--raised: #2a2621;--line: #3a352e;--ink: #eee8dd;--muted: #a59c8d;--accent: #d9a566;--accent-ink: #231a0e;--danger: #f2a49d;--user: #33291c}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink)}h1,h2,h3{line-height:1.25;margin:0;font-weight:650}p{margin:0}button,input,textarea{font:inherit;color:inherit}input,textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--surface)}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{padding:.5rem .95rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.danger{border-color:var(--danger);color:var(--danger)}button.link{border:0;background:none;padding:.25rem;color:var(--muted);font-size:.875rem}.muted{color:var(--muted)}.error{color:var(--danger)}.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.between{justify-content:space-between;align-items:flex-start;flex-wrap:nowrap}.shell{height:100dvh;display:flex;flex-direction:column}nav{display:flex;align-items:center;gap:1rem;flex:none;padding:calc(.5rem + env(safe-area-inset-top)) 1rem .5rem;border-bottom:1px solid var(--line);background:var(--surface)}.brand{font-weight:700;letter-spacing:.01em}.tabs{display:flex;gap:.15rem;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.tab{border:0;background:none;color:var(--muted);padding:.3rem .6rem}.tab.active{background:var(--raised);color:var(--ink)}.chat{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;max-width:46rem;margin:0 auto;padding-inline:1rem}.log{flex:1;min-height:0;overflow-y:auto;padding-block:1.25rem;display:flex;flex-direction:column;gap:1rem}.empty{margin:auto;text-align:center;color:var(--muted)}.bubble{max-width:100%;overflow-wrap:anywhere}.bubble.user{align-self:flex-end;max-width:85%;background:var(--user);padding:.55rem .85rem;border-radius:14px}.plain{white-space:pre-wrap}.activity{color:var(--muted);font-size:.85rem}.working:empty{display:none}.working{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.working{animation:none}}.notice{color:var(--muted);font-size:.9rem;text-align:center}.composer{display:flex;gap:.5rem;align-items:flex-end;flex:none;padding-top:.5rem}.composer textarea{resize:none;field-sizing:content;max-height:40dvh;font-size:max(16px,1rem)}.start-over{align-self:center;margin-top:.15rem}.chat:after{content:"";flex:none;height:calc(.5rem + env(safe-area-inset-bottom))}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p,.markdown ul,.markdown ol,.markdown pre,.markdown table,.markdown blockquote{margin:0 0 .75rem}.markdown h1,.markdown h2,.markdown h3{margin:1rem 0 .4rem;font-size:1.05rem}.markdown a{color:var(--accent)}.markdown code{background:var(--raised);padding:.1rem .3rem;border-radius:5px;font-size:.9em}.markdown pre{background:var(--raised);padding:.75rem;border-radius:10px;overflow-x:auto}.markdown pre code{background:none;padding:0}.markdown table{display:block;overflow-x:auto;border-collapse:collapse}.markdown th,.markdown td{border:1px solid var(--line);padding:.3rem .6rem}.markdown blockquote{border-left:3px solid var(--line);padding-left:.75rem;color:var(--muted)}.login{min-height:100dvh;display:grid;place-items:center;padding:1rem}.login form{width:100%;max-width:22rem;display:grid;gap:.9rem}.login h1{text-align:center;margin-bottom:.4rem}label{display:grid;gap:.3rem;font-size:.9rem;color:var(--muted)}label input,label textarea{color:var(--ink);font-size:max(16px,1rem)}.page{flex:1;min-height:0;overflow-y:auto;width:100%;max-width:46rem;margin:0 auto;padding:1.25rem 1rem 2rem;display:grid;gap:1rem;align-content:start}.files{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.file{width:100%;text-align:left;display:grid;gap:.1rem;padding:.7rem .85rem}.file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.editor{display:grid;gap:.8rem}.editor textarea{font-family:ui-monospace,Menlo,monospace;font-size:max(16px,.9rem)}.stats{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem}.stat h3{font-size:.9rem;color:var(--muted);font-weight:500}.amount{font-size:1.6rem;font-weight:650;font-variant-numeric:tabular-nums;margin-block:.15rem .6rem}dl{display:grid;grid-template-columns:1fr auto;gap:.15rem .75rem;margin:0;font-size:.875rem}dt{color:var(--muted)}dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}.approval{border:1px solid var(--accent);border-radius:12px;padding:.9rem;display:grid;gap:.5rem;background:var(--surface)}@media(max-width:32rem){nav{gap:.4rem;padding-inline:.6rem}.brand,.nav-sign-out{display:none}.tab{padding:.3rem .35rem;font-size:.9rem}}.habits{display:grid;gap:.8rem}.habit-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.habit-head h3{font-size:1rem;color:var(--ink);font-weight:650;overflow-wrap:anywhere}.streak{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:650}.habit-sub{margin:0 0 .6rem;font-size:.875rem;color:var(--muted)}.days{display:grid;grid-template-columns:repeat(14,1fr);gap:2px}.day{aspect-ratio:1;min-width:0;padding:0;border:1px solid transparent;border-radius:4px;display:grid;place-items:center;font-size:.72rem;line-height:1;font-weight:700;background:var(--raised);color:var(--muted)}.day.done{background:var(--accent);color:var(--accent-ink)}.day.no_response{background:none;border-color:var(--danger);color:var(--danger)}.day.open{background:none;border-color:var(--muted)}.day.off{background:none;color:var(--line)}.day.selected{outline:2px solid var(--ink);outline-offset:1px}.day-ends{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:.2rem}.day-detail{margin:.4rem 0 0;font-size:.875rem}.legend{display:flex;flex-wrap:wrap;gap:.3rem .8rem;margin:0;padding:0;list-style:none;font-size:.8rem;color:var(--muted)}.legend li{display:flex;align-items:center;gap:.3rem}.legend .day{width:1.1rem}.reminders{margin:0;padding:0;list-style:none;display:grid;gap:.4rem}.reminders li{display:flex;justify-content:space-between;gap:.75rem}.page h3.section{margin-block:1.2rem .5rem}.field{display:grid;gap:.2rem;font-size:.875rem;margin-bottom:.6rem}select{font:inherit;color:inherit;background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem;width:100%}.chart-title{margin:0 0 .2rem;font-size:.875rem;color:var(--muted)}.chart{display:block;width:100%;height:auto}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.chart .trend{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .dot{fill:var(--surface);stroke:var(--accent);stroke-width:2}.chart .dot.record{fill:var(--accent)}.chart .hit{fill:transparent;cursor:pointer}.chart-table{margin-top:.5rem;font-size:.875rem}.chart-table summary{color:var(--muted);cursor:pointer}.chart-table table{width:100%;border-collapse:collapse;margin-top:.3rem;font-variant-numeric:tabular-nums}.chart-table th,.chart-table td{text-align:left;padding:.15rem 0;border-bottom:1px solid var(--line);font-weight:400}.chart-table th{color:var(--muted)}.records-title{margin-block:.8rem .3rem;font-size:.9rem}.record-row{display:contents}.sessions{display:grid;gap:.5rem}.session{padding:.7rem 1rem}.session summary{display:flex;justify-content:space-between;gap:.75rem;cursor:pointer;list-style:none}.session summary::-webkit-details-marker{display:none}.session[open] summary{margin-bottom:.5rem}.session-exercise{font-size:.9rem;margin-top:.4rem}.session-exercise ul{margin:.1rem 0 0;padding-left:1.1rem;color:var(--muted)}.page-sign-out{display:none}@media(max-width:32rem){.page-sign-out{display:block;margin-top:1.5rem}}
