/* Control Center — клей поверх vai8 (только переменные дизайн-системы). */

/* [hidden] должен побеждать любые display-правила ниже (иначе форма логина
   не прячется после входа и перекрывает панель). */
[hidden]{display:none!important}

/* вход */
.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:20px}
.login-card{width:min(380px,92vw);display:flex;flex-direction:column;gap:14px}
.login-sub{color:var(--ink-2);font-size:13px;text-align:center;margin-top:-6px}

/* топбар */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 26px;border-bottom:1px solid var(--line-soft);background:var(--surface);
  position:sticky;top:0;z-index:5}
.crumbs{font-weight:700;font-size:15px}
.crumbs .dim{color:var(--ink-3);font-weight:500;font-size:13px}
.topbar-right{display:flex;align-items:center;gap:12px;color:var(--ink-3);font-size:12.5px}
.content{padding:22px 26px 60px;max-width:1200px}

/* сайдбар: секции и светодиоды проектов */
.nav-sec{margin:16px 8px 4px;font-size:10.5px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-3)}
.pled{width:7px;height:7px;border-radius:50%;flex:none;background:var(--ink-3)}
.pled.led-ok{background:var(--success)}
.pled.led-bad{background:var(--danger);box-shadow:0 0 6px var(--danger)}
.pled.led-na{background:var(--ink-3);opacity:.5}
.pled.led-off{background:var(--ink-3);opacity:.35}
.nav{overflow-y:auto}
.nav-sec-off{color:var(--ink-3);opacity:.8}
.nav-proj.off{opacity:.6}
.nav-proj.off:hover{opacity:.9}

/* раскрывающийся проект в меню */
.nav-proj-head{display:flex;align-items:center;gap:8px;width:100%}
.nav-proj-head .np-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-caret{font-size:10px;opacity:.4;transition:transform .18s var(--ease,ease)}
.nav-proj.open>.nav-proj-head{color:var(--amber)}
.nav-proj.open .nav-caret{transform:rotate(180deg);opacity:.7}
.nav-proj-sub{display:none;margin:2px 0 8px 20px;padding-left:9px;border-left:1px solid var(--line)}
.nav-proj.open .nav-proj-sub{display:block;animation:subIn .18s ease}
@keyframes subIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.nav-sub{display:flex;align-items:center;gap:7px;padding:5px 9px;font-size:12.5px;
  color:var(--ink-2);border-radius:7px;text-decoration:none}
.nav-sub:hover{color:var(--ink);background:var(--surface-2)}
.nav-sub.active{color:var(--amber);background:var(--surface-2)}
.nav-sub .sub-ic{font-size:9px;opacity:.55;width:9px;text-align:center}
.nav-sub-view{color:var(--ink);font-weight:500}
.nav-sub-view .sub-ic{color:var(--amber);opacity:.8}
.nav-sub .sub-ic-ext{color:var(--ink-3);opacity:.7}

/* карточка внешнего (не встраиваемого) раздела */
.ext-card{display:flex;gap:18px;align-items:flex-start;max-width:640px;margin-top:6px}
.ext-ic{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;
  font-size:22px;background:var(--surface-2);border:1px solid var(--line);color:var(--amber)}
.ext-title{margin:2px 0 8px;font-size:19px}
.ext-note{color:var(--ink-2);font-size:13.5px;line-height:1.55;margin-bottom:10px}
.ext-url{font-size:12px;margin-bottom:14px;word-break:break-all}

/* встроенный интерфейс проекта */
.frame-wrap{display:flex;flex-direction:column;gap:10px}
.frame-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.frame-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj-frame{width:100%;height:76vh;border:1px solid var(--line);border-radius:12px;
  background:var(--surface);box-shadow:0 6px 24px rgba(0,0,0,.28)}
.frame-hint{font-size:12px}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.kpi{padding:14px 16px}
.kpi .kv{font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi .kl{font-size:11.5px;color:var(--ink-2);margin-top:2px}
.kpi-bad .kv{color:var(--danger)}

/* карточки проектов на обзоре */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.proj-card{position:relative;display:block;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.proj-card:hover{border-color:var(--amber);transform:translateY(-1px)}
.proj-card-off{opacity:.6}
.proj-card-off:hover{opacity:.85}
.pc-toggle{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:6px;
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);
  font-size:12px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,border-color .15s}
.proj-card:hover .pc-toggle{opacity:1}
.pc-toggle:hover{color:var(--danger);border-color:var(--danger)}
.pc-toggle.pc-on{opacity:1;color:var(--success)}
.pc-toggle.pc-on:hover{color:var(--success);border-color:var(--success)}
.off-title{margin:24px 0 10px}
.pc-head{display:flex;align-items:center;gap:9px;font-size:14.5px}
.pc-tag{color:var(--ink-2);font-size:12.5px;margin:6px 0 10px;line-height:1.45}
.pc-foot .badge{font-size:11px}

/* страница проекта */
.proj-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.proj-head h2{font-size:21px;letter-spacing:-.02em}
.proj-links{display:flex;flex-wrap:wrap;gap:8px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tab{padding:8px 14px;font-size:13.5px;font-weight:600;color:var(--ink-2);text-decoration:none;
  border-bottom:2px solid transparent;margin-bottom:-1px}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--amber);border-bottom-color:var(--amber)}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.path-line{font-size:12px;color:var(--ink-2);padding:3px 0;word-break:break-all}
.notes{font-size:13px;color:var(--ink-2);line-height:1.55}

/* таблицы: приглушённые ячейки и кнопки действий */
.dim{color:var(--ink-3)}
td.actions{white-space:nowrap}
td.actions .btn{margin-right:4px}

/* метрики сервера */
.meter-card{margin-bottom:12px}
.meter-label{font-size:13px;color:var(--ink-2);margin-bottom:8px}
.meter{height:8px;border-radius:20px;background:var(--surface-2);overflow:hidden}
.meter-fill{height:100%;border-radius:20px;background:var(--amber);transition:width .4s}
.meter-fill.warn{background:var(--danger)}

/* логи */
.log-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.log-inline .log-title{font-size:12.5px;margin-bottom:8px}
.log-pre{background:var(--bg);border:1px solid var(--line-soft);border-radius:10px;padding:12px;
  font-size:11.5px;line-height:1.5;max-height:60vh;overflow:auto;white-space:pre-wrap;word-break:break-all}
.log-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:50;padding:20px}
.log-card{width:min(900px,94vw);max-height:86vh;display:flex;flex-direction:column;gap:10px}
.log-head{display:flex;align-items:center;justify-content:space-between}

/* доступы */
.secret{letter-spacing:.1em}

/* тосты */
.toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:60}
.toast{min-width:220px;box-shadow:var(--shadow);transition:opacity .35s,transform .35s}
.toast.out{opacity:0;transform:translateX(12px)}

.hint{font-size:12px;color:var(--ink-3);margin-top:10px}

@media(max-width:900px){
  .content{padding:16px 14px 60px}
  .topbar{padding:12px 14px}
}
