/* v0.5.4: readable screen UI. Label and PDF layouts keep their own print sizes. */
.admin-body,.public-page,.du-login-page{font-size:15px;line-height:1.55}
.admin-body{--du-muted:#50627a}

/* Keep the entire menu reachable on short desktops and mobile screens. */
.admin-body .sidebar{
  height:100vh;height:100dvh;max-height:100dvh;min-height:0;
  overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#647b9c #0b1730;
  padding-bottom:max(20px,env(safe-area-inset-bottom));
}
.admin-body .sidebar>*{flex-shrink:0}
.admin-body .sidebar::-webkit-scrollbar{width:8px}
.admin-body .sidebar::-webkit-scrollbar-thumb{background:#647b9c;border-radius:8px}
.admin-body .nav a{font-size:14px;min-height:46px;color:#c1cee2}
.admin-body .sidebar-section-label{font-size:11px;letter-spacing:.1em;color:#a0b2cc}
.admin-body .product-brand-copy span{color:#b0c0d8;font-size:11px;line-height:1.5}
.admin-body .tenant-copy small{color:#b0c0d8;font-size:10px}
.admin-body .tenant-copy strong{font-size:13px;line-height:1.45}
.admin-body .tenant-copy span{color:#b0c0d8;font-size:12px}
.admin-body .user-chip strong{font-size:13px}
.admin-body .user-chip span,.admin-body .logout{color:#c1cee2;font-size:12px}
.admin-body .logout{display:block;padding:7px 0;min-height:34px}
.admin-body .product-version{color:#a0b2cc;font-size:11px}

/* Consistent type sizes for forms, lists and everyday actions. */
.admin-body .input,.admin-body .select,.admin-body .textarea,
.du-login-form .input,.du-login-form .select{font-size:16px;line-height:1.5;color:#20344f;min-height:46px}
.admin-body .input::placeholder,.admin-body .textarea::placeholder,
.du-login-form .input::placeholder{color:#66758a;opacity:1}
.admin-body .label,.du-login-form .label{font-size:13px;color:#40546e;font-weight:700;line-height:1.55;letter-spacing:.015em}
.admin-body .btn,.du-login-form .btn{font-size:14px;min-height:44px;line-height:1.4}
.admin-body .btn-sm{font-size:13px}
.admin-body .card h2,.admin-body .panel h2{font-size:21px;line-height:1.35}
.admin-body .panel-heading p,.admin-body .form-section>p,.admin-body .section-head p,
.admin-body .field-note,.admin-body .repeat-visit-callout p,.admin-body .repeat-visit-note,
.admin-body .page-context small{font-size:14px;line-height:1.65;color:#50627a}
.admin-body .section-caption,.admin-body .kicker,.admin-body .context-label,
.admin-body .dossier-label,.admin-body .eyebrow{font-size:11px;color:#50627a;letter-spacing:.08em}
.admin-body .status-tag,.public-page .status-tag{font-size:11px;line-height:1.5;padding:6px 10px;letter-spacing:.035em}
.admin-body .record-tabs a,.admin-body .pagination a,.admin-body .pagination span{font-size:13px}
.admin-body .plate{font-size:14px;line-height:1.5}
.admin-body .vehicle-list-row p,.admin-body .vehicle-list-row small{font-size:14px;color:#50627a;line-height:1.6}
.admin-body .vehicle-list-customer{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.admin-body .vehicle-list-customer .customer-type-badge{font-size:12px;padding:4px 10px;line-height:1.5}
.admin-body .vehicle-customer-name{display:block;font-size:17px;line-height:1.5;margin:0;max-width:100%;overflow-wrap:anywhere}
.admin-body .vehicle-list-customer p,.admin-body .vehicle-list-customer small{display:block;margin:0}
.admin-body .customer-card-head strong{font-size:16px;line-height:1.5}
.admin-body .customer-card-head span,.admin-body .customer-meta,
.admin-body .customer-vehicles small{font-size:13px;color:#50627a}
.admin-body .job-header h3{font-size:20px}
.admin-body .job-header p,.admin-body .job-actions a,.admin-body .job-actions button,
.admin-body .vehicle-shortcuts a{font-size:13px}
.admin-body .job-id,.admin-body .side-panel-head{font-size:11px;color:#50627a}
.admin-body .job-section>span,.admin-body .notes-stack>div>span{font-size:12px;color:#50627a;letter-spacing:.02em}
.admin-body .job-section p,.admin-body .job-section li,.admin-body .notes-stack p{font-size:15px;line-height:1.7;color:#30465f}
.admin-body .dossier-model{font-size:15px;color:#50627a}
.admin-body .dossier-strip span,.admin-body .spec-list dt{font-size:12px;color:#50627a}
.admin-body .dossier-strip strong,.admin-body .spec-list dd{font-size:14px;line-height:1.6;color:#243b55}
.admin-body .du-service-main strong{font-size:15px}
.admin-body .du-service-main small,.admin-body .du-service-meta span,
.admin-body .du-service-meta strong{font-size:13px;line-height:1.5}
.admin-body .du-service-meta span{color:#50627a}
.admin-body .cash-main strong,.admin-body .ledger-entry h3{font-size:15px}
.admin-body .cash-main small,.admin-body .cash-main p,.admin-body .cash-meta,
.admin-body .cash-date,.admin-body .ledger-entry p,.admin-body .ledger-entry small,
.admin-body .report-accounting-note,.admin-body .finance-report-filters p,
.admin-body .report-result-heading p{font-size:13px;line-height:1.6;color:#50627a}
.admin-body .cash-type-tabs a,.admin-body .report-filter-form label{font-size:14px}
.admin-body .cost-editor-note,.admin-body .cost-editor-row label,
.admin-body .cost-line-value span,.admin-body .cost-visibility small{font-size:13px;line-height:1.6;color:#50627a}
.admin-body .cost-editor-row .input,.admin-body .cost-editor-row .select{font-size:16px}
.admin-body .cost-line-value output,.admin-body .cost-visibility strong{font-size:15px}
.admin-body .cost-editor-total span{font-size:14px}
.admin-body .cost-remove{min-width:40px;min-height:44px}
.admin-body .cost-editor-row{grid-template-columns:100px minmax(140px,1fr) 85px 130px 130px 40px}
.admin-body .service-costs h4,.public-page .service-costs h4{font-size:16px}
.admin-body .cost-table,.public-page .cost-table{font-size:14px}
.admin-body .cost-table th,.public-page .cost-table th{font-size:12px}
.admin-body .cost-table td small,.public-page .cost-table td small{font-size:12px}
.admin-body .cost-summary,.public-page .cost-summary{font-size:14px}
.admin-body .cost-summary>b,.public-page .cost-summary>b{font-size:16px}
.admin-body .cost-audience{font-size:13px}
.du-login-form h1{margin-bottom:26px}
.du-login-form .field{margin-bottom:20px}
.du-login-form .du-tenant-login>div:last-child small{font-size:11px;color:#50627a}
.du-login-form .du-tenant-login>div:last-child span{font-size:13px;color:#50627a}
.du-login-form .du-tenant-login>div:last-child strong{font-size:15px;line-height:1.5}

/* The same gallery/camera picker is available during vehicle and visit edits. */
.vehicle-photo-editor{margin:24px 0;padding:22px;border:1px solid #d6e2f1;background:#f8fbff;border-radius:14px;min-width:0}
.vehicle-photo-editor h3{margin:0 0 8px;font-size:19px;color:#193a56}
.vehicle-photo-editor .photo-section-heading{align-items:flex-start}
.vehicle-photo-editor .photo-section-heading p{margin:0;max-width:640px}
.photo-manage-link{display:inline-block;margin-top:12px;color:#205bbd;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.admin-body .photo-section-heading p,.admin-body .photo-picker-note,
.admin-body .photo-public-note,.admin-body .photo-upload-status,
.public-page .photo-section-heading p{font-size:14px;line-height:1.65;color:#50627a}
.admin-body .photo-file-button,.admin-body .photo-count,
.admin-body .photo-empty,.public-page .photo-count{font-size:14px;line-height:1.5}
.admin-body .photo-upload-status{color:#157344}
.admin-body .photo-upload-status.is-error{color:#ad3c33}

/* Public QR history: native buttons open each visit with or without JavaScript. */
.public-page .public-facts .detail span{font-size:12px;color:#50627a;letter-spacing:.01em}
.public-page .public-facts .detail strong{font-size:15px;line-height:1.6}
.public-page .public-vehicle-showcase p{font-size:17px;color:#344a64}
.public-page .public-vehicle-showcase small{font-size:13px;color:#50627a}
.public-page .public-hero-top>.status{font-size:11px;letter-spacing:.025em;color:#237b59}
.public-page .public-brand>span{font-size:11px;color:#50627a;letter-spacing:.09em}
.public-page .public-history-head h2{font-size:23px;margin-bottom:8px}
.public-page .public-history-head p{font-size:14px;color:#50627a;line-height:1.6}
.public-page .public-service-list{grid-template-columns:minmax(0,1fr);gap:14px}
.public-page .service-visit{padding:0;min-width:0;overflow:hidden;border-radius:18px}
.service-visit-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:18px;padding:22px;list-style:none;cursor:pointer;color:#193a56;background:#fff;min-height:96px;-webkit-tap-highlight-color:transparent}
.service-visit-toggle::-webkit-details-marker{display:none}
.service-visit-toggle::marker{content:''}
.service-visit-toggle:hover{background:#f5f9ff}
.service-visit-toggle:focus-visible{outline:3px solid #2868e8;outline-offset:-4px;border-radius:17px}
.service-visit[open]>.service-visit-toggle{background:#edf4ff;border-bottom:1px solid #d6e2f1}
.visit-summary-main{display:grid;gap:6px;min-width:0}
.visit-summary-main strong{font-size:18px;line-height:1.4}
.visit-summary-date{font-size:14px;color:#50627a;line-height:1.6;overflow-wrap:anywhere}
.visit-summary-side{display:grid;justify-items:end;gap:7px}
.visit-latest{font-size:12px;font-weight:700;color:#2455a3}
.visit-chevron{color:#315f9c;transition:transform .16s}
.service-visit[open]>.service-visit-toggle .visit-chevron{transform:rotate(180deg)}
.service-visit-content{padding:22px;min-width:0}
.service-visit:not([open])>.service-visit-content{display:none}
.service-visit-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 22px}
.service-visit-facts>div{padding:13px;background:#f7f9fc;border:1px solid #e0e7f0;border-radius:11px;min-width:0}
.service-visit-facts dt{font-size:12px;color:#50627a;line-height:1.5}
.service-visit-facts dd{margin:6px 0 0;font-size:15px;font-weight:700;color:#243b55;line-height:1.5;overflow-wrap:anywhere}
.public-page .service-public .summary,.public-page .service-public ul,
.public-page .info-box p,.public-page .info-box li{font-size:15px;line-height:1.75;color:#30465f}
.public-page .service-public .block-title,.public-page .info-box>span{font-size:13px;font-weight:700;color:#40546e;letter-spacing:.025em;line-height:1.6}
.public-page .public-operation-list li{background:#f2f7ff;border-color:#d6e4f4;color:#30465f}
.public-page .public-operation-list li:before{color:#237b59}
.public-page .info-box{padding:16px}
.visit-technician{display:flex;gap:10px;flex-wrap:wrap;font-size:14px;color:#50627a;margin:18px 0}
.visit-technician strong{color:#243b55}
.public-page .public-staff-copy p{font-size:14px;color:#c1cee2;line-height:1.6}
.public-page .public-staff-copy>span,.public-page .public-powered{font-size:12px}
.public-page .public-powered{color:#50627a}
.public-page .public-staff-button{font-size:14px;line-height:1.5;min-height:46px}

@media(max-width:1200px){
  .admin-body .cost-editor-row{grid-template-columns:100px minmax(0,1fr) 100px}
  .admin-body .cost-editor-row .cost-description{grid-column:span 2}
}
@media(max-width:700px){
  .admin-body .vehicle-list-row{gap:20px}
  .admin-body .vehicle-list-customer{border-top:1px solid #e0e7f0;padding-top:16px}
  .admin-body .vehicle-row-actions .btn{white-space:normal}
  .vehicle-photo-editor{padding:16px}
  .public-page .service-visit-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}
@media(max-width:600px){
  .admin-body .cost-editor-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
  .admin-body .cost-editor-row .cost-description{grid-column:1/-1}
  .admin-body .cost-editor-row>label:first-child{grid-column:1/-1}
  .service-visit-toggle{padding:17px 14px;gap:10px;grid-template-columns:minmax(0,1fr) 24px}
  .visit-summary-main strong{font-size:17px}
  .visit-summary-date{font-size:13px}
  .visit-summary-side{grid-column:1;grid-row:2;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .visit-chevron{grid-column:2;grid-row:1/3}
  .service-visit-content{padding:16px 14px}
  .service-visit-facts>div{padding:11px}
  .service-visit-facts dd{font-size:14px}
  .public-page .public-facts .detail strong{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.visit-chevron{transition:none}}
