.kpi-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fff}.kpi-toolbar label{display:grid;gap:6px;color:var(--muted)}.kpi-toolbar select{min-width:260px}.kpi-summary{display:grid;grid-template-columns:1.35fr 1fr 1fr .8fr;gap:12px}.kpi-summary article{min-height:110px;padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:10px;background:#fff}.kpi-summary article.dark{color:var(--paper);background:var(--ink)}.kpi-summary article.warning{border-color:#d69837;background:#fff5df}.kpi-summary small{color:var(--muted)}.kpi-summary strong{font-size:clamp(22px,2vw,30px)}.kpi-alert{margin-top:14px;padding:16px 18px;display:grid;gap:5px;border:1px solid #e5a2a0;border-radius:10px;background:#fff0ee;color:#8e2f2b}.kpi-section-head{margin:28px 0 12px;display:flex;align-items:end;justify-content:space-between}.kpi-section-head h2{margin:0 0 4px}.kpi-section-head p{margin:0;color:var(--muted)}.kpi-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kpi-result{padding:18px;border:1px solid var(--line);border-radius:10px;background:#fff}.kpi-result header{display:flex;justify-content:space-between;gap:16px}.kpi-result header span{display:grid;gap:4px}.kpi-result header small,.kpi-result-grid small{color:var(--muted)}.kpi-result header>b{font-size:23px}.kpi-result-grid{margin-top:16px;padding-top:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px solid var(--line)}.kpi-result-grid span{display:grid;gap:4px}.kpi-help,.kpi-error{margin:14px 0 0;padding:10px 12px;border-left:3px solid var(--green);background:#f0f2ec}.kpi-error{border-color:#e35d55;background:#fff0ee;color:#8e2f2b}.kpi-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef0ea}.kpi-status.needs_review,.kpi-status.unmatched{color:#8a5b00;background:#fff0cc}.kpi-status.cancelled{color:#8e2f2b;background:#ffe7e4}.kpi-rule{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}.kpi-rule.empty-rule{display:flex;align-items:center;justify-content:space-between;gap:20px}.kpi-rule-title{display:flex;align-items:start;justify-content:space-between;gap:18px}.kpi-rule h2{margin:4px 0}.kpi-rule p{margin:4px 0;color:var(--muted)}.kpi-scale{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}.kpi-scale span{padding:14px;display:grid;gap:5px;border-right:1px solid var(--line)}.kpi-scale span:last-child{border-right:0}.kpi-year{margin-top:14px}.kpi-month-grid{padding:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kpi-month-grid label{padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px;border:1px solid var(--line);border-radius:8px}.kpi-month-grid label span{grid-column:1/-1;text-transform:capitalize;color:var(--muted)}.kpi-month-grid input{min-width:0}.kpi-editor>header{display:flex}.kpi-editor-meta{padding:16px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi-editor label{display:grid;gap:6px}.kpi-target-columns{padding:0 16px 16px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.kpi-target-columns section{padding:14px;border:1px solid var(--line);border-radius:8px}.kpi-target-columns h3{margin-top:0}.kpi-target-columns label{grid-template-columns:1fr 120px;align-items:center;margin:8px 0}.kpi-threshold{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:8px 0}.kpi-comment{margin:0 16px}.kpi-editor .form-actions{padding:16px}.kpi-editor input,.kpi-editor select,.kpi-month-grid input{min-height:40px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}
@media(max-width:1000px){.kpi-summary,.kpi-results{grid-template-columns:1fr 1fr}.kpi-month-grid,.kpi-editor-meta{grid-template-columns:1fr 1fr}.kpi-target-columns{grid-template-columns:1fr}}
@media(max-width:650px){.kpi-toolbar,.kpi-rule-title,.kpi-rule.empty-rule{align-items:stretch;flex-direction:column}.kpi-toolbar select{min-width:0;width:100%}.kpi-summary,.kpi-results,.kpi-month-grid,.kpi-editor-meta,.kpi-result-grid{grid-template-columns:1fr}.kpi-month-grid label{grid-template-columns:1fr}}
