:root{--brand:#b91c1c;--brand2:#991b1b;--bg:#f7f4ef;--surface:#fff;--text:#211d1a;--muted:#665f59;--line:#e5ddd5;--ok:#18794e;--warn:#9a6700;--danger:#b42318;--shadow:0 10px 28px rgba(55,36,24,.08);--radius:18px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;background:var(--bg);color:var(--text);font-size:16px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}.app-shell{max-width:760px;margin:auto;min-height:100dvh;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 20px 14px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}h1{font-size:1.45rem;margin:0}h2{font-size:1.05rem;margin:0}.eyebrow{font-size:.78rem;color:var(--brand);font-weight:750;margin:0 0 2px}.icon-btn{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--text)}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}main{padding:16px}.view{display:none}.view.active{display:grid;gap:16px;animation:fade .18s ease}.hero-card,.card,.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-card{text-align:center;padding:18px}.status-dot{display:inline-block;width:8px;height:8px;background:var(--ok);border-radius:50%;margin-right:6px}.mic{display:grid;place-items:center;width:92px;height:92px;margin:26px auto 14px;border:0;border-radius:50%;background:var(--brand);color:white;box-shadow:0 12px 30px color-mix(in srgb,var(--brand) 30%,transparent)}.mic.listening{animation:pulse 1s infinite}.mic svg{width:42px;height:42px}.hint{color:var(--muted);margin:6px 0 12px}.transcript{min-height:48px;padding:12px;border-radius:12px;background:var(--bg);text-align:left}.card{padding:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.text-btn{border:0;background:transparent;color:var(--brand);font-weight:700;min-height:44px}.compact-form label,.card>label{display:grid;gap:6px;margin:12px 0;color:var(--muted);font-size:.88rem;font-weight:650}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}input,select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);padding:10px 12px}.primary,.secondary,.danger,.file-label{width:100%;min-height:50px;border-radius:13px;padding:12px 16px;font-weight:750}.primary{border:0;background:var(--brand);color:white}.primary:disabled{opacity:.4;cursor:not-allowed}.secondary,.file-label{border:1px solid var(--line);background:var(--surface);color:var(--text);text-align:center}.danger{border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));background:transparent;color:var(--danger)}.list{display:grid;gap:10px}.list.empty{color:var(--muted);padding:20px 0;text-align:center}.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:var(--bg);border-radius:13px}.list-main{min-width:0}.list-title{font-weight:750}.list-meta{font-size:.82rem;color:var(--muted)}.row-actions{display:flex;gap:6px}.small-btn{min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:10px;color:var(--text)}.pill{font-size:.78rem;border-radius:999px;padding:5px 9px;background:#fef2f2;color:var(--brand);font-weight:700}.total-row{display:flex;justify-content:space-between;padding:16px 0}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{padding:16px}.metric span{display:block;color:var(--muted);font-size:.82rem}.metric strong{font-size:1.5rem}.notice{padding:12px;border-left:4px solid var(--warn);background:#fffbeb;color:#6b4e00;border-radius:8px;font-size:.88rem}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(760px,100%);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 95%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(18px)}.nav-btn{min-height:58px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;font-size:.7rem;border-radius:12px}.nav-btn svg{width:22px}.nav-btn.active{color:var(--brand);background:#fef2f2}.toast{position:fixed;z-index:30;left:50%;bottom:110px;transform:translate(-50%,20px);opacity:0;background:#292524;color:white;padding:12px 18px;border-radius:12px;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(560px,calc(100% - 24px));border:0;border-radius:20px;background:var(--surface);color:var(--text);padding:0;box-shadow:0 20px 60px #0004}dialog::backdrop{background:#211d1a99}dialog form{padding:18px}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-actions{margin-top:18px}.dialog-actions>*{width:auto;flex:1}.order-preview{white-space:pre-wrap;padding:14px;background:var(--bg);border-radius:12px;max-height:45vh;overflow:auto}.share-line{background:#06c755!important}.admin-only.hidden{display:none}@media(min-width:700px){main{padding:24px}.hero-card{padding:28px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#181614;--surface:#24211e;--text:#f8f5f2;--muted:#c9c1bb;--line:#443e39;--shadow:none}.notice{background:#3d3216;color:#ffe7a3}.pill,.nav-btn.active{background:#40191b}}:root[data-theme="dark"]{--bg:#181614;--surface:#24211e;--text:#f8f5f2;--muted:#c9c1bb;--line:#443e39;--shadow:none}.primary:active,.secondary:active,.small-btn:active,.nav-btn:active{opacity:.72}@keyframes fade{from{opacity:0;transform:translateY(4px)}}@keyframes pulse{50%{box-shadow:0 0 0 16px color-mix(in srgb,var(--brand) 18%,transparent)}}
