.vm-manager,.vm-overlay{--vm-ink:var(--ui-ink,#243b3a);--vm-muted:#5f726e;--vm-line:var(--ui-line,#dce5e1);--vm-primary:var(--ui-primary,#23766d);--vm-soft:#e8f2ed;--vm-paper:#f4f7f5;--vm-selected:#f7e5c6;--vm-selected-ink:#79521e}.vm-manager{color:var(--vm-ink);font-size:14px;line-height:1.6}
.vm-match-file{margin-top:16px}.vm-match-file input[type=file]{display:block;width:100%;padding:12px;background:#f4f7f5}.vm-match-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px;margin:14px 0}.vm-match-summary>div{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #dce5e1;border-radius:10px;background:#f7faf7}.vm-match-summary span{font-size:12px;color:#5f726e}.vm-match-summary strong{font-size:14px;color:#355b4f}.vm-match-messages{margin:12px 0;padding:12px 16px 12px 34px;border-radius:10px;overflow-wrap:anywhere}.vm-match-messages.error{background:#fff0f0;color:#a83b45}.vm-match-messages.warn{background:#fff7e9;color:#79521e}.vm-match-messages li+li{margin-top:5px}.vm-match-binding h4{margin:0}.vm-match-binding .vm-layout-head{align-items:flex-start}.vm-match-binding .vm-note{overflow-wrap:anywhere}.vm-match-counts{display:flex;gap:10px 24px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #e5ece7}.vm-match-show{padding:12px;margin:12px 0;border-radius:10px;background:#fff7e9}.vm-match-zones{padding:12px;border:1px solid #f0dfbd;background:#fffaf1;border-radius:10px;margin:10px 0}.vm-match-zones>div{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.vm-match-zones small{color:#79521e}.vm-match-mapping>summary{margin:10px 0;cursor:pointer;font-weight:600}.vm-match-mapping .vm-map-table{min-width:400px}.vm-match-help .vm-map-table{min-width:460px}.vm-match-confirm{display:flex;align-items:flex-start;gap:10px;padding:15px;border:1px solid #c7ded0;background:#e8f2ed;border-radius:12px;margin-bottom:16px;cursor:pointer}.vm-match-confirm input{flex-shrink:0;margin-top:3px}.vm-match-help code{white-space:normal;overflow-wrap:anywhere}.vm-match-binding .vm-zone-state{overflow-wrap:anywhere}
.vm-generator{margin:16px 0;padding:18px;border:1px solid #c7ded0;border-radius:13px;background:linear-gradient(120deg,#f0f6f1,#eaf4ee)}.vm-generator-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.vm-generator-heading h4{margin:0;font-size:16px}.vm-generator-heading .vm-note{margin:4px 0 12px}.vm-generator-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:start;gap:10px}.vm-generator-submit{align-self:start;padding-top:26px}.vm-generator-submit .vm-btn{width:100%}.vm-generator-disclaimer{margin:12px 0 0;color:#5f726e;font-size:12px;line-height:1.7}.vm-local-pending{margin-top:14px}.vm-source-details{margin-top:14px}.vm-source-details>summary,.vm-section-source>summary{cursor:pointer;color:#5f726e}.vm-source-details .vm-reference-config{margin-top:10px}.vm-section-source .vm-field{margin-top:8px}.vm-generator-fields .vm-field small{line-height:1.5}
.vm-reference-config{margin:16px 0;padding:16px;border:1px solid #c7ded0;border-radius:12px;background:#f0f7f2}.vm-reference-config .vm-layout-head{margin-top:0}.vm-reference-badge{background:#e8f2ed;color:#23684f;border-radius:9px;padding:9px 13px;align-self:end;font-weight:600}.vm-reference-badge small{font-size:12px;font-weight:400}.vm-reference-toggle{margin:14px 0;color:#526b61}.vm-reference-actions{display:flex;align-items:flex-end}.vm-source-url{font-size:12px;display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere;color:#5f726e}.vm-source-url a{font-weight:600;color:#23766d}.vm-reference-guide{padding:20px;background:#f4f7f5;border:1px solid #dce5e1;border-radius:12px;line-height:1.8}.vm-reference-guide h4{margin:7px 0}.vm-reference-guide p{font-size:13px;color:#5f726e;margin:0 0 20px}.vm-step-number{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;background:#deeee3;color:#23684f;border-radius:8px;font-weight:700}.vm-reference-workspace{grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr)}.vm-reference-workspace .vm-section-list{max-height:220px}.vm-zone-toolbar{display:flex;gap:8px;align-items:center;margin:12px 0}.vm-zone-toolbar input{flex:1;min-width:0}.vm-zone-summary{display:flex;flex-wrap:wrap;gap:7px 16px;margin:12px 0;font-size:13px}.vm-zone-summary small{flex-basis:100%;color:#5f726e}.vm-match-good{color:#23684f}.vm-zone-state{display:block;color:#5f726e;font-size:11px;font-weight:400}.vm-map-table td:last-child{white-space:nowrap}
.vm-manager *, .vm-dialog *{box-sizing:border-box}.vm-manager button,.vm-dialog button{cursor:pointer;font:inherit}.vm-manager button:disabled,.vm-dialog button:disabled{cursor:default;opacity:.5}
.vm-head,.vm-toolbar,.vm-actions,.vm-row,.vm-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.vm-head{justify-content:space-between;margin-bottom:18px}.vm-head h2{margin:0;font-size:24px}.vm-head p{margin:5px 0;color:#5f726e}.vm-actions{justify-content:flex-end}.vm-toolbar{padding:16px;background:white;border:1px solid #dce5e1;border-radius:14px;margin:12px 0 18px}.vm-toolbar input[type=search]{flex:1;min-width:180px}
.vm-manager input,.vm-manager select,.vm-dialog input:not([type=checkbox]),.vm-dialog select,.vm-dialog textarea{font:inherit;background:white;color:#243b3a;border:1px solid #d4e0d7;border-radius:9px;padding:9px 11px;min-width:0;max-width:100%}.vm-manager input:focus,.vm-manager select:focus,.vm-dialog input:focus,.vm-dialog select:focus,.vm-dialog textarea:focus{outline:2px solid #77aa95;outline-offset:1px}.vm-dialog input[type=checkbox]{width:18px;height:18px;accent-color:#23766d}
.vm-btn{border:1px solid #d4e0d7;background:white;color:#355e50;border-radius:9px;padding:8px 13px;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:38px}.vm-btn:hover{background:#e8f2ed}.vm-btn.primary{background:#23766d;border-color:#23766d;color:white}.vm-btn.danger{color:#b44954;border-color:#efd1d5;background:#fff8f8}.vm-btn.active{color:#195e57;border-color:#a3c5b4;background:#e2f0e6}.vm-btn.sm{font-size:12px;padding:5px 9px;min-height:30px}.vm-tabs{display:flex;gap:8px;margin-top:14px}.vm-tag{display:inline-flex;padding:3px 8px;border-radius:6px;background:#edf4ef;font-size:12px;color:#526b61}.vm-tag.good{background:#e8f2ed;color:#23684f}.vm-tag.warn{background:#fff3df;color:#79521e}.vm-note{font-size:13px;color:#5f726e;margin:7px 0;line-height:1.7}.vm-notice{background:#edf6ef;border:1px solid #d5e5da;border-radius:10px;padding:10px 13px;color:#355e50;font-size:13px}.vm-notice.warn{background:#fff7ea;border-color:#f0dfbd;color:#79521e}.vm-msg{min-height:24px;font-size:13px;color:#23684f;white-space:pre-wrap}.vm-msg.error{color:#b64145}.vm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.vm-card{background:white;border:1px solid #dce5e1;border-radius:14px;padding:18px;display:flex;flex-direction:column;min-width:0}.vm-card h3{margin:0;font-size:17px}.vm-card-head{justify-content:space-between;align-items:flex-start}.vm-card p{overflow-wrap:anywhere}.vm-card .vm-actions{margin-top:auto;padding-top:12px;border-top:1px solid #e5ece7}.vm-card .vm-counts{display:flex;gap:8px;margin:12px 0}.vm-empty{text-align:center;padding:38px 20px;color:#5f726e;background:#f7faf7;border:1px dashed #cbdcd0;border-radius:12px}.vm-bind-list{display:grid;gap:12px}.vm-bind-list .vm-card{display:block}.vm-binding-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.vm-binding-summary h3{margin:0 0 4px}.vm-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:16px 0}
.vm-overlay{position:fixed;inset:0;background:rgba(30,38,61,.28);backdrop-filter:blur(8px);z-index:2500;display:flex;align-items:center;justify-content:center;padding:20px}.vm-dialog{background:#f4f7f5;color:#243b3a;border-radius:18px;box-shadow:0 20px 80px #173c3233;width:min(1240px,100%);max-height:94dvh;display:flex;flex-direction:column;font-family:inherit;font-size:14px;line-height:1.6}.vm-dialog.small{width:min(840px,100%)}.vm-dialog-head,.vm-dialog-foot{padding:16px 22px;background:white;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;flex-shrink:0}.vm-dialog-head{border-radius:18px 18px 0 0;border-bottom:1px solid #dce5e1}.vm-dialog-head h3{font-size:19px;margin:0}.vm-dialog-foot{border-top:1px solid #dce5e1;border-radius:0 0 18px 18px}.vm-dialog-foot .vm-msg{flex:1;min-width:160px}.vm-dialog-body{padding:18px 22px;overflow:auto;min-height:0}.vm-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.vm-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.vm-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.vm-field input,.vm-field textarea,.vm-field select{width:100%;font-weight:400}.vm-field.full{grid-column:1/-1}.vm-field small{font-weight:400;color:#5f726e}.vm-box{background:white;border:1px solid #dce5e1;border-radius:12px;padding:16px;margin-bottom:14px}.vm-box h4{margin:0 0 12px;font-size:15px}.vm-box summary{cursor:pointer;font-weight:700}.vm-box[open] summary{margin-bottom:14px}.vm-layout-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0 14px}.vm-layout-head select{min-width:160px}.vm-workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr);gap:16px}.vm-map-wrap{background:#f6faf6;border:1px solid #dce5e1;border-radius:12px;overflow:hidden;position:relative}.vm-map{display:block;width:100%;aspect-ratio:1/1;max-height:560px;touch-action:none;user-select:none}.vm-map polygon{cursor:pointer;transition:fill .15s}.vm-map text{pointer-events:none}.vm-map circle{cursor:grab}.vm-map.drawing{cursor:crosshair}.vm-map-caption{padding:8px 12px;font-size:12px;color:#5f726e;border-top:1px solid #dce5e1;background:white}.vm-map-tools{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.vm-section-list{display:flex;gap:7px;flex-wrap:wrap;max-height:125px;overflow:auto;margin:10px 0 15px}.vm-section-item{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vm-form-stack{display:grid;gap:12px}.vm-stage-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.vm-coordinate-table{width:100%;border-collapse:collapse;font-size:12px}.vm-coordinate-table td,.vm-coordinate-table th{padding:5px;border-bottom:1px solid #e5ece7}.vm-coordinate-table input{width:90px}.vm-table-wrap{overflow:auto;border:1px solid #dce5e1;border-radius:10px;max-height:380px}.vm-map-table{width:100%;border-collapse:collapse;font-size:14px;background:white}.vm-map-table th,.vm-map-table td{padding:10px 12px;border-bottom:1px solid #e5ece7;text-align:left}.vm-map-table th{font-size:12px;color:#5f726e;background:#edf4ef;position:sticky;top:0;z-index:1}.vm-map-table select{width:100%;min-width:170px}.vm-map-table .unmatched{background:#fffbf4}.vm-warning-count{font-weight:700;color:#79521e}.vm-import-preview{padding:15px;background:white;border-radius:10px;max-height:280px;overflow:auto}.vm-screenreader{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:900px){.vm-workspace{grid-template-columns:1fr}.vm-map{max-height:420px}.vm-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.vm-overlay{padding:10px}.vm-dialog{max-height:97dvh}.vm-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}
@media(max-width:540px){.vm-head h2{font-size:21px}.vm-toolbar{padding:12px}.vm-toolbar input[type=search]{flex-basis:100%}.vm-grid{grid-template-columns:1fr}.vm-dialog-head,.vm-dialog-foot,.vm-dialog-body{padding:14px}.vm-fields,.vm-fields.two{grid-template-columns:1fr}.vm-stage-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.vm-dialog input:not([type=checkbox]),.vm-dialog select,.vm-dialog textarea{font-size:16px}.vm-head>.vm-actions{justify-content:flex-start}.vm-binding-summary>.vm-actions{justify-content:flex-start}.vm-map-table td,.vm-map-table th{padding:8px}.vm-dialog-foot .vm-msg{flex-basis:100%}}

/* Shared venue workspace: calm surfaces, a clear primary action, and amber selection. */
.vm-manager { padding-block: 4px; }
.vm-manager :is(h2,h3,h4), .vm-dialog :is(h3,h4) { color: var(--vm-ink); letter-spacing: .01em; }
.vm-head { gap: 18px; margin-bottom: 20px; }
.vm-head p { max-width: 52em; }
.vm-toolbar { gap: 10px; padding: 16px; box-shadow: 0 2px 10px #254d3e05; }
.vm-manager input, .vm-manager select, .vm-dialog input:not([type=checkbox]), .vm-dialog select, .vm-dialog textarea { min-height: 44px; line-height: 1.5; border-color: #d4e0d7; border-radius: 10px; }
.vm-manager input::placeholder, .vm-dialog input::placeholder, .vm-dialog textarea::placeholder { color: var(--vm-muted); opacity: 1; }
.vm-manager :is(button,a,summary):focus-visible, .vm-dialog :is(button,a,summary):focus-visible { outline: 3px solid var(--vm-primary); outline-offset: 3px; }
.vm-btn { min-height: 42px; padding: 9px 14px; border-radius: 10px; line-height: 1.45; transition: background-color .15s, border-color .15s, box-shadow .15s; }
.vm-btn:hover { border-color: #92b7aa; background: #edf5f0; }
.vm-btn.primary { background: var(--vm-primary); border-color: var(--vm-primary); box-shadow: 0 3px 8px #195e5714; }
.vm-btn.primary:hover { background: #195e57; border-color: #195e57; }
.vm-btn.active { background: #e2f0e6; color: #195e57; border-color: #a3c5b4; box-shadow: inset 0 0 0 1px #a3c5b433; }
.vm-btn.danger:hover { border-color: #d99c9f; background: #fff0f0; }
.vm-tabs { gap: 4px; width: fit-content; max-width: 100%; padding: 4px; border: 1px solid var(--vm-line); border-radius: 13px; background: #eef0f2; }
.vm-tabs .vm-btn { border-color: transparent; background: transparent; box-shadow: none; }
.vm-tabs .vm-btn.active { border-color: #d5e5da; color: #195e57; background: white; box-shadow: 0 2px 5px #195e570d; }
.vm-card { padding: 20px; border-color: #e1e5e8; border-radius: 16px; box-shadow: 0 2px 7px #1c253205; transition: border-color .15s, box-shadow .15s; }
.vm-card:hover { border-color: #aecbb9; box-shadow: 0 5px 18px #254d3e0a; }
.vm-card h3 { line-height: 1.45; overflow-wrap: anywhere; }
.vm-card .vm-actions { gap: 8px; margin-top: 8px; padding-top: 14px; }
.vm-card .vm-counts { gap: 7px; flex-wrap: wrap; }
.vm-tag { border-radius: 7px; padding: 4px 8px; line-height: 1.5; }
.vm-tag.good { border: 1px solid #d5e5da; }
.vm-notice { padding: 13px 16px; line-height: 1.75; }
.vm-overlay { padding: 16px; overscroll-behavior: contain; }
.vm-dialog { min-height: 0; max-height: calc(100dvh - 32px); overflow: hidden; border: 1px solid #ffffffb3; border-radius: 20px; background: #f3f4f6; box-shadow: 0 24px 80px #19212d29, 0 2px 12px #19212d0a; }
.vm-dialog-head { gap: 14px; background: #fffffff2; }
.vm-dialog-head h3 { min-width: 0; overflow-wrap: anywhere; }
.vm-dialog-head > .vm-btn { flex: none; }
.vm-dialog-body { padding: 20px 22px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b6c9bf transparent; }
.vm-dialog-foot { gap: 10px; padding-block: 14px; box-shadow: 0 -4px 16px #254d3e05; }
.vm-dialog-foot .vm-msg { max-height: 86px; overflow: auto; overflow-wrap: anywhere; }
.vm-dialog-foot .vm-msg:empty { display: none; }
.vm-dialog-foot .vm-actions { margin-left: auto; }
.vm-field { gap: 7px; color: #355b4f; }
.vm-field small { line-height: 1.6; }
.vm-field textarea { resize: vertical; }
.vm-box { padding: 18px; border-color: #e1e5e8; border-radius: 16px; }
.vm-generator, .vm-reference-config { border-color: #c7ded0; }
.vm-generator { padding: 18px; background: linear-gradient(120deg,#f4f8ef,#eaf4ee); }
.vm-generator-disclaimer { padding-top: 10px; border-top: 1px solid #dce8dc; }
.vm-reference-badge { color: #23684f; background: #deeee3; }
.vm-source-url a { text-underline-offset: 3px; }
.vm-section-list { gap: 8px; padding: 2px 2px 5px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b6c9bf transparent; }
.vm-section-item.active { color: var(--vm-selected-ink); border-color: #bf9045; background: var(--vm-selected); box-shadow: inset 0 0 0 1px #bf904522; }
.vm-map-wrap { background: #f6faf6; border-color: var(--vm-line); }
.vm-map [data-section] { fill: #bdd8cf; stroke: #93b1a4; }
.vm-map [data-section][fill='#d8eee8'] { fill: #d9e7ca; }
.vm-map [data-section][fill='#f1e4cb'] { fill: #e8ddc8; }
.vm-map [data-section][stroke-width='5'] { fill: #f4d89f; stroke: #a77329; }
.vm-map [fill='#333547'] { fill: #2e4b46; }
.vm-map text:not([fill='white']) { fill: var(--vm-ink); }
.vm-map [data-vertex], .vm-map polyline { stroke: var(--vm-primary); }
.vm-map polyline:not([fill='none']) { fill: #23766d22; }
.vm-map circle:not([data-vertex]) { fill: var(--vm-primary); }
.vm-map pattern path { stroke: #dfe8e1; }
.vm-map-caption { padding: 10px 12px; line-height: 1.6; }
.vm-table-wrap { max-height: min(380px,60dvh); overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b6c9bf transparent; }
.vm-map-table td { line-height: 1.6; }
.vm-map-table tbody tr:hover { background: #f0f7f2; }
.vm-map-table tbody tr.unmatched:hover { background: #fff5e5; }
.vm-zone-toolbar { flex-wrap: wrap; }
.vm-zone-summary { padding: 12px 14px; border: 1px solid var(--vm-line); border-radius: 10px; background: #f5f9f5; }
.vm-match-summary > div { padding: 14px; background: #f5f9f5; }
.vm-match-confirm { line-height: 1.7; }
.vm-match-confirm input { width: 20px; height: 20px; }
@media (max-width: 760px) {
  .vm-manager .vm-btn, .vm-dialog .vm-btn { min-height: 44px; }
  .vm-manager input, .vm-manager select, .vm-dialog input:not([type=checkbox]), .vm-dialog select, .vm-dialog textarea { font-size: 16px; }
  .vm-head > .vm-actions { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vm-head > .vm-actions .vm-btn { min-width: 0; }
  .vm-toolbar > select { flex: 1; min-width: 130px; }
  .vm-tabs { width: 100%; }
  .vm-tabs .vm-btn { flex: 1; min-width: 0; }
  .vm-card { padding: 16px; }
  .vm-card .vm-actions { justify-content: flex-start; }
  .vm-card .vm-actions .vm-btn { flex: 1; }
  .vm-overlay { padding: 0; }
  .vm-dialog, .vm-dialog.small { width: 100%; max-height: 100dvh; border: 0; border-radius: 0; }
  .vm-dialog-head { padding: calc(12px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 12px max(14px,env(safe-area-inset-left,0px)); border-radius: 0; flex-wrap: nowrap; }
  .vm-dialog-head h3 { font-size: 18px; font-weight: 650; letter-spacing: -.02em; }
  .vm-dialog-body { padding: 14px max(14px,env(safe-area-inset-right,0px)) 14px max(14px,env(safe-area-inset-left,0px)); }
  .vm-dialog-foot { padding: 12px max(14px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px)); border-radius: 0; }
  .vm-dialog-foot .vm-actions { width: 100%; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
  .vm-dialog-foot .vm-actions .vm-btn { min-width: 0; padding-inline: 8px; font-size: 13px; }
  .vm-dialog-foot .vm-msg { max-height: 64px; }
  .vm-box { padding: 14px; }
  .vm-map-tools .vm-btn { flex: 1; }
  .vm-zone-toolbar input { flex-basis: 100%; }
  .vm-generator-submit { padding-top: 0; }
}
@media (max-height: 520px) {
  .vm-overlay { padding-block: 0; }
  .vm-dialog { max-height: 100dvh; }
  .vm-dialog-head, .vm-dialog-foot { padding-top: 8px; padding-bottom: 8px; }
  .vm-dialog-foot { padding-bottom: calc(8px + env(safe-area-inset-bottom,0px)); }
  .vm-dialog-foot .vm-msg { max-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .vm-manager *, .vm-dialog * { transition: none !important; }
}
