*{box-sizing:border-box;margin:0;padding:0}:root{--paper: #f4ecd8;--ink: #3a3226;--seal: #9c3b2e;--line: #d8c9a3}body{font-family:Songti SC,STSong,SimSun,serif;background:#e8dfc8;color:var(--ink);line-height:1.8}.app{max-width:760px;margin:0 auto;padding:32px 20px 80px}header.brand{text-align:center;margin-bottom:32px}header.brand h1{font-size:34px;letter-spacing:6px;color:var(--seal)}header.brand p{font-size:14px;opacity:.7;margin-top:6px}.card{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:20px 22px;margin-bottom:18px;box-shadow:0 2px 8px #0000000f}input,textarea{width:100%;font-family:inherit;font-size:15px;padding:10px 12px;margin:6px 0 12px;border:1px solid var(--line);border-radius:3px;background:#fbf6e9;color:var(--ink)}textarea{min-height:140px;resize:vertical}button{font-family:inherit;font-size:15px;padding:9px 18px;border:none;border-radius:3px;background:var(--seal);color:#fdf3e3;cursor:pointer;letter-spacing:2px;margin-right:8px}button.ghost{background:transparent;color:var(--seal);border:1px solid var(--seal)}button:hover{opacity:.88}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tabs button{background:transparent;color:var(--ink);border:1px solid var(--line)}.tabs button.active{background:var(--seal);color:#fdf3e3;border-color:var(--seal)}.letter-item{border-bottom:1px dashed var(--line);padding:12px 0;cursor:pointer}.letter-item:last-child{border-bottom:none}.letter-item h3{font-size:17px;margin-bottom:4px}.letter-item .meta{font-size:12px;opacity:.65}.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:10px;background:#e7d9b4;margin-left:6px}.badge.transit{background:#cfe0d8}.friend{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line)}.empty{text-align:center;opacity:.5;padding:30px 0;font-style:italic}.poem{text-align:center;font-style:italic;opacity:.6;margin:24px 0}
