/* Scatta/Detta v1: phone first, one thumb, warm. No external fonts, no inline styles (strict CSP). */
:root{--bg:#fff7ec;--card:#fff;--ink:#2b2118;--mut:#7a6a5c;--acc:#e8590c;--acc2:#ffe3cf;--g:#1f7a5c;--g2:#ddf4ea;--bad:#b3261e;--badbg:#fdecea;
--chk:#7a5b00;--chkbg:#fff3c4;--info:#3d5a80;--infobg:#e8eef7;--line:#eadccd;--r:20px;--sh:0 2px 12px rgba(80,40,0,.09)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:#efe2d2;color:var(--ink);font:17px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,"DejaVu Sans",sans-serif}
main{max-width:460px;margin:0 auto;min-height:100vh;background:var(--bg);padding:0 0 200px;position:relative}
.proto{max-width:460px;margin:0 auto;background:#3b2f25;color:#ffe9d6;font-size:11px;text-align:center;padding:3px 6px}
h1{font-size:24px;margin:0;line-height:1.15}h2{font-size:22px;margin:14px 0 6px}h3{font-size:17px;margin:14px 0 6px}
p{margin:6px 0}.mut{color:var(--mut)}.small{font-size:14px}.tiny{font-size:12px}.big{font-size:34px;font-weight:800}.mono{font-family:ui-monospace,monospace;word-break:break-all}
.hide{display:none}.grow{flex:1;min-width:0}.center{text-align:center}
.top{display:flex;align-items:center;gap:12px;padding:16px 16px 8px}.top .sp{flex:1}
.logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#ff9a4d,#e8590c);display:grid;place-items:center;font-size:24px;box-shadow:var(--sh)}
.brand{display:flex;flex-direction:column}.brand b{font-size:20px}.brand span{font-size:13px;color:var(--mut)}
.back{border:0;background:var(--card);border-radius:50%;width:46px;height:46px;font-size:28px;line-height:1;box-shadow:var(--sh);cursor:pointer;color:var(--ink)}
.wrap{padding:0 16px}.hello{padding:4px 16px 0}.hello h2{margin:4px 0 0;font-size:26px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 16px}
.tile{border:0;border-radius:var(--r);background:var(--card);box-shadow:var(--sh);padding:16px 14px;text-align:left;min-height:128px;font:inherit;color:inherit;display:flex;flex-direction:column;gap:6px;cursor:pointer}
.tile .e{font-size:36px}.tile b{font-size:17px;line-height:1.2}.tile span{font-size:13px;color:var(--mut)}
.tile.hero,.tile.wide{grid-column:1/3;flex-direction:row;align-items:center;gap:14px;min-height:96px}
.tile.hero{background:linear-gradient(135deg,#ff9a4d,#e8590c);color:#fff;min-height:112px}.tile.hero span{color:#ffeadb}.tile.hero b{font-size:21px;display:block}.tile.hero .e{font-size:46px}
.tile.wide b{display:block}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:14px 16px;margin:10px 16px}
.card.first{background:#fff1e3;border:2px dashed #f4b78a}.card.warnc{border-left:6px solid var(--bad)}.card.chk{background:var(--chkbg);color:var(--chk);font-size:15px}
.card.mutc{background:#f7efe6;box-shadow:none;color:var(--mut)}
.nov{border-top:1px solid var(--line);padding-top:6px;font-size:15px}.nov:first-of-type{border:0}
.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column;gap:2px}.row.two{align-items:stretch}.row.two>*{flex:1;margin:0}
button{font:inherit;color:inherit}
.btn{display:block;width:100%;border:0;border-radius:18px;padding:15px 16px;font-weight:700;font-size:18px;background:var(--acc);color:#fff;min-height:58px;text-align:center;cursor:pointer;margin:0}
.btn.big{min-height:76px;font-size:21px}.btn.sec{background:var(--card);color:var(--ink);border:2px solid var(--line)}.btn.g{background:var(--g)}
.btn.ghost{background:transparent;color:var(--acc);min-height:44px;padding:8px;font-size:16px}.btn.ghost.danger{color:var(--bad)}
.btn[disabled]{background:#d6c6b5;color:#fff;cursor:default}
.btn+.btn,.btn+label.btn,label.btn+.btn,label.btn+label.btn,.wrap>.btn+.note{margin-top:10px}
.bar{position:fixed;bottom:70px;left:0;right:0;max-width:460px;margin:0 auto;padding:14px 16px 10px;background:linear-gradient(rgba(255,247,236,0),var(--bg) 26%);z-index:5}
.bar .mut{text-align:center;margin:0 0 8px;font-size:14px}.bar .row.two{margin-top:10px}
.tabs{position:fixed;bottom:0;left:0;right:0;max-width:460px;margin:0 auto;display:flex;background:#fff;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:6}
.tabs button{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--mut);padding:4px 0;min-height:56px;cursor:pointer;border-radius:14px}
.tabs .ti{font-size:24px}.tabs .on{color:var(--acc);font-weight:700;background:var(--acc2)}
.note{border-radius:14px;padding:10px 12px;font-size:14px;margin-top:12px}.note.lock{background:var(--g2);color:#0f4d39}.note.sim{background:#efe7ff;color:#4b2e83;margin:8px 16px}
.samples{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 16px}
.sample{border:0;background:var(--card);border-radius:14px;box-shadow:var(--sh);padding:6px;font-size:12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px}
.sample img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:9px;background:#eee}
details.card summary{font-weight:700;cursor:pointer;min-height:32px}
.linkrow{display:flex;gap:8px;align-items:center;width:100%;text-align:left;border:0;border-top:1px solid var(--line);background:none;padding:12px 2px;font-size:15px;cursor:pointer}
.linkrow.new{color:var(--acc);font-weight:700;border-top:0}
.preview{width:100%;border-radius:12px;max-height:320px;object-fit:contain;background:#f3ebe1}
.reading{text-align:center;padding:40px 24px}.reading img{width:70%;max-width:260px;border-radius:12px;box-shadow:var(--sh);opacity:.85}
.scan{height:6px;width:70%;max-width:260px;margin:-50% auto 50%;background:linear-gradient(90deg,transparent,#ff9a4d,transparent);animation:scan 1.1s ease-in-out infinite alternate;border-radius:4px}
@keyframes scan{from{transform:translateY(-120px)}to{transform:translateY(80px)}}
.doc{display:flex;gap:12px;align-items:center}.thumb{width:62px;height:78px;border-radius:10px;object-fit:cover;background:#f3ebe1;flex:none}.thumb.x{display:grid;place-items:center;font-size:34px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.chip{display:inline-block;border-radius:99px;padding:3px 10px;font-size:13px;font-weight:700;background:#f1e8de}
.chip.ok{background:var(--g2);color:#0f4d39}.chip.bad{background:var(--badbg);color:var(--bad)}.chip.new{background:var(--infobg);color:var(--info)}.chip.upd{background:#f1e8de}
.chip.up{background:#ffe4d6;color:#a3330a}.chip.down{background:var(--g2);color:#0f4d39}
.row-card.bad{border-left:6px solid var(--bad)}.row-card.out{opacity:.55}.row-card .row.small{margin-top:8px;flex-wrap:wrap}
.pick{border:1px solid var(--line);border-radius:10px;background:#fff;padding:4px 6px;font-size:13px;max-width:150px;margin-left:auto}
.x{border:0;background:#f4ece3;border-radius:50%;width:38px;height:38px;flex:none;cursor:pointer;font-size:16px}
.flag{border-radius:10px;padding:7px 10px;font-size:14px;margin:8px 0 0}.f-bad{background:var(--badbg);color:var(--bad)}.f-chk{background:var(--chkbg);color:var(--chk)}.f-info{background:var(--infobg);color:var(--info)}
.fix{margin-top:8px}.fixrow{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.fixrow label{display:flex;flex-direction:column;font-size:13px;color:var(--mut);gap:3px;flex:1;min-width:90px}
input,select{font:inherit;border:2px solid var(--line);border-radius:12px;padding:10px;background:#fff;color:var(--ink);min-height:48px;width:100%}
.fixrow select{width:auto}.fixrow .row input{min-width:60px}
input:focus,select:focus,button:focus-visible{outline:3px solid #ffb37a;outline-offset:1px}
.bigin{font-size:20px;min-height:58px}.lbl{display:block;font-weight:700;margin:12px 0 6px}
.dots{display:flex;gap:6px;padding:0 16px 6px}.dots span{flex:1;height:6px;border-radius:4px;background:#ead9c7}.dots .done{background:#f4a26b}.dots .on{background:var(--acc)}
.choice{display:grid;gap:14px;padding:14px 16px}
.big-choice{border:0;border-radius:24px;background:var(--card);box-shadow:var(--sh);padding:22px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;min-height:170px;justify-content:center}
.big-choice .e{font-size:58px}.big-choice b{font-size:23px}.big-choice span{color:var(--mut);font-size:14px}
.presets{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px}
.preset{border:2px solid var(--line);background:#fff;border-radius:99px;padding:9px 14px;font-size:15px;cursor:pointer;display:flex;gap:6px;align-items:center;min-height:44px}
.seg{display:flex;gap:6px;background:#f1e5d8;border-radius:16px;padding:4px;margin:6px 0}
.seg button{flex:1;border:0;background:none;border-radius:12px;padding:10px 6px;font-size:15px;cursor:pointer;min-height:44px}.seg .on{background:#fff;font-weight:700;box-shadow:var(--sh)}
.wrapseg{flex-wrap:wrap}.wrapseg button{flex:1 1 30%}.chipsel{margin:10px 16px}.seg.mini{margin:0;flex:none}.seg.mini button{padding:6px 9px;min-height:40px;font-size:14px}
.line .row+.row{margin-top:8px}.line .cost{font-weight:800}.line.bad{border-left:6px solid var(--bad)}
.stepper{display:flex;align-items:center;gap:4px}.stepper button{width:44px;height:44px;border-radius:50%;border:0;background:var(--acc2);font-size:22px;font-weight:700;cursor:pointer;color:#9a3a00}
.stepper input{width:64px;text-align:center;min-height:44px;padding:6px;font-weight:700}.stepper .n{min-width:36px;text-align:center;font-weight:800;font-size:20px}
.sheet-bg{position:fixed;inset:0;background:rgba(43,33,24,.45);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--bg);width:100%;max-width:460px;max-height:82vh;overflow:auto;border-radius:24px 24px 0 0;padding:16px 16px 30px}
.eurin{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 0}.eurin span{font-size:34px;font-weight:800}.price{font-size:40px;font-weight:800;text-align:center;max-width:200px;min-height:72px}
.verdict{text-align:center;padding:22px 18px}.verdict .light{font-size:64px;line-height:1}.verdict h2{font-size:25px}
.v-verde{background:linear-gradient(180deg,#e2f7ec,#fff)}.v-arancio{background:linear-gradient(180deg,#ffedd8,#fff)}.v-rosso{background:linear-gradient(180deg,#fde3e1,#fff)}
.v-blu{background:linear-gradient(180deg,#e3ecfb,#fff)}.v-grigio{background:linear-gradient(180deg,#f0ebe5,#fff)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}
.stat{background:var(--card);border-radius:18px;box-shadow:var(--sh);padding:12px 14px;display:flex;flex-direction:column}.stat b{font-size:24px}
.search{font-size:18px;min-height:54px;border-radius:16px}
.item{display:flex;align-items:center;gap:12px;width:calc(100% - 32px);margin:8px 16px;border:0;background:var(--card);border-radius:18px;box-shadow:var(--sh);padding:12px 14px;text-align:left;cursor:pointer}
.light-s{font-size:24px;width:30px;text-align:center}.chev{font-size:26px;color:var(--mut)}
.card.data .btn{margin-top:10px}
.hero-ok{text-align:center;background:linear-gradient(180deg,#e2f7ec,#fff)}.hero-ok .big{font-size:56px;color:var(--g)}
.alert{border-top:1px solid var(--line);padding:8px 0}.alert:first-of-type{border:0}
.band{margin:6px 0}.band input{width:70px;min-height:42px;padding:6px;text-align:center}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:150px;background:#2b2118;color:#fff;border-radius:99px;padding:12px 20px;font-size:15px;z-index:30;max-width:90%;box-shadow:var(--sh)}
/* laptop: same app, roomier */
@media (min-width:900px){
 body{padding:24px 0}main,.proto{max-width:760px}main{border-radius:28px;box-shadow:0 10px 40px rgba(80,40,0,.12);min-height:calc(100vh - 48px)}
 .tiles{grid-template-columns:repeat(4,1fr)}.tile.hero{grid-column:1/3}.tile.wide{grid-column:3/5}
 .samples{grid-template-columns:repeat(5,1fr)}.stats{grid-template-columns:repeat(4,1fr)}
 .bar,.tabs{max-width:760px}.choice{grid-template-columns:1fr 1fr}.sheet{max-width:760px}
}
.row.two>.btn+.btn{margin-top:0}
.fixrow label:nth-child(2){flex:2;min-width:150px}.fixrow .row{gap:6px;margin:0}.fixrow .row select{flex:0 0 auto}
.datefix input{margin:8px 0}
/* review rows: one line each, details on tap */
.row-card{padding:0}
.rowhead{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:14px 16px;text-align:left;font:inherit;color:inherit;cursor:pointer;min-height:64px}
.rowhead .ri{font-size:22px;flex:0 0 auto}
.rowhead .rl{color:var(--mut);display:block;margin-top:2px}
.rowhead .rp{font-weight:700;white-space:nowrap}
.row-card .details{padding:0 16px 14px;border-top:1px solid var(--line)}
.row-card .details .pickl{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--mut);margin-top:8px}
.row-card .details .pick{width:100%}
.row-card.look{border-left:6px solid #e6a700}
.card.total{text-align:center;font-size:18px}
.btn.warnb{background:var(--bad);color:#fff}
.link{background:none;border:0;padding:0;color:var(--acc);text-decoration:underline;font:inherit;cursor:pointer}
.sfrido{margin-top:-4px}
.chip.chk{background:#fff3cd;color:#7a5a00}
.okline{font-size:18px;font-weight:600}
.altro{margin-top:10px}.altro summary{cursor:pointer;color:var(--mut);padding:8px 0}
.ask .row.two{margin-top:10px}

/* private-test build and data protection (19/10) */
.card.remind{border-left:6px solid #2b8a3e;background:#ebfbee}
.card.soon{opacity:.75;border:2px dashed #d9c9b3;background:#fffaf2}
.card label.col{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.card label.col input{font-size:17px;padding:10px;border:1px solid #d9c9b3;border-radius:10px}
.card label.row{display:flex;align-items:center;gap:8px;margin-top:6px}
.card label.row input[type=checkbox]{width:22px;height:22px}
/* 19/10: invoice checks (totals, discounts, duplicates), classic extras, price source */
.card.okc { border-left: 6px solid #2e7d32; background: #eef8ef; }
.card.tot p { margin: 0; }
.card.disc .discrow { border-top: 1px solid #eadfce; padding-top: 8px; margin-top: 8px; }
.card.disc .discrow:first-of-type { border-top: 0; }
.card.disc select, .card.disc .discrow select { width: 100%; min-height: 44px; font-size: 16px; border-radius: 12px; border: 2px solid #e6d8c3; background: #fff; padding: 6px 10px; }
.card.extra .chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.chipb { min-height: 40px; padding: 6px 12px; border-radius: 999px; border: 2px dashed #e0a77a; background: #fff8f0; color: #8a3b0a; font-size: 15px; font-weight: 600; cursor: pointer; }
.chipb.add { border-style: dashed; }
.alts { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.alts .chipb { min-height: 34px; font-size: 13px; border-style: solid; border-color: #e6d8c3; color: #4a3b2c; }
p.src { margin: 2px 0 0; }
.card.dup h3 { margin-top: 0; }
