:root { --ink:#292a28; --quiet:#787974; --line:#deded7; --paper:#f5f4ee; --wash:#e8ede4; --accent:#405f55; --red:#9a6259; --warm:#8f704b; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; color:var(--ink); background:var(--paper); font-family:"Microsoft YaHei UI","Noto Sans SC",Arial,sans-serif; }
button, textarea { font:inherit; }
button { cursor:pointer; }
.shell { min-height:100vh; display:grid; grid-template-columns:252px minmax(0,1fr); }
.rail { min-height:100vh; padding:42px 27px 28px; border-right:1px solid var(--line); display:flex; flex-direction:column; background:#efefe9; }
.wordmark { color:var(--ink); text-decoration:none; font:600 24px/1 Georgia,"Songti SC",serif; letter-spacing:0; }
.wordmark span { color:#b78d4d; }
.rail-note { margin:36px 0 47px; color:var(--quiet); font-size:13px; line-height:1.85; }
nav { display:grid; gap:7px; }
.nav-item { min-height:45px; display:grid; grid-template-columns:25px 1fr auto; align-items:center; padding:0 10px; color:#5b5d58; text-decoration:none; font-size:14px; border-radius:5px; }
.nav-item:hover, .nav-item.active { background:#e1e5dd; color:#263e36; }
.nav-item small { color:#898a84; font:12px Georgia,serif; }
.nav-mark { font-size:16px; }.sun { color:#b38341; }.rain { color:#9b7a71; font-size:11px; }.thread { color:#608178; font-size:19px; }
.rail-footer { margin-top:auto; color:#898a84; font-size:12px; }.status-dot { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:#759184; }
.content { width:min(860px,100%); margin:0 auto; padding:34px 53px 70px; }
.topline { display:flex; justify-content:space-between; align-items:center; padding-bottom:33px; border-bottom:1px solid var(--line); }.top-actions { display:flex; align-items:center; gap:20px; }.date-line { margin:0; color:#8a8b85; font-size:13px; }
.text-button,.empty-state button { padding:0; border:0; background:transparent; color:var(--accent); font-size:13px; }.text-button b { margin-left:5px; font-size:18px; font-weight:400; vertical-align:-1px; }
.title-block { padding:57px 0 38px; }.eyebrow { margin:0 0 13px; color:#85867f; font-size:11px; letter-spacing:1.5px; }.title-block h1 { margin:0; font:normal clamp(42px,6vw,64px)/1.06 Georgia,"Songti SC",serif; letter-spacing:0; }.intro { max-width:510px; margin:18px 0 0; color:#6e706a; font-size:15px; line-height:1.75; }
.feature-note { display:flex; justify-content:space-between; align-items:flex-end; gap:25px; padding:18px 21px; border-left:3px solid #789184; background:#e9eee7; }.feature-note--muted { border-color:#aa7a70; background:#eee9e5; }.feature-note--warm { border-color:#ad8759; background:#f0ece1; }.feature-note p { max-width:500px; margin:0; color:#505853; font-size:13px; line-height:1.75; }.feature-note span { flex:0 0 auto; color:#7a817b; font-size:11px; }
.promise-overview { display:grid; grid-template-columns:repeat(3,1fr); margin-top:27px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.promise-stat { min-height:96px; display:flex; flex-direction:column; justify-content:center; padding:17px 20px; border-right:1px solid var(--line); }.promise-stat:last-child { border-right:0; }.promise-stat strong { color:#3d5149; font:normal 31px/1 Georgia,"Songti SC",serif; }.promise-stat span { margin-top:9px; color:#868780; font-size:12px; }.promise-stat--done strong { color:#6b8378; }.promise-stat--waiting strong { color:#9b7955; }
.records { margin-top:51px; }.records-head { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:13px; border-bottom:1px solid #bfc1b9; }.records-head p { margin:0; font:600 13px/1 Georgia,"Songti SC",serif; letter-spacing:.8px; }.records-head span { color:#888a84; font-size:12px; }.records-head--filters { align-items:center; }.filter-tabs { display:flex; gap:2px; padding:3px; background:#ebebe5; }.filter-tab { min-width:51px; min-height:27px; padding:0 8px; border:0; color:#777973; background:transparent; font-size:11px; }.filter-tab.active { color:#405f55; background:#faf9f4; box-shadow:0 1px 2px rgba(35,42,36,.08); }
.record-list { display:grid; }.record { position:relative; display:grid; grid-template-columns:104px minmax(0,1fr) 74px; gap:15px; align-items:start; padding:22px 0; border-bottom:1px solid var(--line); }.record-date { color:#888a84; padding-top:2px; font:12px Georgia,"Songti SC",serif; }.record-content { margin:0; color:#383a36; font-size:15px; line-height:1.7; white-space:pre-wrap; }.record-actions { display:flex; justify-content:flex-end; gap:9px; }.record-action { width:28px; height:28px; padding:0; border:1px solid transparent; color:#8b8d87; background:transparent; border-radius:50%; font-size:14px; }.record-action:hover { border-color:#ced0c9; color:#384f47; }.record.done .record-content { color:#999b95; text-decoration:line-through; text-decoration-thickness:1px; }.record.done .record-date { color:#a5a7a1; }
.empty-state { padding:65px 0; text-align:center; color:#84867f; }.empty-state span { display:block; margin-bottom:15px; color:#a08255; font-size:23px; }.empty-state p { margin:0 0 16px; font-size:14px; }.empty-state button { border-bottom:1px solid #8fa39a; padding-bottom:2px; }
.entry-dialog { width:min(520px,calc(100% - 32px)); padding:0; border:1px solid #d2d4cd; color:var(--ink); background:#faf9f5; box-shadow:0 24px 70px rgba(42,45,39,.18); }.entry-dialog::backdrop { background:rgba(34,38,32,.23); }.entry-dialog form { padding:26px; }.dialog-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; }.dialog-top p { margin:0; font:20px/1 Georgia,"Songti SC",serif; }.icon-button { width:28px; height:28px; border:0; border-radius:50%; color:#6c6e68; background:#edede7; font-size:20px; line-height:1; }.entry-dialog label { display:grid; gap:10px; color:#5f615b; font-size:13px; }.entry-dialog textarea { width:100%; resize:vertical; padding:12px; border:1px solid #d4d6cf; outline:none; color:var(--ink); background:white; line-height:1.65; }.entry-dialog textarea:focus { border-color:#789184; }.dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:19px; }.quiet-button,.solid-button { min-height:37px; padding:0 15px; border-radius:4px; font-size:13px; }.quiet-button { color:#666862; border:1px solid #d1d3cc; background:transparent; }.solid-button { border:1px solid var(--accent); color:white; background:var(--accent); }
.auth-gate { position:fixed; z-index:10; inset:0; display:grid; place-items:center; padding:22px; background:rgba(245,244,238,.96); }.auth-panel { width:min(370px,100%); padding:34px; border:1px solid #d7d8d0; background:#faf9f5; box-shadow:0 20px 60px rgba(43,46,40,.11); }.auth-panel h2 { margin:9px 0 10px; font:normal 31px/1.15 Georgia,"Songti SC",serif; }.auth-panel > p:not(.eyebrow):not(.auth-error) { margin:0 0 25px; color:#73756f; font-size:13px; line-height:1.75; }.auth-panel label { display:grid; gap:8px; color:#5f615b; font-size:12px; }.auth-panel input { min-height:42px; padding:0 11px; border:1px solid #d4d6cf; outline:none; color:var(--ink); background:white; font:16px/1 Arial,sans-serif; }.auth-panel input:focus { border-color:#789184; }.auth-panel .solid-button { width:100%; margin-top:18px; }.auth-error { margin:11px 0 0; color:#9a6259; font-size:12px; }
.auth-gate[hidden] { display:none; }
@media (max-width:700px) { .shell { display:block; }.rail { min-height:auto; padding:22px 20px 13px; border-right:0; border-bottom:1px solid var(--line); }.rail-note,.rail-footer { display:none; } nav { grid-template-columns:repeat(3,1fr); gap:2px; margin-top:20px; }.nav-item { grid-template-columns:18px 1fr; padding:0 5px; font-size:12px; }.nav-item small { display:none; }.content { padding:23px 21px 48px; }.topline { padding-bottom:23px; }.title-block { padding:42px 0 29px; }.feature-note { display:block; }.feature-note span { display:block; margin-top:10px; }.promise-overview { margin-top:20px; }.promise-stat { min-height:78px; padding:13px 11px; }.promise-stat strong { font-size:25px; }.promise-stat span { font-size:11px; }.records-head--filters { align-items:flex-start; gap:13px; flex-direction:column; }.record { grid-template-columns:72px minmax(0,1fr) 58px; gap:9px; }.record-content { font-size:14px; } }
