.sc-preventivo { display: flex; flex-direction: column; align-items: center; width: 100%; font-family: var(--sans); }
.sc-preventivo .pv-phone { width: 320px; max-width: 100%; background: #0e1a2b; border-radius: 40px; padding: 12px; box-shadow: 0 60px 100px -40px rgba(14,38,71,.6), inset 0 0 0 2px #1d2c44; transform: rotate(-2deg); }
.sc-preventivo .pv-screen { position: relative; overflow: hidden; height: 540px; border-radius: 30px; background: var(--bg); color: var(--ink); }
.sc-preventivo .pv-notch { position: absolute; z-index: 6; top: 8px; left: 50%; width: 84px; height: 20px; margin-left: -42px; border-radius: 12px; background: #0e1a2b; }

/* schermata bloccata con notifica */
.sc-preventivo .pv-lock { position: absolute; inset: 0; z-index: 3; background: var(--navy); padding: 70px 16px 0; transition: opacity .5s ease; }
.sc-preventivo .pv-time { margin: 0 0 26px; text-align: center; font-size: 56px; font-weight: 500; color: var(--hero-text); letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1; }
.sc-preventivo .pv-notif { background: rgba(247,244,238,.96); border-radius: 16px; padding: 12px 14px 14px; opacity: 0; transform: translateY(-16px); transition: opacity .5s ease, transform .5s cubic-bezier(.2,.9,.3,1); }
.sc-preventivo .pv-notif-head { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; color: var(--navy); margin-bottom: 8px; }
.sc-preventivo .pv-notif-head img { display: block; border-radius: 6px; }
.sc-preventivo .pv-notif-head em { margin-left: auto; font-style: normal; font-weight: 400; color: var(--muted); }
.sc-preventivo .pv-notif p { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--navy); }
.sc-preventivo.is-notifica .pv-notif { opacity: 1; transform: none; }
.sc-preventivo.is-aperto .pv-lock { opacity: 0; pointer-events: none; }

/* preventivo */
.sc-preventivo .pv-doc { position: absolute; inset: 0; z-index: 1; overflow: hidden; }
.sc-preventivo .pv-bar { position: absolute; z-index: 2; top: 0; left: 0; right: 0; padding: 36px 20px 9px; background: var(--bg); border-bottom: 1px solid var(--line); font-size: 11px; letter-spacing: .02em; color: var(--navy); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-preventivo .pv-scroll { padding: 70px 20px 26px; display: flex; flex-direction: column; gap: 14px; transition: transform 1.3s cubic-bezier(.45,0,.25,1); transform: translateY(0); will-change: transform; }
.sc-preventivo.is-scroll .pv-scroll { transform: translateY(calc(var(--pv-scroll, 0px) * -1)); }
.sc-preventivo h3 { margin: 0; font-size: 21px; white-space: nowrap; }
.sc-preventivo .pv-meta { margin: 0; font-size: 13px; color: var(--muted); }
.sc-preventivo .pv-lines { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 4px 14px; }
.sc-preventivo .pv-lines div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; font-size: 14px; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.sc-preventivo .pv-lines div span:last-child { white-space: nowrap; }
.sc-preventivo .pv-lines div:last-child { border-bottom: 0; }
.sc-preventivo .pv-lines .pv-tot { font-weight: 700; color: var(--navy); font-size: 15px; }
.sc-preventivo .pv-hint { margin: 0; text-align: center; font-size: 13px; color: var(--muted); }
.sc-preventivo .pv-code { display: flex; justify-content: center; gap: 7px; }
.sc-preventivo .pv-code span { width: 38px; height: 46px; border-radius: 10px; background: var(--card); border: 1px solid var(--line); display: grid; place-items: center; font-size: 22px; font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; }
.sc-preventivo .pv-code span.on { border-color: var(--navy); background: var(--info-bg); }
.sc-preventivo .pv-btn { text-align: center; background: var(--navy); color: #fff; font-weight: 600; font-size: 15px; padding: 14px; border-radius: 14px; transition: transform .2s ease, background .2s; }
.sc-preventivo .pv-btn.is-press { transform: scale(.96); background: var(--navy-2); }

.sc-preventivo .pv-stamp { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; opacity: 0; transition: opacity .2s; }
.sc-preventivo .pv-stamp div { border: 4px solid var(--ok); color: var(--ok); font-weight: 700; font-size: 29px; letter-spacing: .06em; text-transform: uppercase; padding: 4px 16px; border-width: 3px; border-radius: 8px; transform: rotate(-14deg) scale(1.6); background: rgba(247,244,238,.88); }
.sc-preventivo.is-timbro .pv-stamp { opacity: 1; }
.sc-preventivo.is-timbro .pv-stamp div { animation: pv-stamp .45s cubic-bezier(.2,1.4,.4,1) forwards; }
@keyframes pv-stamp { from { transform: rotate(-14deg) scale(1.6); opacity: 0; } to { transform: rotate(-14deg) scale(1); opacity: 1; } }

/* dito */
.sc-preventivo .pv-finger { position: absolute; z-index: 7; left: 0; top: 0; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; background: rgba(201,169,106,.45); border: 2px solid var(--brass); opacity: 0; pointer-events: none; transform: translate(160px, 300px); transition: transform .6s cubic-bezier(.3,.7,.3,1), opacity .25s; }
.sc-preventivo .pv-finger.is-on { opacity: 1; }
.sc-preventivo .pv-finger.is-tap { animation: pv-tap .4s ease; }
@keyframes pv-tap { 0% { scale: 1; } 40% { scale: .7; } 100% { scale: 1; } }

/* scheda del lavoro */
.sc-preventivo .pv-job { display: flex; align-items: center; gap: 12px; width: 300px; max-width: 100%; margin-top: 22px; padding: 12px 16px; background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--ok); border-radius: 14px; font-size: 14px; font-weight: 500; color: var(--navy); opacity: 0; transform: translateY(-14px) scale(.96); transition: opacity .5s ease, transform .5s cubic-bezier(.2,.9,.3,1); }
.sc-preventivo .pv-job i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--ok); }
.sc-preventivo .pv-job small { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--muted); margin-bottom: 2px; }
.sc-preventivo.is-job .pv-job { opacity: 1; transform: none; }
.sc-preventivo.is-via .pv-job { opacity: 0; transform: translateX(90px) scale(.94); transition: opacity .9s ease, transform 1s cubic-bezier(.5,0,.8,.5); }

.sc-preventivo.is-reset, .sc-preventivo.is-reset * { transition: none !important; animation: none !important; }
.sc-preventivo.is-fermo, .sc-preventivo.is-fermo * { transition: none !important; animation: none !important; }
.sc-preventivo.is-fermo .pv-stamp div { transform: rotate(-14deg) scale(1); }
@media (max-width: 860px) { .sc-preventivo .pv-phone { transform: none; } }
@media (max-width: 360px) { .sc-preventivo .pv-code span { width: 34px; height: 42px; } }
