/* HERBINO-VISION-001 — restrained Botanical Atlas, consistent with existing BIT variables. */
.vision-shell { padding-top:50px; padding-bottom:88px; }
.vision-heading { display:flex; justify-content:space-between; align-items:center; gap:32px; padding-bottom:25px; border-bottom:1px solid var(--line); }
.vision-heading h1 { font:600 clamp(33px,4.2vw,57px)/1.13 var(--serif); letter-spacing:-.03em; margin:0 0 14px; color:var(--ink); }
.vision-lead { font-size:16px;line-height:1.65;max-width:66ch;color:var(--muted);margin:0 0 8px; }
.vision-stamp { flex-shrink:0; padding:17px 15px; border:1px double var(--line); border-radius:50%; letter-spacing:.1em; font-size:10px;color:var(--gold); transform:rotate(-9deg); text-align:center;max-width:130px; }
.vision-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:22px; margin:28px 0 22px; }
.vision-paper { background:var(--card); border:1px solid var(--line); border-radius:6px; padding:clamp(20px,3vw,31px); box-shadow:0 3px 18px rgba(44,60,28,.045); }
.vision-paper h2 { font:600 29px/1.2 var(--serif);margin:0 0 11px;letter-spacing:-.015em; }
.vision-paper .eyebrow { margin-bottom:12px; }
.vision-small { font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 19px; }
.vision-paper label:not(.vision-consent) { display:block;margin:18px 0 8px;font-size:13px;font-weight:650;color:var(--ink); }
.vision-paper input[type=file],.vision-paper select { width:100%;max-width:100%;border:1px solid var(--line);background:#fffaf0;color:var(--ink);padding:12px;border-radius:4px;min-height:46px; }
.vision-paper input[type=file] { font-size:13px;line-height:1.4; }
.vision-preview { margin:17px 0 24px;display:flex;align-items:center;justify-content:center;min-height:190px;border:1px dashed var(--line);background:linear-gradient(145deg,#f1e9d7,#faf4e8);border-radius:4px;overflow:hidden; }
.vision-preview p { font-size:13px; color:var(--muted);text-align:center;padding:14px; }
.vision-preview img {width:100%;height:330px;object-fit:contain; }
.vision-consent { display:flex;align-items:start;gap:11px;margin:20px 0 16px;font-size:12px;line-height:1.65;color:var(--muted); }
.vision-consent input { flex-shrink:0; width:19px;height:19px;accent-color:var(--forest);margin:2px 0 0; }
.vision-submit { width:100%;font-weight:650; }
.vision-message { min-height:22px;line-height:1.5;font-size:13px;color:var(--ink);margin:16px 0 0; }
.vision-message.error, .vision-error {color:var(--error); }
.vision-empty { padding:22px;border:1px dashed var(--line);background:#f6eedf;color:var(--muted);font-size:13px;line-height:1.6; }
.vision-candidate { display:flex;gap:12px;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line); }
.vision-candidate h3 {font:600 19px/1.25 var(--serif);margin:0 0 3px;}
.vision-candidate em {font-size:12px;color:var(--muted);}
.vision-candidate p {margin:6px 0 0;font-size:11px;color:var(--muted);}
.vision-candidate button {flex-shrink:0;min-height:37px;padding:8px 11px;font-size:12px;}
.vision-manual {margin-top:25px;border-top:1px solid var(--line);padding-top:15px;}
.vision-manual h3 {font:600 20px/1.25 var(--serif);margin:0 0 9px;}
.vision-search {display:flex;gap:10px;margin:10px 0 16px;}
.vision-search input {min-width:0;flex:1;}
.vision-search button {padding:11px 14px;min-height:46px;flex-shrink:0;}
.vision-advanced {margin-top:26px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:13px;line-height:1.6;}
.vision-advanced summary { cursor:pointer;color:var(--ink);font-weight:600; }
#visionGardenAdd {border-top:1px solid var(--line);padding-top:12px;margin-top:23px;}
#visionGardenAdd button {margin-top:12px;}
#visionGardenStatus {font-size:13px;}
.vision-gallery-head {display:flex;align-items:flex-start;justify-content:space-between;gap:18px;}
.vision-gallery-head #visionLimit {font-size:12px;color:var(--muted);text-align:right;max-width:240px;line-height:1.5;}
.vision-photos {display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:13px;}
.vision-photo {border:1px solid var(--line);border-radius:5px;padding:10px;background:#f9f1e1;}
.vision-photo img {border-radius:3px;aspect-ratio:4/3;object-fit:cover;width:100%;margin-bottom:10px;background:#e5dfce;}
.vision-photo p {font-size:12px;margin:4px 0 9px;overflow-wrap:break-word;}
.vision-photo .vision-photo-controls {display:flex;align-items:center;justify-content:space-between;gap:8px;}
.vision-photo button {border:0;background:none;padding:6px 0;font-size:12px;text-decoration:underline;color:var(--forest);}
.vision-photo button:last-child {color:var(--error);}
.vision-credits {margin-top:24px;font-size:11px;}
@media (max-width:860px) {
  .vision-shell { padding-top:30px; padding-bottom:54px; }
  .vision-layout {grid-template-columns:1fr;}
  .vision-heading {align-items:start;}
  .vision-stamp {display:none;}
}
@media (max-width:540px) {
  .vision-paper {padding:18px;}
  .vision-photos {grid-template-columns:repeat(2,minmax(0,1fr));}
  .vision-candidate {align-items:start;}
  .vision-candidate button {min-height:34px;}
  .vision-preview img {height:250px;}
  .vision-gallery-head {flex-direction:column;}
  .vision-gallery-head #visionLimit {text-align:left;}
}

/* Vision 002: automatic compression, quality selection and storage upgrade */
.vision-auto-note{margin:8px 0 0!important;font-size:12px;}
.vision-upgrade{margin-top:27px;border:1px solid var(--line);background:#f9f2e4;border-radius:5px;padding:17px 20px;line-height:1.55;color:var(--muted);font-size:13px;}
.vision-upgrade summary{cursor:pointer;color:var(--ink);font-size:14px;font-weight:650;}
.vision-upgrade p{margin:13px 0 0;}
.vision-upgrade strong{color:var(--ink);}
.vision-paper select#visionQuality{font-weight:550;background:#fffaf0;}

.vision-compression-result{margin-top:12px!important;min-height:16px;color:var(--forest);}
