:root{--bg: #f7f4ec;--surface: #ffffff;--line: #e3dcc8;--fg: #21231f;--fg-dim: #726f62;--track: #c23616;--track-fg: #fff7f0;--bib-bg: #f4ddd2;--bib-fg: #8a2a12;--danger: #a32d2d;--danger-bg: #f7dede}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:IBM Plex Sans,sans-serif;-webkit-font-smoothing:antialiased}#root{max-width:720px;margin:0 auto;padding:24px 16px 64px}h1,h2,h3{font-family:Bebas Neue,sans-serif;font-weight:400;letter-spacing:.02em;margin:0}button,input,select{font-family:IBM Plex Sans,sans-serif}.auth{padding:28px 20px 32px;display:flex;flex-direction:column;gap:14px}.auth h2{font-size:36px;line-height:1.05}.auth-lead,.auth-hint{margin:0;font-size:14px;line-height:1.6;color:var(--fg-dim)}.auth-hint{font-size:12px}.auth-alt{margin:4px 0 0;font-size:13px;color:var(--fg-dim)}.auth form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:6px;font:500 11px/1 IBM Plex Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.auth-field input,.acct input,.acct select{font:15px IBM Plex Sans,sans-serif;letter-spacing:normal;text-transform:none;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:11px 13px}.auth-field input:focus,.acct input:focus,.acct select:focus{outline:2px solid var(--track);outline-offset:-1px}.auth-primary{font:500 15px/1 IBM Plex Sans,sans-serif;color:var(--track-fg);background:var(--track);border:none;border-radius:8px;padding:14px 18px;cursor:pointer}.auth-primary:disabled{opacity:.45;cursor:default}.auth-secondary{display:inline-block;font:500 13px/1 IBM Plex Sans,sans-serif;color:var(--fg);background:transparent;border:1px solid var(--line);border-radius:7px;padding:10px 14px;cursor:pointer;text-decoration:none;white-space:nowrap}.auth-secondary:hover{border-color:var(--track)}.auth-secondary:disabled{opacity:.5;cursor:default}.auth-link{font:inherit;color:var(--track);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}.auth-error{margin:0;color:var(--danger);background:var(--danger-bg);padding:9px 12px;border-radius:7px;font-size:13px;line-height:1.5}.acct{display:flex;flex-direction:column}.acct-section{padding:18px 20px 20px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.acct-title{margin:0;font:500 11px/1 IBM Plex Sans,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.acct-line{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.acct-name{margin:0;font-size:15px;font-weight:500}.acct-meta{margin:2px 0 0;font-size:12px;line-height:1.5;color:var(--fg-dim)}.acct-tag{margin-left:8px;padding:2px 6px;font:500 10px/1 IBM Plex Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--bib-fg);background:var(--bib-bg);border-radius:3px;vertical-align:middle}.acct-tag.danger{color:var(--danger);background:var(--danger-bg)}.acct-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.acct-form input{flex:1 1 160px;min-width:0}.acct-stack{display:flex;flex-direction:column;gap:8px}.acct-invite{background:var(--bib-bg);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:8px}.acct-code{margin:0;font:500 22px/1.2 IBM Plex Mono,monospace;letter-spacing:.06em;color:var(--bib-fg);word-break:break-all}.usage-total{margin:0;font-size:14px;line-height:1.5}.usage-total b{font:500 22px/1 IBM Plex Mono,monospace}.usage-table{display:flex;flex-direction:column;gap:4px}.usage-row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.usage-num{font-family:IBM Plex Mono,monospace;font-variant-numeric:tabular-nums;color:var(--fg-dim);text-align:right}b.usage-num{color:var(--fg);min-width:56px}.auth-secondary.usage-active{border-color:var(--track);color:var(--track)}@media(max-width:480px){.usage-row{grid-template-columns:1fr auto auto}.usage-row .usage-num:nth-of-type(3){display:none}}.acts{padding:20px;display:flex;flex-direction:column;gap:14px}.acts-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.acts-title{margin:0;font:400 26px/1 Bebas Neue,sans-serif;letter-spacing:.02em}.acts-meta{margin:4px 0 0;font-size:12px;color:var(--fg-dim)}.acts-sync{font:500 13px/1 IBM Plex Sans,sans-serif;color:var(--track-fg);background:var(--track);border:none;border-radius:7px;padding:10px 16px;cursor:pointer;text-decoration:none}.acts-sync:disabled{opacity:.5;cursor:default}.acts-result{margin:0;font-size:13px;color:var(--bib-fg);background:var(--bib-bg);padding:9px 12px;border-radius:7px}.acts-error{margin:0;font-size:13px;color:var(--danger);background:var(--danger-bg);padding:9px 12px;border-radius:7px}.acts-empty{margin:0;font-size:14px;line-height:1.6;color:var(--fg-dim)}.acts-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.acts-row{display:grid;grid-template-columns:84px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.acts-when b,.acts-data b{display:block;font:500 14px/1.2 IBM Plex Mono,monospace}.acts-when span,.acts-data span{display:block;margin-top:2px;font:400 12px/1.3 IBM Plex Mono,monospace;color:var(--fg-dim);font-variant-numeric:tabular-nums}.acts-tags{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.acts-tag{font:500 10px/1 IBM Plex Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);border:1px solid var(--line);border-radius:3px;padding:3px 6px;white-space:nowrap}.acts-tag.planned{color:var(--bib-fg);background:var(--bib-bg);border-color:var(--bib-bg)}.acts-tag.waiting{color:var(--track);border-color:var(--track)}@media(max-width:480px){.acts-row{grid-template-columns:70px 1fr}.acts-tags{grid-column:2;flex-direction:row;align-items:flex-start;flex-wrap:wrap}}.chat{padding:20px;display:flex;flex-direction:column;gap:18px}.chat-intro h2{font-size:34px;line-height:1.05;margin-bottom:8px}.chat-intro p{margin:0 0 16px;font-size:14px;line-height:1.6;color:var(--fg-dim)}.chat-starters{display:flex;flex-direction:column;gap:8px}.chat-starter{text-align:left;font:14px/1.5 IBM Plex Sans,sans-serif;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:11px 14px;cursor:pointer}.chat-starter:hover{border-color:var(--track)}.chat-log{display:flex;flex-direction:column;gap:16px;max-height:55vh;overflow-y:auto;padding-right:4px}.chat-msg{max-width:92%}.chat-msg p{margin:0;font-size:15px;line-height:1.6;white-space:pre-wrap}.chat-who{display:block;font:500 10px/1 IBM Plex Sans,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim);margin-bottom:5px}.chat-msg.user{align-self:flex-end;background:var(--bib-bg);color:var(--bib-fg);border-radius:10px;padding:10px 14px}.chat-msg.user .chat-who{color:var(--bib-fg);opacity:.7}.chat-msg.coach{align-self:flex-start;border-left:3px solid var(--track);padding-left:14px}.chat-working{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;color:var(--fg-dim);border-left:3px solid var(--line);padding-left:14px}.chat-working small{flex-basis:100%;font-size:12px}.chat-pulse{width:8px;height:8px;border-radius:50%;background:var(--track);animation:chat-pulse 1.1s ease-in-out infinite}@keyframes chat-pulse{0%,to{opacity:.25}50%{opacity:1}}.chat-error{color:var(--danger);background:var(--danger-bg);padding:9px 12px;border-radius:7px;font-size:13px;line-height:1.5;margin:0}.chat-profile{border-top:1px solid var(--line);padding-top:14px;font-size:13px}.chat-profile summary{cursor:pointer;font:500 11px/1 IBM Plex Sans,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.chat-profile dl{margin:12px 0 0;display:flex;flex-direction:column;gap:8px}.chat-profile dl div{display:grid;grid-template-columns:120px 1fr;gap:12px}.chat-profile dt{color:var(--fg-dim)}.chat-profile dd{margin:0;line-height:1.5;white-space:pre-line}.chat-composer{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:16px}.chat-composer textarea{font:15px/1.5 IBM Plex Sans,sans-serif;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:11px 13px;resize:vertical;width:100%}.chat-composer textarea:focus{outline:2px solid var(--track);outline-offset:-1px}.chat-composer textarea:disabled{opacity:.6}.chat-composer-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.chat-hint{font-size:12px;color:var(--fg-dim)}.chat-send{font:500 14px/1 IBM Plex Sans,sans-serif;color:var(--track-fg);background:var(--track);border:none;border-radius:8px;padding:12px 22px;cursor:pointer}.chat-send:disabled{opacity:.45;cursor:default}.chat-changes{display:flex;flex-direction:column;gap:8px}.chat-proposal{border:1px solid var(--track);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.chat-proposal .chat-who{color:var(--track);margin-bottom:0}.chat-proposal p{margin:0;font-size:15px;line-height:1.6}.chat-proposal small{font-size:12px;line-height:1.5;color:var(--fg-dim)}.chat-proposal-actions{display:flex;gap:10px;margin-top:4px}.chat-decline{font:500 14px/1 IBM Plex Sans,sans-serif;color:var(--fg);background:none;border:1px solid var(--line);border-radius:8px;padding:12px 22px;cursor:pointer}.chat-decline:disabled{opacity:.45;cursor:default}.plan-goal{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.plan-goal-label{font:500 11px/1 IBM Plex Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);margin:0 0 6px}.plan-goal-val{font-size:40px;line-height:1}.plan-goal-val.text{font-size:28px;line-height:1.1}.plan-goal-desc{font-size:13px;color:var(--fg-dim);margin:8px 0 0}.plan-countdown{text-align:right}.plan-countdown b{font:500 26px/1 IBM Plex Mono,monospace;font-variant-numeric:tabular-nums}.plan-countdown div{font:12px IBM Plex Sans,sans-serif;color:var(--fg-dim);margin-top:4px}.plan-section-title{font:500 11px/1 IBM Plex Sans,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim);padding:18px 20px 0;margin:0}.plan-week{padding:12px 20px 20px;display:flex;flex-direction:column}.plan-row{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.plan-row.compact{grid-template-columns:76px 1fr auto;padding:10px 0}.plan-bib{font:400 20px/1 Bebas Neue,sans-serif;background:var(--bib-bg);color:var(--bib-fg);width:52px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:4px;letter-spacing:.03em}.plan-date{font:13px IBM Plex Mono,monospace;color:var(--fg-dim)}.plan-row-main b{font:500 15px IBM Plex Sans,sans-serif;display:block}.plan-row-main span{font:13px IBM Plex Sans,sans-serif;color:var(--fg-dim)}.plan-row-data{font:15px IBM Plex Mono,monospace;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.plan-row-data small{display:block;font:11px IBM Plex Sans,sans-serif;color:var(--fg-dim);text-align:right}.plan-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.plan-stat{background:var(--surface);padding:16px 18px}.plan-stat b{font-size:30px;display:block}.plan-stat span{font:11px IBM Plex Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim)}.plan-notes{padding:10px 20px 22px;font-size:14px;line-height:1.6;color:var(--fg-dim);white-space:pre-line}.plan-empty{padding:32px 20px;text-align:center;color:var(--fg-dim);font-size:14px}.plan-tag{display:inline-block;margin-left:8px;padding:2px 6px;font:500 10px/1 IBM Plex Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--track);border:1px solid var(--track);border-radius:3px;vertical-align:middle}.rev{padding:16px 20px 18px;border-bottom:1px solid var(--line);background:var(--bib-bg);color:var(--bib-fg)}.rev-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.rev-title{margin:0;font:500 11px/1.4 IBM Plex Sans,sans-serif;letter-spacing:.12em;text-transform:uppercase}.rev-range{margin-left:10px;font:12px IBM Plex Mono,monospace;letter-spacing:0;text-transform:none}.rev-undo{font:500 12px/1 IBM Plex Sans,sans-serif;color:var(--bib-fg);background:transparent;border:1px solid var(--bib-fg);border-radius:6px;padding:8px 12px;cursor:pointer}.rev-undo:disabled{opacity:.5;cursor:default}.rev-request{margin:12px 0 0;font-size:13px;font-style:italic;opacity:.8}.rev-summary{margin:8px 0 0;font-size:14px;line-height:1.6;color:var(--fg)}.rev-error{margin:10px 0 0;font-size:13px;color:var(--danger)}.rev-details{margin-top:12px;font-size:13px}.rev-details summary{cursor:pointer;font-weight:500}.rev-details ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.rev-details li{display:grid;grid-template-columns:74px 1fr 16px 1fr;gap:8px;align-items:baseline;color:var(--fg)}.rev-day{font:12px IBM Plex Mono,monospace}.rev-before{color:var(--fg-dim);text-decoration:line-through}.rev-arrow{text-align:center}@media(max-width:520px){.rev-details li{grid-template-columns:1fr;gap:2px}.rev-arrow{display:none}}.plan-tag.done{color:var(--fg-dim);border-color:var(--line)}.shell{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.shell-head{background:var(--track);color:var(--track-fg);padding:18px 20px 0;border-bottom:6px solid var(--bg);display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.shell-brand{font-size:32px;margin:0 0 14px}.shell-tabs{display:flex;gap:4px}.shell-tab{position:relative;font:500 12px/1 IBM Plex Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--track-fg);background:transparent;border:none;border-bottom:3px solid transparent;padding:10px 12px 12px;cursor:pointer;opacity:.7}.shell-tab.active{opacity:1;border-bottom-color:var(--track-fg)}.shell-tab:disabled{opacity:.35;cursor:default}.shell-badge{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--track-fg);vertical-align:middle}.shell-status{color:var(--fg-dim);text-align:center;padding:48px 20px;font-size:14px}.shell-error{padding:24px 20px}.shell-error p{color:var(--danger);margin:0 0 12px}.shell-notice{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;font-size:13px;color:var(--bib-fg);background:var(--bib-bg);border-bottom:1px solid var(--line)}.shell-notice button{font-size:18px;line-height:1;color:inherit;background:none;border:none;cursor:pointer}
