/* Font Barlow e Barlow Condensed ospitati sul Lab (niente richieste a Google a ogni apertura). */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/Barlow-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/Barlow-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/Barlow-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/Barlow-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/Barlow-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/Barlow-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/Barlow-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/Barlow-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/static/fonts/BarlowCondensed-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Magazzino Barberino — direzione A. Officina v2 */
:root{
  --paper:#ECEBE6; --card:#FAFAF7; --ink:#15171A; --line:#CFCEC6; --muted:#5E615F;
  --orange:#FF6A13; --yellow:#FFC400; --green:#0E8A3E; --red:#D92B1E;
  --cond:'Barlow Condensed',sans-serif; --body:'Barlow',sans-serif;
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);
  --safe-l:env(safe-area-inset-left,0px);
  --safe-r:env(safe-area-inset-right,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);font-family:var(--body);color:var(--ink);font-size:16px;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.app{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;padding-bottom:calc(86px + var(--safe-b));background:var(--paper)}
@media (min-width:520px){body{background:#D9D8D2}.app{box-shadow:0 0 0 1px rgba(0,0,0,.08)}}

/* barra alta */
.top{background:var(--ink);color:#fff;padding:calc(14px + var(--safe-t)) 20px 18px}
.top .where{font-size:14px;color:#B9BBB8}
.top .where b{color:var(--yellow);font-weight:600}
.top h1{font-family:var(--cond);font-weight:800;font-size:34px;line-height:1.05;margin-top:4px}
.top .row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.top .act{font-family:var(--cond);font-weight:700;font-size:17px;border:2px solid #fff;border-radius:10px;padding:6px 12px;white-space:nowrap}
.hz{height:14px;background:repeating-linear-gradient(-45deg,var(--yellow) 0 14px,var(--ink) 14px 28px)}
.body{padding:18px 18px 0;display:flex;flex-direction:column;gap:12px}
.sec{font-family:var(--cond);font-weight:700;font-size:20px;margin:8px 2px -2px}

/* cartellino */
.tag{background:var(--card);border:2px solid var(--ink);border-radius:10px;position:relative;padding:12px 14px;display:block}
.tag.hole{border-radius:6px 22px 22px 6px;padding-left:44px}
.tag.hole::before{content:"";position:absolute;left:14px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--paper);border:2px solid var(--ink)}
.tag.orange{background:var(--orange)}
.big-tag{display:flex;justify-content:space-between;align-items:center}
.big-tag .n{font-family:var(--cond);font-weight:800;font-size:76px;line-height:.85}
.big-tag .t{font-family:var(--cond);font-weight:700;font-size:26px;line-height:1.05}
.big-tag .s{font-size:15px;margin-top:4px;font-weight:500}
.item{display:flex;align-items:center;gap:12px}
.item .txt{flex:1;min-width:0}
.name{font-weight:600;font-size:17px;line-height:1.2}
.sub{font-size:14px;color:var(--muted)}
.qty{font-family:var(--cond);font-weight:800;font-size:30px;line-height:1;text-align:right}
.qty small{display:block;font-family:var(--body);font-weight:500;font-size:12px;color:var(--muted)}
.bar-low{height:8px;border-radius:4px;background:var(--line);margin-top:6px;overflow:hidden}
.bar-low i{display:block;height:100%;background:var(--orange)}
.log{font-size:15px;color:var(--muted);line-height:1.7;padding:0 4px}
.log b{color:var(--ink);font-weight:600}
.empty{border:2px dashed var(--line);border-radius:14px;padding:18px;color:var(--muted);text-align:center;font-size:15px}
.empty .btn{margin-top:12px}

/* avvisi */
.demo{background:var(--yellow);border:2px solid var(--ink);border-radius:12px;padding:12px 14px;font-size:15px;display:flex;gap:10px;align-items:center;justify-content:space-between}
.demo button{background:var(--ink);color:#fff;border:0;border-radius:8px;padding:8px 10px;font-family:var(--cond);font-weight:700;font-size:16px;white-space:nowrap}
.toast{position:fixed;left:50%;transform:translateX(-50%);top:calc(10px + var(--safe-t));z-index:50;width:calc(100% - 28px);max-width:452px;background:var(--ink);color:#fff;border-radius:12px;padding:12px 16px;font-weight:600;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.25);animation:toast 4s forwards}
@keyframes toast{0%{opacity:0;transform:translate(-50%,-8px)}6%,85%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){.toast{animation:none}}

/* navigazione */
.nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;padding:4px 4px max(var(--safe-b),6px);background:var(--card);border-top:2px solid var(--ink);display:flex;justify-content:space-around;align-items:flex-start;z-index:20}
.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:56px;font-size:12px;font-weight:600;color:var(--muted);width:74px;text-align:center;line-height:1.1}
.nav a.on{color:var(--ink)}
.nav svg{width:26px;height:26px}
.nav .scan{width:74px;height:74px;margin-top:-26px;background:var(--orange);border:3px solid var(--ink);border-radius:20px;color:var(--ink);justify-content:center}
.nav .scan svg{width:36px;height:36px}

/* pulsanti */
.btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:60px;border-radius:14px;font-family:var(--cond);font-weight:700;font-size:23px;border:0;width:100%;cursor:pointer}
.btn.primary{background:var(--ink);color:#fff}
.btn.orange{background:var(--orange);color:var(--ink);border:2px solid var(--ink)}
.btn.ghost{background:transparent;border:2px solid var(--ink);font-size:21px;min-height:54px}
.btn.danger{background:transparent;color:var(--red);border:2px solid var(--red);font-size:19px;min-height:50px}
.btn.small{min-height:44px;font-size:18px;width:auto;padding:0 16px}

/* esito */
.verdict{min-height:100vh;min-height:100dvh;color:#fff;display:flex;flex-direction:column}
.verdict.ok{background:var(--green)}
.verdict.no{background:var(--red)}
.verdict.check{background:var(--yellow);color:var(--ink)}
.verdict.none{background:#3A3D40}
.verdict .hero{padding:calc(26px + var(--safe-t)) 24px 26px}
.verdict .mark{width:92px;height:92px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center}
.verdict.ok .mark{color:var(--green)} .verdict.no .mark{color:var(--red)} .verdict.check .mark{background:var(--ink);color:var(--yellow)} .verdict.none .mark{color:#3A3D40}
.verdict .mark svg{width:58px;height:58px}
.verdict h1{font-family:var(--cond);font-weight:800;font-size:44px;line-height:1;margin-top:18px}
.verdict .hero p{font-size:18px;margin-top:8px;opacity:.85}
.verdict .close{position:absolute;right:16px;top:calc(16px + var(--safe-t));width:44px;height:44px;border-radius:12px;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}
.sheet{background:var(--paper);color:var(--ink);border-radius:26px 26px 0 0;padding:20px 18px calc(28px + var(--safe-b));flex:1;display:flex;flex-direction:column}
.sheet h2{font-family:var(--cond);font-weight:700;font-size:21px}
.match{width:100%;border-collapse:collapse;margin-top:12px;font-size:16px}
.match th{font-size:13px;color:var(--muted);font-weight:600;text-align:left;padding:4px}
.match td{padding:9px 4px;border-bottom:1px solid var(--line)}
.match td.v{font-family:var(--cond);font-weight:700;font-size:20px}
.match .y{color:var(--green);font-weight:800;text-align:right}
.match .x{color:var(--red);font-weight:800;text-align:right}
.match .q{color:#8A6A00;font-weight:800;text-align:right}
.src{font-size:13px;color:var(--muted);margin-top:10px}
.others{margin-top:14px;font-size:15px;line-height:1.7}
.others b{font-weight:600}
.sheet .actions{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:10px}

/* palco della scheda macchina */
.stage{height:330px;position:relative;border-bottom:2px solid var(--ink);overflow:hidden;background:
  radial-gradient(ellipse at 50% 72%,rgba(21,23,26,.18),transparent 38%),
  linear-gradient(var(--line) 1px,transparent 1px) 0 0/24px 24px,
  linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/24px 24px,#F3F2EE}
.stage .pane{position:absolute;inset:0;display:none}
.stage .pane.on{display:block}
.stage model-viewer{width:100%;height:100%;--poster-color:transparent;background:transparent}
.stage .photo{width:100%;height:100%;object-fit:contain;padding:56px 12px 60px}
.stage .ill{position:absolute;left:50%;top:96px;width:342px;margin-left:-171px}
.stage .ill svg{width:100%;height:auto}
.q1{position:absolute;left:calc(50% + 18px);width:150px;top:84px;height:14px;border-left:2px solid var(--ink);border-right:2px solid var(--ink)}
.q2{position:absolute;left:calc(50% - 128px);width:150px;top:222px;height:14px;border-left:2px solid var(--ink);border-right:2px solid var(--ink)}
.q1::before,.q2::before{content:"";position:absolute;left:0;right:0;top:6px;border-top:2px solid var(--ink)}
.q1 span,.q2 span,.dimchip{background:var(--yellow);border:2px solid var(--ink);border-radius:6px;padding:1px 8px;font-family:var(--cond);font-weight:700;font-size:15px;white-space:nowrap}
.q1 span,.q2 span{position:absolute;left:50%;transform:translateX(-50%)}
.q1 span{top:-16px} .q2 span{top:12px}
.dims{position:absolute;left:14px;bottom:62px;display:flex;flex-wrap:wrap;gap:6px;z-index:2}
.seg3{position:absolute;left:50%;transform:translateX(-50%);bottom:12px;display:flex;background:var(--card);border:2px solid var(--ink);border-radius:12px;overflow:hidden;z-index:3}
.seg3 button{font-family:var(--cond);font-weight:700;font-size:17px;padding:7px 16px;background:none;border:0}
.seg3 button+button{border-left:2px solid var(--ink)}
.seg3 button.on{background:var(--ink);color:#fff}
.seg3 button:disabled{color:#A7A9A5}
.back{position:absolute;left:14px;top:calc(12px + var(--safe-t));width:44px;height:44px;border-radius:12px;background:var(--card);border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;z-index:4}
.edit{position:absolute;right:14px;top:calc(12px + var(--safe-t));height:44px;padding:0 14px;border-radius:12px;background:var(--card);border:2px solid var(--ink);display:flex;align-items:center;font-family:var(--cond);font-weight:700;font-size:17px;z-index:4}
.hint{position:absolute;left:16px;top:calc(68px + var(--safe-t));font-size:13px;font-weight:600;color:var(--muted)}
.nofile{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:15px;text-align:center;padding:40px}
.mhead{padding:14px 18px 6px}
.mhead h1{font-family:var(--cond);font-weight:800;font-size:38px;line-height:1}
.mhead p{font-size:14px;color:var(--muted);margin-top:4px}
.mhead p a{text-decoration:underline}
.specs{padding:6px 18px;display:flex;flex-direction:column;gap:9px}
.spec{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center;background:var(--card);border:2px solid var(--ink);border-radius:10px;padding:9px 12px}
.spec .k{font-family:var(--cond);font-weight:700;font-size:18px;line-height:1.1}
.spec .v{font-size:14px;line-height:1.25}
.spec .v small{display:block;color:var(--muted);font-size:12px}
.pill{font-family:var(--cond);font-weight:700;font-size:16px;padding:4px 10px;border-radius:8px;white-space:nowrap}
.pill.g{background:#D6EEDD;color:#0A5E2B}
.pill.o{background:var(--orange);color:var(--ink)}
.pill.y{background:var(--yellow);color:var(--ink)}
.pill.k{background:var(--ink);color:#fff}

/* elenco macchine */
.mcard{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center;padding:10px 14px}
.mcard .thumb{height:64px;border-radius:8px;background:#F3F2EE;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden}
.mcard .thumb img{width:100%;height:100%;object-fit:cover}
.mcard .thumb svg{width:84px}
.mcard .st{margin-top:6px;display:inline-block}

/* scorte */
.stock{padding:12px}
.stock .head{display:flex;gap:10px;align-items:flex-start}
.stock .head .txt{flex:1;min-width:0}
.stock .ctrl{display:flex;gap:8px;margin-top:10px}
.stock .ctrl form{display:contents}
.stock .ctrl button{height:44px;border-radius:10px;border:2px solid var(--ink);background:var(--card);font-family:var(--cond);font-weight:700;font-size:20px;flex:1}
.stock .ctrl button.fin{background:var(--ink);color:#fff;flex:1.4;font-size:18px}
.stock.low{border-color:var(--orange)}
.stock .qty.zero{color:var(--red)}
.search{width:100%;height:52px;border:2px solid var(--ink);border-radius:12px;padding:0 14px;background:var(--card);font-size:17px}

/* da comprare */
.buy{padding:8px 18px;display:flex;flex-direction:column;gap:7px}
.grp{display:flex;align-items:center;gap:8px;font-family:var(--cond);font-weight:700;font-size:19px;margin-top:6px}
.grp .c{font-size:15px;min-width:26px;height:24px;padding:0 7px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--ink)}
.grp .c.r{background:var(--red);color:#fff} .grp .c.y{background:var(--yellow)} .grp .c.o{background:var(--orange)} .grp .c.g{background:#D6EEDD}
.buy-it{display:flex;gap:12px;align-items:center;background:var(--card);border:2px solid var(--ink);border-radius:10px;padding:9px 12px}
.buy-it form{display:contents}
.box{width:38px;height:38px;border:3px solid var(--ink);border-radius:8px;flex:none;background:var(--card);cursor:pointer;display:flex;align-items:center;justify-content:center}
.box.done{background:var(--ink);color:var(--yellow)}
.buy-it .txt{flex:1;min-width:0}
.buy-it .why{font-size:13px;color:var(--muted);margin-top:2px}
.buy-it .why b{color:var(--ink);font-weight:600}
.buy-it.done .name{text-decoration:line-through;color:var(--muted)}

/* scansione */
.scan-screen{background:var(--ink);color:#fff;min-height:100vh}
.scan-top{padding:calc(14px + var(--safe-t)) 20px 10px;display:flex;justify-content:space-between;align-items:center}
.scan-top h1{font-family:var(--cond);font-weight:800;font-size:30px}
.scan-top a{width:44px;height:44px;border:2px solid #fff;border-radius:12px;display:flex;align-items:center;justify-content:center}
.viewer{margin:6px 16px;border-radius:20px;overflow:hidden;position:relative;background:#000;aspect-ratio:3/4;border:3px solid var(--orange)}
.viewer video{width:100%;height:100%;object-fit:cover;display:block}
.aim{position:absolute;left:7%;right:7%;top:30%;bottom:30%;pointer-events:none}
.aim i{position:absolute;width:34px;height:34px;border:5px solid var(--yellow)}
.aim i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:8px 0 0 0}
.aim i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 8px 0 0}
.aim i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 8px}
.aim i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 8px 0}
.laser{position:absolute;left:6%;right:6%;top:50%;height:3px;background:var(--orange);box-shadow:0 0 12px var(--orange);animation:laser 1.6s ease-in-out infinite alternate}
@keyframes laser{from{top:12%}to{top:88%}}
@media (prefers-reduced-motion:reduce){.laser{animation:none}}
.scan-ok .viewer{border-color:var(--green)} .scan-ok .laser{background:var(--green);box-shadow:none;animation:none}
.scan-state{position:absolute;left:50%;transform:translateX(-50%);top:12px;background:rgba(21,23,26,.82);border-radius:20px;padding:6px 14px;font-weight:600;font-size:14px;white-space:nowrap}
.viewer .msg{position:absolute;left:12px;right:12px;bottom:12px;background:var(--yellow);color:var(--ink);border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font-weight:600;font-size:15px;line-height:1.35}
.scan-tools{display:flex;gap:8px;margin:12px 16px 0}
.scan-tools .btn{flex:1;min-height:60px}
.scan-tools .btn:disabled{opacity:.6}
.tool{width:72px;border-radius:14px;border:2px solid #fff;background:none;color:#fff;font-family:var(--cond);font-weight:800;font-size:19px}
.tool[aria-pressed=true]{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.manual{margin:12px 16px;display:flex;gap:8px}
.manual input{flex:1;min-width:0;height:56px;border-radius:12px;border:2px solid #fff;background:transparent;color:#fff;padding:0 14px;font-size:19px;letter-spacing:1px}
.manual button{height:56px;border-radius:12px;border:0;background:#fff;color:var(--ink);font-family:var(--cond);font-weight:700;font-size:21px;padding:0 18px}
.no-code{display:flex;flex-direction:column;gap:3px;margin:0 16px 14px;background:var(--yellow);color:var(--ink);border:2px solid #fff;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.35}
.no-code b{font-family:var(--cond);font-weight:800;font-size:21px}
.scan-hint{margin:0 18px;color:#B9BBB8;font-size:14px;line-height:1.5}
.scan-hint a{color:var(--yellow);text-decoration:underline}

/* moduli */
.form{padding:18px;display:flex;flex-direction:column;gap:14px}
.form label{display:flex;flex-direction:column;gap:6px;font-family:var(--cond);font-weight:700;font-size:18px}
.form label small{font-family:var(--body);font-weight:500;font-size:13px;color:var(--muted)}
.form input[type=text],.form input[type=number],.form input[type=url],.form input[type=password],.form select,.form textarea{height:52px;border:2px solid var(--ink);border-radius:12px;padding:0 14px;background:var(--card);font-family:var(--body);font-weight:500;font-size:17px;width:100%}
.form textarea{height:auto;min-height:110px;padding:12px 14px;line-height:1.5}
.form input[type=file]{font-family:var(--body);font-size:14px;font-weight:500}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .check{flex-direction:row;align-items:center;gap:10px;font-family:var(--body);font-weight:600;font-size:16px}
.form .check input{width:26px;height:26px;accent-color:var(--ink)}
.form fieldset{border:2px dashed var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:12px}
.form legend{font-family:var(--cond);font-weight:700;font-size:16px;color:var(--muted);padding:0 6px}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:-6px;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:none}
.chips button{border:2px solid var(--ink);background:var(--card);border-radius:18px;padding:5px 12px;font-weight:600;font-size:14px}

/* accesso */
.login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:28px}
.login h1{font-family:var(--cond);font-weight:800;font-size:44px;line-height:1}
.login p{color:var(--muted);margin:8px 0 22px}
.login input{height:72px;border:3px solid var(--ink);border-radius:14px;text-align:center;font-family:var(--cond);font-weight:800;font-size:40px;letter-spacing:12px;background:var(--card);width:100%;margin-bottom:12px}
.login .err{color:var(--red);font-weight:600;margin-bottom:10px}

/* ricerca con Codex */
.research-card{display:flex;flex-direction:column;gap:3px;text-align:left;width:100%;border:2px solid var(--ink);border-radius:12px;padding:12px 14px 12px 56px;position:relative;background:var(--yellow);cursor:pointer;font-family:var(--body)}
.research-card b{font-family:var(--cond);font-weight:800;font-size:21px;line-height:1.1}
.research-card span{font-size:14px;line-height:1.3}
.research-card::before{content:"";position:absolute;left:14px;top:50%;width:28px;height:28px;margin-top:-14px;border:3px solid var(--ink);border-radius:50%;box-sizing:border-box}
.research-card::after{content:"";position:absolute;left:36px;top:calc(50% + 8px);width:12px;height:3px;background:var(--ink);transform:rotate(45deg);border-radius:2px}
.research-card.todo{background:var(--orange)}
.research-card.run{background:var(--card);overflow:hidden}
.stripe{position:absolute;left:0;right:0;bottom:0;height:6px;background:repeating-linear-gradient(-45deg,var(--yellow) 0 10px,var(--ink) 10px 20px);background-size:28px 28px;animation:stripe 1s linear infinite}
@keyframes stripe{to{background-position:28px 0}}
@media (prefers-reduced-motion:reduce){.stripe{animation:none}}
.progress{height:18px;border:2px solid var(--ink);border-radius:9px;overflow:hidden;background:repeating-linear-gradient(-45deg,var(--yellow) 0 12px,var(--ink) 12px 24px);background-size:34px 34px;animation:stripe 1.2s linear infinite}
@media (prefers-reduced-motion:reduce){.progress{animation:none}}
.wait{background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;font-size:16px;line-height:1.45}
.wait .meta{font-size:13px;color:var(--muted)}
.errbox{background:var(--card);border:2px solid var(--red);border-radius:14px;padding:16px;font-size:16px;line-height:1.45;display:flex;flex-direction:column;gap:12px}
.errbox b{color:var(--red);font-family:var(--cond);font-size:21px}
.summary{font-size:15px;line-height:1.5;color:var(--muted);padding:0 2px}
.prop{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.prop.accepted{border-color:var(--green)}
.prop.rejected{opacity:.5}
.prop .ph{display:flex;justify-content:space-between;align-items:center;gap:10px}
.prop .ph b{font-family:var(--cond);font-weight:800;font-size:22px}
.prop .vals{display:flex;flex-wrap:wrap;gap:6px}
.prop .vals span{background:var(--paper);border:1.5px solid var(--ink);border-radius:8px;padding:3px 9px;font-size:15px}
.prop .vals span i{font-style:normal;color:var(--muted);font-size:13px;margin-right:4px}
.prop .cond{font-size:14px;font-weight:600}
.prop .from{font-size:13px;color:var(--muted);word-break:break-word}
.prop .from a{text-decoration:underline;color:var(--ink)}
.prop .warn{font-size:14px;color:var(--red);font-weight:600}
.prop .acts{display:flex;gap:8px}
.prop .acts form{display:contents}
.prop .acts button{flex:1;height:48px;border-radius:10px;font-family:var(--cond);font-weight:700;font-size:19px;border:2px solid var(--ink);background:var(--card)}
.prop .acts button.yes{background:var(--ink);color:#fff;flex:1.5}
.prop .done{font-family:var(--cond);font-weight:700;font-size:17px;color:var(--green)}
.doc{display:flex;gap:12px;align-items:center}
.doc .txt{flex:1;min-width:0}
.doc .sub{word-break:break-word}
.variant-head{background:var(--yellow);border:2px solid var(--ink);border-radius:12px;padding:10px 14px;font-size:14px;line-height:1.35;display:flex;flex-direction:column;gap:2px}
.variant-head b{font-family:var(--cond);font-weight:800;font-size:20px}
.prop.variant{margin-left:10px;border-left-width:5px}
.prop.alternative{opacity:.5}
details.summary summary{cursor:pointer;list-style:none}
details.summary summary::-webkit-details-marker{display:none}
details.summary[open] summary{display:none}

/* lettura prodotto dalle foto */
.photo-form{padding-bottom:4px}
.ai-card,.ai-done{background:var(--yellow);border:2px solid var(--ink);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.4}
.ai-done{background:var(--card);border-color:var(--ink);border-left:8px solid var(--yellow)}
.ai-card b,.ai-done .ph b{font-family:var(--cond);font-weight:800;font-size:24px;line-height:1.05}
.ai-done .ph{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ai-done .sub{color:var(--muted);font-size:14px}
.ai-done .warn{color:var(--red);font-weight:600}
.ai-done .mini{font-family:var(--body);font-size:14px;font-weight:700}
.ai-done details summary{font-family:var(--cond);font-weight:700;font-size:17px;cursor:pointer}
.ai-done .from{font-size:13px;color:var(--muted);margin-top:4px;word-break:break-word}
.ai-done .from a{text-decoration:underline;color:var(--ink)}
.ai-card input[type=text]{height:50px;border:2px solid var(--ink);border-radius:12px;padding:0 12px;background:var(--card);font-size:15px;width:100%}
.ai-card .btn.small{width:100%}
.ai-card .btn:disabled{opacity:.45}
.thumbs{display:flex;gap:8px;flex-wrap:wrap}
.thumbs:empty{display:none}
.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:2px solid var(--ink);background:var(--card)}
.thumbs .th{position:relative}
.thumbs .th button{position:absolute;right:-6px;top:-6px;width:26px;height:26px;border-radius:50%;border:2px solid var(--ink);background:var(--card);font-weight:800;font-size:12px;line-height:1}
.or{text-align:center;font-family:var(--cond);font-weight:700;font-size:17px;color:var(--muted);display:flex;align-items:center;gap:10px;padding:4px 18px}
.or::before,.or::after{content:"";flex:1;border-top:2px dashed var(--line)}

/* fotocamera a raffica */
.cam{position:fixed;inset:0;z-index:60;background:#000;color:#fff;display:flex;flex-direction:column}
.cam[hidden]{display:none}
.cam-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + var(--safe-t)) 14px 10px;background:var(--ink)}
.cam-x{width:44px;height:44px;border-radius:12px;border:2px solid #fff;background:none;color:#fff;font-weight:800;font-size:18px}
.cam-count{font-family:var(--cond);font-weight:800;font-size:22px;color:var(--yellow)}
.cam-torch{height:44px;padding:0 14px;border-radius:12px;border:2px solid #fff;background:none;color:#fff;font-family:var(--cond);font-weight:700;font-size:17px}
.cam-torch[aria-pressed=true]{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.cam-view{flex:1;position:relative;overflow:hidden;min-height:0}
.cam-view video{width:100%;height:100%;object-fit:cover;display:block}
.cam-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
.cam-flash.on{animation:camflash .25s ease-out}
@keyframes camflash{0%{opacity:.85}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.cam-flash.on{animation:none}}
.cam-msg{position:absolute;left:14px;right:14px;bottom:14px;background:var(--yellow);color:var(--ink);border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font-weight:600}
.cam-strip{display:flex;gap:8px;overflow-x:auto;padding:10px 14px;background:var(--ink);min-height:92px;scroll-behavior:smooth}
.cam-strip .th{position:relative;flex:none}
.cam-strip img{width:68px;height:68px;object-fit:cover;border-radius:10px;border:2px solid #fff}
.cam-strip .th button{position:absolute;right:-6px;top:-6px;width:26px;height:26px;border-radius:50%;border:2px solid var(--ink);background:#fff;color:var(--ink);font-weight:800;font-size:12px}
.cam-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:12px 16px calc(18px + var(--safe-b));background:var(--ink)}
.cam-tip{font-size:13px;color:#B9BBB8}
.cam-shutter{width:82px;height:82px;border-radius:50%;background:var(--orange);border:6px solid #fff;box-shadow:0 0 0 3px var(--orange)}
.cam-shutter:active{transform:scale(.94)}
.cam-shutter:disabled{opacity:.4}
.cam-done{justify-self:end;height:52px;padding:0 20px;border-radius:14px;border:0;background:#fff;color:var(--ink);font-family:var(--cond);font-weight:800;font-size:22px}

/* cattura a schermo intero */
body.cap-open{overflow:hidden}
.cap-page{display:flex;flex-direction:column;justify-content:center;gap:12px;padding:24px;background:var(--ink)}
.cap{position:fixed;inset:0;z-index:80;background:#000;color:#fff;touch-action:manipulation}
.cap video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cap-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
.cap-flash.on{animation:camflash .22s ease-out}
.cap-aim{position:absolute;left:8%;right:8%;top:34%;height:22%;pointer-events:none;display:none}
.is-barcode .cap-aim{display:block}
.cap-aim i{position:absolute;width:30px;height:30px;border:5px solid var(--yellow)}
.cap-aim i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
.cap-aim i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.cap-aim i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
.cap-aim i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.cap-top{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(10px + var(--safe-t)) 12px 24px;background:linear-gradient(rgba(0,0,0,.6),transparent)}
.cap-tools{display:flex;gap:8px}
.cap-ic{width:46px;height:46px;border-radius:50%;border:0;background:rgba(21,23,26,.72);color:#fff;font-weight:800;font-size:17px;display:flex;align-items:center;justify-content:center;flex:none}
.cap-ic svg{width:24px;height:24px}
.cap-ic[aria-pressed=true]{background:var(--yellow);color:var(--ink)}
.cap-ic.big{width:56px;height:56px}
.cap-ic.big svg{width:28px;height:28px}
.cap-code{display:flex;align-items:center;gap:6px;background:var(--green);border-radius:23px;height:46px;padding:0 14px;font-family:var(--cond);font-weight:800;font-size:19px;letter-spacing:.5px;min-width:0}
.cap-code svg{width:22px;height:22px;flex:none}
.cap-code span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cap-card{position:absolute;left:12px;right:12px;top:calc(76px + var(--safe-t));display:flex;align-items:center;gap:12px;background:var(--card);color:var(--ink);border-radius:14px;padding:12px 12px 12px 18px;border-left:10px solid #3A3D40}
.cap-card.st-ok{border-left-color:var(--green)} .cap-card.st-no{border-left-color:var(--red)} .cap-card.st-check{border-left-color:var(--yellow)}
.cap-card div{flex:1;min-width:0;display:flex;flex-direction:column}
.cap-card b{font-family:var(--cond);font-weight:800;font-size:21px;line-height:1.05}
.cap-card span{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cap-open{background:var(--ink);color:#fff;border-radius:12px;padding:12px 16px;font-family:var(--cond);font-weight:800;font-size:19px}
.cap-msg{position:absolute;left:12px;right:12px;bottom:calc(250px + var(--safe-b));background:var(--yellow);color:var(--ink);border-radius:12px;padding:10px 12px;font-weight:600;font-size:15px;text-align:center}
.cap-kbd{position:absolute;left:12px;right:12px;top:calc(76px + var(--safe-t));display:flex;gap:8px;z-index:2}
.cap-kbd[hidden]{display:none}
.cap-kbd input{flex:1;min-width:0;height:54px;border-radius:12px;border:2px solid var(--ink);padding:0 14px;font-size:20px;letter-spacing:1px;color:var(--ink);background:var(--card)}
.cap-kbd button{height:54px;padding:0 18px;border-radius:12px;border:0;background:var(--orange);color:var(--ink);font-family:var(--cond);font-weight:800;font-size:21px}
.cap-bottom{position:absolute;left:0;right:0;bottom:0;padding:24px 14px calc(18px + var(--safe-b));background:linear-gradient(transparent,rgba(0,0,0,.7) 30%)}
.cap-strip{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 12px;min-height:84px;scroll-behavior:smooth}
.is-barcode .cap-strip{display:none}
.cap-strip .th{position:relative;flex:none}
.cap-strip img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:2px solid #fff}
.cap-strip .th button{position:absolute;right:-6px;top:-6px;width:24px;height:24px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-weight:800;font-size:11px}
.cap-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.cap-row>:first-child{justify-self:start}
.cap-row>:last-child{justify-self:end}
.cap-shutter{width:84px;height:84px;border-radius:50%;background:#fff;border:6px solid rgba(255,255,255,.35);background-clip:padding-box}
.is-photos .cap-shutter{background:var(--orange)}
.cap-shutter:active{transform:scale(.93)}
.cap-shutter:disabled{opacity:.35}
.cap-go{height:56px;min-width:96px;padding:0 18px;border-radius:28px;border:0;background:var(--orange);color:var(--ink);font-family:var(--cond);font-weight:800;font-size:22px}
.cap-go:disabled{background:rgba(255,255,255,.18);color:rgba(255,255,255,.55)}
.no-cam video{display:none}
.nocode{display:flex;align-items:center;gap:12px;background:var(--yellow);border:2px solid var(--ink);border-radius:12px;padding:12px 14px}
.nocode div{flex:1;display:flex;flex-direction:column;font-size:14px;line-height:1.3}
.nocode b{font-family:var(--cond);font-weight:800;font-size:20px}
.nocode .btn{flex:none}
.with-btn{display:flex;gap:8px}
.with-btn input{flex:1;min-width:0}
.with-btn .btn{height:52px;min-height:52px}
.form input.missing{border-color:var(--orange);background:#FFF4EC}
.ai-done .thumbs img{width:56px;height:56px}
.nocode-link{text-align:center;font-weight:700;font-size:15px;color:var(--ink);background:var(--yellow);border:2px solid var(--ink);border-radius:10px;padding:10px}
.nocode-pill{display:inline-block;margin-top:5px;font-size:14px;padding:2px 8px}
.cap [hidden]{display:none!important}
.cap video{transform:translateZ(0);-webkit-transform:translateZ(0);background:#000}
.cap-wake{position:absolute;inset:0;z-index:3;border:0;background:rgba(0,0,0,.55);color:#fff;font-family:var(--cond);font-weight:800;font-size:26px}

/* coda foto */
.qitem{display:flex;gap:12px;align-items:center;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:10px}
.qitem.st-done{border-color:var(--orange);border-width:3px}
.qitem.st-error{border-color:var(--red)}
.qthumb{position:relative;flex:none;width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--paper);border:1.5px solid var(--line)}
.qthumb img{width:100%;height:100%;object-fit:cover}
.qthumb span{position:absolute;right:3px;bottom:3px;background:var(--ink);color:#fff;border-radius:8px;font-size:11px;font-weight:700;padding:1px 6px}
.qtxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.qtxt .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qitem.st-error .sub{white-space:normal}
.qact{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.qact form{display:contents}
.qx{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);background:none;color:var(--muted);font-weight:800}
.progress.thin{height:10px;margin-top:4px}
.queue-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--yellow);border:2px solid var(--ink);border-radius:12px;padding:12px 14px}
.queue-card b{font-family:var(--cond);font-weight:800;font-size:22px;display:block}
.queue-card span{font-size:14px}
.cap-batch{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px}
.cap-sent{font-weight:600;font-size:14px;color:#E9E9E4}
.cap-fine{height:40px;padding:0 18px;border-radius:20px;border:2px solid #fff;background:none;color:#fff;font-family:var(--cond);font-weight:800;font-size:19px}
.cap-fine:disabled{opacity:.6}
.cap-go{font-size:20px}
.qitem.st-duplicate{border-style:dashed;border-color:var(--muted)}

/* file compatti e azioni distruttive leggere */
.files{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.filebtn{flex-direction:row!important;align-items:center;justify-content:space-between;gap:8px;border:2px dashed var(--line);border-radius:12px;padding:10px 12px;background:var(--card);cursor:pointer;min-height:52px}
.filebtn b{font-family:var(--cond);font-weight:700;font-size:17px}
.filebtn span{font-family:var(--body);font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.filebtn.has{border-style:solid;border-color:var(--green)}
.filebtn.has span{color:var(--green)}
.linkdanger{background:none;border:0;color:var(--red);font-weight:600;font-size:15px;text-decoration:underline;padding:8px;align-self:center}
.top h1{font-size:32px}

/* --- adattamento agli schermi ---------------------------------------------- */
/* Telefoni piccoli: avvisi e righe vanno a capo invece di schiacciarsi. */
.nocode,.demo,.queue-card,.doc{flex-wrap:wrap}
.nocode div{flex:1 1 180px}
.demo span{flex:1 1 160px}
.qitem{flex-wrap:wrap}
.qtxt{flex:1 1 150px}
.qact{flex-direction:row;align-items:center;margin-left:auto}
.prop .acts button{min-width:0}
.toast{line-height:1.35}
.top h1{overflow-wrap:anywhere}
@media (max-width:360px){
  .top h1{font-size:28px}
  .big-tag .n{font-size:60px}
  .verdict h1{font-size:36px}
  .form .two{grid-template-columns:1fr}
  .files{grid-template-columns:1fr}
  .nav a{width:62px;font-size:11px}
  .nav .scan{width:66px;height:66px;margin-top:-22px}
  .spec{grid-template-columns:80px 1fr auto}
}
/* Tablet e computer: più spazio, liste su colonne, moduli a larghezza comoda. */
@media (min-width:700px){
  .app{max-width:780px}
  .nav{max-width:780px}
  .toast{max-width:560px}
  .cols{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
  .cols>.sec,.cols>.grp,.cols>.empty,.cols>.demo,.cols>.btn,.cols>form,.cols>.search,.cols>.queue-card,
  .cols>.variant-head,.cols>.summary,.cols>details,.cols>.research-card,.cols>.big-tag,.cols>.log,.cols>.hz{grid-column:1/-1}
  .cols>.sec,.cols>.grp{margin-top:10px}
  .form{max-width:640px;margin:0 auto}
  .mhead,.specs{max-width:none}
  .stage{height:400px}
  .verdict .hero,.verdict .sheet{width:100%;max-width:680px;margin-left:auto;margin-right:auto}
  .verdict .sheet{border-radius:26px 26px 0 0}
  .login{max-width:420px;margin:0 auto}
  .cap-row,.cap-batch,.cap-strip{max-width:680px;margin-left:auto;margin-right:auto}
  .cap-card,.cap-kbd,.cap-msg{max-width:560px;margin:0 auto}
}
@media (min-width:1100px){
  .app,.nav{max-width:1080px}
  .cols{grid-template-columns:repeat(3,1fr)}
  .buy.cols,.specs.cols{grid-template-columns:1fr 1fr}
}
.queue-card{flex-wrap:nowrap}
.queue-card>div{flex:1 1 auto;min-width:0}
.queue-card>.pill{flex:none}
.qtxt .nocode-pill{align-self:flex-start}

.wait-line{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.wait-line b{font-family:var(--cond);font-weight:800;font-size:22px}
.elapsed{font-family:var(--cond);font-weight:700;font-size:18px;color:var(--muted);font-variant-numeric:tabular-nums}
.qtxt .name .elapsed{font-size:15px;margin-left:4px}

/* riquadro «Da controllare» (coda foto) e contatore nella barra */
.qcard{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;background:var(--ink);color:#fff;border:2px solid var(--ink);border-radius:12px;padding:12px 14px}
.qcard .qn{font-family:var(--cond);font-weight:800;font-size:58px;line-height:.85;color:var(--yellow);min-width:38px;text-align:center}
.qcard .qt{flex:1;min-width:0;display:flex;flex-direction:column}
.qcard .qt b{font-family:var(--cond);font-weight:800;font-size:24px;line-height:1.05}
.qcard .qt span{font-size:14px;color:#C9CBC7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qthumbs{display:flex;flex:none}
.qthumbs img{width:44px;height:44px;object-fit:cover;border-radius:8px;border:2px solid var(--ink);box-shadow:0 0 0 2px var(--yellow);background:var(--paper)}
.qthumbs img+img{margin-left:-16px}
.qstripe{position:absolute;left:0;right:0;bottom:0;height:5px;background:repeating-linear-gradient(-45deg,var(--yellow) 0 10px,var(--ink) 10px 20px);background-size:28px 28px;animation:stripe 1s linear infinite}
@media (prefers-reduced-motion:reduce){.qstripe{animation:none}}
@media (max-width:360px){.qthumbs{display:none}.qcard .qn{font-size:48px}}
.cols>.qcard{grid-column:1/-1}
.nav .ic{position:relative;display:inline-flex}
.nav .badge{position:absolute;top:-6px;right:-12px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--orange);color:var(--ink);border:2px solid var(--card);font-family:var(--cond);font-weight:800;font-size:13px;line-height:16px;text-align:center}

/* --- schermata di apertura (contenitore) ------------------------------------ */
.splash{position:fixed;inset:0;z-index:200;overflow:hidden;cursor:pointer;clip-path:inset(0 0 0 0);transition:clip-path .5s cubic-bezier(.7,0,.2,1)}
.splash.out{clip-path:inset(0 0 100% 0)}
@keyframes ap-fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .splash *{animation-duration:.01s!important;animation-delay:0s!important;animation-iteration-count:1!important}
  .splash .e-door,.splash .e-lock{display:none}
  .splash{transition:opacity .3s}.splash.out{clip-path:none;opacity:0}
}
/* --- schermata di apertura: il capanno ---------------------------------------- */
.splash.ap-e{perspective:1200px;background:#0E0C0A}
.e-shed{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#2A2119 0%,#140F0B 70%);display:flex;align-items:center;justify-content:center;overflow:hidden}
.e-daylight{position:absolute;inset:-10%;background:radial-gradient(ellipse 60% 70% at 50% 55%,rgba(255,236,190,.28),transparent 70%);opacity:0;animation:ap-fade 0.666s ease 0.407s forwards}
.e-shed::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 45% at 50% 6%,rgba(255,190,90,.38),transparent 70%);opacity:0;animation:e-light 1.184s linear 0.666s forwards}
@keyframes e-light{0%{opacity:0}8%{opacity:.8}12%{opacity:.1}20%{opacity:.9}24%{opacity:.3}32%,100%{opacity:1}}
.e-bulb{position:absolute;left:50%;top:0;z-index:3;transform-origin:50% 0;animation:e-sway 3s ease-in-out .9s infinite alternate}
@keyframes e-sway{from{rotate:-2deg}to{rotate:2deg}}
.e-cord{position:absolute;left:-1px;top:0;width:2px;height:7vh;background:#1A1714}
.e-glass{position:absolute;left:-11px;top:7vh;width:22px;height:28px;border-radius:50% 50% 45% 45%;background:#4A4136;box-shadow:none;animation:e-glow 1.184s linear 0.666s forwards}
.e-glass::before{content:"";position:absolute;left:5px;top:-6px;width:12px;height:8px;border-radius:2px;background:#6B6560}
@keyframes e-glow{0%{background:#4A4136}8%,20%,32%,100%{background:#FFE7A8;box-shadow:0 0 18px 6px rgba(255,210,120,.8),0 0 60px 20px rgba(255,170,60,.35)}12%,24%{background:#7A6A50;box-shadow:none}}
.e-dust i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#FFE9B8;opacity:0;
  animation:ap-fade .6s ease .9s forwards,e-float var(--t) ease-in-out .9s infinite alternate}
@keyframes e-float{to{translate:calc((var(--k) - 8) * 2px) -40px}}

.e-board{position:relative;z-index:2;width:min(90vw,400px);aspect-ratio:1/1.22;border-radius:6px;
  background:radial-gradient(#2E2318 2.6px,transparent 3px) 0 0/22px 22px,linear-gradient(160deg,#6A5238,#4E3B27);
  box-shadow:inset 0 0 0 8px #3B2A1A,inset 0 0 40px rgba(0,0,0,.55),0 30px 60px rgba(0,0,0,.6);
  transform:scale(1.08);animation:e-push 1.036s cubic-bezier(.2,.8,.2,1) 0.37s forwards}
@keyframes e-push{to{transform:scale(1)}}

/* insegna su catenelle */
.e-sign{position:absolute;left:50%;top:-2%;z-index:3;width:68%;margin-left:-34%;transform-origin:50% 0;translate:0 -70vh;
  animation:e-drop 0.37s cubic-bezier(.3,1.5,.5,1) 1.517s forwards,e-swing-s 1.332s ease-in-out 1.85s forwards}
@keyframes e-drop{to{translate:0 0}}
@keyframes e-swing-s{0%{rotate:0}25%{rotate:3deg}50%{rotate:-2deg}75%{rotate:1deg}100%{rotate:0}}
.e-chain{position:absolute;top:-30px;width:3px;height:44px;background:repeating-linear-gradient(#9A8F82 0 5px,#5E554B 5px 8px)}
.e-chain.l{left:16%}.e-chain.r{right:16%}
.e-plate{position:relative;margin-top:12px;background:linear-gradient(180deg,#FFD23F,#F2B800);border:3px solid var(--ink);border-radius:6px;padding:8px 10px 6px;
  display:flex;flex-direction:column;align-items:center;font-family:var(--cond);text-transform:uppercase;line-height:1;box-shadow:0 6px 10px rgba(0,0,0,.5)}
.e-plate b{font-weight:800;font-size:clamp(26px,7.6vw,36px);color:var(--ink);letter-spacing:.5px}
.e-plate small{font-weight:700;font-size:12px;letter-spacing:6px;color:var(--ink)}
.e-plate i{position:absolute;width:7px;height:7px;border-radius:50%;background:radial-gradient(#8A8378,#4A443C)}
.e-plate .s1{left:6px;top:6px}.e-plate .s2{right:6px;top:6px}.e-plate .s3{left:6px;bottom:6px}.e-plate .s4{right:6px;bottom:6px}

/* attrezzi appesi */
.e-tool{position:absolute;transform-origin:50% -8px;animation:e-swing 1.184s cubic-bezier(.4,0,.6,1) forwards;animation-delay:calc(1.147s + var(--i) * 0.089s)}
@keyframes e-swing{0%{rotate:0}18%{rotate:6deg}42%{rotate:-3.5deg}66%{rotate:1.6deg}86%{rotate:-.5deg}100%{rotate:0}}
.e-hook{position:absolute;left:50%;top:-16px;width:10px;height:16px;margin-left:-5px;border:3px solid #A9A39A;border-top:none;border-radius:0 0 8px 8px;z-index:2}
.e-hook::before{content:"";position:absolute;left:-6px;top:-4px;width:10px;height:5px;border-radius:3px;background:#7E776E}
.e-tool svg,.e-grillo svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 0 0 rgba(0,0,0,0));animation:e-shadow 0.37s ease forwards;animation-delay:calc(1.073s + var(--i, 4) * 0.089s)}
@keyframes e-shadow{to{filter:drop-shadow(5px 8px 3px rgba(0,0,0,.5))}}
.e-tool svg *,.e-grillo svg *{fill-opacity:0;stroke:#F2E6C9;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520;
  animation:e-draw 0.592s ease forwards,e-color 0.333s ease forwards;animation-delay:calc(0.629s + var(--i, 4) * 0.089s),calc(1.073s + var(--i, 4) * 0.089s)}
@keyframes e-draw{to{stroke-dashoffset:0}}
@keyframes e-color{to{fill-opacity:1;stroke:var(--fs,#15171A);stroke-width:var(--fw,1.6)}}
.p-orange{fill:#FF6A13}.p-red{fill:#D7261E}.p-black{fill:#1E1F21}.p-steel{fill:#C3C8CD}.p-white{fill:#F2F2EE}.p-wood{fill:#A06D3B}
.p-fins,.p-teeth,.p-chain,.p-grip,.p-line,.p-tread{fill:none}
.p-fins{--fs:#15171A;--fw:2}
.p-teeth{--fs:#8E959C;--fw:2}
.p-chain{--fs:#2A2C2F;--fw:3.5;stroke-dasharray:3 4}
.p-chain{animation:e-color 0.333s ease forwards!important;animation-delay:calc(1.073s + var(--i, 4) * 0.089s)!important;stroke-dashoffset:0}
.p-grip{--fs:#111;--fw:7}
.p-line{--fs:#FF6A13;--fw:2.5}
.p-tread{--fs:#3A3B3D;--fw:3}

/* pavimento e Grillo */
.e-floor{position:absolute;left:8px;right:8px;bottom:8px;height:22%;border-radius:0 0 4px 4px;
  background:repeating-linear-gradient(90deg,rgba(0,0,0,.35) 0 2px,transparent 2px 64px),linear-gradient(#6B4A2A,#4E3520);box-shadow:inset 0 6px 10px rgba(0,0,0,.45)}
.e-grillo{--i:4;position:absolute;left:4%;bottom:5%;width:54%;z-index:1;translate:140% 0;animation:e-roll 0.74s cubic-bezier(.25,.9,.3,1.08) 0.814s forwards}
@keyframes e-roll{to{translate:0 0}}
.e-wheel{transform-box:fill-box;transform-origin:50% 50%;animation:e-spin 0.74s cubic-bezier(.25,.9,.3,1.08) 0.814s forwards}
@keyframes e-spin{from{rotate:0deg}to{rotate:-620deg}}

/* ante con cerniere e lucchetto */
.e-door{position:absolute;top:0;bottom:0;width:50%;z-index:6;backface-visibility:hidden;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 3px,rgba(0,0,0,.05) 3px 8px),
    repeating-linear-gradient(90deg,rgba(0,0,0,.42) 0 2px,transparent 2px 56px),
    repeating-linear-gradient(90deg,#8E5C2C 0 28px,#86552A 28px 56px);
  box-shadow:inset 0 0 50px rgba(0,0,0,.5)}
.e-door::before,.e-door::after{content:"";position:absolute;left:0;right:0;height:26px;background:linear-gradient(#7A4C23,#6A4120);box-shadow:0 4px 0 rgba(0,0,0,.3)}
.e-door::before{top:12%}.e-door::after{bottom:12%}
.e-brace{position:absolute;left:6%;right:6%;top:50%;height:26px;margin-top:-13px;background:linear-gradient(#7A4C23,#6A4120);transform:rotate(-44deg);box-shadow:0 4px 0 rgba(0,0,0,.3)}
.e-door.right .e-brace{transform:rotate(44deg)}
.e-hinge{position:absolute;width:42%;height:14px;margin-top:-7px;background:#1F1F21;border-radius:2px 7px 7px 2px;z-index:1;
  background-image:radial-gradient(#6E6E70 2.5px,transparent 3px);background-size:22px 14px;background-position:6px 0}
.e-door.left .e-hinge{left:0}.e-door.right .e-hinge{right:0;border-radius:7px 2px 2px 7px}
.e-hasp{position:absolute;left:-6px;top:50%;width:30px;height:14px;margin-top:-7px;background:#2A2A2C;border-radius:3px;z-index:1}
.e-door.left{left:0;transform-origin:left center;animation:e-open-l 0.777s cubic-bezier(.55,.05,.25,1) 0.37s forwards}
.e-door.right{right:0;transform-origin:right center;animation:e-open-r 0.777s cubic-bezier(.55,.05,.25,1) 0.414s forwards}
@keyframes e-open-l{0%{transform:rotateY(0)}10%{transform:rotateY(5deg)}82%{transform:rotateY(-118deg)}100%{transform:rotateY(-110deg)}}
@keyframes e-open-r{0%{transform:rotateY(0)}10%{transform:rotateY(-5deg)}82%{transform:rotateY(118deg)}100%{transform:rotateY(110deg)}}
.e-lock{position:absolute;left:50%;top:50%;z-index:7;width:36px;margin:-10px 0 0 -18px;animation:e-shake 0.222s ease 0.037s,e-fall 0.407s cubic-bezier(.5,0,.8,.4) 0.311s forwards}
.e-shackle{display:block;width:22px;height:22px;margin:0 auto -6px;border:5px solid #B8BDC2;border-bottom:none;border-radius:12px 12px 0 0;animation:e-unlock 0.133s ease 0.222s forwards}
.e-body{display:block;width:36px;height:30px;border-radius:6px;background:linear-gradient(145deg,#E2B93B,#A87F15);box-shadow:inset 0 -4px 0 rgba(0,0,0,.2)}
.e-body::after{content:"";display:block;width:6px;height:10px;margin:10px auto 0;border-radius:3px;background:#3A2E10}
@keyframes e-shake{25%{rotate:-8deg}50%{rotate:7deg}75%{rotate:-4deg}}
@keyframes e-unlock{to{translate:0 -7px}}
@keyframes e-fall{to{translate:0 60vh;rotate:50deg;opacity:0}}

/* --- transizioni tra le schede (View Transitions, Safari 18.2+ e Chrome) ------- */
@view-transition{navigation:auto}
.app{view-transition-name:pagina}
.nav{view-transition-name:barra}
.top{view-transition-name:testata}
.tab-ind{position:absolute;top:-6px;width:34px;height:4px;border-radius:0 0 4px 4px;background:var(--orange);view-transition-name:indicatore}
.nav a{position:relative}
/* Curva «iOS»: parte decisa e si posa morbida. */
::view-transition-group(*){animation-duration:.38s;animation-timing-function:cubic-bezier(.32,.72,0,1)}
::view-transition-old(root),::view-transition-new(root){animation:none}
::view-transition-old(barra),::view-transition-new(barra){animation:none}
::view-transition-old(testata){animation:vt-fade-out .18s ease both}
::view-transition-new(testata){animation:vt-head-in .34s cubic-bezier(.32,.72,0,1) .04s both}
::view-transition-group(indicatore){animation-duration:.42s;animation-timing-function:cubic-bezier(.3,1.35,.5,1)}
/* Predefinita: dissolvenza con piccolo sollevamento. */
::view-transition-old(pagina){animation:vt-fade-out .14s ease both}
::view-transition-new(pagina){animation:vt-rise .3s cubic-bezier(.32,.72,0,1) both}
/* Cambio di sezione: la vecchia arretra e sfuma, la nuova arriva dal lato giusto. */
html[data-vt=tab-fwd]::view-transition-old(pagina){animation:vt-tab-out-l .26s cubic-bezier(.4,0,.6,1) both}
html[data-vt=tab-fwd]::view-transition-new(pagina){animation:vt-tab-in-r .42s cubic-bezier(.32,.72,0,1) .03s both}
html[data-vt=tab-back]::view-transition-old(pagina){animation:vt-tab-out-r .26s cubic-bezier(.4,0,.6,1) both}
html[data-vt=tab-back]::view-transition-new(pagina){animation:vt-tab-in-l .42s cubic-bezier(.32,.72,0,1) .03s both}
/* Verso un dettaglio e ritorno: la nuova entra sopra con l'ombra, la vecchia scivola più lenta e si scurisce. */
html[data-vt=fwd]::view-transition-old(pagina){animation:vt-push-under .42s cubic-bezier(.32,.72,0,1) both}
html[data-vt=fwd]::view-transition-new(pagina){animation:vt-push-in .42s cubic-bezier(.32,.72,0,1) both;box-shadow:-18px 0 40px rgba(0,0,0,.22)}
html[data-vt=back]::view-transition-old(pagina){animation:vt-pop-out .36s cubic-bezier(.32,.72,0,1) both;z-index:2;box-shadow:-18px 0 40px rgba(0,0,0,.22)}
html[data-vt=back]::view-transition-new(pagina){animation:vt-pop-under .36s cubic-bezier(.32,.72,0,1) both}
html[data-vt=up]::view-transition-old(pagina){animation:vt-sink .3s ease both}
html[data-vt=up]::view-transition-new(pagina){animation:vt-sheet-up .4s cubic-bezier(.32,.72,0,1) both}
html[data-vt=down]::view-transition-old(pagina){animation:vt-sheet-down .3s cubic-bezier(.4,0,.6,1) both;z-index:2}
html[data-vt=down]::view-transition-new(pagina){animation:vt-lift .32s ease both}
@keyframes vt-fade-out{to{opacity:0}}
@keyframes vt-fade-in{from{opacity:0}}
@keyframes vt-rise{from{opacity:0;transform:translateY(16px)}}
@keyframes vt-head-in{from{opacity:0;transform:translateY(-6px)}}
@keyframes vt-tab-out-l{to{opacity:0;transform:translateX(-10%) scale(.94)}}
@keyframes vt-tab-out-r{to{opacity:0;transform:translateX(10%) scale(.94)}}
@keyframes vt-tab-in-r{from{opacity:0;transform:translateX(22%) scale(.98)}}
@keyframes vt-tab-in-l{from{opacity:0;transform:translateX(-22%) scale(.98)}}
@keyframes vt-push-in{from{transform:translateX(100%)}}
@keyframes vt-push-under{to{transform:translateX(-28%);filter:brightness(.82)}}
@keyframes vt-pop-out{to{transform:translateX(100%)}}
@keyframes vt-pop-under{from{transform:translateX(-28%);filter:brightness(.82)}}
@keyframes vt-sheet-up{from{transform:translateY(100%)}}
@keyframes vt-sink{to{opacity:.5;transform:scale(.94)}}
@keyframes vt-sheet-down{to{transform:translateY(100%)}}
@keyframes vt-lift{from{opacity:.5;transform:scale(.94)}}
/* Arrivando in una sezione le righe entrano a cascata (solo le prime, il resto è già lì). */
html[data-vt^=tab] .body>*{animation:vt-row .42s cubic-bezier(.32,.72,0,1) both}
html[data-vt^=tab] .body>:nth-child(1){animation-delay:.05s}
html[data-vt^=tab] .body>:nth-child(2){animation-delay:.08s}
html[data-vt^=tab] .body>:nth-child(3){animation-delay:.11s}
html[data-vt^=tab] .body>:nth-child(4){animation-delay:.14s}
html[data-vt^=tab] .body>:nth-child(5){animation-delay:.17s}
html[data-vt^=tab] .body>:nth-child(6){animation-delay:.2s}
html[data-vt^=tab] .body>:nth-child(7){animation-delay:.23s}
html[data-vt^=tab] .body>:nth-child(n+8){animation-delay:.26s}
@keyframes vt-row{from{opacity:0;transform:translateY(14px)}}
/* Al tocco la pagina si stacca subito; se la rete tarda, barra arancione in alto. */
html.leaving .app{transition:opacity .2s ease,transform .2s ease;opacity:.72;transform:scale(.992)}
html.slow body::after{content:"";position:fixed;left:0;top:var(--safe-t);height:3px;width:100%;z-index:300;background:var(--orange);
  transform-origin:left;animation:vt-load 2.4s cubic-bezier(.1,.7,.2,1) both}
@keyframes vt-load{from{transform:scaleX(0)}to{transform:scaleX(.92)}}
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
  html[data-vt^=tab] .body>*{animation:none}
  html.leaving .app{transition:none;transform:none}
}

/* riga compatta «da controllare» (Scorte) */
.qline{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px;border:2px solid var(--ink);border-radius:10px;background:var(--card)}
.qline b{font-family:var(--cond);font-weight:700;font-size:18px}
.qline .qcount{min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:var(--orange);font-family:var(--cond);font-weight:800;font-size:16px;display:inline-flex;align-items:center;justify-content:center}
.qline .qmore{font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qline .qgo{margin-left:auto;font-size:26px;line-height:1;color:var(--muted)}
.qline .qdot{width:12px;height:12px;border-radius:50%;background:var(--yellow);border:2px solid var(--ink);flex:none}
.qline.busy .qdot{animation:qpulse 1.2s ease-in-out infinite}
@keyframes qpulse{50%{transform:scale(.6);opacity:.5}}
@media (prefers-reduced-motion:reduce){.qline.busy .qdot{animation:none}}
.cols>.qline{grid-column:1/-1}

/* Scorte: due viste (In magazzino / Da controllare) */
.top-tabs{padding-bottom:12px}
.seg2{display:flex;gap:4px;margin-top:12px;background:#2A2D31;border-radius:12px;padding:4px}
.seg2 a{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:40px;border-radius:9px;font-family:var(--cond);font-weight:700;font-size:18px;color:#C9CBC7}
.seg2 a.on{background:var(--card);color:var(--ink)}
.seg2 .qcount{min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:var(--orange);color:var(--ink);font-size:15px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.seg2 .qdot{width:10px;height:10px;border-radius:50%;background:var(--yellow);animation:qpulse 1.2s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.seg2 .qdot{animation:none}}
/* esito di compatibilità prima di salvare */
.vpill{align-self:flex-start;font-size:14px!important;font-family:var(--cond);font-weight:700;font-size:15px;padding:2px 9px;border-radius:7px;margin-top:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vpill.v-ok{background:#D6EEDD;color:#0A5E2B}.vpill.v-no{background:#F8D9D6;color:#9C1E15}.vpill.v-check{background:#FFF1C2;color:#6B5200}
.vbanner{display:flex;flex-direction:column;gap:2px;border-radius:10px;padding:10px 12px;color:#fff}
.vbanner b{font-family:var(--cond);font-weight:800;font-size:21px;line-height:1.1}
.vbanner span{font-size:14px;opacity:.9}
.vbanner.v-ok{background:var(--green)}.vbanner.v-no{background:var(--red)}.vbanner.v-check{background:var(--yellow);color:var(--ink)}.vbanner.v-none{background:#3A3D40}

/* --- gesti: righe scorrevoli, «tira per aggiornare», schede della macchina ---- */
.sw{position:relative;overflow:hidden;border-radius:10px}
/* Ogni riga è uno scorrimento orizzontale nativo: [azioni →][riga][← azioni], agganciato ai pulsanti. */
.sw-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sw-track::-webkit-scrollbar{display:none}
.sw-track>.sw-row{flex:0 0 100%;min-width:0;max-width:100%;scroll-snap-align:start;scroll-snap-stop:always}
.sw-row{position:relative;display:flex;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sw-acts{flex:0 0 100%;min-width:0;display:flex}
.sw-btns{display:flex;flex:none}
.sw-left .sw-btns{scroll-snap-align:end}.sw-right .sw-btns{scroll-snap-align:start}
.sw-fill{flex:1;background:var(--yellow)}
.t-ink .sw-fill{background:var(--ink)}.t-ok .sw-fill{background:var(--green)}.t-red .sw-fill{background:var(--red)}.t-orange .sw-fill{background:var(--orange)}
.sw-btn{flex:none;min-width:80px;border:0;font-family:var(--cond);font-weight:800;font-size:21px;color:var(--ink);background:var(--yellow);padding:0 16px;
  transition:min-width .2s cubic-bezier(.2,.8,.2,1),padding .2s,opacity .15s}
.sw-btn.ink{background:var(--ink);color:#fff}.sw-btn.ok{background:var(--green);color:#fff}
.sw-btn.red{background:var(--red);color:#fff}.sw-btn.orange{background:var(--orange)}
.sw-btn:active{filter:brightness(.92)}
/* Oltre la soglia restano solo il colore e l'etichetta dell'azione principale. */
.sw.armed .sw-btn:not(.primary){min-width:0;width:0;padding:0;opacity:0;overflow:hidden}
.sw.armed .sw-btn.primary{transform:scale(1.06)}
.sw-btn.primary{transition:min-width .2s cubic-bezier(.2,.8,.2,1),padding .2s,transform .2s cubic-bezier(.3,1.6,.5,1)}
.sw.busy{opacity:.6;pointer-events:none}
.sw.gone{height:0!important;margin:0!important;opacity:0;transition:height .25s ease .15s,opacity .2s ease .1s}
/* Scorte: riga compatta */
.stock-row .sw-row{align-items:center;gap:12px;background:var(--card);border:2px solid var(--ink);border-radius:10px;padding:10px 12px;min-height:64px}
.stock-row.low .sw-row{border-color:var(--orange)}
.stock-row .txt{flex:1;min-width:0}
.stock-row .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stock-row .qty span.zero{color:var(--red)}
.bump{animation:bump .35s cubic-bezier(.3,1.6,.5,1)}
@keyframes bump{40%{transform:scale(1.35)}}
.q-sw .sw-row.qitem{border-radius:10px}
/* Da controllare: testi lunghi su al massimo due righe (l'errore tre), codici lunghi vanno a capo. */
.qtxt .name,.qtxt .sub{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;white-space:normal}
.qitem.st-error .sub{-webkit-line-clamp:3}
.qtxt .vpill{max-width:100%;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.qtxt .nocode-pill{display:inline-block}
.qtxt .pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.q-sw .sw-row,.buy-sw .sw-row{background:var(--card)}
.buy-sw .sw-row.buy-it{border-radius:10px}
/* tira per aggiornare */
/* tira per aggiornare: sopra la pagina si apre una fascia scura (lo sfondo della radice) con il cartellino */
html{background:var(--ink)}
body{background:transparent}
@media (min-width:520px){body{background:#D9D8D2}}
.ptr{position:fixed;left:50%;top:var(--safe-t);z-index:60;display:flex;align-items:center;gap:9px;height:44px;padding:0 16px 0 7px;border-radius:999px;
  background:#2A2D31;color:#fff;box-shadow:0 0 0 1.5px rgba(255,255,255,.12),0 10px 24px rgba(0,0,0,.35);opacity:0;pointer-events:none;
  transform:translate3d(-50%,-10px,0) scale(.7);transition:transform .3s cubic-bezier(.3,1.3,.5,1),opacity .2s ease,background .18s ease,color .18s ease;
  font-family:var(--cond);font-weight:800;font-size:17px;white-space:nowrap;will-change:transform,opacity}
.ptr-blade{width:30px;height:30px;flex:none}
.ptr-blade path{fill:var(--orange)}
.ptr-blade .ring{fill:none;stroke:#2A2D31;stroke-width:1.6;opacity:.55}
.ptr-blade .hole{fill:#2A2D31}
.ptr-ok{display:none;width:30px;height:30px;flex:none;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24}
.ptr.ready{background:var(--orange);color:var(--ink)}
.ptr.ready .ptr-blade path{fill:var(--ink)}
.ptr.ready .ptr-blade .hole,.ptr.ready .ptr-blade .ring{fill:var(--orange);stroke:var(--orange)}
.ptr.spin .ptr-blade{animation:ptr-spin .5s linear infinite}
.ptr.done{background:var(--green)}
.ptr.done .ptr-blade{display:none}
.ptr.done .ptr-ok{display:block;animation:ptr-ok .32s ease forwards}
@keyframes ptr-ok{to{stroke-dashoffset:0}}
@keyframes ptr-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ptr.spin .ptr-blade{animation:none}}
.haptic{position:fixed;left:-100px;top:0;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
/* schede della macchina: la nuova entra dal lato giusto */
.stage[data-dir=fwd] .pane.on{animation:pane-r .28s cubic-bezier(.2,.8,.2,1)}
.stage[data-dir=back] .pane.on{animation:pane-l .28s cubic-bezier(.2,.8,.2,1)}
@keyframes pane-r{from{opacity:0;transform:translateX(40px)}}
@keyframes pane-l{from{opacity:0;transform:translateX(-40px)}}
@media (prefers-reduced-motion:reduce){.stage .pane.on{animation:none!important}.bump{animation:none}}
/* Pagine con viste sorelle e schede della macchina: l'orizzontale lo gestisce l'app, il verticale e lo zoom il browser. */
body[data-swipe-prev] .app,body[data-swipe-next] .app,.stage[data-swipe-tabs]{touch-action:pan-y pinch-zoom}
/* nome della vista accanto, mentre si scorre la pagina */
.peek{position:fixed;top:50%;z-index:40;pointer-events:none;background:var(--ink);color:#fff;font-family:var(--cond);font-weight:800;font-size:19px;
  padding:10px 16px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:background .15s,color .15s;white-space:nowrap}
.peek.next{right:10px}.peek.prev{left:10px}
.peek.go{background:var(--orange);color:var(--ink)}

/* testata compatta: il titolo scorre via, le schede restano agganciate */
.top-tabs{position:sticky;top:var(--top-stick,0px);z-index:15;transition:box-shadow .2s}
.top-tabs.stuck{box-shadow:0 8px 18px -6px rgba(0,0,0,.35)}
.top-tabs .row{transition:opacity .2s}
.top-tabs.stuck .row{opacity:0}
.sec[data-group]{position:sticky;top:calc(var(--stick-h,0px) - 1px);z-index:4;background:var(--paper);margin:0 -18px -6px;padding:8px 20px 6px}
@media (min-width:700px){.cols>.sec[data-group]{margin:4px 0 -6px;padding:8px 2px 6px}}

/* barra in basso: la lente segue il dito */
.nav{touch-action:none;-webkit-user-select:none;user-select:none}
.nav a{-webkit-touch-callout:none;transition:transform .28s cubic-bezier(.3,1.5,.5,1),color .15s}
.nav a.hover{color:var(--ink);transform:translateY(-3px) scale(1.1)}
.nav .scan.hover{transform:scale(1.08) rotate(-4deg)}
.nav-lens{position:absolute;left:0;top:5px;width:72px;height:56px;margin-left:-36px;border-radius:18px;pointer-events:none;will-change:transform,opacity;
  background:rgba(255,106,19,.14);box-shadow:inset 0 0 0 2px rgba(255,106,19,.55);opacity:0;
  transition:opacity .16s ease,transform .36s cubic-bezier(.3,1.45,.45,1)}
.nav.scrub .nav-lens{opacity:1}
.nav.scrub.dragging .nav-lens{transition:opacity .16s ease}
.nav.on-scan .nav-lens{opacity:0}
.nav-lens.jump{transition:none!important}
.tab-ind{transition:transform .22s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.nav a,.nav-lens,.tab-ind{transition:none!important}}
.quick{display:flex;align-items:center;gap:8px;margin:14px 18px 0;padding:8px 8px 8px 14px;background:var(--card);border:2px solid var(--ink);border-radius:12px}
.quick-q{flex:1;font-size:15px;color:var(--muted)}
.quick-q b{font-family:var(--cond);font-weight:800;font-size:26px;color:var(--ink)}
.quick button{height:44px;min-width:52px;border-radius:10px;border:2px solid var(--ink);background:var(--card);font-family:var(--cond);font-weight:800;font-size:19px}
.quick button.fin{background:var(--ink);color:#fff;padding:0 12px}

/* --- manutenzione (tavole 9 e 10) ------------------------------------------- */
.pill.r{background:var(--red);color:#fff}.pill.ln{border:1.5px solid var(--ink);background:none}
.mtabs{display:flex;gap:20px;margin:6px 18px 4px;border-bottom:2px solid var(--line)}
.mtabs button{background:none;border:0;font-family:var(--cond);font-weight:800;font-size:19px;color:var(--muted);padding:8px 0;position:relative;display:flex;align-items:center;gap:6px}
.mtabs button.on{color:var(--ink)}
.mtabs button.on::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;border-radius:2px;background:var(--orange)}
.mtabs em{font-style:normal;font-size:13px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:var(--orange)}
.mtabs em.r{background:var(--red)}
.mpane[hidden],.bs[hidden],.li[hidden]{display:none!important}
.hours{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border-radius:14px;padding:10px 12px}
.hours form{display:contents}
.hours .n{font-family:var(--cond);font-weight:800;font-size:34px;line-height:1;color:var(--yellow);cursor:pointer}
.hours summary{list-style:none}.hours summary::-webkit-details-marker{display:none}
.hours-set[open]{position:relative}
.hours-set[open] form{display:flex;gap:6px;position:absolute;top:44px;left:0;z-index:5;background:var(--ink);padding:8px;border-radius:12px;box-shadow:0 10px 24px rgba(0,0,0,.3)}
.hours-set input{width:90px;height:40px;border-radius:9px;border:0;padding:0 10px;font-size:17px}
.hours-set form button{height:40px;border-radius:9px;border:0;background:var(--yellow);font-family:var(--cond);font-weight:800;font-size:17px;padding:0 12px}
.hours .t{flex:1;font-size:13px;color:#C9CBC7;line-height:1.25;min-width:0}
.hours .t b{color:#fff;font-family:var(--cond);font-size:17px;display:block}
.hours .b{height:40px;border:2px solid #fff;border-radius:11px;background:none;color:#fff;font-family:var(--cond);font-weight:800;font-size:17px;padding:0 10px;flex:none}
.mi{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:10px 12px}
.mi.late{border-color:var(--red);border-width:3px}
.mi.soon{border-color:var(--orange);border-width:3px}
.mi-main{display:block}
.mi .row{display:flex;align-items:center;gap:8px}
.mi .row b{font-family:var(--cond);font-weight:800;font-size:20px;flex:1;line-height:1.1}
.mi .sub{font-size:13px;color:var(--muted);margin-top:3px;line-height:1.4}
.mi .sub .pill{font-size:13px;padding:1px 7px}
.mi .src{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 5px}
.bar{height:6px;border-radius:3px;background:#DAD9D2;overflow:hidden;margin-top:7px}
.bar i{display:block;height:100%;border-radius:3px;background:var(--green)}
.bar.o i{background:var(--orange)}.bar.r i{background:var(--red)}
.mi .acts{display:flex;gap:8px;margin-top:9px;align-items:center;flex-wrap:wrap}
.mi .acts .btn.small{flex:1;min-height:42px;font-size:17px;gap:6px}
.todo-on{font-size:12.5px;font-weight:700;color:#0A5E2B;margin-top:4px}
.todo-on.ok{color:var(--green)}
.mbtns{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.mbtns form{display:contents}
.mlog{display:flex;flex-direction:column;gap:5px;font-size:14px;padding:0 2px 6px}
.mlog span{color:var(--muted);display:inline-block;min-width:70px}
.mt-why{color:#6B4A00!important}
.mt-row{display:flex;align-items:center;gap:12px}
.mt-row .txt{flex:1;min-width:0}
.mt-row .name{font-family:var(--cond);font-weight:800;font-size:19px;line-height:1.1}
.mt-row.late{border-color:var(--red)}.mt-row.soon{border-color:var(--orange)}
.mt-ill{width:62px;height:30px;flex:none}
.sec-row{display:flex;align-items:center;gap:6px}
.sec-row .pill{font-size:13px;padding:1px 8px}
.inl{display:flex;gap:6px}.inl input{flex:1;min-width:0}.inl select{width:auto}
.hint-line{font-size:13px;color:var(--muted);margin-top:-4px}
.top .row button.act{background:none;color:#fff;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.todo-line{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 18px 0;font-weight:700;font-size:14px;color:#0A5E2B}
button.todo-line{width:calc(100% - 36px);min-height:46px;border:2px solid var(--ink);background:var(--card);color:var(--ink);border-radius:12px;font-family:var(--cond);font-size:19px}

/* --- fogli dal basso (Cose da fare, Registra un intervento) ------------------ */
.bs{position:fixed;inset:0;z-index:80}
.bs-dim{position:absolute;inset:0;background:rgba(10,11,12,.5);opacity:0;transition:opacity .25s ease}
.bs.on .bs-dim{opacity:1}
.bs-panel{position:absolute;left:50%;bottom:0;width:100%;max-width:520px;transform:translate(-50%,100%);max-height:88vh;overflow:auto;
  background:var(--paper);border-radius:26px 26px 0 0;padding:10px 16px calc(18px + var(--safe-b));box-shadow:0 -10px 40px rgba(0,0,0,.35);
  transition:transform .34s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.bs.on .bs-panel{transform:translate(-50%,0)}
html.bs-open{overflow:hidden}
.bs-grab{width:44px;height:5px;border-radius:3px;background:#B8B7B0;margin:0 auto 2px;flex:none}
.bs-title{font-family:var(--cond);font-weight:800;font-size:26px;touch-action:none}
.whn{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.whn label{border:2px solid var(--ink);border-radius:12px;padding:8px 6px;text-align:center;background:var(--card);cursor:pointer;position:relative}
.whn input{position:absolute;opacity:0;pointer-events:none}
.whn b{display:block;font-family:var(--cond);font-weight:800;font-size:19px}
.whn small{font-size:12px;color:var(--muted)}
.whn label:has(input:checked){background:var(--ink);color:#fff}
.whn label:has(input:checked) small{color:#B9BBB8}
.bs-day{height:46px;border:2px solid var(--ink);border-radius:12px;padding:0 12px;font-size:17px;background:var(--card)}
.tg{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font-weight:600;font-size:15px}
.tg input[type=checkbox]{width:22px;height:22px;accent-color:var(--green)}
.bs-sec{font-family:var(--cond);font-weight:800;font-size:19px;margin-top:2px}
.bs-sec small{font-family:var(--body);font-weight:600;font-size:13px;color:var(--muted);margin-left:4px}
.bs-list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line);font-size:15px}
.li input[type=checkbox]{width:24px;height:24px;flex:none;accent-color:var(--green)}
.li span{flex:1;min-width:0}
.li small{color:var(--muted);font-size:12px;text-align:right}
.li:has(input:disabled){opacity:.6}
.prev{background:var(--card);border:1.5px dashed var(--muted);border-radius:12px;padding:9px 12px;font-size:13px;color:var(--muted)}
.prev b{color:var(--ink);font-weight:700}
.bs-panel .btn{flex:none}
.bs-panel .btn:disabled{opacity:.5}
.ops{gap:8px}
.op{border:2px solid var(--ink)!important;border-radius:12px;background:var(--card);padding:9px 12px}
.op .tx{display:flex;flex-direction:column}
.op .tx b{font-family:var(--cond);font-weight:800;font-size:18px;line-height:1.1}
.op .tx small{text-align:left}
.op .tx input{margin-top:4px;height:38px;border:1.5px solid var(--line);border-radius:9px;padding:0 10px;font-size:15px;width:100%}
.op .use{font-size:12px;font-weight:700;background:#FFF1C2;color:#6B5200;border-radius:7px;padding:2px 7px;white-space:nowrap;max-width:45%;overflow:hidden;text-overflow:ellipsis}
.fld{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fld label{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:6px 12px;display:flex;flex-direction:column}
.fld small{font-size:12px;color:var(--muted);font-weight:600}
.fld input{border:0;background:none;font-family:var(--cond);font-weight:800;font-size:21px;padding:0;min-width:0;width:100%}
@media (prefers-reduced-motion:reduce){.bs-panel,.bs-dim{transition:none}}
.bs-panel [data-submit]{position:sticky;bottom:0;box-shadow:0 -10px 14px var(--paper)}

/* --- studio grafico: tavole 1–7 ---------------------------------------------- */
.u-pill{font-family:var(--cond);font-weight:800;font-size:14px;padding:2px 8px;border-radius:7px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.u-pill.ok{background:#D6EEDD;color:#0A5E2B}.u-pill.no{background:#F8D9D6;color:#9C1E15}.u-pill.wa{background:#FFF1C2;color:#6B5200}
.u-pill.k{background:var(--ink);color:#fff}.u-pill.o{background:var(--orange);color:var(--ink)}.u-pill.ln{border:1.5px solid var(--ink);background:none}
.u-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:54px;border-radius:14px;font-family:var(--cond);font-weight:800;font-size:21px;border:2px solid var(--ink);background:var(--card);color:var(--ink);width:100%;cursor:pointer}
.u-btn.k{background:var(--ink);color:#fff}.u-btn.o{background:var(--orange)}.u-btn.g{background:var(--green);color:#fff;border-color:var(--green)}
.u-btn.sm{height:42px;font-size:17px;padding:0 14px;border-radius:11px}
.u-btn:disabled{opacity:.6}
.u-sec{font-family:var(--cond);font-weight:800;font-size:19px;display:flex;align-items:center;gap:8px;margin:8px 2px 0}
.u-sec small{font-family:var(--body);font-weight:600;font-size:13px;color:var(--muted)}
.u-body{padding:14px 16px 24px;display:flex;flex-direction:column;gap:10px}
.dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}
.dot.r{background:var(--red)}.dot.o{background:var(--orange)}.dot.y{background:var(--yellow)}.dot.g{background:var(--green)}

/* 1 Home */
.top.h-hello small{color:#B9BBB8;font-size:14px;display:block}
.h-shop{display:flex;align-items:center;gap:14px;background:var(--orange);border:2px solid var(--ink);border-radius:16px;padding:16px;box-shadow:0 5px 0 var(--ink);margin-bottom:5px;transition:transform .12s,box-shadow .12s}
.h-shop:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}
.h-shop .ic{width:54px;height:54px;border-radius:14px;background:var(--ink);color:var(--orange);display:flex;align-items:center;justify-content:center;flex:none}
.h-shop b{font-family:var(--cond);font-weight:800;font-size:28px;line-height:1;display:block}
.h-shop span{font-size:14px;font-weight:600}
.h-shop .n{margin-left:auto;font-family:var(--cond);font-weight:800;font-size:54px;line-height:.8}
.h-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.h-mini{position:relative;overflow:hidden;background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.h-mini b{font-family:var(--cond);font-weight:800;font-size:34px;line-height:1}
.h-mini b.late{color:var(--red)}
.h-mini span{font-family:var(--cond);font-weight:700;font-size:17px}
.h-mini small{font-size:12px;color:var(--muted)}
.h-mini.dk{background:var(--ink);color:#fff}.h-mini.dk b{color:var(--yellow)}.h-mini.dk small{color:#B9BBB8}
.sec-row .r{margin-left:auto}
.sec-row small{font-family:var(--body);font-weight:600;font-size:13px;color:var(--muted)}
.cal-ic{width:40px;height:40px;flex:none;border-radius:10px;border:2px solid var(--ink);background:var(--card);display:flex;align-items:flex-end;justify-content:center;position:relative;overflow:hidden;padding-bottom:3px}
.cal-ic::before{content:"";position:absolute;left:0;right:0;top:0;height:11px;background:var(--red)}
.cal-ic b{font-family:var(--cond);font-weight:800;font-size:18px;line-height:1}
@media (min-width:700px){.cols>.h-shop,.cols>.h-row{grid-column:1/-1}}

/* 2–3 In negozio */
body.store-page .app{padding-bottom:calc(96px + var(--safe-b))}
.s-top{background:var(--ink);color:#fff;padding:calc(14px + var(--safe-t)) 16px 12px;position:sticky;top:0;z-index:15}
.s-top .row{display:flex;align-items:center;gap:10px}
.s-top .x{width:40px;height:40px;border-radius:12px;border:2px solid #fff;display:flex;align-items:center;justify-content:center;flex:none;color:#fff}
.s-top h1{font-family:var(--cond);font-weight:800;font-size:30px;line-height:1}
.s-top small{display:block;font-size:13px;color:#C9CBC7}
.s-prog{height:8px;border-radius:4px;background:#2A2D31;margin-top:12px;overflow:hidden}
.s-prog i{display:block;height:100%;background:var(--yellow);border-radius:4px;transition:width .4s cubic-bezier(.32,.72,0,1)}
.s-chips{display:flex;gap:6px;margin-top:12px;overflow-x:auto;scrollbar-width:none}
.s-chips::-webkit-scrollbar{display:none}
.s-chips a{flex:none;border:1.5px solid #5A5D60;color:#E6E6E2;border-radius:16px;padding:5px 12px;font-size:13px;font-weight:600}
.s-chips a.on{background:#fff;color:var(--ink);border-color:#fff}
.s-chips a.alt{border-style:dashed}
.bi{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:11px 12px;transition:opacity .25s}
.bi .tx{flex:1;min-width:0}
.bi .what{font-family:var(--cond);font-weight:800;font-size:20px;line-height:1.08;overflow-wrap:anywhere}
.bi .for{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.bi .meta{font-size:13px;color:var(--muted);margin-top:5px}
.bi .todo{font-size:12px;font-weight:700;color:#0A5E2B;margin-top:5px}
.bi .take{text-align:center;flex:none;display:flex;flex-direction:column;align-items:center;gap:6px}
.bi .take b{font-family:var(--cond);font-weight:800;font-size:28px;line-height:.9}
.bi .take small{font-size:11px;color:var(--muted);font-weight:600;margin-top:-4px}
.ck{width:36px;height:36px;border-radius:10px;border:2.5px solid var(--ink);background:var(--card);flex:none;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.ck.on{background:var(--green);border-color:var(--green);color:#fff}
.bi.done{opacity:.55}.bi.done .what{text-decoration:line-through}
.bi.just .ck.on{animation:bump .35s cubic-bezier(.3,1.6,.5,1)}
.s-foot{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;background:var(--card);border-top:2px solid var(--ink);padding:10px 14px max(var(--safe-b),12px);display:flex;gap:8px;z-index:20}
.s-foot .u-btn{flex:1}
@media (min-width:700px){.s-foot{max-width:780px}}
@media (min-width:1100px){.s-foot{max-width:1080px}}
.mh{display:flex;align-items:center;gap:10px;margin:8px 2px 0}
.mh svg{width:66px;height:30px;flex:none}
.mh b{font-family:var(--cond);font-weight:800;font-size:21px;line-height:1}
.mh small{display:block;font-size:12px;color:var(--muted)}
.mh .r{margin-left:auto}

/* 4–5 risposta alla scansione, sopra la fotocamera */
.cap-answer{position:absolute;left:0;right:0;bottom:0;z-index:30;transform:translateY(100%);transition:transform .34s cubic-bezier(.32,.72,0,1)}
.cap-answer.on{transform:none}
.cap.has-sheet .cap-bottom{visibility:hidden}
.u-sheet{background:var(--paper);color:var(--ink);border-radius:26px 26px 0 0;padding:10px 16px max(var(--safe-b),18px);box-shadow:0 -10px 40px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:10px;max-height:78vh;overflow:auto}
.u-sheet .grab{width:44px;height:5px;border-radius:3px;background:#B8B7B0;margin:0 auto 2px;flex:none}
.u-sheet .prod{display:flex;gap:12px;align-items:center}
.u-sheet .prod b{font-family:var(--cond);font-weight:800;font-size:20px;line-height:1.1;display:block}
.u-sheet .prod small{display:block;font-size:13px;color:var(--muted)}
.u-sheet .thumb{width:52px;height:52px;border-radius:9px;flex:none;background:#E0DFD8 center/cover;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800}
.ans{border-radius:16px;padding:14px 16px;color:#fff;display:flex;gap:12px;align-items:center}
.ans .big{width:52px;height:52px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex:none;font-family:var(--cond);font-weight:800;font-size:28px}
.ans b{font-family:var(--cond);font-weight:800;font-size:26px;line-height:1.02;display:block}
.ans span{font-size:14px;opacity:.92}
.ans.ok{background:var(--green)}.ans.ok .big{color:var(--green)}
.ans.have{background:var(--yellow);color:var(--ink)}.ans.have .big{color:var(--ink)}
.ans.no{background:var(--red)}.ans.no .big{color:var(--red)}
.ans.unk{background:#3A3D40}.ans.unk .big{color:var(--ink)}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.nums div{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:8px 10px}
.nums b{font-family:var(--cond);font-weight:800;font-size:30px;line-height:1;display:block}
.nums small{font-size:12px;color:var(--muted);font-weight:600}
.nums .hl{background:var(--ink);color:#fff}.nums .hl small{color:#B9BBB8}.nums .hl b{color:var(--yellow)}
.ans-row{display:flex;gap:8px}.ans-row .u-btn{flex:1}
.ans-wait{padding:18px 0 26px;text-align:center;font-family:var(--cond);font-weight:800;font-size:22px}
.ans-done{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 0 22px;color:var(--green);text-align:center}
.ans-done b{font-family:var(--cond);font-weight:800;font-size:28px;color:var(--ink)}
.ans-done span{font-size:14px;color:var(--muted)}
.fits{display:flex;flex-direction:column;gap:6px}
.fit{display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:8px 12px}
.fit svg{flex:none}
.fit b{font-family:var(--cond);font-weight:800;font-size:18px;flex:1}

/* 6 scheda prodotto */
.p-hero{min-height:250px;background:linear-gradient(180deg,#2A2D31,#15171A);position:relative;display:flex;align-items:flex-end;padding:0 18px 16px;color:#fff;padding-top:calc(60px + var(--safe-t))}
.p-hero .ph-img{position:absolute;right:20px;top:calc(62px + var(--safe-t));width:132px;height:132px;border-radius:20px;background:#3a3d40;border:2px solid #4a4d50;display:flex;align-items:center;justify-content:center;object-fit:cover;color:#9C9E9B}
.p-hero .nav2{position:absolute;left:16px;right:16px;top:calc(12px + var(--safe-t));display:flex;justify-content:space-between;z-index:2}
.p-hero .nav2 a{height:40px;min-width:40px;border-radius:12px;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-family:var(--cond);font-weight:800;font-size:16px;padding:0 10px;color:#fff}
.p-hero h1{font-family:var(--cond);font-weight:800;font-size:30px;line-height:1.02;max-width:calc(100% - 150px);overflow-wrap:anywhere}
.p-hero small{display:block;color:#C9CBC7;font-size:14px;margin-top:3px;max-width:calc(100% - 150px)}
.pv{gap:10px}
.u-qty{display:flex;align-items:center;gap:8px;background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:8px 8px 8px 14px}
.u-qty .n{font-family:var(--cond);font-weight:800;font-size:40px;line-height:1}
.u-qty .n.zero{color:var(--red)}
.u-qty .u{font-size:13px;color:var(--muted);flex:1;line-height:1.2}
.u-qty .b{height:46px;min-width:50px;border:2px solid var(--ink);border-radius:11px;display:flex;align-items:center;justify-content:center;font-family:var(--cond);font-weight:800;font-size:20px;padding:0 10px;background:var(--card)}
.u-qty .b.k{background:var(--ink);color:#fff}
.cal-btn{width:100%}
.specs2{background:var(--card);border:2px solid var(--ink);border-radius:12px;overflow:hidden}
.specs2 div{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-top:1px solid var(--line);font-size:15px}
.specs2 div:first-child{border-top:0}
.specs2 span{color:var(--muted)}
.specs2 b{font-family:var(--cond);font-weight:700;font-size:17px;text-align:right;overflow-wrap:anywhere}
.hist{font-size:14px;display:flex;flex-direction:column;gap:6px;padding:0 2px 10px}
.hist div{display:flex;gap:10px}
.hist span{color:var(--muted);width:72px;flex:none}

/* 7 scorte: raggruppa per luogo / tipo / macchina, un solo segnale per riga */
.seg3x{display:flex;background:#2A2D31;border-radius:11px;padding:3px;margin-top:8px}
.seg3x a{flex:1;text-align:center;font-family:var(--cond);font-weight:700;font-size:16px;color:#C9CBC7;padding:5px 0;border-radius:8px}
.seg3x a.on{background:var(--card);color:var(--ink)}
.grp-h{display:flex!important;align-items:baseline;gap:8px}
.grp-h b{font-family:var(--cond);font-weight:800;font-size:20px}
.grp-h small{font-family:var(--body);font-weight:600;font-size:13px;color:var(--muted)}
.grp-h .r{margin-left:auto;align-self:center}
.stock-row .sw-row{border-color:var(--ink)!important;padding:9px 12px;min-height:58px;gap:10px}
.stock-row .name{font-weight:600;font-size:15px}
.stock-row .qty{font-family:var(--cond);font-weight:800;font-size:26px;line-height:1;text-align:right}
.stock-row .qty small{display:block;font-family:var(--body);font-weight:600;font-size:10.5px;color:var(--muted)}
.p-hero .p-title{flex:1;min-width:0}
.read-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.read-acts form{display:contents}
.read-acts .btn{min-height:54px}

/* --- stagioni e calendario ----------------------------------------------------- */
.ring{--p:0;position:relative;width:54px;height:54px;flex:none;border-radius:50%;
  background:conic-gradient(var(--c,var(--green)) calc(var(--p) * 1%),rgba(0,0,0,.12) 0);display:flex;align-items:center;justify-content:center}
.ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--card)}
.ring em{position:relative;font-style:normal;font-family:var(--cond);font-weight:800;font-size:16px}
.ring.big{width:92px;height:92px;flex-direction:column}
.ring.big::before{inset:9px}
.ring.big em{font-size:28px;line-height:1}
.ring.big small{position:relative;font-size:11px;font-weight:700;color:var(--muted)}
.se-card{display:flex;align-items:center;gap:12px;border:2px solid var(--ink);border-radius:16px;padding:12px 14px;color:#fff;
  background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 70%,#000));box-shadow:0 5px 0 var(--ink);margin-bottom:5px}
.se-card .se-ic{font-size:34px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}
.se-card .se-t{flex:1;min-width:0;display:flex;flex-direction:column}
.se-card small{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;opacity:.85}
.se-card b{font-family:var(--cond);font-weight:800;font-size:25px;line-height:1.05}
.se-card span:not(.se-ic):not(.ring){font-size:13.5px;opacity:.95}
.se-card .ring::before{background:color-mix(in srgb,var(--c) 75%,#000)}
.se-card .ring{background:conic-gradient(#fff calc(var(--p) * 1%),rgba(255,255,255,.25) 0)}
.cal-link{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:10px 14px}
.cal-link span{flex:1;display:flex;flex-direction:column}
.cal-link b{font-family:var(--cond);font-weight:800;font-size:19px}
.cal-link small{font-size:12.5px;color:var(--muted)}
.cal-link i{font-style:normal;font-size:26px;color:var(--muted)}
@media (min-width:700px){.cols>.se-card,.cols>.cal-link{grid-column:1/-1}}

.cal{gap:12px}
.yr{background:var(--ink);border-radius:16px;padding:12px 12px 14px;color:#fff}
.yr-m{display:grid;grid-template-columns:repeat(12,1fr);margin-left:28px;font-family:var(--cond);font-weight:700;font-size:13px;color:#8E918D;text-align:center}
.yr-m .on{color:var(--orange)}
.yr-rows{position:relative;display:flex;flex-direction:column;gap:7px;margin-top:8px}
.yr-row{display:flex;align-items:center;gap:6px;height:20px}
.yr-l{width:22px;text-align:center;font-size:15px}
.yr-track{position:relative;flex:1;height:12px;border-radius:6px;background:repeating-linear-gradient(90deg,#2A2D31 0 calc(100%/12 - 1px),#15171A 0 calc(100%/12))}
.yr-track i{position:absolute;top:0;bottom:0;border-radius:6px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25)}
.yr-now{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--orange);border-radius:1px;box-shadow:0 0 0 2px rgba(255,106,19,.25)}
.ss{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 6px;scroll-snap-type:x mandatory}
.ss::-webkit-scrollbar{display:none}
.ss-card{flex:0 0 150px;scroll-snap-align:start;background:var(--card);border:2px solid var(--ink);border-top:6px solid var(--c);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;position:relative}
.ss-card .ss-ic{font-size:24px}
.ss-card b{font-family:var(--cond);font-weight:800;font-size:17px;line-height:1.1;padding-right:44px}
.ss-card small{font-size:12px;color:var(--muted)}
.ss-card .ring{--c:var(--green);position:absolute;right:8px;top:10px;width:42px;height:42px}
.ss-card .ring::before{inset:5px}
.ss-card .ring em{font-size:12px}
.mcal{background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:10px 10px 12px}
.mcal-h{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px}
.mcal-h b{font-family:var(--cond);font-weight:800;font-size:22px}
.mcal-h a{width:40px;height:40px;border-radius:12px;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}
.mcal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.mcal-g .wd{text-align:center;font-family:var(--cond);font-weight:700;font-size:13px;color:var(--muted);padding-bottom:2px}
.dd{position:relative;aspect-ratio:1/1.05;border:0;background:none;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:5px;font-family:var(--body);cursor:pointer}
.dd .n{font-weight:600;font-size:15px;line-height:1.2;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.dd.out{opacity:.35}
.dd.today .n{background:var(--orange);color:var(--ink);font-weight:800}
.dd.sel{background:#EDECE6;box-shadow:inset 0 0 0 2px var(--ink)}
.dd .band{position:absolute;left:3px;right:3px;bottom:3px;display:flex;flex-direction:column;gap:1px}
.dd .band i{height:3px;border-radius:2px;opacity:.55}
.dd .dots{display:flex;gap:3px;margin-top:3px}
.dd .dots i{width:6px;height:6px;border-radius:50%}
.mcal-day{border-top:1.5px solid var(--line);margin-top:8px;padding:10px 4px 0;display:flex;flex-direction:column;gap:7px}
.dl-h{font-family:var(--cond);font-weight:800;font-size:18px;text-transform:capitalize}
.dl-it{border-left:4px solid var(--c);padding:2px 0 2px 10px;display:flex;flex-direction:column}
.dl-it b{font-weight:700;font-size:15px}
.dl-it small,.dl-none{font-size:13px;color:var(--muted);white-space:pre-line}
.ag{display:flex;flex-direction:column;gap:8px}
.ag-it{display:flex;gap:12px;align-items:center;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:8px 12px 8px 8px;border-left:8px solid var(--c)}
.ag-d{width:44px;flex:none;text-align:center;font-family:var(--cond);font-weight:700;font-size:13px;color:var(--muted);line-height:1}
.ag-d b{display:block;font-weight:800;font-size:26px;color:var(--ink)}
.ag-t{flex:1;min-width:0;display:flex;flex-direction:column}
.ag-t b{font-weight:700;font-size:15px;line-height:1.25}
.ag-t small{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-sync{display:flex;flex-direction:column;gap:8px}
.cal-sync form{display:contents}
.cs-row{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:10px 12px}
.cs-logo{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--cond);font-weight:800;font-size:20px;color:#fff;flex:none}
.cs-logo.outlook{background:#0F6CBD}.cs-logo.google{background:conic-gradient(#EA4335 0 25%,#FBBC05 0 50%,#34A853 0 75%,#4285F4 0)}
.cs-t{flex:1;min-width:0;display:flex;flex-direction:column}
.cs-t b{font-family:var(--cond);font-weight:800;font-size:18px}
.cs-t small{font-size:12.5px;color:var(--muted)}
.linkbtn{background:none;border:0;color:var(--ink);text-decoration:underline;font-weight:600;font-size:14px;align-self:flex-start;padding:2px}
@media (min-width:700px){.cal{max-width:640px;margin:0 auto}}

.se-hero{position:relative;color:#fff;padding:calc(64px + var(--safe-t)) 18px 18px;
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--c) 75%,#fff) 0,var(--c) 45%,color-mix(in srgb,var(--c) 55%,#000) 100%)}
.se-hero .nav2{position:absolute;left:16px;top:calc(12px + var(--safe-t))}
.se-hero .nav2 a{width:40px;height:40px;border-radius:12px;border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff}
.se-hero .se-ic{position:absolute;right:16px;top:calc(4px + var(--safe-t));font-size:84px;opacity:.9;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}
.se-hero h1{font-family:var(--cond);font-weight:800;font-size:36px;line-height:1;max-width:70%}
.se-hero p{font-size:15px;opacity:.9;margin-top:4px}
.se-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.se-count b{display:block;font-family:var(--cond);font-weight:800;font-size:48px;line-height:.9}
.se-count small{font-size:13px;opacity:.9}
.se-hero .ring{background:conic-gradient(#fff calc(var(--p) * 1%),rgba(255,255,255,.28) 0)}
.se-hero .ring::before{background:color-mix(in srgb,var(--c) 70%,#000)}
.se-hero .ring.big small{color:rgba(255,255,255,.8)}
.se{gap:10px}
.se-about{font-size:14px;color:var(--muted)}
.se-m{background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.se-m.ok{border-color:var(--green)}
.se-mh{display:flex;align-items:center;gap:10px}
.se-mh div{flex:1;min-width:0;display:flex;flex-direction:column}
.se-mh b{font-family:var(--cond);font-weight:800;font-size:19px;line-height:1.1}
.se-mh small{font-size:12px;color:var(--muted)}
.se-it{display:flex;align-items:center;gap:8px;font-size:14px;padding-left:4px}
.se-it em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:700;color:var(--muted)}
.se-acts{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.se-edit{background:var(--card);border:2px solid var(--line);border-radius:12px;padding:10px 12px}
.se-edit summary{font-family:var(--cond);font-weight:800;font-size:18px;cursor:pointer}
.se-cats{display:flex;flex-wrap:wrap;gap:6px}
.se-cats label{display:flex;align-items:center;gap:5px;border:1.5px solid var(--line);border-radius:16px;padding:4px 10px;font-size:13px;font-weight:600;flex-direction:row!important}
.gconn{gap:12px}
.gconn p{font-size:15px}
.steps{display:flex;flex-direction:column;gap:12px;padding-left:20px}
.steps li{font-size:15px;line-height:1.4}
.steps .btn{margin-top:8px}
.gform{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.gform input{height:50px;border:2px solid var(--ink);border-radius:12px;padding:0 12px;font-size:15px;background:var(--card)}

/* --- moduli: misure del tipo come campi, Salva sempre a portata ---------------- */
.kf{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;background:#E4E3DC;border-radius:12px;padding:10px}
.kf[hidden]{display:none}
.kf label{font-size:13px}
.kf input{height:46px}
.kf-more summary{font-weight:700;font-size:14px;color:var(--muted);cursor:pointer;padding:2px 0}
.kf-more textarea{margin-top:6px}
.chips button.on{background:var(--ink);color:#fff}
.savebar{position:sticky;bottom:calc(84px + var(--safe-b));z-index:6;padding-top:8px;margin-top:4px;background:linear-gradient(transparent,var(--paper) 30%)}
.nocode-tag{font-style:normal;font-weight:700;color:#8A6A00}

/* --- censimento dalla targhetta, elenco macchine, icone delle stagioni -------- */
.plate-cta{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--orange);border:2px solid var(--ink);border-radius:16px;padding:14px;box-shadow:0 5px 0 var(--ink);margin-bottom:5px;font-family:var(--body);color:var(--ink);cursor:pointer}
.plate-cta:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}
.plate-cta .ic{width:52px;height:52px;border-radius:14px;background:var(--ink);color:var(--orange);display:flex;align-items:center;justify-content:center;flex:none}
.plate-cta b{display:block;font-family:var(--cond);font-weight:800;font-size:25px;line-height:1}
.plate-cta small{display:block;font-size:13px;font-weight:600;margin-top:3px}
.tag.plate{display:flex;align-items:center;gap:12px;padding:10px 12px}
.tag.plate img{width:52px;height:52px;border-radius:9px;object-fit:cover;flex:none;border:1.5px solid var(--line)}
.tag.plate .txt{flex:1;min-width:0}
.tag.plate.done{border-color:var(--orange);border-width:3px}
.tag.plate.error{border-color:var(--red)}
.tag.plate form{display:contents}
.mcard{display:grid!important;grid-template-columns:96px 1fr auto;gap:12px;align-items:center}
.mc-t{min-width:0}
.mc-p{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.mc-p .u-pill{font-size:13px}
.ring.sm{width:44px;height:44px}
.ring.sm::before{inset:5px}
.ring.sm em{font-size:12px}
.sico{width:1em;height:1em;display:inline-block;vertical-align:-.12em}
.yr-l .sico{width:18px;height:18px}
.ss-card .ss-ic .sico{width:28px;height:28px}
.se-card .se-ic .sico{width:40px;height:40px;color:#fff}
.se-hero .se-ic .sico{width:96px;height:96px;color:rgba(255,255,255,.92)}
@media (min-width:700px){.cols>.plate-cta{grid-column:1/-1}}
/* avviso con «Annulla»: resta un po' di più e il pulsante è grande abbastanza per il pollice */
.toast.has-undo{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;animation-duration:7s}
.toast.has-undo span{flex:1;min-width:0}
.toast.has-undo form{display:contents}
.toast.has-undo button{flex:none;height:40px;padding:0 14px;border-radius:10px;border:0;background:var(--yellow);color:var(--ink);font-family:var(--cond);font-weight:800;font-size:17px;cursor:pointer}
.ans-done .u-btn{margin-top:8px;width:auto}
/* esito: lo stesso foglio di risposta, sopra la foto del prodotto */
.esito{min-height:100dvh;background:#1d1f1c;display:flex;flex-direction:column;padding-bottom:0!important}
.esito-bg{flex:1;min-height:34vh;position:relative;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#3b3f3a,#1d1f1c 70%);padding:calc(56px + var(--safe-t)) 20px 20px}
.esito-bg img{max-width:70%;max-height:30vh;border-radius:18px;object-fit:cover;box-shadow:0 14px 40px rgba(0,0,0,.45)}
.esito-ill{width:110px;height:110px;color:#5E615F}
.esito-x{position:absolute;right:16px;top:calc(12px + var(--safe-t));width:44px;height:44px;border-radius:12px;border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff}
.esito-sheet{position:relative!important;transform:none!important}
.esito-sheet .u-sheet{border-radius:26px 26px 0 0;max-height:none;padding-bottom:12px}
.esito-more{background:var(--paper);display:flex;flex-direction:column;gap:8px;padding:0 16px calc(18px + var(--safe-b))}
.esito-more .u-btn{gap:6px}
/* In negozio senza rete */
.offline-bar{display:none;background:var(--yellow);color:var(--ink);font-weight:700;font-size:13px;text-align:center;padding:7px 12px;border-bottom:2px solid var(--ink)}
body.offline .offline-bar{display:block}
.bi.waiting .take small{color:#8A6A00}
.bi.waiting .ck.on{background:var(--yellow);border-color:var(--ink);color:var(--ink)}
/* fotocamera: luogo della serie */
.cap-loc{height:40px;max-width:46vw;border-radius:20px;border:0;background:rgba(0,0,0,.55);color:#fff;font-weight:700;font-size:13px;padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cap-locs{position:absolute;left:12px;right:12px;top:calc(64px + var(--safe-t));z-index:40;background:var(--paper);color:var(--ink);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto;box-shadow:0 14px 40px rgba(0,0,0,.45)}
.cap-locs b{font-family:var(--cond);font-weight:800;font-size:20px;padding:2px 4px 4px}
.cap-locs button{height:46px;border-radius:12px;border:2px solid var(--ink);background:var(--card);font-weight:600;font-size:15px;text-align:left;padding:0 12px}
.cap-locs button.on{background:var(--ink);color:#fff}
.sure-all{display:flex;flex-direction:column;gap:4px}
.sure-all small{font-size:12.5px;color:var(--muted);text-align:center}
.qact form{display:contents}
/* L'ultima volta? (punto di partenza degli interventi) */
.mi.new-all{border-style:dashed;border-color:var(--muted)}
.bl{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:9px 12px;display:flex;flex-direction:column;gap:2px}
.bl b{font-family:var(--cond);font-weight:800;font-size:18px}
.bl small{font-size:12px;color:var(--muted)}
.bl-ch{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.bl-ch label{position:relative}
.bl-ch input{position:absolute;opacity:0;pointer-events:none}
.bl-ch span{display:block;border:1.5px solid var(--ink);border-radius:16px;padding:5px 11px;font-size:13px;font-weight:600;background:var(--paper)}
.bl-ch input:checked+span{background:var(--ink);color:#fff}
/* Hai usato…? */
.ask{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--card);border:2px solid var(--ink);border-left:8px solid var(--green);border-radius:14px;padding:10px 12px;transition:opacity .25s,transform .25s}
.ask-t{flex:1;min-width:150px;display:flex;flex-direction:column}
.ask-t b{font-family:var(--cond);font-weight:800;font-size:19px;line-height:1.1}
.ask-t small{font-size:12px;color:var(--muted)}
.ask-b{display:flex;gap:6px;margin-left:auto}
.ask-b form{display:contents}
.ask-b button{height:42px;min-width:56px;border-radius:11px;border:2px solid var(--ink);background:var(--ink);color:#fff;font-family:var(--cond);font-weight:800;font-size:17px}
.ask-b button.no{background:var(--card);color:var(--ink)}
.ask.gone-ask{opacity:0;transform:translateX(30px)}
@media (min-width:700px){.cols>.ask{grid-column:1/-1}}

/* --- Home: «Oggi» e prima accoglienza ----------------------------------------- */
.today{background:var(--ink);color:#fff;border-radius:16px;padding:12px 12px 6px;display:flex;flex-direction:column}
.td-h{display:flex;align-items:baseline;justify-content:space-between;padding:0 4px 6px}
.td-h b{font-family:var(--cond);font-weight:800;font-size:24px;color:var(--yellow)}
.td-h small{font-size:12.5px;color:#9C9E9B}
.td-it{display:flex;align-items:center;gap:10px;padding:9px 4px;border-top:1px solid #2E3135}
.td-dot{width:12px;height:12px;border-radius:50%;flex:none;background:var(--orange)}
.td-it.late .td-dot{background:var(--red);box-shadow:0 0 0 4px rgba(217,43,30,.25)}
.td-it.season .td-dot{background:var(--green)}
.td-it.queue .td-dot{background:var(--yellow)}
.td-it.shop .td-dot{background:#fff}
.td-t{flex:1;min-width:0;display:flex;flex-direction:column}
.td-t b{font-weight:700;font-size:15px;line-height:1.25}
.td-t small{font-size:12.5px;color:#B9BBB8}
.td-it i{font-style:normal;color:#6B6E6B;font-size:22px}
.td-ok{display:flex;align-items:center;gap:8px;padding:8px 4px 10px;color:#B9F0C8;font-weight:600;font-size:14px}
.welcome{background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.wl-h{display:flex;align-items:center;justify-content:space-between}
.wl-h b{font-family:var(--cond);font-weight:800;font-size:22px}
.wl-h button{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);background:none;color:var(--muted);font-weight:800}
.wl-h form{display:contents}
.wl-step{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.wl-n{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--orange);border:2px solid var(--ink);font-family:var(--cond);font-weight:800;font-size:17px}
.wl-step.ok .wl-n{background:var(--green);color:#fff;border-color:var(--green)}
.wl-step.ok b{text-decoration:line-through;color:var(--muted)}
.wl-t{flex:1;min-width:0;display:flex;flex-direction:column}
.wl-t b{font-weight:700;font-size:15px}
.wl-t small{font-size:12.5px;color:var(--muted)}
.wl-step i{font-style:normal;color:var(--muted);font-size:22px}
@media (min-width:700px){.cols>.today,.cols>.welcome{grid-column:1/-1}}
/* miniature dei prodotti e consumi */
.sthumb{position:relative;width:40px;height:40px;flex:none;border-radius:9px;background:#E4E3DC;display:flex;align-items:center;justify-content:center;font-family:var(--cond);font-weight:800;font-size:18px;color:var(--muted)}
.sthumb img{width:100%;height:100%;object-fit:cover;border-radius:9px}
.sthumb .dot{position:absolute;right:-3px;top:-3px;border:2px solid var(--card);width:13px;height:13px}
.bthumb{width:46px;height:46px;border-radius:9px;object-fit:cover;flex:none;border:1.5px solid var(--line)}
.spark{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:10px 12px}
.spark svg{width:100%;height:70px;display:block}
.spark-m{display:grid;grid-template-columns:repeat(12,1fr);text-align:center;font-family:var(--cond);font-weight:700;font-size:12px;color:var(--muted)}
.spark p{font-size:13px;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.spark p b{color:var(--ink)}

/* --- uno stile solo: sezioni dei moduli, pulsanti ed etichette allineati ------- */
.fsec{font-family:var(--cond);font-weight:800;font-size:15px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);
  border-top:1.5px solid var(--line);padding-top:12px;margin-top:6px}
.form>.fsec:first-of-type{border-top:0;padding-top:0;margin-top:0}
.btn{min-height:56px;font-size:22px;border-radius:14px}
.btn.ghost{min-height:52px;font-size:20px}
.btn.small{min-height:42px;font-size:17px;border-radius:11px}
.pill{font-family:var(--cond);font-weight:800;font-size:14px;padding:2px 9px;border-radius:7px}
.u-btn{font-size:21px}
.tag,.mi,.bi,.sr,.u-card,.spec,.qitem,.buy-it,.mt-row,.se-m,.ss-card,.cs-row,.ag-it,.fit{border-radius:12px}
.top h1{letter-spacing:-.2px}
.mcal-g{grid-template-columns:repeat(7,minmax(0,1fr))}
.dd{min-width:0;padding-left:0;padding-right:0}
.mc-p .u-pill .sico{width:14px;height:14px}
