*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow-x:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;background:#fff;color:#202124}
body.dark{background:linear-gradient(135deg,#050510,#0e0e20) fixed;color:#d8d8ee}

/* ── STAGGERED FADE-IN ── */
@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-item {
  animation: fadeSlideUp 0.35s ease-out both;
}

/* ── MAIN WRAPPER ── */
#main{min-height:100vh;display:flex;flex-direction:column;max-width:100%}
body.home #main{justify-content:center;align-items:center}

/* ── HOME HERO ── */
#hero{text-align:center;padding:40px 20px;position:relative}
body.home #hero{padding:0 20px;width:100%;display:flex;flex-direction:column;align-items:center}
body:not(.home) #hero{display:none}
#hero .logo{font-size:48px;font-weight:700;margin-bottom:28px;display:inline-flex;align-items:center;justify-content:center;gap:12px;cursor:pointer}
#hero .logo-img{height:44px;width:auto;display:block}
#hero .logo .n{color:#fff;-webkit-text-stroke:2px #6c5ce7;paint-order:stroke fill}
body.light #hero .logo .n{color:#fff;-webkit-text-stroke:2px #6c5ce7}
#hero .logo .s{color:#6c5ce7}
body.dark #hero .logo .s{color:#a29bfe}
#hero .tagline{font-size:13px;color:#6c5ce7;margin-top:-22px;margin-bottom:26px;letter-spacing:1.5px;text-shadow:0 0 8px rgba(108,92,231,.35);font-weight:400}
body.dark #hero .tagline{color:#a29bfe;text-shadow:0 0 12px rgba(162,155,254,.35)}
#home-actions{position:fixed;top:16px;right:20px;z-index:100;display:none}
body.home #home-actions{display:flex;gap:8px;align-items:center}
.hero-btn{background:none;border:none;cursor:pointer;font-size:20px;padding:4px;color:#5f6368;line-height:1}
body.dark .hero-btn{color:#8888a0}
.hero-btn:hover{color:#6c5ce7}

/* ── SEARCH HOME ── */
.hero-sb{display:flex;align-items:center;gap:8px;width:100%;max-width:700px;margin:0 auto}
.hero-sb input{flex:1;height:46px;border:2px solid #dadce0;border-radius:24px;padding:0 22px;font-size:16px;outline:none;background:#f8f9fa;color:inherit}
body.dark .hero-sb input{background:#12121a;border-color:#2a2a3a}
.hero-sb input:focus{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.3)}
.hero-sb button{width:46px;height:46px;border-radius:50%;border:none;background:#6c5ce7;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hero-sb button:hover{background:#5a4bd1}
.ac-drop{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #dadce0;border-radius:0 0 16px 16px;box-shadow:0 4px 16px rgba(0,0,0,.08);z-index:200;max-height:320px;overflow-y:auto}
body.dark .ac-drop{background:#12121a;border-color:#2a2a3a;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.ac-drop.open{display:block}
.ac-item{padding:10px 22px;cursor:pointer;font-size:14px;color:#202124;text-align:left}
body.dark .ac-item{color:#e0e0ee}
.ac-item:hover{background:#f4f2ff}
body.dark .ac-item:hover{background:#1c1c32}
.ac-item:first-child{padding-top:12px}
.ac-item:last-child{padding-bottom:12px}
.ac-item .ac-hl{font-weight:600;color:#6c5ce7}
body.dark .ac-item .ac-hl{color:#a29bfe}
.hero-sb,.rbar{position:relative}

/* ── RESULT HEADER ── */
#rhdr{display:none;align-items:center;gap:24px;padding:12px 24px;border-bottom:1px solid #dadce0;position:sticky;top:0;background:#fff;z-index:100}
body.dark #rhdr{background:#0e0e20;border-color:#2a2a3a}
#rhdr .logo{font-size:22px;font-weight:700;cursor:pointer;flex-shrink:0;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
#rhdr .logo .n{color:#fff;-webkit-text-stroke:2px #6c5ce7;paint-order:stroke fill}
body.light #rhdr .logo .n{color:#fff;-webkit-text-stroke:2px #6c5ce7}
#rhdr .logo .s{color:#6c5ce7}
body.dark #rhdr .logo .n{color:#fff;-webkit-text-stroke:1px #6c5ce7}
body.dark #rhdr .logo .s{color:#a29bfe}
.rbar{display:flex;align-items:center;gap:8px;flex:1;max-width:860px;margin:0 auto}
.rbar input{flex:1;height:44px;border:2px solid #dadce0;border-radius:24px;padding:0 20px;font-size:15px;outline:none;background:#f8f9fa;color:inherit}
body.dark .rbar input{background:#12121a;border-color:#2a2a3a}
.rbar input:focus{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.3)}
.rbar button{width:44px;height:44px;border-radius:50%;border:none;background:#6c5ce7;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rbar button:hover{background:#5a4bd1}
.rhdr-btn{background:none;border:none;cursor:pointer;font-size:20px;padding:4px;color:#5f6368}
body.dark .rhdr-btn{color:#8888a0}

/* ── RESULT CATEGORIES ── */
#rcats{display:none;gap:6px;padding:10px 0;justify-content:center;max-width:720px;margin:0 auto}
.rcb{padding:7px 20px;border-radius:20px;border:1.5px solid #d0d0d8;background:transparent;color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s;display:inline-flex;align-items:center;gap:6px}
body.dark .rcb{border-color:#333348;color:#fff}
.rcb:hover{border-color:#6c5ce7;color:#6c5ce7;background:#f4f2ff;box-shadow:0 0 0 2px rgba(108,92,231,.12)}
body.dark .rcb:hover{background:#1c1c32;box-shadow:0 0 0 2px rgba(162,155,254,.15)}
.rcb .cc{font-size:10px;opacity:.7;margin-left:2px}
.rcb.active{background:linear-gradient(135deg,#6c5ce7,#5a4bd1);color:#fff;border-color:#6c5ce7;font-weight:600;box-shadow:0 2px 8px rgba(108,92,231,.3)}
body.dark .rcb.active{background:linear-gradient(135deg,#7c6cf7,#6c5ce7);box-shadow:0 2px 10px rgba(162,155,254,.25)}

/* ── SPELLCHECK BANNER ── */
#sc-banner{display:none;max-width:680px;margin:8px auto 0;padding:10px 18px;background:#fef7e0;border:1px solid #fde293;border-radius:10px;font-size:14px;color:#5f4b00;align-items:center;gap:6px}
body.dark #sc-banner{background:#2a2500;border-color:#5a4f00;color:#e8d88e}
#sc-banner.open{display:flex}
#sc-link{color:#6c5ce7;cursor:pointer;font-weight:600;text-decoration:underline}
#sc-link:hover{color:#5a4bd1}
body.dark #sc-link{color:#a29bfe}
body.dark #sc-link:hover{color:#b8b0ff}
@media(max-width:767px){#sc-banner{max-width:100%;margin:8px 12px 0}}

/* ── RESULTS CONTAINER ── */
#results-wrap{display:flex;gap:0;max-width:1060px;margin:0 auto;width:100%;padding:0 24px;position:relative;justify-content:center}
#results{flex:1;max-width:680px;padding:20px 0 60px;min-width:0;overflow:hidden}
body:not(.home) #results-wrap{padding-top:20px}
/* ── SETTINGS PANEL ── */
#settings{display:none}
#settings.open{display:block;margin-bottom:16px}
@media(min-width:769px){
  #settings.open{position:absolute;top:20px;right:0;width:300px;z-index:50;background:#fff;border-radius:12px;padding:16px;border:1px solid #dadce0;box-shadow:0 4px 16px rgba(0,0,0,.1);margin-bottom:0}
  body.dark #settings.open{background:#12121a;border-color:#2a2a3a;box-shadow:0 4px 16px rgba(0,0,0,.4)}
}
#settings h3{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#70757a;margin-bottom:14px}
body.dark #settings h3{color:#9aa0a6}
.st-section{margin-bottom:16px}
.st-section label{display:block;font-size:13px;font-weight:500;margin-bottom:4px;color:#5f6368}
body.dark .st-section label{color:#8888a0}
.st-section select,.st-section input[type=number]{width:100%;padding:8px 10px;border:1px solid #dadce0;border-radius:8px;font-size:13px;font-family:inherit;background:#fff;color:#202124;outline:none}
body.dark .st-section select,body.dark .st-section input[type=number]{background:#12121a;border-color:#2a2a3a;color:#e8e8f0}
.st-section select:focus{border-color:#6c5ce7}
.st-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:#5f6368;user-select:none}
body.dark .st-toggle{color:#8888a0}
.st-toggle input[type=checkbox]{width:18px;height:18px;accent-color:#6c5ce7;cursor:pointer}
.st-btn{width:100%;padding:8px;border:none;border-radius:8px;background:#6c5ce7;color:#fff;font-size:13px;cursor:pointer;font-family:inherit}
.st-btn:hover{background:#5a4bd1}
#st-toggle-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:4px;color:#5f6368;line-height:1}
body.dark #st-toggle-btn{color:#8888a0}

/* ── INFOBOX ── */
#sidebar{width:300px;flex-shrink:0;padding:20px 0 0 24px;display:none}
#sidebar.open{display:block}
.ibox{background:#f8f9fa;border-radius:12px;padding:16px;border:1px solid #dadce0;overflow-x:hidden;max-width:100%}
body.dark .ibox{background:#12121a;border-color:#2a2a3a}
.ibox img{width:100%;max-height:180px;object-fit:cover;border-radius:8px;margin-bottom:12px;display:block;background:#e8eaed}
body.dark .ibox img{background:#1e1e30}
.ibox h2{font-size:18px;font-weight:600;margin-bottom:6px;color:#202124;word-break:break-word}
body.dark .ibox h2{color:#e8e8f0}
.ibox .id{font-size:14px;line-height:1.5;color:#545454;margin-bottom:12px;word-break:break-word;overflow-wrap:break-word;max-width:100%}
body.dark .ibox .id{color:#bdc1c6}
.ibox table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.ibox td{padding:10px 0;border-bottom:1px solid #dadce0;vertical-align:top;word-break:break-word;overflow-wrap:break-word}
.ibox td:first-child{font-weight:500;color:#5f6368;padding-right:14px;min-width:90px;width:30%;border-right:1px solid #dadce0;word-break:break-word}
.ibox td:last-child{color:#202124;padding-left:14px;word-break:break-word;overflow-wrap:break-word}
body.dark .ibox td{border-color:#2a2a3a}
body.dark .ibox td:first-child{color:#8888a0;border-right:1px solid #2a2a3a}
body.dark .ibox td:last-child{color:#e8e8f0}

/* ── SUGGESTIONS CHIPS (below infobox) ── */
.suggestions-box{margin-top:16px;padding-top:12px;border-top:1px solid #dadce0}
body.dark .suggestions-box{border-color:#2a2a3a}
.suggestions-box h4{font-size:13px;font-weight:600;color:#5f6368;margin-bottom:8px}
body.dark .suggestions-box h4{color:#8888a0}
.sg-chips{display:flex;flex-wrap:wrap;gap:6px}
.sg-chip{display:inline-block;padding:5px 14px;background:#6c5ce7;color:#fff;border-radius:16px;font-size:12px;text-decoration:none;cursor:pointer;transition:opacity .15s;white-space:nowrap}
.sg-chip:hover{opacity:.85}
body.dark .sg-chip{background:#7c6cf7}
.ibox .il{list-style:none;padding:0;word-break:break-word;overflow-wrap:break-word}
.ibox .il li{margin-bottom:4px;word-break:break-word;overflow-wrap:break-word}
.ibox .il a{color:#1a0dab;text-decoration:none;font-size:13px;word-break:break-word;overflow-wrap:break-word}
body.dark .ibox .il a{color:#8ab4f8}
.ibox .il a:hover{text-decoration:underline}
.ibox .is{font-size:13px;color:#5f6368;margin-top:10px;word-break:break-word}
body.dark .ibox .is{color:#8888a0}
.ibox .is a{color:#1a0dab;text-decoration:none;font-weight:500;word-break:break-word}
body.dark .ibox .is a{color:#8ab4f8}
.ibox .is a:hover{text-decoration:underline}
/* Suggestions chips */
.suggestions-box{margin-top:16px;padding-top:14px;border-top:1px solid #dadce0}
body.dark .suggestions-box{border-color:#2a2a3a}
.suggestions-box h4{font-size:13px;font-weight:600;color:#5f6368;margin-bottom:10px}
body.dark .suggestions-box h4{color:#8888a0}
.sg-chips{display:flex;flex-wrap:wrap;gap:6px}
.sg-chip{display:inline-block;padding:5px 12px;border-radius:16px;background:#6c5ce7;color:#fff;font-size:12px;text-decoration:none;cursor:pointer;transition:opacity .2s,transform .15s;border:0;font-family:inherit}
.sg-chip:hover{opacity:.85;transform:translateY(-1px);color:#fff}
body.dark .sg-chip{background:#7c6cf7}
/* OSM button in infobox */
.osm-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px 16px;margin-top:12px;border-radius:8px;font-size:13px;font-weight:500;color:#6c5ce7;background:rgba(108,92,231,0.08);border:1.5px solid rgba(108,92,231,0.3);text-decoration:none;transition:background .2s,border-color .2s;cursor:pointer}
.osm-btn:hover{background:rgba(108,92,231,0.15);border-color:rgba(108,92,231,0.5)}
body.dark .osm-btn{color:#a78bfa;background:rgba(167,139,250,0.08);border-color:rgba(167,139,250,0.25)}
body.dark .osm-btn:hover{background:rgba(167,139,250,0.15);border-color:rgba(167,139,250,0.45)}
.wd-desc{color:#5f6368;font-size:13px;line-height:1.5;margin:4px 0 8px}
body.dark .wd-desc{color:#9ca3af}
.wd-desc:empty{display:none}
.wd-links{margin-top:8px}
.wd-links:empty{display:none}
.spin{text-align:center;padding:60px 0}
.spin::after{content:'';display:block;width:36px;height:36px;margin:0 auto;border-radius:50%;border:3px solid #dadce0;border-top-color:#6c5ce7;animation:s .8s linear infinite}
@keyframes s{to{transform:rotate(360deg)}}

/* ── WEB CARDS ── */
.card{border-radius:12px;padding:16px;margin-bottom:6px}
.card:hover{background:#f8f9fa}
body.dark .card:hover{background:#12121a}
.card .t{font-size:16px;margin:0 0 2px}
.card .t a{color:#1a0dab;text-decoration:none}
body.dark .card .t a{color:#8ab4f8}

.card .t a:hover{text-decoration:underline}
.card .u{font-size:12px;color:#006621;margin:0 0 4px;word-break:break-all}
body.dark .card .u{color:#81c995}
.card .c{font-size:14px;color:#545454;line-height:1.58}
body.dark .card .c{color:#bdc1c6}
.card .s{font-size:11px;color:#70757a;margin-top:6px}

/* ── CAROUSEL (images, videos, news en mode "Tous") ── */
.carousel-wrap{margin-bottom:8px}
.carousel-label{font-size:16px;font-weight:600;margin-bottom:10px;color:#202124;display:flex;align-items:center;gap:6px}
body.dark .carousel-label{color:#e8e8f0}
.sec-count{font-weight:400;font-size:13px;color:#70757a}
body.dark .sec-count{color:#9aa0a6}
.carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px;scrollbar-width:thin}
.carousel::-webkit-scrollbar{height:6px}
.carousel::-webkit-scrollbar-thumb{background:rgba(108,92,231,.3);border-radius:3px}
.carousel::-webkit-scrollbar-track{background:transparent}
.carousel-item{scroll-snap-align:start;flex-shrink:0;border-radius:12px;overflow:hidden;cursor:pointer;position:relative;background:#f1f3f4}
body.dark .carousel-item{background:#12121a}
.carousel-item:hover{transform:scale(1.02);transition:transform .15s}

/* image carousel items */
.carousel-img{width:160px;height:160px}
.carousel-img img{width:100%;height:100%;object-fit:cover;display:block}
.carousel-img .l{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));padding:8px;font-size:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* video carousel items */
.carousel-vid{width:240px}
.carousel-vid img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:12px 12px 0 0;background:#f1f3f4}
.carousel-vid .vi{padding:8px 10px}
.carousel-vid .vt{font-size:13px;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#202124}
body.dark .carousel-vid .vt{color:#e8e8f0}
.carousel-vid .vt a{color:inherit;text-decoration:none}

/* news carousel items — overlay style */
.carousel-news{width:240px;height:186px;background:#1a1a2e;border-radius:12px;overflow:hidden;position:relative}
body.dark .carousel-news{background:#0a0a18}
.carousel-news img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.carousel-news .no{position:absolute;bottom:0;left:0;right:0;padding:12px 12px 14px;background:linear-gradient(rgba(0,0,0,0) 25%,rgba(0,0,0,.9) 60%);color:#fff;pointer-events:none}
.carousel-news .no .nt{font-size:14px;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:3px;line-height:1.35;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.carousel-news .no .nm{font-size:11px;opacity:.8;margin-bottom:2px}
.carousel-news .no .ns{font-size:12px;opacity:.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ── IMAGES GRID (mode Images seule) ── */
.ig{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;justify-content:center;margin:0 auto}
.ig>div{border-radius:10px;overflow:hidden;cursor:pointer;aspect-ratio:1/1;background:#f1f3f4;position:relative;transition:transform .15s}
.ig>div:hover{transform:scale(1.02)}
.ig img{width:100%;height:100%;object-fit:cover;display:block}
.ig .l{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));padding:8px;font-size:11px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── VIDEOS GRID (mode Vidéos seule) ── */
.vg{display:grid;gap:8px;margin-bottom:20px}
.vg{grid-template-columns:repeat(3,1fr);gap:12px;justify-content:center;margin:0 auto}
.vg>div{border-radius:12px;overflow:hidden;background:#fff;border:1px solid #dadce0}
body.dark .vg>div{background:#1a1a2e;border-color:#2a2a3a}
.vg>div:hover,.vg-card:hover{border-color:#6c5ce7}
.vg img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#f1f3f4}
.vg .vi{padding:10px 12px}
.vg .vt{font-size:14px;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vg .vt a{color:inherit;text-decoration:none}
/* Video card (anchor wrapper — same visual as .vg>div) */
.vg-card{display:block;border-radius:12px;overflow:hidden;background:#fff;border:1px solid #dadce0;text-decoration:none;color:inherit;transition:border-color .2s}
body.dark .vg-card{background:#1a1a2e;border-color:#2a2a3a}
body.dark .vg-card:hover{border-color:#a29bfe}

/* ── NEWS LIST (mode News seule) — style Google News ── */
.nw{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid #dadce0}
body.dark .nw{border-color:#2a2a3a}
.nw:last-child{border-bottom:none}
.nw img{width:120px;height:80px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#f1f3f4}
.nw .nv{flex:1;min-width:0}
.nw .nt{font-size:16px;font-weight:500;margin:0 0 4px;line-height:1.45}
.nw .nt a{color:inherit;text-decoration:none}
.nw .nt a:hover{text-decoration:underline}
.nw .nm{font-size:12px;color:#70757a;margin:2px 0 6px}
body.dark .nw .nm{color:#9aa0a6}
.nw .ns{font-size:14px;color:#4d5156;line-height:1.55}
body.dark .nw .ns{color:#b0b0c8}
.nw-img-placeholder{width:120px;height:80px;border-radius:8px;flex-shrink:0;background:#f1f3f4}
body.dark .nw-img-placeholder{background:#1a1a2e}
.nw a{color:inherit;text-decoration:none}
.nw-img-link{display:block;flex-shrink:0;line-height:0}

/* ── LIGHTBOX ── */
#lb{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.92);z-index:9999;align-items:center;justify-content:center}
#lb.open{display:flex}
#lb .c{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:32px;cursor:pointer;z-index:10}
#lb img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px}

/* Lightbox nav buttons — positioned left/right of image */
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:0;color:#fff;font-size:44px;width:56px;height:80px;cursor:pointer;z-index:12;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s;line-height:1}
.lb-nav:hover{background:rgba(255,255,255,.25)}
body.dark .lb-nav{background:rgba(255,255,255,.08)}
body.dark .lb-nav:hover{background:rgba(255,255,255,.18)}
.lb-prev{left:16px}
.lb-next{right:16px}
/* Lightbox source link — hidden by default, shown inline when URL exists */
#lb-link{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:none;align-items:center;gap:6px;padding:8px 20px;border-radius:8px;background:rgba(108,92,231,.9);color:#fff;font-size:14px;font-weight:500;text-decoration:none;transition:background .2s;z-index:11;white-space:nowrap;max-width:80%;overflow:hidden;text-overflow:ellipsis}
#lb-link:hover{background:#6c5ce7}
body.dark #lb-link{background:rgba(162,155,254,.85)}
body.dark #lb-link:hover{background:#a29bfe}

/* ── TOAST ── */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:#323232;color:#fff;border-radius:8px;padding:10px 20px;font-size:14px;z-index:999999;opacity:0;transition:all .3s;pointer-events:none}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── MOBILE INFOBOX (collapsible, <768px) ── */
@media(max-width:768px){
  .mibox{background:#f8f9fa;border-radius:12px;border:1px solid #dadce0;padding:14px;margin-bottom:12px;position:relative;overflow:hidden;transition:max-height .3s ease}
  body.dark .mibox{background:#12121a;border-color:#2a2a3a}
  .mibox.collapsed{max-height:170px;cursor:pointer}
  .mibox:not(.collapsed){max-height:2000px}
  .mibox img{width:100%;max-height:120px;object-fit:cover;border-radius:8px;margin-bottom:10px;display:block;background:#e8eaed}
  .mibox h2{font-size:16px;font-weight:600;margin-bottom:4px}
  .mibox .id{font-size:13px;line-height:1.4;color:#545454;margin-bottom:8px;word-break:break-word;overflow-wrap:break-word}
  body.dark .mibox .id{color:#bdc1c6}
  .mibox table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:8px}
  .mibox td{padding:4px 0;border-bottom:1px solid #dadce0;vertical-align:top}
  body.dark .mibox td{border-color:#2a2a3a}
  .mibox td:first-child{font-weight:500;color:#5f6368;padding-right:8px;white-space:nowrap}
  body.dark .mibox td:first-child{color:#8888a0}
  .mibox td:last-child{color:#202124;word-break:break-word;overflow-wrap:break-word}
  body.dark .mibox td:last-child{color:#e8e8f0}
  .mibox .il{list-style:none;padding:0;margin-bottom:8px}
  .mibox .il li{margin-bottom:3px}
  .mibox .il a{color:#1a0dab;text-decoration:none;font-size:12px}
  body.dark .mibox .il a{color:#8ab4f8}
  .mibox .is{font-size:12px;color:#5f6368;margin-top:6px}
  body.dark .mibox .is{color:#8888a0}
  .mibox-toggle{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:6px 0;background:linear-gradient(transparent,#f8f9fa);cursor:pointer;font-size:13px;color:#6c5ce7;font-weight:500;border:none;width:100%;font-family:inherit}
  body.dark .mibox-toggle{background:linear-gradient(transparent,#12121a);color:#a29bfe}
  .mibox.collapsed .mibox-toggle{bottom:0}
  .mibox:not(.collapsed) .mibox-toggle{position:relative;background:none;padding-top:8px}
  .mibox-toggle:hover{color:#5a4bd1}

  /* Mobile settings: fixed overlay modal */
  #settings.open{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:92%;max-width:340px;z-index:300;background:#fff;border-radius:16px;padding:20px;box-shadow:0 8px 40px rgba(0,0,0,.25);margin-bottom:0;max-height:90vh;overflow-y:auto}
  body.dark #settings.open{background:#13131e;border:1px solid #2a2a3a;box-shadow:0 8px 40px rgba(0,0,0,.5)}
  .st-close{float:right;cursor:pointer;font-size:16px;color:#5f6368;line-height:1}
  body.dark .st-close{color:#8888a0}
  .st-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:299}
  .st-backdrop.open{display:block}
}

/* ── MAPS ── */
#map{width:100%;height:400px;border-radius:12px;margin-bottom:16px;z-index:1}
body.dark #map{filter:invert(90%) hue-rotate(180deg)}
.mcard{display:flex;gap:14px;padding:12px 14px;border-radius:10px;cursor:pointer;margin-bottom:4px;align-items:flex-start;transition:all .15s}
.mcard:hover{background:#f8f9fa}
body.dark .mcard:hover{background:#12121a}
.mcard.active{background:#f4f2ff;border:1px solid #6c5ce7}
body.dark .mcard.active{background:#1c1c32;border-color:#a29bfe}
.mcard .mi{padding:3px 12px;min-width:36px;height:24px;border-radius:8px;background:#6c5ce7;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;margin-top:2px;white-space:nowrap}
body.dark .mcard .mi{background:#7c6cf7}
.mcard .md{flex:1;min-width:0}
.mcard .mt{font-size:14px;font-weight:600;color:#202124;margin-bottom:2px}
body.dark .mcard .mt{color:#e8e8f0}
.mcard .ma{font-size:12px;color:#545454;line-height:1.4}
body.dark .mcard .ma{color:#bdc1c6}
.mcard .mco{font-size:11px;color:#70757a;margin-top:4px}
body.dark .mcard .mco{color:#9aa0a6}
.mcard .obadge-sm{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;margin-top:4px}
.mcard .obadge-sm.open{background:#e6f4ea;color:#137333}
body.dark .mcard .obadge-sm.open{background:#1e3a2a;color:#81c995}
.mcard .obadge-sm.closed{background:#fce8e6;color:#c5221f}
body.dark .mcard .obadge-sm.closed{background:#3a1a1e;color:#f28b82}
.mcard .obadge-sm .dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.mcard .obadge-sm.open .dot{background:#137333}
body.dark .mcard .obadge-sm.open .dot{background:#81c995}
.mcard .obadge-sm.closed .dot{background:#c5221f}
body.dark .mcard .obadge-sm.closed .dot{background:#f28b82}
.mcard .os-spin{display:inline-block;width:12px;height:12px;border:2px solid #dadce0;border-top-color:#6c5ce7;border-radius:50%;animation:s .8s linear infinite;margin-top:4px}

/* ── MAPS INFOBOX EXTRA ── */
.ibox .mg{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ibox .mgi{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#545454;word-break:break-word;overflow-wrap:break-word}
body.dark .ibox .mgi{color:#bdc1c6}
.ibox .mgi a{color:#1a0dab;text-decoration:none}
body.dark .ibox .mgi a{color:#8ab4f8}
.ibox .mgi a:hover{text-decoration:underline}
.ibox .mgi .icon{flex-shrink:0;font-size:15px;margin-top:1px}
.ibox .mtags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.ibox .mtag{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:500;background:#e8eaed;color:#3c4043}
body.dark .ibox .mtag{background:#2a2a3a;color:#e8e8f0}
.ibox .mtag.wheelchair-yes{background:#e6f4ea;color:#137333}
body.dark .ibox .mtag.wheelchair-yes{background:#1e3a2a;color:#81c995}
.ibox .mtag.wheelchair-limited{background:#fef7e0;color:#b06000}
body.dark .ibox .mtag.wheelchair-limited{background:#3a3010;color:#fdd663}
.ibox .mtag.wheelchair-no{background:#fce8e6;color:#c5221f}
body.dark .ibox .mtag.wheelchair-no{background:#3a1a1e;color:#f28b82}

/* ── OPEN / CLOSED BADGE ── */
.obadge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;margin-bottom:12px}
.obadge.open{background:#e6f4ea;color:#137333}
body.dark .obadge.open{background:#1e3a2a;color:#81c995}
.obadge.closed{background:#fce8e6;color:#c5221f}
body.dark .obadge.closed{background:#3a1a1e;color:#f28b82}
.obadge .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.obadge.open .dot{background:#137333}
body.dark .obadge.open .dot{background:#81c995}
.obadge.closed .dot{background:#c5221f}
body.dark .obadge.closed .dot{background:#f28b82}

/* ── OPENING HOURS TABLE ── */
.ibox .oh{margin-bottom:12px}
.ibox .oh h4{font-size:13px;font-weight:600;color:#5f6368;margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}
body.dark .ibox .oh h4{color:#8888a0}
.ibox .oh-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;border-bottom:1px solid #eee;color:#545454}
body.dark .ibox .oh-row{border-color:#2a2a3a;color:#bdc1c6}
.ibox .oh-row .day{font-weight:500;color:#5f6368;min-width:80px}
body.dark .ibox .oh-row .day{color:#8888a0}
.ibox .oh-row .hours{text-align:right}
.ibox .oh-row.today{background:#f4f2ff;border-radius:4px;margin:0 -4px;padding:4px 4px;font-weight:600}
body.dark .ibox .oh-row.today{background:#1c1c32}
.ibox .oh-row.today .day{color:#6c5ce7}
body.dark .ibox .oh-row.today .day{color:#a29bfe}
.ibox .oh-row .hours.closed-row{color:#c5221f;font-style:italic}
body.dark .ibox .oh-row .hours.closed-row{color:#f28b82}

/* ── PAGINATION ── */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 30px 0 20px;
  flex-wrap: wrap;
}
.pagination a,
.pagination .pg-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all .15s;
}
.pagination a {
  color: #6c5ce7;
  background: transparent;
  border: 1px solid #dadce0;
}
body.dark .pagination a {
  color: #a29bfe;
  border-color: #2a2a3a;
}
.pagination a:hover {
  background: #f4f2ff;
  border-color: #6c5ce7;
}
body.dark .pagination a:hover {
  background: #1c1c32;
  border-color: #a29bfe;
}
.pagination .pg-current {
  color: #fff;
  background: linear-gradient(135deg, #6c5ce7, #5a4bd1);
  border: none;
  font-weight: 600;
  cursor: default;
}
body.dark .pagination .pg-current {
  background: linear-gradient(135deg, #7c6cf7, #6c5ce7);
}
.pagination .pg-next,
.pagination .pg-prev {
  padding: 0 14px;
  font-weight: 500;
}
.pagination .pg-disabled {
  opacity: .35;
  cursor: default;
  pointer-events: none;
}

/* ── CUSTOM SCROLLBAR ── */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:#f0f0f5}
::-webkit-scrollbar-thumb{background:rgba(108,92,231,.3);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(108,92,231,.5)}
html.dark::-webkit-scrollbar-track,body.dark::-webkit-scrollbar-track{background:#0a0a18}
html.dark::-webkit-scrollbar-thumb,body.dark::-webkit-scrollbar-thumb{background:rgba(162,155,254,.3)}
html.dark::-webkit-scrollbar-thumb:hover,body.dark::-webkit-scrollbar-thumb:hover{background:rgba(162,155,254,.5)}
html{scrollbar-width:thin;scrollbar-color:rgba(108,92,231,.3) #f0f0f5}
html.dark{scrollbar-color:rgba(162,155,254,.3) #0a0a18}

@media(hover:hover){
  .ig>div:hover{transform:scale(1.02);outline:1.5px solid #6c5ce7;outline-offset:-1.5px}
  body.dark .ig>div:hover{outline-color:#a29bfe}
  .carousel-item:hover{transform:scale(1.02)}
  .card:hover{background:#f8f9fa}
  body.dark .card:hover{background:#12121a}
  .vg>div:hover,.vg-card:hover{border-color:#6c5ce7}
  body.dark .vg-card:hover{border-color:#a29bfe}
  .mcard:hover{background:#f8f9fa}
  body.dark .mcard:hover{background:#12121a}
}

@media(max-width:768px){
  #rhdr{padding:10px 12px;gap:12px;flex-wrap:wrap}
  #rhdr .logo{font-size:18px}
  #rhdr .logo img{height:22px!important}
  #rcats{padding:8px 12px;max-width:100%;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  #rcats::-webkit-scrollbar{display:none}
  .rcb{font-size:0;padding:6px 10px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}
  .rcb .rcb-icon{font-size:18px;line-height:1}
  .rcb .rcb-label{display:none}
  .rcb.active .rcb-label{display:inline;font-size:13px}
  #results-wrap{flex-direction:column;padding:0 12px}
  #results{padding:12px 0}
  #sidebar{width:100%;padding:16px 0 0 0}
  .hero-sb{max-width:100%}
  #hero .logo{font-size:28px;gap:8px;max-width:90vw}
  #hero .logo-img{height:24px!important;max-width:50vw}
  #hero .tagline{font-size:11px;margin-top:-16px;margin-bottom:20px;letter-spacing:1px}
  .ig{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
  .vg{grid-template-columns:1fr}
  .nw{flex-direction:column}
  .nw img{width:100%;height:140px}
}
