*,*:before,*:after{box-sizing:border-box}html,body{margin:0}html{scroll-padding-bottom:calc(148px + env(safe-area-inset-bottom))}body{background:var(--bg, #F5EEDF);color:var(--text, #3B2A14);font-family:var(--font, serif);font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}button{padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer}button.primary{background:var(--accent);color:var(--accentText);border-color:var(--accent)}button.danger{color:var(--danger);border-color:var(--danger)}label{display:block;margin:10px 0;font-size:14px;color:var(--muted)}label>input,label>select,label>textarea{margin-top:4px;color:var(--text)}h1,h2{font-weight:600}h2{font-size:15px;margin:24px 0 8px;padding-bottom:6px;border-bottom:1px var(--divider) var(--border)}.app{max-width:640px;margin:0 auto;min-height:100vh;padding-top:env(safe-area-inset-top);padding-bottom:calc(148px + env(safe-area-inset-bottom))}.page{padding:16px}.center{text-align:center;padding:48px 16px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.dateline{text-align:center;font-size:13px;letter-spacing:2px;color:var(--muted);margin:0}.greeting{display:flex;gap:12px;align-items:flex-start;margin:12px 0}.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accentText)}.greeting p{margin:0}.empty{color:var(--muted);font-size:14px}.error{color:var(--danger);font-size:14px}.badge{display:inline-block;margin-left:6px;padding:0 6px;font-size:12px;border:1px solid var(--border);border-radius:4px;color:var(--muted)}.task-list{list-style:none;margin:0;padding:0}.task-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px var(--divider) var(--border)}.task-main{flex:1;min-width:0;text-align:left;border:none;background:none;padding:0}.task-title{display:block;overflow-wrap:anywhere}.task-meta,.task-when{font-size:13px;color:var(--muted)}.task-meta{overflow-wrap:anywhere}.task-row input[type=checkbox]{width:22px;height:22px;flex:none}.task-when{flex:none}.task-row.is-done .task-title{text-decoration:line-through;color:var(--muted)}.fab{position:fixed;right:max(16px,calc(50% - 304px));bottom:calc(84px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;font-size:24px;background:var(--accent);color:var(--accentText);border:none}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;min-width:0;max-width:160px;text-align:center;padding:14px 2px;font-size:clamp(11px,3.2vw,13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);text-decoration:none}.tabbar a.active{color:var(--accent);font-weight:600}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{width:100%;max-width:640px;max-height:90vh;overflow-y:auto;background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.row{display:flex;gap:10px}.row>*{flex:1;min-width:0}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.actions .danger{margin-right:auto}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.presets{display:grid;gap:10px;border:none;padding:0;margin:16px 0}.preset-option{display:flex;gap:10px;align-items:center;color:var(--text);margin:0}.swatch{width:20px;height:20px;border-radius:4px;border:1px solid var(--border);flex:none}.list-editor{display:grid;gap:8px}.list-editor .row{align-items:center}.login{max-width:360px;margin:15vh auto 0;padding:16px}.login h1{text-align:center}.stylist{margin:16px 0;display:grid;gap:12px}.stylist-preview ul{margin:8px 0;padding-left:20px}.stylist-preview .row{align-items:center}.nudge{color:var(--muted);font-size:14px;margin:0 0 8px}.toast-region{position:fixed;left:0;right:0;bottom:calc(150px + env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none;z-index:20}.toast{margin:0;max-width:90%;padding:8px 14px;border-radius:var(--radius);background:var(--text);color:var(--bg)}.notice{font-size:14px;color:var(--muted)}.chat-page h1{margin-top:0}.chat-log{list-style:none;margin:0;padding:0;display:grid;gap:12px}.chat-empty{text-align:center;color:var(--muted);padding:32px 0}.chat-msg{display:flex;gap:8px;align-items:flex-start;min-width:0}.chat-msg .avatar{width:32px;height:32px;font-size:15px}.chat-user{justify-content:flex-end}.chat-body{display:grid;gap:6px;min-width:0;max-width:calc(100% - 40px)}.chat-bubble{max-width:85%;padding:8px 12px;border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere}.chat-body .chat-bubble{max-width:100%;justify-self:start}.chat-user .chat-bubble{background:var(--accent);color:var(--accentText)}.chat-assistant .chat-bubble{background:var(--surface);border:1px solid var(--border)}.chat-summary{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.chat-summary ul{margin:0;padding:0;list-style:none;flex-basis:100%;overflow-wrap:anywhere}.chat-summary.is-undone ul{text-decoration:line-through}.chat-summary button{padding:2px 10px;font-size:13px}.chat-choices{display:grid;gap:6px}.chat-choices button{text-align:left;overflow-wrap:anywhere}.proposal ul{margin:0 0 8px;padding-left:18px;overflow-wrap:anywhere}.proposal-style{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.proposal-reason,.proposal-status{margin:0;font-size:14px;color:var(--muted)}.proposal .actions{margin-top:8px}.chat-composer{position:sticky;bottom:calc(56px + env(safe-area-inset-bottom));margin-top:16px;background:var(--bg);padding:8px 0}.chat-composer-row{display:flex;gap:8px;align-items:flex-end}.chat-composer textarea{flex:1;min-width:0;resize:none;min-height:42px;max-height:30vh;field-sizing:content}.chat-composer button{flex:none}.chat-thinking{margin:4px 0 0;font-size:13px;color:var(--muted)}.chat-composer .error{margin:4px 0 0}.chat-clear{display:block;margin:8px 0 0 auto;font-size:13px;color:var(--muted)}.app:has(.chat-page) .fab{display:none}.quick-chat{position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto;padding:0 16px;z-index:5}.quick-chat .chat-composer{position:static;margin-top:0}.quick-chat-add{flex:none;width:42px;height:42px;padding:0;border-radius:50%;font-size:22px;background:var(--accent);color:var(--accentText);border:none}.quick-chat-bubble{display:grid;gap:6px;max-height:40vh;overflow-y:auto;box-shadow:0 2px 8px #0000001f}.quick-chat-head{display:flex;gap:8px;align-items:flex-start}.quick-chat-text{flex:1;min-width:0;text-align:left;border:none;background:none;padding:0;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.quick-chat-close{flex:none;min-width:32px;min-height:32px;margin:-6px -8px 0 0;padding:0;border:none;background:none;font-size:18px;color:var(--muted)}.quick-chat-bubble a{font-size:14px;color:var(--accent)}.notice-log{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:.9em}.notice-log time{color:var(--muted)}.chat-notice-badge{justify-self:start;margin-bottom:4px}
