/* Maintenance occupies the host content area; only file preview is a dialog. */
.vm-root,.vm-file-dialog{
  --vm-bg:var(--page-bg,#f4f7f5);--vm-surface:var(--card-bg,#fff);--vm-text:var(--text,#0f172a);
  --vm-muted:var(--text-muted,#5f6e82);--vm-border:var(--border,#dbe3e0);--vm-input-border:#87968f;
  --vm-green:var(--primary-dark,#15803d);--vm-link:var(--primary-dark,#15803d);--vm-soft:#edf7f0;--vm-error:#b42318;--vm-error-bg:#fff3f1;
  --vm-warning:#805700;--vm-warning-bg:#fff8e6;--vm-radius:12px;
  color:var(--vm-text);font-family:inherit;font-size:15px;line-height:1.6;
}
[data-theme="dark"] .vm-root,[data-theme="dark"] .vm-file-dialog{
  --vm-bg:var(--page-bg,#111c18);--vm-surface:var(--card-bg,#192720);--vm-text:var(--text,#edf5f0);
  --vm-muted:var(--text-muted,#b5c4bc);--vm-border:var(--border,#405349);--vm-input-border:#81998a;
  --vm-green:#16783b;--vm-link:#91deb0;--vm-soft:#203d2c;--vm-error:#ffb4a9;--vm-error-bg:#3c2424;
  --vm-warning:#f2cc80;--vm-warning-bg:#3b3220;color-scheme:dark;
}
.vm-root{box-sizing:border-box;width:100%;min-width:0;padding:20px;background:var(--vm-bg);overflow-wrap:anywhere;}
.vm-page{min-width:0;width:100%;max-width:none;}
.vm-root *,.vm-file-dialog *{box-sizing:border-box;}
.vm-root [hidden],.vm-file-dialog[hidden],#vm-entry[hidden]{display:none!important;}
.vm-root h2,.vm-root h3,.vm-root h4{color:var(--vm-text);font-family:inherit;line-height:1.45;}
.vm-root h2{margin:0;font-size:clamp(21px,2vw,26px);font-weight:700;}
.vm-root h3{margin:0 0 12px;font-size:18px;font-weight:650;}
.vm-root h4{margin:0 0 8px;font-size:16px;}
.vm-root p{margin:8px 0;}.vm-root a{color:var(--vm-link);text-decoration:underline;text-underline-offset:3px;}
.vm-root button,.vm-root input,.vm-root select,.vm-root textarea,.vm-file-dialog button{font:inherit;}
.vm-root button,.vm-file-dialog button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;min-width:44px;min-height:44px;
  margin:0;padding:9px 14px;border:1px solid var(--vm-input-border);border-radius:8px;background:var(--vm-surface);
  color:var(--vm-text);font-weight:600;line-height:1.45;cursor:pointer;box-shadow:none;text-decoration:none;
  transition:background-color .15s,border-color .15s;
}
.vm-root button.primary{background:var(--vm-green);border-color:var(--vm-green);color:#fff;}
.vm-root button:not(.primary):not(:disabled):hover,.vm-file-dialog button:not(:disabled):hover{background:var(--vm-soft);}
.vm-root button.primary:not(:disabled):hover{background:#11652f;border-color:#11652f;}
.vm-root button:disabled,.vm-file-dialog button:disabled{opacity:.6;cursor:not-allowed;}
.vm-root[aria-busy="true"]{cursor:wait;}.vm-root[aria-busy="true"] button{opacity:.65;}
.vm-root input,.vm-root select,.vm-root textarea{
  display:block;width:100%;min-width:0;max-width:100%;min-height:44px;margin:4px 0 0;padding:9px 11px;
  border:1px solid var(--vm-input-border);border-radius:8px;background:var(--vm-surface);color:var(--vm-text);box-shadow:none;
}
.vm-root input::placeholder,.vm-root textarea::placeholder{color:var(--vm-muted);opacity:1;}
.vm-root input:disabled,.vm-root select:disabled,.vm-root textarea:disabled{background:var(--vm-bg);color:var(--vm-muted);}
.vm-root textarea{min-height:100px;resize:vertical;}.vm-root input[type="file"]{overflow:hidden;}
.vm-root input[type="checkbox"],.vm-root input[type="radio"]{display:inline-block;width:22px;height:22px;min-height:22px;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--vm-green);}
.vm-root label{color:var(--vm-text);display:block;min-width:0;font-size:14px;font-weight:500;}
.vm-root label:has(input[type="checkbox"]),.vm-root label:has(input[type="radio"]){display:flex;align-items:center;min-height:44px;}
.vm-root :focus-visible,.vm-file-dialog :focus-visible{outline:3px solid var(--vm-link);outline-offset:3px;}
.vm-root [aria-invalid="true"]{border:2px solid var(--vm-error);}
.vm-row,.vm-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0;}
.vm-row>*{min-width:0;}.vm-between{justify-content:space-between;}
.vm-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;}
.vm-heading>*{min-width:0;}.vm-heading .vm-muted{margin-top:4px;}
.vm-toolbar{margin:12px 0;}.vm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.vm-full{grid-column:1/-1;}.vm-grid>*{min-width:0;}
.vm-card{min-width:0;padding:20px;border:1px solid var(--vm-border);border-radius:var(--vm-radius);background:var(--vm-surface);margin:16px 0;}
.vm-muted{color:var(--vm-muted);font-size:13px;font-weight:400;}
.vm-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:16px 0;}
.vm-filters>label{flex:1 1 170px;}.vm-filters>button{flex:0 0 auto;}
.vm-root details{margin:12px 0;}.vm-root summary{min-height:44px;padding:10px 0;cursor:pointer;font-weight:600;}
.vm-advanced{border-top:1px solid var(--vm-border);padding-top:4px;}.vm-advanced[open]>summary{margin-bottom:8px;}
.vm-section-nav{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;}
.vm-section-nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border-radius:8px;border:1px solid var(--vm-border);background:var(--vm-surface);font-weight:600;text-decoration:none;}
.vm-section-nav a:hover,.vm-section-nav a[aria-current]{background:var(--vm-soft);}
.vm-section{scroll-margin-top:90px;}.vm-root input,.vm-root select,.vm-root textarea{scroll-margin-block:100px 160px;}
.vm-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,34%);align-items:start;gap:20px;}
.vm-layout>*{min-width:0;}.vm-preview-pane{position:sticky;top:16px;min-width:0;}
.vm-actions{position:sticky;bottom:var(--vm-bottom-offset,0px);z-index:4;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;
  padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));margin:24px 0 0;border:1px solid var(--vm-border);border-radius:var(--vm-radius);background:var(--vm-surface);box-shadow:0 -4px 14px #102b1610;}
.vm-actions>.vm-summary,.vm-actions>.vm-total{margin-right:auto;}
.vm-summary{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;}.vm-summary .vm-muted{display:block;}
.vm-items{display:grid;gap:12px;}.vm-item{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(120px,2fr) minmax(74px,.6fr) minmax(100px,1fr) 44px;align-items:end;gap:8px;padding:12px 0;border-bottom:1px solid var(--vm-border);}
.vm-item>*{min-width:0;}.vm-item button{padding:9px 5px;}
.vm-message,.vm-error-summary{white-space:pre-wrap;padding:12px 14px;background:var(--vm-soft);border-radius:8px;margin:12px 0;}
.vm-message:empty{display:none;}.vm-message.error,.vm-error-summary{background:var(--vm-error-bg);color:var(--vm-error);border:1px solid currentColor;}
.vm-field-error{display:block;color:var(--vm-error);font-size:13px;margin:6px 0 0;}
.vm-error-summary a,.vm-error-summary button{color:inherit;}.vm-root .vm-danger{color:var(--vm-error);}
.vm-dirty-hint{color:var(--vm-warning);}.vm-upload-state{font-size:13px;color:var(--vm-muted);}
.vm-upload-state.error,.vm-upload-state.failed{color:var(--vm-error);}
.vm-status{display:inline-block;padding:3px 9px;border:1px solid var(--vm-border);border-radius:6px;font-size:13px;font-weight:600;white-space:nowrap;background:var(--vm-bg);}
.vm-status.recorded,.vm-status[data-status="recorded"]{background:var(--vm-soft);}
.vm-status.draft,.vm-status[data-status="draft"]{color:var(--vm-warning);background:var(--vm-warning-bg);}
.vm-status.cancelled,.vm-status[data-status="cancelled"]{color:var(--vm-muted);}
.vm-table{width:100%;min-width:0;overflow-x:auto;}.vm-table table{width:100%;border-collapse:collapse;font-size:14px;}
.vm-table td,.vm-table th{text-align:left;vertical-align:middle;padding:12px;border-bottom:1px solid var(--vm-border);}
.vm-table th{color:var(--vm-muted);background:var(--vm-bg);font-size:13px;font-weight:600;}.vm-table td{overflow-wrap:anywhere;}
.vm-table tbody tr:hover{background:var(--vm-soft);}.vm-table button{white-space:nowrap;}
.vm-mobile-records{display:none;}.vm-record-card{padding:16px;border:1px solid var(--vm-border);border-radius:var(--vm-radius);background:var(--vm-surface);}
.vm-record-card h3{font-size:17px;}.vm-record-card .vm-row{margin-top:8px;}
.vm-file-list{display:grid;gap:12px;}.vm-file,.vm-file-tile{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-width:0;padding:12px 0;border-bottom:1px solid var(--vm-border);}
.vm-file-name{min-width:0;overflow-wrap:anywhere;flex:1 1 140px;}.vm-file-name .vm-muted{margin-top:4px;}
.vm-file-thumb{display:block;width:80px;height:80px!important;flex:0 0 80px;object-fit:contain;border-radius:8px;background:var(--vm-bg);border:1px solid var(--vm-border);}
.vm-file-preview,.vm-preview{min-width:0;width:100%;}.vm-root img{max-width:100%;height:auto;}
.vm-file-preview img,.vm-preview img,.vm-preview-pane img{display:block;max-width:100%;max-height:65dvh;margin:8px auto;object-fit:contain;border-radius:8px;background:var(--vm-bg);}
.vm-file-preview iframe,.vm-preview-pane iframe,.vm-file-dialog iframe{display:block;width:100%;height:65dvh;border:1px solid var(--vm-border);border-radius:8px;background:var(--vm-surface);}
.vm-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.vm-detail-grid>*{min-width:0;}
.vm-detail-grid dt{font-size:13px;color:var(--vm-muted);}.vm-detail-grid dd{margin:4px 0 0;white-space:pre-wrap;}
.vm-readonly{white-space:pre-wrap;overflow-wrap:anywhere;}.vm-root pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:13px;line-height:1.6;}
.vm-file-dialog{width:min(1100px,calc(100vw - 32px));max-width:100%;max-height:calc(100dvh - 32px);padding:20px;border:1px solid var(--vm-border);border-radius:12px;background:var(--vm-surface);overflow:auto;}
.vm-file-dialog::backdrop{background:#081b13b3;}.vm-file-dialog img{display:block;max-width:100%;max-height:75dvh;object-fit:contain;margin:12px auto;}
@media(min-width:1024px){.vm-root button{white-space:nowrap;}}
@media(max-width:1100px){.vm-layout{grid-template-columns:minmax(0,1fr);}.vm-preview-pane{position:static;}.vm-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767px){
  .vm-root{padding:12px 0;}.vm-heading{flex-wrap:wrap;gap:12px;}.vm-heading>div{flex:1 1 200px;}
  .vm-card{padding:14px;margin:12px 0;}.vm-grid{grid-template-columns:minmax(0,1fr);gap:14px;}
  .vm-filters{gap:10px;}.vm-filters>label{flex:1 1 130px;}.vm-filters>label:first-child{flex-basis:100%;}
  .vm-mobile-records{display:grid;gap:12px;}.vm-table{display:none;}
  .vm-item{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;border:1px solid var(--vm-border);border-radius:8px;}
  .vm-item .vm-item-name{grid-column:1/-1;}.vm-item button{grid-column:2;justify-self:end;}
  .vm-actions{padding:12px 10px calc(12px + env(safe-area-inset-bottom,0px));gap:8px;}
  .vm-actions>.vm-summary,.vm-actions>.vm-total{flex:1 1 100%;font-size:21px;}
  .vm-actions>button{flex:1 1 110px;padding:10px 8px;font-size:14px;}
  .vm-root input,.vm-root select,.vm-root textarea{font-size:16px;}
  .vm-detail-grid{gap:12px;}.vm-file-thumb{width:64px;height:64px!important;flex-basis:64px;}
  .vm-file-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px;}
}
@media(max-width:390px){.vm-detail-grid{grid-template-columns:minmax(0,1fr);}.vm-section-nav a{padding:8px 10px;font-size:14px;}}
@media(prefers-reduced-motion:reduce){.vm-root *,.vm-file-dialog *{transition:none!important;animation:none!important;scroll-behavior:auto!important;}}
/* Hidden overflow on the host body/phone otherwise traps sticky actions. */
html:has(.vm-page),body:has(.vm-page){overflow-x:clip;overflow-y:visible;}
.phone:has(.vm-page){overflow:clip;}
.vm-filters>.vm-grid,.vm-filters>.vm-advanced{width:100%;}
.vm-actions>div:first-child{margin-right:auto;}.vm-actions .vm-summary{display:block;}
.vm-status-recorded{background:var(--vm-soft);}.vm-status-draft{background:var(--vm-warning-bg);color:var(--vm-warning);}.vm-status-cancelled{color:var(--vm-muted);}
.vm-file-name>small,.vm-file-name>.vm-upload-state,.vm-cost-line small{display:block;}
.vm-eyebrow{color:var(--vm-muted);font-size:13px;}.vm-pagination{margin:16px 0;}
.vm-number{font-variant-numeric:tabular-nums;}.vm-empty{padding:32px 16px;text-align:center;}
@media(max-width:767px){.vm-actions>div{flex:1 1 100%;}.vm-actions>.vm-row>button{flex:1 1 100px;}.vm-actions .vm-row{gap:8px;}}
.vm-detail-grid{align-items:start;}.vm-readonly dl>div,.vm-totals>div{margin-bottom:12px;}
.vm-list-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:16px 0;}
.vm-list-heading h3,.vm-list-heading p{margin:0;}
@media(min-width:1101px){.vm-filters>.vm-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
