/* 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;
  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}
.top-right{display:flex; align-items:center; gap:10px}
.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:300px 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}

/* ---------- 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)}

/* ---------- 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}
}
