
.meal-capture-live{display:grid;gap:18px}
.meal-live-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border:1px solid #242d3d;background:#090d13;border-radius:22px;padding:20px 22px}
.meal-live-head small,.meal-review-title small,.meal-result-head small{display:block;font-size:10px;letter-spacing:.14em;color:#7e8a9d;margin-bottom:7px}
.meal-live-head h3,.meal-result-head h3{font-size:24px;font-weight:500;letter-spacing:-.03em;margin:0 0 7px;color:#f1f4f8}
.meal-live-head p{margin:0;color:#939dad;line-height:1.7;max-width:720px;font-size:13px}
.meal-pipeline-badge{flex:0 0 auto;border:1px solid #333d4d;border-radius:999px;padding:7px 10px;font-size:9px;letter-spacing:.12em;color:#8993a4;background:#0c1017}
.meal-pipeline-badge.is-live{border-color:color-mix(in srgb,var(--app-accent) 55%,#333d4d);color:#eef4ff}
.meal-capture-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:18px}
.meal-camera-card,.meal-review-card,.meal-result-card{border:1px solid #242d3d;background:#090d13;border-radius:22px;padding:18px}
.meal-camera-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}
.meal-camera-toolbar small{display:block;font-size:9px;letter-spacing:.16em;color:#7e8a9d;margin-bottom:6px}
.meal-camera-toolbar h3{margin:0 0 5px;font-size:24px;font-weight:500;letter-spacing:-.03em;color:#f1f4f8}
.meal-camera-toolbar p{margin:0;font-size:11px;line-height:1.55;color:#7f8a9a}
.meal-camera-toolbar-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.meal-device-chip{border:1px solid #2e3949;border-radius:999px;padding:7px 9px;font-size:8px;letter-spacing:.12em;color:#a7b3c3;background:#0b1017}
.meal-photo-stage video{width:100%;height:100%;object-fit:contain;display:block;position:absolute;inset:0;z-index:2;background:#020305}
.meal-pipeline-note{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #202938;background:#080c12;border-radius:16px;padding:11px 14px}
.meal-pipeline-note span{font-size:8px;letter-spacing:.13em;color:#7e8b9e;white-space:nowrap}
.meal-pipeline-note p{margin:0;font-size:10px;line-height:1.55;color:#697588;text-align:right}

.meal-photo-stage{aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#05070a;border:1px solid #202938;position:relative;display:grid;place-items:center}
.meal-photo-stage [hidden]{display:none!important}
.meal-photo-stage:after{content:"";position:absolute;inset:12px;border:1px solid #ffffff18;border-radius:11px;pointer-events:none}
.meal-photo-stage img{width:100%;height:100%;object-fit:contain;display:block;position:absolute;inset:0;z-index:1;background:#020305}
.meal-photo-stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0;z-index:1;background:#020305}
.meal-vision-overlay{position:absolute;inset:0;z-index:3;pointer-events:none}
.meal-vision-object{position:absolute;appearance:none;border:1.5px solid rgba(214,226,244,.72);background:rgba(9,13,19,.04);border-radius:12px;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 0 18px rgba(154,184,228,.18);pointer-events:auto;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;padding:0}
.meal-vision-object:before{content:"";position:absolute;inset:-4px;border:1px solid transparent;border-radius:15px;transition:border-color .16s ease}
.meal-vision-object:hover,.meal-vision-object.is-selected{border-color:#f0c45a;background:rgba(240,196,90,.08);box-shadow:0 0 0 1px rgba(240,196,90,.28),0 0 24px rgba(240,196,90,.32);z-index:5}
.meal-vision-object.is-selected:before{border-color:rgba(240,196,90,.45)}
.meal-vision-object.state-query{border-style:dashed;border-color:rgba(240,196,90,.72)}
.meal-vision-object.state-heavy{border-color:rgba(121,153,255,.78);box-shadow:0 0 22px rgba(90,123,255,.24)}
.meal-vision-tag{position:absolute;left:-1px;top:-28px;display:flex;align-items:center;gap:7px;max-width:190px;white-space:nowrap;border:1px solid rgba(109,126,150,.5);border-radius:8px;background:rgba(6,9,14,.9);backdrop-filter:blur(9px);padding:5px 7px;color:#eef3f8;font-style:normal}
.meal-vision-tag b{overflow:hidden;text-overflow:ellipsis;font-size:10px;font-weight:500}
.meal-vision-tag small{font-size:9px;color:#aeb9c8;font-variant-numeric:tabular-nums}
.meal-vision-object>i{position:absolute;right:5px;bottom:5px;border-radius:6px;background:rgba(5,8,12,.82);padding:3px 5px;font-size:7px;letter-spacing:.09em;color:#9ca9ba;font-style:normal}
.meal-vision-object.is-selected>i{color:#f4d780}
.meal-vision-hud{position:absolute;z-index:4;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}
.meal-vision-hud span{border:1px solid rgba(96,112,136,.38);border-radius:999px;background:rgba(6,9,14,.78);backdrop-filter:blur(9px);padding:6px 8px;font-size:8px;letter-spacing:.12em;color:#b9c4d1}
.meal-vision-hud.is-heavy span:first-child{border-color:rgba(121,153,255,.5);color:#c9d5ff}
.meal-photo-empty{display:grid;justify-items:center;gap:8px;color:#8993a4}
.meal-photo-empty span{font-size:34px;color:var(--app-accent)}
.meal-photo-empty b{font-size:17px;font-weight:500;color:#dce3ec}
.meal-photo-empty small{font-size:11px}
.meal-hidden-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.meal-capture-actions,.meal-confirm-row,.meal-result-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.meal-time-row,.meal-weight-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:13px;border-top:1px solid #1e2633;padding-top:13px}
.meal-time-row span,.meal-weight-row b{font-size:11px;font-weight:500;color:#cbd3de}
.meal-time-row input,.meal-weight-row input,.meal-label-input{border:1px solid #2a3443;background:#070a0f;color:#e7edf6;border-radius:10px;padding:9px 10px;font:inherit;outline:none}
.meal-time-row input:focus,.meal-weight-row input:focus,.meal-label-input:focus{border-color:color-mix(in srgb,var(--app-accent) 70%,#2a3443)}
.meal-state{font-size:11px;line-height:1.6;color:#7f8b9c;margin:12px 0 0}
.meal-state a{color:#dce8ff}
.meal-error{margin-top:10px;border:1px solid #693747;background:#241017;color:#ffd7e1;border-radius:12px;padding:10px 12px;font-size:11px;line-height:1.55}
.meal-review-card{min-height:100%;display:flex;flex-direction:column}
.meal-review-empty{margin:auto;padding:36px 18px;text-align:center}
.meal-review-empty small{font-size:10px;letter-spacing:.14em;color:#6f7c8f}
.meal-review-empty b{display:block;font-size:20px;font-weight:500;color:#dbe2eb;margin:10px 0 6px}
.meal-review-empty p{font-size:12px;line-height:1.7;color:#7e8998;max-width:430px;margin:0 auto}
.meal-review-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.meal-review-title h4{font-size:24px;font-weight:500;letter-spacing:-.03em;margin:0;color:#f0f4f8}
.meal-review-title>span{border:1px solid #303949;border-radius:999px;padding:6px 8px;color:#a8b4c3;font-size:9px;letter-spacing:.1em}
.meal-vision-summary{display:flex;gap:6px;flex-wrap:wrap;margin:-3px 0 10px}
.meal-vision-summary span{border:1px solid #273140;border-radius:999px;padding:5px 7px;font-size:8px;letter-spacing:.1em;color:#7f8da0;background:#080b10}
.meal-selected-inspector{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #2c3544;background:linear-gradient(135deg,#0b1017,#080b10);border-radius:14px;padding:11px 12px;margin-bottom:10px}
.meal-selected-inspector.is-empty{grid-template-columns:1fr}
.meal-selected-inspector span{display:block;font-size:8px;letter-spacing:.12em;color:#d1ad55;margin-bottom:4px}
.meal-selected-inspector b{display:block;font-size:13px;font-weight:500;color:#e8edf4}
.meal-selected-inspector>small{font-size:9px;color:#758296;line-height:1.55}
.meal-inspector-metrics{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.meal-inspector-metrics small{display:grid;gap:2px;border-left:1px solid #273140;padding-left:8px;font-size:7px;letter-spacing:.08em;color:#667286}
.meal-inspector-metrics strong{font-size:9px;font-weight:500;color:#cbd5e1;letter-spacing:0}
.meal-item-list{display:grid;gap:7px}
.meal-item{border:1px solid #202938;background:#070a0f;border-radius:13px;padding:10px 11px;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.meal-item:hover,.meal-item.is-selected{border-color:rgba(240,196,90,.6);background:#0b0d10;box-shadow:inset 2px 0 0 #f0c45a}
.meal-item.state-query:not(.is-selected){border-style:dashed}
.meal-item.state-heavy:not(.is-selected){border-color:#29365d}
.meal-item-main{display:grid;grid-template-columns:27px 1fr auto;gap:8px;align-items:center}
.meal-item-main em{font-size:7px;letter-spacing:.1em;color:#788599;font-style:normal;border:1px solid #283241;border-radius:999px;padding:4px 6px}
.meal-item.state-query .meal-item-main em{color:#e7c96f;border-color:#574d30}
.meal-item.state-heavy .meal-item-main em{color:#afc0ff;border-color:#334273}
.meal-item-main>span{font-size:10px;color:#647084}
.meal-label-input{width:100%;padding:7px 8px;font-size:13px}
.meal-item-meta{display:flex;gap:10px;flex-wrap:wrap;padding:7px 0 0 35px}
.meal-item-meta small{font-size:9px;color:#6f7a8a}
.meal-nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.meal-nutrition-grid>div{border:1px solid #202938;border-radius:12px;background:#070a0f;padding:10px}
.meal-nutrition-grid small{display:block;color:#667286;font-size:8px;letter-spacing:.1em;margin-bottom:5px}
.meal-nutrition-grid b{font-size:12px;font-weight:500;color:#d8e0ea}
.meal-weight-row small{display:block;color:#697588;font-size:9px;margin-top:3px}
.meal-weight-row input{width:130px}
.meal-review-note,.meal-boundary,.meal-disclaimer{font-size:10px;line-height:1.65;color:#697588;margin:11px 0 0}
.meal-result-card{display:grid;gap:14px}
.meal-result-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.meal-result-head>span{font-size:9px;color:#647084;max-width:45%;word-break:break-all;text-align:right}
.meal-outcome-head{display:flex;justify-content:space-between;border-top:1px solid #202938;padding-top:14px}
.meal-outcome-head span{font-size:9px;letter-spacing:.12em;color:#7b8798}
.meal-outcome-head b{font-size:10px;font-weight:500;color:#dbe4ee}
.meal-outcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.meal-outcome-grid article{border:1px solid #202938;border-radius:13px;background:#070a0f;padding:12px}
.meal-outcome-grid small{display:block;font-size:8px;letter-spacing:.11em;color:#687487;margin-bottom:7px}
.meal-outcome-grid strong{display:block;font-size:16px;font-weight:500;color:#eef3f9;margin-bottom:4px}
.meal-outcome-grid span{font-size:9px;color:#667286}
.meal-empty-copy{font-size:12px;line-height:1.7;color:#8a96a7;margin:0}
@media(max-width:900px){
  .meal-live-head{display:grid}
  .meal-pipeline-badge{justify-self:start}
  .meal-capture-grid{grid-template-columns:1fr}
  .meal-camera-toolbar{display:grid}
  .meal-camera-toolbar-meta{justify-content:flex-start}
  .meal-pipeline-note{display:grid}
  .meal-pipeline-note p{text-align:left}
  .meal-nutrition-grid{grid-template-columns:repeat(2,1fr)}
  .meal-outcome-grid{grid-template-columns:1fr}
  .meal-time-row,.meal-weight-row{align-items:flex-start;flex-direction:column}
  .meal-time-row input,.meal-weight-row input{width:100%;box-sizing:border-box}
  .meal-selected-inspector{grid-template-columns:1fr}
  .meal-inspector-metrics{justify-content:flex-start}
  .meal-vision-tag{top:4px;left:4px;max-width:150px}
  .meal-capture-actions .btn{min-height:44px}
  .meal-camera-toolbar h3{font-size:22px}
  .meal-photo-stage{aspect-ratio:1/1}
}
/* Vision V2 official contour overlay */
.meal-vision-object.has-contour{border-color:transparent;background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.meal-vision-object.has-contour:before{display:none}
.meal-vision-contour{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.meal-vision-contour polygon{fill:rgba(255,107,126,.06);stroke:var(--vision-line,#ff6b7e);stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.meal-vision-object.has-contour:hover .meal-vision-contour polygon,.meal-vision-object.has-contour.is-selected .meal-vision-contour polygon{stroke:#f0c45a;stroke-width:3;fill:rgba(240,196,90,.10)}
.meal-vision-object.has-contour.state-query .meal-vision-contour polygon{stroke-dasharray:5 4}
.meal-vision-hud.has-sam span:first-child{border-color:rgba(255,107,126,.55);color:#ffd9df}


/* 2026-10-06 component contour cleanup */
.meal-vision-object.has-contour{
  border-color:transparent!important;
  box-shadow:none!important;
  background:transparent!important;
}
.meal-vision-object.has-contour:before{display:none!important}
.meal-vision-object.has-contour:hover,
.meal-vision-object.has-contour.is-selected{
  border-color:transparent!important;
  box-shadow:none!important;
  background:transparent!important;
}
.meal-vision-object>i{display:none!important}
.meal-vision-contour polygon{
  fill:rgba(255,107,126,.025);
  stroke-width:1.8;
}
.meal-vision-object.has-contour:hover .meal-vision-contour polygon,
.meal-vision-object.has-contour.is-selected .meal-vision-contour polygon{
  stroke-width:2.4;
  fill:rgba(240,196,90,.055);
}

/* BIOTWIN_MOBILE_CAPTURE_FIT_20261011 */
@media(max-width:760px){
 #content{grid-template-columns:minmax(0,1fr)}
 #mealCaptureMount{min-width:0;width:100%;max-width:100%}
 #mealCaptureLive,.meal-capture-grid,.meal-camera-card,.meal-review-card{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
 .meal-capture-grid{grid-template-columns:minmax(0,1fr)}
 .meal-camera-toolbar,.meal-camera-toolbar-meta,.meal-selected-inspector,.meal-item-main{min-width:0;max-width:100%}
 .meal-camera-toolbar>*,.meal-camera-toolbar-meta>*{min-width:0}
 .meal-time-row input{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
 .meal-item-main{grid-template-columns:27px minmax(0,1fr) auto}
}

@media(max-width:760px){#mealCaptureLive{grid-template-columns:minmax(0,1fr)}}

@media(max-width:760px){.meal-pipeline-note{min-width:0;max-width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr)}.meal-pipeline-note>*{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}}

/* CAPTURE_INTRINSIC_FIT_ALL_VIEWPORTS_20261011 */
#content{grid-template-columns:minmax(0,1fr)}
#mealCaptureMount{min-width:0;max-width:100%}
#mealCaptureLive{min-width:0;grid-template-columns:minmax(0,1fr)}
.meal-pipeline-note{min-width:0;max-width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr)}
.meal-pipeline-note>*{min-width:0;max-width:100%;white-space:normal!important;overflow-wrap:anywhere}
