/* ============================================================
   LocationHub.ro — app.css
   Etapa 1: tokens + primitive + layout de baza
   Tot ce se adauga in etapele urmatoare foloseste DOAR aceste variabile.
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* fundal */
  --ink:        #0c0b09;
  --ink-2:      #14120f;
  --panel:      #1a1713;
  --panel-2:    #221e19;
  --line:       #2c2823;
  --line-2:     #3b352d;

  /* text */
  --paper:      #efe7d8;
  --muted:      #9a9082;
  --muted-2:    #6f665b;

  /* accent */
  --amber:      #e5b060;
  --amber-dim:  #b98a45;
  --amber-wash: rgba(229,176,96,.10);

  /* semantic — FUNCTIONAL, nu decorativ */
  --rec:        #d64434;
  --live:       #5aa469;
  --pending:    #d99b3c;

  /* typography */
  --font-display: "Instrument Serif", Georgia, serif;
  --font-body:    "Inter", system-ui, -apple-system, sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, monospace;

  /* spacing */
  --s1: 4px;   --s2: 8px;   --s3: 12px;  --s4: 16px;
  --s5: 24px;  --s6: 32px;  --s7: 48px;  --s8: 64px;
  --s9: 96px;  --s10: 128px;

  /* layout */
  --container: 1280px;
  --measure:   720px;
  --form:      480px;
  --radius:    2px;

  --t-fast: .18s ease;
  --t:      .28s ease;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img,svg,video{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}

:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:var(--radius)}

/* ---------- 3. GRAIN (semnatura) ---------- */
.lh-grain{
  position:fixed;inset:0;z-index:90;pointer-events:none;
  opacity:.05;mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:lh-grain 6s steps(6) infinite;
}
@keyframes lh-grain{
  0%{transform:translate(0,0)}    20%{transform:translate(-4%,3%)}
  40%{transform:translate(3%,-4%)}60%{transform:translate(-3%,2%)}
  80%{transform:translate(4%,-2%)}100%{transform:translate(0,0)}
}

/* ---------- 4. TIPOGRAFIE ---------- */
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.02;letter-spacing:-.01em}
h1{font-size:clamp(38px,6.5vw,72px)}
h2{font-size:clamp(28px,4vw,48px)}
h3{font-size:clamp(22px,2.4vw,28px)}
h1 em,h2 em{font-style:italic;color:var(--amber)}

p{max-width:var(--measure)}

.lh-mono{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-variant-numeric:tabular-nums;
}
.lh-lede{color:var(--muted);font-size:clamp(15px,1.7vw,18px);max-width:52ch}
.lh-muted{color:var(--muted-2)}

/* eyebrow — label mono deasupra unui titlu */
.lh-eyebrow{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2);
  display:block;margin-bottom:var(--s4);
}

/* ---------- 5. LAYOUT ---------- */
.lh-container{
  width:100%;max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--s5);
}
main{flex:1;position:relative;z-index:1}

.lh-section{padding-block:clamp(var(--s7),8vw,var(--s9))}
.lh-section--alt{background:var(--ink-2)}

/* crop marks — vizor. Se pune pe orice container cu position:relative */
.lh-crop{position:relative}
.lh-crop::before,.lh-crop::after,
.lh-crop > .lh-crop__b::before,.lh-crop > .lh-crop__b::after{
  content:"";position:absolute;width:18px;height:18px;
  border:1.5px solid var(--muted-2);opacity:.6;
  transition:opacity var(--t), width var(--t), height var(--t);
  pointer-events:none;
}
.lh-crop::before{top:0;left:0;border-right:0;border-bottom:0}
.lh-crop::after {top:0;right:0;border-left:0;border-bottom:0}
.lh-crop > .lh-crop__b::before{bottom:0;left:0;border-right:0;border-top:0}
.lh-crop > .lh-crop__b::after {bottom:0;right:0;border-left:0;border-top:0}

/* ---------- 6. HEADER ---------- */
.lh-header{
  position:sticky;top:0;z-index:50;
  background:rgba(12,11,9,.88);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.lh-header__inner{
  display:flex;align-items:center;gap:var(--s5);
  height:64px;
}
.lh-logo{
  font-family:var(--font-mono);font-weight:500;
  font-size:13px;letter-spacing:.16em;
  white-space:nowrap;
}
.lh-logo__accent{color:var(--amber)}

.lh-nav{
  display:flex;gap:var(--s5);margin-left:auto;
  font-size:14px;
}
.lh-nav a{color:var(--muted);transition:color var(--t-fast)}
.lh-nav a:hover,.lh-nav a[aria-current="page"]{color:var(--paper)}

.lh-header__right{display:flex;align-items:center;gap:var(--s4)}

.lh-langswitch{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;
  color:var(--muted-2);border:1px solid var(--line);
  padding:5px 8px;border-radius:var(--radius);
  transition:color var(--t-fast),border-color var(--t-fast);
}
.lh-langswitch:hover{color:var(--amber);border-color:var(--line-2)}

/* ---------- 7. BUTOANE ---------- */
.lh-btn{
  display:inline-flex;align-items:center;gap:var(--s2);
  font-family:var(--font-mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;
  padding:10px 16px;border:0;border-radius:var(--radius);
  cursor:pointer;background:none;
  transition:color var(--t-fast),background var(--t-fast),border-color var(--t-fast);
}
.lh-btn--primary{background:var(--amber);color:var(--ink);font-weight:500}
.lh-btn--primary:hover{background:var(--paper)}

.lh-btn--ghost{border:1px solid var(--line);color:var(--muted)}
.lh-btn--ghost:hover{color:var(--paper);border-color:var(--line-2)}

.lh-btn--text{padding-inline:0;color:var(--amber)}
.lh-btn--text:hover{color:var(--paper)}

.lh-btn .lh-arw{transition:transform var(--t-fast)}
.lh-btn:hover .lh-arw{transform:translateX(4px)}
.lh-btn:disabled{opacity:.5;cursor:default}
.lh-btn:disabled:hover .lh-arw{transform:none}

/* ---------- 8. FORMULARE ---------- */
.lh-form{max-width:var(--form)}
.lh-field{margin-bottom:var(--s5)}
.lh-label{
  display:block;margin-bottom:var(--s2);
  font-family:var(--font-mono);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);
}
.lh-input,.lh-select,.lh-textarea{
  width:100%;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:11px 12px;
  color:var(--paper);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.lh-input:focus,.lh-select:focus,.lh-textarea:focus{
  outline:none;border-color:var(--amber);background:var(--panel-2);
}
.lh-input::placeholder{color:var(--muted-2)}
.lh-textarea{min-height:120px;resize:vertical}
.lh-help{margin-top:6px;font-size:13px;color:var(--muted-2)}
.lh-error{margin-top:6px;font-size:13px;color:var(--rec)}

/* ---------- 9. STATUS BADGE ---------- */
.lh-status{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-mono);font-size:10.5px;
  letter-spacing:.12em;text-transform:uppercase;
  padding:4px 8px;border-radius:var(--radius);
  border:1px solid currentColor;background:transparent;
}
.lh-status::before{content:"●";font-size:8px;line-height:1}
.lh-status--live{color:var(--live)}
.lh-status--pending{color:var(--pending)}
.lh-status--rejected{color:var(--rec)}
.lh-status--draft{color:var(--muted-2)}

/* ---------- 10. FLASH ---------- */
.lh-flash{
  margin-block:var(--s5);
  padding:12px 16px;
  border-left:2px solid;
  border-radius:var(--radius);
  font-size:14px;
  background:var(--panel);
}
.lh-flash--ok  {border-color:var(--live);  color:var(--paper)}
.lh-flash--err {border-color:var(--rec);   color:var(--paper)}
.lh-flash--info{border-color:var(--amber); color:var(--paper)}

/* ---------- 11. SLATE STRIP (semnatura) ---------- */
/* banda de date tehnice: LOC-0142 / APARTAMENT / INTERBELIC / SECTOR 1 */
.lh-slate{
  display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;
  font-family:var(--font-mono);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);
}
.lh-slate__sep{color:var(--line-2)}
.lh-slate__ref{color:var(--amber)}

/* ---------- 12. FOOTER ---------- */
.lh-footer{
  border-top:1px solid var(--line);
  padding-block:var(--s6);
  position:relative;z-index:1;
}
.lh-footer__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--s4);flex-wrap:wrap;
}
.lh-footer a{color:var(--muted);transition:color var(--t-fast)}
.lh-footer a:hover{color:var(--amber)}
.lh-footer__legal{display:flex;gap:var(--s4);font-size:13px}

/* ---------- 13. UTILITARE ---------- */
.lh-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.lh-stack > * + *{margin-top:var(--s4)}

/* ---------- 14. RESPONSIVE ---------- */
@media (max-width:900px){
  .lh-nav{display:none}
}
@media (max-width:560px){
  .lh-container{padding-inline:var(--s4)}
  .lh-footer__inner{flex-direction:column;align-items:flex-start;gap:var(--s3)}
}

/* ---------- 15. REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ============================================================
   ETAPA 3 — AUTH
   ============================================================ */

.lh-auth-body{display:flex;flex-direction:column;min-height:100svh;
  background:radial-gradient(70% 60% at 50% 0%, rgba(229,176,96,.06), transparent 60%), var(--ink)}
.lh-auth{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:var(--s5);padding:var(--s6) var(--s4);position:relative;z-index:1;
}
.lh-auth__logo{
  font-family:var(--font-mono);font-weight:500;font-size:14px;letter-spacing:.18em;
}
.lh-auth__card{
  width:100%;max-width:480px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:clamp(28px,5vw,44px);
}
.lh-auth__back{color:var(--muted-2);transition:color var(--t-fast)}
.lh-auth__back:hover{color:var(--amber)}
.lh-auth__alt{
  margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line);
  color:var(--muted-2);text-align:center;
}
.lh-auth__alt a{color:var(--amber);margin-left:6px}
.lh-auth__alt a:hover{color:var(--paper)}

/* buton Google */
.lh-google{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:11px;
  background:var(--paper);color:#1a1a1a;
  border-radius:var(--radius);font-weight:500;font-size:14px;
  transition:opacity var(--t-fast);
}
.lh-google:hover{opacity:.9}

/* divider "sau" */
.lh-divider{display:flex;align-items:center;gap:var(--s3);margin:var(--s5) 0;color:var(--muted-2)}
.lh-divider::before,.lh-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.lh-divider span{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}

/* checkbox */
.lh-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13.5px;color:var(--muted)}
.lh-check input{
  appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;margin-top:1px;
  border:1px solid var(--line-2);border-radius:var(--radius);background:var(--ink-2);
  cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast);position:relative;
}
.lh-check input:checked{background:var(--amber);border-color:var(--amber)}
.lh-check input:checked::after{
  content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;
  border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg);
}
.lh-check input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

.lh-link{color:var(--muted-2);transition:color var(--t-fast)}
.lh-link:hover{color:var(--amber)}

/* alegere tip cont */
.lh-choice{display:grid;gap:var(--s3)}
.lh-choice__card{
  display:block;position:relative;
  background:var(--ink-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:var(--s5);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.lh-choice__card:hover{border-color:var(--amber);background:var(--panel-2)}
.lh-choice__tag{color:var(--muted-2);display:block;margin-bottom:var(--s2)}
.lh-choice__card h3{font-size:20px;margin-bottom:6px}
.lh-choice__card p{font-size:13.5px;color:var(--muted);max-width:none}
.lh-choice__arw{position:absolute;top:var(--s5);right:var(--s5);color:var(--amber);
  transition:transform var(--t-fast)}
.lh-choice__card:hover .lh-choice__arw{transform:translateX(4px)}

/* header: meniu user logat */
.lh-usermenu{display:flex;align-items:center;gap:var(--s3)}
.lh-usermenu__name{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.lh-logout-btn{
  background:none;border:1px solid var(--line);color:var(--muted);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 10px;border-radius:var(--radius);cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast);
}
.lh-logout-btn:hover{color:var(--paper);border-color:var(--line-2)}

@media (max-width:560px){
  .lh-choice__card p{padding-right:var(--s5)}
}

/* ============================================================
   ETAPA 4 — DASHBOARD PROPRIETAR + WIZARD
   ============================================================ */

.lh-dash-body{background:var(--ink)}
.lh-dash{padding-block:var(--s7)}

.lh-dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);
  flex-wrap:wrap;margin-bottom:var(--s7)}
.lh-dash-head h1{font-size:clamp(28px,4vw,44px)}

.lh-empty{padding:clamp(32px,6vw,64px);text-align:center;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius)}
.lh-empty .lh-lede{margin-inline:auto}

/* grid carduri locatie */
.lh-loc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s5)}
.lh-loc-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:border-color var(--t)}
.lh-loc-card:hover{border-color:var(--line-2)}
.lh-loc-card__img{display:block;position:relative;aspect-ratio:4/3;background:var(--ink-2);overflow:hidden}
.lh-loc-card__img img{width:100%;height:100%;object-fit:cover}
.lh-loc-card__noimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted-2)}
.lh-loc-card__status{position:absolute;top:10px;left:10px;background:rgba(12,11,9,.85);backdrop-filter:blur(4px)}
.lh-loc-card__body{padding:var(--s4)}
.lh-loc-card__body h3{font-size:19px;margin:6px 0 10px}
.lh-loc-card__actions{display:flex;justify-content:space-between;align-items:center;
  margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}

/* wizard */
.lh-wizard{max-width:760px;margin-inline:auto}
.lh-wizard__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s5)}
.lh-wizard__form{max-width:none;margin-top:var(--s6)}
.lh-wizard__sub{font-size:20px;margin:var(--s6) 0 var(--s4);padding-top:var(--s4);border-top:1px solid var(--line)}
.lh-wizard__sub:first-child{border-top:0;padding-top:0;margin-top:0}

/* pasi */
.lh-steps{display:flex;gap:2px;background:var(--line);border-radius:var(--radius);overflow:hidden}
.lh-step{flex:1;display:flex;flex-direction:column;gap:4px;align-items:center;padding:12px 6px;
  background:var(--panel);color:var(--muted-2);text-align:center;transition:background var(--t),color var(--t)}
.lh-step__n{font-family:var(--font-mono);font-size:12px;width:24px;height:24px;line-height:24px;
  border:1px solid currentColor;border-radius:50%}
.lh-step__t{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}
.lh-step.is-active{background:var(--panel-2);color:var(--amber)}
.lh-step.is-done{color:var(--muted)}
.lh-step.is-done .lh-step__n{background:var(--line-2);border-color:var(--line-2);color:var(--paper)}

.lh-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.lh-notice{background:var(--amber-wash);border-left:2px solid var(--amber);padding:10px 14px;
  border-radius:var(--radius);color:var(--muted);margin-bottom:var(--s5);font-size:10.5px}

.lh-checks{display:flex;flex-direction:column;gap:var(--s3);margin-block:var(--s4)}
.lh-checks--2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.lh-amgroup{margin-bottom:var(--s5)}
.lh-amgroup .lh-mono{display:block;margin-bottom:var(--s2)}

.lh-wizard__nav{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);
  margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line)}
.lh-wizard__nav-right{display:flex;gap:var(--s4);align-items:center}

/* ghid foto */
.lh-photoguide{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--s5);margin-bottom:var(--s5)}
.lh-guide-list{list-style:none;margin-top:var(--s3);display:grid;gap:6px}
.lh-guide-list li{padding-left:20px;position:relative;font-size:14px;color:var(--muted)}
.lh-guide-list li::before{content:"—";position:absolute;left:0;color:var(--amber)}

/* uploader */
.lh-dropzone{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;
  padding:var(--s7) var(--s4);border:1.5px dashed var(--line-2);border-radius:var(--radius);
  background:var(--ink-2);text-align:center;transition:border-color var(--t),background var(--t)}
.lh-dropzone:hover,.lh-dropzone.is-over{border-color:var(--amber);background:var(--panel)}
.lh-dropzone__icon{font-size:32px;color:var(--amber);line-height:1}

.lh-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--s3);margin-top:var(--s4)}
.lh-thumb{position:relative;aspect-ratio:4/3;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden}
.lh-thumb img{width:100%;height:100%;object-fit:cover}
.lh-thumb.is-cover{border-color:var(--amber)}
.lh-thumb.is-cover::after{content:"COVER";position:absolute;top:6px;left:6px;font-family:var(--font-mono);
  font-size:8px;letter-spacing:.1em;background:var(--amber);color:var(--ink);padding:2px 5px;border-radius:2px}
.lh-thumb figcaption{position:absolute;top:0;right:0;display:flex;gap:4px;padding:6px;opacity:0;transition:opacity var(--t)}
.lh-thumb:hover figcaption{opacity:1}
.lh-thumb__cover,.lh-thumb__del{width:26px;height:26px;border:0;border-radius:2px;cursor:pointer;
  background:rgba(12,11,9,.85);color:var(--paper);font-size:12px;line-height:1}
.lh-thumb__cover:hover{color:var(--amber)}
.lh-thumb__del:hover{color:var(--rec)}
.lh-thumb.is-loading,.lh-thumb.is-error{display:flex;align-items:center;justify-content:center}
.lh-thumb__spin{width:22px;height:22px;border:2px solid var(--line-2);border-top-color:var(--amber);
  border-radius:50%;animation:lh-spin .7s linear infinite}
@keyframes lh-spin{to{transform:rotate(360deg)}}
.lh-thumb__err{font-size:11px;color:var(--rec);text-align:center;padding:8px}

@media (max-width:600px){
  .lh-grid2,.lh-checks--2col{grid-template-columns:1fr}
  .lh-step__t{display:none}
  .lh-dash-head{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   ETAPA 5 — ADMIN
   ============================================================ */
.lh-admin-body{background:var(--ink)}
.lh-admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100svh}
.lh-admin-side{background:var(--ink-2);border-right:1px solid var(--line);padding:var(--s5) var(--s4);
  display:flex;flex-direction:column;gap:var(--s5);position:sticky;top:0;height:100svh}
.lh-admin-side__tag{color:var(--amber);display:block;margin-top:-8px}
.lh-admin-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.lh-admin-nav a{padding:9px 12px;border-radius:var(--radius);color:var(--muted);font-size:14px;transition:background var(--t-fast),color var(--t-fast)}
.lh-admin-nav a:hover{background:var(--panel);color:var(--paper)}
.lh-admin-nav a.is-active{background:var(--panel-2);color:var(--amber)}
.lh-admin-side__foot{display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s4);border-top:1px solid var(--line)}
.lh-admin-main{padding:var(--s6) var(--s6);max-width:1100px}
.lh-admin-main h1{font-size:clamp(26px,3.5vw,38px);margin-bottom:var(--s5)}
.lh-admin-main h2{font-size:20px;margin-bottom:var(--s3)}
.lh-admin-main h3{font-size:14px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3)}
.lh-admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s4);margin-bottom:var(--s5)}
.lh-admin-head h1{margin-bottom:0}

/* carduri overview */
.lh-admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s4);margin-bottom:var(--s7)}
.lh-admin-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s5);
  display:flex;flex-direction:column;gap:6px;transition:border-color var(--t)}
.lh-admin-card:hover{border-color:var(--line-2)}
.lh-admin-card.is-alert{border-color:var(--amber-dim)}
.lh-admin-card__n{font-family:var(--font-display);font-size:40px;line-height:1}
.lh-admin-card.is-alert .lh-admin-card__n{color:var(--amber)}
.lh-admin-card__l{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}

.lh-admin-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6);align-items:start}
.lh-admin-list{display:flex;flex-direction:column;gap:2px}
.lh-admin-row{display:flex;align-items:center;gap:var(--s3);padding:11px 12px;background:var(--panel);
  border-radius:var(--radius);transition:background var(--t-fast)}
.lh-admin-row:hover{background:var(--panel-2)}
.lh-admin-row .lh-arw{margin-left:auto;color:var(--amber)}

/* filtre chip */
.lh-admin-filters{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s5)}
.lh-chip{padding:6px 12px;border:1px solid var(--line);border-radius:var(--radius);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);transition:border-color var(--t-fast),color var(--t-fast)}
.lh-chip:hover{color:var(--paper)}
.lh-chip.is-active{border-color:var(--amber);color:var(--amber)}

/* tabel */
.lh-table{width:100%;border-collapse:collapse;font-size:14px}
.lh-table th{text-align:left;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted-2);padding:8px 12px;border-bottom:1px solid var(--line-2)}
.lh-table td{padding:11px 12px;border-bottom:1px solid var(--line)}
.lh-table tr:hover td{background:var(--panel)}

/* panel */
.lh-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s5)}
.lh-panel--action{background:var(--panel-2)}
.lh-panel--priv{border-color:var(--amber-dim);background:linear-gradient(var(--amber-wash),transparent)}

.lh-dl{display:grid;grid-template-columns:auto 1fr;gap:8px var(--s4);font-size:14px}
.lh-dl dt{color:var(--muted-2);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding-top:2px}
.lh-dl dd{color:var(--paper)}
.lh-dl--tech dt{white-space:nowrap}
.lh-priv{color:var(--amber)}

/* galerie admin */
.lh-admin-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.lh-admin-gallery__i{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line)}
.lh-admin-gallery__i.is-cover{border-color:var(--amber)}
.lh-admin-gallery__i img{width:100%;height:100%;object-fit:cover}

/* tags */
.lh-tags{display:flex;flex-wrap:wrap;gap:6px}
.lh-tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;padding:4px 9px;
  background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--muted)}

@media (max-width:900px){
  .lh-admin-shell{grid-template-columns:1fr}
  .lh-admin-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}
  .lh-admin-nav{flex-direction:row;flex-wrap:wrap}
  .lh-admin-grid2{grid-template-columns:1fr}
}

/* ============================================================
   ETAPA 6 — CAUTARE CLIENT
   ============================================================ */
.lh-dash .lh-search{padding-block:var(--s5)}
.lh-search__head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s6)}
.lh-search__head h1{font-size:clamp(26px,3.5vw,40px)}

.lh-filters{margin-bottom:var(--s5)}
.lh-filters__bar{display:flex;gap:var(--s2);flex-wrap:wrap}
.lh-filters__bar .lh-input{flex:1;min-width:200px}
.lh-filters__panel{margin-top:var(--s4);padding:var(--s5);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.lh-filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s4)}
.lh-filters__grid .lh-field{margin:0}
.lh-filters__grid .lh-label{display:block;margin-bottom:6px}
.lh-filters__checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s3);margin-top:var(--s5)}
.lh-filters__foot{display:flex;justify-content:space-between;align-items:center;margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}

.lh-map{height:420px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:var(--s5);overflow:hidden;background:var(--ink-2)}
.lh-map .leaflet-container{height:100%;background:var(--ink-2)}

.lh-search__meta{margin-bottom:var(--s4)}
.lh-search__meta .lh-mono{color:var(--muted)}

/* butonul de salvare (bookmark) pe card */
.lh-loc-card__img{position:relative}
.lh-save{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:var(--radius);
  background:rgba(12,11,9,.8);backdrop-filter:blur(4px);color:var(--paper);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:color var(--t-fast),background var(--t-fast)}
.lh-save svg{fill:none;stroke:currentColor;stroke-width:1.8}
.lh-save:hover{color:var(--amber)}
.lh-save.is-saved{color:var(--amber)}
.lh-save.is-saved svg{fill:var(--amber);stroke:var(--amber)}
.lh-loc-card__body h3 a{color:inherit}
.lh-loc-card__body h3 a:hover{color:var(--amber)}

/* paginare */
.lh-pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--s6);justify-content:center}
.lh-page{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);font-size:13px;color:var(--muted);transition:border-color var(--t-fast),color var(--t-fast)}
.lh-page:hover{color:var(--paper)}
.lh-page.is-active{border-color:var(--amber);color:var(--amber)}

/* pagina locatie */
.lh-locpage{padding-block:var(--s5)}
.lh-locpage__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s4);flex-wrap:wrap;margin:var(--s4) 0 var(--s5)}
.lh-locpage__head h1{font-size:clamp(28px,4vw,44px)}
.lh-locpage__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:var(--s6)}
.lh-locpage__photo{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line)}
.lh-locpage__photo.is-main{grid-column:span 2;grid-row:span 2}
.lh-locpage__photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--t)}
.lh-locpage__photo:hover img{transform:scale(1.03)}
.lh-locpage__body{display:grid;grid-template-columns:1fr 300px;gap:var(--s6);align-items:start}
.lh-locpage__h{font-size:22px;margin:var(--s6) 0 var(--s3);padding-top:var(--s4);border-top:1px solid var(--line)}
.lh-locpage__main .lh-lede{margin-bottom:var(--s2)}
.lh-locpage__side{position:sticky;top:84px}

@media (max-width:820px){
  .lh-locpage__body{grid-template-columns:1fr}
  .lh-locpage__side{position:static}
  .lh-locpage__photo.is-main{grid-column:span 1;grid-row:span 1}
}

/* ============================================================
   ETAPA 7 — SITE PUBLIC
   ============================================================ */
.lh-section{padding-block:clamp(48px,8vw,96px)}
.lh-section--alt{background:var(--ink-2)}
.lh-section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s6)}
.lh-section__head h2{font-size:clamp(24px,3.5vw,36px)}

/* hero */
.lh-hero{padding-block:clamp(64px,12vw,140px) clamp(48px,8vw,96px)}
.lh-hero__title{font-size:clamp(36px,6.5vw,72px);line-height:1.02;letter-spacing:-.01em;max-width:15ch;margin:var(--s4) 0}
.lh-hero__lede{font-size:clamp(17px,2.2vw,21px);color:var(--muted);max-width:56ch;line-height:1.55}
.lh-hero__cta{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}

/* pagehead (pagini interioare) */
.lh-pagehead{padding-block:clamp(56px,9vw,110px) clamp(32px,5vw,56px);border-bottom:1px solid var(--line)}
.lh-pagehead h1{font-size:clamp(32px,5.5vw,60px);line-height:1.05;letter-spacing:-.01em;max-width:18ch;margin:var(--s4) 0}
.lh-pagehead .lh-lede{font-size:clamp(16px,2vw,20px);color:var(--muted);max-width:60ch;line-height:1.55}

/* doua coloane */
.lh-twocol{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.lh-offer h2{font-size:clamp(22px,3vw,30px);margin:var(--s3) 0}
.lh-offer p{color:var(--muted);line-height:1.6;margin-bottom:var(--s4)}

/* grid vitrina publica */
.lh-pubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s4)}
.lh-pubcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color var(--t),transform var(--t)}
.lh-pubcard:hover{border-color:var(--line-2);transform:translateY(-2px)}
.lh-pubcard__img{aspect-ratio:4/3;background:var(--ink-2);overflow:hidden;position:relative}
.lh-pubcard__img img{width:100%;height:100%;object-fit:cover}
.lh-pubcard__body{padding:var(--s4)}
.lh-pubcard__body h3{font-size:18px;margin-bottom:6px}
.lh-showcase-note{font-size:13px;margin-top:var(--s5);text-align:center}
.lh-showcase-cta{text-align:center;margin-top:var(--s7);max-width:52ch;margin-inline:auto}
.lh-showcase-cta .lh-lede{margin-bottom:var(--s4)}

/* pasi 3 */
.lh-steps3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s5)}
.lh-step3{padding:var(--s5);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.lh-step3__n{font-family:var(--font-display);font-size:32px;color:var(--amber);display:block;margin-bottom:var(--s3)}
.lh-step3 h3{font-size:19px;margin-bottom:var(--s2)}
.lh-step3 p{color:var(--muted);font-size:14px;line-height:1.55}

/* servicii */
.lh-servicegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s4);margin-top:var(--s4)}
.lh-servicecard{display:block;padding:var(--s5);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--t),transform var(--t)}
.lh-servicecard:hover{border-color:var(--amber-dim);transform:translateY(-2px)}
.lh-servicecard h3{font-size:20px;margin-bottom:var(--s3)}
.lh-servicecard p{color:var(--muted);font-size:14px;line-height:1.55;margin-bottom:var(--s4)}

/* prose (continut text) */
.lh-prose{max-width:68ch}
.lh-prose h2{font-size:clamp(21px,2.6vw,28px);margin:var(--s6) 0 var(--s3)}
.lh-prose h2:first-child{margin-top:0}
.lh-prose p{color:var(--muted);line-height:1.7;margin-bottom:var(--s3)}
.lh-legal h2{font-size:19px}
.lh-legal p{font-size:15px}

/* contact */
.lh-contact{display:grid;grid-template-columns:1fr 320px;gap:clamp(24px,4vw,56px);align-items:start}
.lh-contact__side .lh-panel h3{font-size:14px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3)}

/* CTA band */
.lh-cta{padding-block:clamp(48px,8vw,88px);background:var(--ink-2);border-top:1px solid var(--line)}
.lh-cta__inner{text-align:center;max-width:48ch;margin-inline:auto}
.lh-cta h2{font-size:clamp(26px,4vw,40px);margin-bottom:var(--s3)}
.lh-cta p{color:var(--muted);margin-bottom:var(--s5)}

@media (max-width:820px){
  .lh-twocol,.lh-contact{grid-template-columns:1fr}
}

/* ============================================================
   ETAPA 8 — GHIDURI
   ============================================================ */
.lh-guidegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s4)}
.lh-guidecard{display:block;padding:var(--s5);background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);transition:border-color var(--t),transform var(--t)}
.lh-guidecard:hover{border-color:var(--amber-dim);transform:translateY(-2px)}
.lh-guidecard h2{font-size:21px;line-height:1.25;margin-bottom:var(--s3)}
.lh-guidecard p{color:var(--muted);font-size:14px;line-height:1.6;margin-bottom:var(--s4)}

/* CTA in mijlocul unui articol */
.lh-inlinecta{margin-top:var(--s7);padding:var(--s5);background:var(--panel-2);
  border-left:2px solid var(--amber);border-radius:var(--radius)}
.lh-inlinecta h3{font-size:19px;margin-bottom:var(--s2);color:var(--paper)}
.lh-inlinecta p{color:var(--muted);margin-bottom:var(--s4)}

/* ============================================================
   MENIU MOBIL
   ============================================================ */
/* link de accesibilitate: sari la continut */
.lh-skip{position:absolute;left:-9999px;top:0;z-index:100;padding:10px 16px;
  background:var(--amber);color:var(--ink);font-family:var(--font-mono);font-size:12px}
.lh-skip:focus{left:0}

/* buton hamburger — ascuns pe desktop */
.lh-burger{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:42px;height:42px;padding:0 9px;background:transparent;border:1px solid var(--line-2);
  border-radius:var(--radius);cursor:pointer;transition:border-color var(--t-fast)}
.lh-burger:hover{border-color:var(--amber-dim)}
.lh-burger span{display:block;height:1.5px;width:100%;background:var(--muted);
  transition:transform var(--t),opacity var(--t),background var(--t-fast)}
.lh-burger:hover span{background:var(--paper)}
.lh-burger[aria-expanded="true"]{border-color:var(--amber-dim)}
.lh-burger[aria-expanded="true"] span{background:var(--amber)}
.lh-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.lh-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.lh-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* panoul de meniu */
.lh-mobilemenu{display:none;border-top:1px solid var(--line);background:var(--ink-2)}
.lh-mobilemenu[hidden]{display:none}
.lh-mobilemenu nav{display:flex;flex-direction:column}
.lh-mobilemenu nav a{padding:16px var(--s5);color:var(--paper);font-size:17px;
  border-bottom:1px solid var(--line);transition:background var(--t-fast),color var(--t-fast)}
.lh-mobilemenu nav a:hover,.lh-mobilemenu nav a[aria-current="page"]{background:var(--panel);color:var(--amber)}
.lh-mobilemenu__foot{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s5)}
.lh-mobilemenu__foot .lh-btn{width:100%;justify-content:center}
.lh-mobilemenu__lang{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);text-align:center;padding-top:var(--s2)}

@media (max-width:900px){
  .lh-mobilemenu:not([hidden]){display:block}
  /* cand meniul e deschis, blocheaza scroll-ul din spate */
  body.lh-menu-open{overflow:hidden}
}

/* dashboard: pe mobil ascunde numele si logout din bara (sunt in meniu) */
@media (max-width:900px){
  .lh-header__name,.lh-header__logout{display:none}
}

/* --- mobil: arata butonul de meniu, ascunde elementele mutate in panou ---
   IMPORTANT: acest bloc trebuie sa ramana ULTIMUL din fisier, ca sa aiba
   prioritate fata de regula de baza care ascunde butonul. */
@media (max-width:900px){
  .lh-burger{display:flex}
  .lh-header__login{display:none}
  .lh-langswitch{display:none}
  .lh-header__name,.lh-header__logout{display:none}
  .lh-mobilemenu:not([hidden]){display:block}
  body.lh-menu-open{overflow:hidden}
  /* nav-ul ascuns nu mai impinge spre dreapta — o face blocul din dreapta */
  .lh-header__right{margin-left:auto}
}

/* ============================================================
   ETAPA 9 — BANNER COOKIES
   ============================================================ */
.lh-cookiebar{position:fixed;left:0;right:0;bottom:0;z-index:60;
  display:flex;align-items:center;justify-content:center;gap:var(--s4);flex-wrap:wrap;
  padding:14px var(--s5);background:rgba(18,16,13,.97);backdrop-filter:blur(8px);
  border-top:1px solid var(--line-2)}
.lh-cookiebar p{font-size:13px;color:var(--muted);margin:0;max-width:70ch;line-height:1.5}
.lh-cookiebar a{color:var(--amber);text-decoration:underline;text-underline-offset:2px}
.lh-cookiebar__ok{flex-shrink:0}
@media (max-width:600px){
  .lh-cookiebar{flex-direction:column;align-items:stretch;text-align:center;gap:var(--s3)}
  .lh-cookiebar__ok{width:100%;justify-content:center}
}

/* ============================================================
   VERIFICARE PRE-LANSARE (admin)
   ============================================================ */
.lh-pf-summary{padding:var(--s5);border-radius:var(--radius);margin-bottom:var(--s6);
  border:1px solid var(--line);background:var(--panel)}
.lh-pf-summary.is-ready{border-color:var(--amber-dim);background:linear-gradient(var(--amber-wash),transparent)}
.lh-pf-summary.is-blocked{border-color:var(--rec)}
.lh-pf-summary h2{font-size:24px;margin-bottom:var(--s2)}
.lh-pf-counts{display:flex;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s4)}
.lh-pf-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--radius);border:1px solid var(--line)}
.lh-pf-count--ok{color:var(--live,#7ea87e);border-color:currentColor}
.lh-pf-count--warn{color:var(--amber);border-color:var(--amber-dim)}
.lh-pf-count--fail{color:var(--rec);border-color:currentColor}

.lh-pf-group{margin-bottom:var(--s6)}
.lh-pf-group h2{font-size:15px;font-family:var(--font-mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin-bottom:var(--s3)}
.lh-pf-list{display:flex;flex-direction:column;gap:2px}
.lh-pf-item{display:flex;gap:var(--s3);padding:14px var(--s4);background:var(--panel);
  border-radius:var(--radius);border-left:2px solid transparent}
.lh-pf-item--ok{border-left-color:var(--line-2)}
.lh-pf-item--warn{border-left-color:var(--amber)}
.lh-pf-item--fail{border-left-color:var(--rec);background:var(--panel-2)}
.lh-pf-icon{flex-shrink:0;font-size:13px;line-height:1.6}
.lh-pf-item--ok .lh-pf-icon{color:var(--live,#7ea87e)}
.lh-pf-item--warn .lh-pf-icon{color:var(--amber)}
.lh-pf-item--fail .lh-pf-icon{color:var(--rec)}
.lh-pf-body{flex:1}
.lh-pf-title{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap}
.lh-pf-title strong{font-size:15px;color:var(--paper)}
.lh-pf-status{font-size:9.5px;letter-spacing:.1em;color:var(--muted-2)}
.lh-pf-item--fail .lh-pf-status{color:var(--rec)}
.lh-pf-detail{font-size:14px;color:var(--muted);margin:2px 0 0}
.lh-pf-todo{font-size:13px;color:var(--amber);margin:6px 0 0;line-height:1.5}

/* ============================================================
   PORTOFOLIU
   ============================================================ */
.lh-credits{display:flex;flex-direction:column;gap:2px;margin-top:var(--s4)}
.lh-credit{display:flex;gap:var(--s5);padding:var(--s4) var(--s5);background:var(--panel);
  border-radius:var(--radius);border-left:2px solid transparent;transition:background var(--t-fast)}
.lh-credit:hover{background:var(--panel-2)}
.lh-credit.is-awarded{border-left-color:var(--amber)}
.lh-credit__year{flex-shrink:0;width:52px;color:var(--muted-2);font-size:13px;padding-top:4px}
.lh-credit.is-awarded .lh-credit__year{color:var(--amber)}
.lh-credit__body{flex:1}
.lh-credit__body h3{font-size:20px;line-height:1.25;margin-bottom:4px}
.lh-credit__alt{display:block;font-family:var(--font-body);font-size:14px;
  font-style:italic;color:var(--muted-2);margin-top:2px}
.lh-credit__role{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.lh-credit__award{font-size:14px;color:var(--amber);margin-top:8px;line-height:1.45}
.lh-credit__note{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.45}
.lh-credits__note{font-size:13px;margin-top:var(--s6);max-width:70ch;line-height:1.6}

@media (max-width:600px){
  .lh-credit{flex-direction:column;gap:var(--s2);padding:var(--s4)}
  .lh-credit__year{width:auto}
}
