/* ==========================================================================
   Film dello Scadenzario (/funzioni/scadenzario): stile delle sue schermate.
   Markup in _src/films/scadenzario.mjs, copione in assets/mm/films/scadenzario.js.
   Il comune (player, finestra, sidebar, attori, pezzi riusabili) è in
   assets/mm/film.css, caricato prima. Classi con il prefisso fxsz-, tutto sotto .film.
   Si animano solo transform e opacity; le evidenze sono anelli su ::after.
   ========================================================================== */
.film .fxsz-seg{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:#F1F3EF}
.film .fxsz-seg span{font-size:11px;font-weight:700;color:#7E8882;padding:4px 10px;border-radius:7px}
.film .fxsz-seg .on{background:#fff;color:#121712;box-shadow:0 1px 2px rgba(18,24,20,.1)}
.film .fxsz-ic{width:32px;height:32px;border-radius:9px;background:#EEF6E6;color:#3B6E00;display:grid;place-items:center;flex-shrink:0}
.film .fxsz-ic svg{width:15px;height:15px}
.film .fxsz-ch{display:flex;align-items:center;gap:10px;margin-bottom:12px}

/* la voce di MiMuovo: due frasi sovrapposte, .b mostra la seconda */
.film .fxsz-say{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:10px 12px;border-radius:12px;background:#F4FAEE;border:1px solid #DDEFC9}
.film .fxsz-say .av{width:26px;height:26px;border-radius:50%;background:#fff;border:1px solid #DDEFC9;display:grid;place-items:center;flex-shrink:0}
.film .fxsz-say .av img{width:15px;height:15px}
.film .fxsz-say p{flex:1;min-width:0;display:grid;margin:0;font-size:12.5px;line-height:1.5;color:#2F3A33}
.film .fxsz-say p>span{grid-area:1/1;transition:opacity .3s ease,transform .5s var(--fe-out)}
.film .fxsz-say p b{font-weight:700;color:#121712}
.film .fxsz-say p .b{opacity:0;transform:translateY(5px)}
.film .fxsz-say.b p .a{opacity:0;transform:translateY(-5px)}
.film .fxsz-say.b p .b{opacity:1;transform:none}

/* ---------- 1 · lo scadenzario ---------- */
.film .fxsz-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.film .fxsz-zero b{color:#2F6B12}
.film .fxsz-list{padding:4px 14px 4px}
.film .fxsz-th,.film .fxsz-r{display:grid;grid-template-columns:32px minmax(0,1fr) 140px 112px 128px;column-gap:12px;align-items:center}
.film .fxsz-th{height:30px;padding:0 6px}
.film .fxsz-th span{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#8B948E}
.film .fxsz-th span:first-child{grid-column:1/3}
.film .fxsz-th span:last-child{text-align:right}
.film .fxsz-rows{--slot:52px;position:relative;z-index:0;height:calc(var(--slot) * 6);overflow:hidden}
.film .fxsz-r{position:relative;height:var(--slot);padding:0 6px;border-top:1px solid #F1F3EE;transition:transform .7s var(--fe-out),opacity .4s ease}
.film .fxsz-r::after{content:"";position:absolute;inset:2px 0;z-index:-1;border-radius:10px;background:#F7FBF2;box-shadow:inset 0 0 0 1.5px #A9D383;opacity:0;transition:opacity .4s ease}
.film .fxsz-r.hl::after{opacity:1}
/* il tagliando entra nella sua riga, le righe sotto scendono, l'ultima esce dal fondo */
.film .fxsz-r.up{transform:translateY(calc(-1 * var(--slot)))}
.film .fxsz-r.new{opacity:0;transform:scale(.97)}
.film .fxsz-r.new.in{opacity:1;transform:none}
.film .fxsz-r.gone{opacity:0}
.film .fxsz-r.down,.film .fxsz-r.new.in.down{transform:scale(.985);transition-duration:.16s}
.film .fxsz-r .ic{width:32px;height:32px;border-radius:9px;background:#F1F4EE;color:#5b655f;display:grid;place-items:center}
.film .fxsz-r .ic svg{width:15px;height:15px}
.film .fxsz-r .ic.warn{background:#FDF4DC;color:#8A6400}
.film .fxsz-r .tx{min-width:0}
.film .fxsz-r .tx b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-r .tx small{display:block;margin-top:1px;font-size:11px;color:#7E8882;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-r .sb{min-width:0;display:flex;align-items:center}
.film .fxsz-pp{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;white-space:nowrap}
.film .fxsz-pp i{width:22px;height:22px;border-radius:50%;background:#DCE3EA;color:#4A5563;display:grid;place-items:center;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.02em}
.film .fxsz-r .qd b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap}
.film .fxsz-r .qd small{display:block;margin-top:1px;font-size:11px;color:#7E8882;white-space:nowrap}
.film .fxsz-r.new .qd small{color:#8A6400;font-weight:600}
.film .fxsz-r .st{display:flex;justify-content:flex-end}

/* ---------- 2 · i km ---------- */
.film .fxsz-kmg{display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:16px;align-items:start}
.film .fxsz-big{display:flex;align-items:center;gap:10px}
.film .fxsz-big>b{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.film .fxsz-big em{font-style:normal;font-size:11px;font-weight:700;color:#2F6B12;background:#EAF6DF;border-radius:999px;padding:4px 9px}
.film .fxsz-bar{margin-top:14px}
.film .fxsz-bar .trk{position:relative;display:block;height:10px;border-radius:999px;background:#EEF1EA;overflow:hidden}
.film .fxsz-bar .trk i{position:absolute;inset:0;border-radius:999px;background:linear-gradient(90deg,#C9E4AE 0%,#A9D383 62%,#E2B23A 100%);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.3s var(--fe-out)}
.film .fxsz-bar .trk i.in{transform:scaleX(.922)}
.film .fxsz-bar .lb{display:flex;justify-content:space-between;margin-top:7px;font-size:10.5px;color:#8B948E}
.film .fxsz-bar .lb>span:last-child{text-align:right}
.film .fxsz-bar .lb b{display:block;font-size:12px;font-weight:800;color:#121712}
.film .fxsz-left{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding:9px 12px;border-radius:10px;background:#FDF8EA;border:1px solid #F3E6BF}
.film .fxsz-left>span{font-size:11.5px;font-weight:700;color:#8A6400}
.film .fxsz-left b{font-size:18px;font-weight:800;letter-spacing:-.02em;color:#8A6400}
.film .fxsz-chart{margin-top:14px}
.film .fxsz-cht{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.film .fxsz-cht h6{margin:0}
.film .fxsz-cht span{font-size:10.5px;font-weight:600;color:#8A6400}
.film .fxsz-bars{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;height:74px;padding-bottom:16px}
.film .fxsz-bars .c{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.film .fxsz-bars .c i{display:block;width:100%;height:calc(var(--h) * 58px);border-radius:4px 4px 2px 2px;background:#D5EAC0;transform:scaleY(0);transform-origin:50% 100%;transition:transform .6s var(--fe-out) calc(var(--i) * 55ms)}
.film .fxsz-bars .c.y i{background:#8CC063}
.film .fxsz-bars .c small{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font-size:9.5px;color:#9AA29C}
.film .fxsz-chart.in .c i{transform:none}
.film .fxsz-bars .avg{position:absolute;left:-2px;right:-2px;bottom:calc(16px + var(--h) * 58px);border-top:1.5px dashed #D9B860;opacity:0;transition:opacity .4s ease .5s}
.film .fxsz-chart.in .avg{opacity:1}
.film .fxsz-mo{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.film .fxsz-mo b{font-size:12.5px;font-weight:800}
.film .fxsz-mo>span{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:#8B948E}
.film .fxsz-mo i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px}
.film .fxsz-mo i.t{background:#121712}
.film .fxsz-mo i.w{border-radius:2px;background:#DDEFC9}
.film .fxsz-cg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px 4px}
.film .fxsz-cg .dh{height:18px;display:grid;place-items:center;font-size:9.5px;font-weight:800;color:#9AA29C}
.film .fxsz-cg .d{position:relative;z-index:0;height:31px;display:grid;place-items:center;font-size:12px;font-weight:600;color:#3d4452}
.film .fxsz-cg .d b{position:relative;font-weight:inherit;width:24px;height:24px;border-radius:50%;display:grid;place-items:center}
.film .fxsz-cg .we{color:#B6BDB8}
.film .fxsz-cg .today b{background:#121712;color:#fff;font-weight:800}
/* i giorni lavorativi prima della soglia: compaiono con .wnd sul riquadro */
.film .fxsz-cg .w::before{content:"";position:absolute;inset:1px 0;z-index:-1;border-radius:7px;background:#EEF7E4;opacity:0;transition:opacity .45s ease}
.film .fxsz-cal.wnd .fxsz-cg .w::before{opacity:1}
/* il giorno della soglia: cerchio ambra e targhetta dei km */
.film .fxsz-cg .th::after{content:"";position:absolute;left:50%;top:50%;z-index:-1;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:#FBE9B7;box-shadow:0 0 0 1.5px #E2B23A;opacity:0;transform:scale(.6);transition:opacity .3s ease,transform .5s var(--fe-out)}
.film .fxsz-cg .th.on::after{opacity:1;transform:none}
.film .fxsz-cg .th.on b{font-weight:800}
.film .fxsz-cg .tag{position:absolute;bottom:calc(100% - 6px);left:50%;z-index:2;font-style:normal;font-size:9px;font-weight:800;color:#8A6400;background:#FDF4DC;border:1px solid #F0DC9E;border-radius:6px;padding:2px 5px;white-space:nowrap;opacity:0;transform:translate(-50%,4px) scale(.92);transition:opacity .3s ease,transform .5s var(--fe-out)}
.film .fxsz-cg .th.on .tag{opacity:1;transform:translate(-50%,0)}

/* ---------- 3 e 5 · la settimana di FL483KT ---------- */
.film .fxsz-wk{padding:6px 14px 6px}
.film .fxsz-hrs{display:grid;grid-template-columns:84px 1fr;height:26px}
.film .fxsz-hrs>div{position:relative}
.film .fxsz-hrs i{position:absolute;top:50%;transform:translate(-50%,-50%);font:600 10px/1 var(--mono);font-style:normal;color:#9aa1ad}
.film .fxsz-days{position:relative;z-index:0}
.film .fxsz-scan{position:absolute;left:-8px;right:-8px;top:0;height:56px;z-index:-1;border-radius:10px;background:#F4FAEE;box-shadow:inset 0 0 0 1px #DDEFC9;opacity:0;transition:transform .32s var(--fe-out),opacity .3s ease}
.film .fxsz-scan.in{opacity:1}
.film .fxsz-day{display:grid;grid-template-columns:84px 1fr;align-items:center;height:56px;border-top:1px solid #F2F4EF}
.film .fxsz-day .dl b{font-size:12.5px;font-weight:800}
.film .fxsz-day .dl span{margin-left:5px;font-size:11.5px;font-weight:600;color:#8B948E}
/* una riga ogni due ore, sulle ore pari (la corsia parte alle 5) */
.film .fxsz-day .ln{position:relative;height:40px;border-radius:9px;background:repeating-linear-gradient(90deg,transparent 0 calc(100% / 14),#EEF1EA calc(100% / 14) calc(100% / 14 + 1px),transparent calc(100% / 14 + 1px) calc(100% / 7))}
.film .fxsz-gb{position:absolute;top:5px;bottom:5px;display:flex;align-items:center;gap:5px;padding:0 9px;border-radius:7px;background:#EDF0EA;color:#4c5550;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-gb b{font:800 10.5px/1 var(--mono)}
.film .fxsz-gb .s,.film .fxsz-slot .s{display:none}
.film .fxsz-gb .l{overflow:hidden;text-overflow:ellipsis}
.film .fxsz-gb.v{background:#E7EFFA;color:#2B5BB0}
.film .fxsz-free{position:absolute;top:3px;bottom:3px;border:1.5px dashed #B5D896;border-radius:8px;background:#F6FBF1;opacity:0;transition:opacity .4s ease}
.film .fxsz-free.in{opacity:1}
.film .fxsz-free em{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-style:normal;font-size:10.5px;font-weight:700;color:#2F6B12;white-space:nowrap}
.film .fxsz-slot{position:absolute;top:5px;bottom:5px;z-index:1;opacity:0;transform:scale(.9);transition:opacity .3s ease,transform .5s var(--fe-out)}
.film .fxsz-slot.in{opacity:1;transform:none}
.film .fxsz-slot.gone{opacity:0}
.film .fxsz-slot .a,.film .fxsz-slot .b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;transition:opacity .35s ease}
.film .fxsz-slot .a{border:1.5px dashed var(--act);background:#fff;color:#2F6B12}
.film .fxsz-slot .b{background:var(--act);color:#fff;opacity:0}
.film .fxsz-slot svg{width:12px;height:12px;flex-shrink:0}
.film .fxsz-slot.booked .a{opacity:0}
.film .fxsz-slot.booked .b{opacity:1}
.film .fxsz-slot.alt .a{border-color:#C9D0C3;color:#7E8882}
.film .fxsz-wa{position:absolute;right:-7px;top:-9px;width:20px;height:20px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 0 0 2px #fff;opacity:0;transform:scale(.5);transition:opacity .2s ease,transform .45s var(--fe-out)}
.film .fxsz-wa svg{width:11px;height:11px}
.film .fxsz-wa.in{opacity:1;transform:none}

/* ---------- 4 e 5 · la mail all'officina ---------- */
.film .fxsz-mg{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:16px;align-items:start}
.film .fxsz-thr{display:grid;gap:10px}
.film .fxsz-msg{padding:14px 18px}
.film .fxsz-msg header{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.film .fxsz-msg header .who{flex:1;min-width:0}
.film .fxsz-msg header .who small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-msg header em{flex-shrink:0;font-style:normal;font-size:10.5px;color:#8B948E}
.film .fxsz-msg .lg.ini{background:#E3ECF7;border-color:#D7E3F3;color:#2B5BB0;font-size:11px;font-weight:800}
.film .fxsz-msg h5{margin:0 0 6px;font-size:14.5px;font-weight:800;letter-spacing:-.01em}
.film .fxsz-ln{margin:0;font-size:12.5px;line-height:1.6;color:#3d4452;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .5s var(--fe-out)}
.film .fxsz-ln+.fxsz-ln{margin-top:6px}
.film .fxsz-ln.in{opacity:1;transform:none}
.film .fxsz-ln b,.film .fxsz-rt b{font-weight:700;color:#121712}
.film .fxsz-mst{display:grid;margin-top:12px;padding-top:10px;border-top:1px solid #F1F3EE;font-size:11.5px;font-weight:600}
.film .fxsz-mst>span{grid-area:1/1;display:flex;align-items:center;gap:7px;transition:opacity .3s ease,transform .45s var(--fe-out)}
.film .fxsz-mst .a{color:#8B948E}
.film .fxsz-mst .b{color:#2F6B12;opacity:0;transform:translateY(5px)}
.film .fxsz-mst svg{width:13px;height:13px}
.film .fxsz-mst.sent .a{opacity:0;transform:translateY(-5px)}
.film .fxsz-mst.sent .b{opacity:1;transform:none}
.film .fxsz-mst .dots{display:inline-flex;gap:3px}
.film .fxsz-mst .dots i{width:4px;height:4px;border-radius:50%;background:#A9B1AB;opacity:.3}
/* i puntini si muovono solo mentre la mail si scrive */
.film .fxsz-msg.in .fxsz-mst:not(.sent) .dots i{animation:fxsz-dot 1.1s ease-in-out infinite}
.film .fxsz-mst .dots i:nth-child(2){animation-delay:.15s}
.film .fxsz-mst .dots i:nth-child(3){animation-delay:.3s}
@keyframes fxsz-dot{0%,70%,100%{opacity:.3}35%{opacity:1}}
.film .fxsz-rt{position:relative;z-index:0;margin:0;font-size:12.5px;line-height:1.6;color:#3d4452}
.film .fxsz-rt mark{position:relative;background:none;color:inherit;font-weight:700}
.film .fxsz-rt mark::before{content:"";position:absolute;inset:0 -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 .fxsz-rt mark.on::before{opacity:1;transform:none}
.film .fxsz-prop{padding:14px 16px 12px}
.film .fxsz-prop h6{margin-bottom:2px}
.film .fxsz-op{display:flex;align-items:center;gap:10px;height:58px;border-top:1px solid #F1F3EE}
.film .fxsz-prop h6+.fxsz-op{border-top:0}
.film .fxsz-dt{width:38px;height:40px;flex-shrink:0;border-radius:9px;border:1px solid #E5E9E1;background:#fff;display:grid;place-items:center;align-content:center;line-height:1.05}
.film .fxsz-dt small{font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#D64533}
.film .fxsz-dt b{font-size:15px;font-weight:800}
.film .fxsz-op .tx{flex:1;min-width:0}
.film .fxsz-op .tx b{display:block;font-size:12.5px;font-weight:700;white-space:nowrap}
.film .fxsz-op .tx small{display:block;margin-top:1px;font-size:10.5px;color:#7E8882;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-op .fxsz-dt,.film .fxsz-op .tx{transition:opacity .4s ease}
.film .fxsz-op.dim .fxsz-dt,.film .fxsz-op.dim .tx,.film .fxsz-op.dim .fxsz-st{opacity:.45}
.film .fxsz-st{display:grid;justify-items:end;flex-shrink:0;transition:opacity .4s ease}
.film .fxsz-st>.pill{grid-area:1/1;transition:opacity .25s ease,transform .45s var(--fe-out)}
.film .fxsz-st>.pill.b{opacity:0;transform:scale(.85)}
.film .fxsz-st.ok>.pill.a{opacity:0;transform:scale(.9)}
.film .fxsz-st.ok>.pill.b{opacity:1;transform:none}
.film .fxsz-kv{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin:8px 0 0;padding-top:10px;border-top:1px solid #F1F3EE}
.film .fxsz-kv dt{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8B948E}
.film .fxsz-kv dd{margin:2px 0 0;font-size:11.5px;font-weight:700}

/* ---------- 7 · la storia del mezzo ---------- */
.film .fxsz-sg{display:grid;grid-template-columns:minmax(0,1fr) 336px;gap:16px;align-items:start}
.film .fxsz-tl{padding:12px 14px}
.film .fxsz-tlh{display:flex;align-items:center;justify-content:space-between;margin:0 2px 6px}
.film .fxsz-tlh h6{margin:0}
.film .fxsz-tlh span{font-size:10.5px;font-weight:600;color:#9AA29C}
/* cinque righe: il tagliando nuovo in cima, sotto c'è ancora quello di aprile (sul telefono quattro) */
.film .fxsz-tis{--slot:58px;position:relative;z-index:0;height:calc(var(--slot) * 5);overflow:hidden}
.film .fxsz-ti{position:relative;display:flex;align-items:center;gap:11px;height:var(--slot);padding:0 8px;border-top:1px solid #F1F3EE;transition:transform .7s var(--fe-out),opacity .4s ease}
.film .fxsz-ti::after{content:"";position:absolute;inset:3px 0;z-index:-1;border-radius:10px;background:#F7FBF2;box-shadow:inset 0 0 0 1.5px #A9D383;opacity:0;transition:opacity .4s ease}
.film .fxsz-ti.hl::after{opacity:1}
.film .fxsz-ti.up{transform:translateY(calc(-1 * var(--slot)))}
.film .fxsz-ti.new{opacity:0;transform:scale(.97)}
.film .fxsz-ti.new.in{opacity:1;transform:none}
.film .fxsz-ti.gone{opacity:0}
.film .fxsz-ti .dt{width:40px;flex-shrink:0;font-size:11px;font-weight:700;color:#8B948E}
.film .fxsz-ti .ic{width:44px;height:33px;flex-shrink:0;border-radius:7px;background:#F1F4EE;color:#5b655f;display:grid;place-items:center}
.film .fxsz-ti .ic svg{width:15px;height:15px}
.film .fxsz-ti .tx{flex:1;min-width:0}
.film .fxsz-ti .tx b{display:block;font-size:12.5px;font-weight:700}
.film .fxsz-ti .tx small{display:block;margin-top:1px;font-size:11px;color:#7E8882;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-ti .am{flex-shrink:0;font-size:12.5px;font-weight:800}
/* l'importo del tagliando compare quando arriva la fattura */
.film .fxsz-amt{display:inline-block;opacity:0;transform:translateY(4px);transition:opacity .3s ease,transform .45s var(--fe-out)}
.film .fxsz-amt.in{opacity:1;transform:none}
/* la foto del lavoro: officina.jpg ritagliata sul vano motore, in 4:3 (niente marchio) */
.film .fxsz-crop{position:absolute;inset:0;overflow:hidden}
.film .fxsz-crop img{position:absolute;left:-90.48%;top:-52.38%;width:190.48%;height:169.37%;max-width:none}
.film .fxsz-tth{position:relative;display:block;width:44px;height:33px;border-radius:7px;overflow:hidden;background:#E8EBE6}
.film .fxsz-tth .fxsz-crop{opacity:0;transition:opacity .3s ease}
.film .fxsz-tth.in .fxsz-crop{opacity:1}
.film .fxsz-next{display:flex;align-items:center;gap:10px;margin-top:10px;padding:9px 12px;border-radius:11px;background:#F4FAEE;border:1px solid #DDEFC9}
.film .fxsz-next .ic{width:30px;height:30px;flex-shrink:0;border-radius:8px;background:#fff;color:#3B6E00;display:grid;place-items:center}
.film .fxsz-next .ic svg{width:14px;height:14px}
.film .fxsz-next .tx{flex:1;min-width:0}
.film .fxsz-next .tx b{display:block;font-size:12.5px;font-weight:700}
.film .fxsz-next .tx small{display:block;margin-top:1px;font-size:10.5px;color:#5E6B62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.film .fxsz-inc{display:grid;gap:10px}
.film .fxsz-inm{padding:12px 14px}
.film .fxsz-inm header{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.film .fxsz-inb{display:flex;align-items:flex-start;gap:12px}
.film .fxsz-ph{position:relative;display:block;width:104px;height:78px;flex-shrink:0;border-radius:8px;overflow:hidden;background:#E8EBE6}
.film .fxsz-inb p{margin:0;font-size:12px;line-height:1.5;color:#3d4452}
.film .fxsz-inb small{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:10.5px;font-weight:600;color:#7E8882}
.film .fxsz-inb small svg{width:11px;height:11px}
.film .fxsz-inv{padding:12px 14px}
.film .fxsz-inv header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.film .fxsz-inv header .x{flex-shrink:0;width:26px;height:30px;border-radius:5px;display:grid;place-items:center;font-size:7.5px;font-weight:800;color:#fff;background:#5B6B7A}
.film .fxsz-inv .fm-tr{height:26px;font-size:11px}
.film .fxsz-inv .fm-tr[data-h]{height:22px}
.film .fxsz-tot{margin-top:4px;padding-top:4px;border-top:1px solid #E3E7DE}
.film .fxsz-tot>div{position:relative;display:flex;align-items:center;justify-content:space-between;height:22px;padding:0 8px;border-radius:7px;font-size:11px;color:#5E6B62}
.film .fxsz-tot b{font-size:11.5px;font-weight:700;color:#121712}
.film .fxsz-tot>div:first-child span{font-weight:700;color:#121712}
.film .fxsz-tot>div:first-child b{font-size:12.5px;font-weight:800}
.film .fxsz-tot .fm-ring::after{inset:0;border-radius:7px;box-shadow:inset 0 0 0 1.5px #A9D383;background:rgba(234,246,223,.55);z-index:-1}
.film .fxsz-tot .fm-ring{z-index:0}
.film .fxsz-tot .fm-ring.hl::after{opacity:1}
.film .fxsz-on{display:flex;align-items:center;gap:7px;margin-top:8px;padding:7px 10px;border-radius:9px;background:#EAF6DF;color:#2F6B12;font-size:11px;font-weight:600;line-height:1.35}
.film .fxsz-on svg{width:13px;height:13px;flex-shrink:0}
.film .fxsz-on b{font-weight:800}

/* la foto che vola dalla mail dell'officina alla storia del mezzo (come .fm-fly, con il ritaglio) */
.film .fxsz-fly{position:absolute;left:0;top:0;z-index:8;border-radius:8px;overflow:hidden;pointer-events:none;transform-origin:0 0;opacity:0;background:#E8EBE6;
  box-shadow:0 18px 40px -16px rgba(18,24,20,.45);transition:transform .9s var(--fe-io),opacity .25s ease}
.film .fxsz-fly.in{opacity:1}
.film .fxsz-fly.done{opacity:0;transition:opacity .3s ease}

/* ---------- telefono (finestra quadrata, la camera inquadra un pannello alla volta) ---------- */
.film .film-player.is-narrow .fxsz-hp,.film .film-player.is-narrow .fxsz-seg{display:none}
/* 1 · scadenze: tessere 2 × 2, righe su due livelli (scadenza e stato, mezzo e data) */
.film .film-player.is-narrow .fxsz-kpis{width:356px;grid-template-columns:1fr 1fr}
.film .film-player.is-narrow .fxsz-list{width:356px;padding:2px 12px}
.film .film-player.is-narrow .fxsz-th{display:none}
.film .film-player.is-narrow .fxsz-rows{--slot:64px}
.film .film-player.is-narrow .fxsz-r{grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"ic tx st" "ic sb qd";column-gap:10px;row-gap:5px;align-content:center;padding:0 4px}
.film .film-player.is-narrow .fxsz-r .ic{grid-area:ic;width:30px;height:30px}
.film .film-player.is-narrow .fxsz-r .tx{grid-area:tx}
.film .film-player.is-narrow .fxsz-r .tx small{display:none}
.film .film-player.is-narrow .fxsz-r .sb{grid-area:sb}
.film .film-player.is-narrow .fxsz-r .qd{grid-area:qd;display:flex;align-items:baseline;gap:6px;justify-self:end}
.film .film-player.is-narrow .fxsz-r .qd small{margin:0}
.film .film-player.is-narrow .fxsz-r .st{grid-area:st}
/* 2 · km: i due riquadri uno sotto l'altro */
.film .film-player.is-narrow .fxsz-kmg{grid-template-columns:356px}
/* 3 · settimana: stretta sulle ore 5-19, etichette più piccole */
.film .film-player.is-narrow .fxsz-wk{width:356px;padding:6px 10px}
.film .film-player.is-narrow .fxsz-hrs,.film .film-player.is-narrow .fxsz-day{grid-template-columns:42px 1fr}
.film .film-player.is-narrow .fxsz-day .dl{display:grid;line-height:1.2}
.film .film-player.is-narrow .fxsz-day .dl span{margin:0}
.film .film-player.is-narrow .fxsz-gb{padding:0 5px;font-size:9.5px}
.film .film-player.is-narrow .fxsz-gb .l,.film .film-player.is-narrow .fxsz-slot .l{display:none}
.film .film-player.is-narrow .fxsz-gb .s,.film .film-player.is-narrow .fxsz-slot .s{display:inline}
.film .film-player.is-narrow .fxsz-gb b{font-size:9px}
.film .film-player.is-narrow .fxsz-free em{display:none}
.film .film-player.is-narrow .fxsz-slot .a,.film .film-player.is-narrow .fxsz-slot .b{font-size:9.5px;gap:3px}
.film .film-player.is-narrow .fxsz-slot svg{width:10px;height:10px}
.film .film-player.is-narrow .fxsz-wk+.fxsz-say{width:356px}
/* 4 e 5 · mail: la proposta sotto la conversazione */
.film .film-player.is-narrow .fxsz-mg{grid-template-columns:356px}
/* 7 · storia: le fatture e la foto in arrivo sotto gli interventi */
.film .film-player.is-narrow .fxsz-sg{grid-template-columns:356px}
.film .film-player.is-narrow .fxsz-ti .tx small{white-space:normal;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.film .film-player.is-narrow .fxsz-ti .dt{width:34px}
.film .film-player.is-narrow .fxsz-tis{height:calc(var(--slot) * 4)}
.film .film-player.is-narrow .fxsz-next .pill{display:none}

@media (prefers-reduced-motion: reduce){.film .fxsz-msg.in .fxsz-mst .dots i{animation:none}}
