/* iRepairDatabase P22R2R5R2 — IRUI centered native experience
   Every first-party dialog remains visually centered in the real VisualViewport.
   Small screens compact/scroll internally; they never become bottom sheets. */
:root{
  --irui-vvw:100vw;--irui-vvh:100vh;--irui-vv-left:0px;--irui-vv-top:0px;
  --irui-safe-top:env(safe-area-inset-top,0px);--irui-safe-right:env(safe-area-inset-right,0px);
  --irui-safe-bottom:env(safe-area-inset-bottom,0px);--irui-safe-left:env(safe-area-inset-left,0px);
  --irui-bg:#070b09;--irui-bg2:#0b110e;--irui-bg3:#101914;--irui-line:rgba(255,255,255,.12);
  --irui-line-strong:rgba(57,255,142,.34);--irui-neon:#39ff8e;--irui-neon-soft:rgba(57,255,142,.13);
  --irui-ink:#f2fff7;--irui-muted:#92a59a;--irui-danger:#ff627d;--irui-warn:#ffbd66;
  --irui-shadow:0 28px 90px rgba(0,0,0,.62);--irui-radius:18px;
}
html.irui-modal-open,body.irui-modal-open{overscroll-behavior:none}
body.irui-modal-open{overflow:hidden!important;touch-action:none}
.irui-root{position:relative;z-index:2147481000}
.irui-dialog{
  position:fixed!important;left:var(--irui-vv-left)!important;top:var(--irui-vv-top)!important;right:auto!important;bottom:auto!important;
  width:var(--irui-vvw)!important;height:var(--irui-vvh)!important;max-width:none!important;max-height:none!important;
  margin:0!important;border:0!important;padding:0!important;background:transparent!important;color:var(--irui-ink);overflow:hidden!important;
  box-sizing:border-box;place-items:center;
}
.irui-dialog[open]{display:grid!important;place-items:center!important;padding:max(10px,var(--irui-safe-top)) max(10px,var(--irui-safe-right)) max(10px,var(--irui-safe-bottom)) max(10px,var(--irui-safe-left))!important}
.irui-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.irui-fallback-backdrop{
  position:fixed;left:var(--irui-vv-left);top:var(--irui-vv-top);width:var(--irui-vvw);height:var(--irui-vvh);z-index:2147481000;
  background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;
  padding:max(10px,var(--irui-safe-top)) max(10px,var(--irui-safe-right)) max(10px,var(--irui-safe-bottom)) max(10px,var(--irui-safe-left));box-sizing:border-box;overflow:hidden
}
.irui-shell{
  width:min(560px,calc(var(--irui-vvw) - 28px - var(--irui-safe-left) - var(--irui-safe-right)));
  max-height:min(760px,calc(var(--irui-vvh) - 28px - var(--irui-safe-top) - var(--irui-safe-bottom)));
  display:flex;flex-direction:column;background:linear-gradient(155deg,rgba(18,28,23,.985),rgba(5,9,7,.99));
  border:1px solid var(--irui-line-strong);border-radius:var(--irui-radius);box-shadow:var(--irui-shadow);overflow:hidden;
  overscroll-behavior:contain;color:var(--irui-ink);min-width:0;min-height:0;box-sizing:border-box;transform:translateZ(0)
}
.irui-shell.irui-wide{width:min(760px,calc(var(--irui-vvw) - 28px - var(--irui-safe-left) - var(--irui-safe-right)))}
.irui-shell.irui-full{width:min(920px,calc(var(--irui-vvw) - 24px - var(--irui-safe-left) - var(--irui-safe-right)));max-height:calc(var(--irui-vvh) - 24px - var(--irui-safe-top) - var(--irui-safe-bottom))}
.irui-shell.irui-scanner-shell{width:min(620px,calc(var(--irui-vvw) - 24px - var(--irui-safe-left) - var(--irui-safe-right)));max-height:calc(var(--irui-vvh) - 24px - var(--irui-safe-top) - var(--irui-safe-bottom))}
.irui-head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 12px;border-bottom:1px solid rgba(255,255,255,.07);flex:0 0 auto;min-width:0}
.irui-heading{min-width:0;flex:1}.irui-kicker{font:700 10px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em;color:var(--irui-neon);text-transform:uppercase;margin-bottom:5px}.irui-title{font:700 clamp(17px,2.6vw,21px)/1.18 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--irui-ink);margin:0}.irui-subtitle{margin:6px 0 0;color:var(--irui-muted);font:400 12.5px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.irui-close{width:44px;height:44px;min-width:44px;border:1px solid var(--irui-line);border-radius:12px;background:rgba(255,255,255,.035);color:var(--irui-ink);font-size:25px;line-height:1;display:grid;place-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.irui-close:hover,.irui-close:focus-visible{border-color:var(--irui-line-strong);outline:none;background:var(--irui-neon-soft)}
.irui-body{padding:16px 18px;overflow:auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.irui-message{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--irui-ink);font:400 13.5px/1.58 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.irui-detail{margin-top:10px;padding:11px 12px;border:1px solid var(--irui-line);border-radius:12px;background:rgba(255,255,255,.025);color:var(--irui-muted);font:400 12px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}.irui-detail.irui-danger-note{border-color:rgba(255,98,125,.3);background:rgba(255,98,125,.075);color:#ffdce3}.irui-detail.irui-warn-note{border-color:rgba(255,189,102,.28);background:rgba(255,189,102,.07);color:#ffe8c8}
.irui-field{display:grid;gap:7px;margin-top:14px}.irui-label{font:700 11px/1.3 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--irui-muted);letter-spacing:.03em}.irui-input,.irui-select,.irui-textarea{box-sizing:border-box;width:100%;min-height:48px;border:1px solid var(--irui-line);border-radius:12px;background:#070d09;color:var(--irui-ink);padding:11px 12px;font:500 14px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;outline:none;appearance:none;-webkit-appearance:none}.irui-textarea{min-height:132px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.irui-input:focus,.irui-select:focus,.irui-textarea:focus{border-color:var(--irui-neon);box-shadow:0 0 0 3px rgba(57,255,142,.12)}.irui-help{font:400 11px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--irui-muted)}.irui-error{min-height:18px;color:var(--irui-danger);font:600 11px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.irui-options{display:grid;gap:8px;margin-top:12px}.irui-option{min-height:52px;text-align:left;display:flex;align-items:center;gap:11px;width:100%;border:1px solid var(--irui-line);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.025);color:var(--irui-ink);cursor:pointer}.irui-option:hover,.irui-option:focus-visible,.irui-option[aria-checked="true"]{outline:none;border-color:var(--irui-neon);background:var(--irui-neon-soft)}.irui-option-main{flex:1;min-width:0}.irui-option-title{font:700 13px/1.3 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.irui-option-detail{margin-top:3px;color:var(--irui-muted);font:400 11px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.irui-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--irui-muted);display:grid;place-items:center}.irui-option[aria-checked="true"] .irui-radio{border-color:var(--irui-neon)}.irui-option[aria-checked="true"] .irui-radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--irui-neon)}
.irui-actions{display:flex;justify-content:flex-end;gap:9px;padding:12px 18px max(14px,var(--irui-safe-bottom));border-top:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.16);flex:0 0 auto}.irui-btn{min-height:46px;min-width:110px;border-radius:12px;border:1px solid var(--irui-line);padding:10px 15px;background:rgba(255,255,255,.035);color:var(--irui-ink);font:750 12px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.015em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:7px;-webkit-tap-highlight-color:transparent}.irui-btn:hover,.irui-btn:focus-visible{outline:none;border-color:var(--irui-line-strong);background:var(--irui-neon-soft)}.irui-btn.irui-primary{border-color:rgba(57,255,142,.55);background:linear-gradient(180deg,rgba(57,255,142,.2),rgba(57,255,142,.1));color:#dffff0}.irui-btn.irui-danger{border-color:rgba(255,98,125,.42);background:rgba(255,98,125,.09);color:#ffdbe2}.irui-btn:disabled{opacity:.45;cursor:not-allowed}
.irui-icon{width:40px;height:40px;min-width:40px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--irui-line);background:rgba(255,255,255,.03);font-size:19px}.irui-icon.ok{color:var(--irui-neon);border-color:rgba(57,255,142,.3);background:rgba(57,255,142,.08)}.irui-icon.err{color:var(--irui-danger);border-color:rgba(255,98,125,.32);background:rgba(255,98,125,.08)}.irui-icon.warn{color:var(--irui-warn);border-color:rgba(255,189,102,.3);background:rgba(255,189,102,.07)}
.irui-toast-host{position:fixed;z-index:2147483646;right:max(14px,var(--irui-safe-right));bottom:max(14px,var(--irui-safe-bottom));display:grid;gap:8px;width:min(390px,calc(100vw - 28px - var(--irui-safe-left) - var(--irui-safe-right)));pointer-events:none}.irui-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--irui-line);border-radius:13px;background:rgba(8,14,10,.96);box-shadow:0 16px 42px rgba(0,0,0,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translateY(8px);opacity:0;transition:opacity .16s ease,transform .16s ease}.irui-toast.on{transform:none;opacity:1}.irui-toast-mark{font-weight:900;color:var(--irui-neon)}.irui-toast.err .irui-toast-mark{color:var(--irui-danger)}.irui-toast.warn .irui-toast-mark{color:var(--irui-warn)}.irui-toast-copy{min-width:0;flex:1}.irui-toast-title{font:700 12px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--irui-ink)}.irui-toast-detail{margin-top:2px;font:400 11px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--irui-muted);overflow-wrap:anywhere}
.irui-loading{display:flex;align-items:center;gap:12px}.irui-spinner{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.12);border-top-color:var(--irui-neon);animation:irui-spin .85s linear infinite}@keyframes irui-spin{to{transform:rotate(360deg)}}
.irui-code{font:800 clamp(27px,7vw,36px)/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.16em;color:var(--irui-neon);text-align:center}.irui-countdown{text-align:center;color:var(--irui-muted);font:600 11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.irui-qr{display:block;margin:4px auto;background:#fff;border-radius:13px;padding:8px;max-width:min(260px,72vw);height:auto}.irui-button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.irui-button-grid .irui-btn{min-width:0;width:100%}
.irui-scanner-shell .irui-body{display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:10px;overflow:hidden;padding:14px 16px 16px}
.irui-scanner{position:relative;justify-self:center;align-self:center;width:min(100%,420px);height:min(46vh,460px,calc(var(--irui-vvh) - 245px));min-height:180px;background:#000;border-radius:14px;overflow:hidden}
.irui-scanner video,.irui-scanner canvas.irui-scan-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.irui-scan-frame{position:absolute;left:50%;top:50%;width:min(68%,290px);max-height:76%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid rgba(57,255,142,.92);border-radius:20px;box-shadow:0 0 0 999px rgba(0,0,0,.27),0 0 28px rgba(57,255,142,.2);pointer-events:none}.irui-scan-frame::before{content:"";position:absolute;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--irui-neon),transparent);box-shadow:0 0 12px var(--irui-neon);top:35%;animation:irui-scan 2.1s ease-in-out infinite}@keyframes irui-scan{0%,100%{top:24%;opacity:.55}50%{top:76%;opacity:1}}.irui-scanner-status{text-align:center;margin:0;color:var(--irui-muted);font:600 11.5px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:18px}.irui-scanner-status.ok{color:var(--irui-neon)}.irui-scanner-status.err{color:var(--irui-danger)}
.irui-pair-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,270px);gap:16px;align-items:start}.irui-pair-copy{min-width:0}.irui-qr-card{background:#fff;border-radius:14px;padding:10px;width:100%;box-sizing:border-box}.irui-pair-code{font:900 clamp(28px,6vw,38px)/1.05 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--irui-neon);letter-spacing:.16em}
@media(max-width:640px){
  .irui-dialog[open],.irui-fallback-backdrop{padding:max(8px,var(--irui-safe-top)) max(8px,var(--irui-safe-right)) max(8px,var(--irui-safe-bottom)) max(8px,var(--irui-safe-left))!important;place-items:center!important}
  .irui-shell,.irui-shell.irui-wide,.irui-shell.irui-full,.irui-shell.irui-scanner-shell{width:min(100%,calc(var(--irui-vvw) - 16px - var(--irui-safe-left) - var(--irui-safe-right)));max-height:calc(var(--irui-vvh) - 16px - var(--irui-safe-top) - var(--irui-safe-bottom));border-radius:16px;border:1px solid var(--irui-line-strong)}
  .irui-head{padding:13px 13px 9px}.irui-body{padding:12px 13px}.irui-actions{padding:9px 13px max(10px,var(--irui-safe-bottom));display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.irui-actions .irui-btn:only-child{grid-column:1/-1}.irui-btn{min-width:0;width:100%}.irui-button-grid{grid-template-columns:1fr}.irui-toast-host{left:max(10px,var(--irui-safe-left));right:max(10px,var(--irui-safe-right));bottom:max(10px,var(--irui-safe-bottom));width:auto}
  .irui-scanner-shell .irui-body{padding:10px 12px 12px;gap:8px}.irui-scanner{width:min(100%,390px);height:min(44vh,390px,calc(var(--irui-vvh) - 230px));min-height:170px;border-radius:12px}.irui-scan-frame{width:min(68%,250px);border-radius:18px}
  .irui-pair-grid{grid-template-columns:1fr}.irui-pair-copy{text-align:center}.irui-qr-card{width:min(260px,86vw);justify-self:center}.irui-pair-code{letter-spacing:.13em}
}
@media(max-width:640px) and (orientation:landscape){
  .irui-shell,.irui-shell.irui-wide,.irui-shell.irui-full,.irui-shell.irui-scanner-shell{width:min(760px,calc(var(--irui-vvw) - 20px - var(--irui-safe-left) - var(--irui-safe-right)));max-height:calc(var(--irui-vvh) - 12px - var(--irui-safe-top) - var(--irui-safe-bottom))}
  .irui-head{padding:10px 13px 7px}.irui-title{font-size:17px}.irui-subtitle{margin-top:3px}.irui-scanner-shell .irui-body{grid-template-columns:minmax(220px,1fr) minmax(190px,.72fr);grid-template-rows:auto 1fr;align-items:center}.irui-scanner{grid-row:1/3;width:100%;height:min(62vh,330px,calc(var(--irui-vvh) - 100px));min-height:150px}.irui-scanner-status{align-self:end}.irui-button-grid{align-self:start;grid-template-columns:1fr}
}
@media(max-height:520px){.irui-head{padding-top:9px;padding-bottom:7px}.irui-body{padding-top:9px;padding-bottom:9px}.irui-actions{padding-top:7px;padding-bottom:max(8px,var(--irui-safe-bottom))}.irui-scanner{height:min(55vh,260px,calc(var(--irui-vvh) - 165px));min-height:130px}}
@media(prefers-reduced-motion:reduce){.irui-toast,.irui-spinner,.irui-scan-frame::before{animation:none!important;transition:none!important}}

/* P22R2R5R2 · legacy first-party modal surfaces share the same VisualViewport centering contract.
   They keep their existing visual identity/content; only positioning, sizing and scrolling are normalized. */
.p22r5-device-modal,
.overlay[role="dialog"][aria-modal="true"],
.p21StudyModal[role="dialog"][aria-modal="true"],
#helpModal[role="dialog"][aria-modal="true"],
#pdfPick[role="dialog"][aria-modal="true"],
#noteModal[role="dialog"][aria-modal="true"],
#measureModalP17[role="dialog"][aria-modal="true"],
#sessionRestoreP16[role="dialog"][aria-modal="true"],
#palModal[role="dialog"][aria-modal="true"]{
  position:fixed!important;
  inset:auto!important;
  left:var(--irui-vv-left,0px)!important;
  top:var(--irui-vv-top,0px)!important;
  width:var(--irui-vvw,100vw)!important;
  height:var(--irui-vvh,100dvh)!important;
  box-sizing:border-box!important;
  align-items:center!important;
  justify-content:center!important;
  place-items:center!important;
  overflow:hidden!important;
  padding:max(10px,var(--irui-safe-top)) max(10px,var(--irui-safe-right)) max(10px,var(--irui-safe-bottom)) max(10px,var(--irui-safe-left))!important;
}
.p22r5-device-modal.open,
.overlay[role="dialog"][aria-modal="true"].open,
.p21StudyModal[role="dialog"][aria-modal="true"].on,
#helpModal[role="dialog"][aria-modal="true"].show,
#pdfPick[role="dialog"][aria-modal="true"].show,
#noteModal[role="dialog"][aria-modal="true"].show,
#measureModalP17[role="dialog"][aria-modal="true"].on,
#sessionRestoreP16[role="dialog"][aria-modal="true"].show,
#palModal[role="dialog"][aria-modal="true"].on{
  display:grid!important;
  place-items:center!important;
}
.p22r5-device-panel,
.overlay[role="dialog"][aria-modal="true"]>.modal,
.p21StudyModalCard,
#helpModal .hbox,
#pdfPick .pbox,
#noteModal .nbox,
#measureModalP17 .measureCardP17,
#sessionRestoreP16 .srCardP16,
#palModal .palBox{
  margin:0!important;
  max-width:calc(var(--irui-vvw,100vw) - 20px - var(--irui-safe-left) - var(--irui-safe-right))!important;
  max-height:calc(var(--irui-vvh,100dvh) - 20px - var(--irui-safe-top) - var(--irui-safe-bottom))!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch;
  border-radius:16px!important;
  min-height:0!important;
  box-sizing:border-box!important;
}
/* Library legacy modal was full-screen on phones; keep it app-like and centered instead. */
.overlay[role="dialog"][aria-modal="true"]>.modal{
  width:min(520px,calc(var(--irui-vvw,100vw) - 20px - var(--irui-safe-left) - var(--irui-safe-right)))!important;
  height:auto!important;
  padding:clamp(14px,3vw,24px)!important;
}
/* Physical-device login chooser: never attach to a screen edge. */
.p22r5-device-panel{width:min(600px,calc(var(--irui-vvw,100vw) - 20px - var(--irui-safe-left) - var(--irui-safe-right)))!important}
/* Measurement Studio used a mobile bottom sheet in P21; R2 keeps it centered. */
#measureModalP17 .measureCardP17{width:min(760px,calc(var(--irui-vvw,100vw) - 20px - var(--irui-safe-left) - var(--irui-safe-right)))!important;border-radius:18px!important;padding-bottom:max(14px,var(--irui-safe-bottom))!important}
/* Admin Measurement Study review also follows VisualViewport dimensions. */
.p21StudyModal[role="dialog"][aria-modal="true"]{left:var(--irui-vv-left,0px)!important;top:var(--irui-vv-top,0px)!important;width:var(--irui-vvw,100vw)!important;height:var(--irui-vvh,100dvh)!important}
.p21StudyModalCard{width:min(920px,calc(var(--irui-vvw,100vw) - 20px - var(--irui-safe-left) - var(--irui-safe-right)))!important}

/* Scanner stays compact and centered; camera never dictates modal dimensions. */
.irui-scanner{
  width:min(100%,360px,calc(var(--irui-vvh) - 215px))!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  min-height:0!important;
  max-height:min(360px,52vh)!important;
}
@media(max-width:640px){
  .irui-scanner{width:min(100%,330px,calc(var(--irui-vvh) - 205px))!important;max-height:min(330px,44vh)!important;aspect-ratio:1/1!important}
}
@media(max-width:640px) and (orientation:landscape){
  .irui-scanner-shell .irui-body{grid-template-columns:minmax(180px,1fr) minmax(165px,.72fr)!important;grid-template-rows:auto 1fr!important}
  .irui-scanner{grid-row:1/3!important;width:min(100%,260px,calc(var(--irui-vvh) - 92px))!important;max-height:min(260px,62vh)!important;aspect-ratio:1/1!important}
}
@media(max-height:520px){
  .irui-scanner{width:min(100%,220px,calc(var(--irui-vvh) - 86px))!important;max-height:min(220px,58vh)!important;aspect-ratio:1/1!important}
}
@media(max-height:520px) and (orientation:landscape){
  .irui-scanner-shell{width:min(760px,calc(var(--irui-vvw) - 20px - var(--irui-safe-left) - var(--irui-safe-right)))!important;max-height:calc(var(--irui-vvh) - 16px - var(--irui-safe-top) - var(--irui-safe-bottom))!important}
  .irui-scanner-shell .irui-head{padding:9px 13px 7px!important}
  .irui-scanner-shell .irui-body{display:grid!important;grid-template-columns:minmax(190px,.9fr) minmax(210px,1.1fr)!important;grid-template-rows:auto 1fr!important;gap:10px 14px!important;align-items:center!important;overflow:hidden!important;padding:8px 12px 10px!important}
  .irui-scanner-shell .irui-scanner{grid-column:1!important;grid-row:1/3!important;justify-self:center!important;align-self:center!important;width:min(100%,220px,calc(var(--irui-vvh) - 92px))!important;max-height:min(220px,calc(var(--irui-vvh) - 92px))!important}
  .irui-scanner-shell .irui-scanner-status{grid-column:2!important;grid-row:1!important;align-self:end!important;margin:0!important}
  .irui-scanner-shell .irui-button-grid{grid-column:2!important;grid-row:2!important;align-self:start!important;grid-template-columns:1fr!important;width:100%!important}
}

/* =====================================================================
   P22R2R5R3R1 — Native centered pairing/scanner geometry
   The modal always remains centered in the *real* VisualViewport. Content
   compacts internally on phones; no first-party dialog becomes a bottom sheet.
   ===================================================================== */
.irui-pair-shell{
  width:min(500px,calc(var(--irui-vvw) - 24px - var(--irui-safe-left) - var(--irui-safe-right)))!important;
  max-height:calc(var(--irui-vvh) - 28px - var(--irui-safe-top) - var(--irui-safe-bottom))!important;
}
.irui-pair-shell .irui-head{padding:15px 16px 11px}
.irui-pair-shell .irui-body{
  padding:13px 16px 14px;
  display:flex;flex-direction:column;align-items:stretch;gap:11px;
  overflow:auto!important;min-height:0;
}
.irui-pair-shell .irui-pair-note{margin:0;text-align:left}
.irui-pair-shell .irui-pair-grid{
  display:grid;grid-template-columns:1fr;justify-items:center;align-items:center;
  width:100%;gap:10px;margin:0 auto;
}
.irui-pair-shell .irui-qr-card{
  --irui-pair-qr:min(224px,calc(var(--irui-vvw) - 92px - var(--irui-safe-left) - var(--irui-safe-right)),calc(var(--irui-vvh) * .30));
  width:var(--irui-pair-qr);height:var(--irui-pair-qr);padding:8px;margin:0 auto;
  display:grid;place-items:center;justify-self:center;align-self:center;
  background:#fff;border-radius:15px;box-sizing:border-box;overflow:hidden;
}
.irui-pair-shell .irui-qr-canvas{
  display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
  margin:0!important;padding:0!important;image-rendering:pixelated;justify-self:center;align-self:center;
}
.irui-pair-shell .irui-pair-copy{
  width:min(100%,330px);display:grid;justify-items:center;gap:3px;text-align:center;margin:0 auto;min-width:0;
}
.irui-pair-shell .irui-pair-copy .irui-kicker{margin:0 0 2px;text-align:center}
.irui-pair-shell .irui-pair-code{
  width:100%;font-size:clamp(28px,8.2vw,38px);line-height:1.05;letter-spacing:.12em;text-indent:.12em;
  text-align:center;white-space:nowrap;overflow:hidden;text-overflow:clip;
}
.irui-pair-shell .irui-pair-timer{font:500 13px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--irui-ink);text-align:center}
.irui-pair-shell .irui-pair-copy .irui-subtitle{margin:2px 0 0;text-align:center;font-size:11.5px;line-height:1.35}
.irui-pair-shell .irui-pair-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
.irui-pair-shell .irui-pair-actions .irui-btn{min-height:46px;padding-inline:8px;font-size:11.5px;line-height:1.15;white-space:normal}
.irui-pair-shell .irui-actions{padding:10px 16px max(12px,var(--irui-safe-bottom))}
.irui-pair-shell .irui-actions .irui-btn{width:100%}

/* Scanner: camera is content, never the sizing authority for the dialog. */
.irui-shell.irui-scanner-shell{
  width:min(480px,calc(var(--irui-vvw) - 24px - var(--irui-safe-left) - var(--irui-safe-right)))!important;
  max-height:calc(var(--irui-vvh) - 28px - var(--irui-safe-top) - var(--irui-safe-bottom))!important;
}
.irui-scanner-shell .irui-head{padding:14px 16px 10px}
.irui-scanner-shell .irui-body{
  display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto auto!important;
  justify-items:center!important;align-items:center!important;gap:9px!important;overflow:auto!important;padding:12px 14px 14px!important;
}
.irui-scanner-shell .irui-scanner{
  grid-column:1!important;grid-row:1!important;
  width:min(300px,calc(var(--irui-vvw) - 60px - var(--irui-safe-left) - var(--irui-safe-right)),calc(var(--irui-vvh) * .38))!important;
  height:auto!important;aspect-ratio:1/1!important;min-height:0!important;max-height:none!important;
  justify-self:center!important;align-self:center!important;margin:0!important;border-radius:14px!important;
}
.irui-scanner-shell .irui-scanner-status{grid-column:1!important;grid-row:2!important;justify-self:center!important;margin:0!important;min-height:17px}
.irui-scanner-shell .irui-button-grid{grid-column:1!important;grid-row:3!important;width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}

@media (max-width:480px){
  .irui-pair-shell{
    width:min(414px,calc(var(--irui-vvw) - 18px - var(--irui-safe-left) - var(--irui-safe-right)))!important;
    max-height:calc(var(--irui-vvh) - 22px - var(--irui-safe-top) - var(--irui-safe-bottom))!important;
  }
  .irui-pair-shell .irui-head{padding:13px 13px 9px;gap:10px}
  .irui-pair-shell .irui-icon{width:38px;height:38px;min-width:38px}
  .irui-pair-shell .irui-close{width:42px;height:42px;min-width:42px}
  .irui-pair-shell .irui-body{padding:10px 13px 11px;gap:9px}
  .irui-pair-shell .irui-pair-note{padding:9px 10px;font-size:11.7px;line-height:1.45}
  .irui-pair-shell .irui-qr-card{
    --irui-pair-qr:min(210px,calc(var(--irui-vvw) - 92px - var(--irui-safe-left) - var(--irui-safe-right)),calc(var(--irui-vvh) * .285));
    padding:7px;border-radius:14px;
  }
  .irui-pair-shell .irui-pair-code{font-size:clamp(28px,9vw,36px)}
  .irui-pair-shell .irui-actions{padding:9px 13px max(10px,var(--irui-safe-bottom))}
  .irui-shell.irui-scanner-shell{width:min(414px,calc(var(--irui-vvw) - 18px - var(--irui-safe-left) - var(--irui-safe-right)))!important}
  .irui-scanner-shell .irui-scanner{width:min(280px,calc(var(--irui-vvw) - 54px - var(--irui-safe-left) - var(--irui-safe-right)),calc(var(--irui-vvh) * .34))!important}
}
@media (max-width:340px){
  .irui-pair-shell .irui-pair-actions,.irui-scanner-shell .irui-button-grid{grid-template-columns:1fr!important}
  .irui-pair-shell .irui-qr-card{--irui-pair-qr:min(188px,calc(var(--irui-vvw) - 74px),calc(var(--irui-vvh) * .27))}
}
@media (orientation:landscape) and (max-height:560px){
  .irui-pair-shell{width:min(720px,calc(var(--irui-vvw) - 24px - var(--irui-safe-left) - var(--irui-safe-right)))!important;max-height:calc(var(--irui-vvh) - 18px - var(--irui-safe-top) - var(--irui-safe-bottom))!important}
  .irui-pair-shell .irui-head{padding:9px 13px 7px}.irui-pair-shell .irui-body{padding:8px 13px 9px;gap:8px}
  .irui-pair-shell .irui-pair-note{display:none}
  .irui-pair-shell .irui-pair-grid{grid-template-columns:auto minmax(190px,1fr);gap:16px;justify-content:center;justify-items:center}
  .irui-pair-shell .irui-qr-card{--irui-pair-qr:min(190px,calc(var(--irui-vvh) - 160px),34vw)}
  .irui-pair-shell .irui-pair-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
  .irui-pair-shell .irui-actions{padding-block:7px max(7px,var(--irui-safe-bottom))}
  .irui-shell.irui-scanner-shell{width:min(720px,calc(var(--irui-vvw) - 24px - var(--irui-safe-left) - var(--irui-safe-right)))!important;max-height:calc(var(--irui-vvh) - 18px - var(--irui-safe-top) - var(--irui-safe-bottom))!important}
  .irui-scanner-shell .irui-body{grid-template-columns:minmax(180px,.9fr) minmax(190px,1.1fr)!important;grid-template-rows:auto 1fr!important;gap:8px 14px!important;overflow:hidden!important;padding:8px 12px 10px!important}
  .irui-scanner-shell .irui-scanner{grid-column:1!important;grid-row:1/3!important;width:min(220px,calc(var(--irui-vvh) - 102px),38vw)!important}
  .irui-scanner-shell .irui-scanner-status{grid-column:2!important;grid-row:1!important;align-self:end!important}
  .irui-scanner-shell .irui-button-grid{grid-column:2!important;grid-row:2!important;grid-template-columns:1fr!important;align-self:start!important}
}


/* =====================================================================
   P22R2R5R6R1 — IRUI Native Surface Manager V2
   All first-party dialog surfaces are centered against the real VisualViewport.
   Small viewports compact/scroll internally; they never become bottom sheets.
   ===================================================================== */
.irui-native-surface-v2{
 position:fixed!important;inset:auto!important;
 left:var(--irui-vv-left,0px)!important;top:var(--irui-vv-top,0px)!important;
 width:var(--irui-vvw,100vw)!important;height:var(--irui-vvh,100dvh)!important;
 box-sizing:border-box!important;align-items:center!important;justify-content:center!important;place-items:center!important;
 padding:max(10px,var(--irui-safe-top)) max(10px,var(--irui-safe-right)) max(10px,var(--irui-safe-bottom)) max(10px,var(--irui-safe-left))!important;
 overflow:hidden!important;
}
.irui-native-surface-v2>.modal,.irui-native-surface-v2>.p22r5-device-panel,.irui-native-surface-v2>.p21StudyModalCard,
.irui-native-surface-v2>.hbox,.irui-native-surface-v2>.pbox,.irui-native-surface-v2>.nbox,.irui-native-surface-v2>.measureCardP17,
.irui-native-surface-v2>.srCardP16,.irui-native-surface-v2>.palBox,.irui-native-surface-v2>[class*="Card"],.irui-native-surface-v2>[class*="Panel"]{
 margin:0!important;max-width:calc(var(--irui-vvw,100vw) - 20px - var(--irui-safe-left) - var(--irui-safe-right))!important;
 max-height:calc(var(--irui-vvh,100dvh) - 20px - var(--irui-safe-top) - var(--irui-safe-bottom))!important;
 overflow:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch;border-radius:18px!important;min-height:0!important;box-sizing:border-box!important;
}
.irui-policy-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;padding:11px 12px;border:1px solid var(--irui-line);border-radius:14px;background:rgba(8,16,13,.74)}
.irui-policy-copy{min-width:0}.irui-policy-title{font-weight:800;color:var(--irui-ink)}.irui-policy-meta{display:block;margin-top:3px;color:var(--irui-dim);font-size:11px;line-height:1.35}
.irui-switch{position:relative;width:52px;height:32px;min-width:52px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.09);padding:0;cursor:pointer;touch-action:manipulation}
.irui-switch::after{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;border-radius:50%;background:#d7dedb;box-shadow:0 2px 8px rgba(0,0,0,.45);transition:transform .16s ease,background .16s ease}
.irui-switch[aria-checked="true"]{background:rgba(57,255,142,.22);border-color:rgba(57,255,142,.65)}.irui-switch[aria-checked="true"]::after{transform:translateX(20px);background:#39ff8e}
.irui-switch:disabled{opacity:.7;cursor:not-allowed}.irui-lock-badge{font:800 10px/1 var(--irui-mono);letter-spacing:.06em;color:#39ff8e;white-space:nowrap}
.irui-icon-btn{min-width:44px;min-height:44px;border-radius:12px;border:1px solid var(--irui-line);background:rgba(255,255,255,.05);color:var(--irui-ink);font-size:22px;line-height:1;touch-action:manipulation}
.irui-config-grid{display:grid;gap:11px}.irui-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.irui-stat{padding:10px;border:1px solid var(--irui-line);border-radius:12px;background:rgba(255,255,255,.035)}.irui-stat b{display:block;font-size:14px}.irui-stat span{font-size:10px;color:var(--irui-dim)}
.irui-wizard-progress{display:flex;gap:6px;margin-bottom:8px}.irui-wizard-progress span{height:4px;flex:1;border-radius:999px;background:rgba(255,255,255,.12)}.irui-wizard-progress span.on{background:#39ff8e}.irui-wizard-summary{display:grid;gap:8px}.irui-wizard-summary>div{padding:10px;border:1px solid var(--irui-line);border-radius:12px}
@media(max-width:520px){.irui-policy-row{grid-template-columns:minmax(0,1fr) auto auto;padding:10px;gap:7px}.irui-stat-grid{grid-template-columns:1fr}.irui-shell{border-radius:18px!important}}
@media(prefers-reduced-motion:reduce){.irui-switch::after{transition:none!important}}
