#page-dashboard .qd-page{max-width:none;width:100%;min-width:0;margin:0;color:#223047;padding:4px 0 24px;font-size:14px}
#page-dashboard .qd-page button:not(.btn){border-radius:6px!important}
#page-dashboard .qd-page button.qd-kpi:not(.btn){border-radius:8px!important}
.qd-page *{box-sizing:border-box}.qd-page h2,.qd-page h3,.qd-page p{margin:0}.qd-page h2{font-size:24px;font-weight:650}.qd-page h3{font-size:16px;font-weight:600}.qd-page p,.qd-page small{color:#6b7b90;line-height:1.6}.qd-page button{cursor:pointer;font:inherit}.qd-page button:disabled{cursor:default;opacity:.5}.qd-page button:focus-visible,.qd-page select:focus-visible,.qd-page input:focus-visible{outline:2px solid #1677ff;outline-offset:3px}
.qd-header,.qd-header-actions,.qd-card>header,.qd-page dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.qd-header{margin-bottom:16px}.qd-header p{margin-top:5px}.qd-header-actions{font-size:12px;color:#6b7b90}.qd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.qd-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;text-align:left;background:#fff;border:1px solid #e0e7f0;border-radius:8px;color:#34445b;min-height:108px}.qd-kpi:hover{border-color:#91bfff;background:#fbfdff}.qd-kpi strong{font-size:32px;line-height:1.1;font-weight:650;font-variant-numeric:tabular-nums;color:#182d49}.qd-kpi.is-warning strong{color:#bc5c10}.qd-kpi small{font-size:12px}.qd-scope{font-size:12px;margin:8px 0 16px!important}
.qd-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,1fr);gap:16px;margin-bottom:16px;align-items:start}.qd-card{background:#fff;border:1px solid #e0e7f0;border-radius:8px;min-width:0;overflow:hidden}.qd-card>header{padding:14px 18px;border-bottom:1px solid #edf1f6}.qd-card>header p{font-size:12px;margin-top:4px}.qd-card>header>span{font-size:12px;color:#6b7b90;white-space:nowrap}.qd-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid #edf1f6}.qd-tabs button{border:0;background:transparent;padding:8px 10px;border-radius:6px;color:#65758a;font-size:13px;min-height:34px}.qd-tabs button[aria-pressed=true]{background:#eaf3ff;color:#1264d2;font-weight:600}.qd-tabs button:hover{background:#f1f6fc}
.qd-todo{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid #edf1f6}.qd-risk{height:34px;border-radius:2px;background:#b6c7db}.qd-risk.p0{background:#e66750}.qd-risk.p1{background:#e6a23c}.qd-todo h4{font-size:14px;margin:0 0 5px;font-weight:600;overflow-wrap:anywhere}.qd-todo p{font-size:13px}.qd-todo small{display:block;font-size:12px;margin-top:5px;overflow-wrap:anywhere}.qd-link{border:0;background:#edf5ff;color:#1264d2;border-radius:6px;padding:9px 12px;white-space:nowrap;min-height:36px}.qd-link.subtle{background:transparent}.qd-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 20px;font-size:12px;color:#6b7b90}.qd-pager>div{display:flex;gap:8px}.qd-pager button{border:1px solid #dce5ef;background:#fff;color:#385577;border-radius:5px;padding:6px 10px;min-height:32px}
.qd-state{padding:35px 20px;text-align:center;color:#718196;line-height:1.7}.qd-state button{margin:10px auto 0;display:block}.qd-state.is-error{color:#ab4a24;background:#fffcf8}.qd-kpis>.qd-state{grid-column:1/-1;border:1px solid #e0e7f0;border-radius:8px;background:#fff;min-height:108px}.qd-stamp{padding:0 20px 12px;font-size:11px;color:#8390a3}
.qd-range{display:flex;align-items:end;gap:8px;padding:16px 20px 8px;flex-wrap:wrap}.qd-range label,.qd-select-label{display:flex;gap:5px;flex-direction:column;font-size:12px;color:#6b7b90}.qd-range select,.qd-range input,.qd-select-label select{font:inherit;background:#fff;border:1px solid #dce5ef;border-radius:5px;padding:7px;min-height:34px;max-width:100%;color:#34445b}.qd-range #qd-custom{display:flex;gap:8px;flex-wrap:wrap}.qd-page [hidden]{display:none!important}.qd-range input{width:140px}.qd-page #qd-range-error{color:#b34838;font-size:12px;padding:0 20px}.qd-chart{padding:16px 20px}.qd-chart svg{display:block;width:100%;height:auto;max-height:280px;margin-top:12px}.qd-chart p{font-size:12px}.qd-chart strong{font-size:15px}.qd-legend{display:flex;gap:16px;font-size:12px;margin-top:8px;color:#65758a}.qd-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;background:#1677ff}.qd-legend .second{background:#8db3e8}.qd-chart details{font-size:12px;margin-top:12px}.qd-chart summary{cursor:pointer;color:#1264d2}.qd-table-wrap{overflow:auto}.qd-page table{border-collapse:collapse;width:100%;font-size:13px}.qd-page th{font-size:12px;background:#f6f8fb;color:#6b7b90;font-weight:500;text-align:left}.qd-page td,.qd-page th{padding:13px 18px;border-bottom:1px solid #edf1f6;vertical-align:top}.qd-page td small{display:block;font-size:12px;margin-top:5px}.qd-page td:first-child{max-width:400px;overflow-wrap:anywhere}.qd-status{display:inline-block;white-space:nowrap;padding:3px 8px;border-radius:4px;background:#edf3fa;color:#52708f;font-size:12px}.qd-status.fail{background:#fff0ee;color:#ba463b}.qd-status.pass{background:#ecf8f1;color:#238254}.qd-status.processing{background:#edf5ff;color:#1264d2}.qd-ex-actions{display:flex;gap:6px}.qd-shortcuts{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:20px;color:#7a899b;font-size:13px}.qd-shortcuts button{border:0;background:none;color:#476887;padding:8px 0}
.qd-page dialog{border:1px solid #dce5ef;border-radius:10px;padding:0;width:min(940px,calc(100vw - 32px));max-height:85vh;color:#223047;box-shadow:0 12px 48px #152d4d26}.qd-page dialog::backdrop{background:#17283b66}.qd-page dialog>header{padding:14px 18px;border-bottom:1px solid #e0e7f0;position:sticky;top:0;background:#fff;z-index:1}.qd-note-form{padding:20px;display:grid;gap:14px}.qd-note-form textarea{width:100%;min-height:100px;border:1px solid #dce5ef;border-radius:6px;padding:10px;font:inherit}.qd-note-form .qd-ex-actions{justify-content:flex-end}

@media(max-width:1100px){.qd-main{grid-template-columns:1fr}.qd-chart svg{max-height:260px}.qd-header{align-items:flex-start}.qd-header-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:600px){.qd-header{gap:10px}.qd-header h2{font-size:21px}.qd-header p{font-size:12px}.qd-header-actions{gap:6px;max-width:145px}.qd-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.qd-kpi{padding:14px;min-height:126px}.qd-kpi strong{font-size:28px}.qd-card>header{padding:15px}.qd-tabs{padding:10px}.qd-todo{padding:14px 12px;gap:10px}.qd-todo small{line-height:1.7}.qd-link{padding:8px;font-size:12px}.qd-range,.qd-chart{padding-left:14px;padding-right:14px}.qd-shortcuts{gap:12px}.qd-page td,.qd-page th{padding:12px}.qd-page dialog{max-height:90vh}.qd-page #qd-exceptions table{min-width:650px}.qd-page #qd-detail table{min-width:620px}}

/* The dashboard uses one dialog for long metric tables and short exception actions. */
#qd-dialog:modal { position: fixed; inset: 0; margin: auto; height: fit-content; max-height: min(85dvh, 900px); overflow: auto; }
#qd-dialog[data-mode="exception"] { width: min(580px, calc(100vw - 32px)); }
#qd-dialog[data-mode="exception"] .qd-note-form { padding: 20px 22px; gap: 16px; }
#qd-dialog .qd-ex-context { padding: 14px 16px; border: 1px solid #e1e8f0; border-radius: 7px; background: #f7f9fc; }
#qd-dialog .qd-ex-context strong { display: block; color: #253348; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
#qd-dialog .qd-ex-context p { margin-top: 6px; overflow-wrap: anywhere; }
#qd-dialog .qd-note-form label { display: grid; gap: 8px; color: #344563; font-size: 13px; font-weight: 600; }
#qd-dialog .qd-note-form textarea { box-sizing: border-box; min-height: 110px; max-width: 100%; resize: vertical; }
#qd-dialog .qd-note-form .qd-ex-actions { gap: 10px; flex-wrap: wrap; }
#qd-dialog #qd-ex-error:empty { display: none; }
@media(max-width:600px){#qd-dialog[data-mode="exception"]{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}#qd-dialog[data-mode="exception"] .qd-note-form{padding:16px}#qd-dialog .qd-note-form .qd-ex-actions .btn{flex:1 1 auto}}
