/* Shared application theme. Document artwork and customer stationery are not themed. */
:root {
  --sho-white: #FFFFFF;
  --sho-ink: #232B31;
  --sho-muted: #5D6A73;
  --sho-teal: #07789F;
  --sho-sky: #0BA6DF;
  --sho-orange: #EF7722;
  --sho-gold: #FAA533;
  --sho-line: #E3E8EB;
  --sho-soft: #F7F9FA;
  --sho-blue-soft: #EAF7FC;
  --sho-orange-soft: #FFF3E9;
  --sho-gold-soft: #FFF6E6;
}

body.sho-app, body.sho-workspace { background: var(--sho-white); color: var(--sho-ink); }
body.sho-app button, body.sho-workspace button { letter-spacing: 0; }
body.sho-app :is(button, a, input, select, textarea):focus-visible,
body.sho-workspace :is(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--sho-teal); outline-offset: 3px;
}
body.sho-app button:disabled, body.sho-workspace button:disabled { cursor: not-allowed; }

/* Main navigation and account controls. */
.sho-app #app > header {
  background: var(--sho-white); color: var(--sho-ink);
  box-shadow: none; border-bottom: 1px solid var(--sho-line);
}
.sho-app .site-header-row { height: 56px; }
.sho-app .site-brand-name { color: var(--sho-muted); border-color: var(--sho-line); }
.sho-app .site-brand > button, .sho-app .site-header-actions button { color: var(--sho-ink); }
.sho-app #account-status { color: var(--sho-muted); }
.sho-app .site-header-actions > span { color: var(--sho-teal); background: var(--sho-blue-soft); border: 1px solid #C4E7F4; }
@media(max-width:360px){.sho-app .site-header-actions #account-status{display:none}}
.sho-app #sidebar { background: var(--sho-soft); color: var(--sho-ink); border-right: 1px solid var(--sho-line); }
.sho-app #sidebar > div { border-color: var(--sho-line); }
.sho-app #sidebar .navbtn { color: #47545D; font-weight: 500; border-radius: 6px; position: relative; }
.sho-app #sidebar .navbtn i { color: var(--sho-teal); }
.sho-app #sidebar .navbtn:hover { background: #EDF2F5; color: var(--sho-ink); }
.sho-app #sidebar .navbtn.active { background: var(--sho-blue-soft); color: #065A78; font-weight: 650; }
.sho-app #sidebar .navbtn.active::before { content: ''; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 2px; background: var(--sho-orange); }
.sho-app #sidebar .navbtn.active i { color: var(--sho-teal); }
.sho-app #sidebar select { background: var(--sho-white); color: var(--sho-ink); border-color: #CFD8DD; }
.sho-app #sidebar [aria-hidden="true"] { background: var(--sho-orange-soft); color: var(--sho-orange); }
.sho-app #bottom-nav { border-color: var(--sho-line); }
.sho-app #bottom-nav button { color: var(--sho-muted); }
.sho-app #bottom-nav button.text-green { color: var(--sho-teal); }

/* Forms and ordinary commands use the same palette in every main-app view. */
.sho-app .screen > h2, .sho-app .screen > div > h2, .sho-app #modal-title { font-weight: 650; }
.sho-app .screen :is(h3,h4), .sho-app #modal-body :is(h3,h4) { font-weight: 650; }
.sho-app .screen button, .sho-app #modal-overlay button { font-weight: 600; }
.sho-app :is(.screen,#modal-overlay) :is(button,a).bg-green,
.sho-app :is(.screen,#modal-overlay) :is(button,a).bg-orange,
.sho-app .btn-primary, .sho-app #ob-next {
  background: var(--sho-orange); background-image: none; color: var(--sho-ink); border-color: var(--sho-orange); box-shadow: none;
}
.sho-app :is(.screen,#modal-overlay) :is(button,a).bg-green:hover,
.sho-app :is(.screen,#modal-overlay) :is(button,a).bg-orange:hover,
.sho-app .btn-primary:hover, .sho-app #ob-next:hover { background: var(--sho-gold); border-color: var(--sho-gold); }
.sho-app .btn-secondary { color: var(--sho-teal); border-color: #CFD8DD; background: var(--sho-white); }
.sho-app .btn-secondary:hover { background: var(--sho-blue-soft); border-color: #99CDDF; }
.sho-app .screen :is(button,a).text-orange { color: var(--sho-ink); }
.sho-app :is(.screen,#modal-overlay) :is(button,a).bg-blue-600 { background: var(--sho-teal); color: var(--sho-white); }
.sho-app :is(.screen,#modal-overlay) :is(button,a).text-blue-600 { color: var(--sho-teal); }
.sho-app .screen :is(button,input,select,textarea) { border-radius: 6px; }
.sho-app :is(.screen,#modal-body) :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=range]) { border-color: #CFD8DD; }
.sho-app :is(.screen,#modal-body) :is(input,select,textarea):disabled { background: var(--sho-soft); }
.sho-app .tabbtn.active { color: var(--sho-teal); border-bottom-color: var(--sho-orange); }
.sho-app .screen > .bg-white { border-color: var(--sho-line); box-shadow: none; border-radius: 8px; }
.sho-app .screen > .space-y-3 > .bg-white { border-color: var(--sho-line); box-shadow: none; border-radius: 8px; }
.sho-app .screen > .grid > .bg-white { border-color: var(--sho-line); box-shadow: none; border-radius: 8px; }
.sho-app .screen > .bg-gradient-to-br { background: var(--sho-white); color: var(--sho-ink); box-shadow: none; border: 1px solid var(--sho-line); }
.sho-app :is(.screen,#modal-body) > .bg-navy { background: var(--sho-blue-soft); color: var(--sho-ink); box-shadow: none; }
.sho-app :is(.screen,#modal-body) > .bg-navy > :is(p,span) { color: var(--sho-ink); }
.sho-app :is(.screen,#modal-body) > .bg-navy > :is(p,span)[class*="text-white/"] { color: var(--sho-muted); }
.sho-app .modal-bg { background: rgba(35,43,49,.42); }
.sho-app #modal-overlay > div { background-color:var(--sho-white);position:relative;isolation:isolate;border-radius: 8px; box-shadow: 0 12px 40px #232B311F; }
.sho-app #toast { border-radius: 6px; background: var(--sho-ink); }

/* A quiet dashboard: flat rows instead of repeated coloured alert cards. */
.sho-app #dashboard-quick-actions { margin-top: 22px; }
.sho-app #dashboard-quick-actions h3 { color: var(--sho-muted); font-size: 12px; font-weight: 600; }
.sho-app .dashboard-quick-actions button { background: var(--sho-white); border: 1px solid var(--sho-line); border-radius: 8px; box-shadow: none; min-height: 64px; }
.sho-app .dashboard-quick-actions button:hover { background: var(--sho-blue-soft); border-color: #99CDDF; }
.sho-app .dashboard-quick-actions button i { color: var(--sho-teal); }
.sho-app .dashboard-quick-actions button:first-child i { color: var(--sho-orange); }
.sho-app #dashboard-action-centre { border: 0; border-top: 1px solid var(--sho-line); border-radius: 0; box-shadow: none; padding: 24px 0 0; margin-top: 6px; }
.sho-app #dashboard-action-centre > div:first-child i { color: var(--sho-orange); }
.sho-app .attention-row { border: 0; border-bottom: 1px solid var(--sho-line); border-radius: 0; background: var(--sho-white); padding: 14px 0; align-items: center; }
.sho-app .attention-row p { color: var(--sho-ink); font-weight: 500; }
.sho-app .attention-row button { color: var(--sho-teal); text-decoration: none; padding: 5px 10px; border-radius: 6px; background: var(--sho-blue-soft); }
.sho-app .attention-row > i { color: var(--sho-orange); }

/* Compliance retains visible statuses and dates, without large colour blocks. */
.sho-app .compliance-summary { gap: 0; border-block: 1px solid var(--sho-line); }
.sho-app #screen-compliance .compliance-summary > div { background: var(--sho-white); color: var(--sho-ink); border: 0; border-radius: 0; box-shadow: none; padding: 16px; }
.sho-app .compliance-summary > div + div { border-left: 1px solid var(--sho-line); }
.sho-app .compliance-summary p { color: var(--sho-muted); font-weight: 500; }
.sho-app .compliance-summary p:first-child { font-size: 24px; font-weight: 650; color: var(--sho-ink); }
.sho-app .compliance-summary #cc-valid, .sho-app .compliance-summary .fa-circle-check { color: var(--sho-teal); }
.sho-app .compliance-summary #cc-expiring { color: var(--sho-ink); }
.sho-app .compliance-summary #cc-missing { color: var(--sho-ink); }
.sho-app .compliance-table { border: 1px solid var(--sho-line); box-shadow: none; }
.sho-app .compliance-table > div:first-child { background: var(--sho-soft); color: var(--sho-muted); font-weight: 600; }
.sho-app #compliance-list > div { border-left: 0; background: var(--sho-white); }
.sho-app #compliance-list > div:hover { background: #FAFCFD; }
.sho-app #compliance-list button { background: transparent; color: var(--sho-teal); }
.sho-app #compliance-list button:hover { background: var(--sho-blue-soft); }
.sho-app #compliance-list button[onclick^="removeComplianceFile"] { color: var(--sho-ink); }
.sho-app #compliance-list button[onclick^="uploadComplianceFile"] { background: var(--sho-orange-soft); color: var(--sho-ink); }
.sho-app #compliance-list .text-orange { color: var(--sho-ink); }

/* Task entry points keep their existing actions, with no gradients or oversized icons. */
.sho-app .quote-entry-actions { grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr)); }
.sho-app .quote-entry-actions > button, .sho-app #tenders-landing > button { background: var(--sho-white); background-image: none; color: var(--sho-ink); border: 1px solid var(--sho-line); border-radius: 8px; box-shadow: none; transform: none; padding: 18px; }
.sho-app .quote-entry-actions > button:hover, .sho-app #tenders-landing > button:hover { border-color: #99CDDF; background: var(--sho-blue-soft); box-shadow: none; transform: none; }
.sho-app .quote-entry-actions > button:first-child, .sho-app #tenders-landing > button:first-child { border-color: #F4B78B; }
.sho-app .quote-entry-actions button > div { gap: 12px; }
.sho-app .quote-entry-actions button > div > div:first-child { width: 32px; height: 32px; border-radius: 6px; background: var(--sho-blue-soft); color: var(--sho-teal); }
.sho-app .quote-entry-actions button:first-child > div > div:first-child { background: var(--sho-orange-soft); color: var(--sho-orange); }
.sho-app .quote-entry-actions i { font-size: 17px; }
.sho-app .quote-entry-actions p:first-child { font-size: 14px; font-weight: 600; }
.sho-app .quote-entry-actions p + p { display: none; }
.sho-app .quote-editor-columns { background: var(--sho-soft); color: var(--sho-muted); border-block: 1px solid var(--sho-line); }
.sho-app #tenders-landing > button > i { color: var(--sho-teal); }
.sho-app #onboarding { background: var(--sho-white); color: var(--sho-ink); }
.sho-app #onboarding p { color: var(--sho-muted); }
.sho-app #onboarding #ob-back { color: var(--sho-ink); border-color: var(--sho-line); }
.sho-app #screen-tour > div { border: 0; box-shadow: none; background: var(--sho-white); color: var(--sho-ink); }
.sho-app #screen-tour p { color: var(--sho-muted); }
.sho-app #screen-tour .grid > div { background: var(--sho-soft); border-radius: 6px; }

/* Viewer chrome only. Never restyle the PDF, placed text, signatures or quote sheet. */
.vault-preview{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--sho-soft);color:var(--sho-ink);overflow:hidden}
.vault-preview[open]{display:flex;flex-direction:column}
.vault-preview>header{display:flex;align-items:center;gap:10px;padding:12px 16px;min-height:64px;background:var(--sho-white);border-bottom:1px solid var(--sho-line);flex-shrink:0}
.vault-preview>header>div{min-width:0;flex:1}.vault-preview strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.vault-preview header span{display:block;font-size:11px;color:var(--sho-muted);margin-top:3px}
.vault-preview button{display:inline-flex;gap:7px;align-items:center;justify-content:center;background:var(--sho-white);border:1px solid var(--sho-line);border-radius:6px;color:var(--sho-teal);font-size:12px;font-weight:600;min-height:36px;padding:8px 12px}
.vault-preview button:hover{background:var(--sho-blue-soft)}.vault-preview button:disabled{opacity:.5;cursor:not-allowed}.vault-preview button:focus-visible{outline:2px solid var(--sho-teal);outline-offset:2px}
.vault-preview [data-preview-close]{width:36px;padding:0;color:var(--sho-ink)}
.vault-preview-content{position:relative;flex:1;min-height:0}.vault-preview iframe{display:block;width:100%;height:100%;border:0}
.vault-preview-feedback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:var(--sho-soft);padding:24px;text-align:center;font-size:13px}.vault-preview [hidden]{display:none}
@media(max-width:600px){.vault-preview>header{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:10px 12px}.vault-preview>header>div{grid-column:1/3;grid-row:1}.vault-preview [data-preview-close]{grid-column:3;grid-row:1}.vault-preview [data-preview-download]{grid-column:1;grid-row:2}.vault-preview [data-preview-share]{grid-column:2/4;grid-row:2}}
.sho-app #doc-viewer-overlay, .sho-app #pdf-viewer-overlay { background: #F1F4F5; }
.sho-app #doc-viewer-overlay > header, .sho-app #pdf-viewer-overlay > div:first-child {
  background: var(--sho-white); color: var(--sho-ink); border-bottom: 1px solid var(--sho-line);
}
.sho-app #pdf-viewer-overlay .pdf-toolbar-actions { background: var(--sho-white); color: var(--sho-ink); border-color: var(--sho-line); }
.sho-app #pdf-viewer-overlay .pdf-toolbar-actions :is(.bg-green,.bg-gold) { color: var(--sho-ink); }
.sho-app #pdf-viewer-overlay .pdf-toolbar-actions .bg-blue-600 { background: var(--sho-teal); color: var(--sho-white); }

/* The workspace uses the same colours, with a slightly grey document canvas. */
.sho-workspace {
  --soft: #FFFFFF; --line: #E3E8EB; --muted: #5D6A73;
  --positive: var(--sho-teal); --positive-soft: var(--sho-blue-soft);
  --danger: var(--sho-ink); --danger-soft: var(--sho-orange-soft);
  --warning: var(--sho-ink); --warning-soft: var(--sho-gold-soft);
  --orange-dark: var(--sho-ink);
}
.sho-workspace .app-header { background: var(--sho-white); color: var(--sho-ink); border-bottom: 1px solid var(--sho-line); box-shadow: none; }
.sho-workspace .doc-title { border-color: var(--sho-line); }
.sho-workspace .doc-title span { color: var(--sho-muted); }
.sho-workspace .header-btn { color: var(--sho-ink); background: var(--sho-white); border-color: #CFD8DD; font-weight: 600; }
.sho-workspace .header-btn:hover:not(:disabled) { background: var(--sho-blue-soft); border-color: #99CDDF; }
.sho-workspace :is(.header-btn.primary,.action:not(.secondary),.start-primary,.send,.place.active,.candidate button,.line-state button.approve) { background: var(--sho-teal); color: var(--sho-white); border-color: var(--sho-teal); }
.sho-workspace :is(.header-btn.primary,.action:not(.secondary),.start-primary,.send,.place.active,.candidate button,.line-state button.approve):hover:not(:disabled) { background: #065D79; border-color: #065D79; }
.sho-workspace .action.secondary { background: var(--sho-white); color: var(--sho-teal); border: 1px solid #CFD8DD; }
.sho-workspace .action.secondary:hover:not(:disabled) { background: var(--sho-blue-soft); }
.sho-workspace .page-rail { background: var(--sho-soft); }
.sho-workspace .doc-stage { background: #F1F4F5; }
.sho-workspace .toolbar, .sho-workspace .side-panel, .sho-workspace .chat-log { background: var(--sho-white); }
.sho-workspace .thumb.active { background: var(--sho-blue-soft); border-color: #81CBE5; }
.sho-workspace .mode-switch button.active { background: var(--sho-blue-soft); color: var(--sho-teal); box-shadow: inset 0 -2px var(--sho-sky); }
.sho-workspace .context-bar { background: var(--sho-soft); }
.sho-workspace .context-page { background: var(--sho-blue-soft); color: var(--sho-teal); }
.sho-workspace .message.user { background: var(--sho-blue-soft); color: var(--sho-ink); }
.sho-workspace .panel-tab { font-weight: 600; }
.sho-workspace .fill-tool, .sho-workspace .place, .sho-workspace .row-action { font-weight: 600; }
.sho-workspace .fill-tool i { color: var(--sho-orange); }
.sho-workspace .start-screen { background: var(--sho-white); }
.sho-workspace .start-panel { box-shadow: none; }
.sho-workspace .boq-screen, .sho-workspace .boq-main { background: var(--sho-white); }
.sho-workspace .boq-head { background: var(--sho-white); color: var(--sho-ink); border-bottom: 1px solid var(--sho-line); }
.sho-workspace .boq-head span { color: var(--sho-muted); }
.sho-workspace .boq-back { color: var(--sho-ink); border-color: #CFD8DD; }
.sho-workspace .boq-table th { background: var(--sho-soft); }
.sho-workspace .modal-bg { background: rgba(35,43,49,.42); }
.sho-workspace .modal { box-shadow: 0 12px 40px #232B311F; }

/* Legacy status utilities are mapped only in the interface, never in customer stationery. */
.sho-app :is(.screen,#modal-body) :is(.bg-red-50,.bg-red-100,.bg-orange-50,.bg-orange-100):not(:where(#qb-preview-shell,#qb-preview-shell *)) { background-color: var(--sho-orange-soft); }
.sho-app :is(.screen,#modal-body) :is(.bg-amber-50,.bg-amber-100,.bg-amber-200):not(:where(#qb-preview-shell,#qb-preview-shell *)) { background-color: var(--sho-gold-soft); }
.sho-app :is(.screen,#modal-body) :is(.bg-pos-50,.bg-pos-100,.bg-blue-50,.bg-blue-100,.bg-purple-50,.bg-purple-100,.bg-green-50):not(:where(#qb-preview-shell,#qb-preview-shell *)) { background-color: var(--sho-blue-soft); }
.sho-app :is(.screen,#modal-body) :is(.text-red-300,.text-red-400,.text-red-500,.text-red-600,.text-red-700,.text-red-800,.text-amber-500,.text-amber-600,.text-amber-700,.text-amber-800,.text-amber-900,.text-orange-600,.text-green-700,.text-green-900):not(:where(#qb-preview-shell,#qb-preview-shell *)) { color: var(--sho-ink); }
.sho-app :is(.screen,#modal-body) :is(.text-pos,.text-blue-400,.text-blue-500,.text-blue-600,.text-blue-700,.text-blue-800,.text-blue-900,.text-purple-600,.text-purple-700):not(:where(#qb-preview-shell,#qb-preview-shell *)) { color: var(--sho-teal); }
.sho-app :is(.screen,#modal-body) .text-green2:not(:where(#qb-preview-shell,#qb-preview-shell *)) { color: var(--sho-ink); }
.sho-app :is(.screen,#modal-body) :is(.border-red-100,.border-red-200,.border-red-400,.border-amber-100,.border-amber-200,.border-amber-300,.border-amber-400,.border-orange-100):not(:where(#qb-preview-shell,#qb-preview-shell *)) { border-color: var(--sho-orange); }
.sho-app :is(.screen,#modal-body) :is(.border-pos-100,.border-pos-200,.border-blue-100,.border-blue-200,.border-blue-400,.border-blue-600,.border-green-200,.border-green-300):not(:where(#qb-preview-shell,#qb-preview-shell *)) { border-color: var(--sho-sky); }
.sho-app :is(.screen,#modal-body) :is(.bg-red-500,.bg-red-600,.bg-orange-600):not(:where(#qb-preview-shell,#qb-preview-shell *)) { background-color: var(--sho-orange); color: var(--sho-ink); }
.sho-app :is(.screen,#modal-body) :is(.hover\:text-red-500:hover,.hover\:text-red-600:hover):not(:where(#qb-preview-shell,#qb-preview-shell *)) { color: var(--sho-ink); background-color: var(--sho-orange-soft); }
.sho-app .badge :is(.fa-circle-xmark,.fa-circle-exclamation,.fa-triangle-exclamation) { color: var(--sho-orange); }
.sho-app #company-completion-badges .badge { border-radius: 5px; padding: 4px 8px; }
.sho-app #company-completion-pct { color: var(--sho-teal); }
.sho-app #company-completion-bar { background: var(--sho-sky); }
.sho-workspace .place.done { border-color: var(--sho-sky); }
.sho-workspace .field-hint { border-color: var(--sho-gold); }
.sho-workspace :is(.editor-actions button.danger,.signature-card-actions button.danger) { border-color: var(--sho-orange); }
@media (max-width:640px) {
  .sho-app #modal-overlay > div { border-radius: 8px 8px 0 0; }
  .sho-app #screen-compliance .compliance-summary > div { padding: 14px 10px; }
  .sho-app #compliance-list > div { padding-block: 16px; }
}
:root{--commercial-border:#E3E8EB}
.commercial-section{padding:20px 0;border-top:1px solid var(--commercial-border);border-bottom:1px solid var(--commercial-border);margin:18px 0}
.commercial-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.commercial-heading h3{font-size:15px;font-weight:700;color:#232B31}
.commercial-heading>span{color:#5D6A73;font-size:12px}
.commercial-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}
.commercial-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.commercial-grid label,.business-doc-toolbar label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:#5D6A73;min-width:0}
.commercial-grid input,.commercial-grid textarea,.business-doc-toolbar input,.business-doc-toolbar select,.commercial-search,.business-doc-search{width:100%;min-width:0;padding:9px 10px;border:1px solid #CDD7DD;border-radius:5px;color:#232B31;background:#FFFFFF;font-size:13px;font-weight:400}
.commercial-search,.business-doc-search{margin-bottom:16px}
.commercial-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:12px}
.commercial-actions button{color:#07789F;font-weight:600;min-height:32px}
.check-label{display:flex;align-items:center;gap:8px;font-size:12px;color:#232B31}
.check-label input{accent-color:#07789F}
.commercial-notice{white-space:pre-wrap;font-size:12px;color:#07789F;line-height:1.6;margin:10px 0}
.commercial-notice button{font-weight:700;text-decoration:underline;margin-left:8px}
.commercial-list-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 150px auto;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid #E3E8EB;font-size:13px}
.quote-list-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.quote-list-toolbar>div{flex-wrap:wrap}
.quote-list-toolbar button{min-height:36px}
.quote-list-toolbar [hidden]{display:none!important}
.quote-list-toolbar button:disabled{opacity:.45;cursor:default}
.commercial-list-name{display:flex;align-items:center;gap:12px;min-width:0}
.commercial-list-name>div{min-width:0;overflow-wrap:anywhere}
.commercial-list-name input{width:16px;height:16px;flex:none;accent-color:var(--sho-teal)}
.commercial-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.asset-tabs{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--sho-line);margin:18px 0 24px;font-size:13px}
.asset-tools{position:relative;margin-left:auto}
.asset-tools summary{padding:12px 0;cursor:pointer;display:flex;align-items:center;gap:10px;color:var(--sho-teal)}
.asset-tools>div{position:absolute;z-index:10;right:0;top:100%;width:220px;background:white;border:1px solid var(--sho-line);border-radius:6px;box-shadow:0 4px 16px #232b3114;padding:6px}
.asset-tools button{display:block;padding:12px;width:100%;text-align:left;border-radius:4px}
.asset-tools button:hover{background:var(--sho-soft)}
.asset-tools button.active{color:var(--sho-teal);font-weight:600}
.asset-section-title{font-size:14px;font-weight:650;margin-bottom:18px}
.vehicle-actions{display:flex;gap:8px;flex-wrap:wrap}
.vehicle-actions button{min-width:90px;padding:8px}
.deleted-vehicle-row{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--sho-line);font-size:13px}
.deleted-vehicle-row p{font-size:12px;color:var(--sho-muted);margin-top:4px}
#screen-reports h2{font-size:20px;font-weight:700}
.business-report-section{padding:24px 0;border-bottom:1px solid var(--sho-line)}
.business-report-section h3,.settings-account h3{font-size:14px;font-weight:650;margin-bottom:10px}
.report-caption,.settings-account p{font-size:12px;color:var(--sho-muted)}
.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:24px 0 32px}
.report-metrics>div{border-left:3px solid var(--sho-teal);padding-left:14px;min-width:0}
.report-metrics>div:last-child{border-color:var(--sho-orange)}
.report-metrics span{display:block;font-size:12px;color:var(--sho-muted);margin-bottom:7px}
.report-metrics strong{font-size:20px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.report-count{font-size:12px;color:var(--sho-muted);margin-left:8px}
.report-table-wrap{overflow:auto}
.business-report-table{width:100%;text-align:left;font-size:13px}
.business-report-table th{font-size:11px;font-weight:500;color:var(--sho-muted)}
.business-report-table th,.business-report-table td{padding:12px 10px;border-bottom:1px solid var(--sho-line)}
.business-report-table small,.report-expiry small{display:block;font-size:12px;color:var(--sho-muted);margin-top:4px}
.business-report-table td:first-child{min-width:160px;overflow-wrap:anywhere}
.business-report-table td:nth-child(2),.business-report-table td:nth-child(3){white-space:nowrap}
.report-compliance{display:flex;gap:24px;flex-wrap:wrap;margin:12px 0 24px;font-size:13px}
.report-compliance b{color:var(--sho-teal)}
.report-expiry{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--sho-line);font-size:13px;overflow-wrap:anywhere}
.report-expiry button{flex:none}
.report-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.report-records button{display:flex;align-items:center;gap:16px;text-align:left;font-size:13px;border-bottom:1px solid var(--sho-line);padding:14px 0}
.report-records span{flex:1}
.report-records i{font-size:10px;color:var(--sho-teal)}
.settings-account{padding:24px 0;margin-bottom:24px;border-bottom:1px solid var(--sho-line)}
.settings-account-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.settings-account small{display:block;font-size:12px;color:var(--sho-teal);margin-top:8px}
.settings-template{display:flex;align-items:center;gap:16px;font-size:13px;margin-top:24px;flex-wrap:wrap}
.settings-template select{padding:8px;border:1px solid var(--sho-line);background:white;border-radius:5px}
@media(max-width:750px){.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.report-metrics strong{font-size:17px}.report-records{grid-template-columns:1fr}.asset-tabs{gap:18px}.commercial-row-actions{justify-content:start}}
.settings-business-links{display:grid;gap:0;margin-top:20px}
.settings-business-links button{display:flex;align-items:center;gap:12px;text-align:left;padding:14px 0;border-top:1px solid var(--sho-line);font-size:13px}
.settings-business-links button i{margin-left:auto;font-size:10px;color:var(--sho-teal)}
.settings-advanced{padding:18px 0;border-top:1px solid var(--sho-line)}
.settings-advanced summary{font-size:14px;font-weight:600;color:var(--sho-teal);cursor:pointer}
.settings-advanced>div{margin-top:18px}
#screen-settings>div:not(.settings-account){border:0;border-radius:0;box-shadow:none;padding:20px 0;margin:0;border-top:1px solid var(--sho-line)}
@media(max-width:600px){
  .business-report-table,.business-report-table tbody{display:block}
  .business-report-table thead{display:none}
  .business-report-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;border-bottom:1px solid var(--sho-line);padding:16px 0}
  .business-report-table td{padding:0;border:0;min-width:0!important;white-space:normal!important}
  .business-report-table td:nth-child(2){grid-column:1;grid-row:2}
  .business-report-table td:nth-child(2)::before{content:'Due ';color:var(--sho-muted)}
  .business-report-table td:nth-child(3){grid-column:2;grid-row:2;text-align:right;font-weight:600}
  .business-report-table td:nth-child(4){grid-column:2;grid-row:1;text-align:right}
}
.commercial-document-title{text-align:left;font-weight:650;color:#07789F;overflow-wrap:anywhere}
.commercial-list-row p{font-size:12px;color:#5D6A73;margin-top:5px;overflow-wrap:anywhere}
.commercial-list-total{text-align:right;font-variant-numeric:tabular-nums}
.commercial-status{font-size:11px;padding:4px 7px;background:#EAF7FC;color:#07789F;border-radius:4px}
body.sho-app .commercial-selected{background:#07789F!important;color:white!important}
.commercial-empty{padding:26px 8px;text-align:center;font-size:13px;color:#5D6A73}
.commercial-payment{display:flex;align-items:center;gap:16px;border-bottom:1px solid #E3E8EB;padding:10px 0;font-size:12px}
.commercial-payment span{flex:1;overflow-wrap:anywhere}
#commercial-payments{margin-top:24px}
#quote-rows td{padding:12px 8px;border-bottom:1px solid #E3E8EB;vertical-align:top}
#quote-rows td:first-child{min-width:220px;width:42%}
#quote-rows textarea,#quote-rows input,#quote-rows select{width:100%;border:1px solid #CDD7DD;padding:7px;border-radius:4px;font-size:13px;background:white;min-width:65px}
#quote-rows textarea{resize:vertical;min-height:62px}
#quote-rows td:first-child input{width:110px;margin-top:4px;font-size:11px}
#quote-rows td:nth-child(2){width:85px}
#quote-rows td:nth-child(3){width:120px}
#quote-rows td:nth-child(4){width:115px}
#quote-rows button{color:#07789F;padding:7px;min-width:30px;min-height:32px}
.quote-editor-columns th{padding:12px 8px;text-align:left;white-space:nowrap}
#screen-quote-builder .overflow-x-auto{position:relative;max-width:100%}
#screen-quote-builder #q-gp{color:var(--sho-ink);font-weight:600}
.commercial-amount{font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
.commercial-preview-modal{max-width:1050px}
.commercial-pdf-frame{display:block;width:100%;height:72vh;background:#F7F9FA;border:0}
.commercial-preview-link{display:block;text-align:center;padding:8px;font-size:12px;color:#07789F;text-decoration:underline}
.business-doc-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.business-upload{display:block;border:1px dashed #07789F;border-radius:6px;padding:16px;background:#EAF7FC;color:#07789F;font-size:13px;font-weight:600}
.business-upload input{display:block;width:100%;margin-top:10px;font-size:12px;color:#232B31}
.business-doc-row{border-bottom:1px solid #E3E8EB;padding:14px 0;font-size:13px}
.business-doc-row p{font-size:12px;color:#5D6A73;overflow-wrap:anywhere;margin:4px 0}
.business-doc-row span{font-size:11px;color:#5D6A73}
.business-doc-row .commercial-actions{margin-top:6px}
.document-coverage{margin:14px 0;border:1px solid var(--sho-line);border-radius:6px;padding:12px;display:grid;gap:10px}
.document-coverage legend{font-size:13px;font-weight:600;padding:0 5px}
.document-coverage label{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4}
.document-coverage input{margin-top:3px;accent-color:var(--sho-teal)}
.document-tags{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.document-tags span{padding:3px 7px;background:var(--sho-blue-soft);color:var(--sho-teal);border-radius:4px}
#tenders-landing:not(.hidden){display:block}
#screen-tenders [hidden]{display:none!important}
@media(max-width:900px){.commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.commercial-list-row{grid-template-columns:minmax(0,1fr) auto}.commercial-list-total{text-align:left}}
@media(max-width:520px){.commercial-grid,.commercial-grid.two,.business-doc-toolbar{grid-template-columns:1fr}.commercial-list-row{gap:10px}.commercial-pdf-frame{height:65vh}.commercial-section{padding:16px 0}.commercial-actions{gap:12px}}

/* Commercial forms use unframed sections and a single row of document actions. */
#company-progress[hidden],#q-evidence-summary[hidden]{display:none!important}
#screen-quote-builder .hidden{display:none!important}
.quote-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0 20px;border-bottom:1px solid var(--sho-line);margin-bottom:24px}
.quote-toolbar button,.quote-text-button,.quote-parties h3,.quote-items-section h3,.quote-bottom h3,.commercial-heading h3{display:inline-flex;align-items:center;gap:8px}
.quote-toolbar .btn-primary,.quote-toolbar .btn-secondary,#screen-compliance .btn-primary,#screen-compliance .btn-secondary{min-height:38px;padding:8px 12px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:6px;border:1px solid var(--sho-line)}
.quote-toolbar .btn-primary,#screen-compliance .btn-primary{border-color:var(--sho-orange)}
.quote-icon-button{width:38px;height:38px;justify-content:center;border:1px solid var(--sho-line);color:var(--sho-teal)}
.quote-parties h3,.quote-bottom h3{font-size:14px;font-weight:650;margin-bottom:8px}
.quote-parties h3 i,.quote-items-section h3 i,.quote-bottom h3 i,.commercial-heading h3 i{font-size:13px;color:var(--sho-teal)}
.quote-parties>.commercial-grid{gap:32px}
.quote-parties .quote-business-name{font-size:14px;font-weight:650;overflow-wrap:anywhere}
.quote-business-meta,#qb-from-details{font-size:12px;color:var(--sho-muted);overflow-wrap:anywhere;line-height:1.65}
.quote-text-button{font-size:12px;color:var(--sho-teal);min-height:30px}
.quote-letterhead-controls{display:flex;gap:24px;align-items:end;margin-top:16px;flex-wrap:wrap}
.quote-letterhead-controls select{padding:7px 24px 7px 9px;background:white;border:1px solid var(--sho-line);font-size:12px;color:var(--sho-ink)}
.quote-letterhead-controls label{display:flex;flex-direction:column;font-size:12px;gap:7px;color:var(--sho-muted)}
#qb-logo-size{max-width:120px;min-height:32px;accent-color:var(--sho-teal)}
#screen-quote-builder #qb-from-logo{object-fit:contain;object-position:left center;max-width:min(200px,45%);max-height:110px}
#screen-quote-builder [hidden],#bank-other-wrap[hidden]{display:none!important}
.quote-customer-fields{margin-top:12px;gap:12px}
.quote-span{grid-column:1/-1}
.quote-document-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}
.quote-document-meta>span{grid-column:1/-1}
.quote-supplier .commercial-section{margin:22px 0 16px;padding:16px 0 0;border-bottom:0}
.quote-supplier #commercial-save-state:empty{display:none}
.quote-document-meta label,.quote-terms-section>label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--sho-muted)}
.quote-document-meta input,.quote-terms-section textarea{border:1px solid var(--sho-line);border-radius:5px;padding:9px 10px;font-size:13px;color:var(--sho-ink);min-width:0;width:100%;background:white}
.quote-document-meta input[readonly]{background:var(--sho-soft);font-variant-numeric:tabular-nums}
#commercial-save-state{font-size:12px;color:var(--sho-teal);padding:10px 0}
.quote-terms-section{border-top:1px solid var(--sho-line);padding:22px 0;margin-top:24px}
.quote-terms-section h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:650}
.quote-terms-section h3 i{color:var(--sho-teal)}
.quote-standard-terms{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin:18px 0}
.quote-standard-terms label{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:var(--sho-ink);cursor:pointer}
.quote-standard-terms input{flex:none;width:16px;height:16px;margin-top:2px;accent-color:var(--sho-teal)}
.quote-terms-section>.quote-acceptance{flex-direction:row;align-items:center;margin-top:14px}
.quote-bank-summary p{font-size:13px;line-height:1.8;overflow-wrap:anywhere;margin:12px 0;color:var(--sho-ink)}
.bank-logo{display:block;object-fit:contain;object-position:left center;width:135px;height:40px;max-width:100%}
.bank-logo[src$="/standard-bank.svg"]{background:#0033A1;padding:5px;box-sizing:content-box}
#bank-logo-preview{min-height:46px;margin-bottom:14px}
.quote-bank-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px}
.commercial-grid select{width:100%;padding:9px 10px;min-width:0;border:1px solid var(--sho-line);border-radius:5px;background:white;color:var(--sho-ink);font-size:13px}
@media(max-width:600px){.quote-standard-terms{grid-template-columns:1fr}.quote-document-meta{grid-template-columns:1fr 1fr}.quote-document-meta>span{grid-column:1/-1}}
.commercial-section{padding:18px 0 12px;margin:4px 0 24px;border-top:1px solid var(--sho-line);border-bottom:1px solid var(--sho-line)}
.commercial-grid.single{grid-template-columns:1fr}
.quote-options summary{font-size:12px;font-weight:600;color:var(--sho-teal);cursor:pointer;padding:6px 0 12px}
.quote-items-section{margin-bottom:24px}
.quote-editor-columns th{font-size:12px;font-weight:600;text-transform:none}
.quote-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:40px;border-top:1px solid var(--sho-line);padding-top:22px}
.quote-bottom #commercial-notes h3,.quote-totals h3{margin-bottom:14px}
.quote-totals{font-variant-numeric:tabular-nums}
.quote-inline-field{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--sho-muted)}
.quote-inline-field input{width:64px;border:1px solid var(--sho-line);padding:6px;text-align:right;color:var(--sho-ink)}
.quote-grand-total{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:2px solid var(--sho-teal);padding:14px 0 8px;margin-top:14px;font-weight:700}
#q-total{font-size:22px;color:var(--sho-teal)}
#q-gp{max-width:55%;text-align:right;overflow-wrap:anywhere}
.quote-action-list button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 8px;border-bottom:1px solid var(--sho-line);font-size:13px;color:var(--sho-ink)}
.quote-action-list button:hover{background:var(--sho-soft)}
.quote-action-list button>i{color:var(--sho-teal);width:18px;text-align:center}
.quote-action-list button>span{flex:1}
.quote-action-list button>small{font-size:11px;color:var(--sho-muted);font-weight:400}
.quote-action-list button>i:last-child{font-size:9px}

.compliance-toolbar{display:flex;gap:12px;margin:18px 0;flex-wrap:wrap}
.compliance-toolbar select{padding:9px 28px 9px 10px;font-size:12px;background:white;border:1px solid var(--sho-line);min-height:38px}
.compliance-search{flex:1;min-width:180px;display:flex;gap:10px;align-items:center;border:1px solid var(--sho-line);border-radius:6px;padding:0 12px;color:var(--sho-muted)}
.compliance-search input{border:0;background:transparent;width:100%;font-size:13px;min-height:38px;color:var(--sho-ink)}
.compliance-columns,.compliance-row{display:grid;grid-template-columns:minmax(0,1fr) 155px 92px 300px;align-items:center;gap:16px;padding:14px 16px}
.compliance-columns{font-size:11px;text-transform:uppercase;padding-block:10px;color:var(--sho-muted)}
.compliance-name{display:flex;gap:12px;align-items:center;font-size:13px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.compliance-name i{color:var(--sho-teal);font-size:17px;flex-shrink:0}
.compliance-expiry{font-size:12px;color:var(--sho-muted)}
.compliance-expiry.attention{color:var(--sho-ink);font-weight:600}
.compliance-state{font-size:11px;display:inline-flex;align-items:center;gap:5px;color:var(--sho-teal);white-space:nowrap}
.compliance-state.expired,.compliance-state.missing{color:var(--sho-ink)}
.compliance-state.expired i,.compliance-state.missing i{color:var(--sho-orange)}
.compliance-row-actions{display:flex;align-items:center;justify-content:end;gap:2px;flex-wrap:wrap}
.compliance-row-actions button{padding:7px;font-size:12px;min-height:32px}
.compliance-row-actions button i{font-size:11px}
.vault-share-dialog{width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--sho-line);border-radius:8px;background:#fff;color:var(--sho-ink);box-shadow:0 20px 60px #252d3433;font-family:inherit;overflow:auto}
.vault-share-dialog::backdrop{background:#252d3466}
.vault-share-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--sho-line)}
.vault-share-dialog h2{font-size:18px;font-weight:700;margin:0}
.vault-share-dialog .vault-share-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border:0;background:var(--sho-soft);color:var(--sho-muted);border-radius:6px}
.vault-share-body{padding:24px}
.vault-share-file{display:flex;align-items:center;gap:14px;min-width:0}
.vault-share-file>i{font-size:24px;color:var(--sho-teal);flex-shrink:0}
.vault-share-file>div{min-width:0}
.vault-share-file strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.vault-share-file span{display:block;font-size:12px;color:var(--sho-muted);margin-top:4px;overflow-wrap:anywhere}
.vault-share-privacy,.vault-share-status{font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.vault-share-privacy{margin:20px 0 12px;color:var(--sho-muted)}
.vault-share-status{margin:0;color:var(--sho-ink)}
.vault-share-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:16px 24px;border-top:1px solid var(--sho-line)}
.vault-share-dialog footer button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 13px;border:1px solid var(--sho-line);border-radius:6px;background:#fff;color:var(--sho-teal);font-size:13px;font-weight:600}
.vault-share-dialog footer .vault-share-choose,.vault-share-dialog footer .vault-share-primary{background:var(--sho-teal);border-color:var(--sho-teal);color:#fff}
.vault-share-dialog button:disabled{opacity:.5;cursor:not-allowed}
.vault-share-dialog button:focus-visible{outline:2px solid var(--sho-teal);outline-offset:3px}
.vault-share-dialog button[hidden]{display:none}
@media(max-width:480px){.vault-share-dialog header,.vault-share-body{padding:18px}.vault-share-dialog footer{padding:16px 18px}.vault-share-dialog footer button{flex:1;white-space:nowrap}}
.compliance-check-note{font-size:13px;line-height:1.6;color:var(--sho-muted);margin-bottom:16px}
.compliance-check-results>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:12px 0;border-bottom:1px solid var(--sho-line);font-size:12px}
.compliance-check-results p{grid-column:1/-1;color:var(--sho-muted);font-size:12px}
.compliance-check-results span{color:var(--sho-teal);font-weight:600}
@media(max-width:1100px){.compliance-columns{display:none}.compliance-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.compliance-name{grid-column:1}.compliance-expiry{grid-column:1;grid-row:2}.compliance-state{grid-column:2}.compliance-row-actions{grid-column:2;grid-row:2}.quote-toolbar .flex-1{display:none}}
@media(max-width:700px){.quote-bottom{grid-template-columns:1fr;gap:28px}.quote-parties>.commercial-grid{gap:20px}.quote-toolbar{gap:8px}.quote-toolbar h2{font-size:16px}.quote-toolbar select{max-width:155px}.quote-letterhead-controls{gap:16px}.quote-action-list button{flex-wrap:wrap}.compliance-row-actions{grid-column:1/-1;grid-row:3;justify-content:start}.compliance-toolbar select{flex:1;min-width:0}.compliance-search{flex-basis:100%}}
@media(max-width:700px){
  .quote-items-section table{min-width:0;width:100%;display:block}
  .quote-items-section thead{display:none}
  #quote-rows{display:block}
  #quote-rows tr{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;border-top:1px solid var(--sho-line);padding:16px 0}
  #quote-rows td{border:0;padding:0;width:auto!important;min-width:0!important}
  #quote-rows td:first-child,#quote-rows td:last-child{grid-column:1/-1}
  #quote-rows td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--sho-muted);font-weight:500;text-align:left;margin-bottom:6px}
  #quote-rows td:last-child{text-align:right}
  #quote-rows .commercial-amount{text-align:left}
  #quote-rows td:first-child input{width:130px}
}
