:root{color-scheme:dark;--bg:#0f172a;--surface:#1b2336;--text:#f8fafc;--muted:#b4c0d1;--line:#475569;--accent:#71e3a2;--ink:#0f172a;--error:#ffa3a3;--motion:160ms}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}button,input,a{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button,a,input{transition:background var(--motion),border-color var(--motion)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:36px;line-height:1.3;letter-spacing:-1px}h2{font-size:23px}h3{font-size:18px}p{overflow-wrap:anywhere}.muted,.hint{color:var(--muted)}.hint{font-size:14px;line-height:1.6}.error{color:var(--error);min-height:24px}.eyebrow{font-size:14px;color:var(--accent);margin-bottom:12px}.skip{position:fixed;top:8px;left:8px;padding:12px;background:var(--accent);color:var(--ink);transform:translateY(-150%);z-index:10}.skip:focus{transform:none}
.topbar{min-height:88px;padding:20px max(24px,calc((100% - 1248px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:650}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--accent);color:var(--accent);font:600 23px ui-monospace,monospace}.edition{font-size:14px;font-weight:400;color:var(--muted);padding-left:14px;border-left:1px solid var(--line)}#account{display:flex;align-items:center;gap:24px}main{max-width:1248px;margin:auto;padding:40px 24px 24px;min-height:calc(100dvh - 88px)}.login-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;align-items:center;padding:64px 0}.intro h1{font-size:54px;margin-bottom:24px}.intro>p{color:var(--muted)}.scope{margin-top:48px;border-left:2px solid var(--accent);padding-left:20px;max-width:480px}.scope p{margin-top:8px;color:var(--muted);font-size:14px}.login-form{padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.login-form>p{margin:12px 0}.login-form label{display:block;margin:28px 0 8px}.password-row{display:flex;gap:8px}.password-row input{width:100%;min-width:0;padding:12px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;height:48px}.password-row input[aria-invalid="true"]{border-color:var(--error)}.primary,.secondary,.quiet{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;min-height:44px;border-radius:6px;border:1px solid transparent;font-weight:550}.primary{background:var(--accent);color:var(--ink)}.primary:hover{background:#a0efc0}.secondary{background:var(--surface);border-color:var(--line);color:var(--text)}.secondary:hover,.quiet:hover{background:#334155}.quiet{background:transparent;color:var(--muted);padding:8px 12px}.primary:disabled,.secondary:disabled{opacity:.5;cursor:wait}.login-form .primary{width:100%;margin:8px 0}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.page-heading h1{margin-bottom:8px}.update-line{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:14px;padding:12px 0}.update-line label{display:flex;gap:8px;align-items:center;cursor:pointer;min-height:44px}input[type="checkbox"]{width:18px;height:18px;accent-color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-block:1px solid var(--line);padding:24px 0;margin:12px 0 36px}.stat strong{display:block;font-size:32px;line-height:1.2;font-variant-numeric:tabular-nums;margin-bottom:8px}.stat span{color:var(--muted);font-size:14px}.list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px}.list-heading span{font-size:14px}.task{display:grid;grid-template-columns:minmax(0,1fr) 180px 130px;gap:24px;align-items:center;border-top:1px solid var(--line);padding:24px 0}.task-title{font-size:18px;font-weight:600}.task-title:hover{color:var(--accent)}.task-id{font-size:14px;color:var(--muted);margin:8px 0;overflow-wrap:anywhere}.task time{display:block;color:var(--muted);font-size:14px;margin-top:8px}.badge{border:1px solid var(--line);padding:4px 12px;border-radius:4px;display:inline-block;font-size:14px;width:fit-content}.badge[data-state="delivered"]{color:var(--accent);border-color:var(--accent)}.badge[data-state="failed"],.badge[data-state="needs_review"]{color:var(--error);border-color:var(--error)}.empty{padding:64px 24px;text-align:center;border:1px dashed var(--line);max-width:100%}.empty p{color:var(--muted);max-width:600px;margin:16px auto}.back{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);margin-bottom:20px}.back:hover{color:var(--accent)}.detail-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.detail-heading p{margin-top:8px;overflow-wrap:anywhere}.stages{list-style:none;padding:0;margin:0 0 32px;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.stage{border-top:2px solid var(--line);padding-top:14px;color:var(--muted);font-size:14px}.stage b{display:block;font-size:16px;margin-bottom:4px}.stage.done,.stage.current{border-color:var(--accent);color:var(--text)}.stage.current b{color:var(--accent)}.stage.problem{border-color:var(--error)}.detail-grid{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(260px,1fr);gap:32px}.preview,.receipt{min-width:0}.preview h3,.receipt h3{margin-bottom:16px}video{width:100%;aspect-ratio:16/9;background:#000;display:block}.video-wait{aspect-ratio:16/9;display:grid;place-items:center;background:var(--surface);padding:32px;text-align:center;border:1px solid var(--line)}.video-wait p{color:var(--muted);max-width:440px}.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.preview-footer span{font-size:14px}.receipt{border-left:1px solid var(--line);padding-left:24px}dl{margin:0}dt{color:var(--muted);font-size:14px;margin-bottom:6px}dd{margin:0 0 24px;overflow-wrap:anywhere}.mono{font-family:ui-monospace,monospace;font-size:14px;line-height:1.7}.receipt .hint{border-top:1px solid var(--line);padding-top:20px}footer{border-top:1px solid var(--line);margin-top:48px;padding-top:24px;font-size:14px;color:var(--muted);display:flex;justify-content:space-between;gap:16px}
@media(max-width:900px){.login-layout{gap:32px}.intro h1{font-size:40px}.detail-grid{grid-template-columns:1fr}.receipt{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.task{grid-template-columns:minmax(0,1fr) 140px 110px;gap:16px}}@media(max-width:600px){.topbar{padding:16px;gap:12px;flex-wrap:wrap;min-height:72px}.edition{display:none}.brand{font-size:18px}#account{gap:12px;font-size:14px}main{padding:28px 16px}.login-layout{grid-template-columns:1fr;padding:8px 0;gap:32px}.intro h1{font-size:38px}.intro>p{font-size:16px}.scope{margin-top:24px}.login-form{padding:24px}.page-heading{align-items:flex-start;gap:16px}.page-heading h1{font-size:28px}.page-heading .muted{font-size:14px}.page-heading button{flex-shrink:0;padding:8px 12px}.update-line{flex-wrap:wrap;gap:0}.stats{gap:16px}.stat strong{font-size:28px}.task{grid-template-columns:minmax(0,1fr) auto;gap:12px}.task>div:nth-child(2){grid-column:1;grid-row:2}.task>a:last-child{grid-column:2;grid-row:2}.task-title{font-size:17px}.task-id{font-size:13px}.detail-heading{align-items:flex-start}.detail-heading h2{font-size:21px}.stages{gap:8px}.stage{font-size:12px}.stage b{font-size:14px}.preview-footer,footer{flex-direction:column;align-items:flex-start}.video-wait{padding:16px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.error:empty{display:none}
.detail-heading>.badge{flex-shrink:0;white-space:nowrap}
@media(max-width:600px){.stages{grid-template-columns:1fr;gap:8px}.stage{border-top:0;border-left:2px solid var(--line);padding:6px 12px;display:flex;justify-content:space-between;gap:16px;align-items:center}.stage b{margin:0}.stage.done,.stage.current{border-left-color:var(--accent)}.stage.problem{border-left-color:var(--error)}}
