/* ═══════════════════════════════════════════════════════════
   AI·BNK — Cabinet CSS (ЛК + Admin)
   Подключается ПОСЛЕ style.css
   ═══════════════════════════════════════════════════════════ */

/* ── EXTRA TOKENS (extend style.css) ── */
[data-theme="dark"] {
  --inp-bg:      rgba(255,255,255,0.05);
  --inp-focus:   rgba(0,229,255,0.12);
  --code-bg:     rgba(0,229,255,0.06);
  --sidebar:     rgba(255,255,255,0.03);
  --sidebar-br:  rgba(255,255,255,0.06);
  --active-nav:  rgba(0,229,255,0.10);
}
[data-theme="light"] {
  --inp-bg:      rgba(0,0,0,0.03);
  --inp-focus:   rgba(0,127,168,0.10);
  --code-bg:     rgba(0,127,168,0.06);
  --sidebar:     rgba(255,255,255,0.70);
  --sidebar-br:  rgba(0,0,0,0.07);
  --active-nav:  rgba(0,127,168,0.10);
}

/* ── LAYOUT ── */
.layout{display:flex;padding-top:57px;min-height:100vh}

/* ── SIDEBAR ── */
.sidebar{
  width:230px;flex-shrink:0;
  background:var(--sidebar);border-right:1px solid var(--sidebar-br);
  padding:24px 0;position:fixed;top:57px;left:0;bottom:0;
  overflow-y:auto;transition:background .4s,border-color .4s;
}
.sidebar-section{padding:0 14px 6px;margin-bottom:4px}
.sidebar-label{
  font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--text3);padding:0 8px;margin-bottom:6px;display:block;
}
.sidebar a{
  display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;
  font-size:13px;color:var(--text2);text-decoration:none;transition:all .2s;font-weight:400;
}
.sidebar a:hover{background:var(--card2);color:var(--text)}
.sidebar a.active{background:var(--active-nav);color:var(--accent);font-weight:600}
.sidebar a .ico{font-size:14px;width:18px;text-align:center;flex-shrink:0}

/* ── MAIN CONTENT ── */
main{margin-left:230px;flex:1;padding:40px 44px;max-width:calc(100% - 230px)}
.page-header{margin-bottom:44px;padding-bottom:26px;border-bottom:1px solid var(--border)}
.page-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.page-title{font-family:'Unbounded',sans-serif;font-size:clamp(22px,3vw,34px);font-weight:900;letter-spacing:-1.5px;line-height:1.1;margin-bottom:10px}
.page-desc{font-size:15px;color:var(--text2);line-height:1.7;max-width:540px}

/* ── STATS CARDS ── */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:36px}
.stat-card{
  background:var(--card);border:1px solid var(--border);
  border-radius:14px;padding:22px 24px;
  transition:background .4s,border-color .4s;
}
.stat-card-num{
  font-family:'Unbounded',sans-serif;font-size:32px;font-weight:900;
  color:var(--accent);line-height:1;margin-bottom:6px;
}
.stat-card-lbl{font-size:12px;color:var(--text2)}

/* ── SECTION DIVIDER ── */
.el-section{margin-bottom:60px}
.sec-title{
  font-family:'Unbounded',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:.5px;color:var(--text2);text-transform:uppercase;
  margin-bottom:18px;display:flex;align-items:center;gap:10px;
}
.sec-title::after{content:'';flex:1;height:1px;background:var(--border)}
.sec-num{
  font-size:10px;background:var(--acc-bg);color:var(--accent);
  border:1px solid var(--acc-br);border-radius:50px;
  padding:2px 8px;font-family:'Unbounded',sans-serif;font-weight:700;
}
.demo-box{
  background:var(--card);border:1px solid var(--border);
  border-radius:14px;padding:28px;
  transition:background .4s,border-color .4s;
}
.demo-box+.demo-box{margin-top:14px}
.div{height:1px;background:linear-gradient(90deg,transparent,var(--border2),transparent);margin:0 0 44px}

/* ── HEADINGS IN CABINET ── */
.h-badge{
  display:inline-block;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  background:var(--acc-bg);color:var(--accent);border:1px solid var(--acc-br);
  padding:2px 9px;border-radius:50px;margin-left:8px;vertical-align:middle;
}
.h-meta{font-size:11px;color:var(--text3);margin-top:2px;letter-spacing:.3px}
.text-caption{font-size:10.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);display:block;}

/* ── TEXT ── */
.text-lead{font-size:18px;font-weight:300;color:var(--text);line-height:1.7}
.text-small{font-size:12px;color:var(--text3)}
code{
  font-family:monospace;font-size:13px;background:var(--code-bg);
  color:var(--accent);padding:2px 7px;border-radius:5px;border:1px solid var(--acc-br);
}
blockquote{
  border-left:3px solid var(--accent);padding:13px 18px;
  background:var(--acc-bg);border-radius:0 10px 10px 0;
  font-size:15px;color:var(--text2);line-height:1.7;margin:14px 0;font-style:italic;
}

/* ── LISTS ── */
.list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.ul-default,.ul-check,.ul-icon{list-style:none;display:flex;flex-direction:column;gap:8px}
.ul-default li,.ul-check li,.ul-icon li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text2);line-height:1.5}
.ul-default li::before{content:'—';color:var(--accent);font-weight:700;flex-shrink:0}
.ul-check li::before{content:'✓';color:var(--accent3);font-weight:700;flex-shrink:0}
.ul-num{list-style:none;counter-reset:num;display:flex;flex-direction:column;gap:9px}
.ul-num li{
  display:flex;align-items:flex-start;gap:11px;font-size:14px;
  color:var(--text2);line-height:1.5;counter-increment:num;
}
.ul-num li::before{
  content:counter(num,'0');font-family:'Unbounded',sans-serif;font-size:10px;font-weight:700;
  color:var(--accent);background:var(--acc-bg);border:1px solid var(--acc-br);
  min-width:24px;height:24px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.li-ico{font-size:15px;flex-shrink:0}

/* ── BUTTONS ── */
.btn-grid{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.btn-grid+.btn-grid{margin-top:12px}
.btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:10px 20px;border-radius:8px;font-family:'Mulish',sans-serif;
  font-size:13.5px;font-weight:600;text-decoration:none;
  cursor:pointer;border:none;transition:all .2s;line-height:1;white-space:nowrap;
}
.btn-lg{padding:13px 26px;font-size:15px;border-radius:10px}
.btn-sm{padding:7px 13px;font-size:12px;border-radius:6px}
.btn-xs{padding:4px 9px;font-size:11px;border-radius:5px;font-weight:700}
.btn-primary{background:var(--accent);color:#000}
.btn-primary:hover{box-shadow:0 0 22px rgba(0,229,255,.38);transform:translateY(-2px)}
[data-theme="light"] .btn-primary:hover{box-shadow:0 0 22px rgba(0,127,168,.28)}
.btn-secondary{background:var(--accent2);color:#fff}
.btn-secondary:hover{box-shadow:0 0 22px rgba(124,58,237,.38);transform:translateY(-2px)}
.btn-success{background:var(--accent3);color:#fff}
.btn-success:hover{box-shadow:0 0 22px rgba(16,185,129,.38);transform:translateY(-2px)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{box-shadow:0 0 22px rgba(248,113,113,.38);transform:translateY(-2px)}
[data-theme="light"] .btn-danger{background:#dc2626}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border2);}
.btn-ghost:hover{border-color:var(--acc-br);background:var(--acc-bg);color:var(--accent)}
.btn-outline-accent{background:transparent;color:var(--accent);border:1px solid var(--acc-br);}
.btn-outline-accent:hover{background:var(--acc-bg);box-shadow:0 0 14px rgba(0,229,255,.18)}
.btn-outline-purple{background:transparent;color:var(--accent2);border:1px solid var(--acc2-br);}
.btn-outline-purple:hover{background:var(--acc2-bg)}
.btn-soft-primary{background:var(--acc-bg);color:var(--accent);border:1px solid var(--acc-br)}
.btn-soft-primary:hover{background:var(--acc-br)}
.btn-soft-green{background:var(--acc3-bg);color:var(--accent3);border:1px solid var(--acc3-br)}
.btn-soft-green:hover{background:var(--acc3-br)}
.btn-soft-danger{background:var(--dan-bg);color:var(--danger);border:1px solid var(--dan-br)}
.btn-soft-danger:hover{background:var(--dan-br)}
.btn-link{background:transparent;color:var(--accent);border:none;padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:3px}
.btn-link:hover{opacity:.7}
.btn-icon{width:38px;height:38px;padding:0;border-radius:9px;justify-content:center;font-size:16px}
.btn-icon.btn-lg{width:46px;height:46px;border-radius:11px;font-size:20px}
.btn-pill{border-radius:50px}
.btn-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.btn-loading{position:relative;color:transparent !important}
.btn-loading::after{
  content:'';position:absolute;width:14px;height:14px;border-radius:50%;
  border:2px solid rgba(255,255,255,.3);border-top-color:#fff;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── NOTIFICATIONS ── */
.notif{
  display:flex;align-items:flex-start;gap:13px;padding:15px 18px;
  border-radius:12px;border:1px solid;margin-bottom:9px;
  position:relative;overflow:hidden;transition:all .3s;
}
.notif::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px 0 0 2px}
.notif-icon{font-size:17px;flex-shrink:0;margin-top:1px}
.notif-body{flex:1}
.notif-title{font-weight:600;font-size:13.5px;margin-bottom:2px}
.notif-msg{font-size:12.5px;color:var(--text2);line-height:1.5}
.notif-close{background:none;border:none;cursor:pointer;color:var(--text3);font-size:15px;padding:0;transition:color .2s;flex-shrink:0;line-height:1;}
.notif-close:hover{color:var(--text)}
.notif-info{background:var(--acc-bg);border-color:var(--acc-br)}
.notif-info::before{background:var(--accent)}
.notif-info .notif-title{color:var(--accent)}
.notif-success{background:var(--acc3-bg);border-color:var(--acc3-br)}
.notif-success::before{background:var(--accent3)}
.notif-success .notif-title{color:var(--accent3)}
.notif-warning{background:var(--warn-bg);border-color:var(--warn-br)}
.notif-warning::before{background:var(--warn)}
.notif-warning .notif-title{color:var(--warn)}
.notif-danger{background:var(--dan-bg);border-color:var(--dan-br);margin-bottom:0}
.notif-danger::before{background:var(--danger)}
.notif-danger .notif-title{color:var(--danger)}

/* BADGES */
.badge-inline{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:50px;letter-spacing:.4px;}
.badge-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* ── TABLE ── */
.tbl-wrap{border-radius:14px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-sm)}
table{width:100%;border-collapse:collapse;font-size:13px}
thead tr{background:var(--card2);border-bottom:1px solid var(--border2)}
thead th{padding:12px 16px;text-align:left;font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text2);white-space:nowrap;}
tbody tr{border-bottom:1px solid var(--border);transition:background .15s}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:var(--card2)}
tbody td{padding:12px 16px;color:var(--text2);vertical-align:middle}
tbody td:first-child{color:var(--text);font-weight:500}
.td-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:50px}
.td-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.td-actions{display:flex;gap:5px}
tfoot tr{background:var(--card);border-top:2px solid var(--border2)}
tfoot td{padding:11px 16px;font-size:13px;font-weight:600;color:var(--text)}

/* ── FORM ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{display:flex;flex-direction:column;gap:5px}
.form-group.full{grid-column:1/-1}
label{font-size:12px;font-weight:600;color:var(--text2);letter-spacing:.3px}
label span.req{color:var(--danger)}
.inp{
  background:var(--inp-bg);border:1px solid var(--border2);border-radius:9px;
  padding:11px 13px;font-family:'Mulish',sans-serif;font-size:14px;
  color:var(--text);outline:none;
  transition:border-color .2s,background .2s,box-shadow .2s;width:100%;
}
.inp::placeholder{color:var(--text3)}
.inp:focus{border-color:var(--acc-br);background:var(--inp-focus);box-shadow:0 0 0 3px rgba(0,229,255,.07);}
[data-theme="light"] .inp:focus{box-shadow:0 0 0 3px rgba(0,127,168,.07)}
.inp:disabled{opacity:.4;cursor:not-allowed}
.inp-error{border-color:var(--dan-br) !important}
.inp-error:focus{box-shadow:0 0 0 3px rgba(248,113,113,.08) !important}
.inp-success{border-color:var(--acc3-br) !important}
.inp-wrap{position:relative}
.inp-icon-l .inp{padding-left:38px}
.inp-icon-r .inp{padding-right:38px}
.inp-ico{position:absolute;top:50%;transform:translateY(-50%);font-size:14px;color:var(--text3);pointer-events:none;}
.inp-ico.left{left:12px}
.inp-ico.right{right:12px}
select.inp{
  cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239191a8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;
}
textarea.inp{resize:vertical;min-height:90px;line-height:1.6}
.form-hint{font-size:11px;color:var(--text3);margin-top:2px}
.form-error{font-size:11px;color:var(--danger);margin-top:2px;display:flex;align-items:center;gap:4px}

/* CHECKBOXES & RADIO */
.check-group,.radio-group{display:flex;flex-direction:column;gap:9px}
.check-item,.radio-item{display:flex;align-items:center;gap:10px;cursor:pointer}
.check-item input,.radio-item input{width:17px;height:17px;cursor:pointer;accent-color:var(--accent);flex-shrink:0;}
.check-item span,.radio-item span{font-size:13.5px;color:var(--text2)}

/* TOGGLE SWITCH */
.switch-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}
.switch-item+.switch-item{border-top:1px solid var(--border)}
.switch-label{font-size:13px;color:var(--text2)}
.switch-desc{font-size:11px;color:var(--text3);margin-top:2px}
.switch{position:relative;width:40px;height:21px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.slider{
  position:absolute;inset:0;border-radius:50px;
  background:var(--border2);cursor:pointer;transition:.3s;border:1px solid var(--border2);
}
.slider::before{
  content:'';position:absolute;width:15px;height:15px;border-radius:50%;
  background:#fff;bottom:2px;left:2px;transition:.3s;box-shadow:0 2px 5px rgba(0,0,0,.2);
}
input:checked+.slider{background:var(--accent);border-color:var(--accent)}
input:checked+.slider::before{transform:translateX(19px)}

/* RANGE */
.range-inp{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:50px;background:var(--border2);outline:none;cursor:pointer;transition:background .3s}
.range-inp::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 0 0 3px var(--acc-bg);}
.range-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--text3);margin-top:5px}

/* FILE DROP */
.file-drop{border:2px dashed var(--border2);border-radius:12px;padding:26px 18px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;}
.file-drop:hover{border-color:var(--acc-br);background:var(--acc-bg)}
.file-drop-icon{font-size:26px;margin-bottom:7px;display:block}
.file-drop p{font-size:13px;color:var(--text2);line-height:1.5}
.file-drop p strong{color:var(--accent)}
.file-drop input{display:none}
.form-actions{display:flex;align-items:center;gap:10px;padding-top:4px;grid-column:1/-1;flex-wrap:wrap}

/* ── REPORT SPECIFIC ── */
.report-score-block{
  background:var(--acc-bg);border:1px solid var(--acc-br);
  border-radius:16px;padding:28px;text-align:center;margin-bottom:24px;
}
.report-score-num{font-family:'Unbounded',sans-serif;font-size:64px;font-weight:900;color:var(--accent);line-height:1}
.report-score-sub{font-size:14px;color:var(--text2);margin-top:8px}
.report-pills{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.rpill{padding:5px 14px;border-radius:50px;font-size:12px;font-weight:700}

/* ── SCROLL REVEAL ── */
.rev{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.rev.vis{opacity:1;transform:translateY(0)}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .sidebar{display:none}
  main{margin-left:0;max-width:100%;padding:24px 16px}
  .form-grid{grid-template-columns:1fr}
  .form-group.full{grid-column:1}
  .stat-grid{grid-template-columns:1fr 1fr}
}
