:root{color-scheme:light;--ink:#2d2823;--muted:#766d64;--paper:#f7f2e9;--card:#fffdfa;--line:#dfd3c4;--red:#963b35;--green:#316a46;--gold:#bd8541;font-family:"Microsoft YaHei UI","Noto Sans SC",sans-serif}
*{box-sizing:border-box}
body{min-height:100dvh;margin:0;color:var(--ink);background:radial-gradient(circle at top right,#ead9c2 0,transparent 28rem),var(--paper)}
button,textarea{font:inherit}
header{display:flex;justify-content:space-between;align-items:end;max-width:720px;margin:auto;padding:24px 20px 16px;border-bottom:1px solid var(--line)}
.eyebrow{margin:0 0 4px;color:var(--red);font-size:.72rem;font-weight:700;letter-spacing:.12em}
h1{margin:0;font:700 1.8rem STKaiti,KaiTi,serif;letter-spacing:.08em}
.progress{text-align:right}.progress strong,.progress span{display:block}.progress strong{font-size:1.1rem}.progress span{margin-top:3px;color:var(--muted);font-size:.78rem}
main{max-width:720px;margin:auto;padding:18px 18px 128px}
article{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 14px 40px rgba(58,39,24,.08)}
.identity{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;color:var(--muted);font-size:.82rem}.identity strong{padding:5px 10px;border-radius:999px;background:#f0e4d5;color:var(--red);font-size:.82rem}
.source{margin:14px 0;font:1.12rem/2 STSong,SimSun,serif}.source mark{padding:3px 2px;border-radius:3px;background:#f2d28d;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.context{margin:0;color:var(--muted);font:0.85rem/1.7 STSong,SimSun,serif}
audio{width:100%;margin-top:22px}.duration{margin:6px 0 0;text-align:right;color:var(--muted);font-size:.75rem}
.actions{position:fixed;right:0;bottom:0;left:0;z-index:5;display:grid;grid-template-columns:1fr 1.35fr;gap:12px;padding:12px max(18px,calc((100vw - 684px)/2)) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(247,242,233,.94);backdrop-filter:blur(14px)}
button{min-height:54px;border:0;border-radius:14px;font-weight:700;cursor:pointer}button:disabled{opacity:.5}.approve{color:white;background:var(--green);font-size:1.05rem}.rerecord{color:var(--red);background:#f2ddd7;font-size:1.05rem}
.empty,.error{padding:52px 24px;text-align:center;border:1px solid var(--line);border-radius:18px;background:var(--card)}.empty strong,.error strong{display:block;font-size:1.1rem}.empty p,.error p{color:var(--muted);line-height:1.7}.error button{padding:0 22px;background:#e8ddce;color:var(--ink)}
dialog{width:min(92vw,560px);padding:0;border:0;border-radius:20px;background:var(--card);box-shadow:0 24px 80px rgba(30,20,12,.28)}dialog::backdrop{background:rgba(35,27,21,.52)}dialog form{display:grid;gap:12px;padding:20px}.dialog-head{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem}.plain{min-height:36px;width:36px;background:transparent;font-size:1.5rem}label{color:var(--muted);font-size:.83rem}textarea{width:100%;padding:12px;border:1px solid #cabbab;border-radius:12px;line-height:1.6;resize:vertical}.note-error{min-height:1.2em;margin:0;color:var(--red);font-size:.8rem}.submit-rerecord{color:white;background:var(--red)}
.saving{position:fixed;top:18px;left:50%;z-index:10;transform:translateX(-50%);padding:9px 14px;border-radius:999px;background:#302a25;color:white;font-size:.82rem;box-shadow:0 6px 24px rgba(0,0,0,.2)}
@media(max-width:480px){header{padding-top:18px}h1{font-size:1.55rem}main{padding-right:12px;padding-left:12px}article{padding:17px}.source{font-size:1.06rem}.actions{padding-right:12px;padding-left:12px}}
