:root{--brand:#0b6670;--brand-dark:#074a52;--accent:#deeff0;--ink:#173337;--muted:#60777a;--line:#cadbdd;--paper:#fff;--bg:#f3f7f7;--ok:#197047;--bad:#b42318;--warn:#9a6700;--shadow:0 10px 28px rgba(10,68,74,.1);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{min-height:44px;border:0;border-radius:9px;padding:10px 16px;color:#fff;background:var(--brand);font-weight:750;cursor:pointer}.secondary{border:1px solid #91b8bc;color:var(--brand-dark);background:#fff}.danger{background:#fff;color:var(--bad);border:1px solid #e8aaa5}.compact{min-height:38px;padding:7px 11px}.app-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center;padding:11px max(14px,env(safe-area-inset-left));color:#fff;background:linear-gradient(135deg,#075b65,#16818a);box-shadow:var(--shadow)}.app-header img{width:82px;max-height:42px;object-fit:contain;padding:4px;border-radius:5px;background:#fff}.app-header p,.app-header h1{margin:0}.app-header p{font-size:.72rem;letter-spacing:.06em}.app-header h1{font-size:1.28rem}.app-header span{font-size:.74rem;opacity:.88}.app-shell{width:min(1080px,100%);margin:auto;padding:14px 12px 80px}.tabs{position:sticky;top:65px;z-index:15;display:grid;grid-template-columns:repeat(5,minmax(115px,1fr));gap:7px;padding:7px 0 12px;overflow-x:auto;background:var(--bg)}.tab{color:var(--brand-dark);background:var(--accent);white-space:nowrap}.tab.active{color:#fff;background:var(--brand)}.panel{display:none;padding:20px;border:1px solid var(--line);border-radius:13px;background:var(--paper);box-shadow:0 4px 16px rgba(23,51,55,.05)}.panel.active{display:block}.section-title{margin-bottom:18px}.section-title p,.section-title h2,.section-title small{margin:0}.section-title p{color:var(--brand);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.section-title h2{margin-top:4px;font-size:1.4rem}.section-title small{display:block;margin-top:5px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.compact-grid{margin-bottom:12px}.full{margin-top:13px}label{display:grid;gap:6px;color:#2b4c50;font-size:.88rem;font-weight:700}input,select,textarea{width:100%;min-height:44px;border:1px solid #abc5c8;border-radius:8px;padding:10px;color:var(--ink);background:#fff}input[readonly]{background:#edf3f3}textarea{resize:vertical}.step-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.test-card{margin-bottom:14px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fbfdfd}.test-card h3,.test-card h4{margin:0 0 10px}.test-card h4{margin-top:16px;color:var(--brand-dark)}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:12px}.card-head h3,.card-head p{margin:0}.card-head p{margin-top:4px;color:var(--muted);font-size:.88rem}.repeat-list{display:grid;gap:9px}.repeat-row{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr)) 42px;gap:8px;align-items:end;padding:10px;border:1px solid #d8e4e5;border-radius:9px;background:#fff}.repeat-row .remove{width:42px;padding:0;background:#fff;color:var(--bad);border:1px solid #e9b5b0}.repeat-row label{font-size:.76rem}.row-result{align-self:center;font-size:.78rem;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}.metrics div{padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.metrics span{display:block;color:var(--muted);font-size:.75rem;font-weight:700}.metrics strong{display:block;margin-top:5px}output{display:block;margin-top:11px;padding:10px 12px;border-radius:8px;color:var(--brand-dark);background:var(--accent);font-weight:800}.pass{color:var(--ok)!important}.fail{color:var(--bad)!important}.pending{color:var(--warn)!important}.upload{padding:15px;border:2px dashed #9bbfc2;border-radius:10px;background:#f2f8f8}.upload input{border:0;padding:8px 0 0;min-height:34px;background:transparent}.spacing{margin-top:22px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px}.photo-item{position:relative}.photo-item img,.ticket-preview img{width:100%;border:1px solid var(--line);border-radius:9px;object-fit:cover}.photo-item img{aspect-ratio:4/3}.photo-item button{position:absolute;top:5px;right:5px;min-height:34px;padding:5px 10px;background:rgba(120,20,20,.88)}.ticket-preview img{max-width:420px;max-height:480px;object-fit:contain;margin-top:10px}.consent{grid-template-columns:22px 1fr;align-items:start;margin:18px 0}.consent input{min-height:20px;width:20px}.signature-wrap{position:relative}.signature-wrap canvas{display:block;width:100%;height:190px;border:2px dashed #8eb7ba;border-radius:10px;background:#fff;touch-action:none}.signature-wrap span{position:absolute;left:12px;bottom:9px;color:#8aa1a3;font-size:.77rem;pointer-events:none}.final-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:18px}.privacy{color:var(--muted);font-size:.8rem}.report{display:none;margin-top:15px;background:#fff}.report.visible{display:block}.report-page{padding:22px}.report-header{display:grid;grid-template-columns:145px 1fr 150px;gap:10px;align-items:center;padding:8px;border:1px solid #8aa7aa}.report-header img{width:120px;max-height:55px;object-fit:contain}.report-header h2,.report-header p{margin:0}.report-header h2{font-size:1rem}.report-header p{color:var(--muted);font-size:.82rem}.report-number{text-align:center}.report-number span{display:block;color:var(--muted);font-size:.7rem}.report h3{margin:18px 0 8px}.report table{width:100%;border-collapse:collapse;margin:8px 0 14px;font-size:.82rem}.report th,.report td{border:1px solid #aebfc1;padding:6px;text-align:left;vertical-align:top}.report th{background:#edf4f4}.report .signature-image{width:280px;max-height:115px;object-fit:contain;border-bottom:1px solid #333}.report .evidence{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.report .evidence img{width:100%;max-height:230px;object-fit:contain;border:1px solid #ccc}#toast{position:fixed;left:50%;bottom:22px;z-index:50;transform:translate(-50%,20px);padding:11px 18px;border-radius:9px;color:#fff;background:#173337;box-shadow:var(--shadow);font-weight:750;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.app-header{grid-template-columns:64px 1fr auto}.app-header img{width:62px}.app-header h1{font-size:1.05rem}.app-header span{font-size:.65rem}.tabs{top:63px}.panel{padding:14px}.grid,.metrics,.final-actions{grid-template-columns:1fr}.repeat-row{grid-template-columns:1fr 1fr}.repeat-row .remove{grid-column:1/-1;width:100%}.photo-grid{grid-template-columns:repeat(2,1fr)}.report-header{grid-template-columns:1fr;text-align:center}.report-header img{margin:auto}.report{overflow-x:auto}.card-head{align-items:stretch;flex-direction:column}}
.header-state{display:grid;text-align:right}.header-state strong{font-size:.78rem}.app-shell{width:min(1180px,100%)}.tabs{grid-template-columns:repeat(6,minmax(105px,1fr))}.import-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.file-button{display:grid;place-items:center;min-height:44px;padding:9px 16px;border-radius:9px;color:#fff;background:var(--brand);cursor:pointer}.file-button input{display:none}.batch-summary{display:flex;justify-content:space-between;gap:12px;margin:18px 0 9px;padding:12px;border-radius:9px;background:var(--accent)}.batch-summary span{color:var(--muted)}.batch-scroll{overflow-x:auto}.batch-rooms{display:grid;gap:8px;min-width:1110px}.batch-room{display:grid;grid-template-columns:1.35fr 1fr 1fr .9fr repeat(3,.6fr) .8fr .8fr .75fr .85fr .85fr .75fr auto;gap:6px;align-items:end;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff}.batch-room label{font-size:.68rem}.batch-room input,.batch-room select{min-height:39px;padding:7px;font-size:.78rem}.batch-room-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}.batch-room-actions button{min-height:39px;padding:5px 8px}.batch-room-actions .open-room{background:var(--brand)}
.occupancy-field{display:flex;align-items:center;gap:14px;border:1px solid #abc5c8;border-radius:8px;padding:8px 12px}.occupancy-field legend{font-size:.78rem;font-weight:800}.occupancy-field label{display:flex;align-items:center;gap:6px}.occupancy-field input[type="checkbox"],.batch-check input{width:20px;min-height:20px;accent-color:var(--brand)}.criteria-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.criterion-editor{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.criterion-editor strong{grid-column:1/-1}.batch-room{grid-template-columns:1.35fr 1fr 1fr .55fr .55fr .7fr .7fr .8fr auto}.batch-check{align-content:center;justify-items:center}.batch-criteria{grid-column:1/-1;border-top:1px solid var(--line);padding-top:8px}.batch-criteria summary{cursor:pointer;color:var(--brand-dark);font-weight:800}.batch-criteria-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:8px;margin-top:8px}.batch-criterion{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.batch-criterion strong{grid-column:1/-1}.supply-filter-row{display:grid;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.supply-filter-main{display:grid;grid-template-columns:1fr .75fr 1fr .75fr .75fr .85fr 42px;gap:8px;align-items:end}.supply-velocities,.diffuser-flows{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px}.diffuser-flows{grid-template-columns:repeat(3,minmax(140px,1fr))}.diffuser-only{display:none}.is-diffuser .filter-only{display:none!important}.is-diffuser .diffuser-only{display:grid}.speed-reading span{display:flex}.speed-reading input{border-radius:8px 0 0 8px}.remove-speed{min-width:38px;min-height:44px;padding:0;border-radius:0 8px 8px 0;background:var(--bad)}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.test-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.test-results output{margin-top:0}.instrument-check{align-content:center;justify-items:center}.instrument-check input{width:22px;min-height:22px;accent-color:var(--brand)}.secondary-link{color:var(--brand-dark);background:#fff;border:1px solid #91b8bc;text-decoration:none}.batch-room-actions small{grid-column:1/-1;text-align:center;color:var(--muted);font-weight:800}@media(max-width:760px){.batch-summary{display:grid}.import-actions>*{flex:1 1 145px}.header-state strong{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metrics.three,.test-results,.criteria-grid{grid-template-columns:1fr}.criterion-editor{grid-template-columns:1fr}.criterion-editor strong{grid-column:auto}.occupancy-field{display:grid;grid-template-columns:1fr 1fr}.batch-criteria-grid{grid-template-columns:1fr}.batch-criterion{grid-template-columns:1fr}.batch-criterion strong{grid-column:auto}.supply-filter-main{grid-template-columns:1fr 1fr}.supply-filter-main .remove{grid-column:1/-1;width:100%}.supply-velocities,.diffuser-flows{grid-template-columns:1fr 1fr}}
.na-toggle{display:flex;align-items:center;gap:6px;justify-self:start;padding:6px 9px;border-radius:7px;background:#fff4dd;color:#76520a}.na-toggle input{width:20px;min-height:20px;accent-color:var(--warn)}.subtest-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.subtest-head h4{margin:16px 0 10px}
.app-header{grid-template-columns:90px 1fr auto auto}.back-home{display:grid;place-items:center;min-height:38px;padding:7px 11px;border:1px solid rgba(255,255,255,.55);border-radius:8px;color:#fff;font-size:.76rem;font-weight:800;text-decoration:none}.history-card{margin:0 0 20px;padding:17px;border:1px solid #9fc5c8;border-radius:12px;background:linear-gradient(145deg,#f7fbfb,#e9f5f5)}.history-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:13px}.history-heading h3,.history-heading p{margin:0}.history-heading p{margin-top:4px;color:var(--muted);font-size:.83rem}.history-heading>span{padding:6px 9px;border-radius:999px;color:var(--brand-dark);background:#fff;font-size:.72rem;font-weight:800;white-space:nowrap}.history-results{display:grid;gap:7px;max-height:330px;overflow:auto;margin-top:10px}.history-result{display:grid;grid-template-columns:145px 1fr auto;gap:12px;align-items:center;min-height:58px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;text-align:left}.history-result strong{color:var(--brand-dark)}.history-result span{display:grid;gap:2px;font-size:.8rem;font-weight:500}.history-result small{color:var(--muted)}.history-selected{margin-top:12px;padding:14px;border:1px solid #7eb2b6;border-radius:10px;background:#fff}.history-selected-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:13px}.history-selected-grid span{display:grid;gap:3px;color:var(--muted);font-size:.75rem}.history-selected-grid strong{color:var(--ink);font-size:.88rem}.history-selected-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.next-code{color:var(--brand-dark);font-size:.9rem}.next-code strong{font-size:1.05rem}.history-empty{padding:12px;color:var(--muted);text-align:center}.batch-room{grid-template-columns:1fr 1.35fr 1fr 1fr .55fr .55fr .7fr .7fr .8fr auto}@media(max-width:760px){.app-header{grid-template-columns:64px 1fr auto}.back-home{grid-column:1/-1;grid-row:2;width:100%}.history-heading{display:grid}.history-selected-grid{grid-template-columns:1fr}.history-selected-actions{align-items:stretch;flex-direction:column}.history-result{grid-template-columns:1fr}.history-result b{display:none}}
@media print{@page{size:A4;margin:8mm}body{background:#fff}.app-header,.tabs,form,#toast{display:none!important}.app-shell{width:100%;padding:0}.report{display:block!important;margin:0}.report-page{padding:0;break-after:page}.report-page:last-child{break-after:auto}.report table{font-size:8.3pt}.report-header{grid-template-columns:34mm 1fr 35mm}.report .evidence img{max-height:55mm}}
.completion-state{margin:12px 0 0;padding:10px 12px;border-radius:8px;background:#e4ecee;color:#496065;font-weight:800}.completion-state.complete{background:#d9f2e8;color:#08725b}.completion-state.incomplete{background:#ffe5df;color:#a33427}
.informative-option{color:#1479c9}.test-card.is-informative,.criterion-editor.is-informative{border-color:#1479c9}.test-card.is-na,.criterion-editor.is-na{opacity:.72}.parallelism-grid{display:grid;grid-template-columns:.55fr 1fr 1fr 1fr 1.25fr;gap:.55rem;align-items:center;margin:1rem 0}.parallelism-grid input{min-width:0}.parallelism-grid output{font-weight:700}@media(max-width:700px){.parallelism-grid{grid-template-columns:.5fr repeat(4,minmax(70px,1fr));overflow-x:auto}}
.informative{color:#1479c9!important;font-weight:800}
.photo-item{display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#fff}.photo-item input{min-height:36px;padding:8px;font-size:.82rem}.report .evidence figure{margin:0;padding:8px;border:1px solid #ccc;border-radius:8px;background:#fff}.report .evidence figure img{border:0}.report .evidence figcaption{margin-top:5px;color:var(--ink);font-size:.78rem;font-weight:750;text-align:center}
.certificate-list{display:grid;gap:8px;padding-left:18px}.certificate-name{display:block;margin-top:5px;color:var(--muted);font-size:.76rem}.repeat-row[data-type="instrument"]{grid-template-columns:repeat(8,minmax(115px,1fr)) 42px;overflow-x:auto}
.instrument-list{display:grid;gap:12px}.instrument-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdfc}.instrument-row input[type="checkbox"]{width:20px;min-height:20px;accent-color:var(--brand)}.instrument-row small{display:block;margin-top:4px;color:var(--muted);font-weight:500}.instrument-select-row input[type="hidden"]{display:none}

.certificate-embed{break-inside:avoid;margin:14px 0;padding:10px;border:1px solid #8ea3a6;background:#fff}.certificate-embed h4{margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid #d5e0e2;color:#173337;font-size:10pt}.pdf-render-target{display:grid;gap:8px}.pdf-render-status{margin:0;padding:8px;border:1px dashed #9fb8bb;color:#50696d;background:#f6f9f9;font-weight:700}.pdf-embed{width:100%;height:235mm;border:1px solid #7d8f91;background:#f8f8f8}.pdf-fallback.is-rendered{display:none}.pdf-page-image{break-inside:avoid;margin:0 0 10px;padding:7px;border:1px solid #aebfc1;background:#fff}.pdf-page-image figcaption{margin:0 0 6px;color:#173337;font-size:8pt;font-weight:800;text-align:center}.pdf-page-image img{display:block;width:100%;max-height:255mm;object-fit:contain}@media print{.certificate-embed{break-after:page}.certificate-embed:last-child{break-after:auto}.pdf-render-status{display:none!important}.pdf-fallback{display:none!important}.pdf-page-image{page-break-inside:avoid}.pdf-page-image:not(:last-child){break-after:page}}
.certificate-image-page{break-inside:avoid;margin:0 0 10px;padding:7px;border:1px solid #aebfc1;background:#fff}.certificate-image-page figcaption{margin:0 0 6px;color:#173337;font-size:8pt;font-weight:800;text-align:center}.certificate-image-page img{display:block;width:100%;max-height:255mm;object-fit:contain}@media print{.certificate-image-page{page-break-inside:avoid}.certificate-image-page:not(:last-child){break-after:page}}
