/* Suppress all transitions during initial theme load to prevent flash */
html:not(.theme-ready) *,
html:not(.theme-ready) *::before,
html:not(.theme-ready) *::after {
    transition: none !important;
    animation-duration: 0.001s !important;
}

body {
    margin: 0;

    background: linear-gradient(
        to top,
        #89F19E 0%,
        #8AC4C6  50%,
        #8AACDB 100%
    );

    background-attachment: fixed;
}
h1 {
    /* Цвета слева направо */
    background-image: linear-gradient(
        to right,
        #89F19E 0%,
        #1C9073 20%, 
        #154A73 30%, 
        #0E0973 50%, 
        #154A73 60%, 
        #1C9073 70%, 
        #154A73 80%, 
        #24E474 90%,
        #89F19E 100%
         );
   
    -webkit-background-clip: text;
    color: transparent;
    font-size: 80px;
    margin: 0;
    text-align: center;
    font-family: "Gasoek one",sans-serif;
    font-weight: 400;
    font-style: normal;
}
h2{
    font-family: "Jomhuria", sans-serif;
    font-weight: 400;
    font-size: 60px;
    color: #384C3F;

    position: fixed;
    bottom: 0;              /* прям у самого низа */
    left: 50%;
    transform: translateX(-50%);

    margin: 0;              /* убираем стандартный margin */
    text-align: center;     /* центр текста */

    white-space: nowrap;    /* запрещает перенос строки */
    z-index: -1;
    
}
h3{
    font-family: "Jomhuria", sans-serif;
    font-weight: 400;
    font-size: 60px;
    color: #0C365F;
    
    
}
h4 { 
    background-image: linear-gradient(90deg, #89F19E, #0E0973);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 20px;
    margin: 0;
    text-align: center;
    font-family: "Gasoek One", sans-serif;
    font-weight: 200;
    font-style: normal;
    margin-top: 3px;
}

h6{
   font-family: "Jomhuria", sans-serif;
    font-weight: 400;
    font-size: 40px;
    color: #384C3F;
    line-height: 0.0002;
     
}
h7{
  font-family: "Inter", sans-serif;
    font-weight: bold;
    font-size: 18px;
    color: #0C365F; 
    line-height: 0.0002;
}

/* 1. Полоса навигации: сверху и слева */
nav {
    display: flex;
    justify-content: flex-start; /* Прижимает кнопки к левому краю */
    align-items: center;
    gap: 37px;         /* Расстояние между светящимися зонами */
    padding: 25px 45px; /* Отступы от краев полосы */
    margin: 0;
    /* Твой градиент фона всей полосы: сверху вниз */
    background: linear-gradient(to bottom, #503ACB, transparent);
    width: 100%;
    height: 110px;
    
    box-sizing: border-box;
}

/* 2. Сами окошки-кнопки */
.nav-link {
    text-decoration: none;
    color: #333;
    font-family: "Inter", sans-serif;
    font-style: normal;
    font-weight: bold;
    font-size: 21px;
    
    /* ФИКСИРОВАННЫЙ РАЗМЕР */
    width: 135px;
    height: 48px;
    background-color: #D9D9D9;
    border-radius: 50px;
    
    /* ЦЕНТРИРОВАНИЕ ТЕКСТА (и по горизонтали, и по вертикали) */
    display: flex;
    justify-content: center; /* Центр по ширине */
    align-items: center;     /* Центр по высоте */
    text-align: center;

    /* ЖИРНАЯ И ШИРОКАЯ ТЕНЬ */
    /* 45px — размытие (blur), 12px — растяжение (spread) */
    box-shadow: 0 0 55px 12px #00FF6A; 
    
    transition: all 0.3s ease;
}

/* Эффект при наведении — еще больше объема */
.nav-link:hover {
    /* Еще более широкое свечение при наведении */
    box-shadow: 0 0 60px 18px #00FF6A;
    transform: translateY(-2px);
}

/* Главный контейнер для всех блоков (выстраивает их в ряд) */
.main-container {
    display: flex;
    justify-content: center;
    gap: 120px; /* Расстояние между блоками */
    margin-top: 100px;
}

.card-text {
    font-family: "Jomhuria", serif;
    font-size: clamp(34px, 5vw, 52px);
    font-weight: 400;
    color: #4F6B58;
    position: relative;
    text-align: left;
    line-height: 0.5;
    max-width: 60%;
    z-index: 2;
}
.info-card {
    position: relative;
    text-decoration: none;
    background-color: #D0EEDA;
    width: 250px;
    height: 190px;
    border-radius: 25px;
    display: flex;
    align-items: center;
    padding-left: 20px;
    box-sizing: border-box;
    transition: transform 0.3s ease;
    
    overflow: visible; 
}
.info-card:hover {
    transform: translateY(-6px);
}
.img-wrapper {
    position: absolute;
    top: -30px;    
    bottom: -30px; 
    right: -30px; 
    width: 150px;
    z-index: 1;
    pointer-events: none;

    
    clip-path: inset(-100px 30px -90px -100px); 
}
    

.card-img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* Чтобы бак не сплющило */
}
.cards-container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(16px, 3vw, 32px);
    margin-top: 0.5rem;
    padding: 16px 16px 5.5rem;
    box-sizing: border-box;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.info-card:nth-child(2) .img-wrapper {
    top: -41px; 
}


.info-card:nth-child(3) .img-wrapper {
    top: -35px; 
}

.info-card:nth-child(3) .img-wrapper {
    width: 120px;
}

.cloud {
    position: fixed;
    top: -60px; 
    z-index: -1; 
    pointer-events: none; 
}


.cloud img {
    width: min(720px, 95vw);
    max-width: 900px;
    height: auto;
    opacity: 40%;
}

.cloud-left {
    left: max(-220px, -32vw);
}


.cloud-right {
    right: max(-220px, -32vw);
}

.cloud-left  { left: -80px;  animation: floatL 5s ease-in-out infinite; }
.cloud-right { right: -80px; animation: floatR 5s ease-in-out infinite; }


@keyframes floatL {
  0%,100% { transform: translateX(0px); }
  50%      { transform: translateX(-29px); }
}
@keyframes floatR {
  0%,100% { transform: translateX(0px) }
  50%      { transform: translateX(23px)  }
}

html{
    scroll-behavior: smooth;
}
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-up{
    animation: fadeUp 0.8s ease forwards;
}


button {
    background: rgba(255, 255, 255, 0.7);
    border: none;
    padding: 10px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: bold;
    margin-right: 10px;
}

/* ── Search + Scan same-line row ─────────────────────────── */
/* ── Search + Scan row ───────────────────────────────────────
   align-items: stretch makes both children the exact same height
   automatically — no magic numbers needed.
────────────────────────────────────────────────────────────── */
.search-row {
    display: flex;
    align-items: stretch;      /* both children grow to same height */
    justify-content: center;
    gap: 10px;
    margin: 46px auto 24px;
    width: fit-content;
    max-width: 92vw;
}
.search-row.search-row-small {
    margin-top: 8px;
    margin-bottom: 16px;
}

.search-container {
    margin: 0;
    width: 560px;
    background: rgba(255, 255, 255, 0.4);
    padding: 0 12px;           /* horizontal only — height comes from row stretch */
    border-radius: 50px;
    display: flex;
    align-items: center;       /* vertically centre the input inside */
    flex-shrink: 1;
    box-sizing: border-box;
}

.search-container.small {
    width: 420px;
    padding: 0 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

.search-container input {
    width: 100%;
    height: 100%;              /* fills the pill height */
    background: transparent;
    border: none;
    padding: 0 10px;
    font-size: 1rem;
    outline: none;
    box-sizing: border-box;
}
.search-container.small input {
    font-size: 0.88rem;
}

.search-container button[type="submit"] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0 4px;
    display: flex;
    align-items: center;
    font-size: 1.1rem;
}

/* Scan button — stretches to same height as the search bar */
.search-row .scan-item-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    white-space: nowrap;
    flex-shrink: 0;
    padding: 0 22px;           /* horizontal padding only */
    font-size: 0.9rem;
    box-sizing: border-box;
}

/* Give the row an explicit height so both children have something to stretch to */
.search-row        { height: 44px; }
.search-row.search-row-small { height: 36px; }

.glass-panel {
    background: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
    border-radius: 20px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    margin: 10px;
    width: 450px;
    height: 470px;
    transform: translateY(-370px) translateX(230px);
    gap: 30px;
}
.glass-panel:nth-child(1){
transform: translateY(-395px) translateX(530px);
}


/* ── Recycle page master layout ──────────────────────────────── */
.recycle-layout {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;                 /* 20px between image and the rest */
    padding: 20px 30px 50px 20px;
    max-width: 100%;
    box-sizing: border-box;
}

/* Far-left image column — same size as item.html (450px) */
.recycle-img-col {
    flex-shrink: 0;
    width: 450px;
}
.recycle-img-col img {
    width: 450px;
    height: auto;
    border-radius: 25px;
    object-fit: contain;
    display: block;
}

/* Right column: lifehacks on top, calc+map on bottom */
.recycle-content-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}

/* Calculator + Map side by side */
.calc-map-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 38px;
    flex-wrap: nowrap;
}

/* Keep bottom-row for other pages if needed */
.bottom-row {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 80px;
    padding: 0 60px 80px;
    flex-wrap: wrap;
}

.logo-text {
    font-size: 4rem;
    color: #00FF7F;
    text-shadow: 2px 2px #2D4059;
    text-align: center;
}

/* --- CALCULATOR STYLES --- */
.glass-panel.calculator {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 30px;
    padding: 20px 26px 24px;
    margin-top: 0;
    color: #0E0973;
    width: 420px;
    height: 470px;
    flex-shrink: 0;
    transform: none;
    position: relative;
    z-index: 1;               /* sits above the ::before blue glow */
    box-sizing: border-box;
    /* pure glass fill (no solid colour) + 1px gradient stroke */
    
    border: 1px solid lightblue;
}

/* Blue blurry glow behind the calculator */
.glass-panel.calculator::before {
    content: '';
    position: absolute;
    inset: -18px;
    background: #232DE9;
    border-radius: 36px;
    filter: blur(36px);
    opacity: 0.45;
    z-index: 0;
    pointer-events: none;
}

/* keep all calculator children above the blue ::before glow */
.glass-panel.calculator > * {
    position: relative;
    z-index: 1;
}

.glass-panel.calculator h3 {
    text-align: center;
    font-family: 'Jomhuria', sans-serif;
    font-size: 44px;
    color: #0E0973;
    margin: 0 0 8px 0;
    line-height: 1;
    font-weight: 400;
}

.calc-input-group {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 14px;
    font-family: 'Jaldi', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #0E0973;
}

#calcQty {
    background: #C7D6FA;
    border: 2px solid #0E0973;
    border-radius: 10px;
    padding: 3px 8px;
    font-family: 'Inter', sans-serif;
    font-weight: bold;
    font-size: 16px;
    color: black;
    width: 64px;
}

.cal-heading{
 font-family: "Jomhuria", sans-serif;
    font-weight: 400;
    font-size: 60px;
    color: #384C3F;   
}

.results-display {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.stat-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.stat-text {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: 8px;
}

.stat-label {
    font-family: 'Jomhuria', sans-serif;
    font-size: 42px;
    color: #0E0973;
    line-height: 1;
}

/* Coloured keyword spans inside stat labels */
.label-water  { color: #1a6fff; }
.label-energy { color: #1cb85a; }
.label-co2    { color: #e02020; }

.stat-value {
    font-family: 'Jaldi', sans-serif;
    font-weight: bold;
    font-size: 42px;
    color: skyblue;
    line-height: 1;
}

.img-wrappers {
    position: static;
    width: auto;
    display: flex;
    justify-content: center;
}

.calc-img {
    width: 120px;
    height: auto;
    object-fit: contain;
}

.close-btn {
    position: absolute;
    right: 20px; top: 10px;
    cursor: pointer;
    font-family: 'Jomhuria', sans-serif;
    font-weight: bold;
    font-size: 40px;
    color: lightskyblue;
    width: 80px;
}
.item-layout{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:40px;
    margin-top:40px;
}

.item-image img{
    width:260px;
    border-radius:20px;
}


.lifehack-section {
    margin: 0;
    padding: 0 0 12px 0;
}

.lifehack-header {
    font-family: 'Jomhuria', cursive;
    font-size: 60px;
    text-align: center;
    color: #0E0973;
    margin: 0 0 8px 0;
    line-height: 1;
    pointer-events: none;   /* no hover interaction on title */
    user-select: none;
}

/* old layout div — not used in recycle.html anymore, keep hidden */
.lifehack-layout { display: none; }
.lifehack-right  { display: none; }
.lifehack-image  { display: none; }

.lifehack-cards {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin-top: 4px;
}

.lifehack-card {
    width: 320px;
    max-height: 158px;
    border-radius: 25px;
    padding: 15px;
    cursor: pointer;
    overflow: hidden;
    position: relative;
    border: 1px solid transparent;
    background:
        linear-gradient(#829DD9, #829DD9) padding-box,
        linear-gradient(45deg, #89F19E, #4A7CE0, #00FF7F) border-box;
    transition: max-height 0.65s ease,
                opacity   0.4s ease,
                transform 0.4s ease;
}

/* subtle fade hint at the bottom when collapsed */
.lifehack-card::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 44px;
    background: linear-gradient(to bottom, transparent, #829DD9);
    border-radius: 0 0 22px 22px;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.lifehack-card:nth-child(1) {
    z-index: 3;
    opacity: 1;
}
.lifehack-card:nth-child(2) {
    margin-left: -140px;
    z-index: 2;
    transform: scale(0.9);
    transform-origin: center left;
    opacity: 0.7;
}
.lifehack-card:nth-child(3) {
    margin-left: -140px;
    z-index: 1;
    transform: scale(0.8);
    transform-origin: center left;
    opacity: 0.4;
}

/* Hover: open downward, full opacity, bring to front */
.lifehack-card:hover {
    max-height: 620px;
    opacity: 1;
    z-index: 10;
}

/* Cards 2 and 3 scale up to full size on hover */
.lifehack-card:nth-child(2):hover {
    transform: scale(1);
}
.lifehack-card:nth-child(3):hover {
    transform: scale(1);
}

/* hide the fade hint on hover */
.lifehack-card:hover::after {
    opacity: 0;
}

/* ── Fixed font sizes — identical across all 3 cards ── */
.idea-title {
    font-family: 'Jomhuria', cursive;
    font-size: 36px;
    line-height: 1;
    color: whitesmoke;
}

.idea-needs {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-style: italic;
    color: #1f2b45;
    opacity: 0.85;
    margin-top: 4px;
    line-height: 1.35;
}

/* Steps — Jomhuria, same colour as title, numbered */
.idea-steps {
    counter-reset: step-counter;
    font-family: 'Jomhuria', cursive;
    font-size: 22px;
    line-height: 1.25;
    color: #0E0973;
    margin-top: 6px;
}

.idea-steps > div {
    counter-increment: step-counter;
    padding: 1px 0;
}

.idea-steps > div::before {
    content: counter(step-counter) ". ";
    font-weight: 400;
    opacity: 0.55;
}

.item-image{
    min-width: 450px;
}


.item-layout-wrapper {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 40px;
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 20px;
}


.item-left-side {
    flex: 0 0 450px; 
}

.item-left-side img {
    width: 450px;
    height: auto;
    border-radius: 25px;
    object-fit: contain;
}

/* sprava kontent */
.item-right-side {
    flex: 1;
    display: flex;
    flex-direction: column;

}
.questions-tips-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 30px;
    width: 100%;
    
    
}

/* da net vopros*/
.detail-spec-section {
    background: transparent;
    padding: 0;
    border-radius: 20px;
    width: 300px;
    line-height: 1;
    transform: none;
    text-align: center;
}

.detail-spec-section h3 {
    margin: 0 0 6px 0;
    font-size: 60px;
    line-height: 1.1;
}

.detail-options {
    display: flex;
    gap: 10px;
    margin-top: 0;
    justify-content: center;
}

.detail-option-btn {
    font-family: "Jomhuria", sans-serif;
    color: white;
    font-size: 50px;
    font-weight: 300;
    padding: 4px 22px;
    border-radius: 50px;
    background: transparent;
    cursor: pointer;
    transition: 0.3s;
    margin-top: 0;
}

.detail-option-btn.active {
    color: white;
}
.detail-option-btn.active:nth-child(1) {
    background: #00dd55;
    border-color: #00ff66;
    box-shadow: 0 0 20px rgba(0,220,80,0.65), 0 0 40px rgba(0,180,60,0.3);
    color: white;
}
.detail-option-btn.active:nth-child(2) {
    background: #ff1133;
    border-color: #ff3355;
    box-shadow: 0 0 20px rgba(255,20,50,0.65), 0 0 40px rgba(200,0,30,0.3);
    color: white;
}

/* dlja materialov */
.materials-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 20px;
    column-gap: 28px;
    width: 100%;
    margin: 0 auto;
    padding: 6px;
}

.material-card {
    border-radius: 18px;
    padding: 10px 14px;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    transition: 0.3s;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transform: none;
    overflow: hidden;
    position: relative;
    background:
        linear-gradient(#D0EEDA,#D0EEDA) padding-box,
        linear-gradient(135deg,#89F19E,#4A7CE0,#00FF7F) border-box;
    border: 1px solid transparent;
    box-shadow:
        0 0 10px 2px rgba(74, 124, 224, 0.6),
        0 0 20px 3px rgba(0, 120, 255, 0.25);
}
.mat-name{
   font-family: "Jomhuria" ,sans-serif;
   font-size: 34px;
   text-align: center;
   margin-top: 0;
   color: #465D39;
   transform: none;
   line-height: 1;
}
.mat-label{
  font-family: "Jaldi" ,sans-serif;
  font-weight: bold;
   font-size: 18px;
   text-align: left;
   color: #0C365F;
   line-height: 1.1;
   padding-top: 4px;
}

.mat-value{
  font-family: "Jaldi" ,sans-serif;
  font-weight: normal;
   font-size: 18px;
   text-align: left;
   color:#000;
   line-height: 1.1;
   padding-top: 4px;
}

.material-card.active {
    border-color: #4A7CE0;
    background: #f0f4ff;
}

.mat-abbr-circle {
    transform: none;
    width: 46px;
    height: 46px;
    background: #eee;
    border-radius: 50%;
    margin: 0 auto 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    font-family: "Jomhuria" ,sans-serif;
    font-size: 26px;
    text-align: center;
    color: #465D39;
}
.possible-materials{
    font-family: "Jomhuria", sans-serif;
    font-weight: 400;
    font-size: 60px;
    color: #0C365F;
    transform: none;
    margin-top: -10px;
    text-align: center;
    width: 100%;
}
.recycle-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding-bottom: 10px;
}

/* Centres the search+tags block as one unit; tags align to search bar's left */
.search-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

#filterTags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-top: 6px;
}

.filter-tag {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(5px);
    background:
        linear-gradient(#F7F7F7,#F7F7F7) padding-box,
        linear-gradient(135deg,#89F19E,#4A7CE0,#00FF7F) border-box;

     border:1px solid transparent;
    padding: 8px 15px;
    border-radius: 20px;
    font-family: 'DM Sans', sans-serif;
    font-size: 12px;
    font-weight: bold;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #0E0973;
}

.filter-tag .rm {
    cursor: pointer;
    font-weight: bold;
    opacity: 0.5;
    transition: 0.3s;
}

.filter-tag .rm:hover {
    opacity: 1;
    color: #ff4d4d;
}
.action-btn-container { text-align: center; margin-top: 22px; }

/* dlja knopok */
#nextBtn {
    transform: none !important;
    animation: none !important;
    display: block;
    margin: 4px 0;
    padding: 6px 20px;
    font-size: 0.78rem;
    border-radius: 50px;
}
.primary-btn {
  background: linear-gradient(135deg, #3db870, #2da890);
  border: none; border-radius: 50px; padding: 13px 34px;
  font-family: 'Oswald', sans-serif; font-weight: 700;
  font-size: 1rem; letter-spacing: 0.07em; color: white;
  cursor: pointer; box-shadow: 0 6px 24px rgba(45,168,100,0.35);
  transition: all 0.3s cubic-bezier(.34,1.56,.64,1);
  text-shadow: 0 1px 3px rgba(0,0,0,0.18);
  transform: none;
  animation: none;
}
.primary-btn:hover { transform: scale(1.04); box-shadow: 0 10px 32px rgba(45,168,100,0.45); }

@keyframes slideUp {
    0% {
        transform: translateY(0px); 
        opacity: 1;                   
    }
    100% {
        transform: translateY(-653px);     
        opacity: 1;                  
    }
}


.item-right-side {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
}

#detailsSection {
    flex: 0 0 auto; 
    min-width: 250px;
}

.tips-sidebar {
    flex: 0 0 500px;
    width: 500px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tips-heading {
    font-family: 'Jomhuria', sans-serif;
    font-size: 52px;
    color: #0C365F;
    line-height: 1;
    padding-left: 4px;
}

/* dlja sovetov */
.tips-panel {
    background-color: #D0EEDA;
    border-radius: 20px;
    padding: 8px 12px;
    border: 2px solid rgba(74,181,138,0.4);
    box-shadow: 0 8px 28px rgba(0,0,0,0.18);
    display: block;
    overflow: hidden;
}

.tips-two-col {
    display: flex;
    gap: 10px;
}

.tips-col {
    flex: 1;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

/* eto tip bez znachkov */
.col-label {
    display: none;
}

.tips-list-ol {
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    color: #1a3a1a;
    padding-left: 12px;
    margin: 0;
    line-height: 1.4;
}

.tips-list-ol li {
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    margin-bottom: 3px;
}

/* tenj sinjaa tipo*/
.tips-col.glow-active {
    background-color: #ADD8E6 !important;
    box-shadow: 0 0 25px #87CEFA;
    transform: scale(1.05);
    border: 2px solid #000;
}

/* dlja scannera */
.scan-item-btn {
    display: block;
    margin: -24px auto 28px;
    padding: 10px 30px;
    background: linear-gradient(135deg, rgba(36,228,116,0.22), rgba(35,45,233,0.22));
    backdrop-filter: blur(10px);
    border: 1.5px solid rgba(36,228,116,0.55);
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    letter-spacing: 0.4px;
    box-shadow: 0 4px 18px rgba(36,228,116,0.18), 0 2px 8px rgba(0,0,0,0.18);
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s, border-color 0.2s;
    font-family: 'DM Sans', sans-serif;
}
.scan-item-btn:hover {
    background: linear-gradient(135deg, rgba(36,228,116,0.38), rgba(35,45,233,0.35));
    border-color: rgba(36,228,116,0.85);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(36,228,116,0.28), 0 2px 10px rgba(0,0,0,0.2);
}
.scan-item-btn:active {
    transform: scale(0.97);
}
.scan-item-btn-small {
    margin: 4px auto 8px;
    padding: 5px 18px;
    font-size: 0.82rem;
    font-weight: 600;
}

/* ══════════════════════════════════════════════════════════
   SCANNER MODAL  —  Dark Blue / Green Design
   ══════════════════════════════════════════════════════════ */

/* ── Overlay ─────────────────────────────────────────────── */
#scannerModal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(2, 6, 24, 0.92);
    backdrop-filter: blur(10px);
    animation: smFadeIn 0.22s ease;
}
@keyframes smFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ── Scanner box ─────────────────────────────────────────── */
.scanner-box {
    position: relative;
    background: linear-gradient(160deg, #0a1535 0%, #071022 100%);
    border: 1.5px solid transparent;
    background-clip: padding-box;
    border-radius: 28px;
    padding: 0;
    text-align: center;
    color: #fff;
    width: 380px;
    max-width: 96vw;
    font-family: 'DM Sans', sans-serif;
    animation: smSlideUp 0.28s cubic-bezier(0.34,1.56,0.64,1);
    box-shadow:
        0 0 0 1.5px rgba(36,228,116,0.45),
        0 0 40px rgba(36,228,116,0.12),
        0 20px 60px rgba(0,0,0,0.55);
    overflow: hidden;
}
.scanner-box::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 28px;
    border: 1.5px solid transparent;
    background: linear-gradient(135deg, rgba(36,228,116,0.5), rgba(35,45,233,0.5)) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: destination-out;
    mask-composite: exclude;
    pointer-events: none;
}
@keyframes smSlideUp {
    from { transform: translateY(24px) scale(0.96); opacity: 0; }
    to   { transform: translateY(0) scale(1);       opacity: 1; }
}

/* ── Header row ──────────────────────────────────────────── */
.scanner-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px 12px;
    border-bottom: 1px solid rgba(36,228,116,0.12);
}
.scanner-title {
    font-family: 'DM Sans', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.3px;
}
.scanner-close-btn {
    background: rgba(255,255,255,0.07);
    color: rgba(255,255,255,0.7);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1;
    transition: background 0.18s, color 0.18s, border-color 0.18s;
    flex-shrink: 0;
}
.scanner-close-btn:hover {
    background: rgba(255,80,80,0.25);
    border-color: rgba(255,80,80,0.45);
    color: #fff;
}

/* ── View wrapper ────────────────────────────────────────── */
.scanner-view {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 16px 20px 20px;
    box-sizing: border-box;
    gap: 10px;
}

/* ── Mode tabs ───────────────────────────────────────────── */
.scanner-mode-tabs {
    display: flex;
    gap: 6px;
    width: 100%;
}
.scanner-tab {
    flex: 1;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 22px;
    color: rgba(255,255,255,0.5);
    font-family: 'DM Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 7px 12px;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.scanner-tab:hover {
    background: rgba(36,228,116,0.1);
    border-color: rgba(36,228,116,0.3);
    color: rgba(255,255,255,0.85);
}
.scanner-tab.scanner-tab-active {
    background: linear-gradient(135deg, rgba(36,228,116,0.28), rgba(35,45,233,0.28));
    border-color: rgba(36,228,116,0.65);
    color: #24E474;
    box-shadow: 0 0 14px rgba(36,228,116,0.2);
}

/* ── Camera viewport ─────────────────────────────────────── */
.scanner-viewport {
    position: relative;
    width: 100%;
    padding-top: 68%;
    border-radius: 18px;
    overflow: hidden;
    border: 1.5px solid rgba(36,228,116,0.35);
    background: #000;
    box-shadow: 0 0 20px rgba(36,228,116,0.1) inset;
}
#scannerVideo {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
}
#scannerCanvas {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 2;
    pointer-events: none;
}

/* ── Scanning line animation ─────────────────────────────── */
.scan-anim {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 3;
    pointer-events: none;
    overflow: hidden;
    border-radius: 16px;
}
.scan-line {
    position: absolute;
    left: 0; right: 0;
    height: 2.5px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(36,228,116,0.15) 15%,
        rgba(36,228,116,0.9) 50%,
        rgba(36,228,116,0.15) 85%,
        transparent 100%);
    box-shadow:
        0 0 8px rgba(36,228,116,0.6),
        0 0 20px rgba(36,228,116,0.3);
    animation: scanLineMov 2.2s cubic-bezier(0.45,0,0.55,1) infinite;
    top: 0;
}
@keyframes scanLineMov {
    0%   { top: 2%; opacity: 0; }
    8%   { opacity: 1; }
    90%  { opacity: 1; }
    100% { top: 97%; opacity: 0; }
}

/* ── Corner brackets ─────────────────────────────────────── */
.scanner-corners {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
}
.s-corner {
    position: absolute;
    width: 22px;
    height: 22px;
    border-color: #24E474;
    border-style: solid;
    filter: drop-shadow(0 0 4px rgba(36,228,116,0.8));
}
.s-corner.tl { top: 10px;    left: 10px;    border-width: 3px 0 0 3px; }
.s-corner.tr { top: 10px;    right: 10px;   border-width: 3px 3px 0 0; }
.s-corner.bl { bottom: 10px; left: 10px;    border-width: 0 0 3px 3px; }
.s-corner.br { bottom: 10px; right: 10px;   border-width: 0 3px 3px 0; }

/* ── Status text ─────────────────────────────────────────── */
.scanner-status {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.84rem;
    margin: 0;
    min-height: 1.3em;
    text-align: center;
    transition: color 0.25s;
}
.scanner-status--info  { color: rgba(36,228,116,0.9); }
.scanner-status--error { color: rgba(255,90,90,0.95); }

/* ── Confirm view card ───────────────────────────────────── */
.detected-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    background: linear-gradient(135deg, rgba(36,228,116,0.1), rgba(35,45,233,0.1));
    border: 1.5px solid rgba(36,228,116,0.28);
    border-radius: 20px;
    padding: 24px 28px 20px;
    width: 100%;
    box-sizing: border-box;
    box-shadow: 0 0 24px rgba(36,228,116,0.08) inset;
}
.detected-icon {
    font-size: 3.2rem;
    line-height: 1;
    filter: drop-shadow(0 0 8px rgba(36,228,116,0.4));
}
.detected-name {
    font-family: 'DM Sans', sans-serif;
    font-size: 1.28rem;
    font-weight: 800;
    color: #fff;
    text-align: center;
    word-break: break-word;
    letter-spacing: 0.2px;
}
.detected-sub {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.76rem;
    color: rgba(36,228,116,0.65);
    text-align: center;
}
.confirm-question {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.87rem;
    color: rgba(255,255,255,0.6);
    margin: 0;
}
.confirm-btns {
    display: flex;
    gap: 10px;
    width: 100%;
}
.confirm-yes-btn,
.confirm-no-btn {
    flex: 1;
    padding: 11px 14px;
    border-radius: 26px;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s, transform 0.12s, box-shadow 0.2s;
    border: none;
}
.confirm-yes-btn {
    background: linear-gradient(135deg, rgba(36,228,116,0.35), rgba(35,45,233,0.25));
    border: 1.5px solid rgba(36,228,116,0.7);
    color: #24E474;
    box-shadow: 0 0 18px rgba(36,228,116,0.18);
}
.confirm-yes-btn:hover {
    background: linear-gradient(135deg, rgba(36,228,116,0.55), rgba(35,45,233,0.4));
    box-shadow: 0 0 28px rgba(36,228,116,0.32);
    transform: scale(1.03);
}
.confirm-no-btn {
    background: rgba(255,255,255,0.06);
    border: 1.5px solid rgba(255,255,255,0.16);
    color: rgba(255,255,255,0.7);
}
.confirm-no-btn:hover {
    background: rgba(255,255,255,0.12);
    color: #fff;
}

/* ── Category view ───────────────────────────────────────── */
.category-prompt {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.84rem;
    color: rgba(255,255,255,0.55);
    margin: 0;
    text-align: center;
}
.category-choices {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}
.category-choice-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: rgba(255,255,255,0.04);
    border: 1.5px solid rgba(255,255,255,0.1);
    border-radius: 18px;
    cursor: pointer;
    transition: background 0.22s, border-color 0.22s, transform 0.12s, box-shadow 0.22s;
    width: 100%;
    text-align: left;
    box-sizing: border-box;
}
.category-choice-btn:hover {
    background: linear-gradient(135deg, rgba(36,228,116,0.16), rgba(35,45,233,0.16));
    border-color: rgba(36,228,116,0.55);
    transform: translateX(4px);
    box-shadow: 0 0 20px rgba(36,228,116,0.15);
}
.choice-icon {
    font-size: 2rem;
    line-height: 1;
    flex-shrink: 0;
    filter: drop-shadow(0 0 4px rgba(36,228,116,0.3));
}
.choice-name {
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
}
.scanner-back-btn {
    background: none;
    border: none;
    color: rgba(255,255,255,0.38);
    font-family: 'DM Sans', sans-serif;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 8px;
    transition: color 0.2s;
    margin-top: 2px;
}
.scanner-back-btn:hover {
    color: rgba(36,228,116,0.9);
}

/* ── Barcode result (legacy, kept for safety) ────────────── */
.barcode-result {
    margin-top: 8px;
    padding: 10px 14px;
    background: rgba(36,228,116,0.08);
    border: 1px solid rgba(36,228,116,0.25);
    border-radius: 12px;
    color: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.82rem;
    line-height: 1.45;
    text-align: center;
}
.barcode-result strong {
    display: block;
    font-size: 0.95rem;
    margin-bottom: 4px;
    color: #24E474;
}

/* dark-theme overrides (already dark so minimal change) */
[data-theme="dark"] .scanner-tab {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.1);
}
[data-theme="dark"] .scanner-tab:hover {
    background: rgba(36,228,116,0.1);
}
[data-theme="dark"] .scanner-tab.scanner-tab-active {
    background: linear-gradient(135deg, rgba(36,228,116,0.22), rgba(35,45,233,0.22));
    border-color: rgba(36,228,116,0.5);
}

/* ═══════════════════════════════════════════════════════════
   NAV CONTROLS  (theme toggle + language selector)
   Injected dynamically by theme.js and language.js
   ═══════════════════════════════════════════════════════════ */
nav {
    /* allow controls to sit on the right side */
    justify-content: flex-start;
}
.nav-ctrl-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.25rem;
    padding: 4px 8px;
    border-radius: 8px;
    color: #fff;
    transition: background 0.2s;
    line-height: 1;
}
.nav-ctrl-btn:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* ── Theme dot switcher ────────────────────────────────────── */
.theme-switcher {
    display: flex;
    gap: 7px;
    align-items: center;
    margin-left: auto;   /* pushes the whole group to the right */
    flex-shrink: 0;
}
.theme-dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2.5px solid transparent;
    cursor: pointer;
    padding: 0;
    outline: none;
    flex-shrink: 0;
    transition: transform 0.18s ease,
                border-color 0.2s ease,
                box-shadow 0.2s ease;
    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.35);
}
.theme-dot:hover {
    transform: scale(1.25);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.45);
}
.theme-dot-active {
    border-color: #fff;
    transform: scale(1.18);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45),
                0 3px 12px rgba(0, 0, 0, 0.4);
}
.lang-selector {
    display: flex;
    gap: 5px;
    align-items: center;
    margin-left: 8px;
}
.lang-btn {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 6px;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 8px;
    cursor: pointer;
    transition: background 0.2s;
    font-family: 'DM Sans', sans-serif;
    letter-spacing: 0.5px;
}
.lang-btn:hover    { background: rgba(255, 255, 255, 0.3); }
.lang-btn.lang-active {
    background: rgba(255, 255, 255, 0.45);
    border-color: rgba(255, 255, 255, 0.7);
}

/* ═══════════════════════════════════════════════════════════
   DARK MODE  –  NEON EDITION  v2
   ═══════════════════════════════════════════════════════════ */

/* ── Base ──────────────────────────────────────────────────── */
[data-theme="dark"] body {
    background: linear-gradient(to top, #020c08 0%, #030e16 55%, #04081a 100%);
    color: #e8f4ff;
}

/* ── Nav: neon blue panel, darker muted links ─────────────── */
[data-theme="dark"] nav {
    background: linear-gradient(to bottom, #503ACB, transparent);
     width: 100%;
    height: 110px;
}
[data-theme="dark"] .nav-link {
    color: #3a6a9a;   /* dark — user asked "navigation font darker" */
}
[data-theme="dark"] .nav-link:hover {
    color: #60d0ff;
    text-shadow: 0 0 10px rgba(0,180,255,0.7);
}

/* ── Headings – plain bright white, NO neon glow ─────────── */
[data-theme="dark"] h1, [data-theme="dark"] h2,
[data-theme="dark"] h3, [data-theme="dark"] h4,
[data-theme="dark"] h5 {
    color: #f0f8ff;
    text-shadow: none;
}

/* ── Search bar ────────────────────────────────────────────── */
[data-theme="dark"] .search-container {
    background: rgba(0,20,50,0.65);
    border: 1px solid rgba(0,180,255,0.28);
    box-shadow: 0 0 22px rgba(0,130,255,0.22), inset 0 0 12px rgba(0,0,0,0.3);
}
[data-theme="dark"] .search-container input          { color: #e8f4ff; }
[data-theme="dark"] .search-container input::placeholder { color: rgba(140,200,255,0.42); }
[data-theme="dark"] .search-container button         { color: #60d0ff; }

/* ── Scan button ───────────────────────────────────────────── */
[data-theme="dark"] .scan-item-btn {
    background: rgba(0,15,40,0.75);
    color: #60d0ff;
    border-color: rgba(0,180,255,0.4);
    box-shadow: 0 0 14px rgba(0,150,255,0.25);
}
[data-theme="dark"] .scan-item-btn:hover {
    box-shadow: 0 0 24px rgba(0,180,255,0.45);
    border-color: rgba(0,200,255,0.65);
}

/* ── Info cards – neon blue glow ──────────────────────────── */
[data-theme="dark"] .info-card {
    background: rgba(0,12,30,0.85);
    border: 1px solid rgba(0,160,255,0.45);
    box-shadow: 0 0 22px rgba(0,100,255,0.32), 0 4px 24px rgba(0,0,0,0.55);
}
[data-theme="dark"] .card-text {
    color: #a8daff;
    text-shadow: none;
    font-weight: 700;
}

/* ── Glass panels (calculator, map) – neon blue ───────────── */
[data-theme="dark"] .glass-panel {
    
    border: 1px solid rgba(0,160,255,0.38);
   
    color: #e8f4ff;
}
[data-theme="dark"] .stat-label { color: #70c8ff; font-weight: 600; }
[data-theme="dark"] .stat-value { color: #e8f4ff; font-weight: 700; }

/* ── Primary / map buttons ─────────────────────────────────── */
[data-theme="dark"] .primary-btn {
    background: rgba(0,65,145,0.78);
    color: #c0e8ff;
    border: 1px solid rgba(0,180,255,0.55);
    box-shadow: 0 0 16px rgba(0,150,255,0.4);
    font-weight: 700;
}
[data-theme="dark"] .primary-btn:hover {
    box-shadow: 0 0 28px rgba(0,180,255,0.6);
}
[data-theme="dark"] .map-btn {
    background: rgba(0,65,145,0.75);
    color: #c0e8ff;
    border: 1px solid rgba(0,180,255,0.48);
    box-shadow: 0 0 12px rgba(0,150,255,0.32);
    font-weight: 600;
}

/* ── Yes/No detail buttons – neon red & green ─────────────── */
[data-theme="dark"] .detail-option-btn {
    background: rgba(0,10,25,0.7);
    color: #c0e8ff;
    border: 1px solid rgba(0,160,255,0.35);
}
[data-theme="dark"] .detail-option-btn.active:nth-child(1) {
    background: #00e055;
    border-color: #00ff66;
    box-shadow: 0 0 24px rgba(0,255,100,0.75), 0 0 48px rgba(0,200,70,0.35);
    color: #001a0a;
}
[data-theme="dark"] .detail-option-btn.active:nth-child(2) {
    background: #ff1133;
    border-color: #ff3355;
    box-shadow: 0 0 24px rgba(255,20,55,0.75), 0 0 48px rgba(200,0,30,0.35);
    color: #fff;
}

/* ── Filter tags ───────────────────────────────────────────── */
[data-theme="dark"] .filter-tag {
    background: rgba(0,8,22,0.8);
    color: #70c8ff;
    border-color: rgba(0,150,255,0.5);
    box-shadow: 0 0 10px rgba(0,100,255,0.22);
    font-weight: 600;
}

/* ── Lifehacks – bright, readable ─────────────────────────── */
[data-theme="dark"] .lifehack-card {
    background: rgba(0,12,30,0.88);
    color: #e8f4ff;
    border: 1px solid rgba(0,150,255,0.4);
    box-shadow: 0 0 20px rgba(0,100,255,0.28), 0 3px 14px rgba(0,0,0,0.5);
}
[data-theme="dark"] .lifehack-card::after {
    background: linear-gradient(to bottom, transparent, rgba(0,12,30,0.95));
}
[data-theme="dark"] .idea-title             { color: #a8d8ff; }
[data-theme="dark"] .idea-needs             { color: #7ab8e8; }
[data-theme="dark"] .idea-steps             { color: #c8e8ff; }
[data-theme="dark"] .idea-steps > div::before { opacity: 0.5; }
[data-theme="dark"] .lifehack-header {
    color: #55ccff;
    text-shadow: none;
    font-weight: 700;
}

/* ── Tips sidebar – neon green, NO frame on columns ──────── */
[data-theme="dark"] .tips-sidebar {
    background: transparent;
    border: none;
    box-shadow: none;
    color: #c8ffd8;
}
[data-theme="dark"] .tips-heading {
    color: #00ee80;
    text-shadow: 0 0 10px rgba(0,238,120,0.6);
    font-weight: 700;
}
[data-theme="dark"] .tips-panel { color: #c8ffd8; }
[data-theme="dark"] .tips-col {
    background: transparent;
    color: #c8ffd8;
    border: none;         /* frame deleted */
    box-shadow: none;
    font-weight: 500;
}

/* ── Materials – purple-blue, hover, readable text ────────── */
[data-theme="dark"] .possible-materials {
    color: #c080ff;
    text-shadow: none;
    font-weight: 700;
}
[data-theme="dark"] .materials-section { color: #e8dcff; }

[data-theme="dark"] .material-card {
    background: rgba(12,0,32,0.88);
    border: 1px solid rgba(140,70,240,0.55);
    box-shadow: 0 0 16px rgba(120,0,240,0.28), 0 2px 10px rgba(0,0,0,0.5);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
[data-theme="dark"] .material-card:hover {
    background: rgba(25,0,55,0.92);
    border-color: rgba(190,120,255,0.78);
    box-shadow: 0 0 28px rgba(170,80,255,0.52), 0 4px 16px rgba(0,0,0,0.5);
    transform: translateY(-3px);
}
[data-theme="dark"] .material-card.active {
    background: rgba(45,0,90,0.95);
    border-color: rgba(210,150,255,0.9);
    box-shadow: 0 0 34px rgba(190,100,255,0.6);
}
[data-theme="dark"] .mat-name   { color: #e8d8ff; font-weight: 700; }
[data-theme="dark"] .mat-label  { color: #b898e8; font-weight: 600; }
[data-theme="dark"] .mat-value  { color: #dcceff; }
[data-theme="dark"] .mat-abbr-circle {
    background: rgba(110,45,200,0.55);
    color: #f0e4ff;
    border: 1px solid rgba(190,120,255,0.55);
}

/* ── Text inputs ───────────────────────────────────────────── */
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="text"]:not(#searchInput) {
    background: rgba(0,8,22,0.65);
    color: #e8f4ff;
    border: 1px solid rgba(0,150,255,0.32);
    box-shadow: 0 0 8px rgba(0,100,255,0.14);
}

/* ── Lang buttons ──────────────────────────────────────────── */
[data-theme="dark"] .lang-btn { color: #a8daff; }
[data-theme="dark"] .lang-btn.lang-active {
    background: rgba(0,65,145,0.55);
    border-color: rgba(0,180,255,0.68);
    box-shadow: 0 0 10px rgba(0,150,255,0.32);
    color: #e8f4ff;
}

/* ═══════════════════════════════════════════════════════════
   MAP SECTION  –  borderless, overlay address input
   ═══════════════════════════════════════════════════════════ */

/* Wrapper column – 483px wide */
.map-section {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 483px;
    flex-shrink: 0;
    position: relative;
    transform: none;
}

/* Blue blurry box sitting underneath the map (not a shadow – real element) */
.map-section::before {
    content: '';
    position: absolute;
    top: 50px;          /* clears the heading */
    left: -22px;
    right: -22px;
    bottom: -22px;
    background: #232DE9;
    border-radius: 40px;
    filter: blur(30px);   /* very blurry */
    opacity: 0.78;
    z-index: 0;
    transform: translateY(10px);
}

/* Map frame – 483×371, round edges */
.map-wrapper {
    position: relative;
    width: 483px;
    height: 371px;
    border-radius: 70px;
    overflow: hidden;
    z-index: 1;
    box-shadow: -19px 18px 30px rgba(0, 0, 0, 0.55);
}

/* Leaflet map fills the entire wrapper */
#map {
    width: 100%;
    height: 100%;
    border-radius: 70px;
}

/* ── Purple overlay (visible when no address is set) ── */
.map-overlay {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 67%;

    /* clean gradient: transparent → #917ADF, no blur */
    background: linear-gradient(to bottom, transparent 0%, #917ADF 100%);

    display: flex;
    align-items: flex-end;        /* stick input to the bottom */
    justify-content: flex-start;  /* stick input to the left */
    padding: 0 14px 14px 26px;
    gap: 8px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;

    /* above ALL Leaflet layers (markers = z-index 600) */
    z-index: 1000;

    /* slide-down transition */
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.45s ease;
}

/* State: address submitted → overlay slides off the bottom */
.map-overlay.revealed {
    transform: translateY(110%);
    opacity: 0;
    pointer-events: none;
}

/* ── Address input – glass with gradient stroke ─────────────── */
#addressInput {
    /* limit width so it stays in the bottom-left corner */
    width: 200px;
    flex-shrink: 0;

    /* gradient border trick: solid inner bg + gradient outer border */
    background:
        linear-gradient(rgba(145, 122, 223, 0.28), rgba(145, 122, 223, 0.28)) padding-box,
        linear-gradient(135deg, #917ADF, #232DE9) border-box;
    border: 2px solid transparent;
    border-radius: 50px;

    padding: 8px 16px;
    color: #fff;
    font-family: 'DM Sans', sans-serif;
    font-size: 0.85rem;
    outline: none;
    transition: box-shadow 0.2s;
}
#addressInput::placeholder {
    color: rgba(255, 240, 255, 0.7);
}
#addressInput:focus {
    box-shadow: 0 0 14px rgba(145, 122, 223, 0.6);
}

/* ── Find button – circular icon, gradient stroke ───────────── */
.map-find-btn {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: transparent;
    border: none;
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: box-shadow 0.2s, transform 0.15s;
}
.map-find-btn:hover {
    box-shadow: 0 0 16px rgba(145, 122, 223, 0.65);
    transform: scale(1.08);
}
.map-find-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── Heading ABOVE the map – plain white ────────────────────── */
.map-heading {
    font-family: 'Gasoek One', sans-serif;
    font-size: 28px;
    font-weight: 400;
    text-align: center;
    color: #D0EEDA;
    -webkit-text-fill-color: #ffffff;
    background: none;
    margin: 0 0 10px;
    line-height: 1.15;
}

/* ═══════════════════════════════════════════════════════════
   DARK MODE – MAP OVERRIDES
   ═══════════════════════════════════════════════════════════ */

/* Dark mode: deepen the dark shadow, blurry box stays blue */
[data-theme="dark"] .map-wrapper {
    box-shadow: -19px 18px 38px rgba(0, 0, 0, 0.75);
}
[data-theme="dark"] .map-section::before {
    background: #232DE9;
    opacity: 0.6;
    filter: blur(45px);
}

/* Dark mode: deeper purple gradient on overlay */
[data-theme="dark"] .map-overlay {
    background: linear-gradient(to bottom, transparent 0%, rgba(80, 40, 160, 0.95) 100%);
}

/* Override the generic dark blue input rule → keep purple gradient stroke */
[data-theme="dark"] #addressInput {
    background:
        linear-gradient(rgba(80, 40, 160, 0.4), rgba(80, 40, 160, 0.4)) padding-box,
        linear-gradient(135deg, #917ADF, #232DE9) border-box !important;
    border: 2px solid transparent !important;
    color: #f0e0ff !important;
    box-shadow: none;
}
[data-theme="dark"] #addressInput::placeholder {
    color: rgba(220, 190, 255, 0.65) !important;
}
[data-theme="dark"] #addressInput:focus {
    box-shadow: 0 0 14px rgba(145, 122, 223, 0.55) !important;
}

[data-theme="dark"] .map-find-btn {
    background: transparent;
    border: none;
}
[data-theme="dark"] .map-find-btn:hover {
    box-shadow: 0 0 22px rgba(145, 122, 223, 0.6);
}

/* Heading stays white in dark mode */
[data-theme="dark"] .map-heading {
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
}

/* ═══════════════════════════════════════════════════════════
   SKY THEME  –  light blue & white, airy, cloud-like
   ═══════════════════════════════════════════════════════════ */

/* ── Base ───────────────────────────────────────────────────── */
[data-theme="sky"] body {
    background: linear-gradient(to bottom,
        #ffffff 0%,
        #ddf0fb 30%,
        #b8e0f7 70%,
        #93ccf0 100%);
    color: #1a3a52;
}

/* ── Nav ────────────────────────────────────────────────────── */
[data-theme="sky"] nav {
    background: linear-gradient(to bottom,
        #93ccf0 0%,
        transparent 100%);
    
}
[data-theme="sky"] .nav-link {
    background-color: rgba(255,255,255,0.85);
    color: #1e6fa8;
    box-shadow: 0 0 30px 6px rgba(100,190,255,0.35);
}
[data-theme="sky"] .nav-link:hover {
    color: #0a4f8a;
    box-shadow: 0 0 40px 10px rgba(80,170,255,0.5);
}
[data-theme="sky"] .nav-ctrl-btn { color: #1e6fa8; }
/* On the light sky background, give the active dot a darker ring so it's visible */
[data-theme="sky"] .theme-dot-active {
    border-color: #1e6fa8;
    box-shadow: 0 0 0 2px rgba(30, 111, 168, 0.35), 0 3px 10px rgba(0,0,0,0.2);
}
[data-theme="sky"] .lang-btn {
    color: #1e6fa8;
    background: rgba(255,255,255,0.6);
    border-color: rgba(100,170,230,0.4);
}
[data-theme="sky"] .lang-btn.lang-active {
    background: rgba(180,225,255,0.7);
    border-color: rgba(80,160,230,0.7);
    color: #0a4070;
}

/* ── Headings ───────────────────────────────────────────────── */
[data-theme="sky"] h1 {
    background-image: linear-gradient(to right,
        #4ab8f0 0%, #1a78c2 30%, #0a4fa0 55%, #1a78c2 70%, #4ab8f0 100%);
    -webkit-background-clip: text;
    color: transparent;
}
[data-theme="sky"] h2 { color: #1e6fa8; }
[data-theme="sky"] h3 { color: #1a3a52; }
[data-theme="sky"] h4 {
    background-image: linear-gradient(90deg, #4ab8f0, #1a78c2);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ── Info cards ─────────────────────────────────────────────── */
[data-theme="sky"] .info-card {
    background: rgba(255,255,255,0.82);
    border: 1px solid rgba(100,180,240,0.4);
    box-shadow: 0 0 22px rgba(80,170,255,0.2), 0 4px 16px rgba(0,0,0,0.07);
}
[data-theme="sky"] .card-text { color: #1e6fa8; }

/* ── Search bar ─────────────────────────────────────────────── */
[data-theme="sky"] .search-container {
    background: rgba(255,255,255,0.75);
    border: 1px solid rgba(100,180,240,0.35);
    box-shadow: 0 2px 14px rgba(80,170,255,0.15);
}
[data-theme="sky"] .search-container input { color: #1a3a52; }
[data-theme="sky"] .search-container input::placeholder { color: rgba(60,120,180,0.45); }
[data-theme="sky"] .search-container button { color: #1e6fa8; }

/* ── Scan button ────────────────────────────────────────────── */
[data-theme="sky"] .scan-item-btn {
    background: rgba(255,255,255,0.7);
    color: #1e6fa8;
    border-color: rgba(100,180,240,0.5);
}

/* ── Glass panels ───────────────────────────────────────────── */
[data-theme="sky"] .glass-panel {
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(120,190,240,0.45);
    box-shadow: 0 4px 20px rgba(80,170,255,0.12);
    color: #1a3a52;
}
[data-theme="sky"] .glass-panel.calculator {
    background:
        linear-gradient(rgba(255,255,255,0.6), rgba(220,240,255,0.4)) padding-box,
        linear-gradient(135deg, #4ab8f0, #1a78c2) border-box;
    border: 1px solid transparent;
}
[data-theme="sky"] .glass-panel.calculator h3 { color: #1a3a52; }
[data-theme="sky"] .stat-label { color: #1a3a52; }
[data-theme="sky"] .stat-value { color: #0a3060; text-shadow: none; }
[data-theme="sky"] .label-water  { color: #1a78c2; }
[data-theme="sky"] .label-energy { color: #1aaa55; }
[data-theme="sky"] .label-co2    { color: #d03020; }
[data-theme="sky"] .calc-input-group { color: #1a3a52; }
[data-theme="sky"] #calcQty {
    background: rgba(210,238,255,0.8);
    border-color: #7ab8e0;
    color: #0a3060;
}

/* ── Yes/No buttons ─────────────────────────────────────────── */
[data-theme="sky"] .detail-option-btn {
    background: rgba(255,255,255,0.55);
    color: #1a3a52;
    border: 1px solid rgba(100,180,240,0.4);
}
[data-theme="sky"] .detail-option-btn.active:nth-child(1) {
    background: #22cc66;
    border-color: #00ee77;
    box-shadow: 0 0 18px rgba(0,210,80,0.5);
    color: #002a10;
}
[data-theme="sky"] .detail-option-btn.active:nth-child(2) {
    background: #ff2244;
    border-color: #ff4466;
    box-shadow: 0 0 18px rgba(255,30,60,0.5);
    color: #fff;
}

/* ── Material cards ─────────────────────────────────────────── */
[data-theme="sky"] .possible-materials { color: #1a78c2; }
[data-theme="sky"] .material-card {
    background:rgba(255,255,255,0.75);
        
    border: 1px solid transparent;
    box-shadow: 0 2px 12px rgba(80,160,240,0.15);
}
[data-theme="sky"] .material-card:hover {
    background:
        linear-gradient(rgba(255,255,255,0.9), rgba(200,232,255,0.75)) padding-box,
        linear-gradient(135deg, #4ab8f0, #1a78c2) border-box;
    box-shadow: 0 4px 20px rgba(60,150,230,0.28);
    transform: translateY(-3px);
}
[data-theme="sky"] .mat-name   { color: #0a4fa0; }
[data-theme="sky"] .mat-label  { color: #1a6090; }
[data-theme="sky"] .mat-value  { color: #1a3a52; }
[data-theme="sky"] .mat-abbr-circle {
    background: rgba(180,224,255,0.6);
    color: #0a4fa0;
    border: 1px solid rgba(100,180,240,0.4);
}

/* ── Tips ───────────────────────────────────────────────────── */
[data-theme="sky"] .tips-heading { color: #1a78c2; text-shadow: none; }
[data-theme="sky"] .tips-panel {
    background: rgba(255,255,255,0.6);
    border: 1px solid rgba(100,180,240,0.3);
    box-shadow: 0 2px 10px rgba(80,160,240,0.1);
}
[data-theme="sky"] .tips-col {
    background: transparent;
    border: none;
    box-shadow: none;
    color: #1a3a52;
}
[data-theme="sky"] .tips-list-ol { color: #1a3a52; }
[data-theme="sky"] .tips-list-ol li { color: #1a3a52; }

/* ── Lifehack cards ─────────────────────────────────────────── */
[data-theme="sky"] .lifehack-header { color: #1a78c2; }
[data-theme="sky"] .lifehack-card {
    background:
        linear-gradient(rgba(210,238,255,0.85), rgba(190,228,252,0.7)) padding-box,
        linear-gradient(45deg, #89d4f5, #4A7CE0, #b8e6ff) border-box;
    border: 1px solid transparent;
    box-shadow: 0 2px 12px rgba(80,160,240,0.15);
    color: #0a3060;
}
[data-theme="sky"] .lifehack-card::after {
    background: linear-gradient(to bottom, transparent, rgba(190,228,252,0.95));
}
[data-theme="sky"] .idea-title  { color: #0a4fa0; }
[data-theme="sky"] .idea-needs  { color: #1a3a52; }

/* ── Filter tags ────────────────────────────────────────────── */
[data-theme="sky"] .filter-tag {
    background: rgba(255,255,255,0.75);
    color: #1a6090;
    border-color: rgba(100,180,240,0.45);
}

/* ── Map ────────────────────────────────────────────────────── */
[data-theme="sky"] .map-wrapper {
    box-shadow: -19px 18px 24px rgba(80,160,240,0.22);
}
[data-theme="sky"] .map-section::before {
    background: #4ab8f0;
    opacity: 0.35;
    filter: blur(38px);
}
[data-theme="sky"] .map-overlay {
    background: linear-gradient(to bottom,
        transparent 0%,
        rgba(140,200,245,0.82) 100%);
    height: 100px;
}
[data-theme="sky"] #addressInput {
    background:
        linear-gradient(rgba(255,255,255,0.55), rgba(255,255,255,0.55)) padding-box,
        linear-gradient(135deg, #4ab8f0, #1a78c2) border-box !important;
    border: 2px solid transparent !important;
    color: #0a3060 !important;
}
[data-theme="sky"] #addressInput::placeholder { color: rgba(30,80,150,0.5) !important; }
[data-theme="sky"] .map-find-btn {
    background: transparent;
    border: none;
    color: #0a3060;
}
[data-theme="sky"] .map-heading {
    color: #0a4fa0;
    -webkit-text-fill-color: #0a4fa0;
}

/* ── Calculator blue glow behind ───────────────────────────── */
[data-theme="sky"] .glass-panel.calculator::before {
    background: #4ab8f0;
    opacity: 0.3;
    filter: blur(32px);
}

/* ── Primary btn ────────────────────────────────────────────── */
[data-theme="sky"] .primary-btn {
    background: linear-gradient(135deg, #4ab8f0, #1a78c2);
    box-shadow: 0 4px 18px rgba(80,160,240,0.3);
}
[data-theme="sky"] .map-btn {
    background: rgba(180,224,255,0.7);
    color: #0a3060;
    border: 1px solid rgba(100,180,240,0.5);
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE  –  tablet (≤1024px) and mobile (≤768px / ≤480px)
   Desktop styles are never touched above this point.
   ═══════════════════════════════════════════════════════════ */

/* ── Tablet: start collapsing wide fixed widths ─────────────── */
@media (max-width: 1024px) {

    /* recycle page: image column shrinks */
    .recycle-img-col,
    .recycle-img-col img { width: 300px; }

    /* calculator + map tighten */
    .glass-panel.calculator { width: 320px; height: auto; }
    .map-section             { width: 360px; }
    .map-wrapper             { width: 100%; height: 300px; }

    .lifehack-card { width: 280px; }
    .lifehack-card:nth-child(2),
    .lifehack-card:nth-child(3) { margin-left: -110px; }
}

/* ── Mobile: full single-column layout ──────────────────────── */
@media (max-width: 768px) {

    /* ─ Global ─ */
    h1  { font-size: 38px; }
    h2  { font-size: 32px; }
    h3  { font-size: 36px; white-space: normal; }

    /* ─ Nav ─ */
    nav {
        flex-wrap: wrap;
        height: auto;
        padding: 12px 16px;
        gap: 10px;
    }
    .nav-link {
        width: 100px;
        height: 36px;
        font-size: 15px;
        box-shadow: 0 0 30px 6px rgba(0,255,106,0.5);
    }
    .nav-ctrl-btn { margin-left: 0; }
    .theme-switcher { gap: 5px; }
    .theme-dot { width: 20px; height: 20px; }

    /* ─ Clouds: hide on small screens (they clip badly) ─ */
    .cloud { display: none; }

    /* ─ Search row: stack vertically on small screens ─ */
    .search-row,
    .search-row.search-row-small {
        flex-direction: column;
        align-items: stretch;
        width: 92vw;
        height: auto;          /* no fixed height when stacked */
        margin: 28px auto 16px;
        gap: 8px;
    }
    .search-row.search-row-small {
        margin-top: 6px;
        margin-bottom: 12px;
    }
    .search-container,
    .search-container.small {
        width: 100%;
        height: 42px;
    }
    .search-row .scan-item-btn {
        width: 100%;
        height: 40px;
        justify-content: center;
    }

    /* ─ Filter tags ─ */
    #filterTags {
        padding: 0 12px;
    }

    /* ─ Home page cards ─ */
    .main-container {
        flex-direction: column;
        align-items: center;
        gap: 24px;
        margin-top: 60px;
    }
    .cards-container { padding: 16px 16px 80px; }
    .info-card       { width: 85vw; max-width: 320px; }

    /* ─ Recycle page master layout: stack vertically ─ */
    .recycle-layout {
        flex-direction: column;
        padding: 16px 16px 40px;
        gap: 16px;
    }
    .recycle-img-col       { width: 100%; }
    .recycle-img-col img   { width: 100%; border-radius: 16px; }
    .recycle-content-col   { width: 100%; }

    .lifehack-section { padding: 0; }
    .lifehack-header  { font-size: 42px; }
    .lifehack-card    { width: 100%; max-width: 320px; }

    /* ─ Calculator + Map: stack vertically ─ */
    .calc-map-row {
        flex-direction: column;
        gap: 24px;
    }
    .glass-panel.calculator {
        width: 100%;
        height: auto;
        min-height: unset;
    }
    .glass-panel.calculator::before { inset: -12px; }
    .map-section  { width: 100%; }
    .map-wrapper  { width: 100%; height: 260px; }
    .map-section::before {
        left: -10px; right: -10px; bottom: -10px; top: 46px;
    }

    /* ─ Item page: stack image + content ─ */
    .item-layout-wrapper {
        flex-direction: column;
        margin: 20px 16px;
        padding: 0;
        gap: 20px;
    }
    .item-left-side         { flex: unset; width: 100%; }
    .item-left-side img     { width: 100%; }
    .item-right-side        { width: 100%; }

    /* ─ Question + tips: stack vertically ─ */
    .questions-tips-row { flex-direction: column; }
    .tips-sidebar       { flex: unset; width: 100%; }

    /* ─ Detail spec (Yes/No question) ─ */
    .detail-spec-section h3 { font-size: 40px; }
    .detail-spec-section    { width: 100%; }

    /* ─ Materials grid: 1 column ─ */
    .materials-grid            { grid-template-columns: 1fr; }
    .possible-materials        { font-size: 42px; }

    /* ─ Bottom row (other pages) ─ */
    .bottom-row {
        flex-direction: column;
        align-items: center;
        padding: 0 16px 40px;
        gap: 24px;
    }

    /* ─ Scanner modal: mobile padding ─ */
    .scanner-box { width: 98vw; }
    .scanner-view { padding: 12px 14px 16px; }
    .scanner-header { padding: 14px 16px 10px; }

    /* ─ Glass panel: full width on mobile ─ */
    .glass-panel { width: 100% !important; box-sizing: border-box; }

    /* ─ h2 fixed footer: smaller on mobile ─ */
    h2 { font-size: 28px; }
}

/* ── Small phones (≤480px): extra tweaks ────────────────────── */
@media (max-width: 480px) {
    h1  { font-size: 28px; }
    nav { gap: 8px; padding: 10px 12px; }
    .nav-link { width: 84px; font-size: 13px; height: 32px; }
    .lifehack-header { font-size: 34px; }
    .detail-spec-section h3 { font-size: 32px; }
    .possible-materials     { font-size: 34px; }
    .map-wrapper            { height: 220px; }
    #addressInput           { width: 160px; font-size: 0.78rem; }
}

/* ── Clouds (more visible on sky theme) ─────────────────────── */
[data-theme="sky"] .cloud img { opacity: 60%; }


/* ══════════════════════════════════════════════════════════════
   CONTAINERS PAGE  (containers.html)
   Layout: left column = 4 clickable bin images
           right column = sticky info panel (stays put on scroll)
   Interaction: click a bin → image shakes → panel fills with info
══════════════════════════════════════════════════════════════ */

/* Intro paragraph below h1 */
.containers-intro {
    text-align: center;
    font-family: "Inter", sans-serif;
    font-size: 17px;
    font-weight: 400;
    color: #4a7aaa;
    margin: 0 auto 24px;
    max-width: 620px;
    padding: 0 16px;
}

/* ── Country dropdown ──────────────────────────────────────── */
.country-select-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin: 0 auto 36px;
    flex-wrap: wrap;
}

.country-select {
    font-family: "Inter", sans-serif;
    font-weight: 600;
    font-size: 18px;
    padding: 14px 44px 14px 24px;
    border-radius: 50px;
    border: none;
    background-color: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: #2e6898;
    box-shadow: 0 0 36px 8px rgba(0, 255, 106, 0.35);
    cursor: pointer;
    outline: none;
    transition: box-shadow 0.3s ease;
    appearance: none;
    -webkit-appearance: none;
    /* custom arrow */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%23154A73'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
}
.country-select:hover  { box-shadow: 0 0 46px 12px rgba(0, 255, 106, 0.5); }
.country-select:focus  { box-shadow: 0 0 55px 14px rgba(0, 255, 106, 0.65); }

/* Placeholder text before a country is chosen */
.containers-placeholder {
    text-align: center;
    padding: 60px 20px 120px;
    font-family: "Oswald", sans-serif;
    font-weight: 300;
    font-size: 36px;
    color: #5e7a68;
    opacity: 0.7;
}

/* ── Two-column main layout ────────────────────────────────── */
.containers-layout {
    display: flex;
    gap: 36px;
    padding: 0 48px 120px;   /* 120px bottom keeps clear of fixed h2 */
    max-width: 1300px;
    margin: 0 auto;
    box-sizing: border-box;
    align-items: center;
}

/* ── Left column – 2×2 grid of container images ───────────── */
.containers-left {
    width: 40%;
    flex-shrink: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.container-card {
    display: flex;
    justify-content: center;
    background: transparent;
    border: none;
    padding: 6px;
    cursor: pointer;
    transition: transform 0.3s ease;
    user-select: none;
}
.container-card:hover {
    transform: translateY(-6px);
}
.container-card.active .container-img {
    filter: drop-shadow(0 0 22px rgba(0, 255, 106, 0.85)) drop-shadow(0 8px 16px rgba(0,0,0,0.28));
}

.container-img-wrap {
    width: 190px;
    height: 230px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.container-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,0.28)) drop-shadow(0 2px 4px rgba(0,0,0,0.15));
    transition: filter 0.35s ease, transform 0.3s ease;
}

.container-card-label { display: none; }

/* ── Shake animation (triggered by JS adding .shaking) ──────── */
@keyframes containerShake {
    0%   { transform: translateX(0)    rotate(0deg);    }
    10%  { transform: translateX(-7px) rotate(-2deg);   }
    20%  { transform: translateX(7px)  rotate(2deg);    }
    30%  { transform: translateX(-6px) rotate(-1.5deg); }
    40%  { transform: translateX(6px)  rotate(1.5deg);  }
    50%  { transform: translateX(-4px) rotate(-1deg);   }
    60%  { transform: translateX(4px)  rotate(1deg);    }
    70%  { transform: translateX(-2px) rotate(-0.5deg); }
    80%  { transform: translateX(2px)  rotate(0.5deg);  }
    90%  { transform: translateX(-1px) rotate(0deg);    }
    100% { transform: translateX(0)    rotate(0deg);    }
}
.container-img.shaking {
    animation: containerShake 0.55s ease;
}

/* ── Right column – static info panel ──────────────────────── */
.containers-right {
    flex: 1;
    position: static;
}

/* The glass card that holds the info */
.container-info-panel {
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 28px;
    padding: 34px;
    box-shadow: 0 4px 30px rgba(0,0,0,0.09);
    border: 1.5px solid rgba(255,255,255,0.65);
    min-height: 280px;
}

/* Fade-in animation when a new container is selected */
@keyframes panelFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0);    }
}
.panel-fade-in {
    animation: panelFadeIn 0.35s ease forwards;
}

/* Empty state (before any card is clicked) */
.container-info-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 260px;
    gap: 14px;
}
.container-info-empty .hint-icon { font-size: 60px; opacity: 0.45; }
.container-info-empty p {
    font-family: "Inter", sans-serif;
    font-weight: 400;
    font-size: 18px;
    color: #6a8870;
    margin: 0;
    text-align: center;
    opacity: 0.75;
}

/* ── Info panel content ─────────────────────────────────────── */
.info-panel-header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 26px;
}
.info-panel-thumb {
    width: 72px;
    height: 86px;
    object-fit: contain;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.15));
    flex-shrink: 0;
}
.info-panel-titles { flex: 1; }

.info-panel-name {
    font-family: "Oswald", sans-serif;
    font-weight: 600;
    font-size: clamp(22px, 2.5vw, 32px);
    background-image: linear-gradient(to right, #48b87a, #2e8060, #2e6898, #3a5ab0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin: 0 0 5px;
    line-height: 1.15;
}
.info-panel-subtitle {
    font-family: "Inter", sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #6a8870;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.info-section { margin-bottom: 20px; }

.info-section-title {
    font-family: "Oswald", sans-serif;
    font-weight: 400;
    font-size: 13px;
    color: #4a7aaa;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 2px solid rgba(0, 200, 90, 0.3);
    display: flex;
    align-items: center;
    gap: 6px;
}

.info-items-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

/* Green "yes" tags */
.info-tag {
    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 20px;
    background: rgba(208, 238, 218, 0.7);
    color: #3a7060;
    border: 1px solid rgba(0, 160, 80, 0.2);
}
/* Red "no" tags */
.info-tag.no {
    background: rgba(255, 215, 215, 0.7);
    color: #a03535;
    border-color: rgba(200, 70, 70, 0.2);
}

/* Fun-facts list */
.fun-facts-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.fun-facts-list li {
    font-family: "Inter", sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: #3a6080;
    background: rgba(255,255,255,0.45);
    border-radius: 14px;
    padding: 9px 14px;
    border-left: 3px solid rgba(0, 210, 100, 0.6);
    line-height: 1.55;
}

/* ── Dark theme overrides ────────────────────────────────────── */
[data-theme="dark"] .containers-intro       { color: #70b8e8; }
[data-theme="dark"] .containers-placeholder { color: #70b8e8; }
[data-theme="dark"] .country-select {
    background-color: rgba(10, 28, 58, 0.8);
    color: #a8d8ff;
    box-shadow: 0 0 36px 8px rgba(0, 140, 255, 0.4);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%23a8d8ff'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
}
[data-theme="dark"] .container-card.active .container-img {
    filter: drop-shadow(0 0 22px rgba(50, 190, 255, 0.85));
}
[data-theme="dark"] .container-info-panel {
    background: rgba(8, 22, 48, 0.75);
    border-color: rgba(60, 140, 255, 0.2);
}
[data-theme="dark"] .info-panel-name {
    background-image: linear-gradient(to right, #50c0ff, #3090d8);
    -webkit-background-clip: text;
    background-clip: text;
}
[data-theme="dark"] .info-panel-subtitle   { color: #5a9ac8; }
[data-theme="dark"] .info-section-title    { color: #7ab0d8; border-bottom-color: rgba(0,140,255,0.35); }
[data-theme="dark"] .info-tag              { background: rgba(15,40,80,0.8); color: #8dc8f0; border-color: rgba(0,130,220,0.2); }
[data-theme="dark"] .info-tag.no           { background: rgba(60,12,12,0.8); color: #f0a0a0; border-color: rgba(220,70,70,0.2); }
[data-theme="dark"] .fun-facts-list li     { color: #8dc8f0; background: rgba(8,22,48,0.45); border-left-color: rgba(50,190,255,0.5); }
[data-theme="dark"] .container-info-empty p { color: #5a9ac8; }

/* ── Sky theme overrides ─────────────────────────────────────── */
[data-theme="sky"] .containers-intro       { color: #1e6fa8; }
[data-theme="sky"] .containers-placeholder { color: #3a6a9a; }
[data-theme="sky"] .country-select {
    background-color: rgba(255,255,255,0.78);
    color: #1e6fa8;
    box-shadow: 0 0 36px 8px rgba(80, 170, 255, 0.35);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%231e6fa8'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
}
[data-theme="sky"] .country-select:hover { box-shadow: 0 0 46px 12px rgba(80,170,255,0.5); }
[data-theme="sky"] .container-card.active .container-img {
    filter: drop-shadow(0 0 22px rgba(80, 180, 255, 0.8));
}
[data-theme="sky"] .container-info-panel {
    background: rgba(255,255,255,0.68);
    border-color: rgba(100,180,240,0.4);
}
[data-theme="sky"] .info-panel-name {
    background-image: linear-gradient(to right, #5ab8e8, #2a80c0, #1a60a0);
    -webkit-background-clip: text;
    background-clip: text;
}
[data-theme="sky"] .info-panel-subtitle   { color: #5a82aa; }
[data-theme="sky"] .info-section-title    { color: #4a80b0; border-bottom-color: rgba(80,160,240,0.35); }
[data-theme="sky"] .info-tag              { background: rgba(210,235,255,0.7); color: #2a5070; border-color: rgba(80,160,240,0.2); }
[data-theme="sky"] .info-tag.no           { background: rgba(255,220,220,0.7); color: #904040; border-color: rgba(200,70,70,0.2); }
[data-theme="sky"] .fun-facts-list li     { color: #2a4f6a; background: rgba(215,238,255,0.5); border-left-color: rgba(80,180,240,0.55); }
[data-theme="sky"] .container-info-empty p { color: #5a82aa; }

/* ── Responsive: stack columns on narrow screens ─────────────── */
@media (max-width: 820px) {
    .containers-layout {
        flex-direction: column;
        padding: 0 20px 120px;
    }
    .containers-left { width: 100%; grid-template-columns: 1fr 1fr; }
    .containers-right { width: 100%; }
}


/* ══════════════════════════════════════════════════════════════
   QUIZ  (appears after all 4 containers have been clicked)
══════════════════════════════════════════════════════════════ */

/* ── Quiz button below the image grid ────────────────────────── */
.quiz-btn-wrap {
    grid-column: 1 / -1;   /* spans both columns of the 2×2 grid */
    display: flex;
    justify-content: center;
    padding: 6px 0 0;
    animation: panelFadeIn 0.45s ease forwards;
}
.quiz-col-btn {
    font-family: "Oswald", sans-serif;
    font-weight: 500;
    font-size: 17px;
    letter-spacing: 0.5px;
    padding: 13px 36px;
    border-radius: 50px;
    border: none;
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: #2e6898;
    box-shadow: 0 0 30px 7px rgba(0, 255, 106, 0.4);
    cursor: pointer;
    transition: box-shadow 0.3s ease, transform 0.25s ease;
}
.quiz-col-btn:hover {
    box-shadow: 0 0 44px 12px rgba(0, 255, 106, 0.62);
    transform: translateY(-3px);
}

/* ── Back button inside quiz ─────────────────────────────────── */
.quiz-back-btn {
    font-family: "Inter", sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #4a7aaa;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 0 20px;
    display: block;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}
.quiz-back-btn:hover { opacity: 1; }

/* ── Quiz section wrapper ────────────────────────────────────── */
.quiz-section {
    max-width: 700px;
    margin: 12px auto 0;
    padding: 0 24px 24px;
}

/* ── Glass panel (same look as info panel) ───────────────────── */
.quiz-panel {
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 28px;
    padding: 36px 38px;
    box-shadow: 0 4px 30px rgba(0,0,0,0.09);
    border: 1.5px solid rgba(255,255,255,0.65);
}

/* ── Progress bar ────────────────────────────────────────────── */
.quiz-progress {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 26px;
}
.quiz-progress-label {
    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #4a7aaa;
    white-space: nowrap;
}
.quiz-bar-track {
    flex: 1;
    height: 5px;
    background: rgba(0,0,0,0.08);
    border-radius: 3px;
    overflow: hidden;
}
.quiz-bar-fill {
    height: 100%;
    background: linear-gradient(to right, #00c864, #00FF6A);
    border-radius: 3px;
    transition: width 0.4s ease;
}

/* ── Question text ───────────────────────────────────────────── */
.quiz-question {
    font-family: "Oswald", sans-serif;
    font-weight: 500;
    font-size: 21px;
    color: #2e6898;
    margin-bottom: 22px;
    line-height: 1.35;
}

/* ── Option buttons ──────────────────────────────────────────── */
.quiz-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 22px;
}
.quiz-opt-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    font-family: "Inter", sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #3a6080;
    background: rgba(255,255,255,0.5);
    border: 1.5px solid rgba(0,0,0,0.07);
    border-radius: 14px;
    padding: 13px 18px;
    cursor: pointer;
    text-align: left;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.quiz-opt-btn:hover:not(:disabled) {
    background: rgba(255,255,255,0.82);
    border-color: rgba(0, 200, 100, 0.3);
    transform: translateX(5px);
}
.quiz-opt-btn:disabled { cursor: default; transform: none !important; }

.quiz-opt-letter {
    font-family: "Oswald", sans-serif;
    font-weight: 600;
    font-size: 15px;
    color: #4a7aaa;
    width: 22px;
    flex-shrink: 0;
}

/* Correct / wrong states */
.quiz-opt-btn.quiz-correct {
    background: rgba(170, 240, 195, 0.85);
    border-color: rgba(0, 190, 90, 0.5);
    color: #1a5535;
}
.quiz-opt-btn.quiz-correct .quiz-opt-letter { color: #1a7040; }

.quiz-opt-btn.quiz-wrong {
    background: rgba(255, 195, 195, 0.85);
    border-color: rgba(210, 55, 55, 0.4);
    color: #7a1f1f;
}
.quiz-opt-btn.quiz-wrong .quiz-opt-letter { color: #9a2828; }

/* ── Next / See results button ───────────────────────────────── */
.quiz-next-btn {
    display: none;
    font-family: "Oswald", sans-serif;
    font-weight: 500;
    font-size: 15px;
    letter-spacing: 0.5px;
    padding: 11px 34px;
    border-radius: 50px;
    border: none;
    background: rgba(255, 255, 255, 0.6);
    color: #2e6898;
    box-shadow: 0 0 22px 5px rgba(0, 255, 106, 0.28);
    cursor: pointer;
    transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.quiz-next-btn.quiz-next-visible { display: inline-block; }
.quiz-next-btn:hover {
    box-shadow: 0 0 36px 10px rgba(0, 255, 106, 0.5);
    transform: translateY(-2px);
}

/* ── Results screen ──────────────────────────────────────────── */
.quiz-results {
    text-align: center;
    padding: 8px 0 4px;
}
.quiz-score-big {
    font-family: "Oswald", sans-serif;
    font-weight: 700;
    font-size: 80px;
    background-image: linear-gradient(to right, #48b87a, #2e6898);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1;
    margin-bottom: 6px;
}
.quiz-score-pct {
    font-family: "Inter", sans-serif;
    font-size: 14px;
    color: #4a7aaa;
    margin-bottom: 18px;
}
.quiz-score-msg {
    font-family: "Oswald", sans-serif;
    font-weight: 400;
    font-size: 22px;
    color: #2e6898;
    margin-bottom: 28px;
    line-height: 1.3;
}
.quiz-retry-btn {
    font-family: "Oswald", sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.5px;
    padding: 13px 40px;
    border-radius: 50px;
    border: none;
    background: rgba(255, 255, 255, 0.6);
    color: #2e6898;
    box-shadow: 0 0 26px 6px rgba(0, 255, 106, 0.32);
    cursor: pointer;
    transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.quiz-retry-btn:hover {
    box-shadow: 0 0 40px 12px rgba(0, 255, 106, 0.55);
    transform: translateY(-2px);
}

/* ── Dark theme ──────────────────────────────────────────────── */
[data-theme="dark"] .quiz-col-btn {
    background: rgba(8,22,48,0.8);
    color: #8dc8f0;
    box-shadow: 0 0 30px 7px rgba(0,140,255,0.4);
}
[data-theme="dark"] .quiz-back-btn { color: #7ab0d8; }
[data-theme="dark"] .quiz-panel {
    background: rgba(8,22,48,0.75);
    border-color: rgba(60,140,255,0.2);
}
[data-theme="dark"] .quiz-progress-label { color: #7ab0d8; }
[data-theme="dark"] .quiz-bar-fill { background: linear-gradient(to right, #3090c0, #60d0ff); }
[data-theme="dark"] .quiz-question { color: #8dc8f0; }
[data-theme="dark"] .quiz-opt-btn {
    background: rgba(12,30,65,0.7);
    border-color: rgba(60,130,220,0.15);
    color: #7ab8d8;
}
[data-theme="dark"] .quiz-opt-btn:hover:not(:disabled) {
    background: rgba(15,40,80,0.9);
    border-color: rgba(0,160,255,0.35);
}
[data-theme="dark"] .quiz-opt-letter { color: #7ab0d8; }
[data-theme="dark"] .quiz-opt-btn.quiz-correct { background: rgba(15,60,40,0.85); border-color: rgba(0,180,90,0.45); color: #60d0a0; }
[data-theme="dark"] .quiz-opt-btn.quiz-wrong   { background: rgba(70,12,12,0.85); border-color: rgba(210,60,60,0.4);  color: #f09090; }
[data-theme="dark"] .quiz-next-btn,
[data-theme="dark"] .quiz-retry-btn {
    background: rgba(8,22,48,0.75);
    color: #8dc8f0;
    box-shadow: 0 0 22px 5px rgba(0,140,255,0.3);
}
[data-theme="dark"] .quiz-score-big {
    background-image: linear-gradient(to right, #50c0ff, #3090d8);
    -webkit-background-clip: text; background-clip: text;
}
[data-theme="dark"] .quiz-score-pct  { color: #7ab0d8; }
[data-theme="dark"] .quiz-score-msg  { color: #8dc8f0; }

/* ── Sky theme ───────────────────────────────────────────────── */
[data-theme="sky"] .quiz-col-btn {
    background: rgba(255,255,255,0.78);
    color: #1e6fa8;
    box-shadow: 0 0 30px 7px rgba(80,170,255,0.35);
}
[data-theme="sky"] .quiz-back-btn { color: #4a80b0; }
[data-theme="sky"] .quiz-panel {
    background: rgba(255,255,255,0.68);
    border-color: rgba(100,180,240,0.4);
}
[data-theme="sky"] .quiz-progress-label { color: #4a80b0; }
[data-theme="sky"] .quiz-bar-fill { background: linear-gradient(to right, #4ab8f0, #1a78c2); }
[data-theme="sky"] .quiz-question { color: #1e6fa8; }
[data-theme="sky"] .quiz-opt-btn {
    background: rgba(255,255,255,0.65);
    border-color: rgba(100,170,230,0.18);
    color: #2a5070;
}
[data-theme="sky"] .quiz-opt-btn:hover:not(:disabled) {
    background: rgba(255,255,255,0.9);
    border-color: rgba(80,170,240,0.4);
}
[data-theme="sky"] .quiz-opt-letter { color: #4a80b0; }
[data-theme="sky"] .quiz-opt-btn.quiz-correct { background: rgba(195,240,215,0.85); border-color: rgba(0,180,90,0.4);  color: #1a5030; }
[data-theme="sky"] .quiz-opt-btn.quiz-wrong   { background: rgba(255,210,210,0.85); border-color: rgba(200,60,60,0.35); color: #7a2020; }
[data-theme="sky"] .quiz-next-btn,
[data-theme="sky"] .quiz-retry-btn {
    background: rgba(255,255,255,0.72);
    color: #1e6fa8;
    box-shadow: 0 0 22px 5px rgba(80,170,255,0.28);
}
[data-theme="sky"] .quiz-score-big {
    background-image: linear-gradient(to right, #4ab8f0, #1a78c2);
    -webkit-background-clip: text; background-clip: text;
}
[data-theme="sky"] .quiz-score-pct  { color: #4a80b0; }
[data-theme="sky"] .quiz-score-msg  { color: #1e6fa8; }

/* ── Mobile quiz tweaks ──────────────────────────────────────── */
@media (max-width: 600px) {
    .quiz-panel { padding: 24px 20px; }
    .quiz-question { font-size: 17px; }
    .quiz-score-big { font-size: 60px; }
    .quiz-trigger-btn { font-size: 17px; padding: 14px 36px; }
}