/* ============================================================
   cookies.css · MamaSpeak
   Banner (slide-up) + FAB + Modal granular (3 taburi).
   Stil MamaSpeak: cremă/rose/sage, Fraunces + Nunito, colțuri
   rotunjite, umbre moi, mult aer.
   z-index: banner 9000 · FAB 8500 · modal 10000
   ============================================================ */

/* Tokens fallback (dacă e încărcat fără paleta din pagină) */
:root{
  --ms-ivory:#F6F1E9; --ms-cream:#FBF7F0; --ms-rose:#D8A7A0; --ms-rose-deep:#C68B84;
  --ms-sage:#A9BBA3; --ms-sage-deep:#7E9478; --ms-taupe:#736962; --ms-text:#463E3A;
  --ms-line:#EAE0D2;
  --ms-serif:'Fraunces',Georgia,serif; --ms-sans:'Nunito',system-ui,sans-serif;
  --ms-e:cubic-bezier(.22,.61,.36,1);
  --ms-shadow:0 24px 60px -26px rgba(120,90,70,.4);
}

.ms-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* cât timp bannerul e vizibil, paginile primesc aer jos ca să nu acopere footerul */
body.has-cookie-banner{padding-bottom:180px}
@media(max-width:760px){body.has-cookie-banner{padding-bottom:300px}}

/* placeholder embed care așteaptă consimțământ (consent-loader.js) */
.ms-consent-required{background:var(--ms-ivory);border:1px dashed var(--ms-line);border-radius:18px;padding:28px;text-align:center;font-family:var(--ms-sans);color:var(--ms-taupe);font-size:14.5px}
.ms-consent-required button{margin-top:12px;font-family:var(--ms-sans);font-weight:700;font-size:13.5px;padding:10px 22px;border-radius:40px;border:none;background:var(--ms-rose-deep);color:#fff;cursor:pointer}
@media(hover:hover){.ms-consent-required button:hover{background:var(--ms-rose)}}

/* ============================================================
   1. BANNER · slide-up jos
   ============================================================ */
.ms-cookie-banner{
  position:fixed; bottom:max(20px,env(safe-area-inset-bottom,0px)); left:20px; right:20px;
  max-width:1120px; margin:0 auto;
  background:
    radial-gradient(52% 90% at 6% 0%, rgba(216,167,160,.25), transparent 70%),
    radial-gradient(46% 80% at 98% 100%, rgba(169,187,163,.18), transparent 72%),
    linear-gradient(160deg,#F7E9E2,#FBF3EC);
  border:1px solid #EFDCCE; border-radius:26px;
  box-shadow:var(--ms-shadow);
  padding:24px 32px; z-index:9000;
  font-family:var(--ms-sans); color:var(--ms-text);
  transition:transform .5s var(--ms-e), opacity .35s ease;
}
.ms-cookie-banner.hidden{transform:translateY(calc(100% + 40px));opacity:0;pointer-events:none}
/* Bannerul ascuns păstra 5 controale focusabile, între care „Acceptă toate" și „Doar necesare" –
   o utilizatoare de tastatură își putea schimba consimțământul GDPR orbește, fără să vadă nimic
   pe ecran. Ieșirea din ordinea de tabulare se face acum prin atributul `inert`, pus de
   cookie-banner.js (și, în aplicație, de managerul din js/app.js) – NU prin CSS. Motivul e
   important: o garanție de accesibilitate nu are voie să depindă de rularea unei tranziții.
   `visibility` tranziționat părea elegant, dar într-un tab în fundal sau pe un dispozitiv care
   nu compune cadre tranziția nu avansează niciodată, iar capcana de focus revenea în tăcere.
   `inert` e un atribut: e adevărat din clipa în care e pus, fără niciun cadru.

   Regula de mai jos rezolvă altceva – partea VIZUALĂ. Cât timp e deschis un dialog al aplicației
   (onboarding, poarta de limbă, orice foaie), bannerul e marcat inert, deci atingerile trec prin
   el. Dar `inert` nu-l face și invizibil: rămânea desenat peste primul ecran al aplicației,
   acoperind ~40% din el – un dreptunghi mare, inutilizabil, exact peste onboarding.
   Îl retragem vizual cât timp e inert. Nu e o închidere: nu se salvează nicio alegere, iar
   bannerul revine intact în clipa în care dialogul se închide. */
.ms-cookie-banner[inert]{transform:translateY(calc(100% + 40px));opacity:0;pointer-events:none}
.ms-cookie-inner{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center}
.ms-ck-bisc{width:56px;height:56px;flex-shrink:0;background:var(--ms-cream);border:1px solid var(--ms-line);border-radius:50%;display:grid;place-items:center;box-shadow:0 8px 20px -10px rgba(120,90,70,.35)}
.ms-ck-bisc svg{width:32px;height:32px;display:block}
.ms-cookie-text h2{font-family:var(--ms-serif);font-weight:400;font-size:21px;margin:0 0 7px;letter-spacing:-.01em}
.ms-cookie-text p{font-size:13.5px;line-height:1.6;color:var(--ms-taupe);margin:0 0 5px}
.ms-cookie-text p:last-child{margin-bottom:0}
.ms-cookie-text a{color:var(--ms-rose-deep);text-decoration:underline;text-underline-offset:2px}
@media(hover:hover){.ms-cookie-text a:hover{color:var(--ms-text)}}
.ms-cookie-buttons{display:flex;flex-direction:column;gap:9px;min-width:220px}
.ms-cookie-buttons .ms-ck-btn.outline{background:transparent;color:var(--ms-rose-deep);border:1px solid var(--ms-rose)}
@media(hover:hover){.ms-cookie-buttons .ms-ck-btn.outline:hover{background:#fff;transform:translateY(-2px)}}

.ms-ck-btn{font-family:var(--ms-sans);font-weight:700;font-size:14px;padding:13px 24px;border-radius:40px;border:1px solid transparent;cursor:pointer;transition:.28s var(--ms-e);text-align:center}
.ms-ck-btn.primary{background:var(--ms-rose-deep);color:#fff}
@media(hover:hover){.ms-ck-btn.primary:hover{background:var(--ms-rose);transform:translateY(-2px);box-shadow:0 16px 34px -18px rgba(198,139,132,.7)}}
.ms-ck-btn.ghost{background:var(--ms-cream);color:var(--ms-text);border-color:var(--ms-line)}
@media(hover:hover){.ms-ck-btn.ghost:hover{background:#fff;transform:translateY(-2px)}}
.ms-ck-btn.text{background:transparent;color:var(--ms-taupe);text-decoration:underline;text-underline-offset:2px;border:none;padding:8px}
@media(hover:hover){.ms-ck-btn.text:hover{color:var(--ms-rose-deep)}}
/* în banner: al 3-lea buton (Preferințe) e discret */
.ms-cookie-buttons [data-action="open-cookie-settings"]{background:transparent;color:var(--ms-taupe);border:none;text-decoration:underline;text-underline-offset:2px;padding:8px}
@media(hover:hover){.ms-cookie-buttons [data-action="open-cookie-settings"]:hover{color:var(--ms-rose-deep);transform:none;box-shadow:none}}

/* ============================================================
   2. FAB · buton flotant setări cookie (jos-stânga)
   ============================================================ */
.ms-cookie-fab{
  position:fixed; left:24px; bottom:max(24px,env(safe-area-inset-bottom,0px)); z-index:8500;
  width:50px; height:50px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--ms-cream);
  border:1px solid var(--ms-line); box-shadow:0 10px 26px -14px rgba(120,90,70,.4);
  cursor:pointer; transition:transform .4s var(--ms-e), background .3s ease, box-shadow .35s ease, opacity .3s ease;
}
.ms-cookie-fab svg{display:block;transition:transform .4s var(--ms-e)}
@media(hover:hover){.ms-cookie-fab:hover{
  background:#F5E9E5; transform:translateY(-3px);
  box-shadow:0 14px 30px -12px rgba(198,139,132,.55), 0 0 0 6px rgba(216,167,160,.14);
}}
@media(hover:hover){.ms-cookie-fab:hover .fab-art{transform:scale(1.06) rotate(-4deg)}}
@media(hover:hover){.ms-cookie-fab:hover .fab-heart{fill:var(--ms-rose-deep)}}
.ms-cookie-fab:focus-visible{outline:2px solid var(--ms-rose-deep);outline-offset:3px}
.ms-cookie-fab.hidden{transform:translateY(10px);opacity:0;pointer-events:none}
/* activ · panoul e deschis → cerc roz pudrat */
.ms-cookie-fab.is-open{background:var(--ms-rose);border-color:var(--ms-rose)}
/* confirmat · alegere salvată → badge verde cu ✓ (1.8s), apoi înapoi biscuit */
.ms-cookie-fab .fab-check{display:none}
.ms-cookie-fab.is-confirmed{background:var(--ms-sage);border-color:var(--ms-sage)}
.ms-cookie-fab.is-confirmed .fab-art{display:none}
.ms-cookie-fab.is-confirmed .fab-check{display:block;animation:ms-pop .45s var(--ms-e)}
@keyframes ms-pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.ms-cookie-fab,.ms-cookie-fab svg{transition:none}.ms-cookie-fab.is-confirmed .fab-check{animation:none}}

/* ============================================================
   3. MODAL · overlay + dialog
   ============================================================ */
.ms-cookie-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:48px 24px;font-family:var(--ms-sans);color:var(--ms-text);transition:opacity .25s ease}
/* Blocantul de accesibilitate de la lansare: modalul „închis" avea doar opacity:0 +
   pointer-events:none, deci cele 22 de controale ale lui rămâneau în ordinea de tabulare, într-un
   subarbore cu aria-hidden="true". O mamă care naviga cu tastatura pe mamaspeak.ro cădea într-un
   dialog invizibil: Tab o ducea în cerc (capcana de focus din cookie-modal.js), Escape era păzit
   de `.hidden` deci mort, iar cititorul de ecran nu anunța nimic. Singura ieșire era reîncărcarea.
   Ieșirea din ordinea de tabulare se face prin atributul `inert`, pus de cookie-modal.js – nu din
   CSS, și nu prin `visibility` tranziționat: vezi explicația de la banner. Aici rămâne doar fade-ul. */
.ms-cookie-modal.hidden{opacity:0;pointer-events:none}
.ms-cookie-modal.hidden .ms-ck-dialog{transform:translateY(14px) scale(.985)}
html.ms-cookie-modal-open,html.ms-cookie-modal-open body{overflow:hidden}
.ms-ck-backdrop{position:absolute;inset:0;background:rgba(52,42,36,.44);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:pointer}

.ms-ck-dialog{position:relative;width:100%;max-width:840px;max-height:min(720px,calc(100svh - 96px));display:flex;flex-direction:column;background:var(--ms-cream);border:1px solid var(--ms-line);border-radius:28px;box-shadow:0 40px 90px -30px rgba(40,30,26,.55);overflow:hidden;transform:translateY(0) scale(1);transition:transform .4s var(--ms-e),max-width .35s var(--ms-e)}
.ms-ck-dialog--adv{max-width:620px}

/* X plutitor, comun ambelor view-uri */
.ms-ck-close{position:absolute;top:16px;right:16px;z-index:5;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--ms-taupe);border:1px solid transparent;border-radius:50%;cursor:pointer;background:transparent;transition:.25s ease}
@media(hover:hover){.ms-ck-close:hover{color:var(--ms-rose-deep);border-color:var(--ms-line);background:#fff}}

/* ============ VIEW SIMPLU · două coloane (mockup) ============ */
.ms-ck-simple{display:grid;grid-template-columns:320px 1fr;min-height:430px}
.ms-ck-simple.hidden{display:none}
.ms-ck-aside{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:44px 36px;
  background:
    radial-gradient(70% 46% at 18% 8%, rgba(216,167,160,.28), transparent 70%),
    radial-gradient(60% 40% at 90% 92%, rgba(169,187,163,.20), transparent 72%),
    linear-gradient(160deg,#F7E9E2,#FBF3EC)}
.ms-ck-aside h2{font-family:var(--ms-serif);font-weight:400;font-size:27px;line-height:1.15;letter-spacing:-.01em;margin:16px 0 0;color:var(--ms-text)}
.ms-ck-aside-div{display:flex;align-items:center;gap:10px;margin:14px auto 0;width:120px;color:var(--ms-rose)}
.ms-ck-aside-div span{flex:1;height:1px;background:rgba(198,139,132,.35)}
.ms-ck-aside p{font-size:13.5px;line-height:1.65;color:var(--ms-taupe);margin:16px 0 0;max-width:30ch}
.ms-ck-aside-link{display:inline-block;margin-top:16px;font-size:12.5px;font-weight:700;color:var(--ms-rose-deep);text-decoration:underline;text-underline-offset:3px}
@media(hover:hover){.ms-ck-aside-link:hover{color:var(--ms-text)}}

.ms-ck-main{display:flex;flex-direction:column;padding:52px 36px 28px;min-width:0}
.ms-ck-rows{list-style:none;margin:0;padding:0;flex:1}
.ms-ck-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--ms-line)}
.ms-ck-row:last-child{border-bottom:none}
.ms-ck-ric{width:40px;height:40px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.ms-ck-ric svg{width:19px;height:19px}
.ms-ck-ric--strict{background:#F3E8D8;color:#A8875F}
.ms-ck-ric--functional{background:#F5E4E0;color:var(--ms-rose-deep)}
.ms-ck-ric--analytics{background:#ECEAF2;color:#8985A6}
.ms-ck-ric--marketing{background:#EFEBE6;color:var(--ms-taupe)}
.ms-ck-row-txt{flex:1;min-width:0;line-height:1.3}
.ms-ck-row-txt b{display:block;font-family:var(--ms-sans);font-weight:700;font-size:14px;color:var(--ms-text)}
.ms-ck-row-txt small{display:block;font-size:12px;color:var(--ms-taupe);margin-top:2px}
.ms-ck-toggle--locked{cursor:default;opacity:.55}
.ms-ck-toggle--locked input{cursor:default}

.ms-ck-simple-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.ms-ck-btn.outline{background:transparent;color:var(--ms-rose-deep);border:1px solid var(--ms-rose)}
@media(hover:hover){.ms-ck-btn.outline:hover{background:#fff;transform:translateY(-2px)}}

/* ============ VIEW AVANSAT ============ */
.ms-ck-advanced{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.ms-ck-advanced.hidden{display:none}
.ms-ck-head-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:18px 56px 14px 16px;border-bottom:1px solid var(--ms-line);flex-shrink:0;
  background:linear-gradient(160deg,#F7E9E2,var(--ms-cream))}
.ms-ck-head-bar h2{font-family:var(--ms-serif);font-weight:400;font-size:21px;margin:0;letter-spacing:-.01em;justify-self:center;grid-column:2}
.ms-ck-head-spacer{grid-column:3}
.ms-ck-back{grid-column:1;justify-self:start;display:inline-flex;align-items:center;gap:6px;font-family:var(--ms-sans);font-weight:700;font-size:12.5px;color:var(--ms-taupe);background:transparent;border:1px solid transparent;cursor:pointer;padding:7px 14px 7px 10px;border-radius:20px;transition:.25s ease}
@media(hover:hover){.ms-ck-back:hover{color:var(--ms-rose-deep);border-color:var(--ms-line);background:#fff}}

.ms-ck-tabs{display:flex;gap:28px;padding:0 28px;justify-content:center;border-bottom:1px solid var(--ms-line);flex-shrink:0}
.ms-ck-tab{padding:15px 0;background:transparent;border:none;font-family:var(--ms-sans);font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ms-taupe);cursor:pointer;position:relative;transition:color .25s ease}
@media(hover:hover){.ms-ck-tab:hover{color:var(--ms-rose-deep)}}
.ms-ck-tab.active{color:var(--ms-rose-deep)}
.ms-ck-tab.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ms-rose-deep);border-radius:2px}
.ms-ck-tab:focus-visible{outline:2px solid var(--ms-rose);outline-offset:4px}

.ms-ck-body{padding:24px 30px 28px;overflow-y:auto;flex:1}
/* panourile sunt <section>; anulăm stilurile globale de secțiune ale paginii
   (index.html are section{padding:120px 0}) care altfel se scurg în modal */
.ms-cookie-modal section{padding:0;margin:0;position:static;background:none;aspect-ratio:auto;min-height:0}
.ms-ck-panel.hidden{display:none}
.ms-ck-intro{font-size:13.5px;line-height:1.7;color:var(--ms-taupe);margin:0 0 22px}
.ms-ck-intro strong{color:var(--ms-text);font-weight:700}

/* categorie */
.ms-ck-cat{padding:20px 0;border-top:1px solid var(--ms-line)}
.ms-ck-cat:first-of-type{border-top:none;padding-top:0}
.ms-ck-cat-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}
.ms-ck-cat-head h3{font-family:var(--ms-serif);font-weight:400;font-size:17.5px;margin:0;line-height:1.2}
.ms-ck-cat-head h3 label{cursor:pointer}
.ms-ck-cat p{font-size:13px;line-height:1.65;color:var(--ms-taupe);margin:0}
.ms-ck-cat p strong{color:var(--ms-text);font-weight:700}
.ms-ck-cat--off h3{color:var(--ms-taupe)}

.ms-ck-pill{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:5px 12px;border-radius:20px;border:1px solid var(--ms-sage-deep);color:var(--ms-sage-deep);white-space:nowrap;flex-shrink:0}
.ms-ck-pill--off{border-color:var(--ms-line);color:var(--ms-taupe)}

/* toggle */
.ms-ck-toggle{position:relative;display:inline-block;width:46px;height:26px;cursor:pointer;flex-shrink:0}
.ms-ck-toggle input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.ms-ck-toggle-track{display:block;width:100%;height:100%;background:#fff;border:1px solid var(--ms-line);border-radius:20px;position:relative;transition:border-color .25s ease,background .25s ease}
.ms-ck-toggle-track::before{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--ms-taupe);transition:transform .25s var(--ms-e),background .25s ease,box-shadow .25s ease}
.ms-ck-toggle input:checked ~ .ms-ck-toggle-track{border-color:var(--ms-rose-deep);background:#F3E4E0}
/* bifat → bumb alb cu inimioară rose */
.ms-ck-toggle input:checked ~ .ms-ck-toggle-track::before{
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 20C2 13 4 5 9 7 11 8 12 9.4 12 9.4 12 9.4 13 8 15 7 20 5 22 13 12 20Z' fill='%23C68B84'/%3E%3C/svg%3E") center/11px 10px no-repeat;
  transform:translateX(20px);box-shadow:0 2px 6px -2px rgba(198,139,132,.55);
}
.ms-ck-toggle input:focus-visible ~ .ms-ck-toggle-track{outline:2px solid var(--ms-rose);outline-offset:2px}

/* detalii */
.ms-ck-detail{padding:20px 0;border-top:1px solid var(--ms-line)}
.ms-ck-detail:first-of-type{border-top:none;padding-top:0}
.ms-ck-detail-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}
.ms-ck-detail-head h3{font-family:var(--ms-serif);font-weight:400;font-size:17.5px;margin:0;display:inline-flex;align-items:center;gap:10px;line-height:1.2}
.ms-ck-count{font-size:11px;font-weight:700;color:var(--ms-rose-deep);padding:2px 9px;border:1px solid var(--ms-line);border-radius:20px}
.ms-ck-detail-desc{font-size:13px;line-height:1.65;color:var(--ms-taupe);margin:0 0 14px}
.ms-ck-placeholder{font-size:14px;line-height:1.6;color:var(--ms-taupe);margin:0;padding:16px 18px;background:var(--ms-ivory);border-left:3px solid var(--ms-rose);border-radius:0 14px 14px 0}

.ms-ck-table-wrap{overflow-x:auto;border:1px solid var(--ms-line);border-radius:16px}
.ms-ck-table{width:100%;border-collapse:collapse;font-size:13px}
.ms-ck-table thead th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ms-taupe);padding:12px 14px;border-bottom:1px solid var(--ms-line);white-space:nowrap;background:var(--ms-ivory)}
.ms-ck-table tbody td{padding:12px 14px;border-top:1px solid var(--ms-line);color:var(--ms-text);vertical-align:top;line-height:1.55}
.ms-ck-table tbody tr:first-child td{border-top:none}
.ms-ck-table code{font-family:'SF Mono',Menlo,Consolas,monospace;font-size:12px;color:var(--ms-rose-deep);background:var(--ms-ivory);padding:1px 6px;border-radius:6px;word-break:break-all}

/* despre */
.ms-ck-about{padding:18px 0;border-top:1px solid var(--ms-line)}
.ms-ck-about:first-of-type{border-top:none;padding-top:0}
.ms-ck-about h3{font-family:var(--ms-serif);font-weight:400;font-size:17px;margin:0 0 8px}
.ms-ck-about p{font-size:13.5px;line-height:1.7;color:var(--ms-taupe);margin:0 0 9px}
.ms-ck-about p:last-child{margin-bottom:0}
.ms-ck-about a{color:var(--ms-rose-deep);text-decoration:underline;text-underline-offset:2px}
.ms-ck-list{list-style:none;padding:0;margin:0 0 9px}
.ms-ck-list li{font-size:13.5px;line-height:1.7;color:var(--ms-taupe);padding-left:20px;position:relative;margin-bottom:5px}
.ms-ck-list li::before{content:'–';position:absolute;left:0;top:0;color:var(--ms-rose)}
.ms-ck-about-links a{display:inline-block;font-weight:700;font-size:13px;letter-spacing:.02em;padding-bottom:3px;border-bottom:1px solid var(--ms-rose-deep);text-decoration:none;line-height:2}

/* footer */
.ms-ck-foot{padding:16px 28px 22px;background:var(--ms-cream);border-top:1px solid var(--ms-line);flex-shrink:0}
.ms-ck-legal{font-size:12px;color:var(--ms-taupe);margin:0 0 12px;text-align:center}
.ms-ck-legal a{color:var(--ms-rose-deep);text-decoration:underline;text-underline-offset:2px}
.ms-ck-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ms-ck-actions .ms-ck-btn{padding:12px 14px;font-size:13px}
.ms-ck-actions [data-action="save-preferences"]{grid-column:1 / -1}
.ms-ck-actions .ms-ck-btn.ghost{border-color:var(--ms-line)}

/* ============================================================
   4. RESPONSIVE
   ============================================================ */
@media(max-width:760px){
  .ms-cookie-inner{grid-template-columns:1fr;gap:16px}
  .ms-ck-bisc{display:none}
  .ms-cookie-buttons{min-width:0;gap:8px}
  .ms-cookie-banner{
    left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom,0px));
    padding:20px;
    max-height:calc(100svh - 28px);overflow-y:auto;overscroll-behavior:contain;
  }
  .ms-cookie-text h2{font-size:19px;margin-bottom:6px}
  .ms-cookie-text p{font-size:13px;line-height:1.55;overflow-wrap:break-word}
}
@media(max-width:700px){
  .ms-cookie-modal{padding:0}
  .ms-ck-dialog{max-width:100%;max-height:100svh;border:none;border-radius:0}
  .ms-ck-simple{grid-template-columns:1fr;min-height:0;overflow-y:auto}
  .ms-ck-aside{padding:44px 28px 26px}
  .ms-ck-aside h2{font-size:24px}
  .ms-ck-main{padding:20px 22px 24px}
  .ms-ck-simple-actions{flex-direction:column}
  .ms-ck-simple-actions .ms-ck-btn{width:100%}
  .ms-ck-tabs{padding:0 22px;overflow-x:auto}
  .ms-ck-body{padding:22px}
  .ms-ck-foot{padding:16px 22px 22px}
  .ms-ck-actions{grid-template-columns:1fr}
  /* tabel · rânduri stivuite pe telefon */
  .ms-ck-table thead{display:none}
  .ms-ck-table tbody tr{display:block;padding:14px 12px;border-top:1px solid var(--ms-line)}
  .ms-ck-table tbody tr:first-child{border-top:none}
  .ms-ck-table tbody td{display:block;border:none;padding:4px 0}
  .ms-ck-table tbody td::before{content:attr(data-label) '  ';font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ms-taupe);display:block;margin-bottom:2px}
}
@media(prefers-reduced-motion:reduce){
  .ms-cookie-banner,.ms-cookie-fab,.ms-ck-dialog{transition:none}
}

/* ============================================================
   5. MOD DE NOAPTE · doar în aplicație (body.night / body.deepnight)
   Doar app.html pune aceste clase; pe landing, paginile legale și 404
   regulile de mai jos sunt inerte. Oglindim paleta caldă de noapte a
   aplicației, ca bannerul, FAB-ul și modalul să nu mai rămână albe când
   mama trece pe modul de noapte – calmul contează mai ales la 3 a.m.
   ============================================================ */
body.night{
  --ms-ivory:#1E1A18; --ms-cream:#292320; --ms-text:#F3EBE4;
  --ms-taupe:#A0958C; --ms-line:#342B26;
  --ms-shadow:0 26px 64px -28px rgba(0,0,0,.66);
  /* rose & sage rămân accente calde – funcționează pe întuneric */
}
body.deepnight{ --ms-ivory:#191412; --ms-cream:#231D1A; } /* momentul de la 3 a.m. – un pic mai adânc */

/* banner: fundalul luminos hardcodat → cald-întunecat, cu aceleași sclipiri moi */
body.night .ms-cookie-banner{
  background:
    radial-gradient(52% 90% at 6% 0%, rgba(216,167,160,.14), transparent 70%),
    radial-gradient(46% 80% at 98% 100%, rgba(169,187,163,.10), transparent 72%),
    linear-gradient(160deg,#2A2320,#211C1A);
  border-color:var(--ms-line);
}

@media(hover:hover){/* butoane: hover-urile pe alb → nuanțe întunecate */
body.night .ms-ck-btn.ghost:hover,
body.night .ms-ck-btn.outline:hover,
body.night .ms-cookie-buttons .ms-ck-btn.outline:hover{background:#332B27}}

@media(hover:hover){/* FAB: fundalul cald-întunecat; biscuitul caramel rămâne lizibil pe el.
   Stările „activ" (rose) și „confirmat" (sage) sunt accente – rămân neschimbate. */
body.night .ms-cookie-fab:hover{background:#332B28}}

/* modal: backdrop mai adânc, gradientele laterale → întuneric */
body.night .ms-ck-backdrop{background:rgba(0,0,0,.62)}
body.night .ms-ck-aside{
  background:
    radial-gradient(70% 46% at 18% 8%, rgba(216,167,160,.16), transparent 70%),
    radial-gradient(60% 40% at 90% 92%, rgba(169,187,163,.12), transparent 72%),
    linear-gradient(160deg,#2A2320,#211C1A);
}
body.night .ms-ck-head-bar{background:linear-gradient(160deg,#2A2320,var(--ms-cream))}
@media(hover:hover){body.night .ms-ck-close:hover,
body.night .ms-ck-back:hover{background:#332B27}}

/* comutatoare: pista albă → întunecată; bumbul alb cu inimioară rămâne alb (contrast bun) */
body.night .ms-ck-toggle-track{background:#181413;border-color:var(--ms-line)}
body.night .ms-ck-toggle input:checked ~ .ms-ck-toggle-track{background:#3A2B28;border-color:var(--ms-rose-deep)}

/* chips-urile de categorie: fundaluri calde-întunecate, iconuri lizibile */
body.night .ms-ck-ric--strict{background:#332B22;color:#C9A87B}
body.night .ms-ck-ric--functional{background:#372B28;color:var(--ms-rose-deep)}
body.night .ms-ck-ric--analytics{background:#2C2A31;color:#A9A3C4}
body.night .ms-ck-ric--marketing{background:#332B26;color:var(--ms-taupe)}
