
#aivi-wrap{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;max-width:980px;margin:auto;border:1px solid #e5e7eb;border-radius:12px;padding:16px;background:#fff}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:10px 0}
.row.two>*{flex:1 1 320px}
.checkbox{display:flex;align-items:center;gap:8px}
.pill{border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;padding:6px 12px;cursor:pointer}
.pill.active{background:#eef2ff}
.primary{background:#4f46e5;color:#fff;border:1px solid #4f46e5}
.status{margin-left:10px;color:#475569}
.spacer{flex:1}
#aivi-cv-wrap{position:relative;width:100%;border:1px dashed #d1d5db;border-radius:12px;overflow:hidden;min-height:0;background:#ffffff}
#aivi-base-c,#aivi-wall-c,#aivi-mask-c{position:absolute;top:0;left:0;display:block;width:100%;height:100%}
#aivi-base-c{z-index:0}
#aivi-mask-c{z-index:5}
#aivi-wall-c{z-index:10;pointer-events:none;opacity:.72;mix-blend-mode:multiply}
.adv summary{cursor:pointer;font-weight:600;color:#334155}
#aivi-debug{display:none;background:#0b1020;color:#c7d2fe;padding:10px;border-radius:8px;max-height:220px;overflow:auto;font-size:12px;margin-top:8px}

#aivi-shape-c{position:absolute;top:0;left:0;display:block;width:100%;height:100%;z-index:15;pointer-events:none}
.aivi-help{margin:8px 0 0;color:#475569;font-size:13px;line-height:1.45}


.tool-row{align-items:flex-end}
.aivi-switch{display:inline-flex;align-items:center;border:1px solid #cbd5e1;border-radius:999px;padding:2px;background:#f8fafc;gap:2px}
.aivi-switch .pill{border:0;background:transparent;margin:0}
.aivi-switch .pill.active{background:#e0e7ff;box-shadow:0 0 0 1px rgba(99,102,241,.15) inset}

.pill:disabled{opacity:.55;cursor:not-allowed;}

.aivi-field{display:flex;flex-direction:column;gap:6px;min-width:220px;}
.aivi-upload-field{min-width:320px;}
.aivi-ai-row{align-items:flex-end;}
.aivi-ai-notes-field{flex:1 1 420px;}

.aivi-ai-row{align-items:flex-start;}
.aivi-ai-notes-field textarea, .aivi-ai-notes-field select, .aivi-field select, .aivi-field input[type="file"]{max-width:100%;}
#aivi-ai-notes{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;min-height:110px;resize:vertical;line-height:1.4;}
.aivi-preset-row{margin-top:0;align-items:flex-end;}
.aivi-preset-field{flex:1 1 280px;min-width:240px;}


#aivi-wrap{display:flex;flex-direction:column;}
.adv{order:99;margin-top:12px;}
.tool-row label{display:flex;flex-direction:column;gap:6px;}

.aivi-inline-slider{display:flex;align-items:center;gap:10px;min-width:260px;}
.aivi-inline-slider>span{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;}
.aivi-inline-slider input[type="range"]{flex:1 1 180px;}
.aivi-brush-inline{min-width:300px;}
.aivi-scale-inline{min-width:300px;}
.aivi-bias-field{min-width:180px;}
.aivi-realism-field{min-width:220px;}

.aivi-speed-field{min-width:170px;}


/* 1.9.54 AI options layout */
.aivi-ai-options{margin-top:10px;width:100%}
.aivi-ai-options-row{display:flex;flex-wrap:wrap;gap:12px}
.aivi-ai-options .aivi-field{flex:1 1 220px}


/* 1.9.54 UI cleanup */
.aivi-advanced-actions{margin-bottom:10px}
.aivi-download-row{margin-top:12px}


/* 1.9.54 AI layout + download order fix */
.aivi-ai-button-row{justify-content:flex-start}
.aivi-ai-fields-row{justify-content:flex-start}
.aivi-ai-fields-row .aivi-ai-notes-field{
  flex:0 1 720px;
  min-width:320px;
  align-items:flex-start;
  text-align:left;
}
.aivi-ai-notes-field label,
.aivi-preset-field,
#aivi-ai-opts summary{
  text-align:left;
}
.aivi-preset-row,
.aivi-ai-options-row{
  justify-content:flex-start;
  align-items:flex-start;
}
.aivi-preset-row .aivi-preset-field{
  flex:0 1 420px;
}
#aivi-ai-opts{
  width:100%;
}
.aivi-download-row{
  order:100;
  justify-content:flex-start;
  margin-top:12px;
}
#aivi-adv{
  order:99;
}


/* 1.9.54 UI changes */
.aivi-advanced-actions{display:flex;flex-wrap:wrap;gap:8px}


/* 1.9.54 vegetation opacity control */
.aivi-veg-opacity-inline{min-width:320px}


/* 1.9.54 reference + opacity inline */
.aivi-ref-opacity-row{
  align-items:flex-end;
  justify-content:flex-start;
  gap:12px;
}
.aivi-ref-field{
  flex:0 1 260px;
  min-width:220px;
}
.aivi-veg-opacity-inline{
  flex:0 1 320px;
  min-width:280px;
  margin-top:0;
}


/* 1.9.54 simplified UI */
.tool-row{justify-content:flex-start}


/* 1.9.54 clean loader/layout */
.aivi-ref-opacity-row{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:flex-start;
  gap:12px;
}
.aivi-ref-field{
  flex:0 1 260px;
  min-width:220px;
}
.aivi-veg-opacity-inline{
  flex:0 1 300px;
  min-width:260px;
  margin-left:0;
}
#aivi-cv-wrap{
  position:relative;
  width:100%;
}
#aivi-cv-wrap canvas{
  display:block;
}


/* 1.9.54 status under image */
.aivi-status-row{
  display:flex;
  justify-content:flex-start;
  margin-top:10px;
  margin-bottom:8px;
}
.aivi-status-row .status{
  margin-left:0;
}


/* 1.9.64 advanced no-AI tiling + controls layout */
.aivi-bottom-controls{display:flex;gap:10px;align-items:center;justify-content:flex-start;margin-top:0;margin-bottom:4px}
.aivi-status-row{display:flex;justify-content:flex-start;margin-top:10px;margin-bottom:8px;min-height:24px}
.aivi-status-row .status{margin-left:0;display:inline-block;min-height:18px}
.aivi-download-row{display:flex}

#aivi-adv .row label{display:flex;flex-direction:column;gap:6px;min-width:140px}


/* 1.9.74 stability rollback UI fixes */
#aivi-adv .row label[for="aivi-slope"],
#aivi-adv .row label[for="aivi-rot"]{display:none;}
#aivi-slope, #aivi-rot, #aivi-slope-r, #aivi-rot-r{display:none !important;}
#aivi-adv .row label:has(#aivi-slope),
#aivi-adv .row label:has(#aivi-rot){display:none !important;}
#aivi-adv .aivi-brush-inline{min-width:220px !important; width:220px !important; align-items:flex-start !important;}
#aivi-adv .aivi-brush-inline > span{white-space:normal !important; line-height:1.2;}
#aivi-adv .aivi-brush-inline input[type="range"]{width:100% !important; min-width:0 !important; flex:1 1 auto !important;}
#aivi-adv .row{align-items:flex-start;}

/* 1.9.77 UI fixes */
#aivi-adv .row{align-items:flex-end}
#aivi-adv .aivi-inline-slider.aivi-brush-inline{display:flex;flex-direction:column;align-items:flex-start;min-width:200px;width:200px}
#aivi-adv .aivi-inline-slider.aivi-brush-inline input[type=range]{width:100%;min-width:0;flex:none}
#aivi-adv label:has(#aivi-slope), #aivi-adv label:has(#aivi-rot){display:none !important}


.aivi-mask-actions-row,.aivi-scale-opacity-row,.aivi-no-ai-row{justify-content:flex-start}
.aivi-scale-opacity-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.aivi-scale-opacity-row .aivi-scale-inline,.aivi-scale-opacity-row .aivi-veg-opacity-inline{flex:0 1 320px;min-width:280px;margin-top:0}
.aivi-hidden-no-ai,.aivi-hidden-advanced,.aivi-hidden-advanced-panel{display:none !important}
.aivi-bottom-controls{display:flex !important;justify-content:flex-start;margin-top:12px}


.aivi-scale-row{justify-content:flex-start}
.aivi-scale-row .aivi-scale-inline{flex:0 1 420px;min-width:320px;margin-top:0}
.aivi-ai-button-row{align-items:flex-end;gap:12px;justify-content:flex-start}
.aivi-veg-opacity-beside-button{flex:0 1 320px;min-width:280px;margin-top:0}
.aivi-edit-tools-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start}
.aivi-download-row{display:flex;justify-content:flex-start;margin-top:8px}
.aivi-hidden-prompt-controls,.aivi-hidden-no-ai{display:none!important}

/* 1.9.95 AI-first layout cleanup */
.aivi-main-controls-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:12px}
.aivi-main-controls-row .aivi-scale-inline{flex:0 1 360px;min-width:280px}
.aivi-main-controls-row .aivi-ai-button-row{margin:0;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.aivi-preset-row{display:flex;justify-content:flex-start;align-items:flex-end;gap:12px}
.aivi-preset-row .aivi-preset-field{flex:0 1 420px;min-width:280px}
#aivi-ai-opts{margin-top:6px;width:100%}
.aivi-ai-fields-row{justify-content:flex-start}

.aivi-ai-fields-row.aivi-hidden-prompt-controls{display:none !important}

#aivi-shape-c{pointer-events:none !important}
#aivi-mask-c{pointer-events:auto !important}

.aivi-scale-row,.aivi-preset-row,.aivi-ai-button-row,.aivi-ai-options,.aivi-bottom-controls,.aivi-download-row{width:100%;}

/* 2.0.11 UI cleanup: show clear drawn area, keep shape recovery tools hidden */
#aivi-shape-close,
#aivi-shape-undo{display:none !important;}


/* 2.0.08 payload height follow image */
#aivi-cv-wrap{padding:0;line-height:0;}
#aivi-cv-wrap::before,#aivi-cv-wrap::after{display:none !important;content:none !important;}


/* 2.0.09 activity indicator */
.aivi-status-row{align-items:center;gap:10px;}
.aivi-spinner{
  width:14px;
  height:14px;
  border:2px solid #cbd5e1;
  border-top-color:#4f46e5;
  border-radius:50%;
  display:inline-block;
  opacity:0;
  transform:scale(0.85);
  transition:opacity .15s ease, transform .15s ease;
  pointer-events:none;
  flex:0 0 14px;
}
.aivi-spinner.is-active{
  opacity:1;
  transform:scale(1);
  animation:aivi-spin .8s linear infinite;
}
@keyframes aivi-spin{from{transform:rotate(0deg) scale(1);}to{transform:rotate(360deg) scale(1);}}

/* 2.0.16 gated vegetation result */
#aivi-cv-wrap.aivi-result-hidden{display:none!important}
.aivi-result-gate[hidden]{display:none!important}
.aivi-result-gate{width:100%;margin:0 0 14px}
.aivi-gate-card{border:1px solid #d9e2dc;border-radius:12px;padding:22px;background:#fff;line-height:1.45}
.aivi-gate-card h3{margin:0 0 6px;font-size:24px;color:#1f2937}
.aivi-gate-card>p{margin:0 0 18px;color:#475569}
.aivi-gate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.aivi-gate-form{border:1px solid #e5e7eb;border-radius:10px;padding:18px;background:#fafcfb}
.aivi-gate-form h4{margin:0 0 14px;font-size:18px;color:#1f2937}
.aivi-gate-form label:not(.aivi-remember){display:flex;flex-direction:column;gap:6px;margin:0 0 12px;font-weight:500;color:#29333d}
.aivi-gate-form input[type=text],.aivi-gate-form input[type=email],.aivi-gate-form input[type=password]{width:100%;box-sizing:border-box;border:1px solid #b9c4bd;border-radius:8px;padding:10px 12px;background:#fff;font:inherit}
.aivi-gate-form input:focus{outline:2px solid rgba(22,119,51,.18);border-color:#167733}
.aivi-remember{display:flex;align-items:center;gap:7px;margin:2px 0 12px;font-weight:400}
.aivi-gate-form .primary{background:#167733;border-color:#167733}
.aivi-lost-password{display:block;margin-top:10px;color:#167733}
.aivi-gate-message{min-height:18px;margin-top:10px;font-size:13px;color:#167733}
.aivi-gate-message.is-error{color:#b42318}
.aivi-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:720px){.aivi-gate-grid{grid-template-columns:1fr}.aivi-gate-card{padding:16px}.aivi-gate-form{padding:15px}}


/* 2.0.17.9 Flex MSE Vegetation Selector visual alignment */
#aivi-wrap{
  --aivi-green:#167733;
  --aivi-green-dark:#105b27;
  --aivi-ink:#1e2922;
  --aivi-muted:#647067;
  --aivi-line:#dbe3dc;
  --aivi-soft:#f4f8f5;
  font-family:inherit;
  color:var(--aivi-ink);
  max-width:980px;
  margin:24px auto;
  padding:clamp(22px,4vw,40px);
  border:1px solid var(--aivi-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 34px rgba(20,50,30,.07);
  box-sizing:border-box;
}
#aivi-wrap *{box-sizing:border-box}
#aivi-wrap .row{gap:12px;margin:14px 0}
#aivi-wrap .aivi-field,
#aivi-wrap .tool-row label{color:var(--aivi-ink);font-weight:700}
#aivi-wrap .aivi-help{color:var(--aivi-muted);font-size:13px;line-height:1.5}

/* Fields */
#aivi-wrap select,
#aivi-wrap input[type="text"],
#aivi-wrap input[type="email"],
#aivi-wrap input[type="password"],
#aivi-wrap textarea{
  width:100%;
  min-height:48px;
  border:1px solid #aebbb1;
  border-radius:9px;
  padding:10px 14px;
  background:#fff;
  color:var(--aivi-ink);
  font:inherit;
  font-weight:400;
  box-shadow:none;
}
#aivi-wrap select{min-height:52px;padding-right:42px}
#aivi-wrap textarea{min-height:110px;line-height:1.5}
#aivi-wrap input[type="file"]{
  width:100%;
  min-height:52px;
  border:1px solid #aebbb1;
  border-radius:9px;
  background:#fff;
  color:var(--aivi-muted);
  padding:5px;
  font:inherit;
  font-weight:400;
}
#aivi-wrap input[type="file"]::file-selector-button{
  min-height:40px;
  margin-right:12px;
  padding:8px 14px;
  border:0;
  border-radius:7px;
  background:var(--aivi-soft);
  color:var(--aivi-green);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
#aivi-wrap select:focus,
#aivi-wrap input:focus,
#aivi-wrap textarea:focus,
#aivi-wrap button:focus,
#aivi-wrap a:focus{
  outline:3px solid rgba(22,119,51,.20);
  outline-offset:2px;
  border-color:#83ae8d;
}
#aivi-wrap input[type="range"]{accent-color:var(--aivi-green)}

/* Main canvas / image area */
#aivi-wrap #aivi-cv-wrap{
  border:1px solid var(--aivi-line);
  border-radius:12px;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
}
#aivi-wrap .aivi-status-row{
  margin-top:12px;
  padding:10px 12px;
  border-radius:9px;
  background:var(--aivi-soft);
  color:var(--aivi-muted);
  min-height:40px;
}
#aivi-wrap .status{color:var(--aivi-muted);margin-left:0}
#aivi-wrap .aivi-spinner{border-color:#bfd1c3;border-top-color:var(--aivi-green)}

/* Buttons: match Vegetation Selector */
#aivi-wrap .pill,
#aivi-wrap button.pill{
  appearance:none;
  display:inline-flex;
  min-height:45px;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  border-radius:8px;
  border:2px solid var(--aivi-green);
  background:#fff;
  color:var(--aivi-green);
  font:inherit;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
#aivi-wrap .pill:hover,
#aivi-wrap button.pill:hover{
  background:#f1f7f3;
  border-color:var(--aivi-green-dark);
  color:var(--aivi-green-dark);
  transform:translateY(-1px);
}
#aivi-wrap .pill.primary,
#aivi-wrap button.pill.primary,
#aivi-wrap #aivi-composite-ai,
#aivi-wrap #aivi-download{
  background:var(--aivi-green);
  border-color:var(--aivi-green);
  color:#fff;
}
#aivi-wrap .pill.primary:hover,
#aivi-wrap button.pill.primary:hover,
#aivi-wrap #aivi-composite-ai:hover,
#aivi-wrap #aivi-download:hover{
  background:var(--aivi-green-dark);
  border-color:var(--aivi-green-dark);
  color:#fff;
}
#aivi-wrap .pill:disabled,
#aivi-wrap button.pill:disabled{
  opacity:.48;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

/* Segmented/switch controls retain pill geometry */
#aivi-wrap .aivi-switch{
  border:1px solid var(--aivi-line);
  border-radius:999px;
  padding:3px;
  background:var(--aivi-soft);
  gap:2px;
}
#aivi-wrap .aivi-switch .pill{
  min-height:32px;
  padding:7px 10px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#667269;
  font-size:12px;
}
#aivi-wrap .aivi-switch .pill.active{
  background:var(--aivi-green);
  color:#fff;
  box-shadow:0 1px 4px rgba(20,50,30,.14);
}

/* Advanced / subordinate controls */
#aivi-wrap .adv,
#aivi-wrap #aivi-ai-opts{
  border-top:1px solid var(--aivi-line);
  padding-top:14px;
}
#aivi-wrap .adv summary,
#aivi-wrap #aivi-ai-opts summary{
  color:var(--aivi-green);
  font-weight:700;
}

/* Result gate aligned with Selector gate cards */
#aivi-wrap .aivi-result-gate{margin:0 0 18px}
#aivi-wrap .aivi-gate-card{
  border:1px solid var(--aivi-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 34px rgba(20,50,30,.07);
  padding:clamp(22px,4vw,40px);
  color:var(--aivi-ink);
}
#aivi-wrap .aivi-gate-card h3{color:var(--aivi-ink);font-size:clamp(22px,3vw,30px);line-height:1.2}
#aivi-wrap .aivi-gate-card>p{color:var(--aivi-muted);font-size:16px;line-height:1.55}
#aivi-wrap .aivi-gate-form{
  border:1px solid var(--aivi-line);
  border-radius:14px;
  padding:22px;
  background:var(--aivi-soft);
}
#aivi-wrap .aivi-gate-form h4{color:var(--aivi-ink);font-size:19px}
#aivi-wrap .aivi-lost-password{color:var(--aivi-green);font-weight:600}
#aivi-wrap .aivi-gate-message{color:var(--aivi-green)}

@media(max-width:700px){
  #aivi-wrap{border-radius:12px;padding:20px}
  #aivi-wrap .aivi-field,#aivi-wrap .aivi-upload-field,#aivi-wrap .aivi-preset-field{min-width:100%;width:100%}
  #aivi-wrap .aivi-inline-slider{min-width:100%;width:100%}
  #aivi-wrap .pill,#aivi-wrap button.pill{width:100%}
  #aivi-wrap .aivi-switch .pill{width:auto}
}
