:root{--canvas:#f4f1eb;--paper:#fffefa;--ink:#302c27;--muted:#72695f;--faint:#8b8176;--line:#dfd9d0;--control:#968777;--accent:#b6471d;--accent-soft:#f7e9df;--success:#38644a;--danger:#a23428;--body:"PingFang SC","Microsoft YaHei",sans-serif;--heading:"Songti SC","Noto Serif CJK SC",serif;--control-radius:7px;--panel-radius:12px}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.65 var(--body);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,input,select{min-height:44px;border-radius:var(--control-radius)}button{cursor:pointer;padding:8px 20px;border:1px solid transparent;font-weight:600;transition:background-color .15s,transform .15s}button:hover:not(:disabled){filter:brightness(.95)}button:active:not(:disabled){transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}input:not([type=checkbox]):not([type=file]),select{width:100%;min-width:0;border:1px solid var(--control);background:var(--paper);padding:8px 12px;font-variant-numeric:tabular-nums}input:read-only{background:var(--canvas)}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex:none}input[type=date]{appearance:auto;-webkit-appearance:auto}input:focus-visible,button:focus-visible,select:focus-visible,a:focus-visible,.upload-area:focus-within{outline:3px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);color:var(--paper)}.secondary{background:var(--paper);border-color:var(--control)}.quiet{background:transparent;border-color:var(--line)}.full{width:100%}[hidden]{display:none!important}h1,h2,h3,h4,p,figure{margin:0}h1,h2{font-family:var(--heading);font-weight:600;text-wrap:balance}h1{font-size:36px;line-height:1.35;letter-spacing:-.02em}h2{font-size:22px}h3{font-size:18px;font-weight:600}h4{font-size:14px;font-weight:600}.small{font-size:12px;line-height:1.7;color:var(--muted)}.supporting,.intro{color:var(--muted);font-size:14px}.eyebrow{font-size:12px;letter-spacing:.15em;color:var(--accent);margin-bottom:12px}.masthead{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);background:var(--paper)}.identity{display:flex;gap:16px;align-items:center;font-weight:600;text-decoration:none}.monogram{font-family:var(--heading);font-size:32px;line-height:1;color:var(--accent);border-right:1px solid var(--line);padding-right:16px}.identity-sub{display:block;font-size:11px;letter-spacing:.12em;font-weight:400;color:var(--muted)}.workspace{max-width:1240px;margin:auto;padding:40px 32px 0}.page-heading{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:32px}.intro{margin-top:12px}.history{min-width:240px;max-width:360px}.history>label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.history-controls{display:flex;gap:8px}.history-controls select{min-width:160px}.history-controls button{white-space:nowrap}.workbench{display:grid;grid-template-columns:300px minmax(0,1fr);gap:32px;align-items:start}.source-panel{padding:24px 0;position:sticky;top:24px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.source-panel .supporting{margin-top:12px}.upload-area{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:184px;padding:24px 16px;border:1px dashed var(--control);border-radius:var(--panel-radius);margin:24px 0 16px;cursor:pointer;text-align:center;background:var(--paper);overflow:hidden}.upload-area:hover{border-color:var(--accent)}.upload-area strong{font-size:14px;word-break:break-all}.upload-area>span:last-of-type{font-size:11px;color:var(--muted)}.upload-area input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-mark{font-size:28px;font-weight:300;color:var(--accent)}figure{margin-bottom:16px}figure img{display:block;width:100%;max-height:460px;object-fit:contain;background:var(--canvas);border-radius:var(--control-radius)}figcaption{font-size:11px;text-align:center;color:var(--muted);margin-top:8px}#ocr-note{margin-top:12px}.source-guide{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.source-guide h3{font-size:14px;margin-bottom:12px}.source-guide p{color:var(--muted);line-height:2}.source-guide .small{margin-top:12px}.editor-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--panel-radius);padding:28px 32px}fieldset{padding:0;border:0;margin:0;min-width:0}.tp-field{padding:28px 0 24px;border-bottom:1px solid var(--line)}.tp-field>label{font-weight:600;display:block;margin-bottom:8px}.tp-input{display:flex;align-items:center;gap:20px}.tp-input input{max-width:200px;font-size:20px;letter-spacing:.04em}.tp-input span{font-size:12px;color:var(--muted)}.stage{padding:24px 0;border-bottom:1px solid var(--line)}.stage.last{border:0;padding-bottom:16px}.stage-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.stage-number{font:22px/1 var(--heading);color:var(--accent);font-variant-numeric:tabular-nums}.kind{font-size:11px;padding:2px 8px;border-radius:4px;color:var(--muted);background:var(--canvas);margin-left:auto}.date-range{display:grid;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:12px;align-items:end}.date-range label{font-size:12px;color:var(--muted);min-width:0}.date-range input{display:block;margin-top:8px;font-size:15px;color:var(--ink)}.range-dash{padding-bottom:10px;color:var(--faint)}.week+.week{margin-top:20px}.week h4{margin-bottom:8px}.week.middle{padding:12px 16px;background:var(--canvas);border-radius:var(--control-radius)}.middle .date-range{padding:8px 0}.stage-note{margin-top:16px}.check-label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:13px}.save-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0 24px}.save-row button{white-space:nowrap}.publish-panel{border-top:1px solid var(--line);padding-top:24px}.deliveries{padding:0;margin:20px 0;list-style:none}.deliveries li{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.deliveries li p{grid-column:1/-1;font-size:12px;color:var(--muted)}.status{font-size:12px;color:var(--muted)}.status.succeeded{color:var(--success)}.status.failed{color:var(--danger)}.review-check{margin:16px 0 8px}.publish-actions{display:flex;gap:24px;justify-content:space-between;align-items:center}.publish-actions p{max-width:260px}.publish-actions button{white-space:nowrap}.message{background:var(--accent-soft);border-left:3px solid var(--accent);padding:12px 16px;margin-bottom:24px;font-size:14px;white-space:pre-line}.message.error,.error{color:var(--danger)}.page-footer{display:flex;justify-content:space-between;padding:32px 0;font-size:11px;color:var(--faint);letter-spacing:.08em}.login{max-width:440px;margin:12vh auto;padding:32px}.login>p{margin:20px 0 32px;color:var(--muted)}.login label{display:block;font-size:14px;margin:16px 0 8px}.login button{width:100%;margin-top:16px}.login .error{margin-top:12px;font-size:13px}#boot{text-align:center;margin:20vh auto;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:960px){.workbench{grid-template-columns:240px minmax(0,1fr);gap:24px}.editor-panel{padding:24px}.tp-input{display:block}.tp-input span{display:block;margin-top:8px}.publish-actions{display:block}.publish-actions p{max-width:none;margin-bottom:12px}.publish-actions button{width:100%}}
@media(max-width:720px){.masthead{height:72px;padding:0 20px}.workspace{padding:28px 20px 0}.page-heading{display:block;margin-bottom:24px}h1{font-size:30px}.history{margin-top:24px;max-width:none}.history-controls select{flex:1}.workbench{display:block}.source-panel{position:static;padding:0 0 24px}.upload-area{min-height:104px;padding:12px;margin-top:16px}.source-guide{display:none}.source-panel figure img{max-height:320px}.editor-panel{padding:24px 20px}.panel-heading h2{font-size:20px}.date-range{gap:8px;grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr)}.date-range input{padding:8px;font-size:13px}.week.middle{padding:8px 12px}.save-row{align-items:flex-start}.save-row .small{max-width:150px}.page-footer span{display:none}.login{margin:8vh auto}.tp-input input{max-width:none}.stage{padding-top:24px}}
@media(prefers-reduced-motion:reduce){button{transition:none}button:active:not(:disabled){transform:none}}
.recovery{margin:-8px 0 24px}
.upload-area strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.entry-choice{padding:24px 0;border-bottom:1px solid var(--line)}.entry-choice>label{display:block;font-weight:600;margin-bottom:8px}.entry-choice p{margin-top:8px}.activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.activity-grid label{font-size:13px}.activity-grid input,.activity-grid select,.activity-grid textarea{display:block;margin-top:8px}.wide{grid-column:1/-1}textarea{width:100%;resize:vertical;font:inherit;color:inherit;min-height:100px;background:var(--paper);border:1px solid var(--control);border-radius:var(--control-radius);padding:10px 12px}textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.workbench.single-activity{grid-template-columns:minmax(0,840px);justify-content:center}.history{min-width:260px}.history-controls{max-width:100%}.history-controls select{min-width:0}.history-controls button{flex:none}@media(max-width:720px){.activity-grid{grid-template-columns:minmax(0,1fr);gap:16px}.history{min-width:0}}
