.ai-choice{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin-top:16px;padding:10px 13px;border:1px solid #b7ccd4;border-radius:11px;background:#f3f8f9;cursor:pointer}.ai-choice input{width:18px;height:18px;accent-color:var(--blue)}.ai-choice span{display:grid;gap:1px}.ai-choice strong{font-size:.9rem}.ai-choice small{color:var(--muted);font-size:.76rem}.version{display:inline-block;margin-left:.2em;color:var(--muted);font:700 .28em/1 system-ui;letter-spacing:.02em;vertical-align:middle}.profile{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0 22px;padding:14px 16px;border:1px solid #cddce2;border-radius:12px;background:#f3f8f9}.profile-copy{display:grid;gap:3px}.profile-copy strong{color:var(--ink)}.profile-copy span{color:var(--muted);font-size:.82rem}.profile label{display:grid;gap:4px;color:var(--muted);font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.profile select{min-width:132px;border:1px solid #9eb1bd;border-radius:9px;background:#fff;color:var(--ink);padding:9px 30px 9px 10px;font:inherit;font-weight:700}.ocr-note{display:block;max-width:110px;color:#9a5d13;font-size:.68rem;line-height:1.2;margin-top:4px}.review-cue{display:flex;align-items:center;justify-content:center;gap:9px;margin:-8px 0 20px;color:var(--blue);font-size:.83rem;font-weight:800}.review-cue b{font-size:1.35rem;line-height:1}.cue-attention b{animation:cueBounce .55s ease-in-out 3}.expanded-cbc{margin:22px 0 80px;border:1px solid #cbd9e1;border-radius:13px;background:#f7fafb;overflow:hidden}.expanded-cbc summary{cursor:pointer;padding:13px 15px;color:var(--ink);font-weight:800}.expanded-cbc summary span{color:var(--muted);font-weight:600}.expanded-cbc>div{padding:0 15px 14px}.expanded-empty{color:var(--muted);font-size:.84rem}.expanded-group{padding:12px 0;border-top:1px solid var(--line)}.expanded-group h3{margin:0 0 7px;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase}.additional-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:8px 0}.additional-row div{display:grid}.additional-row small{color:var(--muted);font-size:.72rem}.additional-row>span{text-align:right;font-weight:800}.expanded-group ul{margin:4px 0;padding-left:20px;color:var(--muted);font-size:.84rem}.review-actions{position:sticky;z-index:4;bottom:calc(10px + env(safe-area-inset-bottom));padding:10px;margin:18px -10px -10px;background:rgba(255,255,255,.94);backdrop-filter:blur(9px);border-radius:15px}.review-actions button{width:100%}.review-actions button:disabled{cursor:not-allowed;background:#8c99a8;color:#eef1f4}.cta-attention{animation:ctaPulse .65s ease-in-out 3}.patterns{margin-top:14px;border-top:1px solid var(--line);padding-top:18px}.pattern-toggle{width:100%;align-items:center;justify-content:space-between;background:#f1f6f8;color:var(--ink);border:1px solid #b9ccd5}.pattern-toggle[aria-expanded="true"] span{transform:rotate(180deg)}.pattern-panel{margin-top:10px}.pattern-intro{color:var(--muted);font-size:.8rem}.pattern-option{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;margin-top:8px;padding:12px 14px;background:#fff;color:var(--ink);border:1px solid var(--line)}.pattern-option span{display:grid;gap:3px}.pattern-option small{color:var(--muted);font-weight:500;line-height:1.25}.pattern-option.matches{border-color:#83ae94;background:#edf6f0}.pattern-option.matches small{color:#467056}.pattern-option.not-matched{background:#f8f9fa}.pattern-option.selected{outline:3px solid rgba(19,95,119,.18);border-color:var(--blue)}.pattern-divider{margin:17px 0 4px;padding-top:13px;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.pattern-detail{margin-top:12px;padding:12px 14px;border-left:3px solid var(--blue);background:#f3f7f9}.pattern-detail p{margin:4px 0 0;color:var(--muted);font-size:.84rem}@keyframes cueBounce{50%{transform:translateY(7px)}}@keyframes ctaPulse{50%{transform:scale(1.025);box-shadow:0 0 0 6px rgba(19,95,119,.13)}}@media(max-width:620px){.profile{align-items:stretch;flex-direction:column}.profile select{width:100%}.version{display:block;margin:.45em 0 0;font-size:.24em}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

.other-findings{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--ink);font-size:.84rem}.other-findings ul{padding-left:20px;margin:8px 0}.other-findings li{margin:5px 0}.other-findings small{color:var(--muted)}#observationReview .table-wrap{overflow-x:auto}#observationReview table{min-width:610px}


/* v2.3: keep the app within the phone viewport and animate only the diagram. */
[hidden]{display:none!important}
html,body{max-width:100%;overflow-x:clip}
header,main,.card{min-width:0}
.capture{display:block}
.capture>div,.capture p,.capture label{min-width:0;max-width:100%}
.capture .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.capture .actions .button{width:100%;min-width:0;text-align:center;align-items:center}
.capture .ai-choice{width:100%;white-space:normal}
.capture .ai-choice span{min-width:0;overflow-wrap:anywhere}
.file-queue{min-width:0;max-width:100%;overflow:hidden}
.file-queue li{min-width:0}
.file-queue li>span{min-width:0;flex:1}
.file-queue li>span>span{min-width:0;overflow-wrap:anywhere}
.file-queue li strong{white-space:normal;overflow-wrap:anywhere}
.file-queue .remove-file,.queue-head .text{flex:none}
.section-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.diagram-viewport{position:relative;width:100%;overflow:hidden;touch-action:pan-y;overscroll-behavior-x:contain}
.diagram-viewport canvas{position:absolute;top:0;left:0;width:100%;max-height:none;will-change:transform;touch-action:pan-y}
.pattern-detail{margin:6px 0 12px 18px;border-radius:0 8px 8px 0}
.pattern-option[aria-expanded="true"] b{transform:rotate(90deg)}
@media(max-width:620px){.capture .actions{grid-template-columns:1fr}.section-head{flex-wrap:wrap}.section-controls{width:100%}.file-queue li{gap:6px}}

/* v2.4: settings and reusable test-data controls. */
.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.app-header>div:first-child{min-width:0}
.settings-menu{position:relative;flex:none;z-index:10}
.menu-button{min-width:44px;min-height:44px;padding:3px 12px;background:#fff;color:var(--ink);border:1px solid #cdd9e4;font-size:1.6rem;line-height:1}
.menu-panel{position:absolute;right:0;top:50px;width:min(280px,calc(100vw - 36px));padding:16px;border:1px solid #cdd9e4;border-radius:14px;background:#fff;box-shadow:var(--shadow)}
.menu-panel>strong{display:block;margin-bottom:14px}
.settings-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}
.settings-switch input{width:21px;height:21px;accent-color:var(--blue)}
.settings-switch-secondary{margin-top:14px}
/* v2.6: optional range inspection and data export in the ordinary flow. */
.menu-item{display:block;width:100%;margin-top:14px;padding:10px 0;border:0;border-top:1px solid #dbe4ed;background:transparent;text-align:left;color:var(--ink);font-weight:700;cursor:pointer}
.menu-about,.export-message{color:var(--muted);font-size:.82rem;line-height:1.5}
.menu-about{margin:6px 0 0}.export-message{margin:8px 0}
.review-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.review-actions button{min-width:180px}
.enhanced-view{margin:15px 0 5px;padding:18px;border:1px solid #cddfe7;border-radius:16px;background:#f7fbfc}
.enhanced-view>p{margin:0 0 12px;color:var(--ink);font-weight:650;font-size:.86rem}
.range-choices{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin}
.range-choices button{flex:none;padding:7px 10px;border:1px solid #bad0dd;border-radius:20px;background:white;color:var(--ink);font-size:.78rem;cursor:pointer}
.range-choices button.active{background:var(--blue);border-color:var(--blue);color:white}
.range-strip{padding:8px 5px;color:var(--ink)}.range-strip>strong,.range-strip>span{display:block}.range-strip>span{margin-top:3px;color:var(--muted);font-size:.8rem}
.range-track{position:relative;height:10px;margin:19px 9px 5px;border-radius:8px;background:#e4eaf0}
.range-zone{position:absolute;left:34%;width:34%;height:100%;background:#9dcdb0}
.range-marker{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:var(--blue);transform:translate(-50%,-50%);box-shadow:0 0 0 2px white;border:1px solid #476073}
.range-marker.high{background:#c95b62}.range-marker.low{background:#d79a3d}
.range-ends{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem}
@media(max-width:580px){.review-actions{display:grid;grid-template-columns:1fr}.review-actions button{width:100%}}

/* v2.8: checkbox-controlled mobile chart/list face with in-panel controls. */
.chart-head-actions{display:flex;align-items:center;gap:12px}.panel-face-area{position:relative;min-width:0}.mobile-panel-toggle{display:none;align-items:center;padding:3px;border:1px solid #b9cbd5;border-radius:11px;background:rgba(237,243,246,.96);box-shadow:0 5px 16px rgba(21,36,58,.08)}.mobile-panel-toggle button{display:grid;place-items:center;width:38px;height:36px;padding:7px;border-radius:8px;background:transparent;color:var(--blue)}.mobile-panel-toggle button[aria-pressed="true"]{background:var(--blue);color:#fff}.mobile-panel-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.mobile-panel-toggle circle{fill:currentColor;stroke:none}.mobile-values-face{margin-top:10px}.panel-face-enter{animation:panelFaceEnter .22s ease-out}.desktop-values{min-width:0}@keyframes panelFaceEnter{from{opacity:.25;transform:translateX(10px)}to{opacity:1;transform:none}}
@media(max-width:850px){.result.mobile-switchable{display:block}.result.mobile-switchable .mobile-panel-toggle{display:flex;position:absolute;z-index:4;top:8px;right:0}.result.mobile-switchable .mobile-values-face{display:block;padding-top:56px}.result.mobile-switchable .details{margin-top:14px;padding-top:16px}.result.mobile-switchable .details .desktop-values{display:none}.result.mobile-switchable .chart-head-actions{align-items:flex-start}.result.mobile-switchable #edit{white-space:nowrap}}
@media(max-width:580px){.chart-head-actions{width:100%;justify-content:space-between}.result.mobile-switchable .section-head>div:first-child{width:100%}}
