.msv-fullbleed-shell {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0 16px;
  box-sizing: border-box;
}
:root {
  --msv-bg: #0b111d;
  --msv-card: #111a2e;
  --msv-border: rgba(233, 228, 214, 0.12);
  --msv-text: #f4efe4;
  --msv-soft: rgba(244, 239, 228, 0.72);
  --msv-accent: #d7c69c;
  --msv-accent-2: #6cb0ff;
}
.msv-wrap {
  position: relative;
  display: grid;
  width: min(1680px, 100%);
  margin: 0 auto;
  grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  color: var(--msv-text);
}
.msv-wrap.msv-layout-side { grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); }
.msv-wrap.msv-layout-stack { grid-template-columns: 1fr; }
.msv-wrap.msv-layout-stack .msv-controls { order: 1; }
.msv-wrap.msv-layout-stack .msv-canvas-panel { order: 0; }
.msv-panel {
  min-width: 0;
  background: linear-gradient(180deg, rgba(17,26,46,0.98), rgba(9,15,28,0.98));
  border: 1px solid var(--msv-border);
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,0.25);
}
.msv-heading-row h3, .msv-info-header h4 { margin: 0 0 6px; font-size: 1.3rem; }
.msv-heading-row p, .msv-info-header p { margin: 0; color: var(--msv-soft); line-height: 1.45; }
.msv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.msv-grid-tight { margin-top: 14px; }
.msv-grid label, .msv-toggles label { display: grid; gap: 6px; font-size: 0.95rem; color: var(--msv-soft); }
.msv-grid input, .msv-grid select, .msv-zoom-readout {
  width: 100%; box-sizing: border-box; border-radius: 14px; border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04); color: var(--msv-text); padding: 11px 12px; min-height: 44px;
}
.msv-zoom-readout { display:flex; align-items:center; font-weight:600; color: var(--msv-text); }
.msv-location-label-wrap { grid-column: 1 / -1; }
.msv-actions, .msv-jumpbar, .msv-toggles, .msv-legend, .msv-info-links { display:flex; flex-wrap:wrap; gap:10px; }
.msv-actions, .msv-jumpbar, .msv-toggles { margin-top: 16px; }
.msv-jump-label { width:100%; font-size:0.83rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--msv-soft); }
.msv-btn {
  border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.05); color: var(--msv-text);
  border-radius: 999px; padding: 10px 14px; cursor: pointer; transition: 0.2s ease; font-weight: 600;
}
.msv-btn:hover { transform: translateY(-1px); background: rgba(255,255,255,0.08); }
.msv-btn-primary { background: linear-gradient(180deg, #e3d7b8, #cdb887); color: #15181f; border-color: transparent; }
.msv-btn-soft { background: rgba(108,176,255,0.08); }
.msv-status { margin-top: 14px; color: var(--msv-soft); min-height: 1.2em; }
.msv-meta { display:grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap:10px; margin-bottom: 12px; }
.msv-meta-item {
  border: 1px solid rgba(255,255,255,0.08); border-radius: 16px; padding: 10px 12px; background: rgba(255,255,255,0.04);
  font-size: 0.92rem; color: var(--msv-soft);
}
.msv-meta-item strong { display:block; color: var(--msv-text); margin-bottom:4px; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.08em; }
.msv-canvas-panel { min-width: 0; }
.msv-layout-mode { font-weight: 600; }
.msv-canvas { width:100%; height:auto; display:block; border-radius:20px; background:#050912; cursor: crosshair; min-height: 680px; }
.msv-legend { margin-top: 12px; color: var(--msv-soft); font-size: 0.9rem; }
.msv-legend span { display:inline-flex; align-items:center; gap:8px; }
.msv-dot, .msv-planet, .msv-line, .msv-ring {
  display:inline-block; width:14px; height:14px; border-radius:999px; border:1px solid rgba(255,255,255,0.15);
}
.msv-dot { background:#f3f6ff; }
.msv-planet { background:#ecd19b; }
.msv-line { background:transparent; border-color:#6cb0ff; }
.msv-ring { background:transparent; border-color:#d7c69c; }
.msv-tip-panel { align-self: start; }
.msv-info-card {
  border:1px solid rgba(255,255,255,0.08); border-radius:18px; padding:16px; background: rgba(255,255,255,0.04); margin-top: 14px;
}
.msv-info-empty, .msv-info-empty-inline { color: var(--msv-soft); }
.msv-info-kicker { font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:#7db9ff; }
.msv-info-title { margin:6px 0 8px; font-size:1.2rem; }
.msv-info-meta { color: var(--msv-soft); font-size: 0.93rem; }
.msv-info-desc { color: var(--msv-text); line-height:1.55; margin: 12px 0; }
.msv-info-links a {
  display:inline-flex; align-items:center; padding:9px 12px; border-radius:999px; border:1px solid rgba(255,255,255,0.12);
  color: var(--msv-text); text-decoration:none; background: rgba(255,255,255,0.05);
}
.msv-info-links a:hover { background: rgba(255,255,255,0.09); }
.msv-info-note { margin-top: 12px; color: var(--msv-soft); font-size: 0.84rem; line-height:1.45; }
.msv-modal[hidden] { display: none !important; }
.msv-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
}
.msv-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3, 8, 18, 0.74);
  backdrop-filter: blur(4px);
}
.msv-modal-dialog {
  position: relative;
  z-index: 2;
  max-width: 520px;
  margin: 6vh auto;
  background: linear-gradient(180deg, rgba(17,26,46,0.99), rgba(9,15,28,0.99));
  border: 1px solid var(--msv-border);
  border-radius: 24px;
  padding: 22px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.45);
}
.msv-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: var(--msv-text);
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}
.msv-modal-close:hover { background: rgba(255,255,255,0.12); }
@media (max-width: 1320px) {
  .msv-meta { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 1180px) {
  .msv-fullbleed-shell { padding: 0 12px; }
  .msv-wrap, .msv-wrap.msv-layout-side { grid-template-columns: 1fr; }
  .msv-meta { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .msv-grid { grid-template-columns: 1fr; }
  .msv-meta { grid-template-columns: 1fr; }
  .msv-canvas { min-height: 420px; }
  .msv-modal-dialog {
    max-width: calc(100vw - 24px);
    margin: 4vh auto;
    padding: 18px;
  }
}


.msv-filter-box{margin-top:16px;padding:14px 14px 12px;border:1px solid rgba(255,255,255,0.08);border-radius:18px;background:rgba(255,255,255,0.03)}
.msv-filter-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.msv-filter-help{font-size:13px;line-height:1.45;color:rgba(233,228,214,0.74);margin-bottom:10px}
.msv-filter-actions{display:flex;gap:8px}
.msv-btn-mini{padding:8px 12px;font-size:12px}
.msv-zodiac-filter{display:flex;flex-wrap:wrap;gap:8px}
.msv-zodiac-option{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);font-size:13px}
.msv-zodiac-option input{margin:0}

.msv-canvas-helper{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.msv-feast-badge{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:rgba(215,198,156,0.12);border:1px solid rgba(215,198,156,0.35);color:var(--msv-text);font-size:.88rem}
.msv-canvas-note{color:var(--msv-soft);font-size:.9rem}
.msv-ref-list{margin-top:12px;display:grid;gap:8px;flex-basis:100%}
.msv-ref-item{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:var(--msv-soft);font-size:.92rem;line-height:1.4}


.msv-wrap.msv-biblical-theme {
  --msv-card: #221c0d;
  --msv-border: rgba(172,147,67,0.28);
  --msv-text: #f7efda;
  --msv-soft: rgba(247,239,218,0.74);
  --msv-accent: #ac9343;
  --msv-accent-2: #ac9343;
}
.msv-wrap.msv-biblical-theme .msv-panel,
.msv-wrap.msv-biblical-theme .msv-modal-dialog {
  background: linear-gradient(180deg, rgba(38,30,14,0.98), rgba(20,15,7,0.98));
}
.msv-wrap.msv-biblical-theme .msv-btn-primary {
  background: linear-gradient(180deg, #c9b05d, #ac9343);
  color: #1a1408;
}
.msv-wrap.msv-biblical-theme .msv-btn-soft { background: rgba(172,147,67,0.12); }
.msv-wrap.msv-biblical-theme .msv-info-kicker { color: #d7bf75; }
.msv-historical-box{margin-top:16px;padding:14px 14px 12px;border:1px solid rgba(255,255,255,0.08);border-radius:18px;background:rgba(255,255,255,0.03)}
.msv-grid-historical{margin-top:10px}
.msv-actions-tight{margin-top:12px}
.msv-biblical-toggle > label{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;border:1px solid rgba(255,255,255,0.12);border-radius:14px;background:rgba(255,255,255,0.04)}
.msv-biblical-toggle > label input{margin:0}

.msv-event-dot{background:#7fd96a;border-color:rgba(127,217,106,.7)}
.msv-event-badge{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:rgba(127,217,106,0.10);border:1px solid rgba(127,217,106,0.35);color:var(--msv-text);font-size:.88rem}
.msv-location-search-wrap{grid-column:1 / -1}
.msv-wrap.msv-biblical-theme .msv-event-badge{background:rgba(172,147,67,0.16);border-color:rgba(172,147,67,.45)}

@media (max-width: 720px) {
  .msv-fullbleed-shell { padding: 0 10px; }
}


.msv-wrap.msv-prophetic-theme .msv-panel {
  box-shadow: 0 18px 50px rgba(0,0,0,0.25), 0 0 0 1px rgba(127,217,106,0.08) inset;
}
.msv-wrap.msv-biblical-theme.msv-prophetic-theme .msv-panel {
  box-shadow: 0 18px 50px rgba(0,0,0,0.25), 0 0 0 1px rgba(215,191,117,0.12) inset;
}
