/* ============================================================================
   Bo‘lim dashboardlari (views/dash.js) va “Ma’lumot manbalari” sahifasi (views/data.js)
   Ranglar — faqat tokens.css dagi tokenlar.
   ============================================================================ */

/* ---------------------------------------------------------------- dashboard */
.dash{margin:var(--sp-4) 0 var(--sp-5)}
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.dash-title{display:flex;align-items:center;gap:9px;font-size:var(--fs-h2);font-weight:700;color:var(--ink);flex-wrap:wrap}
.dash-title svg{color:var(--deep-aqua)}
.dash-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dash-month{width:auto;min-width:140px}
.dash-note{display:flex;gap:8px;align-items:flex-start;margin-bottom:var(--sp-3);line-height:1.5}
.dash-note svg{flex:0 0 auto;margin-top:2px}
.dash-loading{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:var(--fs-sm);padding:var(--sp-5) 0}

.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}
.dash-kpis .kpi-val{font-size:24px;margin-top:4px}
.kpi-sub{font-size:11.5px;color:var(--ink-3);margin-top:5px;line-height:1.35}

.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--sp-4)}
.dash-panel.wide{grid-column:1 / -1}
.dash-panel .card-body{min-width:0}
.dash-empty{color:var(--ink-3);font-size:var(--fs-sm);padding:6px 0}
.dash-tbl{border:0;border-radius:0;background:transparent}
.dash-tbl table.tbl{min-width:0;width:100%}
.dash-tbl table.tbl td,.dash-tbl table.tbl th{padding:8px 10px}
.dash-tbl tr.st-red td,.dash-tbl tr.st-yellow td,.dash-tbl tr.st-green td{color:var(--ink)}
.dot-st{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--st);margin-right:7px;vertical-align:1px}
.dash-link{text-decoration:none;color:inherit}
.dash-link:hover{background:var(--surface-2);text-decoration:none}
.dash-link:hover .li-title{color:var(--brand-primary)}

/* gorizontal ustunlar */
.hbars{display:flex;flex-direction:column;gap:9px}
.hbar{display:grid;grid-template-columns:minmax(80px,38%) 1fr auto;align-items:center;gap:10px;font-size:12.5px}
.hbar-label{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar-track{height:9px;background:var(--gray-bg);border-radius:6px;overflow:hidden}
.hbar-track i{display:block;height:100%;border-radius:6px;background:var(--st,var(--deep-aqua))}
.hbar-val{font-weight:650;color:var(--ink);text-align:right;min-width:48px;white-space:nowrap}

/* vertikal ustunlar (haftalik oqim) */
.vbars{display:flex;align-items:flex-end;gap:12px;height:170px;padding-top:4px}
.vbar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;min-width:0}
.vbar-col{flex:1;width:100%;max-width:56px;display:flex;align-items:flex-end;background:var(--gray-bg);border-radius:8px;overflow:hidden}
.vbar-col i{display:block;width:100%;background:linear-gradient(180deg,var(--brand-primary) 0%,var(--brand-dark) 100%);border-radius:8px 8px 0 0}
.vbar.neg .vbar-col i{background:var(--risk-red)}
.vbar-val{font-size:11.5px;font-weight:650;color:var(--ink);white-space:nowrap}
.vbar-label{font-size:11px;color:var(--ink-3)}

/* bosqichlar */
.stages{display:flex;align-items:stretch;gap:6px}
.stage{flex:1;min-width:0;border:1px solid var(--line);border-radius:var(--r);padding:10px 11px;background:var(--surface-2)}
.stage-label{font-size:11px;font-weight:650;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.stage-val{font-size:24px;font-weight:700;color:var(--ink);margin-top:3px}
.stage-sub{font-size:11.5px;color:var(--ink-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-arrow{display:flex;align-items:center;color:var(--ink-3)}

/* bron kalendari */
.cal-wrap{overflow-x:auto}
table.cal{border-collapse:separate;border-spacing:4px;font-size:12px;width:100%}
table.cal th{font-weight:600;color:var(--ink-3);font-size:11px;text-align:center}
table.cal tbody th{text-align:left;color:var(--ink-2);white-space:nowrap;padding-right:8px;max-width:190px;overflow:hidden;text-overflow:ellipsis}
table.cal td{padding:0}
table.cal td i{display:block;height:20px;border-radius:5px;background:var(--gray-bg);border:1px solid var(--gray-line)}
table.cal td i.cal-b{background:var(--deep-aqua);border-color:var(--deep-aqua)}
table.cal td i.cal-s{background:var(--amber);border-color:var(--amber)}
table.cal td i.cal-x{background:var(--risk-red);border-color:var(--risk-red)}

/* avtopark holati */
.fleet{display:grid;grid-template-columns:repeat(auto-fill,minmax(16px,1fr));gap:5px}
.fleet i{display:block;aspect-ratio:1;border-radius:4px;background:var(--life-green)}
.fleet i.fl-y{background:var(--amber)}
.fleet i.fl-r{background:var(--risk-red)}

/* ssenariylar */
.scen-q{font-weight:650;color:var(--ink);margin-bottom:10px}
.scen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.scen-item{border:1px solid var(--line);border-radius:var(--r);padding:10px;background:var(--surface-2)}
.scen-label{font-size:11.5px;color:var(--ink-3)}
.scen-val{font-size:16px;font-weight:700;color:var(--life-green-600);margin-top:4px}

.dash-missing{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2);font-size:var(--fs-sm);line-height:1.5}
.dash-missing svg{color:var(--ink-3);flex:0 0 auto;margin-top:2px}

/* keyingi ish + AI xulosasi */
.dash-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--sp-4);margin-top:var(--sp-4);align-items:start}
.dash-next,.dash-insight{border:1px solid var(--line);border-radius:var(--r-lg);padding:13px 15px;background:var(--surface)}
.dash-next{border-left:3px solid var(--brand-secondary)}
.dash-insight{border-left:3px solid var(--brand-primary)}
.dash-k{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.dash-k .muted{text-transform:none;letter-spacing:0;font-weight:500}
.dash-v{font-size:14px;color:var(--ink);font-weight:600;margin-top:6px;line-height:1.5}
.dash-s{font-size:11.5px;color:var(--ink-3);margin-top:5px}

/* AI xulosasi (Claude) */
.ai-top{display:flex;gap:10px;align-items:flex-start;margin-top:8px}
.ai-top .badge{flex:0 0 auto;margin-top:2px}
.ai-top .dash-v{margin-top:0}
.ai-sec{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:12px 0 4px}
.dash-insight ul.bullets{margin:0}
.dash-insight ul.bullets.muted li{color:var(--ink-3)}
.ai-tav{margin:0;padding-left:22px;display:grid;gap:7px;font-size:13px;color:var(--ink);list-style:decimal outside}
.ai-tav li{display:list-item}
.ai-tav li::marker{color:var(--ink-3);font-weight:600}
.ai-tav b{font-weight:600}
.ai-who{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.ai-wait{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:13px;padding:14px 0}

/* ----------------------------------------------------- ma’lumot manbalari */
.ds-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}
.ds-steps{counter-reset:step;display:grid;gap:10px}
.ds-step{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:var(--ink-2);line-height:1.55}
.ds-step::before{counter-increment:step;content:counter(step);flex:0 0 24px;height:24px;border-radius:50%;
  display:grid;place-items:center;background:var(--brand-primary-100);color:var(--brand-primary);font-weight:700;font-size:12px}
.ds-step code,.ds-fields code{font-family:var(--mono);font-size:11.5px;background:var(--gray-bg);padding:1px 5px;border-radius:4px}
.ds-tables{display:grid;gap:var(--sp-3)}
.ds-table .card-head{flex-wrap:wrap}
.ds-table .ds-purpose{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.ds-used{display:flex;gap:5px;flex-wrap:wrap}
.ds-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.ds-fields table.tbl{min-width:560px}
.ds-fields td{font-size:12.5px}
.ds-req{color:var(--risk-red);font-weight:700}
.ds-issues{max-height:320px;overflow:auto}
.ds-issue{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.ds-issue:last-child{border-bottom:0}
.ds-issue .r{color:var(--ink-3);font-family:var(--mono);font-size:11.5px}
.ds-issue.st-red .m{color:var(--risk-red-600)}
.ds-paste{width:100%;min-height:150px;font-family:var(--mono);font-size:12px}
.ds-result{font-size:12.5px;line-height:1.55}
.ds-token{font-family:var(--mono);font-size:12.5px;word-break:break-all;background:var(--gray-bg);border:1px dashed var(--line-strong);
  border-radius:var(--r);padding:10px 12px;user-select:all}
details.ds-more>summary{cursor:pointer;font-size:12.5px;color:var(--brand-primary);font-weight:600;list-style:none;padding:4px 0}
details.ds-more>summary::-webkit-details-marker{display:none}
details.ds-more>summary::before{content:"▸ ";}
details.ds-more[open]>summary::before{content:"▾ ";}

/* --------------------------------------------------------------- moslashuv */
@media (max-width:1180px){
  .dash-kpis,.ds-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .dash-grid,.dash-foot{grid-template-columns:minmax(0,1fr)}
  .stages{flex-wrap:wrap}
  .stage{flex:1 1 40%}
  .stage-arrow{display:none}
}
@media (max-width:560px){
  .dash-kpis,.ds-summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .dash-kpis .kpi-val{font-size:19px}
  .scen{grid-template-columns:minmax(0,1fr)}
  .hbar{grid-template-columns:minmax(70px,40%) 1fr auto}
}
