:root{--red:#b51e36;--red-dark:#85152a;--red-light:#fff0f2;--ink:#202831;--muted:#66707d;--line:#e0e4e8;--canvas:#f5f6f8;--green:#28664f;--green-light:#eef7f2;--radius:14px;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.36}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3b7dd8;outline-offset:3px}.preview-strip{background:#f2eadc;color:#68532b;min-height:30px;padding:5px 24px;font-size:12px;text-align:center}.preview-dot{display:inline-block;width:6px;height:6px;background:#ac7930;border-radius:50%;margin-right:6px;vertical-align:middle}.masthead{height:88px;background:white;display:flex;align-items:center;padding:0 36px;border-bottom:1px solid var(--line);gap:36px}.brand{display:flex;gap:12px;align-items:center;line-height:1.35}.brand-mark{display:grid;place-items:center;width:43px;height:43px;background:var(--red);color:white;font-size:46px;font-weight:750;line-height:1;border-radius:9px;padding-bottom:4px}.brand strong{font-size:14px;letter-spacing:.12em}.brand>span:last-child>span{display:block;font-size:14px;color:var(--muted);margin-top:3px}.header-label{font-size:14px;color:var(--muted);border-left:1px solid var(--line);padding-left:30px}.header-label span{padding:0 8px;color:#c3c8ce}.connection{margin-left:auto;font-size:13px;color:var(--green);white-space:nowrap}.connection.offline{color:#a84922}.connection:before{content:"";display:inline-block;width:7px;height:7px;background:currentColor;border-radius:50%;margin-right:7px}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 118px)}.sidebar{background:white;border-right:1px solid var(--line);padding:34px 18px;display:flex;flex-direction:column}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:700;color:var(--muted)}.sidebar>.eyebrow{padding-left:15px;margin-bottom:15px}nav{display:flex;flex-direction:column;gap:8px}.nav-link{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:9px;font-size:14px;font-weight:550;color:#59636e}.nav-link svg{width:20px;height:20px;flex-shrink:0}.nav-link.active{background:var(--red-light);color:var(--red);font-weight:700}.nav-link:hover{background:#f5f6f8}.nav-link.active:hover{background:#fce5e9}.sidebar-note{display:flex;gap:10px;margin:34px 10px 0;padding-top:24px;border-top:1px solid var(--line);font-size:13px}.note-icon{font-size:19px;color:var(--muted)}.sidebar-note p{margin:0;font-weight:600}.sidebar-note p span{display:block;font-size:12px;line-height:1.7;font-weight:400;color:var(--muted);margin-top:7px}.sidebar-footer{margin: auto 14px 0;padding-top:80px;color:#9299a3;font-size:10px;letter-spacing:.14em}.sidebar-footer strong{display:block;font-size:12px;letter-spacing:0;font-weight:400;margin-top:5px}main{width:100%;max-width:1440px;margin:0 auto;padding:36px 44px 50px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.page-heading h1{font-size:30px;letter-spacing:-.04em;line-height:1.2;margin:7px 0 9px;font-weight:720}.page-heading p{color:var(--muted);font-size:14px;margin:0}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.button{border:1px solid transparent;display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;white-space:nowrap}.button svg{width:17px;height:17px}.primary{background:var(--red);color:white}.primary:hover{background:var(--red-dark)}.secondary{background:white;border-color:#d6dce2;color:var(--ink)}.secondary:hover{background:#f7f8fa}.text-button{background:none;border:0;color:var(--red);padding:8px;font-size:14px;font-weight:600}.patient-banner{display:flex;gap:18px;align-items:center;padding:22px 24px;background:white;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;box-shadow:0 2px 3px #20283103}.patient-letter{width:65px;height:65px;border-radius:12px;flex-shrink:0;background:var(--red-light);color:var(--red);display:grid;place-items:center;font-size:29px;font-weight:700}.patient-banner h2{margin:0 0 3px;font-size:21px;letter-spacing:-.025em}.patient-banner p{margin:0;color:var(--muted);font-size:13px}.patient-select{margin-left:auto;display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}select{background:white;border:1px solid #d6dce2;border-radius:8px;padding:10px 34px 10px 12px;font-size:14px;color:var(--ink);min-height:44px;max-width:100%}.section-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:28px 0 14px}.section-line h2{font-size:16px;margin:0}.section-line span{font-size:12px;color:var(--muted)}.vitals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.vital-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 16px;min-width:0}.vital-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:550;color:#58616e}.vital-title svg{width:19px;height:19px;color:#9099a5}.vital-value{display:flex;align-items:baseline;gap:8px;margin:12px 0 16px}.vital-value strong{font-size:40px;letter-spacing:-.045em;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums}.vital-value span{color:var(--muted);font-size:13px}.step-status{font-size:12px;color:var(--muted);margin:0 0 7px;display:flex;justify-content:space-between;gap:8px}.step-status .changed{color:var(--ink);font-weight:600}.step-track{position:relative;display:flex;justify-content:space-between;align-items:center;gap:3px;margin-bottom:14px;height:9px}.step-track:before{content:"";position:absolute;inset:4px 2px;border-top:1px solid #e1e5e9;z-index:0}.step-track i{z-index:1;width:6px;height:6px;border-radius:50%;background:#dfe4e8;display:block}.step-track i.current{width:9px;height:9px;background:var(--red)}.step-track i.center{border:1px solid #909aa5;background:white}.step-track i.center.current{background:var(--ink);border-color:var(--ink)}.step-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.step-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid #e4d6da;background:#fff7f8;border-radius:7px;color:#8f2539;font-weight:600;font-size:13px}.step-button span{font-family:"Segoe UI Symbol",sans-serif;font-size:19px;line-height:1}.step-button.better{color:var(--green);border-color:#d5e5dc;background:#f4faf6}.step-button:hover:not(:disabled){filter:brightness(.95)}.participant-card{padding:24px;min-height:150px}.participant-card .vital-value{margin-bottom:0}.participant-card .vital-value strong{font-size:49px}.hint{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:10px;padding:15px 18px;font-size:13px;color:var(--muted);line-height:1.6;background:#f0f2f5;margin:22px 0 0}.hint p{margin:0}.hint strong{color:#4c5560;font-weight:600}.timestamp{font-size:12px;color:var(--muted);margin-top:18px}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:white;overflow:hidden}.panel-heading{padding:19px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.panel-heading h2{font-size:16px;margin:0}.count{font-size:12px;border:1px solid var(--line);background:#f6f7f9;padding:3px 8px;border-radius:5px;font-weight:500;color:var(--muted)}.patient-table{border-collapse:collapse;width:100%;font-size:14px}.patient-table th{text-align:left;font-size:12px;font-weight:500;color:var(--muted);background:#fafbfc;padding:12px 18px;border-bottom:1px solid var(--line)}.patient-table td{padding:12px 18px;border-bottom:1px solid #edf0f2}.patient-table tr:last-child td{border:0}.patient-table tr.selected{background:#fff6f7}.patient-table .patient-code{display:inline-grid;place-items:center;width:34px;height:34px;font-weight:650;border:1px solid #e3e6ea;border-radius:7px;background:white;margin-right:10px}.patient-open{border:0;background:transparent;padding:0;font-size:14px;display:flex;align-items:center;color:var(--ink);font-weight:550;white-space:nowrap;min-height:40px}.patient-table .state{font-size:12px;color:var(--muted)}.row-actions{display:flex;gap:3px;justify-content:flex-end}.icon-button{min-width:38px;min-height:38px;display:inline-grid;place-items:center;border:0;background:transparent;border-radius:6px;color:var(--muted);font-size:26px}.icon-button:hover{background:#edf0f3;color:var(--ink)}.icon-button svg{width:17px;height:17px}.detail-card{padding:24px;text-align:center}.detail-card .patient-letter{margin:0 auto 12px;width:52px;height:52px;font-size:24px}.detail-card h2{font-size:20px;margin:0}.detail-card>p{font-size:13px;color:var(--muted);margin:5px 0 18px}.qr-image{width:170px;height:170px;display:block;margin:auto;image-rendering:pixelated}.qr-block{border:1px solid var(--line);border-radius:10px;padding:12px;margin:18px 0}.detail-actions{display:flex;flex-direction:column;gap:8px}.detail-foot{margin-top:20px!important;font-size:12px!important;text-align:left;line-height:1.6}.local-notice{border-left:3px solid #c79543;padding:12px 15px;background:#fcf7ef;font-size:12px;color:#79603a;margin-top:18px;border-radius:0 6px 6px 0}.admin-footer{margin-top:14px;font-size:12px;color:var(--muted)}.loading,.error-panel{padding:40px;background:white;border:1px solid var(--line);border-radius:12px}.error-panel h1{font-size:22px}.offline-banner{background:#fff4e6;color:#7f4d21;padding:12px 18px;border:1px solid #ead2af;border-radius:8px;margin-bottom:20px;font-size:14px}dialog{width:min(740px,calc(100% - 28px));max-height:90vh;padding:0;border:1px solid var(--line);border-radius:16px;color:var(--ink);box-shadow:0 24px 90px #19233333}dialog::backdrop{background:#17223270;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 26px;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:22px;margin:4px 0 0}.dialog-intro{padding:0 26px;font-size:14px;color:var(--muted)}.edit-grid{padding:8px 26px 20px;display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:12px;align-items:center}.edit-col{font-size:12px;font-weight:600;color:var(--muted);padding:5px 0}.edit-label{font-size:14px}.edit-label small{display:block;color:var(--muted);font-size:11px}input[type=number]{width:100%;min-width:0;min-height:42px;border:1px solid #ccd3dc;border-radius:7px;padding:8px 10px;font-size:15px;background:white;color:var(--ink)}.dialog-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;background:white;border-top:1px solid var(--line);padding:18px 26px}.form-error{color:var(--red);font-size:14px;margin:0;padding:0 26px 12px}.form-error:empty{display:none}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,15px);max-width:min(520px,90vw);background:#25322e;color:white;padding:12px 20px;border-radius:9px;font-size:14px;box-shadow:0 8px 30px #0002;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:10}#toast.visible{opacity:1;transform:translate(-50%,0)}.print-page .shell{display:block}.print-page .sidebar{display:none}.print-intro{max-width:780px;color:var(--muted);font-size:14px}.labels-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.wrist-label{display:flex;align-items:center;border:1px dashed #aeb5be;border-radius:10px;padding:12px;background:white;gap:15px;break-inside:avoid}.wrist-label img{width:130px;height:130px;flex-shrink:0}.wrist-label strong{display:block;font-size:34px;line-height:1.2}.wrist-label small{display:block;font-size:12px;color:var(--muted)}.wrist-label span{display:block;font-size:13px}.print-note{font-size:11px;color:var(--muted)}@media(min-width:1600px){main{padding-top:44px}.vital-card{padding:24px}.vital-value strong{font-size:46px}}@media(max-width:1200px){main{padding:28px}.shell{grid-template-columns:192px minmax(0,1fr)}.admin-grid{grid-template-columns:minmax(0,1fr) 280px}.vitals-grid{gap:12px}.vital-card{padding:16px}.step-button{font-size:12px;gap:4px}.masthead{padding:0 25px}.page-heading{align-items:flex-start}.patient-table th,.patient-table td{padding-left:12px;padding-right:12px}.header-label{display:none}}@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{display:block;padding:12px 24px;border-right:0;border-bottom:1px solid var(--line)}.sidebar>.eyebrow,.sidebar-note,.sidebar-footer{display:none}nav{flex-direction:row;gap:10px}.nav-link{flex:1;justify-content:center;padding:10px}.admin-grid{grid-template-columns:minmax(0,1fr) 280px}main{padding:26px}.masthead{height:80px}.vital-card{padding:18px}}@media(max-width:700px){.preview-strip{padding:5px 10px}.strip-detail{font-size:11px}.masthead{padding:0 18px;height:76px;gap:10px}.brand strong{font-size:12px}.brand>span:last-child>span{font-size:12px}.brand-mark{width:36px;height:36px;font-size:38px}.connection{font-size:11px;max-width:125px;white-space:normal;text-align:right}.connection:before{width:5px;height:5px}.sidebar{padding:8px 10px}.nav-link{font-size:12px;padding:10px 4px;gap:6px}.nav-link svg{width:17px;height:17px}nav{gap:4px}main{padding:23px 16px 40px}.page-heading{flex-direction:column;gap:17px;margin-bottom:20px}.page-heading h1{font-size:27px}.page-heading p{font-size:13px}.heading-actions{width:100%}.heading-actions .button{flex:1}.patient-banner{padding:16px;gap:12px;flex-wrap:wrap}.patient-letter{height:50px;width:50px;font-size:24px}.patient-banner h2{font-size:18px}.patient-select{width:100%;margin-top:5px}.patient-select select{width:100%}.vitals-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vital-card{padding:15px 12px 12px}.vital-title{font-size:12px;gap:5px;line-height:1.4;min-height:34px}.vital-title svg{width:15px;height:15px;flex-shrink:0}.vital-value{gap:5px;margin:8px 0 13px;flex-wrap:wrap}.vital-value strong{font-size:34px}.vital-value span{font-size:11px}.step-controls{gap:6px}.step-button{min-height:43px;font-size:12px}.step-button .button-word{display:none}.step-button span{font-size:23px}.step-status{font-size:11px;min-height:32px;align-items:center}.participant-card .vital-value strong{font-size:39px}.participant-card{min-height:135px}.section-line span{font-size:11px}.admin-grid{grid-template-columns:1fr}.admin-grid .detail-card{grid-row:1;display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px 18px;padding:18px;text-align:left}.detail-card .patient-letter{display:none}.detail-card h2,.detail-card>p{grid-column:2;margin:0}.detail-card .qr-block{grid-row:1 / span 3;grid-column:1;margin:0;padding:0;border:0}.detail-card .qr-image{width:100px;height:100px}.detail-actions{grid-column:2;gap:6px}.detail-actions .button{min-height:38px;padding:7px 10px;font-size:12px}.detail-card .detail-foot{display:none}.detail-card .local-notice{grid-column:1 / -1;margin-top:0}.patient-table .state-column{display:none}.patient-table td,.patient-table th{padding:10px 12px}.edit-grid{grid-template-columns:1.1fr repeat(3,1fr);padding:5px 14px 18px;gap:10px 6px}.edit-col{font-size:10px;overflow-wrap:anywhere}.edit-label{font-size:12px}.edit-label small{font-size:10px}input[type=number]{padding:7px 5px;font-size:16px}.dialog-header{padding:18px}.dialog-intro{padding:0 18px;font-size:12px}.dialog-footer{padding:14px 18px}.labels-grid{grid-template-columns:1fr}.wrist-label img{width:110px;height:110px}.hint{padding:12px;font-size:12px}.timestamp{font-size:11px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@page{size:A4;margin:12mm}@media print{body{background:white;color:black}.preview-strip,.masthead,.sidebar,.page-heading,.print-intro,.print-note,#toast,.no-print{display:none!important}main{max-width:none;margin:0;padding:0}.labels-grid{display:grid;grid-template-columns:1fr 1fr;gap:5mm;margin:0}.wrist-label{border-radius:0;gap:2mm;padding:2mm;height:37mm;break-inside:avoid}.wrist-label img{width:32mm;height:32mm}.wrist-label strong{font-size:22pt}.wrist-label small{font-size:7pt}.wrist-label span{font-size:8pt}.shell{display:block;min-height:0}.print-page .wrist-label{background:white}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.step-button .button-word{font-family:inherit;font-size:13px;line-height:1.3}.vital-title{font-size:14px}@media(max-width:700px){.step-status{font-size:12px}.vital-title{font-size:14px;min-height:39px}.vital-value span{font-size:12px}.nav-link{font-size:12px}.sidebar-footer{display:none}}
.participant-only .masthead{max-width:1100px;margin:auto;background:transparent;padding:0 24px}.participant-only main{max-width:1020px;padding-top:32px}.participant-tag{margin-left:auto;font-size:13px;color:var(--muted)}.participant-only .patient-banner h1{font-size:24px;margin:2px 0 0;letter-spacing:-.02em}.participant-only .patient-banner>button{margin-left:auto}.scan-home{max-width:460px;margin:7vh auto;text-align:center;background:white;border:1px solid var(--line);border-radius:20px;padding:38px 30px}.scan-emblem{color:var(--red);display:grid;place-items:center;width:90px;height:90px;border-radius:22px;background:var(--red-light);margin:0 auto 26px}.scan-home h1{font-size:30px;letter-spacing:-.03em;margin:10px 0}.scan-home>p{font-size:16px;color:var(--muted);margin-bottom:28px}.scan-home .scan-start{width:100%;min-height:50px;font-size:16px}.scan-home .text-button{margin-top:12px;min-height:44px}.scan-footnote{border-top:1px solid var(--line);padding-top:22px;margin-top:20px;color:var(--muted);font-size:13px;line-height:1.7}.scan-error{color:#a51b31!important;font-size:14px!important;line-height:1.6}.scan-error:empty{display:none}.participant-live{color:var(--green)!important}.participant-live.stale{color:#a84922!important}.camera-view{position:relative;background:#111;min-height:220px;aspect-ratio:4/3}.camera-view video{width:100%;height:100%;object-fit:cover;display:block}.camera-frame{position:absolute;width:65%;aspect-ratio:1;left:17.5%;top:8%;border:3px solid #fff;border-radius:12px;pointer-events:none}#scanner-dialog{max-width:520px}#scan-status{padding:0 22px;font-size:14px}#scanner-dialog h2{font-size:20px}@media(max-width:700px){.participant-only .masthead{padding:0 16px}.participant-tag{font-size:12px}.participant-only main{padding:22px 16px}.scan-home{margin:4vh auto;padding:30px 22px}.participant-only .patient-banner>button{width:100%;margin:6px 0 0}.participant-only .patient-banner{margin-bottom:20px}.participant-only .vital-title{font-size:14px}}
.slot-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:24px;position:sticky;top:0;z-index:2;background:var(--canvas);padding:8px 0}.slot-tab{background:white;color:var(--muted);border:1px solid var(--line);border-radius:10px;min-height:72px;text-align:left;padding:12px 18px;box-shadow:0 2px 3px #20283103}.slot-tab span{display:block;font-size:12px;margin-bottom:3px}.slot-tab strong{display:block;font-size:17px;letter-spacing:.035em}.slot-tab.active{background:var(--red);color:white;border-color:var(--red)}.slot-tab:not(.active):hover{border-color:#b51e36;color:var(--red)}.empty-slot{background:white;border:1px solid var(--line);border-radius:14px;padding:40px 24px;text-align:center}.empty-slot h2{font-size:24px;margin:10px 0}.empty-slot p{max-width:430px;margin:0 auto 24px;color:var(--muted);font-size:15px}.empty-slot .text-button{display:block;margin:12px auto 0}.slot-qr-symbol{font-size:58px;line-height:1;color:var(--red);margin-bottom:24px}.slot-scan-actions{margin-left:auto;display:flex;gap:6px;align-items:center}#slot-scanner{max-width:520px}#slot-scan-status{padding:0 22px;font-size:14px}#slot-scanner h2{font-size:20px}@media(max-width:700px){.slot-tabs{gap:7px;margin-bottom:18px}.slot-tab{padding:10px;min-height:66px}.slot-tab strong{font-size:14px}.slot-tab span{font-size:12px}.slot-scan-actions{width:100%;margin:8px 0 0}.slot-scan-actions .button{flex:1}.empty-slot{padding:30px 20px}.empty-slot h2{font-size:22px}.empty-slot p{font-size:14px}}
.instructor-only .shell{display:block}.instructor-only main{max-width:1100px}.instructor-only .masthead{max-width:1100px;margin:auto}.instructor-only .header-label{display:none}
.instructor-status{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.instructor-status strong{font-size:14px;font-weight:600}.instructor-status .connection{margin-left:0}@media(max-width:700px){.instructor-status strong{font-size:12px}.instructor-status{gap:3px}.instructor-only .masthead{gap:8px}}

.brand-mark.school-logo{display:block;object-fit:contain;background:transparent;border-radius:0;padding:0;flex-shrink:0}
/* Compact vital overview, with touch controls kept at 44px. */
:is(.instructor-only,.participant-only) .vitals-grid{gap:8px}
:is(.instructor-only,.participant-only) .vital-card{padding:10px 12px;border-radius:10px;min-height:0}
:is(.instructor-only,.participant-only) .vital-title{min-height:0;font-size:13px;line-height:1.25;gap:5px}
:is(.instructor-only,.participant-only) .vital-value{margin:5px 0;gap:5px}
:is(.instructor-only,.participant-only) .vital-value strong{font-size:32px;line-height:1.1}
:is(.instructor-only,.participant-only) .vital-value span{font-size:11px}
.instructor-only .step-status{min-height:0;margin:2px 0;font-size:10px;line-height:1.2}
.instructor-only .step-track{height:5px;margin:3px 0 6px}
.instructor-only .step-track:before{inset:2px 2px}
.instructor-only .step-controls{gap:4px}
.instructor-only .step-button{min-height:44px;padding:4px 6px}
:is(.instructor-only,.participant-only) main{padding-top:12px;padding-bottom:12px}
:is(.instructor-only,.participant-only) .patient-banner{padding:8px 12px;gap:10px;margin-bottom:8px}
:is(.instructor-only,.participant-only) .patient-letter{width:38px;height:38px;font-size:22px}
:is(.instructor-only,.participant-only) .section-line{margin:8px 0 6px;gap:6px}
:is(.instructor-only,.participant-only) .section-line h2{font-size:14px}
:is(.instructor-only,.participant-only) .timestamp{margin:6px 0;font-size:10px;line-height:1.3}
.instructor-only .slot-tabs{padding:0;gap:5px;margin-bottom:8px}
.instructor-only .slot-tab{min-height:48px;padding:5px 10px}
.instructor-only .slot-tab span{font-size:10px;margin:0}
.instructor-only .slot-tab strong{font-size:14px}
.instructor-only .hint{padding:6px 8px;margin:6px 0;font-size:11px;line-height:1.3}
@media(max-width:700px){
 :is(.instructor-only,.participant-only) .masthead{height:58px;padding:0 12px}
 :is(.instructor-only,.participant-only) main{padding:8px 10px 12px}
 .instructor-only .preview-strip{display:none}
 :is(.instructor-only,.participant-only) .patient-banner{padding:6px 8px;gap:7px;flex-wrap:nowrap}
 :is(.instructor-only,.participant-only) .patient-letter{width:32px;height:32px;flex-shrink:0;font-size:19px}
 :is(.instructor-only,.participant-only) .patient-banner h1,:is(.instructor-only,.participant-only) .patient-banner h2{font-size:16px;margin:0;white-space:nowrap}
 .instructor-only .patient-banner p,.participant-only .patient-banner .eyebrow{display:none}
 .instructor-only .slot-scan-actions{width:auto;margin:0 0 0 auto;gap:3px}
 .instructor-only .slot-scan-actions button{padding:4px 6px;min-height:44px;font-size:11px;white-space:nowrap}
 .participant-only .patient-banner>button{width:auto;margin:0 0 0 auto;min-height:44px;padding:4px 8px;font-size:11px}
 .instructor-only .vitals-grid{grid-template-columns:1fr;gap:4px}
 .instructor-only .vital-card{display:grid;grid-template-columns:minmax(0,1fr) 82px 92px;align-items:center;gap:6px;padding:3px 8px;min-height:52px;border-radius:8px}
 .instructor-only .vital-title{font-size:12px;min-height:0;line-height:1.2}
 .instructor-only .vital-title svg{display:none}
 .instructor-only .vital-value{margin:0;gap:3px;flex-wrap:wrap;line-height:1}
 .instructor-only .vital-value strong{font-size:26px}
 .instructor-only .vital-value span{font-size:10px;line-height:1}
 .instructor-only .step-status,.instructor-only .step-track{display:none}
 .instructor-only .step-controls{gap:4px}
 .instructor-only .step-button{min-height:44px;min-width:44px;padding:0}
 .instructor-only .step-button .button-word{display:none}
 .instructor-only .step-button span{font-size:22px}
 .participant-only .vitals-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .participant-only .vital-card{padding:8px;min-height:94px}
 .participant-only .vital-title{font-size:12px;min-height:30px;line-height:1.2}
 .participant-only .vital-value{margin:4px 0 0;gap:3px}
 .participant-only .vital-value strong{font-size:28px}
 .participant-only .vital-value span{font-size:10px}
 .instructor-only .section-line span{font-size:10px}
}
.instructor-only .slot-toolbar{display:flex;justify-content:flex-end;margin:0 0 4px}.instructor-only .slot-toolbar .slot-scan-actions{margin:0;gap:4px}
.instructor-only #header-scan{min-height:44px;white-space:nowrap;padding:6px 10px;font-size:12px}
@media(max-width:700px){.instructor-only .masthead{display:grid;grid-template-columns:minmax(0,1fr) auto;height:auto;padding:6px 10px;gap:2px 8px}.instructor-only .masthead .brand{grid-column:1;grid-row:1;gap:8px}.instructor-only #header-scan{grid-column:2;grid-row:1 / span 2}.instructor-only .instructor-status{grid-column:1;grid-row:2;margin:0 0 0 44px;align-items:flex-start;text-align:left;gap:0}.instructor-only .instructor-status strong{font-size:10px}.instructor-only .connection{font-size:10px;text-align:left}.instructor-only .brand-mark{width:32px;height:32px}}
.vital-range{display:flex;align-items:center;gap:7px;font-size:10px;line-height:1.2;color:var(--muted);margin:5px 0 7px;font-variant-numeric:tabular-nums}.range-rail{height:4px;background:#e1e5e9;border-radius:4px;position:relative;flex:1;margin:0 4px}.range-rail i{position:absolute;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 1px white}.range-rail.fixed{background:#cbd1d7}.range-rail.fixed i{background:#78818c}
@media(max-width:700px){.instructor-only .vital-card{grid-template-rows:auto auto;row-gap:1px;padding:4px 8px}.instructor-only .vital-title{grid-column:1;grid-row:1}.instructor-only .vital-value{grid-column:2;grid-row:1}.instructor-only .vital-range{grid-column:1 / span 2;grid-row:2;font-size:9px;margin:1px 0 0;gap:5px}.instructor-only .step-controls{grid-column:3;grid-row:1 / span 2}.instructor-only .range-rail i{width:7px;height:7px}}
.slot-tab{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
@media(max-width:700px){.instructor-only .masthead{display:flex;height:58px;padding:0 10px;gap:8px}.instructor-only .instructor-status{margin:0 0 0 auto;align-items:flex-end;text-align:right}.instructor-only .connection{text-align:right}}
.step-button{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.outside-limits{border-color:#d39549!important}.outside-limits .vital-value strong,.range-warning{color:#9a4f08}.range-warning{font-size:9px;font-weight:600;white-space:nowrap}.vital-range.outside .range-rail i{background:#b66b16}.step-button[data-allowed="false"]{background:#f1f3f5;color:#78818c;border-style:dashed}
@keyframes vital-worse-flash{0%,25%{background-color:#ffd8df;border-color:#d63b53}100%{background-color:white;border-color:var(--line)}}
@keyframes vital-better-flash{0%,25%{background-color:#cff2db;border-color:#32985c}100%{background-color:white;border-color:var(--line)}}
.participant-only .vital-card.flash-worse{animation:vital-worse-flash 1.2s ease-out}
.participant-only .vital-card.flash-better{animation:vital-better-flash 1.2s ease-out}
@media(prefers-reduced-motion:reduce){.participant-only .vital-card.flash-worse,.participant-only .vital-card.flash-better{animation-duration:.6s}}
.instructor-only [data-visibility-key]{cursor:pointer}
.visibility-toggle{border:0;background:none;color:inherit;padding:0;display:flex;align-items:center;gap:5px;text-align:left;font:inherit;line-height:inherit;min-height:32px;width:100%;cursor:pointer}
.visibility-light{display:block;flex-shrink:0;width:7px;height:7px;border-radius:50%;border:1px solid #8b939d;background:transparent}
.participant-visible .visibility-light{background:#278654;border-color:#278654}
.instructor-only .participant-visible{box-shadow:inset 3px 0 #278654}
.instructor-only .participant-hidden{background:#f0f2f5}
.instructor-only .participant-hidden .vital-title{color:#6e7781}
.awaiting-values{padding:22px 16px;border:1px solid var(--line);border-radius:10px;background:white;text-align:center;color:var(--muted);font-size:14px}
.vital-slider{appearance:none;-webkit-appearance:none;flex:1;min-width:0;width:100%;height:22px;margin:0 3px;background:transparent;cursor:ew-resize;touch-action:pan-y}
.vital-slider::-webkit-slider-runnable-track{height:4px;background:#d8dde3;border-radius:4px}
.vital-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--red);border:2px solid white;box-shadow:0 0 0 1px #b51e3633;margin-top:-6px}
.vital-slider::-moz-range-track{height:4px;background:#d8dde3;border-radius:4px}
.vital-slider::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--red);border:2px solid white}
.vital-slider:disabled{cursor:default;opacity:.5}
.vital-slider:focus-visible{outline:2px solid #3b7dd8;outline-offset:1px;border-radius:4px}
@media(max-width:700px){.instructor-only .vital-range{margin:0;height:20px}.vital-slider{height:20px}}
.print-page .labels-grid{display:grid;grid-template-columns:repeat(auto-fit,60mm);gap:3mm;justify-content:start}
.print-page .wrist-label{box-sizing:border-box;width:60mm;height:20mm;min-height:20mm;max-height:20mm;padding:.6mm;gap:2mm;border:.2mm dashed #9ba2aa;border-radius:0;overflow:hidden;break-inside:avoid;background:white;color:black}
.print-page .wrist-label img{display:block;width:18mm;height:18mm;flex:0 0 18mm;object-fit:contain}
.print-page .wrist-label strong{font-size:16pt;line-height:1.05}
.print-page .wrist-label small{font-size:6pt;line-height:1.2;color:#333}
.print-page .wrist-label span{font-size:7pt;line-height:1.2}
@media print{.print-page .labels-grid{grid-template-columns:repeat(3,60mm);gap:3mm;margin:0}.print-page .wrist-label{width:60mm;height:20mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}}

.instructor-only .description-button{border:1px solid var(--line);background:white;color:var(--red);border-radius:7px;padding:5px 8px;font:inherit;font-size:11px;cursor:pointer;min-height:30px}
#patient-description{width:min(680px,calc(100vw - 24px));max-height:88dvh;padding:0;overflow:auto}
#patient-description .dialog-header{position:sticky;top:0;background:white;z-index:1;padding:12px 16px;gap:8px}
#patient-description h2{font-size:17px;margin:0}
.description-content{padding:0 16px 16px;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.description-content h3{font-size:16px;margin:8px 0 14px}.description-content h4{font-size:14px;margin:20px 0 6px}.description-content p{margin:8px 0}.description-content .description-source{color:var(--muted);font-size:11px}

.participant-only .vital-title .measurement-icon{width:16px;height:16px;flex:0 0 16px;color:var(--muted)}
.participant-only .vital-title{gap:4px}
.participant-only .vital-title>span{min-width:0;overflow-wrap:anywhere}

.print-page .wrist-label{color:var(--label-color,#30343b);border:.3mm solid var(--label-color,#30343b);print-color-adjust:exact;-webkit-print-color-adjust:exact}
.print-page .wrist-label small{color:inherit}.print-page .wrist-label>div{min-width:0}
