/* ==========================================================================
   Film della pagina Preventivi (/funzioni/preventivi): stile delle sue schermate.
   Markup in _src/films/preventivi.mjs, copione in assets/mm/films/preventivi.js.
   Il comune (player, finestra, sidebar, attori, pezzi riusabili) è in
   assets/mm/film.css, caricato prima. Classi con il prefisso fxpr-, tutto sotto .film.
   Si animano solo transform e opacity; le evidenze sono anelli su ::after.
   ========================================================================== */
.film .fxpr-lg{width:34px;height:34px;border-radius:10px;background:#fff;border:1px solid #EDF0EA;display:grid;place-items:center;flex-shrink:0;color:#3B6E00}
.film .fxpr-lg img{width:18px;height:18px;object-fit:contain}
.film .fxpr-lg svg{width:16px;height:16px}
.film .fxpr-pdf{display:inline-block;font:800 8px/1 var(--mono);letter-spacing:.02em;color:#fff;background:#D64533;border-radius:4px;padding:4px 4px 3px}
.film .fxpr-two{display:flex;align-items:center;gap:4px}
.film .fxpr-lg .fxpr-two img{width:14px;height:14px}
.film .fxpr-src .fxpr-lg:has(.fxpr-two){width:auto;padding:0 7px}
.film .fxpr-tx{flex:1;min-width:0}
.film .fxpr-tx b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxpr-tx small{display:block;margin-top:1px;font-size:11px;color:#7E8882;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxpr-fh{display:flex;align-items:center;justify-content:space-between;margin:0 2px 10px}
.film .fxpr-fh h6{margin:0}
.film .fxpr-fh>span{font-size:10.5px;font-weight:600;color:#9AA29C}
/* stato a due facce (prima e dopo): .ok mostra il secondo */
.film .fxpr-st{display:grid;justify-items:end}
.film .fxpr-st>.pill{grid-area:1/1;transition:opacity .25s ease,transform .45s var(--fe-out)}
.film .fxpr-st>.b{opacity:0;transform:scale(.85)}
.film .fxpr-st.ok>.a{opacity:0;transform:scale(.9)}
.film .fxpr-st.ok>.b{opacity:1;transform:none}
/* notifiche con un'icona al posto del logo */
.film [data-film="preventivi"] .fm-toast .ic svg{width:17px;height:17px;color:#3B6E00}

/* ---------- 1 · le richieste ---------- */
.film .fxpr-today b{font-size:11px;color:#121712}
.film .fxpr-in{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
.film .fxpr-feed{padding:14px 14px 6px}
.film .fxpr-fwrap{position:relative;height:322px;overflow:hidden}
.film .fxpr-flist{transition:transform .6s var(--fe-out)}
.film .fxpr-r{position:relative;isolation:isolate;display:flex;align-items:center;gap:11px;height:58px;margin-bottom:8px;padding:0 12px;border:1px solid #EEF1EA;border-radius:12px;background:#FCFDFB;transition:opacity .45s ease .12s,transform .16s var(--fe-out)}
.film .fxpr-r.fxpr-new{opacity:0}
.film .fxpr-r.fxpr-new.in{opacity:1}
.film .fxpr-r:not(.fxpr-new) .fxpr-lg,.film .fxpr-r:not(.fxpr-new) .fxpr-tx{opacity:.62}
.film .fxpr-r.down{transform:scale(.985)}
.film .fxpr-r::after{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;background:#F3FAEC;box-shadow:inset 0 0 0 1.5px #8CC063;opacity:0;transition:opacity .4s ease;pointer-events:none}
.film .fxpr-r.hl::after{opacity:1}
.film .fxpr-rt{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.film .fxpr-rt em{font-style:normal;font-size:10.5px;color:#8B948E}
.film .fxpr-side{display:grid;gap:12px}
.film .fxpr-srcs{padding:14px 14px 6px}
.film .fxpr-srcs .fxpr-fh{margin-bottom:6px}
.film .fxpr-src{position:relative;z-index:0;display:flex;align-items:center;gap:10px;height:52px;border-top:1px solid #F1F3EE}
.film .fxpr-fh+.fxpr-src{border-top:0}
.film .fxpr-src .fxpr-lg{width:32px;height:32px}
.film .fxpr-src .n{min-width:26px;text-align:right;font-size:16px;font-weight:800;letter-spacing:-.02em}
.film .fxpr-src::after{content:"";position:absolute;inset:4px -8px;z-index:-1;border-radius:10px;background:#F1F9E9;box-shadow:inset 0 0 0 1px #CBE6B0;opacity:0;transition:opacity .5s ease}
.film .fxpr-src.on::after{opacity:1;transition-duration:.15s}
/* il riquadro dove si lascia il PDF: tratteggiato, si accende quando il file ci passa sopra */
.film .fxpr-drop{position:relative;display:flex;align-items:center;gap:11px;height:84px;padding:0 16px;border:1.5px dashed #CBD3C6;border-radius:14px;background:#FCFDFB}
.film .fxpr-drop::after{content:"";position:absolute;inset:-1.5px;border-radius:inherit;border:1.5px dashed #8CC063;background:rgba(234,246,223,.6);opacity:0;transition:opacity .25s ease;pointer-events:none}
.film .fxpr-drop.is-drop::after{opacity:1}
.film .fxpr-drop .ic{width:36px;height:36px;border-radius:10px;background:#F1F4EE;color:#5b655f;display:grid;place-items:center;flex-shrink:0}
.film .fxpr-drop .ic svg{width:17px;height:17px}
.film .fxpr-drop .tx{transition:opacity .25s ease}
.film .fxpr-drop .tx b{display:block;font-size:12.5px;font-weight:700}
.film .fxpr-drop .tx small{display:block;margin-top:1px;font-size:11px;color:#7E8882}
.film .fxpr-drop .ok{position:absolute;left:63px;top:50%;display:flex;align-items:center;gap:7px;margin-top:-11px;font-size:12.5px;color:#2F6B12;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .5s var(--fe-out)}
.film .fxpr-drop .ok svg{width:14px;height:14px;padding:3px;box-sizing:content-box;border-radius:50%;background:var(--act);color:#fff}
.film .fxpr-drop .ok b{font-weight:800}
.film .fxpr-drop.done .tx{opacity:0}
.film .fxpr-drop.done .ok{opacity:1;transform:none}
/* il file trascinato, come una copia del Finder */
.film [data-film="preventivi"] .fm-ghost{width:252px}
.film .fxpr-file{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #DDE3D8;border-radius:12px;background:#fff}
.film .fxpr-file .fxpr-pdf{font-size:9px;padding:9px 5px}
.film .fxpr-file b{display:block;font-size:12px;font-weight:700;white-space:nowrap}
.film .fxpr-file small{display:block;font-size:10.5px;color:#7E8882}

/* ---------- 2 · lettura della mail ---------- */
.film .fxpr-rd{display:grid;grid-template-columns:400px 44px 1fr;align-items:start}
.film .fxpr-mail header{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.film .fxpr-mail header .who{flex:1;min-width:0}
.film .fxpr-mail header .who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxpr-mail header em{font-style:normal;font-size:10.5px;color:#8B948E}
.film .fxpr-mail h5{font-size:15px;font-weight:800;letter-spacing:-.01em;margin-bottom:8px}
.film .fxpr-mail p{font-size:13px;line-height:1.65;color:#3d4452}
.film .fxpr-mail p+p{margin-top:8px}
.film .fxpr-mk{position:relative}
.film .fxpr-mk::before{content:"";position:absolute;inset:-1px -3px;z-index:-1;border-radius:4px;background:#DFF1CC;opacity:0;transform:scaleX(.4);transform-origin:0 50%;transition:opacity .25s ease,transform .5s var(--fe-out)}
.film .fxpr-mk.on::before{opacity:1;transform:none}
.film .fxpr-mail p{position:relative;z-index:0}
.film .fxpr-arw{align-self:center;justify-self:center;width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid #E5E9E1;display:grid;place-items:center;color:var(--act);box-shadow:0 4px 12px -6px rgba(18,24,20,.25)}
.film .fxpr-arw svg{width:15px;height:15px}
.film .fxpr-req header,.film .fxpr-ord header{display:flex;align-items:center;gap:10px}
.film .fxpr-req header b,.film .fxpr-ord header b{font-size:14px;font-weight:800}
.film .fxpr-req header .pill,.film .fxpr-ord header .pill{margin-left:auto}
.film .fxpr-req .ic,.film .fxpr-ord .ic{width:30px;height:30px;border-radius:9px;background:#EEF6E6;color:#3B6E00;display:grid;place-items:center}
.film .fxpr-req .ic svg,.film .fxpr-ord .ic svg{width:15px;height:15px}
.film .fxpr-from{display:flex;align-items:center;gap:6px;margin:8px 0 4px;font-size:11px;font-weight:600;color:#8B948E}
.film .fxpr-from svg{width:12px;height:12px}
.film .fxpr-req dl{margin:0}
.film .fxpr-f{display:flex;align-items:center;justify-content:space-between;gap:12px;height:36px;border-top:1px solid #F1F3EE}
.film .fxpr-f dt{font-size:11.5px;font-weight:600;color:#8B948E;flex-shrink:0}
.film .fxpr-f dd{position:relative;margin:0;min-width:0;height:20px;display:flex;align-items:center;justify-content:flex-end}
.film .fxpr-f .sk{position:absolute;right:0;top:6px;width:130px;height:8px;border-radius:5px;background:#EEF1EA;transition:opacity .2s ease}
.film .fxpr-f dd>span{font-size:12.5px;font-weight:700;white-space:nowrap;opacity:0;transform:translateX(6px);transition:opacity .35s ease,transform .5s var(--fe-out)}
.film .fxpr-f.in .sk{opacity:0}
.film .fxpr-f.in dd>span{opacity:1;transform:none}
.film .fxpr-f.due dd>span{color:#8A6400;background:#FDF4DC;border-radius:999px;padding:3px 9px;font-size:11.5px}
.film .fxpr-next{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border-radius:10px;background:#F4FAEE;font-size:12px;font-weight:600;color:#2F6B12}
.film .fxpr-next svg{width:14px;height:14px;animation:fxpr-spin 1.1s linear infinite}
@keyframes fxpr-spin{to{transform:rotate(360deg)}}

/* ---------- 3 · i camion ---------- */
.film .fxpr-tg{display:grid;grid-template-columns:250px 1fr;gap:16px;align-items:start}
.film .fxpr-sum .rt{display:block;margin:2px 0 10px;font-size:16px;font-weight:800;letter-spacing:-.01em}
.film .fxpr-sum dl{margin:0}
.film .fxpr-sum dl div,.film .fxpr-ord dl div,.film .fxpr-off dl div{display:flex;align-items:center;justify-content:space-between;gap:10px;height:34px;border-top:1px solid #F1F3EE}
.film .fxpr-sum dt,.film .fxpr-ord dt,.film .fxpr-off dt{font-size:11.5px;font-weight:600;color:#8B948E;flex-shrink:0}
.film .fxpr-sum dd,.film .fxpr-ord dd,.film .fxpr-off dd{margin:0;min-width:0;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxpr-tl{padding:14px 14px 12px}
.film .fxpr-t{position:relative;display:flex;align-items:center;gap:12px;height:68px;margin-bottom:8px;padding:0 14px;border:1px solid #EEF1EA;border-radius:12px;background:#FCFDFB}
.film .fxpr-t::after{content:"";position:absolute;inset:-1px;border-radius:inherit;box-shadow:inset 0 0 0 1.5px #8CC063,0 0 0 4px #EEF7E4;opacity:0;transition:opacity .4s ease;pointer-events:none}
.film .fxpr-t.on::after{opacity:1}
.film .fxpr-t.down{transform:scale(.985);transition:transform .16s var(--fe-out)}
.film .fxpr-t .rad{position:relative;width:18px;height:18px;border-radius:50%;border:1.5px solid #C9D0C6;flex-shrink:0}
.film .fxpr-t .rad::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--act);opacity:0;transform:scale(.4);transition:opacity .2s ease,transform .4s var(--fe-out)}
.film .fxpr-t.on .rad::after{opacity:1;transform:none}
.film .fxpr-t .fxpr-tx b{display:flex;align-items:center;gap:8px}
.film .fxpr-t .fxpr-tx b em{font-style:normal;font-weight:600;color:#59625c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxpr-t .fxpr-tx .d{margin-top:4px;color:#4c5550;font-weight:600}
.film .fxpr-t .am{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.film .fxpr-t .am>b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.film .fxpr-best{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:10px;font-weight:800;padding:3px 8px;border-radius:999px;background:var(--act);color:#fff}
.film .fxpr-best svg{width:11px;height:11px}
.film .fxpr-exc{display:flex;align-items:center;gap:8px;margin:4px 2px 0;font-size:11.5px;font-weight:600;color:#7E8882}
.film .fxpr-exc svg{width:13px;height:13px;flex-shrink:0}

/* ---------- 4 · il costo, voce per voce ---------- */
.film .fxpr-bar{display:flex;gap:2px;height:12px;margin-bottom:14px;border-radius:6px;overflow:hidden}
.film .fxpr-bar i{display:block;transform:scaleX(0);transform-origin:0 50%;transition:transform .55s var(--fe-out) var(--d,0s)}
.film .fxpr-bar i.cut{margin-left:4px}
.film .fxpr-bar.in i{transform:none}
.film .fxpr-cg{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.film .fxpr-cr{display:grid;gap:12px}
.film .fxpr-cc{padding:14px 16px 10px}
.film .fxpr-ch{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.film .fxpr-ch h6{margin:0}
.film .fxpr-ch b{font-size:13px;font-weight:800;color:#3f4741}
.film .fxpr-cl{position:relative;display:flex;align-items:center;gap:10px;height:48px;border-top:1px solid #F1F3EE}
.film .fxpr-cl .sw{width:4px;height:26px;border-radius:2px;background:var(--c);flex-shrink:0}
.film .fxpr-cl .ic{width:28px;height:28px;border-radius:8px;background:#F1F4EE;color:#5b655f;display:grid;place-items:center;flex-shrink:0}
.film .fxpr-cl .ic svg{width:14px;height:14px}
.film .fxpr-cl .am{font-size:12.5px;font-weight:800;white-space:nowrap}
.film .fxpr-ctot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid #DDEFCB;border-radius:14px;background:#F6FBF0}
.film .fxpr-ctot small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#5E7F45}
.film .fxpr-ctot b{display:block;margin-top:3px;font-size:18px;font-weight:800;letter-spacing:-.02em}
.film .fxpr-ctot em{font-style:normal;font-size:11px;font-weight:700;color:#2F6B12;background:#fff;border-radius:999px;padding:4px 9px}

/* ---------- 5 · prezzo e offerta ---------- */
.film .fxpr-pg{display:grid;grid-template-columns:1fr 372px;gap:16px;align-items:start}
.film .fxpr-pr{padding:16px 20px 16px}
.film .fxpr-big{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.film .fxpr-big>b{font-size:42px;font-weight:800;letter-spacing:-.04em;line-height:1}
.film .fxpr-ru{position:relative;height:6px;margin:50px 14px 46px}
.film .fxpr-ru .trk{position:absolute;inset:1px 0;border-radius:2px;background:#E6EAE2}
.film .fxpr-ru .z{position:absolute;top:0;bottom:0;border-radius:3px;transform-origin:0 50%;transform:scaleX(0)}
.film .fxpr-ru .z.lo{background:#F1D48E;transition:transform .5s var(--fe-out)}
.film .fxpr-ru .z.ok{background:#4E9A1B;transition:transform .7s var(--fe-out) .35s}
.film .fxpr-ru.in .z{transform:none}
.film .fxpr-ru .mk{position:absolute;top:50%;width:2px;height:14px;margin:-7px 0 0 -1px;border-radius:1px;background:#121712}
.film .fxpr-ru .mk small{position:absolute;top:18px;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;font-size:10px;color:#7E8882;line-height:1.25}
.film .fxpr-ru .mk small b{display:block;font:700 11px/1.2 var(--mono);color:#121712}
.film .fxpr-ru .mk.pr{width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--act);box-shadow:0 0 0 3px #fff,0 2px 8px rgba(46,122,51,.45);opacity:0;transform:scale(.6);transition:opacity .25s ease .8s,transform .45s var(--fe-out) .8s}
.film .fxpr-ru.in .mk.pr{opacity:1;transform:none}
.film .fxpr-ru .mk.pr small{top:auto;bottom:24px;left:auto;right:-4px;transform:none;text-align:right;color:#2F6B12;font-weight:700}
.film .fxpr-ru .mk.pr small b{color:#2F6B12}
.film .fxpr-hist{display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:11px;background:#F7F9F5;font-size:11.5px;color:#4c5550;line-height:1.35}
.film .fxpr-hist svg{width:14px;height:14px;color:#5b655f;flex-shrink:0}
.film .fxpr-hist b{color:#121712}
.film .fxpr-off{padding:14px 16px 16px}
.film .fxpr-off header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.film .fxpr-off header b{font-size:13.5px;font-weight:800}
.film .fxpr-off dl{margin:0}
.film .fxpr-off dl div{height:30px}
.film .fxpr-off dd{font-weight:600;font-size:12px}
.film .fxpr-ob{margin-top:4px;padding:10px 12px;border-radius:10px;background:#FAFBF8;border:1px solid #F0F2EC;font-size:12px;line-height:1.55;color:#3d4452}
.film .fxpr-ob p+p{margin-top:6px}
.film .fxpr-ob b{font-weight:800;color:#121712}
.film .fxpr-off .fm-btn svg,.film .fxpr-ord .fm-btn svg{width:15px;height:15px}

/* ---------- 6 · il sì e l'ordine ---------- */
.film .fxpr-dg{display:grid;grid-template-columns:1fr 372px;gap:16px;align-items:start}
.film .fxpr-his{padding:14px 16px 12px}
.film .fxpr-his h6{margin-bottom:6px}
.film .fxpr-ev{position:relative;display:grid;grid-template-columns:44px 26px 1fr;align-items:center;gap:10px;height:50px}
.film .fxpr-ev em{font-style:normal;font-size:10.5px;color:#8B948E}
.film .fxpr-ev .dt{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:#EEF6E6;color:#3B6E00;display:grid;place-items:center}
.film .fxpr-ev .dt svg{width:13px;height:13px}
.film .fxpr-ev::before{content:"";position:absolute;left:66px;top:-12px;height:24px;width:1.5px;background:#E1EBD6}
.film .fxpr-ev:first-of-type::before{display:none}
.film .fxpr-ev[data-k="ev4"] .dt{background:var(--act);color:#fff}
.film .fxpr-q{margin:6px 0 0 54px;padding:9px 12px;border-radius:4px 12px 12px 12px;background:#F3F5F0;font-size:12px;line-height:1.45;color:#2f3632}
.film .fxpr-ord{padding:14px 16px 16px}
.film .fxpr-ord dl{margin:2px 0 0}
.film .fxpr-ord dd{display:flex;align-items:center;gap:7px}
.film .fxpr-ord dd .plate{font-size:10.5px;padding:3px 5px}

/* ---------- telefono (.is-narrow): pannelli larghi quanto un'inquadratura ---------- */
.film .film-player.is-narrow .fxpr-in{grid-template-columns:352px 320px}
.film .film-player.is-narrow .fxpr-via{display:none}
.film .film-player.is-narrow .fxpr-r .fxpr-tx small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}
/* la freccia tra mail e richiesta resta fuori dall’inquadratura della richiesta */
.film .film-player.is-narrow .fxpr-rd{grid-template-columns:352px 50px 352px}
.film .film-player.is-narrow .fxpr-f .sk{width:110px}
.film .film-player.is-narrow .fxpr-tg{grid-template-columns:352px}
.film .film-player.is-narrow .fxpr-sum{display:none}
.film .film-player.is-narrow .fxpr-t{gap:10px;padding:0 12px}
.film .film-player.is-narrow .fxpr-t .fxpr-tx small{white-space:normal}
.film .film-player.is-narrow .fxpr-exc{align-items:flex-start;line-height:1.4}
.film .film-player.is-narrow .fxpr-exc svg{margin-top:2px}
.film .film-player.is-narrow .fxpr-bar{width:352px}
.film .film-player.is-narrow .fxpr-cg{grid-template-columns:352px 352px}
.film .film-player.is-narrow .fxpr-cl{height:auto;min-height:44px;padding:5px 0}
.film .film-player.is-narrow .fxpr-cl .ic{display:none}
.film .film-player.is-narrow .fxpr-cl .fxpr-tx small{white-space:normal;line-height:1.3}
/* sul telefono l'inquadratura è larga quanto un pannello: le etichette accanto ai titoli restano fuori */
.film .film-player.is-narrow .fxpr-hp{display:none}
.film .film-player.is-narrow .fxpr-pg,.film .film-player.is-narrow .fxpr-dg{grid-template-columns:352px 352px}
.film .film-player.is-narrow .fxpr-big>b{font-size:38px}
/* righello stretto: l’etichetta del minimo sale sopra la linea, così non tocca quella del costo */
.film .film-player.is-narrow .fxpr-ru .mk.mn small{top:auto;bottom:18px}
.film .film-player.is-narrow .fxpr-hist span{line-height:1.4}

/* movimento ridotto: la rotellina del caricamento resta ferma */
@media (prefers-reduced-motion: reduce){.film .fxpr-next svg{animation:none}}
