/* ========== FONTS ========== */
@font-face{
  font-family:"Futura Ceresit";
  src:url("/assets/fonts/Futura_Bold.woff") format("woff");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Futura Ceresit";
  src:url("/assets/fonts/Futura_Book_Regular.woff") format("woff");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Futura Ceresit Condensed";
  src:url("/assets/fonts/Futura_Condensed_Bold.woff") format("woff");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Futura Ceresit Condensed";
  src:url("/assets/fonts/Futura_Condensed_Regular.woff") format("woff");
  font-weight:400; font-style:normal; font-display:swap;
}

/* ========== TOKENS ========== */
:root{
  --c-black:#000; --c-white:#fff;
  --c-tiling:#0085ca; --c-waterproof:#00843d; --c-interior:#ffd700; --c-orange:#fe5000; --c-yellow:#ffd700;

  --font: "Futura Ceresit","Helvetica","Arial",system-ui,-apple-system,sans-serif;
  --font-cond: "Futura Ceresit Condensed","Helvetica","Arial",system-ui,-apple-system,sans-serif;
  --ls:-0.02em; --lh:1.5; --lh-head:1.1;

  --container:1040px; --gap:20px; --radius:0;
  --space-1:8px; --space-2:12px; --space-3:16px; --space-4:24px; --space-5:32px;
  --shadow:0 14px 40px rgba(0,0,0,.08);
  --field-h:50px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);letter-spacing:var(--ls);line-height:var(--lh);color:var(--c-black);background:var(--c-white)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{max-width:var(--container);margin-inline:auto;padding:0 16px}
.h1{font-size:clamp(28px,3.6vw,42px);line-height:var(--lh-head);margin:0}
.h2{font-size:clamp(22px,3vw,28px);line-height:var(--lh-head);margin:0}

/* ========== HEADER COBRAND ========== */
.partner-header{position:sticky;top:0;z-index:10;background:#fff}
.partner-header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 0}
.portal-header .landing-header__inner{max-width:1180px;margin-inline:auto;padding:0 16px;width:100%;min-height:64px;gap:12px}
.portal-header .brandpair{display:flex;align-items:center;gap:14px}
.portal-header .landing-header__logo{align-items:center;gap:14px; justify-content: left !important}
.portal-header .landing-header__logo-link{display:inline-flex;align-items:center}
.portal-header .landing-header__partner-logo{height:32px;width:auto}
.portal-header .landing-header__nav{gap:32px}
.badge{display:inline-block;font-size:12px;padding:4px 8px;border:1.5px solid #000;border-radius:999px}
.header-actions{display:flex;gap:10px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 18px;
  border:1.5px solid #000;background:#fff;color:#000;border-radius:var(--radius);
  font-weight:700; transition:background .15s,color .15s,transform .06s;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:#000;color:#fff}
.btn--primary:hover{filter:brightness(.96)}
.btn--ghost{background:transparent}
.btn--ghost:hover,.btn--secondary:hover{background:#000;color:#fff}

/* ========== PORTAL HOMEPAGE LAYOUT ========== */
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0;color:#000}
.lead{font-size:16px;margin:0;opacity:.92}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}

.portal-hero{padding:clamp(32px,6vw,64px) 0;margin-top:clamp(8px,3vw,20px)}
.portal-hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(20px,4vw,44px);align-items:center}
.portal-hero__content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);max-width:640px}
.portal-hero__helper{max-width:520px}
.portal-hero__image{display:flex;justify-content:center}
.portal-hero__image-card{border:1.5px solid #000;border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-3);background:#fff;max-width:480px;margin:0 auto}
@media (min-width:992px){
  .portal-hero__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
  .portal-hero__image{justify-content:flex-end}
}

.portal-dashboard{padding:clamp(32px,6vw,72px) 0;background:#f7f7f7}
.portal-dashboard__grid{display:grid;grid-template-columns:1fr;gap:clamp(16px,3vw,32px)}
@media (min-width:992px){
  .portal-dashboard__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.card{border:1.5px solid #000;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);}
.card__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.card__title{margin:0;font-size:clamp(18px,2.8vw,22px)}
.card__eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:#000;opacity:.8}
.card__body--stack{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}
.portal-dashboard__card{height:100%;border:1.5px solid #e5e5e5;box-shadow:var(--shadow);background:#fff}

.stat{font-weight:700;font-size:18px;display:flex;align-items:flex-end;gap:6px}
.stat__num{font-size:36px;line-height:1}

.campaign-meta{display:grid;gap:var(--space-2)}
.campaign-meta__item{display:flex;flex-direction:column;gap:6px}
.campaign-tags{display:flex;flex-wrap:wrap;gap:8px}
.campaign-list{list-style:none;margin:0;padding:0}
.campaign-list__item+.campaign-list__item{margin-top:.75rem}
.campaign-list__title{font-weight:600}
.campaign-list__period,.campaign-list__products{font-size:.875rem}

.portal-upload{padding:clamp(20px,5vw,48px) 0;margin-top:clamp(12px,4vw,28px)}
.portal-upload .card{max-width:760px;margin:0 auto}
@media (max-width:640px){
  .card__body--stack{flex-direction:column;align-items:flex-start}
  .portal-hero__image{justify-content:flex-start}
  .portal-hero__image-card{width:100%}
}

/* ========== AUTH 2025 ========== */
.auth-shell{display:grid;place-items:start center;padding-block:var(--space-5)}
.auth-card{
  width:min(620px,100%); background:#fff; border:1.5px solid #000; border-radius:var(--radius);
  box-shadow:var(--shadow); padding:clamp(20px,3.4vw,28px);
}
.auth-card__head{margin-bottom:var(--space-3)}
.auth-card__head .h1{margin-bottom:6px}
.auth-card__sub{opacity:.8}

.form-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.form-row-2{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
@media (min-width:768px){ .form-row-2{grid-template-columns:1fr 1fr} }

.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px}
.input{
  height:var(--field-h); padding:0 var(--space-3);
  border:1.5px solid #000; border-radius:var(--radius);
  background:#fafafa; outline:0; font:inherit; letter-spacing:var(--ls);
  transition:box-shadow .12s ease, background .12s ease;
}
.input:focus-visible{box-shadow:0 0 0 3px #000 inset; background:#fff}
.input::placeholder{color:#6b7280;opacity:.9}

.input-group{position:relative}
.input-group .toggle{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  border:1.5px solid #000; background:#fff; padding:6px 8px; font-size:12px; cursor:pointer;
}

.form-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}
.msg[aria-live]{margin-top:8px;min-height:20px;font-size:14px}

/* accent opțional pe CTA (alege o singură culoare) */
.btn--accent{ background:var(--c-orange); border-color:#000; color:#000 }
.btn--accent:hover{ filter:brightness(.96) }

/* ========== FOOTER ========== */
.footer{border-top:1px solid #000;padding:18px 0;margin-top:24px}
.footer__row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
/* user pill în header */
.user-pill{
  display:inline-flex;align-items:center;gap:8px;
  height:40px;padding:0 12px;border:1.5px solid #000;background:#fff;
  font-weight:700;border-radius:var(--radius);
}
/* ====== Portal skin — Black Topbar & Footer (Ceresit look) ====== */

/* Topbar pe negru, co-brand alb */
.partner-header{
  background:#000; color:#fff; position:sticky; top:0; z-index:1000;
  border-bottom:1px solid #111;
}
.partner-header__inner{ padding:10px 0; }
.partner-header .caption{ color:#fff; opacity:.8; }
.partner-header .badge{ border:1px solid #fff; color:#fff; background:transparent }

/* Logo-uri pe fundal negru (fallback). Dacă ai variante albe, scoate filtrul. */
.partner-header .brandpair img{ filter: invert(1) brightness(1.1); }

/* CTA în header — stil „pill” pentru contrast pe negru */
.partner-header .btn{
  height:36px; border-radius:999px; padding:0 14px; border-width:1px;
  background:transparent; color:#fff; border-color:#fff;
}
.partner-header .btn:hover{ background:#fff; color:#000; }
.partner-header .btn.btn--primary{
  background: var(--c-red); border-color: var(--c-red); color:#fff;
}
.partner-header .btn.btn--primary:hover{ filter:brightness(.95); }

/* User pill (când ești autentificat) — invers pe negru */
.user-pill{
  display:inline-flex; align-items:center; gap:8px;
  height:36px; padding:0 12px; border:1px solid #fff; color:#fff;
  border-radius:999px; background:transparent; font-weight:700;
}

/* Focus vizibil pe dark */
.partner-header a:focus-visible, .partner-header button:focus-visible{
  outline:2px solid #fff; outline-offset:2px;
}

/* ========== CAMPANII ========== */
.portal-campaign__header{margin-bottom:2rem}
.portal-campaign__meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.875rem}
.badge-status{padding:.15rem .5rem;border-radius:999px;border:1px solid #000;font-size:.75rem;text-transform:uppercase}
.campaign-products-table{width:100%;border-collapse:collapse;font-size:.875rem}
.campaign-products-table th,.campaign-products-table td{padding:.5rem .75rem;border-bottom:1px solid #eee}
.campaign-list__actions{margin-top:.25rem}
.link-more{font-size:.8rem;text-decoration:underline}

/* Footer pe negru (comun tuturor paginilor din portal) */
.footer{
  background:#000; color:#fff; border-top:1px solid #111; margin-top:32px;
}
.footer .footer__row{ padding:20px 0; }
.footer a{ color:#fff; opacity:.85; border-bottom:1px solid transparent; }
.footer a:hover{ opacity:1; border-color:#fff; }
.footer .caption{ opacity:.8; }

/* (opțional) carduri & secțiuni rămân albe; nu atingem restul UI */

/* ========== Toast notifications ========== */
.toast-stack{
  position:fixed;
  top:20px;
  right:20px;
  display:grid;
  gap:12px;
  z-index:2000;
  width:min(360px,calc(100vw - 32px));
}
.toast{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:flex-start;
  gap:12px;
  padding:14px 16px;
  border-radius:14px;
  background:#0f172a;
  color:#fff;
  box-shadow:var(--shadow);
  border-left:4px solid rgba(255,255,255,0.4);
  opacity:0;
  transform:translateY(-10px);
  transition:opacity .24s ease,transform .24s ease;
}
.toast.is-visible{opacity:1;transform:translateY(0);}
.toast.is-hiding{opacity:0;transform:translateY(-10px);}
.toast__icon{font-size:20px;line-height:1;}
.toast__body{display:flex;flex-direction:column;gap:4px;}
.toast__title{margin:0;font-weight:700;font-size:1rem;}
.toast__message{margin:0;font-size:.95rem;}
.toast__close{
  background:transparent;
  border:none;
  color:inherit;
  font-size:1.25rem;
  line-height:1;
  cursor:pointer;
  padding:0;
}
.toast--success{background:#14532d;border-left-color:#22c55e;}
.toast--error{background:#7f1d1d;border-left-color:#f87171;}
.toast--warning{background:#92400e;border-left-color:#facc15;}
.toast--info{background:#0f172a;border-left-color:#38bdf8;}
@media (max-width:640px){
  .toast-stack{
    left:50%;
    right:auto;
    transform:translateX(-50%);
    width:min(360px,calc(100vw - 32px));
  }
}

.portal-partner-about{
  margin-top:3rem;
  margin-bottom:3rem;
}

.portal-partner-about,
.portal-partner-about p,
.portal-partner-about dt,
.portal-partner-about dd{
  font-family:var(--font);
}

.portal-partner-about__header,
.portal-partner-stores__header{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-bottom:28px;
}

.portal-partner-stores{
  padding:clamp(32px,6vw,64px) 0;
  margin:clamp(16px,4vw,32px) 0;
  font-family:var(--font);
}

.portal-partner-about__inner{
  display:grid;
  gap:2rem;
}

@media (min-width:992px){
  .portal-partner-about__inner{
    grid-template-columns:minmax(0,2fr) minmax(0,1.2fr);
  }
}

.portal-partner-about__description{
  background:#fff;
  border-radius:14px;
  padding:24px;
  box-shadow:var(--shadow);
  line-height:1.6;
  color:#1f2937;
}

.portal-partner-meta{
  background:#fff;
  border-radius:8px;
  box-shadow:0 10px 30px rgba(0, 0, 0, 0.04);
  padding:1.5rem 1.75rem;
}

.portal-partner-meta__logo img{
  max-width:120px;
  height:auto;
  display:block;
  margin-bottom:1rem;
}

.portal-partner-meta__list{
  margin:0;
  padding:0;
}

.portal-partner-meta__row{
  display:flex;
  gap:0.75rem;
  margin-bottom:0.5rem;
}

.portal-partner-meta__row dt{
  min-width:80px;
  font-weight:600;
}

.portal-partner-meta__row dd{
  margin:0;
}

.portal-partner-stores__header h2{
  margin:0;
}

.portal-partner-stores__header p{
  margin:0;
  color:#4b5563;
}

.portal-partner-stores__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.5rem;
}

.portal-store-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:20px;
  box-shadow:0 10px 26px rgba(15,23,42,0.06);
  display:flex;
  flex-direction:column;
  gap:10px;
  font-family:var(--font);
}

.portal-store-card h3{
  margin:0;
  font-size:1.1rem;
  color:#0f172a;
}

.portal-store-card__city{
  margin:0;
  color:#111827;
  font-weight:600;
}

.portal-store-card__address{
  margin:0;
  color:#374151;
  line-height:1.5;
}

.portal-store-card__phone{
  margin:0;
  color:#1f2937;
  font-weight:600;
}

@media (max-width:768px){
  .portal-partner-about__inner{
    grid-template-columns:1fr;
  }
}

.campaign-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.75rem;
}

.campaign-list__item {
    padding: 0.5rem 0;
    border-top: 1px solid #e5e5e5;
}

.campaign-list__item:first-child {
    border-top: none;
}

.campaign-list__title {
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.campaign-list__badge {
    font-size: 0.7rem;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid #000;
    padding: 0.1rem 0.5rem;
}

.campaign-list__period {
    font-size: 0.85rem;
    margin-top: 0.125rem;
}

.campaign-list__actions {
    margin-top: 0.25rem;
    font-size: 0.85rem;
}

.link-underlined {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.portal-store-card__actions {
    margin-top: 0.5rem;
}

.btn--sm {
    font-size: 0.8rem;
    padding: 0.25rem 0.75rem;
}
