:root{--fg:#1d1d1f;--muted:#6e6e73;--line:#e5e5ea;--accent:#2f6fde;--bad:#c62828;--ok:#2e7d32;--bg:#fff;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,PingFang SC,Noto Sans SC,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}.app,.gate{max-width:640px;margin:0 auto;padding:0 12px 48px}.gate{padding-top:48px}header{background:var(--bg);border-bottom:1px solid var(--line);z-index:1;padding-top:env(safe-area-inset-top);position:sticky;top:0}.tabs{gap:4px;padding:8px 0;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-radius:16px;padding:6px 10px}.tab.on{background:var(--fg);color:#fff}button{font:inherit;background:var(--accent);color:#fff;border:1px solid var(--accent);cursor:pointer;border-radius:8px;min-height:40px;padding:8px 14px}button:disabled{opacity:.4;cursor:default}button.ghost{color:var(--accent);background:0 0}button.link{color:var(--accent);background:0 0;border:none;min-height:32px;padding:4px 6px}button.danger,.link.danger{color:var(--bad)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{font:inherit;border:1px solid var(--line);width:100%;color:var(--fg);background:#fff;border-radius:8px;padding:8px}textarea{resize:vertical}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.row input{width:auto}.grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:.875rem}.error,.neg{color:var(--bad)}.ok{color:var(--ok)}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.capture{flex-direction:column;gap:8px;margin:12px 0;display:flex}.capture textarea{font-size:1.05rem}.capture button{align-self:flex-end}.day-nav{align-items:center;gap:8px;margin:12px 0;display:flex}.day-nav input{flex:1}.records,.items,.people,.insights{margin:0;padding:0;list-style:none}.record{border-bottom:1px solid var(--line);padding:10px 0}.record-head{align-items:center;gap:8px;display:flex}.record-text{white-space:pre-wrap;margin:4px 0}.badge{color:#8a5a00;background:#fff4d6;border-radius:10px;padding:1px 8px;font-size:.75rem}.badge.bad{color:var(--bad);background:#fde7e7}.item{align-items:center;gap:6px;padding:2px 0;font-size:.9rem;display:flex}.tag{color:var(--accent);white-space:nowrap;background:#eef2fb;border-radius:4px;padding:0 6px;font-size:.7rem}.tag-收支{color:var(--ok);background:#eaf6ec}.tag-身心打分{color:#7b3fa0;background:#f6ecfa}.tag-人物提及{color:#a65a1a;background:#fdf0e6}.item-form{border:1px solid var(--line);border-radius:8px;gap:8px;margin:8px 0;padding:8px;display:grid}.field{gap:2px;font-size:.875rem;display:grid}.field>span{color:var(--muted)}.add-item{margin-top:4px}.empty{text-align:center;padding:24px 0}.nightly{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:8px}.score-row{flex-wrap:wrap;align-items:center;gap:2px;margin:4px 0;display:flex}.score-row>span{width:5em;font-size:.875rem}.chip{min-width:32px;min-height:32px;color:var(--fg);background:#f2f2f7;border-color:#0000;padding:0}.chip.on{background:var(--accent);color:#fff}.nightly-done{margin:8px 0}.group h3{margin:16px 0 4px;font-size:.95rem}.task{border-bottom:1px solid var(--line);align-items:flex-start;gap:8px;padding:4px 0;display:flex}.task input[type=checkbox]{width:22px;height:22px;margin-top:6px}.trend{margin:12px 0}.trend svg{background:#fafafa;border-radius:8px;width:100%;height:auto}.trend .line{fill:none;stroke:var(--accent);stroke-width:2px}.trend .dot{fill:var(--accent)}.trend .dot.hollow{fill:#fff;stroke:var(--accent);stroke-width:1.5px}.trend .axis{stroke:var(--line);stroke-dasharray:4 4}.totals{gap:12px;margin:12px 0;display:flex}.totals>div{background:#f6f6f8;border-radius:8px;flex:1;padding:8px}.totals dt{color:var(--muted);font-size:.8rem}.totals dd{margin:0;font-size:1.2rem;font-weight:600}.breakdown{border-collapse:collapse;width:100%;margin:8px 0;font-size:.9rem}.breakdown th,.breakdown td{text-align:left;border-bottom:1px solid var(--line);padding:4px}.dated{align-items:center;gap:8px;display:flex}.person{text-align:left;width:100%;color:var(--fg);border:none;border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:10px 0;display:grid}.mention{border-bottom:1px solid var(--line);padding:6px 0}.insight{border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:10px}.insight>p:first-child{margin-top:0}details{margin:8px 0}
