.print-only{display:none}
:root{--lpbf-border:#d6dde4;--lpbf-text:#17212b;--lpbf-muted:#66717c;--lpbf-accent:#1e5c96;--lpbf-accent-dark:#15466f;--lpbf-danger:#9b1c1c;--lpbf-warning-bg:#fff6d8;--lpbf-info-bg:#eaf4ff}
.lpbf-app,.lpbf-login{max-width:1120px;margin:20px auto;padding:16px;font-family:Arial,Helvetica,sans-serif;color:var(--lpbf-text)}.lpbf-login{max-width:480px;border:1px solid var(--lpbf-border);border-radius:10px;background:#fff}.lpbf-login input{width:100%;box-sizing:border-box;padding:11px;margin:4px 0 10px}.lpbf-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.lpbf-head h1{margin:0}.lpbf-head-actions,.row-actions,.actions,.assembly-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.assembly-toolbar{justify-content:space-between}.lpbf-card{border:1px solid var(--lpbf-border);border-radius:10px;padding:16px;margin:0 0 14px;background:#fff}.lpbf-card h2{font-size:19px;margin:0 0 12px;border-bottom:1px solid #e3e7eb;padding-bottom:8px}.lpbf-card h3{margin:5px 0 8px}.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.lpbf-app label,.lpbf-app legend{font-size:13px;font-weight:600}.lpbf-app input,.lpbf-app select,.lpbf-app textarea{width:100%;box-sizing:border-box;padding:10px;margin-top:4px;border:1px solid #aeb8c2;border-radius:6px;font-size:16px}.lpbf-app input[type=radio],.lpbf-app input[type=checkbox]{width:auto}.lpbf-app fieldset{border:1px solid var(--lpbf-border);border-radius:6px;padding:10px}.lpbf-btn{display:inline-block;padding:10px 14px;border:1px solid #9aa6b2;border-radius:6px;background:#fff;color:var(--lpbf-text);text-decoration:none;cursor:pointer;font-weight:600}.lpbf-btn.primary{background:var(--lpbf-accent);color:#fff;border-color:var(--lpbf-accent)}.lpbf-btn.primary:hover{background:var(--lpbf-accent-dark)}.lpbf-btn:disabled{opacity:.5;cursor:not-allowed}.lpbf-searchrow{display:flex;gap:8px;flex-wrap:wrap}.lpbf-searchrow input{flex:1;min-width:220px}.lpbf-result,.lpbf-property,.lpbf-assembly,.lpbf-recent-row,.lpbf-history-row{border-top:1px solid #e3e7eb;padding:10px 0;display:flex;justify-content:space-between;gap:10px;align-items:center}.lpbf-assembly.historical{opacity:.8}.lpbf-selected{background:#eef5fb;border:1px solid #cbddeb;border-radius:7px;padding:10px;margin-top:10px}.lpbf-warning{color:var(--lpbf-danger);font-weight:700}.muted,.lpbf-small-note{color:var(--lpbf-muted);font-size:13px}.lpbf-small-note{margin-top:8px}.testgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.testgrid>div{border:1px solid var(--lpbf-border);border-radius:7px;padding:10px}.testgrid h3{margin:0 0 8px}.topgap{margin-top:12px}.signature-wrap{margin-top:10px}.signature-preview{margin:12px 0;padding:8px;border:1px solid var(--lpbf-border);background:#fff;min-height:45px}.signature-preview img{display:block;max-width:450px;max-height:120px;width:auto;height:auto}#signature_pad{display:block;width:100%;height:160px;border:1px solid #8d99a5;border-radius:6px;touch-action:none;background:#fff}.tester-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.lpbf-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;padding:20px;overflow:auto}.modal-card{max-width:860px;margin:30px auto;background:#fff;border-radius:10px;padding:18px}.lpbf-msg{display:none;padding:11px 14px;border-radius:6px}.lpbf-msg.ok,.lpbf-msg.err{display:block;position:fixed;right:20px;bottom:20px;z-index:100001;max-width:min(430px,calc(100vw - 40px));box-shadow:0 4px 18px rgba(0,0,0,.18)}.lpbf-msg.ok{background:#e7f6ea;border:1px solid #a9d9b4}.lpbf-msg.err{background:#fde9e9;border:1px solid #e7b0b0}.lpbf-alert{padding:11px 13px;margin:0 0 14px;border-radius:7px}.lpbf-alert.warning{background:var(--lpbf-warning-bg);border:1px solid #e6d082}.lpbf-alert.info{background:var(--lpbf-info-bg);border:1px solid #b9d8f6}.actions{justify-content:flex-end;margin:18px 0}.lpbf-app input:disabled,.lpbf-app select:disabled,.lpbf-app textarea:disabled{background:#f7f7f7;color:#222;opacity:1}details summary{cursor:pointer;font-weight:600;margin:8px 0}
@media(max-width:800px){.lpbf-head{display:block}.lpbf-head-actions{margin-top:10px}.g2,.g3,.g4,.testgrid,.tester-grid{grid-template-columns:1fr}.lpbf-result,.lpbf-property,.lpbf-assembly,.lpbf-recent-row{display:block}.row-actions{margin-top:8px}.lpbf-searchrow .lpbf-btn{flex:1}.signature-preview img{max-width:100%}}
@media print{.no-print,.lpbf-modal{display:none!important}.print-only{display:block!important}.lpbf-app{max-width:none;padding:0;margin:0;font-size:10pt}.lpbf-card{break-inside:avoid;border:1px solid #666;border-radius:0;padding:8px;margin-bottom:7px}.lpbf-card h2{font-size:12pt}.lpbf-app input,.lpbf-app select,.lpbf-app textarea{border:0!important;border-bottom:1px solid #555!important;padding:2px!important;font-size:10pt!important;background:#fff!important}.testgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.tester-grid{grid-template-columns:1fr 1fr}.signature-preview{border:0;border-bottom:1px solid #555}.signature-preview img{max-height:85px}details{display:none!important}@page{size:letter;margin:.35in}}

/* v3.0.4 field-entry refinements */
.lpbf-app input[type="text"],.lpbf-app input[type="tel"],.lpbf-app textarea{text-transform:uppercase}
.test-type-note{font-size:11px;font-weight:500;color:var(--lpbf-muted);white-space:nowrap}
.signature-toggle{display:inline-block;padding:10px 14px;border:1px solid var(--lpbf-accent);border-radius:6px;background:#eef5fb;color:var(--lpbf-accent-dark);font-weight:700;cursor:pointer}
.signature-toggle:hover{background:#e2eff9}
.signature-details[open] .signature-toggle{margin-bottom:8px}
#signature_pad{overscroll-behavior:contain;-webkit-user-select:none;user-select:none}
body.lpbf-signing{position:fixed!important;left:0;right:0;width:100%;overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}

/* v3.0.5 retest-frequency and new-test safeguards */
.retest-frequency-field select,.retest-frequency-field input{margin-top:4px}
.lpbf-btn.danger{background:#fff1f1;border-color:#c96767;color:#7e1717}
.lpbf-btn.danger:hover{background:#fbe3e3}
.lpbf-confirm-card{max-width:620px}

/* v3.4.1 workflow gating */
.lpbf-gated-fields.lpbf-locked{opacity:.55}
#assembly_gate_note{margin-top:10px}
#edit_actions_gate_note{margin-right:auto}

/* v3.4.2 admin-safe workflow polish */
@media(max-width:600px){.lpbf-msg.ok,.lpbf-msg.err{left:12px;right:12px;bottom:12px;max-width:none}}
