/* Рамка спільної оболонки кабінетів: стиль CRM 4B2B (світле тло, білі площини, індиго-акцент).
   Модуль у рамці займає всю ширину під шапкою: бічне меню модулів відкривається поверх, тож ширина екрана
   модуля та сама, що до переїзду, і звірка скрінів порівнює піксель у піксель. */
:root{
  --bg:#FAFAFA;--card:#FFFFFF;--line:#E5E7EB;--line2:#EEF0F3;--ink:#111827;--ink2:#374151;--mut:#6B7280;
  --acc:#4F46E5;--acc-ink:#3730A3;--acc-bg:#EEF2FF;--acc-line:#C7D2FE;--bad:#B91C1C;--bad-bg:#FEF2F2;
  --bar:56px;--r:12px;--sh:0 1px 2px rgba(17,24,39,.05),0 8px 24px -12px rgba(17,24,39,.14);
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.45 Inter,"Segoe UI",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum"}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- шапка ---------- */
.bar{position:fixed;top:0;left:0;right:0;height:var(--bar);z-index:20;display:flex;align-items:center;gap:6px;padding:0 14px 0 8px;background:var(--card);border-bottom:1px solid var(--line)}
.ib{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--ink2);transition:background .15s}
.ib:hover{background:#F3F4F6}
.ib:focus-visible,.mi:focus-visible,.btn:focus-visible,.tsw:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.logo{display:flex;align-items:center;padding:0 6px;height:40px}
.logo img{height:18px;width:auto;display:block}
.sep{width:1px;height:22px;background:var(--line);margin:0 8px}
.ctx{display:flex;align-items:center;gap:8px;min-width:0}
.tsw{display:flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:10px;font-weight:700;font-size:14.5px;white-space:nowrap;max-width:240px}
.tsw span{overflow:hidden;text-overflow:ellipsis}
.tsw.on{cursor:pointer}.tsw.on:hover{background:#F3F4F6}
.tsw svg.i{width:16px;height:16px;color:var(--mut)}
.mod{display:flex;align-items:center;gap:8px;color:var(--mut);font-size:14px;white-space:nowrap;overflow:hidden}
.mod b{color:var(--ink2);font-weight:600}
.sp{flex:1}
.who{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--mut);white-space:nowrap}
.who b{color:var(--ink2);font-weight:600}
.av{width:30px;height:30px;border-radius:50%;background:var(--acc-bg);color:var(--acc-ink);display:grid;place-items:center;font-weight:700;font-size:12.5px}
.out{display:flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:10px;font-weight:600;font-size:13.5px;color:var(--ink2);border:1px solid var(--line)}
.out:hover{border-color:#D1D5DB;background:#F9FAFB}

/* ---------- модуль ---------- */
.stage{position:fixed;top:var(--bar);left:0;right:0;bottom:0;background:var(--bg)}
.stage iframe{width:100%;height:100%;border:0;display:block;background:var(--bg)}
.load{position:absolute;inset:0;display:grid;place-items:center;color:var(--mut);font-size:14px;pointer-events:none;transition:opacity .25s}
.load.gone{opacity:0}
.dot{width:8px;height:8px;border-radius:50%;background:var(--acc);display:inline-block;margin-right:10px;animation:pl 1s ease-in-out infinite}
@keyframes pl{0%,100%{opacity:.25}50%{opacity:1}}
.err{max-width:460px;margin:12vh auto 0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--sh)}
.err b{display:block;font-size:17px;margin-bottom:6px}
.err p{color:var(--mut);font-size:14px}

/* ---------- бічне меню модулів (поверх модуля) ---------- */
.scrim{position:fixed;inset:0;z-index:30;background:rgba(17,24,39,.32);opacity:0;pointer-events:none;transition:opacity .2s}
.drawer{position:fixed;top:0;bottom:0;left:0;width:300px;max-width:86vw;z-index:31;background:var(--card);border-right:1px solid var(--line);box-shadow:var(--sh);transform:translateX(-102%);transition:transform .22s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.open .scrim{opacity:1;pointer-events:auto}
.open .drawer{transform:none}
.dh{height:var(--bar);display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 18px;border-bottom:1px solid var(--line2)}
.dh img{height:18px;width:auto}
.dsec{padding:14px 12px 4px}
.dt{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);padding:0 8px 8px}
.mi{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 10px;border-radius:10px;color:var(--ink2)}
.mi:hover{background:#F3F4F6}
.mi .ic{width:36px;height:36px;border-radius:10px;background:#F3F4F6;color:var(--ink2);display:grid;place-items:center;flex:none}
.mi b{display:block;font-weight:600;font-size:14.5px;color:var(--ink)}
.mi small{display:block;color:var(--mut);font-size:12.5px}
.mi.on{background:var(--acc-bg)}
.mi.on .ic{background:var(--acc);color:#fff}
.mi.on b{color:var(--acc-ink)}
.dfoot{margin-top:auto;padding:14px 18px;border-top:1px solid var(--line2);font-size:12.5px;color:var(--mut)}

/* ---------- вхід ---------- */
.login{min-height:100%;display:grid;place-items:center;padding:24px 16px}
.card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh);padding:30px 28px 26px}
.card img.lg{height:22px;width:auto;display:block}
.card h1{font-size:24px;letter-spacing:-.01em;margin:26px 0 4px}
.card .sub{color:var(--mut);font-size:14px;margin-bottom:20px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--acc-ink);background:var(--acc-bg);border:1px solid var(--acc-line);border-radius:999px;padding:4px 10px;margin-top:18px}
label{display:block;font-size:13px;font-weight:600;color:var(--ink2);margin:14px 0 6px}
input{width:100%;height:46px;border:1px solid var(--line);border-radius:10px;padding:0 14px;font:inherit;background:#fff;color:var(--ink)}
input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-bg)}
.btn{width:100%;height:46px;border-radius:10px;background:var(--acc);color:#fff;font-weight:700;margin-top:20px;transition:background .15s}
.btn:hover{background:#4338CA}
.btn[disabled]{opacity:.6;cursor:default}
.msg{min-height:20px;margin-top:12px;font-size:13.5px;color:var(--bad)}
.note{margin-top:18px;padding-top:16px;border-top:1px solid var(--line2);font-size:12.5px;color:var(--mut)}

/* ---------- телефон ---------- */
@media (max-width:640px){
  :root{--bar:52px}
  .bar{padding:0 6px 0 4px;gap:2px}
  .logo img{height:15px}
  .sep,.mod,.who b,.who .av,.out span{display:none}
  .tsw{max-width:150px;font-size:14px;padding:0 6px}
  .out{width:40px;padding:0;justify-content:center;border:0}
  .card{padding:26px 20px 22px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
