/* Пульт AI-48 — стили по макету (26.10.2026). Inter, русский, телефон. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('/static/fonts/inter.woff2') format('woff2');}

:root{
  --bg:#F6F7F9; --card:#fff; --line:#E5E7EB; --ink:#111827; --sub:#4B5563;
  --accent:#1D4ED8; --ok:#15803D; --danger:#B91C1C; --danger-line:#FCA5A5;
  --side:#0F172A; --side-active:#1E293B; --side-ink:#CBD5E1;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:26px;margin:0 0 2px}
h2{font-size:17px;margin:0}

/* ---- каркас ---- */
.layout{display:flex;min-height:100vh}
.sidebar{width:224px;flex:0 0 224px;background:var(--side);color:var(--side-ink);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{padding:22px 20px;font-weight:700;font-size:19px;color:#fff}
.brand span{color:#64748B;font-weight:500;font-size:15px}
.menu{display:flex;flex-direction:column;padding:6px 10px;gap:2px;flex:1}
.menu-item{padding:9px 14px;border-radius:8px;color:var(--side-ink);font-size:15px}
.menu-item:hover{background:#1E293B;text-decoration:none}
.menu-item.active{background:var(--side-active);color:#fff}
.sidebar-foot{padding:16px 20px;border-top:1px solid #1E293B;color:#64748B;font-size:14px}
.linkbtn{background:none;border:none;color:#93C5FD;cursor:pointer;font:inherit;padding:0}
.linkbtn:hover{text-decoration:underline}
.content{flex:1;padding:28px 32px;max-width:1240px;width:100%}
.phone-nav{display:none}

/* ---- шапка страницы ---- */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:20px;flex-wrap:wrap}
.page-head .sub{color:var(--sub);font-size:14px;margin-top:3px}
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---- карточки ---- */
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px}
.card h3,.card .card-title{font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--sub);font-weight:600;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.grid{display:grid;gap:16px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
.kpi .big{font-size:30px;font-weight:700;letter-spacing:-.02em}
.kpi .note{color:var(--sub);font-size:13px;margin-top:6px}
.kpi .big.danger{color:var(--danger)}
.muted{color:var(--sub)}
.dash{color:#9CA3AF}

/* ---- pill-статусы ---- */
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12.5px;
  font-weight:600;white-space:nowrap}
.pill.ok{background:#DCFCE7;color:#166534}
.pill.work{background:#DBEAFE;color:#1E40AF}
.pill.wait{background:#FEF3C7;color:#92400E}
.pill.err{background:#FEE2E2;color:#991B1B}
.pill.plan{background:#F3F4F6;color:#374151}

/* ---- кнопки ---- */
.btn{display:inline-block;padding:9px 16px;border-radius:8px;border:1px solid var(--line);
  background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;font-size:14px}
.btn:hover{background:#F9FAFB;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:#1E40AF}
.btn.approve{background:var(--ok);border-color:var(--ok);color:#fff;width:100%}
.btn.danger{color:var(--danger);border-color:var(--danger-line)}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---- таблицы ---- */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--sub);font-weight:600;font-size:12.5px;padding:8px 10px;
  border-bottom:1px solid var(--line)}
td{padding:11px 10px;border-bottom:1px solid #F1F2F4;vertical-align:top}
tr:last-child td{border-bottom:none}
.row-alert td{background:#FEF2F2}

/* ---- полоса расхода ---- */
.bar{height:8px;border-radius:999px;background:#E5E7EB;overflow:hidden;margin:10px 0 4px}
.bar>span{display:block;height:100%;background:var(--accent)}
.bar.warn>span{background:#D97706}
.bar.stop>span{background:var(--danger)}
.bar-legend{display:flex;justify-content:space-between;color:var(--sub);font-size:12px}

/* ---- лампочки ---- */
.lamps{display:flex;gap:8px;flex-wrap:wrap}

/* ---- цепочка шагов ---- */
.steps{display:flex;gap:14px;flex-wrap:wrap}
.step{display:flex;flex-direction:column;align-items:center;gap:6px;width:72px;text-align:center}
.dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;color:#fff;font-size:14px;font-weight:700}
.dot.done{background:var(--ok)} .dot.wait{background:#D97706} .dot.err{background:var(--danger)}
.dot.plan{background:#CBD5E1}
.step small{font-size:11.5px;color:var(--sub);line-height:1.2}

/* ---- конвейер сейчас (счётчики) ---- */
.counters{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;text-align:center}
.counters .c{border:1px solid var(--line);border-radius:8px;padding:10px 4px}
.counters .c b{font-size:20px;display:block}
.counters .c small{font-size:11px;color:var(--sub)}

/* ---- монетизация ---- */
.goal{margin:10px 0}
.goal .gl{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}

/* ---- логин ---- */
.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:24px;gap:16px}
.login-card{background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:34px 30px;max-width:420px;width:100%;text-align:center}
.login-card .logo{color:var(--accent);font-weight:700;letter-spacing:.08em;font-size:14px}
.login-card h1{font-size:28px;margin:10px 0 6px}
.login-card p{color:var(--sub);margin:0 0 22px}
.login-note{color:var(--sub);font-size:13px;margin-top:14px}
.alert-err{background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;border-radius:10px;
  padding:14px 16px;max-width:420px;width:100%;font-size:14px}
.foot{color:var(--sub);font-size:13px}

/* ---- календарь ---- */
.cal{width:100%;border-collapse:collapse;font-size:12.5px}
.cal th,.cal td{border:1px solid var(--line);padding:7px 8px;vertical-align:top;min-width:92px}
.cal .plat{font-weight:600;white-space:nowrap}
.cal .plat small{display:block;color:var(--sub);font-weight:400}
.chip{display:inline-block;border-radius:6px;padding:3px 7px;font-size:11.5px;margin:1px 0}
.chip.out{background:#DCFCE7;color:#166534}
.chip.plan{background:#DBEAFE;color:#1E40AF}
.chip.wait{border:1px dashed #9CA3AF;color:#6B7280}
.chip.err{background:#FEE2E2;color:#991B1B}

.spacer{height:16px}
.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.right{margin-left:auto}
input[type=text],input[type=number],textarea,select{font:inherit;padding:9px 11px;
  border:1px solid var(--line);border-radius:8px;width:100%;background:#fff;color:var(--ink)}
textarea{resize:vertical;min-height:72px}
label{font-size:13px;color:var(--sub);display:block;margin:10px 0 4px}

/* ---- телефон ---- */
@media (max-width:768px){
  .sidebar{display:none}
  .content{padding:16px 16px 84px}
  .grid-4,.grid-3{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr}
  .counters{grid-template-columns:repeat(3,1fr)}
  h1{font-size:22px}
  .steps{gap:10px}
  .phone-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;
    border-top:1px solid var(--line);justify-content:space-around;padding:8px 4px;
    padding-bottom:calc(8px + env(safe-area-inset-bottom));z-index:50}
  .phone-nav a{color:var(--sub);font-size:13px;padding:6px 10px;min-height:44px;
    display:flex;align-items:center}
  .phone-nav a.active{color:var(--accent);font-weight:700}
  .btn,.menu-item{min-height:44px}
  /* таблицы -> карточки */
  table.cards thead{display:none}
  table.cards tr{display:block;border:1px solid var(--line);border-radius:10px;
    padding:10px 12px;margin-bottom:10px;background:#fff}
  table.cards td{display:flex;justify-content:space-between;border:none;padding:5px 0;gap:12px}
  table.cards td::before{content:attr(data-h);color:var(--sub);font-size:12px}
  .cal-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media (min-width:769px){.phone-only{display:none}}
