/* 地图集工作区：独立作用域，保持单地图编辑器的现有样式。 */
.map-set-launcher { margin: 24px 0 8px; padding: 20px; background: #f1f5f9; border: 1px solid #cbd5e1; border-radius: 8px; text-align: left; }
.map-set-launcher h2 { font-size: 20px; margin-bottom: 8px; }
.map-set-launcher p { margin-bottom: 12px; color: #475569; }
.map-set-launcher button, .map-set-workspace button, .map-set-dialog button { padding: 9px 12px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; cursor: pointer; font: inherit; }
.map-set-launcher button { color: #1e40af; }
#mapSetDraftCard { margin-top: 14px; border-top: 1px solid #cbd5e1; padding-top: 12px; }
.map-set-draft-item { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px 0; border-bottom: 1px solid #e2e8f0; }
.map-set-draft-item span { flex: 1; min-width: 180px; overflow-wrap: anywhere; }
.map-set-preview { margin: auto; width: min(1100px, 95vw); max-height: 95dvh; padding: 20px; border: 0; border-radius: 10px; }
.map-set-preview::backdrop { background: #0f172aaa; }
.map-set-preview header { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.map-set-preview button { padding: 8px 12px; cursor: pointer; }
.map-set-preview p { margin: 12px 0; overflow-wrap: anywhere; }
.map-set-preview-tools { display: flex; gap: 8px; margin-bottom: 12px; }
.map-set-preview-image { overflow: auto; max-height: 70dvh; background: #e2e8f0; padding: 8px; text-align: center; }
.map-set-preview-image img { display: block; max-width: 100%; max-height: 68dvh; width: auto; height: auto; margin: auto; }
.map-set-preview-image img.actual-size { max-width: none; max-height: none; margin: 0; }
body.map-set-active { padding: 0; background: #f1f5f9; }
.map-set-workspace { min-height: 100dvh; color: #0f172a; font-size: 14px; }
.map-set-toolbar { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 14px 20px; background: #0f172a; color: white; }
.map-set-toolbar h1 { font-size: 20px; }
.map-set-toolbar-actions { display: flex; gap: 8px; margin-left: auto; }
.map-set-workspace .map-set-primary { background: #2563eb; border-color: #2563eb; color: white; }
.map-set-grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 20px; padding: 20px; }
.map-set-properties, .map-set-content { min-width: 0; padding: 20px; border: 1px solid #e2e8f0; border-radius: 8px; background: white; }
.map-set-properties { align-self: start; }
.map-set-workspace h2 { font-size: 17px; margin-bottom: 12px; }
.map-set-properties label { display: block; margin: 18px 0 6px; font-weight: 600; }
.map-set-workspace input, .map-set-workspace select { padding: 9px; border: 1px solid #94a3b8; border-radius: 5px; width: 100%; font: inherit; min-width: 0; background: white; color: #0f172a; }
.map-set-workspace input[aria-invalid=true], .map-set-workspace select[aria-invalid=true] { border: 2px solid #dc2626; }
.map-set-workspace details, #mapSetVersion { margin-top: 18px; }
.map-set-workspace summary { cursor: pointer; font-weight: 600; }
.map-set-workspace dd { overflow-wrap: anywhere; margin: 4px 0 12px; color: #475569; }
.map-set-workspace dt { margin-top: 12px; }
.map-set-help { margin-top: 18px; font-size: 12px; line-height: 1.7; color: #64748b; }
.map-set-list-heading { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.map-set-list-heading h2 { margin: 0; }
.map-set-file-button { display: inline-block; position: relative; overflow: hidden; background: #2563eb; padding: 10px 14px; border-radius: 6px; color: white; cursor: pointer; }
.map-set-file-button input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.map-set-file-button:focus-within { outline: 3px solid #60a5fa; outline-offset: 3px; }
.map-set-file-button:has(input:disabled) { opacity: .5; cursor: wait; }
.map-set-row { display: grid; grid-template-columns: 30px minmax(130px, 1fr) 140px 90px auto; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid #e2e8f0; }
.map-set-row-name { overflow-wrap: anywhere; font-weight: 600; }
.map-set-row small { display: block; margin-top: 5px; color: #64748b; overflow-wrap: anywhere; font-weight: normal; }
.map-set-row-actions { display: flex; gap: 4px; flex-wrap: wrap; max-width: 175px; }
.map-set-row-actions button { padding: 6px 8px; }
.map-set-row .map-set-danger { color: #b91c1c; }
.map-set-badge { display: inline-block; background: #dbeafe; color: #1d4ed8; border-radius: 4px; padding: 2px 5px; margin-left: 6px; }
.map-set-row-status { font-size: 12px; }
.map-set-row-status[data-state=error] { color: #b91c1c; }
.map-set-row-status[data-state=warning] { color: #92400e; }
.map-set-row-status[data-state=ok] { color: #166534; }
.map-set-workspace button:disabled { opacity: .45; cursor: not-allowed; }
.map-set-workspace button:focus-visible, .map-set-workspace input:focus-visible, .map-set-workspace select:focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }
.map-set-validation { margin-top: 24px; border-top: 2px solid #e2e8f0; padding-top: 18px; }
#mapSetIssues { padding-left: 20px; }
#mapSetIssues li { margin: 10px 0; }
#mapSetIssues button { padding: 3px 8px; margin-left: 8px; }
.map-set-banner { padding: 12px 20px; margin: 10px 20px 0; background: #dbeafe; border-radius: 6px; overflow-wrap: anywhere; }
.map-set-error { background: #fef2f2; color: #991b1b; }
.map-set-workspace footer { padding: 8px 20px 24px; color: #64748b; }
.map-set-dialog { margin: auto; max-width: min(480px, 90vw); padding: 24px; border: 0; border-radius: 10px; }
.map-set-dialog::backdrop { background: #0f172a88; }
.map-set-dialog p { margin: 16px 0; line-height: 1.7; white-space: pre-line; }
.map-set-dialog form { display: flex; gap: 10px; justify-content: flex-end; }
#mapSetDiagnosticText { white-space: pre-wrap; overflow-wrap: anywhere; }
#mapSetEmpty { padding: 40px 16px; color: #64748b; text-align: center; }
@media(max-width: 1100px) { .map-set-row { grid-template-columns: 25px minmax(100px,1fr) 120px; } .map-set-row-actions { grid-column: 2 / -1; max-width: none; } }
@media(max-width: 999px) { .map-set-grid { grid-template-columns: 1fr; } }
@media(max-width: 639px) { .map-set-grid { padding: 10px; gap: 10px; } .map-set-toolbar { padding: 12px; } .map-set-toolbar-actions { margin-left: 0; width: 100%; } .map-set-row { grid-template-columns: 25px minmax(0,1fr); border: 1px solid #cbd5e1; border-radius: 6px; padding: 12px; margin-bottom: 12px; } .map-set-row-region, .map-set-row-status { grid-column: 2; } .map-set-properties, .map-set-content { padding: 14px; } }
