/* Consolă Suport Hypen — aliniat la design system-ul Hypen (npm.hypen.ro):
   Inter, paletă neutră grayscale, rounded-md, label-uri uppercase, primar near-black. */
:root{
  --bg:#fafafa; --surface:#ffffff; --surface-2:#f5f5f5; --ink:#171717; --secondary:#404040;
  --muted:#737373; --line:#e5e5e5; --line-strong:#d4d4d4;
  --primary:#171717; --primary-ink:#ffffff; --accent-soft:#f5f5f5;
  --answer:#16a34a; --answer-hover:#15803d; --hangup:#dc2626; --hangup-hover:#b91c1c; --hold:#a16207;
  --shadow:0 1px 2px rgba(0,0,0,.05); --shadow-lg:0 4px 16px rgba(0,0,0,.08);
  --r:8px; --r-sm:6px; --r-lg:12px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0a0a0a; --surface:#171717; --surface-2:#1f1f1f; --ink:#fafafa; --secondary:#d4d4d4;
    --muted:#a3a3a3; --line:#2e2e2e; --line-strong:#404040;
    --primary:#fafafa; --primary-ink:#171717; --accent-soft:#1f1f1f;
    --answer:#22c55e; --answer-hover:#16a34a; --hangup:#ef4444; --hangup-hover:#dc2626; --hold:#d4a017;
    --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 4px 20px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --bg:#0a0a0a; --surface:#171717; --surface-2:#1f1f1f; --ink:#fafafa; --secondary:#d4d4d4;
  --muted:#a3a3a3; --line:#2e2e2e; --line-strong:#404040;
  --primary:#fafafa; --primary-ink:#171717; --accent-soft:#1f1f1f;
  --answer:#22c55e; --answer-hover:#16a34a; --hangup:#ef4444; --hangup-hover:#dc2626; --hold:#d4a017;
  --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 4px 20px rgba(0,0,0,.5);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
/* iconuri SVG (stroke, currentColor) */
svg{fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.ic{width:18px; height:18px; flex:none; vertical-align:-3px}
.btn .ic{vertical-align:-4px; margin-right:2px}
.btn-circle svg{width:30px; height:30px}
.btn-ctl .ic{width:22px; height:22px; margin:0}
.quick .ic{width:24px; height:24px}
.idle-icon{opacity:1}
.idle-icon svg{width:52px; height:52px; stroke-width:1.5; color:var(--muted); opacity:.5}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,sans-serif; font-size:15px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
b{font-weight:600}
button{font-family:inherit; cursor:pointer}
.label{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600}

/* ---------- Login ---------- */
.login{position:fixed; inset:0; display:grid; place-items:center; padding:24px; background:var(--bg)}
.login-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg); padding:36px 32px; width:min(400px,100%); display:flex; flex-direction:column; gap:16px}
.brand-lg{font-size:1.25rem; font-weight:600; display:flex; align-items:center; gap:9px; letter-spacing:-.01em}
.login-sub{margin:-6px 0 12px; color:var(--muted); font-size:.9rem}
.login label{display:flex; flex-direction:column; gap:6px}
.login label>span, .field-label{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600}
.login input{font-size:.95rem; padding:10px 12px; border:1px solid var(--line-strong); border-radius:var(--r-sm);
  background:var(--surface); color:var(--ink); transition:border-color .15s}
.login input::placeholder{color:var(--muted)}
.login input:focus{outline:none; border-color:var(--ink); box-shadow:0 0 0 3px var(--accent-soft)}
.login-err{color:var(--hangup); font-size:.85rem; font-weight:500}
.dot-brand{width:9px; height:9px; border-radius:50%; background:var(--answer)}

/* ---------- App shell ---------- */
.app{display:flex; flex-direction:column; height:100dvh}
.topbar{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:12px 20px; background:var(--surface); border-bottom:1px solid var(--line)}
.brand{font-weight:600; font-size:1rem; display:flex; align-items:center; gap:9px; letter-spacing:-.01em}
/* pe îngust (iframe în portal, telefon) bara se rupe pe rânduri — butoanele de administrare
   și ieșire nu au voie să dispară în afara ecranului */
.top-right{display:flex; align-items:center; gap:10px; flex-wrap:wrap; row-gap:6px; min-width:0; justify-content:flex-end}
.status-pill{display:flex; align-items:center; gap:7px; border:1px solid var(--line); background:var(--surface);
  color:var(--ink); border-radius:999px; padding:6px 13px; font-weight:500; font-size:.82rem}
.status-dot{width:8px; height:8px; border-radius:50%; background:var(--answer)}
.status-pill[data-status="busy"] .status-dot{background:var(--hold)}
.status-pill[data-status="offline"] .status-dot{background:var(--muted)}
.ext-badge{color:var(--muted); font-size:.82rem}
.ext-badge b{color:var(--ink)}
.conn{display:flex; align-items:center; gap:6px; font-size:.78rem; color:var(--muted)}
.conn-dot{width:8px; height:8px; border-radius:50%; background:var(--hold); transition:background .3s}
.conn[data-state="up"] .conn-dot{background:var(--answer)}
.conn[data-state="down"] .conn-dot{background:var(--hangup)}
.icon-btn{border:1px solid var(--line); background:var(--surface); color:var(--secondary);
  width:34px; height:34px; border-radius:var(--r-sm); font-size:1rem; display:grid; place-items:center}
.icon-btn:hover{background:var(--surface-2); border-color:var(--line-strong)}

/* ---------- Stage layout ---------- */
.stage-wrap{flex:1; display:grid; grid-template-columns:360px 1fr; gap:16px; padding:16px; min-height:0}
.rail{display:flex; flex-direction:column; gap:16px; min-height:0}
.rail-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow); padding:16px; display:flex; flex-direction:column; gap:12px}
.rail-card.grow{flex:1; min-height:0}
.rail-title{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600;
  display:flex; align-items:center; gap:8px}
.dial-input{font-size:1.15rem; font-weight:500; text-align:center; padding:11px; border:1px solid var(--line-strong);
  border-radius:var(--r-sm); background:var(--surface); color:var(--ink); font-variant-numeric:tabular-nums}
.dial-input:focus{outline:none; border-color:var(--ink); box-shadow:0 0 0 3px var(--accent-soft)}
.dialpad{display:grid; grid-template-columns:repeat(3,1fr); gap:7px}
.dialpad button{font-size:1.1rem; font-weight:500; padding:11px 0; border:1px solid var(--line);
  background:var(--surface); color:var(--ink); border-radius:var(--r-sm); transition:background .12s}
.dialpad button:hover{background:var(--surface-2); border-color:var(--line-strong)}
.dialpad button:active{background:var(--accent-soft)}
.recent{list-style:none; margin:0; padding:0; overflow-y:auto; display:flex; flex-direction:column; gap:1px}
.recent li{display:flex; align-items:center; gap:10px; padding:8px; border-radius:var(--r-sm); font-size:.85rem}
.recent li:hover{background:var(--surface-2); cursor:pointer}
.recent .r-dir{font-size:.85rem; width:16px; text-align:center}
.recent .r-in{color:var(--answer)} .recent .r-out{color:var(--secondary)} .recent .r-miss{color:var(--hangup)}
.recent .r-num{font-weight:500; flex:1; font-variant-numeric:tabular-nums}
.recent .r-time{color:var(--muted); font-size:.75rem}
.recent-empty{color:var(--muted); font-size:.82rem; padding:8px 4px}
.missed-badge{background:var(--hangup); color:#fff; border-radius:999px; padding:1px 7px; font-size:.7rem; font-weight:600}

/* ---------- Tab-uri rail ---------- */
.rail-tabs{display:flex; gap:4px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:4px; overflow-x:auto; scrollbar-width:none}
.rail-tabs::-webkit-scrollbar{display:none}
/* fiecare tab la lățimea lui naturală (nu se strivește textul); pe lat se întind egal,
   pe îngust bara derulează — niciodată etichete rupte pe două rânduri */
.tab{flex:1 0 auto; white-space:nowrap; border:none; background:transparent; color:var(--muted); font-weight:600; font-size:.78rem; padding:8px 6px; border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; gap:4px}
.tab.is-active{background:var(--accent-soft); color:var(--ink)}
.tab:hover:not(.is-active){color:var(--ink)}
.tabpane{display:flex; flex-direction:column; gap:12px; min-height:0; flex:1}
/* ---------- Agendă ---------- */
.contacts-bar{display:flex; gap:8px; align-items:center}
.search-wrap{position:relative; flex:1}
.search-ic{position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; width:16px; height:16px}
.search-input{padding-left:32px!important; text-align:left!important; font-size:.88rem!important; font-weight:400!important}
.contacts{list-style:none; margin:0; padding:0; overflow-y:auto; display:flex; flex-direction:column; gap:1px; flex:1}
.contacts li{display:flex; align-items:center; gap:10px; padding:8px; border-radius:var(--r-sm)}
.contacts li:hover{background:var(--surface-2)}
.contact-av{width:34px; height:34px; border-radius:50%; background:var(--accent-soft); color:var(--ink); display:grid; place-items:center; font-size:.78rem; font-weight:600; flex:none}
.contact-info{flex:1; min-width:0}
.contact-name{font-weight:600; font-size:.88rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.contact-num{color:var(--muted); font-size:.78rem; font-variant-numeric:tabular-nums}
.contact-actions{display:flex; gap:4px}
.c-call, .c-del{width:32px; height:32px; border-radius:var(--r-sm); border:1px solid var(--line); background:var(--surface); display:grid; place-items:center}
.c-call{color:var(--answer)} .c-call:hover{background:var(--answer); color:#fff; border-color:var(--answer)}
.c-del{color:var(--muted)} .c-del:hover{background:var(--hangup); color:#fff; border-color:var(--hangup)}
.c-call .ic, .c-del .ic{width:16px; height:16px}
.contacts-empty{color:var(--muted); font-size:.85rem; text-align:center; padding:24px 8px; line-height:1.5}
/* ---------- Apeluri înregistrate ---------- */
.calls{list-style:none; margin:0; padding:0; overflow-y:auto; display:flex; flex-direction:column; gap:8px; flex:1}
.call-item{border:1px solid var(--line); border-radius:var(--r); padding:10px; background:var(--surface); display:flex; flex-direction:column; gap:7px}
.call-head{display:flex; align-items:baseline; justify-content:space-between}
.call-num{font-weight:600; font-size:.9rem; font-variant-numeric:tabular-nums}
.call-when{color:var(--muted); font-size:.75rem}
.call-item audio{width:100%; height:34px}
.btn-mini{align-self:flex-start; border:1px solid var(--line-strong); background:var(--surface-2); color:var(--ink); border-radius:var(--r-sm); padding:6px 10px; font-size:.8rem; font-weight:600}
.btn-mini:hover{background:var(--accent-soft)}
.call-tr{font-size:.82rem; line-height:1.5; display:flex; flex-direction:column; gap:8px}
.tr-text{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-sm); padding:9px 11px; white-space:pre-wrap; max-height:180px; overflow-y:auto}

/* ---------- Stage states ---------- */
.stage{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; padding:24px; min-height:0; overflow:auto}
.state{width:100%; max-width:480px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px}
.idle-icon{font-size:2.6rem; opacity:.18}
.idle-title{font-size:1.3rem; font-weight:600; letter-spacing:-.01em}
.idle-sub{color:var(--muted); font-size:.9rem}

.ring-tag{background:var(--answer); color:#fff; font-weight:600; padding:5px 14px; border-radius:999px;
  font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; animation:pulse 1.5s ease-in-out infinite}
.caller-avatar{width:104px; height:104px; border-radius:50%; background:var(--accent-soft); color:var(--ink);
  display:grid; place-items:center; font-size:2.4rem; font-weight:600; border:1px solid var(--line)}
.ringing .caller-avatar{animation:ring 1.5s ease-out infinite}
.caller-avatar.sm{width:56px; height:56px; font-size:1.4rem}
.caller-name{font-size:1.5rem; font-weight:600; line-height:1.2; letter-spacing:-.01em}
.caller-number{font-size:1rem; color:var(--muted); font-variant-numeric:tabular-nums}
.caller-meta{display:flex; flex-wrap:wrap; gap:7px; justify-content:center; margin-top:4px}
.caller-meta.wide{margin-top:6px}
.chip{background:var(--surface-2); border:1px solid var(--line); color:var(--secondary);
  padding:4px 11px; border-radius:999px; font-size:.78rem; font-weight:500}
.chip.warn{background:#fef9c3; color:#854d0e; border-color:#fde68a}
:root[data-theme="dark"] .chip.warn, :root:not([data-theme="light"]) .chip.warn{background:#292518; color:#d4a017; border-color:#453a1f}

.ring-actions{display:flex; gap:36px; margin-top:14px}
.btn-circle{width:88px; height:88px; border-radius:50%; border:none; color:#fff; font-size:1.7rem;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; box-shadow:var(--shadow-lg)}
.btn-circle span{font-size:.68rem; font-weight:600; letter-spacing:.02em}
.btn-circle:active{transform:scale(.95)}
.btn-answer{background:var(--answer)} .btn-answer:hover{background:var(--answer-hover)}
.btn-hangup{background:var(--hangup)} .btn-hangup:hover{background:var(--hangup-hover)}
.btn-circle.big{width:96px; height:96px}

.incall-head{display:flex; align-items:center; gap:14px; width:100%; justify-content:center}
.incall-head>div:nth-child(2){text-align:left; flex:1}
.incall-head .caller-name{font-size:1.2rem}
.call-timer{font-size:1.3rem; font-weight:600; font-variant-numeric:tabular-nums; color:var(--ink);
  background:var(--surface-2); border:1px solid var(--line); padding:5px 14px; border-radius:var(--r-sm)}
.incall-controls{display:flex; gap:12px; margin-top:18px}
.btn-ctl{display:flex; flex-direction:column; align-items:center; gap:6px; min-width:88px; padding:14px 10px;
  border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:var(--r); font-weight:500; font-size:.85rem}
.btn-ctl .ci{font-size:1.3rem}
.btn-ctl:hover{background:var(--surface-2); border-color:var(--line-strong)}
.btn-ctl.active{background:var(--hold); color:#fff; border-color:var(--hold)}
.btn-ctl.danger{background:var(--hangup); color:#fff; border-color:var(--hangup)}
.btn-ctl.danger:hover{background:var(--hangup-hover)}

/* ---------- Sufler (transcript live + sugestii) ---------- */
.state.incall{max-width:860px}
.prompter{width:100%; margin-top:18px; border-top:1px solid var(--line); padding-top:14px; text-align:left; display:flex; flex-direction:column; gap:10px}
.prompter-head{display:flex; align-items:center; gap:10px}
.pr-status{display:flex; align-items:center; gap:6px; font-size:.75rem; color:var(--muted)}
.pr-dot{width:8px; height:8px; border-radius:50%; background:var(--muted)}
.pr-status[data-state="live"] .pr-dot{background:var(--answer); animation:pulse 1.5s ease-in-out infinite}
.pr-status[data-state="busy"] .pr-dot{background:var(--hold)}
.pr-status[data-state="err"] .pr-dot{background:var(--hangup)}
.pr-toggle{margin-left:auto; padding:4px 9px; font-size:.74rem}
.prompter-grid{display:grid; grid-template-columns:1fr 1.2fr; gap:12px}
.pr-col{display:flex; flex-direction:column; gap:6px; min-width:0}
.pr-transcript{background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-sm); padding:10px 12px;
  font-size:.88rem; line-height:1.55; color:var(--secondary); height:190px; overflow-y:auto; white-space:pre-wrap}
.pr-transcript .pr-live{color:var(--muted)}
.pr-empty{color:var(--muted); font-size:.82rem}
.pr-say{border:1px solid var(--line-strong); border-radius:var(--r); padding:12px 14px; background:var(--surface);
  font-size:.95rem; line-height:1.5; color:var(--ink); min-height:64px; display:flex; flex-direction:column; gap:8px; position:relative}
.pr-say[data-flag="urgent"]{border-color:var(--hangup); box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.pr-say[data-flag="escalate"]{border-color:var(--hold)}
.pr-say .pr-flag{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; font-weight:600}
.pr-say[data-flag="urgent"] .pr-flag{color:var(--hangup)}
.pr-say[data-flag="escalate"] .pr-flag{color:var(--hold)}
.pr-say .pr-ask{font-size:.85rem; color:var(--secondary)}
.pr-say .pr-ask b{color:var(--muted); font-weight:600; font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; margin-right:6px}
.pr-say .pr-meta{font-size:.72rem; color:var(--muted); display:flex; gap:10px; align-items:center}
.pr-say .pr-meta .btn-mini{margin-left:auto; padding:3px 8px; font-size:.72rem}
.pr-say.is-stale{opacity:.55}
/* Procedura verificată din bibliotecă: pașii verbatim, bifabili */
.pr-proc{border:1px solid var(--line-strong); border-left:3px solid var(--answer); border-radius:var(--r-sm);
  padding:10px 12px; background:var(--surface); display:flex; flex-direction:column; gap:7px; max-height:260px; overflow-y:auto}
.pr-proc-head{display:flex; align-items:baseline; gap:7px; flex-wrap:wrap}
.pr-proc-badge{font-size:.62rem; font-weight:700; letter-spacing:.06em; background:var(--answer); color:#fff; padding:2px 6px; border-radius:4px}
.pr-proc-title{font-weight:600; font-size:.9rem}
.pr-proc-flow{font-size:.72rem; color:var(--muted)}
.pr-proc-pre{font-size:.78rem; color:var(--muted); font-style:italic}
.pr-steps{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:5px}
.pr-steps li{font-size:.86rem; line-height:1.45; cursor:pointer; padding:2px 4px; border-radius:4px}
.pr-steps li:hover{background:var(--surface-2)}
.pr-steps li.done{color:var(--muted); text-decoration:line-through}
.pr-proc-fail{font-size:.78rem; color:var(--secondary); background:var(--surface-2); border-radius:var(--r-sm); padding:6px 8px; display:flex; flex-direction:column; gap:3px}
.pr-proc-fail b{display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:2px}
.pr-proc-src{font-family:ui-monospace,monospace; font-size:.64rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pr-kb{display:flex; flex-direction:column; gap:6px; max-height:150px; overflow-y:auto}
.pr-kb-item{border:1px solid var(--line); border-radius:var(--r-sm); padding:7px 10px; background:var(--surface-2); font-size:.8rem; line-height:1.45}
.pr-kb-item .pr-kb-path{font-family:ui-monospace,monospace; font-size:.68rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.pr-kb-item .pr-kb-title{font-weight:600; font-size:.8rem}
.pr-kb-item .pr-kb-snip{color:var(--secondary); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
@media (max-width:720px){ .prompter-grid{grid-template-columns:1fr} .pr-transcript{height:120px} }

/* ---------- Quickbar (POS) ---------- */
.quickbar{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:14px 16px;
  background:var(--surface); border-top:1px solid var(--line)}
.quick{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:14px 8px; border:1px solid var(--line); background:var(--surface); color:var(--ink);
  border-radius:var(--r); font-weight:500; font-size:.85rem; transition:background .12s}
.quick .qi{font-size:1.4rem}
.quick:hover:not(:disabled){background:var(--surface-2); border-color:var(--line-strong)}
.quick:active:not(:disabled){transform:scale(.98)}
.quick:disabled{opacity:.38; cursor:not-allowed}

/* ---------- Buttons ---------- */
.btn{border:none; border-radius:var(--r-sm); padding:11px 16px; font-weight:600; font-size:.95rem; transition:opacity .15s, background .15s}
.btn-block{width:100%}
.btn-primary{background:var(--primary); color:var(--primary-ink)} .btn-primary:hover{opacity:.88}
.btn-answer{background:var(--answer); color:#fff} .btn-answer:hover{background:var(--answer-hover)}

/* ---------- Toast + drawer ---------- */
.toast{position:fixed; left:50%; bottom:92px; transform:translateX(-50%); background:var(--ink); color:var(--bg);
  padding:11px 18px; border-radius:var(--r-sm); font-weight:500; font-size:.88rem; box-shadow:var(--shadow-lg); z-index:50; max-width:90vw}
.drawer{position:fixed; top:0; right:0; width:min(400px,100%); height:100dvh; background:var(--surface);
  border-left:1px solid var(--line); box-shadow:var(--shadow-lg); z-index:60; display:flex; flex-direction:column}
.drawer-head{display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--line); font-weight:600}
.drawer-body{padding:18px; overflow-y:auto; display:flex; flex-direction:column; gap:12px; font-size:.9rem; color:var(--secondary)}
.drawer-body input{font-size:.9rem; padding:9px 11px; border:1px solid var(--line-strong); border-radius:var(--r-sm); background:var(--surface); color:var(--ink)}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(22,163,74,.35)}70%{box-shadow:0 0 0 20px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

@media (max-width:820px){
  .stage-wrap{grid-template-columns:1fr}
  .rail{flex-direction:row; overflow-x:auto}
  .rail-card{min-width:250px}
}

/* ---------- Autentificare: două variante (locală / master portal) ---------- */
.login-block{display:flex; flex-direction:column; gap:16px}
.login-note{margin:0; color:var(--muted); font-size:.88rem; line-height:1.45}

/* ---------- Identitate în bara de sus ---------- */
.ext-badge{display:flex; flex-direction:column; line-height:1.15; padding:4px 10px; border-left:1px solid var(--line)}
.ext-badge b{font-size:.9rem; font-weight:600}
.ext-badge .ext-num{font-size:.72rem; color:var(--muted)}
.prod-chips{display:flex; gap:5px; flex-wrap:wrap; align-items:center}
.chip{--c:var(--muted); font-size:.7rem; font-weight:600; padding:2px 8px; border-radius:999px;
  color:var(--c); background:color-mix(in srgb, var(--c) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--c) 35%, transparent); white-space:nowrap}
.chip-none{--c:var(--muted); font-weight:500; font-style:italic}

/* ---------- Ecranul de administrare ---------- */
.admin{position:fixed; inset:0; z-index:40; background:var(--bg); display:flex; flex-direction:column}
.admin-head{display:flex; align-items:center; gap:20px; padding:0 20px; height:56px;
  border-bottom:1px solid var(--line); background:var(--surface); flex:none}
.admin-tabs{display:flex; gap:4px; margin-left:auto; margin-right:auto}
.atab{background:none; border:0; padding:8px 14px; border-radius:var(--r-sm); color:var(--muted);
  font-size:.88rem; font-weight:500; transition:background .15s,color .15s}
.atab:hover{background:var(--surface-2); color:var(--ink)}
.atab.is-active{background:var(--accent-soft); color:var(--ink); font-weight:600}
.admin-body{flex:1; overflow:auto; padding:20px; display:flex; flex-direction:column}
.apane{display:flex; flex-direction:column; gap:14px; max-width:1240px; width:100%; margin:0 auto}
.apane-bar{display:flex; align-items:center; gap:20px}
.apane-hint{margin:0; color:var(--muted); font-size:.85rem; line-height:1.45; flex:1}
.admin-list{display:flex; flex-direction:column; gap:8px}
.admin-empty{color:var(--muted); font-size:.9rem; padding:24px; text-align:center;
  border:1px dashed var(--line-strong); border-radius:var(--r)}
.admin-empty.small{padding:6px 0; text-align:left; border:0; font-size:.8rem}

.arow{--c:var(--muted); display:flex; align-items:center; gap:18px; padding:12px 16px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r); transition:border-color .15s}
.arow:hover{border-color:var(--line-strong)}
.arow.is-off{opacity:.55}
.arow-main{min-width:190px; max-width:260px}
.arow-title{font-weight:600; font-size:.95rem; display:flex; align-items:center; gap:7px; flex-wrap:wrap}
.arow-sub{color:var(--muted); font-size:.78rem; margin-top:2px; overflow-wrap:anywhere}
.arow-sub code{background:var(--surface-2); padding:1px 5px; border-radius:4px; font-size:.95em}
.arow-cols{display:flex; gap:22px; flex:1; align-items:flex-start; flex-wrap:wrap}
.acol{display:flex; flex-direction:column; gap:3px; min-width:96px}
.acol.grow{flex:1; min-width:180px}
.acol b{font-size:.86rem; font-weight:600}
.arow-act{display:flex; gap:2px; flex:none}
.prod-dot{width:9px; height:9px; border-radius:3px; background:var(--c); flex:none}
.muted-note{color:var(--muted); font-size:.78rem; font-style:italic; font-weight:400}

.tag{font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; font-weight:700;
  padding:2px 6px; border-radius:4px; background:var(--surface-2); color:var(--muted)}
.tag-admin{background:color-mix(in srgb, var(--hangup) 14%, transparent); color:var(--hangup)}
.tag-supervisor{background:color-mix(in srgb, var(--hold) 18%, transparent); color:var(--hold)}
.tag-portal{background:color-mix(in srgb, #2563eb 14%, transparent); color:#2563eb}
.tag-client{background:color-mix(in srgb, #7c3aed 14%, transparent); color:#7c3aed}
.tag-warn{background:color-mix(in srgb, var(--hold) 18%, transparent); color:var(--hold)}
.tag-off{background:var(--surface-2); color:var(--muted)}

/* ---------- Formular modal ---------- */
.modal{position:fixed; inset:0; z-index:50; background:rgba(0,0,0,.45);
  display:grid; place-items:center; padding:20px}
.modal-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg); width:min(760px,100%); max-height:90vh; display:flex; flex-direction:column}
.modal-head{display:flex; align-items:center; justify-content:space-between; padding:16px 20px;
  border-bottom:1px solid var(--line); font-weight:600}
.modal-body{padding:20px; overflow:auto; display:flex; flex-direction:column; gap:16px}
.modal-foot{display:flex; justify-content:flex-end; gap:8px; padding:14px 20px; border-top:1px solid var(--line)}
.fgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px}
.f{display:flex; flex-direction:column; gap:5px}
.f input,.f select{font-size:.92rem; padding:9px 11px; border:1px solid var(--line-strong);
  border-radius:var(--r-sm); background:var(--surface); color:var(--ink); width:100%}
.f input:focus,.f select:focus{outline:none; border-color:var(--ink); box-shadow:0 0 0 3px var(--accent-soft)}
.f input[type="color"]{padding:3px; height:38px; cursor:pointer}
.f input[readonly]{background:var(--surface-2); color:var(--muted)}
.f-checks{justify-content:flex-end; gap:8px}
.cb{display:flex; align-items:center; gap:8px; font-size:.88rem; cursor:pointer}
.cb input{width:16px; height:16px; accent-color:var(--ink)}
.f-full{display:flex; flex-direction:column; gap:6px}
.pick{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:6px; margin-top:4px}
.pick-item{--c:var(--muted); display:flex; align-items:center; gap:8px; font-size:.86rem; cursor:pointer;
  padding:7px 10px; border:1px solid var(--line); border-radius:var(--r-sm); transition:border-color .15s,background .15s}
.pick-item:hover{border-color:var(--c); background:color-mix(in srgb, var(--c) 7%, transparent)}
.pick-item input{accent-color:var(--c)}
.pick-item:has(input:checked){border-color:var(--c); background:color-mix(in srgb, var(--c) 11%, transparent); font-weight:600}
/* Numărul public al produsului, lângă nume: singurul loc din care operatorul înțelege
   la ce număr va suna telefonul dacă bifează produsul. */
.pick-name{flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.pick-did{flex:0 0 auto; font-variant-numeric:tabular-nums; font-size:.78rem; font-weight:500;
  color:var(--muted); letter-spacing:.01em}
.pick-did.is-none{font-style:italic; opacity:.7}

@media (max-width:820px){
  .admin-head{gap:10px; padding:0 12px}
  .admin-tabs{margin:0}
  .arow{flex-wrap:wrap; gap:10px}
  .arow-main{max-width:none; flex:1 1 100%}
  .arow-cols{gap:14px}
  .apane-bar{flex-direction:column; align-items:stretch; gap:10px}
}

/* ---------- Buton ajutor „?" + ghid ---------- */
#helpBtn{font-weight:700; font-size:1rem; line-height:1}
.help-intro{color:var(--muted); font-size:.9rem; margin:0 0 14px}
.help-item{border:1px solid var(--line); border-radius:var(--r-sm); margin-bottom:8px; overflow:hidden}
.help-item summary{cursor:pointer; padding:11px 14px; font-weight:600; font-size:.92rem; list-style:none;
  background:var(--surface-2); user-select:none}
.help-item summary::-webkit-details-marker{display:none}
.help-item summary::before{content:'▸'; margin-right:8px; color:var(--muted)}
.help-item[open] summary::before{content:'▾'}
.help-steps{margin:0; padding:12px 14px 14px 32px; display:flex; flex-direction:column; gap:8px; font-size:.9rem; line-height:1.5}
.help-steps li{padding-left:2px}
.help-steps b{font-weight:600}

/* ---------- Reapelări ---------- */
.cb-form{display:flex; flex-direction:column; gap:6px; margin-bottom:10px}
.cb-form-actions{display:flex; gap:8px}
.cb-item{display:flex; flex-direction:column; gap:2px; padding:9px 10px; border:1px solid var(--line);
  border-radius:var(--r-sm); margin-bottom:6px; cursor:default}
.cb-item .cb-head{display:flex; align-items:center; gap:8px}
.cb-item .cb-num{font-weight:600}
.cb-item .cb-who{color:var(--muted); font-size:.85rem}
.cb-item .cb-det{color:var(--muted); font-size:.82rem; white-space:pre-wrap}
.cb-item .cb-actions{display:flex; gap:6px; margin-top:4px}
.cb-item.overdue{border-color:#dc2626; background:color-mix(in srgb, #dc2626 6%, transparent)}
.cb-sev{font-size:.7rem; font-weight:700; letter-spacing:.03em; padding:2px 7px; border-radius:999px}
.cb-sev[data-sev="1"]{background:#e5e7eb; color:#374151}
.cb-sev[data-sev="2"]{background:#fef3c7; color:#92400e}
.cb-sev[data-sev="3"]{background:#fee2e2; color:#b91c1c}
.cb-when{margin-left:auto; font-size:.78rem; color:var(--muted); font-variant-numeric:tabular-nums}
.cb-item.overdue .cb-when{color:#dc2626; font-weight:600}

/* nota live de lângă titlu (ex. „nimeni în coadă") se taie elegant, nu împinge rândul */
#cbQueueLive{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:right}

/* ---------- Rapoarte (admin) ---------- */
.rpt-range{display:flex; gap:6px}
.rpt-days.is-active{background:var(--accent-soft); color:var(--ink); font-weight:600}
.rpt-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:14px; align-items:start}
.rpt-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:14px}
.rpt-card h3{margin:0 0 10px; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted)}
.rpt-scroll{overflow-x:auto}
.rpt-table{width:100%; border-collapse:collapse; font-size:.84rem}
.rpt-table th{text-align:left; color:var(--muted); font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; padding:6px 10px; border-bottom:1px solid var(--line)}
.rpt-table td{padding:7px 10px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; white-space:nowrap}
.rpt-table tr:last-child td{border-bottom:none}

@media (max-width:560px){ .prod-chips{display:none} }

/* ---------- Tabloul de bord Rapoarte ---------- */
#apane-reports, #apane-screening{max-width:none}
.kpi-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px}
.kpi{background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:14px 16px;
  display:flex; flex-direction:column; gap:4px}
.kpi-label{font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600}
.kpi-value{font-size:1.7rem; font-weight:650; letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1.1}
.kpi-delta{font-size:.74rem; font-weight:600}
.kpi-up{color:var(--answer)} .kpi-down{color:var(--hangup)} .kpi-flat{color:var(--muted)}
.kpi-note{margin:2px 2px 0; font-size:.72rem; color:var(--muted)}
.rpt-two{display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:14px; align-items:start}
.chart{display:block; width:100%}
.chart .ch-ok{fill:var(--answer); opacity:.85}
.chart .ch-bad{fill:var(--hangup); opacity:.8}
.chart .ch-axis{stroke:var(--line); stroke-width:1}
.chart .ch-val{fill:var(--ink); font-size:9px; text-anchor:middle; font-weight:600}
.chart .ch-lbl{fill:var(--muted); font-size:8px; text-anchor:middle}
.ch-legend{display:flex; gap:14px; margin:0 0 8px; font-size:.72rem; color:var(--muted)}
.ch-legend .lg{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px}
.ch-legend .lg-ok{background:var(--answer)} .ch-legend .lg-bad{background:var(--hangup)}
.hrow{padding:7px 0; border-bottom:1px solid var(--line)}
.hrow:last-child{border-bottom:none}
.hrow-head{display:flex; align-items:baseline; gap:10px; margin-bottom:5px}
.hrow-label{font-weight:600; font-size:.88rem}
.hrow-sub{font-size:.72rem; color:var(--muted); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.hrow-num{font-weight:650; font-variant-numeric:tabular-nums; font-size:.9rem}
.hbar{display:flex; height:9px; border-radius:5px; background:var(--surface-2, rgba(128,128,128,.12)); overflow:hidden}
.hbar-ok{background:var(--answer); opacity:.85}
.hbar-bad{background:var(--hangup); opacity:.8}

.chart-box{position:relative; height:240px}

/* tabloul de bord curge pe verticală, fiecare rând își ia toată lățimea */
#rptBody{display:flex; flex-direction:column; gap:14px; align-items:stretch}
