/* Legacy (non-Indiz) page styles - moved verbatim from the former inline <style> in fragments/head.html (#160, CSP style-src 'self'). */
:root { color-scheme: dark; }
body { background:#0b0d10; color:#e6e8eb; font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; }
a { color:#7dd3fc; }
.wrap { max-width:1100px; margin:0 auto; padding:24px 20px 60px; }
h1 { font-size:18px; margin:0 0 6px; }
.dim { color:#8a919c; font-size:12.5px; }
.mono { font-family:ui-monospace,Menlo,Consolas,monospace; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid #1e2228; font-size:12.5px; vertical-align:top; }
th { color:#8a919c; font-weight:600; }
.card { background:#12151a; border:1px solid #1e2228; border-radius:10px; }
.pad { padding:14px 18px; }
input[type=text], input[type=password] { background:#0b0d10; border:1px solid #2a2f37; color:#e6e8eb; border-radius:8px; padding:9px 12px; }
button, .btn { background:#1e3a5f; color:#e6e8eb; border:1px solid #2a4a75; border-radius:8px; padding:9px 16px; cursor:pointer; font-size:13px; }
pre { white-space:pre-wrap; word-break:break-all; background:#0b0d10; border-radius:6px; padding:8px; }
.ok { color:#4ade80; } .failed { color:#f87171; } .partial { color:#fbbf24; }
.skipped { color:#8a919c; } /* neutral/informational state — neither success nor failure */
.badge { display:inline-block; background:#3f2d0a; color:#fbbf24; border:1px solid #7c5a12; border-radius:6px; padding:2px 8px; font-size:11px; }

/* search-ad city chips (#76 A1): removable active-city tags + a re-add bar of "+ City"
   buttons. Chip styling picks up the neutral card palette rather than the amber .badge, so
   an active city reads as a selected token, not a status badge. */
.chip { display:inline-flex; align-items:center; gap:6px; background:#1e2228; color:#e6e8eb; border:1px solid #2a2f37; border-radius:16px; padding:4px 6px 4px 12px; font-size:12.5px; }
.chip .chip-note { color:#8a919c; font-size:11px; }
.chip-remove { background:none; border:none; color:#8a919c; font-size:16px; line-height:1; cursor:pointer; padding:0 4px; border-radius:50%; }
.chip-remove:hover { color:#f87171; }
.chip-add { background:#12151a; color:#7dd3fc; border:1px dashed #2a4a75; border-radius:16px; padding:4px 12px; font-size:12.5px; cursor:pointer; }
.chip-add:hover { background:#182430; }

/* .js-only visibility (#76): flipped by the js-ready class search-ad-cities.js sets on
   <html>, so the JS-only re-add bar stays hidden until the chip script wires it up. */
html:not(.js-ready) .search-ad-js-only { display:none; }

/* feedback banners (#76 PR-A): upgraded from a bare border-color tint to a full dezenter
   Farbhintergrund + left accent bar + Unicode icon, so operator feedback is unmissable.
   .banner-success (grün), .banner-warn (amber), .banner-error (rot). Each banner carries a
   ✕ .banner-dismiss button (search-ad-cities.js removes the banner, no state/endpoint). */
.banner { display:flex; align-items:flex-start; gap:10px; margin-bottom:16px; padding:12px 16px; border-radius:10px; border:1px solid transparent; border-left-width:4px; }
.banner-text { flex:1; }
.banner-icon { font-size:15px; line-height:1.4; flex:none; }
.banner-dismiss { background:none; border:none; color:inherit; opacity:.7; font-size:14px; line-height:1; cursor:pointer; padding:2px 4px; margin:-2px -4px 0 0; flex:none; }
.banner-dismiss:hover { opacity:1; }
.banner-success { background:#0f2a1a; border-color:#166534; color:#bbf7d0; }
.banner-warn { background:#2a2109; border-color:#854d0e; color:#fde68a; }
.banner-error { background:#2a1010; border-color:#7f1d1d; color:#fca5a5; }

/* wide-table wrapper (#76 PR-A): a 7-column table scrolls horizontally within its own box
   at narrow viewports instead of clipping its last column / overflowing the page body. */
.table-scroll { overflow-x:auto; }

/* recurring-overlay: hidden by default via the native `hidden` attribute
   (recurring-overlay.js toggles it), centered scrollable panel over a dimmed backdrop.
   body.overlay-open just locks background scroll while the overlay is showing. */
#recurring-overlay { position:fixed; inset:0; z-index:1000; }
#recurring-overlay[hidden] { display:none; }
body.overlay-open { overflow:hidden; }
.overlay-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.6); }
.overlay-panel { position:relative; margin:10vh auto; max-width:480px; max-height:calc(100vh - 20vh); overflow:auto; background:#12151a; border:1px solid #1e2228; border-radius:10px; padding:20px; }
.overlay-panel form { margin:14px 0; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
#recurring-overlay-close { position:sticky; top:0; float:right; background:none; border:none; color:inherit; font-size:22px; line-height:1; cursor:pointer; padding:4px 8px; margin:-4px -8px 0 0; }
