.statistics-admin-page{display:grid;gap:18px}.metric-count{padding:5px 10px;border-radius:999px;background:#eef4ff;color:#1d4ed8;font-size:.76rem;font-weight:800}.stat-run-card,.stat-result,.stat-contract,.stat-config,.metric-catalog{padding:18px}.stat-filter-grid,.stat-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-filter-grid label,.stat-config-grid label{display:flex;flex-direction:column;gap:5px;font-size:.74rem;font-weight:700;color:#64748b}.stat-filter-grid input,.stat-filter-grid select,.stat-config-grid input,.stat-config-grid select{min-height:40px}.stat-filter-grid .span-2{grid-column:span 2}.stat-actions{grid-column:1/-1;display:flex;gap:8px;align-items:end}.stat-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0}.stat-summary-grid>div{padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.stat-summary-grid span{display:block;font-size:.67rem;color:#64748b}.stat-summary-grid strong{display:block;margin-top:3px;font-size:.95rem}.stat-result table{width:100%;border-collapse:collapse}.stat-result th,.stat-result td{padding:8px;border-bottom:1px solid #edf0f4;text-align:left;font-size:.75rem}.contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contract-grid>div{padding:10px;border:1px solid #e2e8f0;border-radius:10px;overflow:auto}.contract-grid span{display:block;color:#64748b;font-size:.68rem;margin-bottom:4px}.contract-grid code{font-size:.72rem;white-space:nowrap}.metric-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:520px;overflow:auto}.metric-item{display:flex;flex-direction:column;gap:3px;padding:9px;border:1px solid #e2e8f0;border-radius:9px;color:#334155}.metric-item span{font-size:.76rem;font-weight:800}.metric-item small{font-size:.62rem;color:#64748b}.metric-item.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}@media(max-width:1000px){.stat-filter-grid,.stat-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.stat-run-card,.stat-result,.stat-contract,.stat-config,.metric-catalog{padding:12px}.stat-filter-grid,.stat-config-grid,.contract-grid,.metric-list{grid-template-columns:1fr}.stat-filter-grid .span-2{grid-column:auto}.stat-actions{position:sticky;bottom:0;background:#fff;padding:8px 0}.stat-actions .btn{flex:1;justify-content:center}}
.pk-stat-result{display:grid;gap:12px}.pk-stat-result>h3{margin:0;color:var(--text-primary,#0f172a)}.pk-stat-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.pk-stat-summary>div{padding:9px 10px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc}.pk-stat-summary span{display:block;font-size:.66rem;color:#64748b}.pk-stat-summary strong{display:block;margin-top:2px;font-size:.9rem;color:#0f172a}.pk-stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.pk-stat-card{padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.pk-stat-card>div{display:flex;justify-content:space-between;gap:8px;padding:3px 0}.pk-stat-card span{font-size:.66rem;color:#64748b}.pk-stat-card strong{font-size:.74rem;color:#0f172a;text-align:right}.pk-stat-chart{display:grid;gap:9px}.pk-stat-bar-head{display:flex;justify-content:space-between;gap:8px;font-size:.72rem}.pk-stat-bar-track{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}.pk-stat-bar-track i{display:block;height:100%;background:#2563eb;border-radius:inherit}.pk-stat-view-number .pk-stat-summary strong{font-size:1.15rem}.pk-stat-table table{width:100%;border-collapse:collapse}@media(max-width:640px){.pk-stat-summary,.pk-stat-cards{grid-template-columns:1fr 1fr}.pk-stat-table{overflow:auto}.pk-stat-table table{min-width:520px}}@media(max-width:420px){.pk-stat-summary,.pk-stat-cards{grid-template-columns:1fr}}
.stat-admin-grid{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.6fr);gap:16px}.stat-group-manager,.stat-config,.stat-sortcode-builder,.stat-sortcode-list{padding:18px}.stat-group-form{display:grid;grid-template-columns:1.2fr .55fr;gap:10px}.stat-group-form label,.sortcode-create-bar label{display:flex;flex-direction:column;gap:5px;font-size:.72rem;font-weight:750;color:var(--muted)}.stat-group-form label:nth-child(3){grid-column:1/-1}.stat-group-form input,.sortcode-create-bar input{min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink)}.stat-group-form .btn{align-self:end}.stat-group-list{display:grid;gap:7px;margin-top:14px}.stat-group-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.stat-group-list strong{font-size:.76rem}.stat-group-list span{color:var(--muted);font-size:.66rem}.stat-config-grid .span-2{grid-column:span 2}.sortcode-create-bar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}.stat-check-table{max-height:620px}.stat-check-table table{min-width:980px}.stat-check-table th:first-child,.stat-check-table td:first-child{width:44px;text-align:center}.stat-check-table td small{display:block;margin-top:3px;color:var(--muted);font-size:.64rem}.stat-check-table input[type=checkbox]{width:16px;height:16px}.stat-sortcode-list code{font-size:.7rem;word-break:break-all}.pk-stat-bundle{display:grid;gap:14px}.pk-stat-bundle>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.pk-stat-bundle>header small{color:var(--muted)}@media(max-width:980px){.stat-admin-grid{grid-template-columns:1fr}.stat-group-form{grid-template-columns:1fr}.stat-group-form label:nth-child(3){grid-column:auto}}@media(max-width:640px){.sortcode-create-bar{grid-template-columns:1fr}.stat-config-grid .span-2{grid-column:auto}.stat-group-manager,.stat-config,.stat-sortcode-builder,.stat-sortcode-list{padding:12px}}

/* V1.0.13 - editable administration groups */
.stat-group-row{display:grid;grid-template-columns:minmax(180px,1.5fr) 100px 120px;gap:8px;align-items:end;padding:10px;border:1px solid var(--line,#e2e8f0);border-radius:10px;background:var(--surface-soft,#f8fafc)}
.stat-group-row label{display:grid;gap:4px;font-size:10px;font-weight:700;color:var(--muted,#64748b)}
.stat-group-row input,.stat-group-row select{min-width:0;height:35px;padding:6px 8px;border:1px solid var(--line,#dbe2ea);border-radius:8px;background:var(--surface,#fff);color:var(--ink,#172033)}
.stat-group-row .span-2{grid-column:1/3}.stat-group-row-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted,#64748b)}
@media(max-width:760px){.stat-group-row{grid-template-columns:1fr 1fr}.stat-group-row .span-2{grid-column:1/-1}.stat-group-row-meta{grid-column:1/-1}}

/* V1.0.16 - Statistics CRUD, runtime sortcode groups and activity history */
.stat-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.metric-catalog table small,.stat-activity-card table small{display:block;margin-top:3px;color:#64748b;font-size:.66rem}.row-actions{display:flex;align-items:center;gap:10px}.row-actions form{margin:0}.link-danger{border:0;background:transparent;padding:0;color:#b42318;font:inherit;cursor:pointer}.stat-trash{display:grid;gap:8px}.stat-trash summary{cursor:pointer;font-weight:800}.trash-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #edf0f4}.stat-config textarea{width:100%;min-height:96px;padding:9px 10px;border:1px solid #dbe2ea;border-radius:9px;background:#fff;color:#172033;resize:vertical}.stat-config label small{font-weight:500;color:#64748b}.stat-contract{padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;overflow:auto}.stat-contract span{display:block;margin-bottom:4px;color:#64748b;font-size:.68rem}.sortcode-create-bar{grid-template-columns:minmax(200px,1fr) minmax(180px,.7fr) auto}.statistics-activity-page{min-width:0}.stat-activity-card{padding:18px;min-width:0}.stat-activity-card table{min-width:900px}.stat-activity-card td code{font-size:.68rem;white-space:normal;word-break:break-word}.stat-activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-outcome{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eef2f7;font-size:.65rem;font-weight:800}.stat-outcome-success{background:#ecfdf3;color:#067647}.stat-outcome-denied,.stat-outcome-rate_limited{background:#fff4e5;color:#b54708}.stat-outcome-error,.stat-outcome-invalid{background:#fef3f2;color:#b42318}.btn-danger{background:#b42318;color:#fff;border-color:#b42318}@media(max-width:980px){.stat-head-actions{justify-content:flex-start}.stat-activity-grid{grid-template-columns:1fr}.sortcode-create-bar{grid-template-columns:1fr 1fr}.sortcode-create-bar .btn{grid-column:1/-1}}@media(max-width:640px){.sortcode-create-bar{grid-template-columns:1fr}.sortcode-create-bar .btn{grid-column:auto}.stat-activity-card{padding:12px}}

/* V2.13.2 - Statistics catalog health / repair */
.stat-catalog-empty{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.stat-inline-repair{margin:0}.stat-inline-repair .btn{white-space:nowrap}.stat-run-card select:disabled,.stat-run-card button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.stat-catalog-empty{align-items:stretch}.stat-inline-repair,.stat-inline-repair .btn{width:100%}}

/* V2.14 - Trình tạo thống kê Việt hoá, chọn mẫu thay cho cấu hình kỹ thuật bắt buộc. */
.statistics-metric-builder{gap:16px}.stat-builder-head{align-items:flex-start}.stat-builder-kicker{display:inline-flex;margin-bottom:5px;font-size:.67rem;font-weight:900;letter-spacing:.08em;color:var(--brand)}.stat-preset-panel,.stat-builder-form-card{padding:18px}.stat-preset-head,.stat-form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.stat-preset-head h3,.stat-form-heading h3{margin:0 0 5px;font-size:1rem}.stat-preset-head p,.stat-form-heading p{margin:0;max-width:780px;font-size:.72rem;line-height:1.5;color:var(--muted)}.stat-preset-head>strong,.stat-form-step{flex:0 0 auto;display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--brand) 9%,var(--surface));color:var(--brand);font-size:.68rem;font-weight:900}.stat-preset-tools{display:grid;grid-template-columns:1.3fr .75fr 1fr;gap:10px;margin-bottom:12px}.stat-preset-tools label{display:grid;gap:5px;font-size:.68rem;font-weight:800;color:var(--muted)}.stat-preset-tools input,.stat-preset-tools select{min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink)}.stat-preset-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:480px;overflow:auto;padding:2px}.stat-preset-card{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:start;min-width:0;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}.stat-preset-card:hover,.stat-preset-card.is-selected{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 9%,transparent)}.stat-preset-card.is-selected{background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.stat-preset-card>div{min-width:0;display:grid;gap:4px}.stat-preset-card strong{font-size:.75rem;line-height:1.25}.stat-preset-card small{font-size:.62rem;line-height:1.38;color:var(--muted)}.stat-preset-card em{font-style:normal;white-space:nowrap;font-size:.58rem;font-weight:800;color:var(--muted)}.stat-preset-card i{position:absolute;right:8px;bottom:7px;font-style:normal;font-size:.55rem;font-weight:900;color:var(--brand)}.stat-preset-order{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface-soft);font-size:.65rem;font-weight:900;color:var(--brand)}.stat-builder-form label>span,.stat-technical label>span{font-size:.69rem;font-weight:800;color:var(--muted)}.stat-builder-form textarea{min-width:0;width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);resize:vertical}.stat-field-primary input{font-size:.94rem;font-weight:750}.stat-technical{border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);overflow:hidden}.stat-technical>summary{cursor:pointer;padding:11px 12px;font-size:.72rem;font-weight:850;color:var(--ink)}.stat-technical>summary small{margin-left:5px;font-weight:600;color:var(--muted)}.stat-technical-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,.7fr);gap:12px;padding:0 12px 12px}.stat-technical-grid label{display:grid;gap:5px}.stat-technical-grid label small{font-size:.61rem;line-height:1.4;color:var(--muted)}.stat-engine-help{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);display:grid;align-content:start;gap:5px}.stat-engine-help strong{font-size:.64rem;color:var(--muted)}.stat-engine-help b{font-size:.8rem}.stat-engine-help p{margin:2px 0 0;font-size:.66rem;line-height:1.45;color:var(--muted)}.stat-builder-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat-builder-notes article{padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.stat-builder-notes strong{font-size:.75rem}.stat-builder-notes p{margin:5px 0 0;font-size:.65rem;line-height:1.45;color:var(--muted)}
@media(max-width:1100px){.stat-preset-list{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-preset-tools{grid-template-columns:1fr 1fr}.stat-preset-search{grid-column:1/-1}}
@media(max-width:720px){.stat-preset-panel,.stat-builder-form-card{padding:12px}.stat-preset-head,.stat-form-heading{display:grid}.stat-preset-tools,.stat-preset-list,.stat-technical-grid,.stat-builder-notes{grid-template-columns:1fr}.stat-preset-search{grid-column:auto}.stat-preset-list{max-height:420px}.stat-preset-card{grid-template-columns:32px minmax(0,1fr)}.stat-preset-card em{grid-column:2}.stat-config-grid.stat-builder-form{grid-template-columns:1fr}.stat-config-grid.stat-builder-form .span-2{grid-column:auto}}
