/* v414: shared application finishing layer. Preserve module colours and print layouts. */
@media screen {
 .main,.panel,.subpanel,.field,.field-row>*{min-width:0}
 .main-head>div{min-width:0}.main-head h2{overflow-wrap:anywhere}
 input,select,textarea,button{font-family:inherit}
 textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
 .sidebar{overflow-y:auto;overscroll-behavior:contain}
 .sidebar .brand,.sidebar .sidebar-foot{flex-shrink:0}
 .sidebar summary{min-height:44px}.sidebar summary::-webkit-details-marker{display:none}
 .sidebar summary svg,.nav-item svg{flex-shrink:0}
 .sidebar details .nav-item{font-size:14px;padding:10px 12px 10px 22px;min-height:44px}
 .main .btn,.tx-modal .btn,dialog .btn{width:auto}
 .main .toolbar,.main .main-head,.modal-actions{gap:10px}
 .main .toolbar input,.main .toolbar select{max-width:100%;min-width:0}
 .main .card:not(.table-wrap){overflow-wrap:anywhere}
 .app-table-scroll{max-width:100%;overflow:auto;overscroll-behavior-x:contain;border-radius:var(--radius)}
 .canteen-subtabs,.sub-tabs{max-width:100%;overflow-x:auto;scrollbar-width:thin}
 .canteen-subtab{flex-shrink:0;min-height:44px}
 .modal-overlay{z-index:100;padding:20px;overscroll-behavior:contain}
 .modal-overlay .modal,.modal-overlay .tx-modal{max-height:calc(100dvh - 40px);overscroll-behavior:contain}
 .modal-actions,.tx-modal footer,.fleet-edit footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
 .modal-actions .btn,.tx-modal footer .btn,.fleet-edit footer .btn{flex:0 1 auto}
 dialog{color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain}
 dialog::backdrop{background:rgba(22,35,63,.5)}
 .transport-panel h2{font-size:24px;color:var(--navy)}
 .transport-panel>.main-head{align-items:center}
 .transport-panel .tx-export-actions{justify-content:flex-end;margin-top:-6px}
 .transport-panel .tx-card-grid>.card{padding:20px}
 .transport-panel .tx-filters{align-items:end;gap:10px;margin:16px 0}
 .transport-panel .tx-filters>*{flex:1 1 180px;min-width:0}
 .transport-panel .tx-filters>.btn{flex:0 1 auto}
 .transport-panel .tx-filters input,.transport-panel .tx-filters select,.transport-panel>select{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;background:#FCFBF8;font:inherit;font-size:14px;color:var(--ink)}
 .transport-panel .tx-filters label{display:grid;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
 .transport-panel .tx-summary{gap:14px}.transport-panel .tx-summary span{border-color:var(--line);padding:16px 20px;border-radius:12px;color:var(--ink-soft);font-size:13px}
 .transport-panel .tx-summary strong{font-family:'Fraunces',Georgia,serif;font-size:26px;color:var(--navy)}
 .tx-modal{border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);border-radius:var(--radius)}
 .tx-modal h2{font-size:20px;margin-top:0;color:var(--navy)}
 .tx-form-grid input,.tx-form-grid select,.tx-form-grid textarea{border:1.5px solid var(--line);background:#FCFBF8;border-radius:9px;font:inherit;font-size:15px}
 .tx-form-grid .field{margin-bottom:0}.tx-form-grid>p{margin:0;overflow-wrap:anywhere}
 .tx-modal footer{margin-top:18px;border-top:1px solid var(--line)}
 #vcRoot>p{font-size:13px;line-height:1.6;color:var(--ink-soft)}
 #vcSummary .card{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
 #vcSummary .card p{margin:0 0 8px;line-height:1.6;font-size:14px}#vcSummary .btn{margin-top:auto}
 .vc-history-record{padding:16px 20px;margin-bottom:10px;font-size:14px;line-height:1.6}
 .vc-history-record summary{cursor:pointer;color:var(--navy);font-weight:600;min-height:28px}
 .vc-dialog{width:760px;padding:24px}.vc-dialog h3{font-size:20px;color:var(--navy);margin:0 0 20px}
 .vc-check-item{padding:16px;margin:12px 0;display:grid;gap:8px;box-shadow:none}
 .vc-check-item label{font-size:13px;color:var(--ink-soft);font-weight:600}
 .vc-check-item input,.vc-check-item select{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:9px;background:#FCFBF8;font:inherit}
 .vc-dialog .modal-actions{bottom:-24px;margin:16px 0 -24px;padding:14px 0 24px;border-top:1px solid var(--line)}
 .vd-kpis strong{font-family:'Fraunces',Georgia,serif;font-size:26px}.vd-table-wrap{max-width:100%}
 #vdList{display:block}.vd-table{min-width:850px}
 .fleet-edit input,.fleet-edit select,.fleet-edit textarea{border:1.5px solid var(--line);border-radius:9px;background:#FCFBF8;font:inherit}
 @media(min-width:721px){.sidebar{position:sticky;top:0;height:100dvh}.sidebar-backdrop.show{display:none}}
 @media(max-width:1000px) and (min-width:721px){.main{padding:24px}.sidebar{width:218px}}
 @media(max-width:720px){
  .main,body:has(.transport-panel.active) .main{width:100%;max-width:100%;padding:76px 12px 24px}
  .sidebar{width:min(300px,calc(100vw - 48px));padding-top:72px;height:100dvh}
  .mobile-nav-toggle{min-width:44px;min-height:44px;top:14px;left:12px}
  body.app-nav-open{overflow:hidden}.sidebar:not(.open){visibility:hidden}.sidebar.open{visibility:visible}
  .main-head{align-items:flex-start}.main-head h2,.transport-panel h2{font-size:23px}
  .main-head>div{max-width:100%}.main-head p{line-height:1.5}
  .btn,.icon-btn,.seg-btn,.canteen-subtab,.dial-parent-btn{min-height:44px}
  .icon-btn{min-width:44px}.nav-item{min-height:44px}
  .field input,.field select,.field textarea,.toolbar input,.toolbar select,.tx-filters input,.tx-filters select,dialog input,dialog select,dialog textarea,.tx-modal input,.tx-modal select,.tx-modal textarea{font-size:16px!important;max-width:100%;min-width:0}
  .field-row,.tx-form-grid,.fleet-edit fieldset{grid-template-columns:minmax(0,1fr)!important}
  .main [style*="grid-template-columns"],.modal-overlay [style*="grid-template-columns"],dialog [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}
  .main [style*="grid-template-columns"]>*,.modal-overlay [style*="grid-template-columns"]>*{min-width:0}
  .toolbar{align-items:stretch}.toolbar>input,.toolbar>select{flex:1 1 140px;width:100%}
  .toolbar>.spacer{display:none}.toolbar>.btn{flex:1 1 auto}
  .seg-toggle{max-width:100%;overflow-x:auto}.seg-btn{flex-shrink:0}
  .stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stat-card{min-width:0;padding:14px}.stat-card .num{font-size:24px;overflow-wrap:anywhere}
  .stat-card .lbl{font-size:11px}.today-badge{white-space:normal}
  .card-pad{padding:16px}.table-wrap{max-width:100%;max-height:65dvh}
  .main img,.main video,.main canvas{max-width:100%}
  .modal-overlay{padding:10px}
  .modal-overlay>.modal,.modal-overlay>.tx-modal,body:has(.transport-panel.active) .modal-overlay>.modal,body:has(.transport-panel.active) .modal-overlay>.tx-modal{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 20px)!important;padding:18px}
  .modal-actions{position:static}.modal-actions .btn,.tx-modal footer .btn,.fleet-edit footer .btn{flex:1 1 110px}
  .tx-modal footer{bottom:-18px}.tx-card-grid{grid-template-columns:minmax(0,1fr)}
  .tx-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tx-summary span{min-width:0}
  .transport-panel .tx-card-grid>.card{padding:16px}.transport-panel .tx-export-actions{margin-top:0}
  .transport-panel .tx-filters>*{flex:1 1 100%}.transport-panel .tx-filters>.btn{flex:1 1 100%}
  .vc-dialog,.fleet-edit{padding:18px;max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .vc-dialog .modal-actions{position:static;margin:16px 0 0;padding:14px 0 0}
  .vc-check-item{padding:14px}.vd-kpis{gap:10px}.vd-kpis .card{padding:14px}
  .dial-info{min-width:0}.dial-card{min-width:0}.login-shell{padding:16px}.login-card{padding:28px 22px}
 }
 @media(prefers-reduced-motion:reduce){.sidebar,.btn{transition:none}}
}
@media screen and (max-width:720px){
 .main-head>div{flex-wrap:wrap;min-width:0}
 .main-head .btn,.main .toolbar .btn{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
 .main-head>div[style*="display:flex"],.main-head>div[style*="display: flex"]{width:100%}
}
@media screen{
 .vc-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
 .vc-dialog-head h3{flex:1;min-width:0}.vc-dialog-head .icon-btn{flex-shrink:0;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--navy);cursor:pointer}
}
/* v415: checklist evidence, drafts and reports */
#vcRoot [hidden],.vc-dialog [hidden]{display:none!important}
.vc-upload-actions{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.vc-upload-actions label.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;cursor:pointer;text-transform:none;letter-spacing:normal;color:var(--navy);font-weight:600}
.vc-upload-actions input[type=file]{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.vc-upload-actions label:focus-within{outline:2px solid var(--gold);outline-offset:2px}
.vc-evidence{display:grid;gap:8px;overflow-wrap:anywhere;font-size:13px}.vc-evidence small,.vc-report-item small{display:block;color:var(--ink-soft);font-size:12px}
.vc-report-item{padding:14px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.vc-report-item p{margin:8px 0}.vc-report-item a{color:var(--navy);text-decoration:underline}
.vc-defect-row{margin-bottom:12px}.vc-muted{font-size:13px;color:var(--ink-soft)}.vc-error,#vcReportError{color:var(--bad)}
.vc-check-item textarea{width:100%;min-width:0;padding:11px 13px;border:1.5px solid var(--line);border-radius:9px;background:#FCFBF8;font:inherit;resize:vertical}
.vc-preview img{display:block;width:100%;height:auto;margin-top:14px}.vc-preview iframe{display:block;width:100%;height:65dvh;border:0;margin-top:14px}
#vcSaveState{font-size:13px;color:var(--ink-soft)}
@media screen and (max-width:720px){.vc-upload-actions>*{flex:1 1 140px}.vc-dialog .modal-actions{flex-wrap:wrap}.vc-check-item textarea{font-size:16px}.vc-history-record summary{overflow-wrap:anywhere}.vc-history-record .badge{white-space:normal}}
