.annual-data-upload-panel{overflow:hidden;border:1px solid rgba(38,72,122,.16);box-shadow:0 18px 48px rgba(22,49,89,.08)}
.annual-data-upload-panel .panel-head{background:linear-gradient(135deg,rgba(238,245,255,.96),rgba(249,252,255,.98));border-bottom:1px solid rgba(39,79,135,.11)}
.annual-data-upload-grid{display:grid;grid-template-columns:minmax(260px,1.25fr) repeat(2,minmax(180px,.75fr));gap:14px;align-items:end}
.annual-data-upload-grid>label:not(.annual-file-drop){display:grid;gap:7px;font-size:13px;font-weight:700;color:#42536c}
.annual-data-upload-grid input,.annual-data-upload-grid select{width:100%;min-height:42px;border:1px solid #d7dfeb;border-radius:11px;background:#fff;padding:9px 11px;color:#17263c;outline:none}
.annual-data-upload-grid input:focus,.annual-data-upload-grid select:focus{border-color:#557db8;box-shadow:0 0 0 3px rgba(70,111,171,.12)}
.annual-data-upload-grid .span-2{grid-column:span 2}
.annual-file-drop{grid-row:span 2;min-height:142px;border:1.5px dashed #87a3ca;border-radius:15px;background:linear-gradient(145deg,#f5f9ff,#edf4ff);display:flex;align-items:center;justify-content:center;text-align:center;padding:22px;cursor:pointer;transition:.2s ease}
.annual-file-drop:hover{border-color:#476fa8;transform:translateY(-1px);box-shadow:0 10px 28px rgba(39,74,126,.1)}
.annual-file-drop input{position:absolute;inline-size:1px;block-size:1px;opacity:0}
.annual-file-drop span{display:grid;gap:7px}.annual-file-drop b{font-size:16px;color:#23456f}.annual-file-drop small{color:#718199;font-weight:500}
.annual-file-drop.has-file{border-style:solid;background:linear-gradient(145deg,#edf8f3,#f7fbf9);border-color:#5b9a7d}.annual-file-drop.has-file b{color:#25614a}
.annual-upload-actions{grid-column:2/4;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:3px}
.annual-data-boundary{margin-top:16px;padding:13px 15px;border-radius:12px;background:#fff8e8;border:1px solid #f0d594;color:#675124;font-size:13px;line-height:1.7}.annual-data-boundary b{color:#7b5511}
.annual-data-grid .panel{min-width:0}.annual-job-file{max-width:260px}.annual-job-file b,.annual-job-file small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annual-job-file small{color:#76859a;margin-top:3px}
.annual-status{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;background:#edf2f8;color:#53657c}.annual-status-review_required,.annual-status-failed{background:#fff0ed;color:#aa4235}.annual-status-ready_for_approval,.annual-status-approved{background:#fff7df;color:#8c6716}.annual-status-published{background:#eaf7f0;color:#297050}.annual-status-rolled_back{background:#f0eff7;color:#665c8a}
.annual-diff-chips{display:flex;flex-wrap:wrap;gap:5px}.annual-diff-chips span{font-size:11px;border-radius:6px;padding:3px 6px;background:#f1f4f8;color:#5a687b}.annual-diff-chips .add{background:#eaf7ef;color:#2f7551}.annual-diff-chips .change{background:#fff5dc;color:#8e6710}.annual-diff-chips .miss{background:#fff0ed;color:#a5493d}
.annual-job-detail{display:grid;gap:18px}.annual-detail-hero{display:grid;grid-template-columns:1.4fr repeat(3,minmax(100px,.45fr));gap:12px}.annual-detail-hero>div{padding:13px;border:1px solid #e2e7ef;border-radius:12px;background:#fafcff}.annual-detail-hero small,.annual-detail-hero b{display:block}.annual-detail-hero small{color:#738199;margin-bottom:6px}.annual-detail-hero b{font-size:17px;color:#1e324e}
.annual-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px}.annual-summary-grid div{padding:12px;border-radius:10px;background:#f5f7fa}.annual-summary-grid span{display:block;color:#78869a;font-size:12px}.annual-summary-grid b{font-size:19px;color:#233b5e}
.annual-issue-critical{color:#a64134;font-weight:700}.annual-issue-warning{color:#8a6517}.annual-normalized{max-width:420px;white-space:normal;line-height:1.55;font-size:12px;color:#536275}.annual-confirm-box{padding:14px;border-radius:12px;background:#f5f8fc;border:1px solid #dce4ef}.annual-confirm-box code{display:block;margin-top:7px;padding:9px 10px;border-radius:8px;background:#17263b;color:#e8f2ff;overflow:auto}
@media(max-width:1100px){.annual-data-upload-grid{grid-template-columns:1fr 1fr}.annual-file-drop{grid-column:1/3;grid-row:auto;min-height:112px}.annual-upload-actions{grid-column:1/3}.annual-data-upload-grid .span-2{grid-column:span 2}.annual-detail-hero{grid-template-columns:1fr 1fr}.annual-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.annual-data-upload-grid{display:block}.annual-data-upload-grid>*{margin-bottom:12px}.annual-upload-actions{display:grid}.annual-upload-actions .btn{width:100%}.annual-detail-hero,.annual-summary-grid{grid-template-columns:1fr 1fr}.annual-data-grid .toolbar{width:100%}.annual-data-grid .toolbar input,.annual-data-grid .toolbar select{flex:1;min-width:0}.annual-data-upload-panel .panel-head{align-items:flex-start}.annual-data-boundary{font-size:12px}}

/* P5-HF1 scope and replacement controls */
.annual-data-upload-grid label>small{display:block;margin-top:5px;color:var(--muted,#68778a);font-size:12px;line-height:1.5}
.annual-data-upload-grid select{min-height:42px}

/* R5.7年度数据版本治理 */
.annual-dataset-matrix-panel .panel-head{align-items:flex-start;gap:18px}
.dataset-version-title{display:flex;flex-direction:column;gap:4px;min-width:220px}
.dataset-version-title b{font-size:14px;color:var(--text,#172033)}
.dataset-version-title small{color:var(--muted,#687386);word-break:break-all}
.dataset-version-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;white-space:nowrap;background:#eef2f7;color:#42526a}
.dataset-version-status.production_active{background:#e5f8ee;color:#08783f}
.dataset-version-status.repository_published{background:#e8f1ff;color:#1559a5}
.dataset-version-status.verified_pending_source,.dataset-version-status.source_attached{background:#fff5dc;color:#8a5b00}
.dataset-version-status.retired,.dataset-version-status.production_rolled_back,.dataset-version-status.repository_rolled_back{background:#f1f2f4;color:#687386}
.dataset-version-status.promotion_review_required,.dataset-version-status.job_review_required,.dataset-version-status.job_failed,.dataset-version-status.promotion_failed{background:#ffe9e8;color:#a3261e}
.dataset-source-lock{display:flex;flex-direction:column;gap:4px;min-width:210px}
.dataset-source-lock code{font-size:11px;word-break:break-all}
.dataset-source-lock .locked{color:#08783f;font-weight:700}
.dataset-source-lock .pending{color:#a05d00;font-weight:700}
.dataset-version-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:190px}
.dataset-version-blockers{margin:0;padding-left:18px;color:#9b2c2c}
.dataset-version-events{max-height:260px;overflow:auto}
.dataset-version-events li{margin:6px 0;color:#5d6878}
