:root{--bg:#e9edf1;--surface:#fff;--ink:#18212c;--muted:#5a6573;--rule:#cdd4dc;--accent:#b3122b;--accent-ink:#fff;--field:#f6f8fa;--ok:#1f6b45;--paper:#fff;--paper-ink:#1a1a1a}@media (prefers-color-scheme:dark){:root{--bg:#11161c;--surface:#19212a;--ink:#e4e9ef;--muted:#9aa5b2;--rule:#2e3945;--accent:#e0475c;--field:#121920;--ok:#5bc08a;--paper:#f4f4f2}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);overflow-x:hidden;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;font-size:15px;line-height:1.6;overflow-wrap:anywhere}a{color:inherit}code{font-size:.9em;overflow-wrap:anywhere}.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--rule);background:var(--surface)}.brand{font-family:"Noto Serif TC",serif;font-weight:700;font-size:1.2rem;text-decoration:none;white-space:nowrap}.nav{display:flex;gap:16px;font-size:.92rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}.nav::-webkit-scrollbar{display:none}.nav a{text-decoration:none;color:var(--muted);white-space:nowrap;flex-shrink:0;padding:6px 0}.nav a:hover{color:var(--ink)}@media (max-width:640px){.topbar{flex-wrap:wrap;padding:10px 16px;gap:4px}.nav{width:100%;gap:18px;font-size:.95rem}.wrap{padding:16px 16px 48px}.panel{padding:16px;border-radius:8px}h1{font-size:1.35rem}.list li{flex-direction:column;gap:6px}.list .meta{white-space:normal;text-align:left;display:flex;gap:10px;align-items:center}.impersonate{padding:8px 16px}.btn,button{padding:10px 14px}}.chat>*,.grid>*,.list li>*,.row>*{min-width:0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px}.table-wrap .table{min-width:720px}h1{font-family:"Noto Serif TC",serif;font-size:1.6rem;margin:0 0 4px}h2{font-size:1.05rem;margin:0 0 10px}.lead{color:var(--muted);margin:0 0 20px}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:20px;margin-bottom:20px}.grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.grid{grid-template-columns:1fr}}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:520px){.row{grid-template-columns:1fr}}label{display:block;font-size:.85rem;color:var(--muted);margin:12px 0 4px}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--rule);border-radius:6px;padding:8px 10px}textarea{min-height:220px;resize:vertical;line-height:1.7}input[type=checkbox]{width:auto;margin-right:8px}.check{display:flex;align-items:flex-start;color:var(--ink);font-size:.9rem;margin-top:10px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.flag{border-color:var(--accent)!important}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}.btn,button{font:inherit;border-radius:6px;padding:8px 16px;cursor:pointer;border:1px solid var(--rule);background:var(--surface);color:var(--ink);text-decoration:none;display:inline-block}.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:500}button.danger{color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.link{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;font-size:inherit}.impersonate{background:var(--accent);padding:8px 24px;font-size:.9rem}.impersonate,.impersonate button.link{color:var(--accent-ink)}.chat{display:grid;grid-template-columns:240px 1fr;grid-gap:16px;gap:16px;align-items:start}@media (max-width:800px){.chat{grid-template-columns:1fr}}.chat-side .list.compact li{padding:6px 0;display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--rule)}.chat-side .list.compact li.active{font-weight:600}.chat-main{display:flex;flex-direction:column;min-height:70vh}.chat-context{margin-bottom:8px}.chat-log{flex:1 1;overflow-y:auto;padding:4px 0}.bubble{margin:10px 0;max-width:92%}.bubble.user{margin-left:auto}.bubble pre{white-space:pre-wrap;font-family:inherit;margin:0;padding:10px 14px;border-radius:10px;background:var(--field);line-height:1.6}.bubble.user pre{background:var(--accent);color:var(--accent-ink)}.bubble-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;align-items:center}.chat-input{display:flex;gap:8px;margin-top:8px;position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);padding-top:8px}@media (max-width:640px){.chat-main{min-height:60vh}.bubble{max-width:100%}}.chat-input textarea{flex:1 1;margin:0;min-height:0}.chat-context .files li,.chat-context textarea{justify-content:flex-start}.elapsed{color:var(--muted);font-size:.85rem}.listen-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.player{position:-webkit-sticky;position:sticky;top:0;z-index:5;padding:12px 16px}.player-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}.player .time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.listen-tabs{display:none;gap:8px;margin:8px 0}.listen-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start}.listen-col{max-height:calc(100vh - 220px);overflow-y:auto}.transcript .seg{display:flex;gap:10px;padding:6px 8px;border-radius:6px;cursor:pointer;line-height:1.7}.transcript .seg:hover{background:var(--field)}.transcript .seg.active{background:rgba(179,18,43,.12);box-shadow:inset 3px 0 0 var(--accent)}.memo-item .t,.transcript .t{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--accent);font-size:.8rem;min-width:52px;flex-shrink:0;padding-top:2px}.memo-sync h3{font-size:1rem;margin:16px 0 6px}.memo-item{margin:0;padding:6px 8px;border-radius:6px;line-height:1.7;display:flex;gap:10px}.memo-item.link{cursor:pointer}.memo-item.link:hover{background:var(--field)}.memo-item.active{background:rgba(179,18,43,.12);box-shadow:inset 3px 0 0 var(--accent)}@media (max-width:800px){.listen-tabs{display:flex}.listen-grid{grid-template-columns:1fr}.listen-col{display:none;max-height:none}.listen-col.show{display:block}}.table{width:100%;border-collapse:collapse;margin-top:12px;font-size:.92rem}.table td,.table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top}.table th{font-weight:500;font-size:.85rem}.status,.table th{color:var(--muted)}.status{font-size:.88rem;min-height:1.4em;margin-top:10px}.err{color:var(--accent)}.ok{color:var(--ok)}.hint{font-size:.85rem;color:var(--muted);margin:4px 0 0;overflow-wrap:anywhere}.namebar{margin-top:14px;padding:10px 12px;border-left:3px solid var(--accent);background:var(--field);font-family:"Noto Serif TC",serif;word-break:break-all}.namebar small{display:block;font-family:Noto Sans TC,sans-serif;color:var(--muted);font-size:.78rem}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}.list li:last-child{border-bottom:0}.list .t{font-family:"Noto Serif TC",serif;word-break:break-all}.list .meta{color:var(--muted);font-size:.82rem;white-space:nowrap;text-align:right;flex-shrink:0}.badge{display:inline-block;font-size:.78rem;padding:1px 8px;border-radius:10px;border:1px solid var(--rule);color:var(--muted)}.badge.done{color:var(--ok);border-color:var(--ok)}.badge.failed,.badge.review{color:var(--accent);border-color:var(--accent)}.files{list-style:none;margin:10px 0 0;padding:0;font-size:.85rem}.files li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--rule);flex-wrap:wrap}.bar{height:4px;background:var(--rule);border-radius:2px;overflow:hidden;margin-top:4px}.bar>div{height:100%;background:var(--accent)}.paper{background:var(--paper);color:var(--paper-ink);border:1px solid var(--rule);border-radius:4px;padding:36px 40px;font-family:"Noto Serif TC",PMingLiU,serif;line-height:1.85;font-size:.95rem;max-height:80vh;overflow:auto}@media (max-width:600px){.paper{padding:22px 16px}}.paper .title{text-align:center;font-weight:700;font-size:1.1rem;margin-bottom:22px;word-break:break-all}.paper h3{font-size:1rem;margin:22px 0 6px}.paper p{margin:0 0 12px}.paper .a{padding-left:2em}.paper .disc{color:#666;font-size:.8rem;margin-top:26px}.paper textarea{min-height:60px;font-family:inherit;margin-bottom:8px}.paper input,.paper textarea{background:#fff;color:#1a1a1a}.paper input{font-weight:700}.empty{color:var(--muted);text-align:center;padding:40px 0}.review{min-height:60vh;font-family:Noto Sans TC,sans-serif}