/* images module: the guided photo flow and the Persona library. Every rule is under .m-images (or a .m-img- dialog). */
.m-images{max-width:1100px}
.m-images .m-img-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.m-images .s-hero h1{overflow-wrap:anywhere}
.m-images .m-img-pic{width:64px;height:64px;flex:none;color:var(--green);display:block}
.m-images img.m-img-pic{object-fit:contain;border-radius:8px;background:#F3F5F2}
.m-images .m-img-swatch{display:block;width:100%;aspect-ratio:4/3;border-radius:10px;border:1px solid var(--line)}
.m-images .m-img-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.m-images .m-img-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.m-images .m-img-list li span{display:block;color:var(--mut);font-size:15px}
.m-images .m-img-chosen:focus{outline:none}

/* step 3: the named fields */
.m-images .m-img-field{padding:18px 0;border-top:1px solid var(--line)}
.m-images .m-img-field:first-child{border-top:0;padding-top:4px}
.m-images .m-img-fhead{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}
.m-images .m-img-fhead h3{margin:0 0 4px;font-size:20px;font-weight:800;color:var(--ink)}
.m-images .m-img-fhead .s-chip{margin-top:6px}
.m-images .m-img-filled{display:flex;gap:16px;align-items:center;text-align:left;flex-wrap:wrap}
.m-images .m-img-filled img{width:140px;height:140px;object-fit:contain;border-radius:10px;background:#F3F5F2;border:1px solid var(--line)}
.m-images .m-img-filled b{display:block;overflow-wrap:anywhere}
.m-images .m-img-filled>div{flex:1;min-width:200px}
.m-images .m-img-filled .s-warnline{display:block;margin:6px 0 0;font-size:15px}
.m-images .m-img-msg{margin:8px 0 0;font-size:16px;min-height:1.5em;color:var(--mut)}
.m-images .m-img-msg.bad{color:var(--bad);font-weight:700}
.m-images .m-img-sep{margin-top:22px;padding-top:18px;border-top:2px solid var(--line)}
.m-images .m-img-other{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.m-images .m-img-other img{width:80px;height:80px;object-fit:contain;border-radius:8px;background:#F3F5F2}
.m-images .m-img-other label{display:flex;gap:8px;align-items:center;font-weight:700}
.m-images .m-img-other select{width:auto;min-width:180px}

/* step 4 */
.m-images .m-img-measures{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:18px;margin-bottom:14px}
.m-images .m-img-measure>label{display:block;font-size:17px;font-weight:800;margin-bottom:6px}
.m-images .m-img-ro{margin:0;font-size:18px}
.m-images .m-img-num{display:flex;align-items:center;gap:8px}
.m-images .m-img-num input{max-width:160px;font-size:20px}
.m-images .m-img-num span{font-weight:700}

/* cards of closed choices: a picture and an Italian caption (spec 23 §6.7) */
.m-images .m-img-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:12px;margin-top:12px}
.m-images .m-img-cards.small{grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr))}
.m-images .m-img-choice,.m-images .m-img-card{align-items:flex-start;min-height:120px}
.m-images .m-img-card .m-img-pic{width:72px;height:72px}
.m-images .s-ans:disabled,.m-images .s-btn:disabled{opacity:.55;cursor:not-allowed}
.m-images .m-img-uses{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.m-images .m-img-uses .s-toggle{align-items:flex-start}
.m-images .m-img-uses .s-toggle input{margin-top:3px;flex:none}
.m-images .m-img-shots{margin:12px 0 0;padding-left:26px;display:flex;flex-direction:column;gap:6px;font-size:17px}
.m-images .m-img-shots li{padding:6px 0;border-bottom:1px solid var(--line)}
.m-images .m-img-shots li>div:first-child{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.m-images .m-img-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.m-images .m-img-edit{margin:8px 0;padding:14px;background:#F7F9F7;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:12px}
.m-images .m-img-edit label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.m-images .m-img-edit .s-actions{grid-column:1/-1;margin:0}
.m-images #imgnote,.m-images #imgtnote,.m-images #imgrnote{max-width:640px}

/* Personas */
.m-images .m-img-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:12px;margin-top:12px}
.m-images .m-img-person{align-items:stretch;text-align:center}
.m-images .m-img-person .ph,.m-images .m-img-pcard .ph{aspect-ratio:1;border-radius:10px;background:#F3F5F2;display:grid;place-items:center;overflow:hidden;color:var(--mut);font-size:15px;text-align:center;padding:4px}
.m-images .m-img-person .ph img,.m-images .m-img-pcard .ph img{width:100%;height:100%;object-fit:cover}
.m-images .m-img-pcard{padding:10px;display:flex;flex-direction:column;gap:6px}
.m-images .m-img-pcard.off{opacity:.7;border-style:dashed}
.m-images .m-img-pform fieldset .s-help{margin:6px 0 4px;font-size:15px}
.m-images .m-img-pform{max-width:none}

/* waiting, test, review */
.m-images .m-img-wait{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:36px 20px}
.m-images .m-img-wait .s-bar{width:min(520px,100%)}
.m-images .m-img-spin,.m-img-dialog .m-img-spin{display:inline-block;width:32px;height:32px;border-radius:50%;border:4px solid var(--green-line);border-top-color:var(--green);animation:s-spin 1s linear infinite}
.m-images .m-img-compare,.m-img-dialog .m-img-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;margin:12px 0}
.m-images .m-img-compare figure,.m-img-dialog figure{margin:0}
.m-images .m-img-compare img{width:100%;max-height:60vh;object-fit:contain;border-radius:12px;background:#F3F5F2;border:1px solid var(--line)}
.m-images .m-img-compare figcaption,.m-img-dialog figcaption{color:var(--mut);font-size:15px;margin-top:4px}
.m-images .m-img-zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:12px}
.m-images .m-img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:14px;margin:14px 0}
.m-images .m-img-tile{border:2px solid var(--line);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#fff}
.m-images .m-img-tile.on{border-color:var(--green);background:var(--green-soft)}
.m-images .m-img-tile img{width:100%;aspect-ratio:4/5;object-fit:contain;border-radius:10px;background:#F3F5F2}
.m-images .m-img-tile p{margin:0;font-size:15px}
.m-images .m-img-ph{aspect-ratio:4/5;border-radius:10px;background:#F3F5F2;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;text-align:center;color:var(--mut);padding:10px;font-size:15px}
/* cutout check: the cutout on a dark and on a saturated colour, so a halo or a box shows */
.m-images .m-img-cut{aspect-ratio:4/5;border-radius:10px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(90deg,#1E2420 50%,#D6006E 50%)}
.m-images .m-img-cut img{width:100%;height:100%;object-fit:contain;background:none;border-radius:0}
.m-img-dialog{border:0;border-radius:16px;padding:0;max-width:min(1100px,96vw);width:100%;box-shadow:0 24px 64px rgba(16,24,20,.3)}
.m-img-dialog::backdrop{background:rgba(16,24,20,.6)}
.m-img-dialog .m-img-dlg{padding:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.m-img-dialog .m-img-dlg>img{width:100%;max-height:80vh;object-fit:contain}
.m-img-dialog .m-img-compare{width:100%}
.m-img-dialog .m-img-compare img{width:100%;max-height:72vh;object-fit:contain;background:#F3F5F2;border-radius:10px}

/* a picture of the stand-in engine: never mistaken for a real one */
.m-images .m-img-fake,.m-img-dialog .m-img-fake{display:inline-block;margin:0 6px 4px 0;padding:2px 10px;border-radius:999px;background:#B3325A;color:#fff;font-size:14px;font-weight:800;letter-spacing:.02em}
.m-images .m-img-ph small{display:block;font-size:15px;color:var(--bad);font-weight:700}
/* background: the Subsections; ambient: the Products of the scene */
.m-images .m-img-subs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:10px;margin-top:10px}
.m-images .m-img-sec{grid-column:1/-1;margin:12px 0 0;font-size:17px;font-weight:800;color:var(--brown)}
.m-images .m-img-scenep{cursor:pointer}
.m-images .m-img-scenep.on{border-color:var(--green);background:var(--green-soft)}
.m-images .m-img-scenep.off{opacity:.7;cursor:not-allowed}
.m-images .m-img-scenep .s-toggle{font-size:15px}

@media (max-width:600px){
  .m-images .m-img-filled img{width:100%;height:auto;max-height:240px}
  .m-images .m-img-fhead .m-img-pic{width:48px;height:48px}
  .m-images .s-actions .s-btn{white-space:normal}
}

/* the waiting screens of the test shot and the batch: the photo "develops" at its real shape over a faded copy of the sample */
.m-images .m-gen{display:grid;gap:16px;justify-items:center;text-align:center;padding:28px 20px}
.m-images .m-gen-stage{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;width:min(680px,100%)}
.m-images .m-gen-stage:not(:has(.m-gen-src)){grid-template-columns:minmax(0,300px);justify-content:center}
.m-images .m-gen-stage figure,.m-images .m-gen-tile{margin:0;display:grid;gap:6px}
.m-images .m-gen-stage figcaption,.m-images .m-gen-tile figcaption{font-size:15px;color:var(--mut)}
.m-images .m-gen-src img{width:100%;aspect-ratio:4/5;object-fit:contain;border-radius:12px;background:#F3F5F2;border:1px solid var(--line)}
.m-images .m-gen-arrow{font-size:30px;font-weight:800;color:var(--green)}
.m-images .m-gen-frame{position:relative;width:100%;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,#F8FAF7,#EBF1EC);border:2px solid var(--line)}
.m-images .m-gen-frame.run{border:2px dashed var(--green)}
.m-images .m-gen-frame.bad{border-color:var(--bad);background:var(--bad-soft)}
.m-images .m-gen-ghost{position:absolute;left:10%;top:8%;width:80%;height:78%;object-fit:contain;filter:grayscale(1) blur(4px);opacity:.3}
.m-images .m-gen-frame.run .m-gen-ghost{animation:m-gen-breathe 2.6s ease-in-out infinite}
.m-images .m-gen-sweep{position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%);transform:translateX(-100%);animation:m-gen-sweep 2s ease-in-out infinite}
.m-images .m-gen-note{position:absolute;inset:0;display:grid;place-items:center;padding:12px;font-weight:700;font-size:15px;color:var(--mut)}
.m-images .m-gen-frame.bad .m-gen-note{color:var(--bad)}
.m-images .m-gen-pill{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:14px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.m-images .m-gen-pill .m-img-spin{width:14px;height:14px;border-width:2px}
.m-images .m-gen-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;text-align:left;width:min(520px,100%)}
.m-images .m-gen-steps li{display:flex;align-items:center;gap:10px;color:var(--mut);font-variant-numeric:tabular-nums}
.m-images .m-gen-steps li::before{content:"";flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;font-size:13px;font-weight:800;box-sizing:border-box}
.m-images .m-gen-steps li.ok{color:var(--ink)}
.m-images .m-gen-steps li.ok::before{content:"✓";border-color:var(--green);background:var(--green);color:#fff}
.m-images .m-gen-steps li.now{color:var(--ink);font-weight:700}
.m-images .m-gen-steps li.now::before{border-color:var(--green-line);border-top-color:var(--green);animation:s-spin 1s linear infinite}
.m-images .m-gen-bar{width:min(520px,100%)}
.m-images .m-gen-bar i{transition:width 1s linear}
.m-images .m-gen-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:14px;text-align:left}
.m-images .m-gen-tile img{width:100%;object-fit:contain;border-radius:12px;background:#F3F5F2;border:1px solid var(--line);animation:m-gen-in .5s ease-out}
@keyframes m-gen-sweep{to{transform:translateX(100%)}}
@keyframes m-gen-breathe{50%{opacity:.45}}
@keyframes m-gen-in{from{opacity:0;transform:scale(.97)}}
@media (prefers-reduced-motion:reduce){
  .m-images .m-gen-sweep,.m-images .m-gen-frame.run .m-gen-ghost,.m-images .m-gen-tile img,.m-images .m-gen-steps li.now::before{animation:none}
  .m-images .m-gen-sweep{display:none}
}
@media (max-width:600px){
  .m-images .m-gen-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .m-images .m-gen-arrow{display:none}
}
