
[hidden]{display:none!important}
/* Shared result/status pills for public quote-tool pages (the motor TP
   calculator and the catalogue page). portal.css defines the same classes
   for the signed-in portal/admin chrome, but none of the public pages that
   use quote-tools.css load portal.css -- this closes that pre-existing gap
   (the "Published rate" / "Quote required" pill was rendering unstyled on
   /calculate/motor-third-party/ before this pass). Same colours as
   portal.css's --good/--warn/--bad tokens, hardcoded here since this file
   has no access to portal.css's :root custom properties. */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:.72rem;font-weight:700;white-space:nowrap}
.pill-good{background:#E6F2EA;color:#2F6E4E}
.pill-warn{background:rgba(201,164,92,.14);color:#9A7638}
.pill-bad{background:#FBECEA;color:#B4433B}
.pill-muted{background:#F7F5EF;color:#5B6472;border:1px solid #E4DFD1}
.q-toolbar{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:22px 0}
.q-toolbar label{display:flex;flex-direction:column;gap:6px;font-size:.85rem}
.q-toolbar select,.q-form input,.q-form select,.q-form textarea{font:inherit;padding:11px;border:1px solid #cbc6b9;border-radius:6px;max-width:100%;background:white;color:#0e1a2b}
.q-toolbar input[type=checkbox]{width:18px;height:18px}
.q-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px}
.q-card{background:white;border:1px solid #e4dfd1;border-radius:12px;padding:24px;min-width:0;overflow-wrap:anywhere}
.q-card h2,.q-card h3{margin:4px 0 12px}.q-card .q-price{font-size:1.65rem;font-weight:700;margin:16px 0 4px}
.q-card p{margin:10px 0}.q-muted{color:#536273;font-size:.87rem}
.q-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.q-actions button{white-space:normal}
.q-notice{border-left:3px solid #b99046;background:#f4f0e7;padding:16px 20px;margin:16px 0;line-height:1.6}
.q-message{padding:12px 0;min-height:30px}.q-message[data-error=true]{color:#a31919}
.q-table-wrap{overflow:auto;border:1px solid #d8d5cb;border-radius:8px;margin:16px 0}
.q-table{border-collapse:collapse;min-width:640px;width:100%;background:white}
.q-table th,.q-table td{padding:16px;text-align:left;vertical-align:top;border-bottom:1px solid #e4dfd1;min-width:170px;max-width:350px;white-space:pre-line;overflow-wrap:anywhere}
.q-table th{background:#edf1f4}.q-table th[scope=row]{min-width:150px}
.q-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.q-form label{display:flex;flex-direction:column;gap:7px;font-size:.87rem}
.q-full{grid-column:1/-1}
.q-form textarea{min-height:90px;resize:vertical}
.q-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}
.q-check input{flex:none}
:focus-visible{outline:3px solid #0b7565;outline-offset:3px}
@media(max-width:600px){.q-form{grid-template-columns:1fr}.q-card{padding:18px}.q-toolbar{align-items:stretch}.q-toolbar label{width:100%}}
@media print{.portal-sidebar,.portal-topbar,.q-toolbar,.q-actions,button{display:none!important}.portal-main{margin:0!important}.q-table-wrap{overflow:visible}.q-table{min-width:0}.q-table th,.q-table td{min-width:0;font-size:10pt;padding:6px}.q-grid{display:block}.q-card{break-inside:avoid}}

button:disabled{opacity:.55;cursor:not-allowed}
