:root{--paper:#f4f6f8;--surface:#fff;--ink:#18212b;--muted:#63707d;--track-ink:#556270;--fund-red:#a6192e;--fund-red-dark:#821124;--pale-red:#f7e9ec;--success:#137a63;--success-pale:#e8f4f0;--amber:#a66513;--amber-pale:#fbf2e4;--line:#d8dee5;--line-strong:#b9c2cc;--display:"Songti SC", SimSun, serif;--body:"PingFang SC", "Microsoft YaHei", sans-serif;--mono:SFMono-Regular, "Cascadia Mono", Consolas, monospace;--space-1:.375rem;--space-2:.75rem;--space-3:1.125rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--radius:3px;color:var(--ink);font-family:var(--body);font-synthesis:none;background:var(--paper)}*{box-sizing:border-box}body{background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 100% 32px, var(--paper);min-width:320px;min-height:100vh;color:var(--ink);margin:0}button,input{font:inherit}button{color:inherit}.app-shell{width:min(1180px,100% - 64px);margin:0 auto;padding:48px 0 56px}.masthead{padding:0 2px 28px;position:relative}.local-badge,.privacy-note{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:650}.local-badge{align-items:center;gap:8px;display:inline-flex}.local-badge span{background:var(--success);width:8px;height:8px;box-shadow:0 0 0 4px var(--success-pale);border-radius:50%}.privacy-note{letter-spacing:.02em;text-transform:none;position:absolute;top:0;right:2px}h1{font-family:var(--display);letter-spacing:-.04em;margin:22px 0 8px;font-size:clamp(2.25rem,4vw,3.8rem);font-weight:700;line-height:1.06}h1 span{color:var(--fund-red);white-space:nowrap}.lede{max-width:680px;color:var(--muted);margin:0;font-size:1rem;line-height:1.8}.workflow-track{border-bottom:1px solid var(--line-strong);grid-template-columns:repeat(3,1fr);align-items:end;min-height:76px;padding:0 14px;display:grid}.track-step{border:1px solid var(--line);min-height:52px;color:var(--track-ink);background:#eef1f4;border-bottom:0;align-self:end;align-items:center;gap:12px;padding:13px 18px 12px;transition:background-color .16s,color .16s,transform .16s;display:flex;transform:translateY(1px)}.track-step+.track-step{margin-left:-1px}.track-step span{font-family:var(--mono);letter-spacing:.06em;font-size:.7rem}.track-step strong{font-size:.88rem}[data-state=idle] .track-step[data-step=select],[data-state=booting] .track-step[data-step=select],[data-state=prechecking] .track-step[data-step=check],[data-state=blocked] .track-step[data-step=check],[data-state=ready] .track-step[data-step=check],[data-state=running] .track-step[data-step=build],[data-state=complete] .track-step[data-step=build]{background:var(--fund-red);border-color:var(--fund-red);color:#fff;min-height:62px;transform:translateY(1px)}.workspace{background:var(--surface);border:1px solid var(--line-strong);border-top:0;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);display:grid;box-shadow:0 18px 48px #18212b14}.operation-pane,.inspection-pane{padding:36px}.inspection-pane{border-left:1px solid var(--line);background:#fbfcfd}.section-heading{grid-template-columns:92px 1fr;align-items:baseline;gap:12px;margin-bottom:24px;display:grid}.section-heading h2{letter-spacing:-.01em;margin:0;font-size:1.15rem}.section-index{color:var(--fund-red);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.dropzone{border:1px dashed var(--line-strong);background:var(--paper);outline:none;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:148px;padding:24px;transition:border-color .16s,background-color .16s;display:grid}.dropzone[data-dragging=true]{border-color:var(--fund-red);background:var(--pale-red)}.dropzone[aria-disabled=true]{opacity:.65;cursor:wait}.dropzone strong{margin-bottom:6px;display:block}.dropzone p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.6}.file-mark{border:1px solid var(--fund-red);width:56px;height:68px;color:var(--fund-red);font:700 .65rem var(--mono);letter-spacing:.08em;box-shadow:7px 7px 0 var(--pale-red);background:#fff;place-items:center;display:grid}.button{border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;background:#fff;min-height:44px;padding:0 18px;font-weight:650;transition:background-color .14s,border-color .14s,transform .14s}.button:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.button:focus-visible,.dropzone:focus-visible{outline-offset:3px;outline:3px solid #a6192e40}.button:disabled{cursor:not-allowed;opacity:.48}.button-primary{border-color:var(--fund-red);background:var(--fund-red);color:#fff;width:100%}.button-primary:hover:not(:disabled){border-color:var(--fund-red-dark);background:var(--fund-red-dark)}.selected-file{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:18px;padding:18px 0;display:flex}.selected-file strong{text-overflow:ellipsis;white-space:nowrap;max-width:380px;margin-top:5px;font-size:.9rem;display:block;overflow:hidden}.field-label{color:var(--muted);font-size:.72rem}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.76rem}.prep-note{border-left:3px solid var(--line-strong);background:#f8fafb;margin:24px 0;padding:18px 20px}.prep-note h3{margin:0 0 10px;font-size:.8rem}.prep-note ol{color:var(--muted);margin:0;padding-left:20px;font-size:.78rem;line-height:1.9}.run-status{background:var(--pale-red);min-height:58px;color:var(--fund-red-dark);align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:none}.run-status strong,.run-status span{display:block}.status-pulse{background:var(--fund-red);border-radius:50%;flex:none;width:10px;height:10px;animation:1.2s ease-in-out infinite pulse}[data-state=running] .run-status{display:flex}.complete-actions,.recovery-action{display:none}[data-state=complete] .complete-actions{display:block}[data-state=complete] #generate{display:none}[data-state=runtime-error] .recovery-action{width:100%;display:block}.complete-actions{padding-top:4px}.complete-actions p{color:var(--muted);margin:0 0 14px;font-size:.8rem}.button-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.button-row .button{width:100%}.status-banner{border:1px solid var(--line);background:#fff;grid-template-columns:14px 1fr;gap:14px;min-height:90px;padding:18px;display:grid}.status-symbol{background:var(--line-strong);border-radius:50%;width:10px;height:10px;margin-top:5px}.status-banner strong{font-size:.88rem;line-height:1.55;display:block}.status-banner p{color:var(--track-ink);margin:7px 0 0;font-size:.78rem;line-height:1.6}[data-state=ready] .status-banner,[data-state=complete] .status-banner{background:var(--success-pale);border-color:#a8d2c7}[data-state=ready] .status-symbol,[data-state=complete] .status-symbol{background:var(--success)}[data-state=blocked] .status-banner,[data-state=runtime-error] .status-banner{background:var(--pale-red);border-color:#e3b9c0}[data-state=blocked] .status-symbol,[data-state=runtime-error] .status-symbol{background:var(--fund-red);border-radius:1px}body[data-download=failed] .status-banner{background:var(--amber-pale);border-color:#e2c48d}body[data-download=failed] .status-symbol{background:var(--amber);border-radius:1px}.summary-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(2,1fr);margin:24px 0;display:grid}.summary-grid div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:76px;padding:14px 16px}.summary-grid .date-summary{grid-column:1/-1;min-height:88px}.summary-grid dt{color:var(--muted);font-size:.72rem}.summary-grid dd{margin:8px 0 0;font-size:1.15rem;font-weight:700}.summary-grid .date-summary dd{color:var(--fund-red);font-size:1.45rem}.message-group{margin-top:18px}.message-group h3{margin:0 0 8px;font-size:.76rem}.message-group h3 span{width:18px;height:18px;font:700 .65rem var(--mono);border:1px solid;place-items:center;margin-right:5px;display:inline-grid}.message-group ul{margin:0;padding:14px 16px 14px 34px;font-size:.76rem;line-height:1.7}.blockers h3{color:var(--fund-red)}.blockers ul{background:var(--pale-red)}.warnings h3{color:var(--amber)}.warnings ul{background:var(--amber-pale)}.runtime-stamp{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:12px;margin-top:26px;padding-top:15px;font-size:.7rem;display:flex}.runtime-stamp code{font-family:var(--mono)}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@keyframes pulse{50%{opacity:.35;transform:scale(.72)}}@media (width<=780px){.app-shell{width:min(100% - 32px,620px);padding:28px 0 36px}.privacy-note{margin-top:12px;position:static}h1{margin-top:18px;font-size:2.4rem}h1 span{margin-top:4px;display:block}.workflow-track{min-height:68px;padding:0 6px}.track-step{gap:6px;min-height:48px;padding:10px 8px}.track-step span{display:none}.track-step strong{font-size:.68rem;line-height:1.35}[data-state] .track-step[data-step]{min-height:48px}[data-state=idle] .track-step[data-step=select],[data-state=booting] .track-step[data-step=select],[data-state=prechecking] .track-step[data-step=check],[data-state=blocked] .track-step[data-step=check],[data-state=ready] .track-step[data-step=check],[data-state=running] .track-step[data-step=build],[data-state=complete] .track-step[data-step=build]{min-height:58px}.workspace{grid-template-columns:1fr}.operation-pane,.inspection-pane{padding:24px 20px}.inspection-pane{border-left:0;border-top:1px solid var(--line)}.section-heading{grid-template-columns:74px 1fr}.dropzone{grid-template-columns:auto 1fr;padding:20px 16px}.dropzone .button{grid-column:1/-1;width:100%}.file-mark{width:46px;height:58px}.selected-file{flex-direction:column;align-items:start}.selected-file strong{max-width:calc(100vw - 76px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
