/* 乐班 · 里屋设计语言 v2 */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:#faf8f2; --ink:#1c1a17; --muted:#8a8478; --line:#e7e1d3;
  --accent:#e8b90c; --seal:#b03a2e; --card:#ffffff;
  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",sans-serif;
}
body{font-family:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:var(--paper);color:var(--ink);max-width:520px;margin:0 auto;padding-bottom:84px;-webkit-font-smoothing:antialiased}
.serif{font-family:var(--font)}
a{color:inherit;text-decoration:none}
/* 顶栏 */
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}
.logotype{line-height:1.3}
.logotype .cn{font-family:var(--font);font-weight:900;font-size:16px;letter-spacing:.1em}
.logotype .en{font-size:8px;letter-spacing:.3em;color:var(--muted);margin-top:1px}
.topbar .u{font-size:12px;color:var(--muted)}
/* 底部导航 */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;background:rgba(250,248,242,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;z-index:20}
.tabbar a{flex:1;text-align:center;padding:10px 4px 14px;font-size:11px;color:var(--muted);letter-spacing:.1em}
.tabbar a .dot{display:block;width:5px;height:5px;border-radius:50%;background:var(--line);margin:0 auto 5px}
.tabbar a.active{color:var(--ink);font-weight:700}
.tabbar a.active .dot{background:var(--accent)}
.tabbar a.big{font-weight:800;font-size:13px}
/* 卡片与排版 */
.wrap{padding:20px}
.eyebrow{font-size:11px;letter-spacing:.26em;color:var(--muted);margin-bottom:10px}
h1.ptitle{font-family:var(--font);font-weight:900;font-size:26px;line-height:1.6;margin-bottom:6px}
.lede{font-size:13px;color:var(--muted);line-height:1.9;margin-bottom:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}
.card h3{font-family:var(--font);font-size:15px;font-weight:700;margin-bottom:8px}
label.flabel{display:block;font-size:12px;letter-spacing:.12em;color:var(--muted);margin:14px 0 8px}
label.flabel:first-child{margin-top:0}
input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:14px;background:#fffdf8;font-family:inherit;color:var(--ink)}
textarea{resize:vertical;line-height:1.8}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.btn{display:block;width:100%;border:none;border-radius:999px;padding:15px;font-size:15px;font-weight:700;cursor:pointer;text-align:center}
.btn.solid{background:var(--ink);color:#fff}
.btn.line{background:none;border:1px solid var(--ink);color:var(--ink)}
.btn.sm{padding:10px;font-size:13px;width:auto;display:inline-block}
.btn:disabled{opacity:.45}
.btnrow{display:flex;gap:10px;margin-top:14px}
.btnrow .btn{margin-top:0}
.muted{color:var(--muted);font-size:12px}
.tip{font-size:12px;color:var(--muted);line-height:1.8;margin-top:10px}
.divider{height:1px;background:var(--line);margin:18px 0}
/* 模块宫格 */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mod{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 14px;position:relative}
.mod .mt{font-family:var(--font);font-weight:700;font-size:15px;margin-bottom:6px}
.mod .md{font-size:12px;color:var(--muted);line-height:1.7}
.mod .go{position:absolute;right:14px;bottom:14px;color:var(--muted);font-size:14px}
.mod.soon{opacity:.45}
.mod.soon .soontag{position:absolute;top:10px;right:10px;font-size:10px;border:1px solid var(--line);border-radius:4px;padding:2px 8px;color:var(--muted);letter-spacing:.1em}
/* banner */
.banner{border:1px solid var(--ink);border-radius:14px;padding:20px;background:#fff;position:relative;margin-bottom:12px}
.banner .btag{position:absolute;top:-11px;left:16px;background:var(--ink);color:#fff;font-size:10px;letter-spacing:.22em;padding:4px 12px;border-radius:4px}
.banner h3{font-family:var(--font);font-size:18px;font-weight:900;margin:4px 0 8px}
.banner p{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:14px}
/* 输出 */
.output{background:#fffdf4;border:1px solid var(--line);border-radius:12px;padding:16px;font-size:14px;line-height:2.1;white-space:pre-wrap}
.output .md-h{font-size:16px;font-weight:800;margin:14px 0 8px;white-space:normal}
.output .md-h:first-child{margin-top:0}
.output p{margin:0 0 10px;white-space:normal}
.output ul,.output ol{margin:0 0 10px;padding-left:22px;white-space:normal}
.output li{margin-bottom:4px}
.md-table{width:100%;border-collapse:collapse;font-size:13px;margin:0 0 12px;white-space:normal}
.md-table th,.md-table td{border:1px solid var(--line);padding:6px 8px;text-align:left}
.md-table th{background:#f7f5ee}
.sealbox{position:relative}
.seal{position:absolute;top:-10px;right:12px;background:var(--seal);color:#fff;font-size:10px;font-weight:700;border-radius:4px;padding:3px 10px;transform:rotate(5deg);letter-spacing:.12em}
.meta-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin-bottom:10px}
/* 记录列表 */
.day-group{margin-bottom:6px}
.day-head{font-size:11px;letter-spacing:.2em;color:var(--muted);padding:14px 0 8px}
.note-item{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:8px;font-size:13px;line-height:1.8}
.note-item input[type=checkbox]{width:18px;height:18px;margin-top:3px;accent-color:var(--ink)}
.note-item .t{flex:1}
.note-item .x{border:none;background:none;color:#ccc;font-size:18px;cursor:pointer;line-height:1}
/* 选项卡片（模板/老板） */
.optgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.opt{border:1px solid var(--line);border-radius:12px;padding:14px 8px;text-align:center;background:#fff;cursor:pointer}
.opt .ot{font-weight:700;font-size:14px;margin-bottom:4px}
.opt .od{font-size:11px;color:var(--muted);line-height:1.6}
.opt.sel{border:1.5px solid var(--ink);background:#fffdf4}
.optgrid.boss{grid-template-columns:1fr 1fr}

/* ---- 底部速记：tabbar 黄色大按钮 + 弹窗 ---- */
.tabfab{flex:1.2;background:var(--accent);border:none;border-radius:14px;margin:8px 10px;padding:10px 0;font-size:15px;font-weight:800;color:var(--ink);cursor:pointer;letter-spacing:.05em}
.sheet-mask{position:fixed;inset:0;background:rgba(28,26,23,.4);z-index:50;display:none}
.sheet-mask.open{display:block}
.sheet{position:fixed;left:50%;bottom:0;width:100%;max-width:520px;transform:translateX(-50%) translateY(105%);background:var(--card);border-radius:20px 20px 0 0;padding:16px 18px calc(20px + env(safe-area-inset-bottom));z-index:51;transition:transform .28s ease;box-shadow:0 -6px 30px rgba(0,0,0,.15)}
.sheet.open{transform:translateX(-50%) translateY(0)}
.sheet textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:15px;resize:none;box-sizing:border-box;font-family:inherit}
.toast{position:fixed;left:50%;bottom:120px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 20px;border-radius:999px;font-size:14px;z-index:60;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1}

/* ---- 记录管理卡片 ---- */
.note-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.note-card .nc-text{font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.note-card .nc-meta{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.note-card .nc-date{font-size:11px;color:var(--muted)}
.note-card .nc-actions{display:flex;gap:8px}
.btn.xs{padding:6px 14px;font-size:12px;width:auto;display:inline-block;border-radius:999px}
.btn.danger{color:var(--seal);border-color:var(--seal)}
.note-card textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:14px;box-sizing:border-box;resize:vertical;font-family:inherit;line-height:1.8}
