/* 沿用正式品牌与色板，只调整阅读层级、交付入口和真实进度反馈。 */
[hidden] {display:none!important}
body {font-size:16px;line-height:1.65}
.shell {max-width:1240px}
.card,.project-identity {border-radius:14px;border-color:#dce1d8;box-shadow:0 5px 18px #24352e08}
.card {padding:28px}
h1 {font-size:30px;letter-spacing:-.025em}
.section-heading p,.muted {color:#57645d}
.button {min-height:48px;border-radius:9px;padding:12px 22px;transition:background .15s,box-shadow .15s,transform .15s}
.button:not(:disabled):hover {box-shadow:0 3px 10px #173b2c18}
.button:not(:disabled):active {transform:translateY(1px)}
.button:disabled {opacity:1;color:#5a645f;background:#e7eae6;border-color:#d5dbd4}
.upload-grid {gap:24px}
.upload-slot {min-height:210px;border-radius:12px;padding:28px;gap:12px;background:#fffefa}
.upload-slot strong {font-size:19px}
.upload-slot span {font-size:15px}
.upload-slot .file-name {white-space:normal;overflow-wrap:anywhere}
.upload-slot.required strong::after {font-size:12px;color:#805c20;background:#f4ecd8;padding:3px 8px;border-radius:20px}
.upload-action {border-radius:8px}
.step-strip {gap:12px}
.direction-option {min-height:115px;border-radius:12px;padding:24px}
.direction-option strong {font-size:21px}
.direction-option span {font-size:15px}
#projectView {display:flex;flex-direction:column;gap:20px}
#projectView>.card,#projectView>.project-identity {margin:0}
#projectView>.view-toolbar {order:0}
.project-identity {order:1;padding:24px 28px;display:flex;gap:20px}
.project-identity h1::before {content:'人';display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#e8f0e8;color:#285440;font-size:19px;margin-right:14px;vertical-align:middle}
#progressCard {order:2}
#directionCard {order:3}
#generationCard {order:4}
.delivery-grid {order:5;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.delivery-grid>.card {margin:0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.delivery-grid h2 {font-size:23px;margin:0}
.delivery-grid p {margin:0}
.delivery-grid .action-button {margin-top:auto;min-width:240px;max-width:100%}
.delivery-grid .eyebrow {font-size:14px}
#generationCard.completed-operations {order:6;padding:18px 24px;box-shadow:none}
.completed-operations .generation-note,.completed-operations .eyebrow {display:none}
.completed-operations h2 {font-size:17px}
.completed-operations #generationDetail {font-size:14px}
#documentStatusCard {order:7}
#documentStatusCard summary {cursor:pointer;list-style-position:inside}
#documentStatusCard summary h2 {font-size:18px}
#sourceUpdateCard {order:8}
.progress-track {height:14px;border-radius:20px;overflow:hidden;background:#e5e9e2}
.progress-fill {position:relative;transition:width .7s ease;border-radius:20px;background:linear-gradient(90deg,#285440,#478063)}
.is-working .progress-fill::after {content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,#ffffff38 50%,transparent 80%);transform:translateX(-100%);animation:progress-light 2.5s linear infinite}
.generation-stages {display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.stage-chip {display:inline-flex;gap:8px;padding:10px 16px;border-radius:8px;background:#f0f1ec;color:#5e6961}
.stage-chip.done {background:#e7f0e8;color:#24543d}
.stage-chip.working {background:#f7eed8;color:#755415;font-weight:700}
.stage-chip.working::before {content:'';width:15px;height:15px;align-self:center;border:2px solid #d3ba7c;border-top-color:#765419;border-radius:50%;animation:stage-spin 1.3s linear infinite}
.progress-head>strong {font-size:36px}
.progress-stats {gap:12px}
.progress-stat strong {font-size:17px}
.small,.source-files,.submitted-time {font-size:14px;color:#536057}
.invite-box {white-space:pre-wrap;overflow-wrap:anywhere;width:100%;padding:20px;background:#edf5ed;border:1px solid #cbdcce;border-radius:10px;font:16px/1.85 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:#173b2c;user-select:text}
.previous-downloads {display:flex;flex-wrap:wrap;gap:12px}
#practiceFeedback {color:#805026}
.delivery-dialog {width:min(620px,calc(100% - 32px));max-height:85dvh;overflow:auto;border:1px solid #cdd9ce;border-radius:16px;padding:28px;color:var(--ink);background:var(--surface);box-shadow:0 20px 80px #0003}
.delivery-dialog::backdrop {background:#15281f70}
.dialog-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.dialog-heading h2 {margin:0}
.dialog-heading button {flex-shrink:0;white-space:nowrap;padding:10px 14px}
#updatePracticeBank {margin-top:8px;font-size:14px;text-align:left;color:#5d685f}
#updatePracticeBank::before {content:none}
.library-item {border-radius:12px;padding:22px;align-items:center}
.library-main {min-width:0}
.library-main span,.library-main em {font-size:14px;overflow-wrap:anywhere}
.library-packages button,.library-packages .text-button {min-height:42px;padding:9px 14px;border-radius:8px}
.delivery-list-action {background:var(--green-soft);color:var(--green-deep);border:1px solid #c5d8c6!important;font-weight:700}
.library-item>.library-packages:last-child {align-items:stretch}
.library-item>.library-packages:last-child button {white-space:nowrap}
@media(min-width:861px){.library-table-head,.library-item{grid-template-columns:minmax(220px,1.2fr) minmax(110px,.45fr) minmax(190px,.7fr) 148px}}
@keyframes progress-light {to {transform:translateX(100%)}}
@keyframes stage-spin {to {transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){.delivery-grid{grid-template-columns:1fr}.card{padding:20px}.topnav{flex-wrap:wrap}.topbar{height:auto}.project-identity{padding:20px}.delivery-grid .action-button{width:100%;min-width:0}.generation-stages{gap:8px}.stage-chip{padding:8px 10px}.progress-head>strong{font-size:28px}.library-item{padding:18px}h1{font-size:25px}}
