.map-position-manager { display: grid; grid-template-columns: 220px minmax(0, 1fr) 250px; gap: 14px; width: 100%; height: 100%; min-height: 0; color: var(--text); }
.map-position-manager label { display: flex; flex-direction: column; gap: 6px; margin: 0; font-size: 0.9375rem; }
.map-position-sidebar, .map-position-inspector { display: flex; flex-direction: column; gap: 12px; min-height: 0; min-width: 0; padding: 12px; border: 1px solid var(--dashboard-border); border-radius: 10px; background: var(--dashboard-surface-raised); }
.map-position-map-list { flex: 1; min-height: 0; overflow: auto; }
.map-position-map { display: flex; flex-direction: column; gap: 6px; width: 100%; margin-bottom: 8px; padding: 12px; color: var(--text); text-align: left; border: 1px solid var(--dashboard-border); border-radius: 8px; background: var(--admin-hover); }
.map-position-map small { color: var(--muted); font-size: 0.875rem; }
.map-position-map.selected, .map-position-point.selected { border-color: var(--admin-primary); background: var(--admin-primary-soft); }
.map-position-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; min-height: 0; }
.map-position-source-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.map-position-source { min-width: 0; }
.map-position-source select { width: 100%; min-width: 0; text-overflow: ellipsis; }
.map-position-add-active { max-width: 250px; min-height: 38px; }
.map-position-heading { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.map-position-heading strong { font-size: 1.25rem; }
.map-position-heading [role="status"] { color: var(--admin-warning); font-size: 0.875rem; }
.map-position-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.map-position-toolbar .btn { min-width: 38px; padding: 6px 10px; }
.map-position-toolbar label { flex-direction: row; align-items: center; gap: 6px; }
.map-position-toolbar span { color: var(--muted); font-size: 0.875rem; }
.map-position-stage { position: relative; flex: 1; min-height: 200px; border: 1px solid var(--dashboard-border); border-radius: 10px; overflow: hidden; }
.map-position-stage canvas { position: absolute; display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.map-position-stage > span { position: absolute; inset: 12px 12px auto; padding: 12px; border-radius: 6px; background: var(--dashboard-surface-raised); pointer-events: none; }
.map-position-help { flex: 0 0 auto; margin: 0; color: var(--muted); font-size: 0.875rem; line-height: 1.5; }
.map-position-description { margin: 0; font-size: 0.9375rem; }
.map-position-point-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.map-position-point-actions .btn { font-size: 0.9375rem; padding: 7px 10px; }
.map-position-points { flex: 1; min-height: 0; overflow: auto; }
.map-position-point { display: block; width: 100%; padding: 12px 8px; margin-bottom: 8px; border: 1px solid var(--dashboard-border); border-radius: 7px; color: var(--text); background: var(--admin-hover); text-align: left; font-size: 0.9375rem; }
.map-position-npcs { max-height: 35%; overflow: auto; font-size: 0.9375rem; color: var(--muted); }
.map-position-npcs:empty { display: none; }
.map-position-npcs p { margin: 8px 0; }
.map-position-npcs small { display: block; line-height: 1.5; }
.map-position-form { display: grid; gap: 16px; }
.map-position-form label { display: grid; gap: 7px; }
.modal-body:has(> .map-position-active-editor) { display: flex; min-height: 0; overflow: hidden; }
.map-position-active-editor { display: flex; flex: 1; flex-direction: column; gap: 12px; min-width: 0; min-height: 0; color: var(--text); }
.map-position-active-editor p { margin: 0; line-height: 1.5; }
.map-position-active-editor > :not(.map-position-active-list) { flex: 0 0 auto; }
.map-position-active-list { flex: 1 1 auto; max-height: 45vh; min-height: 0; overflow: auto; }
.map-position-active-row { display: flex; align-items: center; gap: 12px; padding: 12px; margin: 0 0 8px; min-height: 48px; border: 1px solid var(--dashboard-border); border-radius: 8px; background: var(--admin-hover); cursor: pointer; }
.map-position-active-row[hidden] { display: none; }
.map-position-active-row:has(input:checked) { border-color: var(--admin-primary); background: var(--admin-primary-soft); }
.map-position-active-row input { flex: 0 0 auto; }
@media (max-height: 500px) {
  .modal-card:has(.map-position-active-editor) > .modal-header,
  .modal-card:has(.map-position-active-editor) > .modal-footer,
  .modal-body:has(> .map-position-active-editor) { padding: 12px; }
  .map-position-active-editor { gap: 8px; }
  .map-position-active-editor p { font-size: 0.875rem; line-height: 1.35; }
}
.modal-root[data-size="workspace"] .modal-body:has(> .map-position-manager) { display: flex; min-height: 0; overflow: hidden; }
@media (max-width: 1150px) {
  .map-position-manager { grid-template-columns: 175px minmax(0, 1fr) 205px; gap: 8px; }
  .map-position-sidebar, .map-position-inspector { padding: 9px; }
}
@media (max-width: 850px) {
  .map-position-source-row { gap: 6px; }
  .map-position-add-active { max-width: 150px; padding: 6px 8px; font-size: 0.875rem; }
  .map-position-manager { grid-template-columns: 135px minmax(0, 1fr) 180px; }
  .map-position-map { padding: 8px; font-size: 0.875rem; }
  .map-position-toolbar { gap: 6px; }
}
@media (max-width: 700px) {
  .map-position-manager { grid-template-columns: 145px minmax(0, 1fr); grid-template-rows: minmax(240px, 1fr) 190px; }
  .map-position-sidebar { grid-row: 1 / 3; }
  .map-position-inspector { grid-column: 2; display: grid; grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr); grid-template-rows: auto auto minmax(0, 1fr); gap: 6px; }
  .map-position-inspector > label { grid-column: 1; }
  .map-position-description { grid-column: 1; }
  .map-position-point-actions { grid-column: 1; align-content: start; }
  .map-position-points { grid-column: 2; grid-row: 1 / 4; min-height: 0; }
  .map-position-npcs { display: none; }
  .map-position-stage { min-height: 100px; }
  .map-position-help { font-size: 0.8125rem; }
  .map-position-toolbar { gap: 6px; }
}
@media (max-height: 600px) {
  .modal-root[data-size="workspace"]:has(.map-position-manager) .modal-header { min-height: 44px; padding: 6px 14px; }
  .modal-root[data-size="workspace"]:has(.map-position-manager) .panel-kicker { display: none; }
  .modal-root[data-size="workspace"]:has(.map-position-manager) .modal-header h2 { font-size: 1.1875rem; }
  .modal-root[data-size="workspace"]:has(.map-position-manager) .modal-body { padding: 8px; }
  .modal-root[data-size="workspace"]:has(.map-position-manager) .modal-footer { min-height: 48px; padding: 6px 12px; }
  .map-position-stage { min-height: 60px; }
  .map-position-help { display: none; }
  .map-position-description { display: none; }
  .map-position-inspector { gap: 6px; }
  .map-position-point-actions .btn { padding: 5px 6px; font-size: 0.8125rem; }
  .map-position-point { padding: 7px 6px; }
  .map-position-npcs { max-height: 25%; }
}
@media (max-width: 560px) {
  .map-position-source-row { grid-template-columns: minmax(0, 1fr); }
  .map-position-add-active { justify-self: end; max-width: 100%; }
  .map-position-manager { grid-template-columns: 112px minmax(0, 1fr); grid-template-rows: minmax(235px, 1fr) 175px; }
  .map-position-map { padding: 8px; font-size: 0.875rem; }
  .map-position-inspector { grid-template-columns: minmax(0, 1fr); }
  .map-position-points { grid-column: 1; grid-row: 3; }
  .map-position-description { display: none; }
  .map-position-help { display: none; }
  .map-position-point-actions { grid-row: 2; }
}
