/* Fleet Integrity Tachograph module */
.fi-tacho-shell{display:grid;gap:14px}
.fi-tacho-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fi-tacho-toolbar-left{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.fi-tacho-toolbar label{display:grid;gap:5px;font-size:11px;font-weight:800;color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-toolbar select{min-width:250px;background:var(--v4-surface,var(--fi4-surface,#fff));color:var(--v4-text,var(--fi4-text,#0b1f35));border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef))}
.fi-tacho-tabs{display:flex;gap:7px;overflow:auto;padding:2px 0 4px;scrollbar-width:none}
.fi-tacho-tabs::-webkit-scrollbar{display:none}
.fi-tacho-tabs button{flex:0 0 auto;min-height:38px;padding:8px 11px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:10px;background:var(--v4-surface,var(--fi4-surface,#fff));color:var(--v4-muted,var(--fi4-muted,#65778a));box-shadow:none}
.fi-tacho-tabs button.active{background:color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 11%,var(--v4-surface,var(--fi4-surface,#fff)));border-color:color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 45%,var(--v4-line,var(--fi4-line,#dbe5ef)));color:var(--v4-blue,var(--fi4-blue,#1769e0))}
.fi-tacho-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.fi-tacho-stat{border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));background:var(--v4-surface,var(--fi4-surface,#fff));border-radius:14px;padding:14px;min-width:0}
.fi-tacho-stat span{display:block;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.fi-tacho-stat strong{display:block;margin-top:5px;color:var(--v4-text,var(--fi4-text,#0b1f35));font-size:24px;overflow-wrap:anywhere}
.fi-tacho-stat small{display:block;margin-top:4px;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:10px}
.fi-tacho-card{border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));background:var(--v4-surface,var(--fi4-surface,#fff));border-radius:14px;padding:15px;min-width:0}
.fi-tacho-card h3{margin:0 0 12px;color:var(--v4-text,var(--fi4-text,#0b1f35));font-size:14px}
.fi-tacho-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}
.fi-tacho-card-head h3{margin:0}
.fi-tacho-muted{color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-table{width:100%;overflow:auto;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:12px;background:var(--v4-surface,var(--fi4-surface,#fff))}
.fi-tacho-table table{width:100%;min-width:850px;border-collapse:collapse}
.fi-tacho-table th{background:var(--v4-surface-2,var(--fi4-surface2,#f8fbff));color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-table td,.fi-tacho-table th{padding:10px 12px;border-top:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));font-size:11px;vertical-align:top}
.fi-tacho-table thead th{border-top:0}
.fi-tacho-table td{color:var(--v4-text,var(--fi4-text,#0b1f35));white-space:normal}
.fi-tacho-table td strong{display:block}
.fi-tacho-table td small{display:block;margin-top:3px;color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-pill{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:4px 8px;border-radius:999px;background:var(--v4-surface-2,var(--fi4-surface2,#f8fbff));border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));font-size:9px;font-weight:850;white-space:nowrap;color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-pill.ok{color:var(--v4-ok,var(--fi4-green,#087a55));background:color-mix(in srgb,var(--v4-ok,var(--fi4-green,#087a55)) 8%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-pill.warn{color:var(--v4-warn,var(--fi4-amber,#b54708));background:color-mix(in srgb,var(--v4-warn,var(--fi4-amber,#b54708)) 9%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-pill.bad{color:var(--v4-danger,var(--fi4-red,#b42318));background:color-mix(in srgb,var(--v4-danger,var(--fi4-red,#b42318)) 8%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-pill.blue{color:var(--v4-blue,var(--fi4-blue,#1769e0));background:color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 9%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fi-tacho-list{display:grid}
.fi-tacho-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 0;border-top:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));align-items:center}
.fi-tacho-row:first-child{border-top:0}
.fi-tacho-row strong{display:block;color:var(--v4-text,var(--fi4-text,#0b1f35));font-size:12px}
.fi-tacho-row small{display:block;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:10px;margin-top:3px}
.fi-tacho-empty{padding:28px 16px;text-align:center;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:12px}
.fi-tacho-upload-dialog{width:min(760px,calc(100vw - 24px));max-height:min(90dvh,850px);border:0;border-radius:18px;padding:0;background:var(--v4-surface,var(--fi4-surface,#fff));color:var(--v4-text,var(--fi4-text,#0b1f35))}
.fi-tacho-upload-dialog::backdrop{background:rgba(3,16,31,.7);backdrop-filter:blur(4px)}
.fi-tacho-upload{padding:20px}
.fi-tacho-drop{display:grid;place-items:center;text-align:center;min-height:190px;padding:22px;border:2px dashed color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 50%,var(--v4-line,var(--fi4-line,#dbe5ef)));border-radius:15px;background:color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 5%,var(--v4-surface,var(--fi4-surface,#fff)));cursor:pointer}
.fi-tacho-drop.drag{background:color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 12%,var(--v4-surface,var(--fi4-surface,#fff)));border-color:var(--v4-blue,var(--fi4-blue,#1769e0))}
.fi-tacho-drop strong{font-size:16px}
.fi-tacho-drop small{display:block;margin-top:6px;color:var(--v4-muted,var(--fi4-muted,#65778a));line-height:1.45}
.fi-tacho-file-list{display:grid;gap:7px;margin-top:12px;max-height:230px;overflow:auto}
.fi-tacho-file{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:10px}
.fi-tacho-file strong{font-size:11px;overflow-wrap:anywhere}
.fi-tacho-file small{color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:9px}
.fi-tacho-upload-progress{height:7px;border-radius:999px;background:var(--v4-surface-2,var(--fi4-surface2,#f8fbff));overflow:hidden;margin-top:12px}
.fi-tacho-upload-progress span{display:block;height:100%;width:0;background:var(--v4-blue,var(--fi4-blue,#1769e0));transition:width .2s}
.fi-tacho-upload-result{margin-top:10px;font-size:11px;line-height:1.5;color:var(--v4-muted,var(--fi4-muted,#65778a));max-height:180px;overflow:auto}
.fi-tacho-record-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.fi-tacho-record-grid .fi-tacho-stat strong{font-size:18px}
.fi-tacho-timeline{display:grid;gap:5px;margin-top:10px}
.fi-tacho-activity{display:grid;grid-template-columns:90px 1fr 70px;gap:8px;align-items:center;font-size:10px}
.fi-tacho-activity-bar{height:8px;border-radius:999px;background:var(--v4-line,var(--fi4-line,#dbe5ef));overflow:hidden}
.fi-tacho-activity-bar span{display:block;height:100%;background:var(--v4-blue,var(--fi4-blue,#1769e0))}
.fi-tacho-note{padding:11px 12px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:11px;background:var(--v4-surface-2,var(--fi4-surface2,#f8fbff));font-size:11px;color:var(--v4-muted,var(--fi4-muted,#65778a));line-height:1.5}
.fi-tacho-report-actions{display:flex;gap:8px;flex-wrap:wrap}
.fi-tacho-report-actions button{min-height:40px}
@media(max-width:900px){.fi-tacho-grid,.fi-tacho-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fi-tacho-two{grid-template-columns:1fr}}
@media(max-width:600px){
 .fi-tacho-toolbar,.fi-tacho-toolbar-left{align-items:stretch;display:grid;grid-template-columns:1fr}
 .fi-tacho-toolbar select,.fi-tacho-toolbar button{width:100%;min-width:0}
 .fi-tacho-grid,.fi-tacho-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fi-tacho-stat{padding:12px}.fi-tacho-stat strong{font-size:20px}
 .fi-tacho-card{padding:12px}
 .fi-tacho-upload-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
 .fi-tacho-upload{padding:14px}
 .fi-tacho-activity{grid-template-columns:74px minmax(0,1fr) 58px}
}
@media(max-width:380px){.fi-tacho-grid,.fi-tacho-record-grid{grid-template-columns:1fr}}


/* Tachograph period review / compliance control centre */
.fi-tacho-filterbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:12px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:14px;background:var(--v4-surface,var(--fi4-surface,#fff))}
.fi-tacho-filterbar label,.fi-tacho-review-controls label{display:grid;gap:5px;font-size:10px;font-weight:800;color:var(--v4-muted,var(--fi4-muted,#65778a));text-transform:uppercase;letter-spacing:.03em}
.fi-tacho-filterbar select,.fi-tacho-filterbar input,.fi-tacho-review-controls select,.fi-tacho-review-controls input{min-height:40px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:10px;background:var(--v4-surface,var(--fi4-surface,#fff));color:var(--v4-text,var(--fi4-text,#0b1f35));padding:8px 10px}
.fi-tacho-filterbar select{min-width:190px}
.fi-tacho-review-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:12px 0}
.fi-tacho-custom-dates{display:flex;gap:8px;align-items:end}
.fi-tacho-custom-dates.hidden{display:none}
.fi-tacho-view-switch{display:flex;gap:5px;padding:3px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:11px;background:var(--v4-surface-2,var(--fi4-surface2,#f8fbff))}
.fi-tacho-view-switch button{min-height:34px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--v4-muted,var(--fi4-muted,#65778a));box-shadow:none}
.fi-tacho-view-switch button.active{background:var(--v4-surface,var(--fi4-surface,#fff));color:var(--v4-blue,var(--fi4-blue,#1769e0));box-shadow:0 1px 4px rgba(10,31,54,.08)}
.fi-tacho-review-actions{display:flex;gap:7px;margin-left:auto}
.fi-tacho-coverage{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 26%,var(--v4-line,var(--fi4-line,#dbe5ef)));border-radius:14px;background:color-mix(in srgb,var(--v4-blue,var(--fi4-blue,#1769e0)) 5%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-coverage span{display:block;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.fi-tacho-coverage strong{display:block;margin-top:3px;color:var(--v4-text,var(--fi4-text,#0b1f35));font-size:14px}
.fi-tacho-coverage small{display:block;margin-top:3px;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:10px}
.fi-tacho-driver-review{display:grid;gap:12px}
.fi-tacho-analysis-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.fi-tacho-day-groups{display:grid;gap:12px}
.fi-tacho-day-group{border-top:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));padding-top:10px}
.fi-tacho-day-group:first-child{border-top:0;padding-top:0}
.fi-tacho-day-title{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.fi-tacho-day-title strong{font-size:12px;color:var(--v4-text,var(--fi4-text,#0b1f35))}
.fi-tacho-day-title small{font-size:9px;color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-activity{grid-template-columns:86px minmax(0,1fr) 58px!important;grid-template-areas:"type bar duration" "time time time";padding:4px 0}
.fi-tacho-activity>span{grid-area:type;text-transform:capitalize}
.fi-tacho-activity>.fi-tacho-activity-bar{grid-area:bar}
.fi-tacho-activity>strong{grid-area:duration;text-align:right}
.fi-tacho-activity>small{grid-area:time;color:var(--v4-muted,var(--fi4-muted,#65778a));font-size:9px}
.fi-tacho-activity.drive .fi-tacho-activity-bar span{background:var(--v4-blue,var(--fi4-blue,#1769e0))}
.fi-tacho-activity.work .fi-tacho-activity-bar span{background:var(--v4-warn,var(--fi4-amber,#b54708))}
.fi-tacho-activity.poa .fi-tacho-activity-bar span{background:#7c5ce7}
.fi-tacho-activity.rest .fi-tacho-activity-bar span{background:var(--v4-ok,var(--fi4-green,#087a55))}
.fi-tacho-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.fi-tacho-cal-day{display:grid;gap:3px;min-height:78px;padding:9px;border:1px solid var(--v4-line,var(--fi4-line,#dbe5ef));border-radius:10px;background:var(--v4-surface,var(--fi4-surface,#fff));color:var(--v4-text,var(--fi4-text,#0b1f35));text-align:left;box-shadow:none}
.fi-tacho-cal-day span{font-size:9px;color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-cal-day strong{font-size:13px}
.fi-tacho-cal-day small{font-size:8px;color:var(--v4-muted,var(--fi4-muted,#65778a))}
.fi-tacho-cal-day.active{border-color:color-mix(in srgb,var(--v4-ok,var(--fi4-green,#087a55)) 35%,var(--v4-line,var(--fi4-line,#dbe5ef)));background:color-mix(in srgb,var(--v4-ok,var(--fi4-green,#087a55)) 5%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-cal-day.warn{border-color:color-mix(in srgb,var(--v4-warn,var(--fi4-amber,#b54708)) 45%,var(--v4-line,var(--fi4-line,#dbe5ef)));background:color-mix(in srgb,var(--v4-warn,var(--fi4-amber,#b54708)) 7%,var(--v4-surface,var(--fi4-surface,#fff)))}
.fi-tacho-cal-day.empty{opacity:.55}
.fi-tacho-client-overview-table tbody tr{cursor:pointer}
.fi-tacho-client-overview-table tbody tr:hover{background:var(--v4-surface-2,var(--fi4-surface2,#f8fbff))}
@media(max-width:900px){.fi-tacho-analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fi-tacho-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){
 .fi-tacho-filterbar,.fi-tacho-review-controls{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
 .fi-tacho-filterbar label,.fi-tacho-review-controls label{min-width:0}
 .fi-tacho-filterbar select,.fi-tacho-filterbar input,.fi-tacho-review-controls select,.fi-tacho-review-controls input{width:100%;min-width:0}
 .fi-tacho-custom-dates{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}
 .fi-tacho-view-switch,.fi-tacho-review-actions{grid-column:1/-1;margin-left:0}
 .fi-tacho-review-actions button{flex:1}
 .fi-tacho-coverage{align-items:flex-start;display:grid}
 .fi-tacho-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.fi-tacho-toolbar-spacer{flex:1}
@media(max-width:600px){.fi-tacho-toolbar-spacer{display:none}}

.fi-tacho-evidence-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fi-tacho-evidence-actions button{margin:0}
.fi-tacho-file-present{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--v4-ok,var(--fi4-green,#087a55)) 9%,var(--v4-surface,var(--fi4-surface,#fff)));color:var(--v4-ok,var(--fi4-green,#087a55));font-size:9px;font-weight:850}
