/* Violations overview: existing TahoAudit controls, table rhythm and pale cards. */
html:has(#violations-root),body:has(#violations-root){overflow:hidden}
.shell:has(#violations-root){height:100dvh;min-height:0;overflow:hidden}
.shell:has(#violations-root) .workspace{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.shell:has(#violations-root) .topbar{flex:none}
.shell:has(#violations-root) .content{display:flex;flex:1;min-height:0;overflow:auto;padding:12px 16px;scrollbar-width:thin}
#violations-root{--v-ink:#233f5d;--v-muted:#7990aa;display:flex;flex-direction:column;width:100%;min-width:0;gap:12px;color:var(--v-ink);font-size:13px}
#violations-root *{box-sizing:border-box}
#violations-root h2{font-size:14px;line-height:1.3;color:#213d59;font-weight:600;margin:0}
#violations-root button{font-family:inherit;cursor:pointer}
#violations-root button:focus-visible{outline:2px solid #7aa6d8;outline-offset:2px}
#violations-root .btn{height:28px;min-height:28px;padding:3px 9px;font-size:12px;white-space:nowrap}
.v-header-actions{gap:7px}.shell .v-header-actions .rto-picker{width:clamp(180px,13vw,260px)}.shell .v-header-actions .rto-picker-zone{width:182px}
.shell .v-header-actions select,#violations-root select{height:28px;border:1px solid #d7e0ef;border-radius:6px;color:#234466;background:#fff;font:400 12px/16px system-ui;padding:4px 8px;min-width:0;max-width:100%}
.shell .v-header-actions .rto-range input{width:123px}
.v-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;flex:none}
.v-blue{--v-accent:#3883df;--v-pale:#edf5ff}.v-amber{--v-accent:#dc972f;--v-pale:#fff7eb}.v-red{--v-accent:#e25768;--v-pale:#fff0f2}.v-purple{--v-accent:#9165ce;--v-pale:#f5efff}.v-teal{--v-accent:#20a68e;--v-pale:#eafaf5}
.v-kpi{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;min-height:112px;padding:12px 13px;border:1px solid #dfe8f2;border-radius:8px;background:linear-gradient(110deg,#fff 65%,var(--v-pale));text-align:left;color:var(--v-ink);overflow:hidden;box-shadow:0 2px 7px #23446605}
.v-kpi::before{content:'';position:absolute;top:0;left:13px;width:42px;height:4px;border-radius:0 0 5px 5px;background:var(--v-accent)}
.v-kpi[aria-pressed=true]{border-color:var(--v-accent);box-shadow:inset 0 0 0 1px var(--v-accent)}
.v-kpi-label{font-size:13px;line-height:17px;font-weight:600;z-index:1}.v-kpi>strong{font-size:33px;line-height:38px;color:var(--v-accent);font-weight:700}.v-kpi small{font-size:11px;line-height:14px;color:#7890a9;margin-top:auto;padding-top:4px;border-top:1px solid #e5edf5;z-index:1}.v-kpi-icon{position:absolute;right:12px;top:37px;padding:10px;background:var(--v-pale);color:var(--v-accent);border-radius:12px}.v-kpi-icon svg{width:23px;height:23px}
.v-middle{display:grid;grid-template-columns:1.6fr 1fr .9fr;gap:10px;flex:none}
.v-panel{min-width:0;border:1px solid #dfe8f2;background:#fff;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;padding:12px}
.v-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex:none}.v-panel>header>span{font-size:11px;color:var(--v-muted);white-space:nowrap}
.v-trend{display:block;width:100%;height:190px;margin:auto 0}.v-trend text{font-size:11px;fill:#6d87a2;font-family:inherit}.v-trend .v-bar-value{fill:#294967;font-weight:600;font-size:12px}
.v-types{display:flex;gap:8px;align-items:center;justify-content:space-between;flex:1;min-width:0}.v-ring{position:relative;width:clamp(110px,11vw,180px);max-width:50%;flex-shrink:0;aspect-ratio:1}.v-ring svg{display:block;width:100%;height:100%}.v-ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.v-ring strong{font-size:25px;line-height:1.15}.v-ring span{font-size:11px;color:#7188a1}.v-type-list{flex:1;min-width:0;display:grid;gap:8px}.v-type-list button{border:0;background:none;display:flex;align-items:flex-start;gap:6px;padding:0;text-align:left;color:#284968;font-size:12px}.v-type-list i{width:9px;height:9px;border-radius:50%;flex:none;margin-top:3px;background:#3c87e4}.v-type-rest i{background:#9771d0}.v-type-break i{background:#29ac97}.v-type-work i{background:#e8a13b}.v-type-list span{flex:1}.v-type-list small{display:block;color:#879bb1;font-size:10px;margin-top:2px}.v-type-list b{font-weight:600}
.v-ring-small{width:100px;max-width:none;margin:0 auto 4px}.v-ring-small strong{font-size:23px}.v-coverage-lines{display:grid;gap:0}.v-coverage-lines p{display:flex;align-items:center;gap:6px;margin:0;padding:5px 0;border-bottom:1px solid #ecf1f7;font-size:11px}.v-coverage-lines b{margin-left:auto;font-weight:600}.v-dot{width:7px;height:7px;border-radius:50%;flex:none}.v-dot.teal{background:#29ac97}.v-dot.amber{background:#e8a13b}.v-dot.red{background:#ed6274}
.v-footnote{font-size:10px;line-height:1.4;color:#8194aa;margin:7px 0 0}
.v-lower{display:grid;grid-template-columns:.95fr 1.3fr;gap:10px;flex:1;min-height:260px}
.v-table-scroll{min-height:0;overflow:auto;scrollbar-width:thin;flex:1}.v-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;line-height:16px;table-layout:fixed}.v-table th{position:sticky;top:0;background:#f3f6fa;color:#7389a2;font-size:11px;font-weight:500;z-index:1}.v-table :is(th,td){padding:8px;border-right:1px solid #e7edf5;border-bottom:1px solid #e7edf5;overflow-wrap:anywhere;vertical-align:middle;text-align:center;height:40px}.v-table :is(th,td):first-child{text-align:left;border-left:1px solid #e7edf5}.v-table thead th{border-top:1px solid #e7edf5}.v-table tbody tr:nth-child(even){background:#f8fafd}.v-table tbody tr:hover{background:#f0f6fb}.v-table tfoot{background:#f2f7fd;font-weight:600}.v-table th:first-child{border-top-left-radius:5px}.v-table th:last-child{border-top-right-radius:5px}.v-table small{display:block;font-size:10px;color:#8397aa;font-weight:400}.v-table progress{display:block;width:100%;height:4px;margin:3px 0 0;accent-color:#f07885;appearance:none;border:0;border-radius:3px;overflow:hidden;background:#e6edf6}.v-table progress::-webkit-progress-bar{background:#e6edf6}.v-table progress::-webkit-progress-value{background:#f07885;border-radius:3px}.v-table progress::-moz-progress-bar{background:#f07885}
.v-orgs-table th:first-child{width:37%}.v-orgs-table th:nth-child(3){width:19%}.v-org-name,.v-driver-name{border:0;background:none;color:inherit;padding:0;text-align:left;font:inherit;font-weight:600}.v-org-name:hover,.v-driver-name:hover{text-decoration:underline}.v-driver-alert{box-shadow:inset 3px 0 #f07885}.v-drivers-table th:first-child{width:29%}.v-drivers-table th:nth-child(2){width:23%}.v-drivers-table :is(td,th){padding:6px 5px}.v-drivers-table td:nth-child(2){color:#728ba3;text-align:left;font-size:11px}.v-drivers-table th{font-size:10px}.v-count{display:inline-block;min-width:28px;border-radius:5px;padding:2px 5px}.v-count.has-count{color:#cf4259;background:#fff0f3}.v-empty-cell{padding:24px!important;color:#7990a8;text-align:center!important}
.v-mini-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:9px;flex:none}.v-mini-cards>button,.v-mini-cards>div{display:flex;align-items:flex-start;gap:7px;border:1px solid #e4edf5;border-radius:7px;padding:9px;background:#fff;color:#4a6886;text-align:left;font:inherit;font-size:10px}.v-mini-cards strong{display:block;font-size:25px;line-height:30px;color:#244668}.v-mini-cards small{display:block;color:#8498b0;font-size:9px;line-height:12px}.v-mini-icon{display:grid;place-items:center;width:29px;height:29px;flex:none;border-radius:50%}.v-mini-icon.red{color:#e25768;background:#fff0f2}.v-mini-icon.teal{color:#20a68e;background:#eafaf5}.v-mini-icon.purple{color:#9165ce;background:#f5efff}.v-mini-icon svg{width:16px;height:16px}
.v-ranking>header{align-items:flex-start;flex-wrap:wrap}.v-rank-controls{display:flex;gap:7px;align-items:center;margin-left:auto}.v-toggle{display:flex;flex:none}.v-toggle button{border:1px solid #d7e0ef;background:#fff;color:#42617f;height:28px;padding:3px 9px;font:inherit;font-size:11px}.v-toggle button:first-child{border-radius:5px 0 0 5px}.v-toggle button:last-child{border-radius:0 5px 5px 0}.v-toggle button[aria-pressed=true]{background:#3d607f;color:#fff;border-color:#3d607f}.v-search{display:flex;align-items:center;height:28px;border:1px solid #d7e0ef;border-radius:6px;padding:4px 7px;gap:5px;max-width:170px;background:#fff}.v-search svg{width:13px;height:13px;color:#7992b0;flex:none}.v-search input{width:100%;min-width:0;border:0;background:none;font:inherit;font-size:11px;color:#294967;outline:none}.v-search:focus-within{border-color:#98b5ef}#v-ranking-body{display:flex;flex-direction:column;flex:1;min-height:0}.v-table-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:8px;color:#7a91aa;font-size:11px;flex:none}
.v-note{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#7d92a9;flex:none}.v-note button{font:inherit;color:#a87423;border:0;background:none;padding:0}.v-note button:hover{text-decoration:underline}
.v-loading{margin:auto;display:flex;flex-direction:column;align-items:center;padding:40px;gap:12px;text-align:center}.v-loading>svg{width:32px;height:32px;color:#547b9d}.v-loading p{margin:0;color:#7a90a8}.v-loading progress{width:240px;max-width:100%;height:5px;accent-color:#3d607f}.v-print-title{display:none}
@media(min-width:1600px){.v-kpi{min-height:122px}.v-trend{height:210px}.v-middle{grid-template-columns:1.6fr 1fr .9fr}.v-lower{min-height:310px}}
@media(min-width:1100px) and (max-height:800px){#violations-root{gap:8px}.v-kpi{min-height:95px;padding:9px 11px}.v-kpi>strong{font-size:29px;line-height:32px}.v-kpi-label{font-size:12px}.v-kpi-icon{top:29px;padding:7px}.v-kpi small{font-size:10px}.v-panel{padding:9px}.v-trend{height:160px}.v-ring-small{width:80px}.v-coverage-lines p{padding:3px 0}.v-lower{min-height:240px}.v-table :is(td,th){height:35px;padding-block:5px}.v-mini-cards>button,.v-mini-cards>div{padding:6px}.v-mini-cards strong{font-size:21px;line-height:25px}.v-mini-icon{display:none}.v-note{font-size:9px}}
@media(max-width:1399px){.v-types{flex-direction:column;gap:2px}.v-ring{width:95px;max-width:none}.v-type-list{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.v-type-list button{font-size:10px}.v-type-list small{font-size:9px}.v-types .v-ring strong{font-size:20px}.v-types .v-ring span{font-size:9px}.v-kpi-icon{opacity:.5;right:7px}.v-lower{grid-template-columns:1fr 1.2fr}.v-table :is(th,td){padding-inline:5px}.v-mini-icon{display:none}.v-search{max-width:145px}}
@media(max-width:1099px){.v-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.v-middle{grid-template-columns:1fr 1fr}.v-middle>.v-panel:first-child{grid-column:1/-1}.v-types{flex-direction:row}.v-ring{width:125px;max-width:50%}.v-type-list{display:grid;grid-template-columns:1fr}.v-lower{grid-template-columns:1fr;flex:none}.v-table-scroll{max-height:380px;flex:none}.v-ranking{min-height:330px}.v-coverage .v-ring{width:95px}.v-note{flex-wrap:wrap}.v-panel{flex-shrink:0}}
@media(max-width:699px){.shell:has(#violations-root) .content{padding:10px}.v-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.v-kpi-label{font-size:12px}.v-kpi small{font-size:10px}.v-kpi{min-height:105px}.v-middle{grid-template-columns:1fr}.v-middle>.v-panel:first-child{grid-column:auto}.v-lower{gap:8px}.v-types{justify-content:center;gap:20px}.v-type-list{flex:0 1 150px}.v-type-list button{font-size:12px}.v-types .v-ring{width:140px}.v-table{min-width:490px}.v-drivers-table{min-width:620px}.v-rank-controls{flex-wrap:wrap;width:100%;margin:0}.v-search{max-width:none;flex:1}.v-table-footer{flex-wrap:wrap}.v-mini-cards{grid-template-columns:1fr}.v-mini-cards>button,.v-mini-cards>div{align-items:center}.v-mini-cards strong{display:inline;margin:0 6px;font-size:21px}.v-mini-icon{display:grid}.v-header-actions{width:100%}.shell .v-header-actions .rto-picker{width:100%}.shell .v-header-actions .rto-picker-zone{width:176px}.v-note{line-height:1.5}}
@media print{@page{size:A4 landscape;margin:8mm}.shell:has(#violations-root),.shell:has(#violations-root) .workspace,.shell:has(#violations-root) .content,html:has(#violations-root),body:has(#violations-root){height:auto!important;overflow:visible!important;display:block!important}.shell:has(#violations-root) .sidebar,.shell:has(#violations-root) .topbar,.shell:has(#violations-root) .menu-scrim{display:none!important}.shell:has(#violations-root) .workspace{margin:0!important;width:100%!important}.v-print-title{display:block}.v-print-title h1{font-size:18px;margin:0}.v-print-title p{font-size:11px}.v-kpis{grid-template-columns:repeat(6,1fr)}.v-middle{grid-template-columns:1.6fr 1fr .9fr}.v-lower{grid-template-columns:1fr 1.25fr}.v-table-scroll{overflow:visible!important;max-height:none!important}.v-table{min-width:0}.v-panel{break-inside:avoid}.v-rank-controls,.v-table-footer button,.v-panel select{display:none}#violations-root{-webkit-print-color-adjust:exact;print-color-adjust:exact}.v-note{font-size:9px}}

/* Keep table headings whole; compact windows use stacked, readable panels. */
.v-table th{overflow-wrap:normal;word-break:normal;font-size:10px}
.v-orgs-table th:first-child{width:34%}.v-orgs-table th:nth-child(3){width:20%}
@media(max-width:1399px){
 .v-lower{grid-template-columns:1fr;flex:none;min-height:0}
 .v-lower>.v-panel{flex:none;min-height:300px}
 .v-lower .v-table-scroll{max-height:380px;flex:none}
 .v-mini-cards{margin-top:auto;padding-top:8px}
 .v-ranking #v-ranking-body{flex:none}
 .v-drivers-table{min-width:600px}
 .v-organizations .v-table{min-width:470px}
 .v-middle .v-coverage-lines p{line-height:14px}
}

@media print{.v-lower{grid-template-columns:1fr 1.25fr;min-height:0}.v-lower>.v-panel{min-height:0}.v-lower .v-table{min-width:0}.v-lower .v-table-scroll{max-height:none;overflow:visible}.v-mini-cards{grid-template-columns:repeat(3,1fr)}}
