/* MIGRA Search widget – uses theme tokens when available. */
.migra-search-fab,
.migra-search-panel {
  --ms-surface: var(--surface, #ffffff);
  --ms-bg: var(--bg, #f3f6f4);
  --ms-text: var(--text, #132a26);
  --ms-muted: var(--muted, #5b6f69);
  --ms-line: var(--line, #dce5e1);
  --ms-accent: var(--accent, #0a7458);
  --ms-accent-ink: #ffffff;
  --ms-soft: color-mix(in srgb, var(--ms-accent) 12%, transparent);
  --ms-sos: #b3261e;
  font-family: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;
}
:root[data-theme="dark"] .migra-search-fab,
:root[data-theme="dark"] .migra-search-panel {
  --ms-surface: var(--surface, #15211f);
  --ms-bg: var(--bg, #0e1715);
  --ms-text: var(--text, #e3ede9);
  --ms-muted: #9fb0aa;
  --ms-line: var(--line, #26342f);
  --ms-accent: var(--accent, #42c29c);
  --ms-accent-ink: #0b211b;
  --ms-sos: #f08a78;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .migra-search-fab,
  :root:not([data-theme="light"]) .migra-search-panel {
    --ms-surface: var(--surface, #15211f);
    --ms-bg: var(--bg, #0e1715);
    --ms-text: var(--text, #e3ede9);
    --ms-muted: #9fb0aa;
    --ms-line: var(--line, #26342f);
    --ms-accent: var(--accent, #42c29c);
    --ms-accent-ink: #0b211b;
    --ms-sos: #f08a78;
  }
}

.migra-search-fab {
  position: fixed; right: 20px; bottom: 20px; z-index: 9998;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 18px 10px 10px; border: 0; border-radius: 999px;
  background: var(--ms-accent); color: var(--ms-accent-ink);
  font-size: 15px; font-weight: 700; cursor: pointer;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .22);
}
.migra-search-fab:hover { filter: brightness(1.06); }
.migra-search-fab:focus-visible { outline: 3px solid var(--ms-text); outline-offset: 3px; }
.migra-search-fab-icon {
  display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255, 255, 255, .22); font-size: 17px;
}
.migra-search-open .migra-search-fab { display: none; }

.migra-search-panel {
  position: fixed; right: 20px; bottom: 20px; z-index: 9999;
  width: min(400px, calc(100vw - 32px)); height: min(600px, calc(100vh - 40px));
  display: flex; flex-direction: column;
  background: var(--ms-surface); color: var(--ms-text);
  border: 1px solid var(--ms-line); border-radius: 18px; overflow: hidden;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}
.migra-search-panel[hidden] { display: none; }
.migra-search-panel * { box-sizing: border-box; }

.migra-search-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 14px 14px 18px; background: var(--ms-accent); color: var(--ms-accent-ink);
}
.migra-search-titles { display: flex; flex-direction: column; line-height: 1.25; }
.migra-search-titles strong { font-size: 16px; }
.migra-search-titles span { font-size: 12.5px; opacity: .85; }
.migra-search-close {
  width: 34px; height: 34px; border: 0; border-radius: 50%; cursor: pointer;
  background: rgba(255, 255, 255, .2); color: inherit; font-size: 22px; line-height: 1;
}

.migra-search-log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; background: var(--ms-bg); }
.migra-search-msg { max-width: 92%; font-size: 14.5px; line-height: 1.5; }
.migra-search-msg p { margin: 0 0 8px; }
.migra-search-msg p:last-child { margin-bottom: 0; }
.migra-search-user {
  align-self: flex-end; padding: 9px 14px; border-radius: 16px 16px 4px 16px;
  background: var(--ms-accent); color: var(--ms-accent-ink); font-weight: 500;
}
.migra-search-bot {
  align-self: flex-start; padding: 12px 14px; border-radius: 16px 16px 16px 4px;
  background: var(--ms-surface); border: 1px solid var(--ms-line);
}
.migra-search-wait { color: var(--ms-muted); }

.migra-search-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.migra-search-chip {
  border: 1px solid var(--ms-line); background: var(--ms-soft); color: var(--ms-text);
  border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 13px; cursor: pointer;
}
.migra-search-chip:hover { border-color: var(--ms-accent); }

.migra-search-results { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.migra-search-link {
  display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 12px;
  border: 1px solid var(--ms-line); text-decoration: none; color: var(--ms-text); background: var(--ms-bg);
}
.migra-search-link:hover, .migra-search-link:focus-visible { border-color: var(--ms-accent); outline: none; }
.migra-search-crumb { font-size: 11.5px; color: var(--ms-muted); text-transform: uppercase; letter-spacing: .04em; }
.migra-search-link strong { font-size: 14.5px; }
.migra-search-snippet { font-size: 13px; color: var(--ms-muted); }
.migra-search-open { font-size: 13px; color: var(--ms-accent); font-weight: 600; margin-top: 2px; }
.migra-search-ext { color: var(--ms-accent); font-weight: 600; }
.migra-search-sos { color: var(--ms-sos); font-weight: 600; margin-top: 8px !important; }

.migra-search-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--ms-line); background: var(--ms-surface); }
.migra-search-input {
  flex: 1; min-width: 0; padding: 10px 14px; border-radius: 999px;
  border: 1px solid var(--ms-line); background: var(--ms-bg); color: var(--ms-text); font: inherit; font-size: 15px;
}
.migra-search-input:focus { outline: 2px solid var(--ms-accent); outline-offset: 0; border-color: transparent; }
.migra-search-send {
  border: 0; border-radius: 999px; padding: 0 18px; cursor: pointer;
  background: var(--ms-accent); color: var(--ms-accent-ink); font: inherit; font-weight: 700; font-size: 14px;
}
.migra-search-foot { padding: 0 14px 10px; font-size: 11.5px; color: var(--ms-muted); background: var(--ms-surface); }

@media (max-width: 560px) {
  .migra-search-fab { right: 14px; bottom: 14px; }
  .migra-search-fab-label { display: none; }
  .migra-search-fab { padding: 10px; }
  .migra-search-panel { right: 0; bottom: 0; width: 100vw; height: 100dvh; border-radius: 0; border: 0; }
}
@media print { .migra-search-fab, .migra-search-panel { display: none !important; } }

/* Foreign Police finder */
.migra-ocp { margin: 18px 0; }
.migra-ocp-label { display: block; font-weight: 700; margin-bottom: 8px; }
.migra-ocp-field { position: relative; }
.migra-ocp-input {
  width: 100%; box-sizing: border-box; padding: 12px 16px; font: inherit; font-size: 16px;
  border: 1px solid var(--line, #dce5e1); border-radius: 12px; background: var(--surface, #fff); color: var(--text, #132a26);
}
.migra-ocp-input:focus { outline: 2px solid var(--accent, #0a7458); outline-offset: 0; border-color: transparent; }
.migra-ocp-list {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 50; list-style: none; margin: 0; padding: 6px;
  background: var(--surface, #fff); border: 1px solid var(--line, #dce5e1); border-radius: 12px; box-shadow: 0 14px 40px rgba(0,0,0,.18);
  max-height: 320px; overflow-y: auto;
}
.migra-ocp-list[hidden] { display: none; }
.migra-ocp-option { display: flex; justify-content: space-between; gap: 12px; padding: 9px 12px; border-radius: 8px; cursor: pointer; }
.migra-ocp-option span { color: var(--muted, #5b6e69); font-size: 13px; white-space: nowrap; }
.migra-ocp-option:hover, .migra-ocp-option.is-active { background: var(--accent-soft, #e2f0ea); }
.migra-ocp-card { margin-top: 14px; padding: 18px; border: 1px solid var(--line, #dce5e1); border-left: 4px solid var(--accent, #0a7458); border-radius: 14px; background: var(--surface, #fff); }
.migra-ocp-card h3 { margin: 2px 0 6px; }
.migra-ocp-kicker { margin: 0; font-size: 13px; color: var(--muted, #5b6e69); }
.migra-ocp-district { margin: 0 0 10px; font-size: 14px; color: var(--muted, #5b6e69); }
.migra-ocp-dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 10px 0; }
.migra-ocp-dl dt { font-weight: 700; }
.migra-ocp-dl dd { margin: 0; }
.migra-ocp-card a { color: var(--accent, #0a7458); font-weight: 600; }
.migra-ocp-hours-title { font-weight: 700; margin: 14px 0 6px; }
.migra-ocp-hours { border-collapse: collapse; width: 100%; font-size: 14.5px; }
.migra-ocp-hours th, .migra-ocp-hours td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--line, #dce5e1); vertical-align: top; }
.migra-ocp-hours th { width: 32%; font-weight: 600; }
.migra-ocp-hours small { color: var(--muted, #5b6e69); }
.migra-ocp-note { margin: 12px 0; font-size: 14px; }
.migra-ocp-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.migra-ocp-card a.migra-ocp-btn { display: inline-block; padding: 10px 16px; border-radius: 999px; background: var(--accent, #0a7458); color: #fff; text-decoration: none; }
:root[data-theme="dark"] .migra-ocp-card a.migra-ocp-btn { color: #0b211b; }
.migra-ocp-checked { margin: 12px 0 0; font-size: 12.5px; color: var(--muted, #5b6e69); }
.migra-ocp-none { margin-top: 12px; }
.migra-ocp-all { margin-top: 16px; }
@media (max-width: 560px) { .migra-ocp-dl { grid-template-columns: 1fr; } .migra-ocp-option { flex-direction: column; gap: 2px; } }
