:root{--paper: #f7f1ea;--paper-deep: #efe6da;--card: #fffdf9;--ink: #2b2622;--ink-soft: #5c534b;--muted: #9a8f84;--rule: #e6dccf;--accent: #c96b4a;--accent-soft: #f4dccf;--danger: #b4403a;--radius: 18px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Segoe UI", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent)}button{font:inherit}input,textarea,select{font:inherit;color:inherit}@media(max-width:700px),(pointer:coarse){input,select,textarea{font-size:16px}}.shell{display:flex;flex-direction:column;height:100%;max-width:760px;margin:0 auto}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 10px;border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:2}.top .name{font-size:18px;font-weight:600;letter-spacing:.01em}.top .sub{font-size:12px;color:var(--muted);margin-left:8px}.top nav{display:flex;gap:6px}.top nav a,.top nav button{color:var(--ink-soft);text-decoration:none;font-size:13px;padding:6px 10px;border-radius:999px;border:1px solid transparent;background:none;cursor:pointer}.top nav a:hover,.top nav button:hover{border-color:var(--rule);background:var(--card)}.top nav a.on{background:var(--card);border-color:var(--rule)}.log{flex:1;overflow-y:auto;padding:18px 16px 12px;display:flex;flex-direction:column;gap:6px}.day{align-self:center;font-size:12px;color:var(--muted);margin:14px 0 6px}.row{display:flex;flex-direction:column;gap:4px;max-width:78%}.row.me{align-self:flex-end;align-items:flex-end}.row.it{align-self:flex-start;align-items:flex-start}.bubble{padding:10px 14px;border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 1px #2b26220a}.me .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:6px}.it .bubble{background:var(--card);border:1px solid var(--rule);border-bottom-left-radius:6px}.it .bubble.err{border-color:var(--danger);color:var(--danger);font-size:13px}.meta{font-size:11px;color:var(--muted);padding:0 6px;display:flex;gap:8px;align-items:center}.meta button{background:none;border:0;color:var(--muted);cursor:pointer;padding:0;font-size:11px}.meta button:hover{color:var(--danger)}.typing{display:inline-flex;gap:4px;padding:12px 14px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{display:flex;gap:10px;align-items:flex-end;padding:10px 14px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:var(--paper)}.composer textarea{flex:1;resize:none;min-height:44px;max-height:160px;padding:11px 14px;border-radius:22px;border:1px solid var(--rule);background:var(--card);outline:none;line-height:1.45}.composer textarea:focus{border-color:var(--accent)}.send{height:44px;padding:0 18px;border-radius:22px;border:0;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.send:disabled{opacity:.45;cursor:default}.send.stop{background:var(--ink-soft)}.empty{margin:auto;text-align:center;color:var(--muted);font-size:14px;padding:40px 20px}.page{flex:1;overflow-y:auto;padding:20px 18px 60px;display:flex;flex-direction:column;gap:22px}h2{font-size:16px;font-weight:600;margin:0 0 10px}h2 small{font-weight:400;color:var(--muted);font-size:12px;margin-left:8px}.card{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.hint{font-size:12.5px;color:var(--muted);line-height:1.6;margin:0}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;color:var(--ink-soft)}.input{padding:9px 12px;border-radius:10px;border:1px solid var(--rule);background:#fff;outline:none;width:100%}.input:focus{border-color:var(--accent)}.rowline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{padding:8px 14px;border-radius:999px;border:1px solid var(--rule);background:var(--card);cursor:pointer;color:var(--ink)}.btn:hover{border-color:var(--ink-soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{padding:6px 12px;border-radius:999px;border:1px solid var(--rule);background:none;cursor:pointer;color:var(--ink-soft)}.tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--paper-deep);color:var(--ink-soft)}.badge.ok{background:#dfeee0;color:#2f6b3a}.badge.bad{background:#f3d9d7;color:var(--danger)}.note{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--rule);font-size:14px}.note:last-child{border-bottom:0}.note .kind{font-size:11px;color:var(--muted);padding-top:3px;white-space:nowrap}.note .txt{line-height:1.5}.note .subj{font-size:12px;color:var(--muted);margin-top:2px}.note .ops{display:flex;gap:8px}.note .ops button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:12px;padding:0}.note .ops button:hover{color:var(--ink)}.note.editing{grid-template-columns:1fr}.note textarea{width:100%;min-height:60px;padding:8px 10px;border-radius:8px;border:1px solid var(--rule);resize:vertical}.journal{font-size:14px;display:flex;flex-direction:column;gap:6px}.journal b{font-weight:500;color:var(--ink-soft);margin-right:8px}.hello{margin:auto;max-width:420px;width:100%;padding:24px;display:flex;flex-direction:column;gap:22px}.hello h1{font-size:26px;font-weight:600;margin:0;line-height:1.3}.hello p{margin:0;color:var(--ink-soft)}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;max-width:90vw;z-index:5}
