.city-workbench{display:grid;gap:20px}.city-workbench .city-scope{display:flex;justify-content:flex-end}.city-workbench label{display:grid;gap:7px;color:#465a4c;font-size:13px;font-weight:600}.city-workbench input,.city-workbench select,.city-workbench textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid #c9d7cb;border-radius:8px;background:#fff;color:#253c2c;font:inherit}.city-workbench input[type=checkbox]{width:auto;min-height:0}.city-workbench textarea{min-height:86px;resize:vertical}.city-workbench form{display:grid;gap:13px;margin-top:15px}.city-workbench form .button{justify-self:start}.city-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.city-panel{padding:24px}.city-panel h2{margin:0 0 8px;font-size:20px}.city-panel h3{margin:0 0 10px;font-size:16px}.city-panel p{line-height:1.65}.city-tags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.city-tags span,.city-steps span{padding:5px 9px;border-radius:30px;background:#eef5ee;color:#45614b;font-size:12px}.city-rows{display:grid;gap:7px;margin-top:15px}.city-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 12px;border:1px solid #d4dfd5;border-radius:9px;background:#fff;color:#23402d;text-align:left;cursor:pointer}.city-row.selected{border-color:#448251;background:#f0f8ef}.city-row span{font-size:12px;color:#607465}.city-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.city-steps{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.city-detail section{border-top:1px solid #dce6dc;padding-top:20px;margin-top:22px}.city-form-grid,.city-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.city-compare>div{max-height:470px;overflow:auto;padding:16px;border:1px solid #d4dfd5;border-radius:9px;background:#f8fbf8}.city-compare h4{margin:0 0 12px}.city-compare h5{margin:15px 0 6px}.city-compare p{font-size:13px}.city-compare .city-changed{padding:8px;background:#fff6da}.city-compare small{color:#845e12}.city-version{margin-top:16px}.city-version fieldset{display:grid;gap:10px;border:1px solid #d4dfd5;border-radius:9px;padding:13px}.city-history{max-height:240px;overflow:auto}.city-alert,.city-notice{padding:12px 16px;border-radius:9px}.city-alert{background:#fff1ed;color:#8f3324}.city-notice{background:#eaf5eb;color:#285d32}@media(max-width:1100px){.city-grid{grid-template-columns:1fr 1fr}.city-grid>:last-child{grid-column:1/-1}}@media(max-width:720px){.city-grid,.city-form-grid,.city-compare{grid-template-columns:1fr}.city-grid>:last-child{grid-column:auto}.city-panel-head,.city-row{align-items:flex-start;flex-direction:column}.city-workbench .city-scope{justify-content:stretch}}
.city-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.city-table-wrap{margin-top:14px;overflow-x:auto}.city-table{width:100%;border-collapse:collapse;min-width:680px;font-size:13px}.city-table th,.city-table td{padding:11px 9px;border-bottom:1px solid #dce6dc;text-align:left;vertical-align:top}.city-table th{color:#52675a;font-weight:700}.city-table tr.selected{background:#f0f8ef}.city-table td button{border:0;background:transparent;padding:0;color:#245d3a;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}@media(max-width:900px){.city-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.city-filters{grid-template-columns:1fr}}
.city-bulk{margin:18px 0;padding:16px;border:1px solid #d4dfd5;border-radius:9px;background:#f8fbf8}.city-bulk form{max-width:360px}.city-bulk [role=status]{margin-top:12px}

.city-workbench{max-width:1320px;margin:0 auto;gap:22px}
.city-workbench .page-heading{margin-bottom:2px}
.city-workbench .page-heading h1{font-size:clamp(28px,3vw,38px);letter-spacing:-.035em;line-height:1.18}
.city-workbench .page-heading p:last-child{max-width:760px;color:#627568}
.city-workbench .city-scope{justify-content:flex-start}
.city-workbench .city-scope label{min-width:min(100%,440px)}
.city-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.city-overview>div{display:flex;align-items:baseline;gap:10px;padding:14px 18px;border:1px solid #dfe8e0;border-radius:12px;background:#f8fbf8}
.city-overview strong{font-size:26px;line-height:1;color:#214f30}
.city-overview span{font-size:13px;color:#617467}
.city-start-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.8fr);gap:16px;align-items:stretch}
.city-start-grid>.city-panel{min-width:0;border-radius:16px}
.city-section-kicker{margin-bottom:8px;color:#428252;font-size:12px;font-weight:800;letter-spacing:.09em}
.city-muted{margin-top:4px;color:#67776a;font-size:13px}
.city-source-choices{display:grid;gap:9px;max-height:330px;overflow:auto;padding:2px}
.city-workbench .city-source-choice{display:flex;align-items:flex-start;gap:13px;padding:15px;border:1px solid #dce6dd;border-radius:12px;background:#fff;cursor:pointer}
.city-workbench .city-source-choice:has(input:checked){border-color:#57a36a;box-shadow:0 0 0 3px #e5f4e8;background:#fbfffb}
.city-source-choice input[type=radio]{width:17px;min-height:17px;margin:4px 0 0;accent-color:#307d48}
.city-source-choice span{display:grid;gap:4px;min-width:0}
.city-source-choice strong{font-size:15px;color:#213c29}
.city-source-choice small{font-size:12px;color:#6e7e70}
.city-source-choice a{font-size:12px;color:#2d7544;text-decoration:none}
.city-generate-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.city-workbench .city-generate-row .button{justify-self:auto;min-height:46px;padding:0 20px;border-radius:10px;font-weight:800}
.city-generate-row .button span{margin-left:10px}
.city-generate-row>span{color:#718073;font-size:12px}
.city-empty-source{display:grid;justify-items:start;gap:11px;margin-top:16px;padding:26px;border:1px dashed #bdd2c1;border-radius:14px;background:linear-gradient(135deg,#f7fcf8,#f2f8f2)}
.city-empty-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e2f2e6;color:#34794a;font-size:22px}
.city-empty-source strong{font-size:18px;color:#24432d}
.city-empty-source p{max-width:550px;margin:0;color:#687a6c;font-size:13px}
.city-empty-source .button[disabled]{opacity:.55;cursor:not-allowed}
.city-process-panel{background:#f7faf7}
.city-process-panel>p{margin:0;color:#657668;font-size:13px}
.city-flow{display:grid;gap:17px;margin:22px 0;padding-left:24px;list-style:decimal}
.city-flow li{display:list-item;padding-left:8px}
.city-flow li::marker{color:#2e7142;font-weight:800}
.city-flow strong,.city-flow span{display:block}
.city-flow strong{color:#294634;font-size:14px}
.city-flow span{margin-top:3px;color:#6d7d70;font-size:12px;line-height:1.5}
.city-scope-details{padding-top:14px;border-top:1px solid #dce7de;color:#4a6e53;font-size:13px}
.city-scope-details summary{cursor:pointer;font-weight:700}
.city-scope-details .city-tags{max-height:130px;overflow:auto}
.city-batches-panel{border-radius:16px}
.city-empty-tasks{margin-top:16px;padding:18px;border-radius:10px;background:#f8faf8;color:#718073;font-size:13px}
.city-task-summary{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}
.city-task-summary span{padding:8px 12px;border-radius:8px;background:#f1f7f2;color:#607466;font-size:12px}
.city-task-summary strong{margin-right:4px;color:#2b6d3d;font-size:16px}
.city-detail{border-radius:16px}
.city-detail [hidden]{display:none!important}
.city-detail .city-panel-head h2{display:flex;align-items:center;gap:10px;margin:0}
.city-status{padding:5px 9px;border-radius:20px;background:#e9f5ec;color:#2d7141;font-size:12px;font-weight:700}
.city-version-note{max-width:45%;overflow-wrap:anywhere;color:#819083;font-size:11px}
.city-detail-tabs{display:flex;gap:4px;margin-top:19px;padding:5px;overflow-x:auto;border-radius:11px;background:#f2f6f2}
.city-detail-tabs button{flex:0 0 auto;padding:9px 13px;border:0;border-radius:8px;background:transparent;color:#697b6d;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.city-detail-tabs button[aria-selected=true]{background:#fff;color:#28693c;box-shadow:0 1px 5px #dce7de}
.city-detail>section{margin-top:18px;padding-top:0;border-top:0}
.city-detail>div:not(.city-panel-head):not(.city-detail-tabs){margin-top:18px}
.city-detail details{margin:10px 0;color:#52675a}.city-detail summary{cursor:pointer;font-weight:600}.city-history>div{padding:8px 0;border-bottom:1px solid #e5ece6}.city-history p{margin:0}.city-history code,.city-detail details code{overflow-wrap:anywhere;white-space:normal}
@media(max-width:980px){.city-start-grid{grid-template-columns:1fr}}
@media(max-width:620px){.city-overview{grid-template-columns:1fr 1fr}.city-overview>div{padding:12px}.city-overview>div:last-child{grid-column:1/-1}.city-workbench .city-panel{padding:20px}.city-workbench .city-scope label{min-width:0;width:100%}.city-source-choices{max-height:none}}
.city-findings{margin:12px 0;padding:12px 16px;border:1px solid #e7d6a8;border-radius:9px;background:#fff9e8;color:#604914}.city-findings ul{margin:8px 0 0;padding-left:20px}.city-findings li+li{margin-top:5px}
.city-source-list{margin-top:16px;max-height:260px;overflow:auto}.city-source-list p{padding:10px 0;border-top:1px solid #dce6dc;font-size:13px}
.city-source-fields{display:grid;gap:12px}.city-source-fields fieldset{display:grid;gap:12px;margin:0;padding:14px;border:1px solid #d4dfd5;border-radius:9px}.city-source-fields fieldset .button{justify-self:start}

/* 城市稿工作台：让已有任务和下一步操作先于设置说明出现。 */
.city-workbench{grid-template-columns:minmax(0,1fr);min-width:0;width:100%;gap:16px;color:#1b2942}
.city-workbench>*{min-width:0}
.city-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:2px 0 8px}
.city-page-heading h1{margin:4px 0 8px;color:#17233e;font-size:clamp(29px,3vw,38px);line-height:1.18;letter-spacing:-.035em}
.city-page-heading p:last-child{max-width:660px;margin:0;color:#65748e;font-size:14px;line-height:1.65}
.city-page-heading .button{flex:none;min-height:42px}
.city-feedback:empty{display:none}
.city-workbench .city-scope{margin:0 0 2px}
.city-workbench .city-scope label{display:flex;align-items:center;gap:12px;width:100%;max-width:760px;color:#61708a;font-size:12px}
.city-workbench .city-scope select{flex:1;min-width:0;min-height:40px;border-color:#d5dfed;color:#263959}
.city-workbench :is(input,select,textarea):focus-visible,.city-workbench button:focus-visible,.city-workbench summary:focus-visible{outline:2px solid #4d73bd;outline-offset:2px}
.city-workbench .city-panel{border:1px solid #dfe6f1;border-radius:14px;box-shadow:0 6px 20px rgba(30,53,91,.035)}
.city-workbench .city-section-kicker{color:#3763ad;letter-spacing:.05em}
.city-workbench .city-panel h2{color:#17233e}
.city-workbench .city-panel-head p{margin:5px 0 0;color:#66758c;font-size:13px}
.city-workbench .city-muted{color:#66758c}
.city-workbench :is(input,select,textarea){border-color:#ccd7e6;color:#263954}
.city-workbench :is(input,select,textarea)::placeholder{color:#9ba8b9}
.city-start-grid{grid-template-columns:minmax(0,1.5fr) minmax(250px,.75fr)}
.city-source-panel{border-top:3px solid #456de0!important}
.city-source-choice strong{color:#263954}
.city-source-choice a{color:#315eac}
.city-batches-panel{padding:17px 20px!important}
.city-batches-panel .city-rows{margin-top:10px}
.city-batches-panel .city-row{border-color:#dce5f0;color:#263954}
.city-batches-panel .city-row.selected{border-color:#8fa8da;background:#f4f7ff}
.city-batch-overview{padding:24px 26px!important;border-top:3px solid #456de0!important}
.city-batch-overview .city-panel-head h2{max-width:780px;margin:0;font-size:22px;line-height:1.4}
.city-batch-overview .city-panel-head>.button{white-space:nowrap}
.city-task-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:22px 0 0}
.city-task-summary button{display:grid;gap:5px;padding:14px 16px;border:1px solid #dbe4f1;border-radius:10px;background:#f8faff;color:#66758c;text-align:left;cursor:pointer}
.city-task-summary button:hover,.city-task-summary button.active{border-color:#8fa8da;background:#edf3ff}
.city-task-summary strong{margin:0;color:#214675;font-size:25px;line-height:1.15}
.city-task-summary span{font-size:12px}
.city-task-summary button span{display:block;margin:0;padding:0;border-radius:0;background:transparent;color:#66758c}
.city-bulk{margin:18px 0 0;padding:0;border-color:#dfe6f1;background:#fbfcff}
.city-bulk summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;color:#334c70;font-size:13px;font-weight:700;cursor:pointer}
.city-bulk summary span{color:#71809a;font-size:12px;font-weight:500}
.city-bulk-body{padding:0 15px 16px;border-top:1px solid #e5ebf4}
.city-bulk-body p{color:#63728a;font-size:12px}
.city-bulk-body form{max-width:460px}
.city-list-panel{scroll-margin-top:18px;padding:22px 26px!important}
.city-list-panel .city-panel-head h2{font-size:21px}
.city-list-count{padding:7px 10px;border-radius:8px;background:#f0f4fb;color:#496186;font-size:12px;font-weight:700;white-space:nowrap}
.city-filters{margin-top:18px;padding:17px 0 12px;border-top:1px solid #e7ecf4}
.city-filters label{color:#415472;font-size:12px}
.city-table-wrap{max-width:100%;margin-top:0;border:1px solid #e3e9f2;border-radius:10px;overflow-x:auto}
.city-table{min-width:720px;font-size:13px}
.city-table thead{background:#f6f8fc}
.city-table th{padding:12px;color:#586a84;font-size:12px}
.city-table td{padding:13px 12px;border-color:#e9edf4;color:#52637c}
.city-table td:nth-child(4):empty::before,.city-table td:nth-child(5):empty::before{content:'—';color:#a4afbd}
.city-table tbody tr:hover{background:#f8faff}
.city-table tr.selected{background:#eef4ff}
.city-table td button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:94px;color:#274c83;text-decoration:none}
.city-table td button span{color:#7894c0}
.city-table td button:hover{text-decoration:underline}
.city-state-chip{display:inline-block;padding:4px 8px;border-radius:6px;background:#edf2f8;color:#52647d;font-size:11px;font-weight:700;white-space:nowrap}
.city-state-published{background:#e7f5ed;color:#24734a}
.city-state-approved{background:#e9f0ff;color:#315fba}
.city-state-failed,.city-state-reconciliation_required{background:#fff0e9;color:#a84c31}
.city-state-scheduled,.city-state-publishing{background:#eaf6f9;color:#31778a}
.city-show-all{display:block;width:100%;margin-top:11px;padding:10px;border:1px solid #d8e3f3;border-radius:8px;background:#f8faff;color:#315d9c;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.city-show-all:hover{background:#eef4ff}
.city-detail{scroll-margin-top:18px;border-top:3px solid #3f79be!important;padding:24px 26px!important}
.city-detail .city-panel-head h2{font-size:25px}
.city-detail .city-panel-head p{color:#5c6d85}
.city-detail-tabs{gap:6px;margin-top:22px;padding:6px;border:1px solid #e1e8f3;background:#f6f8fc}
.city-detail-tabs button{display:flex;align-items:center;gap:7px;color:#60718b}
.city-detail-tabs button span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#e4eaf4;color:#5f7190;font-size:11px}
.city-detail-tabs button[aria-current=step]{color:#28569b;background:#fff;box-shadow:0 2px 8px rgba(42,72,125,.1)}
.city-detail-tabs button[aria-current=step] span{background:#3e68c4;color:#fff}
.city-detail>section,.city-detail>div:not(.city-panel-head):not(.city-detail-tabs){margin-top:22px}
.city-detail form{max-width:880px}
.city-detail form>label{max-width:880px}
.city-detail textarea{line-height:1.6}
.city-detail .city-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.city-detail .city-compare>div{background:#fbfcff;border-color:#dfe6f1}
.city-alert{border:1px solid #f2d2c4}
.city-notice{border:1px solid #c9e7d4}
@media(max-width:900px){.city-start-grid{grid-template-columns:1fr}.city-task-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.city-page-heading{align-items:flex-start;flex-direction:column}.city-page-heading .button{width:100%}.city-workbench .city-scope label{align-items:stretch;flex-direction:column}.city-batch-overview,.city-list-panel,.city-detail{padding:20px!important}.city-task-summary{gap:8px}.city-task-summary button{padding:12px}.city-detail .city-form-grid{grid-template-columns:1fr}.city-detail-tabs button{font-size:12px}}
@media(max-width:620px){.city-table{min-width:0}.city-table thead{display:none}.city-table tbody{display:grid}.city-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:12px;border-bottom:1px solid #e9edf4}.city-table td{padding:0;border:0}.city-table td:first-child{align-self:center}.city-table td:nth-child(2){justify-self:end}.city-table td:nth-child(n+3){grid-column:1/-1;color:#697991;font-size:11px}.city-table td:nth-child(3)::before{content:'风险：';color:#8a98ab}.city-table td:nth-child(4):not(:empty)::before{content:'排期：';color:#8a98ab}.city-table td:nth-child(5):not(:empty)::before{content:'发布：';color:#8a98ab}.city-table td:nth-child(4):empty,.city-table td:nth-child(5):empty{display:none}}
