:root{--bg:#efeae4;--surface:#fff;--bubble-her:#fff;--bubble-proactive:#e9e2da;--bubble-me:#2f6f62;--fg:#23201d;--fg-inverse:#fff;--fg-muted:#7a7268;--line:#ddd5cc;--danger:#a4442f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:16px;line-height:1.6}#root{justify-content:center;display:flex}.page{background:var(--surface);flex-direction:column;width:100%;max-width:720px;height:100dvh;display:flex}.topbar{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.topbar-title{font-weight:600}.topbar a{color:var(--fg-muted);text-decoration:none}.body{flex:1;min-height:0;padding:16px;overflow-y:auto}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--fg-muted);font-size:14px}input,select{border:1px solid var(--line);font:inherit;background:var(--surface);color:var(--fg);border-radius:10px;padding:10px 12px}button{border:1px solid var(--line);font:inherit;background:var(--surface);color:var(--fg);cursor:pointer;border-radius:10px;padding:10px 14px}button[type=submit]{background:var(--bubble-me);border-color:var(--bubble-me);color:var(--fg-inverse)}button:disabled{opacity:.5;cursor:default}.error{color:var(--danger);font-size:14px}.muted{color:var(--fg-muted);font-size:14px}.rest-hint{background:var(--bubble-proactive);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:14px;display:flex}.boot{height:100dvh;color:var(--fg-muted);justify-content:center;align-items:center;display:flex}.timeline{flex-direction:column;display:flex}.day{flex-direction:column;gap:6px;display:flex}.day-label{color:var(--fg-muted);align-self:center;margin:14px 0 6px;font-size:12px}.row{flex-direction:column;gap:2px;max-width:82%;display:flex}.row-her{align-self:flex-start}.row-me{align-self:flex-end;align-items:flex-end}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:9px 13px}.bubble-her{background:var(--bubble-her);border:1px solid var(--line)}.bubble-proactive{background:var(--bubble-proactive);border-color:var(--bubble-proactive);color:var(--fg)}.bubble-me{background:var(--bubble-me);color:var(--fg-inverse)}.time{color:var(--fg-muted);font-size:11px}.typing{align-items:center;gap:4px;padding:13px;display:flex}.typing .dot{background:var(--fg-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typing-blink}.typing .dot:nth-child(2){animation-delay:.15s}.typing .dot:nth-child(3){animation-delay:.3s}@keyframes typing-blink{0%,60%,to{opacity:.25}30%{opacity:1}}.composer{border-top:1px solid var(--line);flex:none;gap:8px;padding:10px 16px;display:flex}.composer input{flex:1;min-width:0}.footer{border-top:1px solid var(--line);flex-direction:column;flex:none;gap:6px;padding:12px 16px 16px;display:flex}.footer p{margin:0}.footer button{align-self:flex-start}@media (prefers-reduced-motion:reduce){.typing .dot{opacity:.6;animation:none}}.setting{flex-direction:column;gap:8px;margin-bottom:28px;display:flex}.setting h2{margin:0;font-size:15px}.setting>button{align-self:flex-start}.trait{justify-content:space-between;align-items:center;gap:12px;display:flex}.memory-row{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.memory-row p{flex:1;min-width:0;margin:0}.rose-output{border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:10px;margin:16px 0 0;padding:12px;font-size:13px}
