:root{font-family:system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;--border: #ddd;--bg-dim: #f5f5f5;--success: #059669;--error: #dc2626}*{box-sizing:border-box}body{margin:0;padding:2rem;max-width:960px;margin-inline:auto}h1{font-size:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border);padding-bottom:.75rem}.form-grid{display:grid;grid-template-columns:160px 1fr;gap:.75rem 1rem;margin-bottom:1.5rem;align-items:start}label{font-weight:500;padding-top:.4rem}input,select,textarea{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:4px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #3b82f6;outline-offset:-1px}textarea{resize:vertical;min-height:80px}.checkbox-field{display:flex;gap:.5rem;align-items:center}.checkbox-field input{width:auto}button{padding:.6rem 1.2rem;border:none;border-radius:4px;font:inherit;font-weight:500;cursor:pointer}button[type=submit]{background:#2563eb;color:#fff}button[type=submit]:hover{background:#1d4ed8}button[type=submit]:disabled{background:#94a3b8;cursor:not-allowed}.result-panel{margin-top:2rem;padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-dim)}.result-panel.success{border-color:var(--success);background:#ecfdf5}.result-panel.error{border-color:var(--error);background:#fef2f2}.result-heading{font-weight:600;margin-bottom:.5rem}.result-content{font-family:ui-monospace,monospace;font-size:.9rem;white-space:pre-wrap;word-break:break-word}.field-group{border:1px solid var(--border);padding:1rem;border-radius:4px;margin-bottom:1rem}.field-group legend{font-weight:600;padding:0 .5rem}.link{color:#2563eb;text-decoration:underline}.link:hover{color:#1d4ed8}.link-url{word-break:break-all}.help-text{font-size:.85rem;color:#6b7280;margin-top:.25rem}.tab-nav{display:flex;gap:0;margin-bottom:2rem;border-bottom:2px solid var(--border)}.tab-nav button{background:none;border:none;padding:.75rem 1.5rem;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}.tab-nav button:hover{color:#374151}.tab-nav button.active{color:#2563eb;border-bottom-color:#2563eb}h2{font-size:1.25rem;margin-bottom:1rem}h3{font-size:1.1rem;margin-bottom:.75rem}h4{font-size:1rem;margin-bottom:.5rem}.panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.panel-header h2{margin-bottom:0}.start-again{background:none;border:1px solid var(--border);color:#6b7280;padding:.35rem .8rem}.start-again:hover{background:var(--bg-dim);color:#374151}.booking-flow{margin-top:1.5rem}.quote-info{background:var(--bg-dim);padding:1rem;border-radius:4px;margin-bottom:1rem}.quote-info p{margin:.25rem 0}.slot-selection,.deposit-info,.settle-payment{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:4px}.slot-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.slot-option{display:flex;align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--border);border-radius:4px;cursor:pointer}.slot-option:hover{background:var(--bg-dim)}.slot-option input{width:auto}button[type=button]{background:#f3f4f6;color:#374151;border:1px solid var(--border)}button[type=button]:hover:not(:disabled){background:#e5e7eb}button[type=button]:disabled{opacity:.5;cursor:not-allowed}.booking-flow button[type=button]{background:#2563eb;color:#fff;border:none;margin-top:.5rem}.booking-flow button[type=button]:hover:not(:disabled){background:#1d4ed8}.phone-list{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-top:1.5rem}.phone-thread{border:1px solid #e5e7eb;border-radius:8px;padding:1rem;background:#fff;min-width:0}.phone-thread[data-role=tradie]{border-color:#2563eb}.phone-bubbles{list-style:none;padding:0;margin:.75rem 0 0;display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}.phone-bubble{max-width:80%;min-width:0;padding:.5rem .75rem;border-radius:12px;background:#f3f4f6;overflow-wrap:anywhere}.phone-bubble.outbound{justify-self:end;background:#dbeafe}.phone-bubble.inbound{justify-self:start;background:#f3f4f6}.phone-bubble-meta{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.phone-bubble-subject{font-weight:600}.phone-bubble-body{white-space:pre-wrap}.phone-reply{margin-top:.75rem;border-top:1px solid #e5e7eb;padding-top:.75rem}.call-step{border:1px solid #e5e7eb;border-radius:8px;padding:1rem;background:#fff}.call-step button.active{background:#1d4ed8;color:#fff}
