/* ============================================================
   PORTAL FIRMA - stil general (inspirat din modelul furnizat)
   ============================================================ */
:root{
  --brand:#ea580c;          /* portocaliu Alka */
  --brand-2:#f97316;
  --bg:#f3f4f6;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#e5e7eb;
  --radius:14px;
  --shadow:0 1px 3px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg); color:var(--text); font-size:15px; line-height:1.5;
}
a{color:var(--brand-2);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- Top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:18px;
  background:#fff; border-bottom:1px solid var(--line);
  padding:0 22px; height:60px;
}
.menu-btn{
  display:flex; align-items:center; gap:8px; cursor:pointer;
  background:none; border:none; font-size:14px; color:var(--text);
  padding:8px 6px; border-radius:8px;
}
.menu-btn:hover{background:var(--bg)}
.menu-btn .bars{font-size:18px;line-height:1}
.brand{font-weight:800; letter-spacing:1px; color:var(--brand); font-size:20px}
.topbar .search{
  flex:1; max-width:620px; margin:0 auto;
  display:flex; align-items:center; gap:10px;
  background:var(--bg); border:1px solid var(--line);
  border-radius:24px; padding:9px 18px; color:var(--muted);
}
.topbar .search input{
  border:none;background:none;outline:none;flex:1;font-size:14px;color:var(--text);
}
.topbar .icons{display:flex; align-items:center; gap:16px; color:var(--muted)}
.topbar .icons .badge{position:relative; text-decoration:none; color:inherit; cursor:pointer; font-size:18px}
.topbar .icons .badge:hover{text-decoration:none}
.topbar .icons .badge b{
  position:absolute; top:-8px; right:-8px; background:#dc2626; color:#fff;
  font-size:11px; min-width:17px; height:17px; border-radius:9px;
  display:flex; align-items:center; justify-content:center; padding:0 4px;
}
.topbar .avatar{
  width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;
  cursor:pointer;transition:filter .15s,box-shadow .15s;
}
.topbar a.avatar:hover{filter:brightness(1.08);box-shadow:0 0 0 3px rgba(234,88,12,.25)}

/* ---------- Hero banner ----------
   Latime completa, inaltime plafonata, imaginea centrata si decupata
   simetric in functie de rezolutie (logo mereu vizibil). */
.hero{ width:100%; line-height:0; background:#f97316; }
.hero img{
  width:100%;
  height:clamp(150px, 18vw, 300px);
  object-fit:cover;
  object-position:center;
  display:block;
}
/* varianta cu gradient (pagini departament) */
.hero.grad{ height:150px; }

/* ---------- Layout continut ---------- */
.wrap{max-width:1200px; margin:24px auto 40px; padding:0 24px; position:relative; z-index:5}
.page-head{display:flex; justify-content:space-between; align-items:flex-end; margin:0 4px 18px}
.page-head h1{color:var(--text); font-size:28px; margin:0}
.page-head .date{color:var(--muted); font-style:italic; font-size:14px}

.chips{display:flex; flex-wrap:wrap; gap:10px; margin:0 4px 22px}
.chip{
  background:#fff; border:1px solid var(--line); border-radius:20px;
  padding:8px 16px; font-size:13px; color:var(--text); box-shadow:var(--shadow);
}
.chip:hover{border-color:var(--brand-2); text-decoration:none}
.chip-on{background:var(--brand);color:#fff;border-color:var(--brand)}
.chip-on:hover{color:#fff;border-color:var(--brand)}

.grid{display:grid; grid-template-columns:1.6fr 1fr; gap:22px; align-items:start}
@media(max-width:900px){.grid{grid-template-columns:1fr}}

.card{
  background:var(--card); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:22px 24px; margin-bottom:22px;
}
.card h2{font-size:16px; margin:0 0 16px; display:flex; align-items:center; justify-content:space-between}
.card h2 .dots{color:var(--muted); letter-spacing:2px}

/* lista task-uri / actiuni */
.task{display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--line)}
.task:last-child{border-bottom:none}
.task .ic{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--brand-2),var(--brand));color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:18px;
}
.task .t{font-weight:600}
.task .m{color:var(--muted); font-size:13px; margin-top:2px}
.empty{color:var(--muted); font-size:14px; padding:14px 0}
.stat-ic{width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:18px;font-weight:800;flex-shrink:0}
.stat-ok{background:#16a34a}
.stat-no{background:#dc2626}
.stat-todo{background:#f59e0b}
.pill-todo{background:#f59e0b;color:#fff}

/* anunt */
.ann{display:flex; gap:14px; align-items:flex-start}
.ann .thumb{
  width:72px;height:72px;border-radius:12px;flex-shrink:0;object-fit:cover;
  display:flex;align-items:center;justify-content:center;color:#fff;
  background:linear-gradient(135deg,var(--brand-2),var(--brand));
}
.ann img.thumb{background:none}
.icon-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.icon-picker input{position:absolute;opacity:0;width:0;height:0}
.icon-picker .ip-opt{display:flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:10px;border:2px solid var(--line);background:#fff;color:#64748b;cursor:pointer;transition:all .12s}
.icon-picker .ip-opt:hover{border-color:var(--brand)}
.icon-picker input:checked + .ip-opt{border-color:var(--brand);background:var(--brand);color:#fff}
.ann .t{font-weight:600; margin-bottom:4px}
.ann .b{color:var(--muted); font-size:13px}

/* grid sectiuni / departamente (Top Apps) */
.apps{display:flex; flex-direction:column; gap:6px}
.app{
  display:flex; align-items:center; gap:14px; padding:12px 10px; border-radius:10px;
}
.app:hover{background:var(--bg); text-decoration:none}
.app .fi{color:#9ca3af; flex-shrink:0}
.app:hover .fi{color:var(--brand)}
.app .chev{margin-left:auto; color:#cbd5e1; flex-shrink:0}
.app .t{font-weight:600;color:var(--text)}
.app .d{color:var(--muted);font-size:12px}

/* ---------- Meniu lateral glisant ---------- */
.drawer-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.4);
  opacity:0; visibility:hidden; transition:.2s; z-index:50;
}
.drawer-overlay.open{opacity:1; visibility:visible}
.drawer{
  position:fixed; top:0; left:0; height:100%; width:300px; background:#fff;
  transform:translateX(-100%); transition:transform .25s ease; z-index:60;
  box-shadow:2px 0 20px rgba(0,0,0,.15); display:flex; flex-direction:column;
}
.drawer.open{transform:translateX(0)}
.drawer .d-head{
  background:#fff; color:var(--brand); padding:18px 20px; display:flex;
  align-items:center; justify-content:space-between; border-bottom:1px solid var(--line);
}
.drawer .d-head b{font-size:18px; letter-spacing:1px}
.drawer .d-close{background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;line-height:1}
.drawer .d-list{padding:6px 0; overflow:auto}
.drawer .d-item{
  display:flex; align-items:center; gap:12px; padding:11px 18px;
  color:#374151; font-size:14px;
}
.drawer .d-item:hover{background:var(--bg); text-decoration:none}
.drawer .d-item .fi{color:#9ca3af; display:flex; flex-shrink:0}
.drawer .d-item .chev{margin-left:auto; color:#cbd5e1; display:flex}
.drawer .d-item.active{color:var(--brand); font-weight:600; box-shadow:inset 3px 0 0 var(--brand)}
.drawer .d-item.active .fi{color:var(--brand)}
.drawer .d-sep{padding:14px 18px 6px; color:var(--muted); font-size:11px;
  text-transform:uppercase; letter-spacing:1px; font-weight:700}

/* Submeniu departament (categorii de documente) */
.drawer .d-group>summary{list-style:none; cursor:pointer}
.drawer .d-group>summary::-webkit-details-marker{display:none}
.drawer .d-group>summary .chev{margin-left:auto; color:#cbd5e1; display:flex; transition:transform .15s}
.drawer .d-group[open]>summary .chev{transform:rotate(90deg)}
.drawer .d-sub{display:flex; flex-direction:column; padding:2px 0 6px}
.drawer .d-subitem{padding:8px 18px 8px 46px; color:#6b7280; font-size:13px}
.drawer .d-subitem:hover{background:var(--bg); text-decoration:none; color:var(--brand)}
.drawer .d-subitem.active{color:var(--brand); font-weight:600}
.drawer .d-sub-lbl{padding:6px 18px 2px 34px; font-size:10px; letter-spacing:.5px; text-transform:uppercase; color:#b7936f}
.drawer .d-group2{border:none; margin:2px 0}
.drawer .d-group2 > summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:6px; padding:7px 18px 3px 34px; font-size:10px; letter-spacing:.5px; text-transform:uppercase; color:#b7936f}
.drawer .d-group2 > summary::-webkit-details-marker{display:none}
.drawer .d-group2 > summary .chev{width:12px; height:12px; color:#c9b9a8; transition:transform .15s}
.drawer .d-group2[open] > summary .chev{transform:rotate(90deg)}
.drawer .d-subitem.ic{display:flex; align-items:center; gap:9px; padding-left:34px}
.drawer .d-subitem.ic svg{width:16px; height:16px; flex:none}
.pdf-mobile-note{display:none}
@media (max-width:768px){ .pdf-embed{display:none} .pdf-mobile-note{display:block} }
.ob-wrap{max-width:960px; margin-top:28px}
.ob-wrap .page-head h1{font-size:22px}
.ob-wrap .card{padding:16px 18px}

/* Casete statistici (jurnal activitate) */
.stat-box{flex:1;min-width:120px;background:var(--bg);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.stat-box b{font-size:22px;color:var(--brand);line-height:1}
.stat-box span{font-size:12px;color:var(--muted)}

/* Bara informativa cookie-uri */
.cookiebar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:#0f172a;color:#e5e7eb;padding:12px 18px;
  align-items:center;gap:16px;box-shadow:0 -4px 20px rgba(0,0,0,.18);font-size:13px}
.cookiebar.show{display:flex}
.cookiebar .cb-text{flex:1;line-height:1.5}
.cookiebar .cb-text a{color:#fdba74;text-decoration:underline}
.cookiebar .cb-ok{flex-shrink:0;background:var(--brand);color:#fff;border:none;
  padding:9px 18px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}
.cookiebar .cb-ok:hover{filter:brightness(1.05)}
@media(max-width:560px){.cookiebar{flex-direction:column;align-items:stretch;text-align:center}}

/* Rand document (eticheta tip fisier) */
.doc-ext{min-width:48px; height:40px; display:flex; align-items:center; justify-content:center;
  background:var(--bg); border:1px solid var(--line); color:var(--brand);
  font-size:11px; font-weight:700; border-radius:6px; flex-shrink:0}

/* ---------- Tabele admin ---------- */
.flash{padding:12px 16px;border-radius:10px;margin-bottom:18px;font-size:14px}
.flash-ok{background:#dcfce7;color:#166534}
.flash-err{background:#fee2e2;color:#b91c1c}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;padding:9px 8px;color:var(--muted);font-size:11.5px;
  text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid var(--line);white-space:nowrap}
.tbl td{padding:8px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:hover td{background:#fafafa}
.tbl select{padding:5px 6px;border:1px solid var(--line);border-radius:7px;font-size:12.5px;background:#fff;max-width:150px}
.inl{display:inline-block;margin:0}
.loc-form{display:flex;flex-direction:row;gap:8px;align-items:center}
.loc-code{min-width:30px;text-align:center;padding:3px 8px;letter-spacing:.3px}
.u-email{color:var(--muted);font-size:12px;margin-top:2px;max-width:220px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acts{display:flex;gap:5px;flex-wrap:wrap;min-width:120px}
.acts button{padding:5px 9px;border:none;border-radius:7px;font-size:12px;cursor:pointer;font-weight:600;white-space:nowrap}

/* Meniu de actiuni „⋯" */
.menu{position:relative;display:inline-block}
.menu-btn2{background:var(--bg);border:1px solid var(--line);border-radius:8px;
  padding:3px 12px;font-size:18px;line-height:1.1;color:var(--text);cursor:pointer;font-weight:700}
.menu-btn2:hover{background:#f1f5f9}
.menu-pop{position:fixed;z-index:60;display:none;flex-direction:column;gap:6px;
  min-width:180px;background:#fff;border:1px solid var(--line);border-radius:10px;
  box-shadow:0 10px 30px rgba(15,23,42,.16);padding:8px}
.menu.open .menu-pop{display:flex}
.menu-pop form{display:block;width:100%}
.menu-pop a,
.menu-pop button{width:100%;display:block;box-sizing:border-box;text-align:left;
  padding:8px 10px;border:none;border-radius:7px;font-size:13px;cursor:pointer;
  font-weight:600;text-decoration:none;line-height:1.3}
.menu-pop a.btn-plain{border:1px solid var(--line)!important;background:#fff;color:var(--text)}
.menu-pop a.btn-plain:hover{background:var(--bg)}
.menu-pop select{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff}
.menu-pop .mi-label{font-size:11px;color:var(--muted);padding:2px 4px 0;text-transform:uppercase;letter-spacing:.4px}
.btn-ok{background:#16a34a;color:#fff}
.btn-warn{background:#f59e0b;color:#fff}
.btn-danger{background:#dc2626;color:#fff}
.btn-plain{background:var(--bg);color:var(--text);border:1px solid var(--line)!important}
.you{color:var(--muted);font-size:12px;font-weight:400}
.pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}
.st-active{background:#dcfce7;color:#166534}
.st-pending{background:#fef9c3;color:#854d0e}
.st-disabled{background:#f3f4f6;color:#6b7280}
.loc-form{display:flex;align-items:center;gap:6px}

/* ---------- Modul teste ---------- */
.btn-cta{display:inline-block;background:var(--brand);color:#fff;padding:11px 22px;
  font-weight:600;border:none;cursor:pointer;font-size:15px;margin-right:8px}
.btn-cta:hover{background:var(--brand-2);text-decoration:none;color:#fff}
.noselect{user-select:none;-webkit-user-select:none}
.qcard .qtext{font-weight:600;font-size:15px;margin-bottom:12px}
.qcard .qnum{color:var(--brand)}
.opt{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);
  margin-bottom:8px;cursor:pointer}
.opt:hover{background:var(--bg)}
.opt input{margin-top:3px}
.result-badge{display:inline-block;padding:8px 26px;font-weight:800;font-size:18px;color:#fff}
.result-badge.ok{background:#16a34a}
.result-badge.no{background:#dc2626}
.wrong-list li{margin-bottom:8px;line-height:1.5}

/* ---------- Colțuri drepte: toate butoanele și badge-urile ---------- */
button, .pill, .chip,
.btn-ok, .btn-warn, .btn-danger, .btn-plain {
  border-radius: 0 !important;
}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  position:relative; background:linear-gradient(120deg,var(--brand),var(--brand-2))}
.auth-footer{position:absolute; bottom:14px; left:0; right:0; text-align:center;
  color:rgba(255,255,255,.9); font-size:13px}

/* Inima care bate (footer) */
@keyframes heartbeat{0%{transform:scale(1)}14%{transform:scale(1.3)}28%{transform:scale(1)}42%{transform:scale(1.3)}70%{transform:scale(1)}}
.footer-heart{display:inline-block; animation:heartbeat 1.5s ease-in-out infinite; transform-origin:center}
.login-box{background:#fff; padding:38px 34px; border-radius:16px; width:360px;
  box-shadow:0 20px 50px rgba(0,0,0,.3)}
.login-box .brand{display:block; text-align:center; font-size:26px; margin-bottom:6px}
.login-box p.sub{text-align:center; color:var(--muted); margin:0 0 22px; font-size:14px}
.login-box label{display:block; font-size:13px; font-weight:600; margin:14px 0 6px}
.login-box input,.login-box select{width:100%; padding:11px 14px; border:1px solid var(--line);
  border-radius:9px; font-size:14px; outline:none; background:#fff}
.login-box input:focus,.login-box select:focus{border-color:var(--brand-2)}
.login-box button{width:100%; margin-top:22px; padding:12px; background:var(--brand);
  color:#fff; border:none; border-radius:9px; font-size:15px; font-weight:600; cursor:pointer}
.login-box button:hover{background:var(--brand-2)}
.login-box .err{background:#fee2e2; color:#b91c1c; padding:10px 14px; border-radius:9px;
  font-size:13px; margin-bottom:8px}
.login-box .hint{margin-top:18px;text-align:center;font-size:12px;color:var(--muted)}

/* Gestionare meniu: element ascuns pentru ceilalti (vizibil doar SuperAdmin, estompat) */
.d-hidden{opacity:.45}
a.d-hidden::after,.d-hidden > summary::after{content:"ascuns";font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:#e5e7eb;color:#555;border-radius:4px;padding:1px 5px;margin-left:6px}
