:root { color-scheme: light; --ink:#17212b; --muted:#657381; --blue:#1769e0; --green:#197145; --amber:#b16b00; --line:#dce4ec; --bg:#f4f7fa; }
* { box-sizing:border-box; }
body { margin:0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--bg); }
.container { width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:56px 0 80px; }
header { margin-bottom:28px; }
.eyebrow { margin:0 0 10px; color:var(--blue); font-size:12px; font-weight:800; letter-spacing:.12em; }
h1 { margin:0; font-size:clamp(32px,5vw,52px); line-height:1.05; letter-spacing:-.04em; }
.subtitle { color:var(--muted); font-size:17px; }
.panel { display:grid; grid-template-columns:1fr auto; gap:16px; align-items:end; margin-top:16px; padding:22px; background:white; border:1px solid var(--line); border-radius:16px; box-shadow:0 12px 35px rgba(33,49,64,.06); }
label { display:grid; gap:7px; font-size:13px; font-weight:700; }
small { color:var(--muted); font-weight:400; }
input,select,button { width:100%; min-height:44px; border-radius:9px; font:inherit; }
input,select { padding:0 12px; color:var(--ink); background:white; border:1px solid #bdc8d3; }
button { padding:0 18px; color:white; font-weight:750; background:var(--blue); border:0; cursor:pointer; }
button:hover { filter:brightness(.94); }
.secondary { width:auto; color:var(--blue); background:#eaf2ff; }
.unit-panel { padding:20px 22px; background:white; border:1px solid var(--line); border-radius:16px; }
.service-panel { margin-top:16px; }
.unit-heading,.unit-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.unit-heading h2 { margin:0 0 3px; }.unit-actions button { min-height:36px; }
.unit-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:18px; max-height:310px; overflow:auto; }
.unit-option { display:flex; grid-template-columns:auto 1fr; align-items:start; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.unit-option:has(input:checked) { border-color:var(--blue); background:#f2f7ff; }
.unit-option input { width:17px; min-height:17px; margin:2px 0 0; }
.unit-option span,.unit-option small,td small { display:block; }.unit-option strong { font-size:13px; }.muted { color:var(--muted); }
.status { min-height:24px; margin:18px 2px; font-size:14px; }
.loading { color:var(--blue); }.success { color:#197145; }.warning { color:#8a5a00; }.error { color:#b3261e; font-weight:650; }
.result-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:20px 0; }
.tabs { display:flex; gap:8px; padding:4px; background:#eaf0f7; border-radius:12px; }
.tab { width:auto; min-height:38px; color:var(--muted); background:transparent; }
.tab.active { color:white; background:var(--blue); }
.report-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cards { display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; margin:22px 0; }
.report-cards { grid-template-columns:repeat(5,minmax(0,1fr)); }
.card { padding:20px; background:white; border:1px solid var(--line); border-radius:14px; }
.card span { display:block; margin-bottom:8px; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.card strong { display:block; overflow-wrap:anywhere; font-size:22px; line-height:1.15; }
.table-header { display:flex; align-items:center; justify-content:space-between; }
h2 { font-size:20px; }
.table-wrap { overflow:auto; background:white; border:1px solid var(--line); border-radius:14px; }
table { width:100%; border-collapse:collapse; }
th,td { padding:14px 16px; text-align:left; white-space:nowrap; border-bottom:1px solid #edf1f5; }
th { color:var(--muted); background:#f9fbfc; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
td { font-size:14px; }.empty { padding:32px; color:var(--muted); text-align:center; }
.report-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:16px; margin-top:16px; }
.report-block { margin-top:16px; padding:20px; background:white; border:1px solid var(--line); border-radius:14px; box-shadow:0 10px 28px rgba(33,49,64,.04); }
.report-block h2 { margin:0 0 6px; }
.report-block p { margin:0 0 14px; }
.block-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.chips.compact { margin-top:8px; }
.chip { display:inline-flex; align-items:center; min-height:30px; padding:6px 10px; color:#26445f; background:#eef5ff; border:1px solid #d7e7ff; border-radius:999px; font-size:12px; font-weight:700; }
.bar-chart { display:grid; gap:10px; margin-top:16px; }
.compact-chart { gap:8px; }
.bar-row { display:grid; grid-template-columns:minmax(150px,1.2fr) minmax(160px,2fr) 72px; align-items:center; gap:12px; }
.bar-label { overflow:hidden; color:#33475b; font-size:13px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.bar-track { height:13px; overflow:hidden; background:#edf2f7; border-radius:999px; }
.bar-fill { height:100%; background:linear-gradient(90deg,var(--blue),#55a6ff); border-radius:999px; }
.bar-value { color:var(--ink); font-size:13px; font-weight:800; text-align:right; }
.bar-empty { padding:22px; color:var(--muted); text-align:center; background:#f9fbfc; border:1px dashed var(--line); border-radius:12px; }
.compact-table table { min-width:100%; }
.compact-table th,.compact-table td { padding:11px 12px; }
.error-details summary { cursor:pointer; font-weight:800; }
.long-cell { max-width:620px; white-space:normal; }
.report-note { margin:16px 2px 0; color:var(--muted); font-size:13px; }
@media (max-width:1050px) { .report-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }.report-grid { grid-template-columns:1fr; }.result-toolbar { align-items:flex-start; flex-direction:column; }.report-actions { justify-content:flex-start; } }
@media (max-width:800px) { .panel,.unit-list { grid-template-columns:1fr; }.cards,.report-cards { grid-template-columns:1fr; }.container { padding-top:32px; }.unit-heading { align-items:flex-start; flex-direction:column; }.bar-row { grid-template-columns:1fr; gap:6px; }.bar-value { text-align:left; }.tabs { width:100%; }.tab { flex:1; } }
@media print {
  body { background:white; }
  header,.unit-panel,.panel,.status,.tabs,.report-actions,#detail-panel { display:none !important; }
  .container { width:100%; padding:0; }
  .result-toolbar { margin:0; }
  .report-cards,.report-grid { grid-template-columns:1fr 1fr; }
  .report-block,.card,.table-wrap { break-inside:avoid; box-shadow:none; }
  button { display:none; }
}
