/* DocScan v6 */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=DM+Mono:wght@400;500&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --bg:    #07071a; --surf: #0d0d22; --card: #111128; --raise: #18183a; --inp: #0b0b1f;
  --b0:rgba(255,255,255,.04); --b1:rgba(255,255,255,.09); --b2:rgba(255,255,255,.18);
  --c:#00d4ff; --cdim:#008fab; --cbg:rgba(0,212,255,.07); --cglow:rgba(0,212,255,.18);
  --g:#00e5a0; --gbg:rgba(0,229,160,.10); --gy:#ffaa00; --r:#ff4757; --rbg:rgba(255,71,87,.10);
  --t1:#eaeeff; --t2:#8892b0; --t3:#4a5580;
  --fd:'Syne',sans-serif; --fm:'DM Mono',monospace; --fb:'DM Sans',sans-serif;
  --r1:4px; --r2:10px; --r3:16px; --rf:9999px;
  --mobile-hh:90px; --mobile-bh:66px; --sidebar-w:240px;
  --tr:160ms cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%;height:100%}
body{background:var(--bg);color:var(--t1);font-family:var(--fb);min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,canvas,video{display:block;max-width:100%}
button{cursor:pointer;font-family:inherit;border:none;background:none;color:inherit}
input{font-family:inherit}

/* ══════════════════════════════════════════════════════
   WELCOME
══════════════════════════════════════════════════════ */
#welcome{position:fixed;inset:0;z-index:10000;background:var(--bg);display:flex;flex-direction:column;align-items:center;overflow:hidden;transition:opacity 700ms cubic-bezier(.4,0,.2,1)}
#welcome.out{opacity:0;pointer-events:none}
#welcome.gone{display:none}

.wlc-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.wlc-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:0;animation:blobIn 1.4s cubic-bezier(.4,0,.2,1) forwards}
.wlc-blob-1{width:70vmax;height:70vmax;top:-25%;left:-20%;background:radial-gradient(circle,rgba(0,212,255,.2) 0%,transparent 70%);animation-delay:.05s}
.wlc-blob-2{width:55vmax;height:55vmax;bottom:-20%;right:-15%;background:radial-gradient(circle,rgba(0,229,160,.14) 0%,transparent 70%);animation-delay:.25s}
.wlc-blob-3{width:45vmax;height:45vmax;top:35%;left:50%;transform:translateX(-50%);background:radial-gradient(circle,rgba(80,50,255,.1) 0%,transparent 70%);animation-delay:.45s}
@keyframes blobIn{to{opacity:1}}

.wlc-grid{position:absolute;inset:0;opacity:0;background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:64px 64px;animation:fadeIn .9s .3s cubic-bezier(.4,0,.2,1) forwards}
@keyframes fadeIn{to{opacity:1}}

.wlc-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 28px 16px;text-align:center;max-width:480px;width:100%}

.wlc-logo{opacity:0;transform:translateY(22px) scale(.94);animation:riseIn .75s .18s cubic-bezier(.34,1.2,.64,1) forwards}
.wlc-logo-mark{width:80px;height:80px;border-radius:24px;background:linear-gradient(135deg,var(--c),#0095b3);display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto 20px;box-shadow:0 0 0 1px rgba(0,212,255,.3),0 0 48px rgba(0,212,255,.28),0 8px 32px rgba(0,0,0,.45);position:relative}
.wlc-logo-mark::after{content:'';position:absolute;inset:-8px;border-radius:32px;border:1.5px solid rgba(0,212,255,.22);animation:pulseRing 2.2s 1.4s ease-in-out infinite}
@keyframes pulseRing{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.09);opacity:.35}}
.wlc-name{font-family:var(--fd);font-size:clamp(42px,10vw,68px);font-weight:800;letter-spacing:-.03em;color:var(--t1);line-height:1.05}
.wlc-name em{font-style:normal;color:var(--c)}
.wlc-tagline{font-family:var(--fb);font-size:clamp(15px,3.6vw,18px);color:var(--t2);margin-top:18px;max-width:360px;line-height:1.65;opacity:0;transform:translateY(14px);animation:riseIn .7s .4s cubic-bezier(.34,1.2,.64,1) forwards}
@keyframes riseIn{to{opacity:1;transform:none}}

.wlc-cta{margin-top:36px;opacity:0;transform:translateY(14px) scale(.97);animation:riseIn .7s .65s cubic-bezier(.34,1.2,.64,1) forwards;width:100%;max-width:300px}
.wlc-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:62px;border-radius:20px;background:linear-gradient(135deg,var(--c) 0%,#0099cc 100%);color:var(--bg);font-family:var(--fd);font-size:18px;font-weight:700;letter-spacing:-.01em;border:none;cursor:pointer;box-shadow:0 0 0 1px rgba(0,212,255,.35),0 6px 32px rgba(0,212,255,.38),0 2px 8px rgba(0,0,0,.3);transition:all 200ms cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}
.wlc-btn::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,transparent 55%);border-radius:inherit;pointer-events:none}
.wlc-btn:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 0 0 1px rgba(0,212,255,.45),0 12px 44px rgba(0,212,255,.5),0 4px 12px rgba(0,0,0,.3)}
.wlc-btn:active{transform:translateY(0) scale(.98)}
.wlc-btn-arrow{font-size:20px;transition:transform 200ms}
.wlc-btn:hover .wlc-btn-arrow{transform:translateX(5px)}

/* Welcome footer */
.wlc-footer{position:relative;z-index:1;width:100%;max-width:540px;padding:16px 24px calc(20px + env(safe-area-inset-bottom,0px));text-align:center;flex-shrink:0}
.wlc-footer-row{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.wlc-footer-privacy{font-size:11.5px;color:rgba(74,85,128,.65);line-height:1.5;margin-bottom:0}
.wlc-footer-privacy svg{flex-shrink:0;opacity:.55;color:var(--c)}
.wlc-footer-divider{width:32px;height:1px;background:rgba(255,255,255,.06);margin:10px auto}
.wlc-footer-meta{font-family:var(--fm);font-size:10px;color:rgba(74,85,128,.5);letter-spacing:.03em}
.wlc-footer-meta strong{color:rgba(136,146,176,.7);font-weight:600}
.wlc-footer-dot{opacity:.35}

/* ══════════════════════════════════════════════════════
   SIDEBAR (desktop only, hidden by default)
══════════════════════════════════════════════════════ */
.sidebar{display:none}

/* ══════════════════════════════════════════════════════
   APP SHELL
══════════════════════════════════════════════════════ */
#app{display:flex;flex-direction:column;height:100%;width:100%;max-width:640px;margin:0 auto}
.app-header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--surf);border-bottom:1px solid var(--b1);max-width:640px;margin:0 auto}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:50px;padding:0 16px}
.logo{display:flex;align-items:center;gap:8px}
.logo-mark{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,var(--c),var(--cdim));display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 0 14px var(--cglow);flex-shrink:0}
.logo-mark.sm{width:32px;height:32px;border-radius:9px;font-size:15px}
.logo-text{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.02em}
.logo-text em{font-style:normal;color:var(--c)}
.btn-icon{width:32px;height:32px;border:1px solid var(--b1);background:var(--card);color:var(--t2);border-radius:var(--r1);font-size:14px;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.btn-icon:hover{color:var(--t1);border-color:var(--b2)}
.btn-icon:active{transform:scale(.91)}
.mobile-steps{display:flex;align-items:center;padding:7px 16px 9px}
.step-pill{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--rf);border:1px solid var(--b1);background:transparent;transition:var(--tr);cursor:pointer;flex-shrink:0}
.step-pill:active{transform:scale(.95)}
.sp-num{width:18px;height:18px;border-radius:50%;background:var(--raise);font-family:var(--fm);font-size:10px;font-weight:500;color:var(--t3);display:flex;align-items:center;justify-content:center;transition:var(--tr);flex-shrink:0}
.sp-lbl{font-family:var(--fm);font-size:10px;font-weight:500;color:var(--t3);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;transition:var(--tr)}
.step-pill.active{border-color:var(--c);background:var(--cbg)}
.step-pill.active .sp-num{background:var(--c);color:var(--bg)}
.step-pill.active .sp-lbl{color:var(--c)}
.step-pill.done{border-color:rgba(0,229,160,.3)}
.step-pill.done .sp-num{background:var(--g);color:var(--bg)}
.step-pill.done .sp-lbl{color:var(--g)}
.step-conn{flex:1;height:1px;background:var(--b1);min-width:8px;margin:0 3px}
.app-main{flex:1;margin-top:var(--mobile-hh);padding-bottom:calc(var(--mobile-bh) + env(safe-area-inset-bottom,0px) + 16px);overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative}
.panel{display:none;animation:fadeUp .22s cubic-bezier(.4,0,.2,1)}
.panel.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.panel-hdr{padding:20px 16px 14px}
.panel-hdr h1{font-family:var(--fd);font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.panel-hdr p{font-size:13px;color:var(--t2);margin-top:5px;line-height:1.5}
.desktop-only{display:none}
.mobile-only{display:flex}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--mobile-bh);background:var(--surf);border-top:1px solid var(--b1);align-items:center;gap:10px;padding:0 14px calc(6px + env(safe-area-inset-bottom,0px));z-index:100}
.btn-export-nav{flex:1;height:44px;border-radius:var(--r2);background:var(--g);color:var(--bg);font-family:var(--fd);font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;box-shadow:0 3px 14px rgba(0,229,160,.38);transition:var(--tr)}
.btn-export-nav:hover{box-shadow:0 5px 20px rgba(0,229,160,.55)}
.btn-export-nav:active{transform:scale(.97)}
.btn-export-nav:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn-back{height:44px;min-width:86px;border-radius:var(--r2);background:var(--raise);color:var(--t2);border:1px solid var(--b1)!important;font-family:var(--fd);font-size:13px;font-weight:600;padding:0 14px;transition:var(--tr)}
.btn-back:hover{color:var(--t1);border-color:var(--b2)!important}
.btn-back:disabled{opacity:.3;cursor:not-allowed}
.btn-fwd{flex:1;height:44px;border-radius:var(--r2);background:var(--c);color:var(--bg);font-family:var(--fd);font-size:14px;font-weight:700;box-shadow:0 3px 18px var(--cglow);transition:var(--tr)}
.btn-fwd:hover{background:#19ddff;box-shadow:0 4px 24px var(--cglow)}
.btn-fwd:active{transform:scale(.97)}
.btn-fwd:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
.field-group{padding:0 16px;margin-bottom:18px}
.field-label{font-family:var(--fm);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:9px}
.px18{padding:0 16px}
.text-input{width:100%;height:44px;background:var(--inp);border:1px solid var(--b1);border-radius:var(--r2);color:var(--t1);font-size:15px;padding:0 13px;outline:none;transition:var(--tr)}
.text-input:focus{border-color:var(--c);box-shadow:0 0 0 3px var(--cglow)}
.fmt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.fmt-tile{background:var(--card);border:1.5px solid var(--b1);border-radius:var(--r2);padding:13px 8px 11px;cursor:pointer;transition:var(--tr);display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;-webkit-tap-highlight-color:transparent}
.fmt-tile:active{transform:scale(.95)}
.fmt-tile.sel{border-color:var(--c);background:var(--cbg);box-shadow:0 0 0 1px var(--c) inset}
.fmt-icon{background:var(--raise);border:1px solid var(--b2);border-radius:2px;margin-bottom:2px;transition:var(--tr)}
.fmt-tile.sel .fmt-icon{background:rgba(0,212,255,.14);border-color:var(--c)}
.fmt-name{font-family:var(--fd);font-size:13px;font-weight:700;color:var(--t1)}
.fmt-size{font-family:var(--fm);font-size:9px;color:var(--t3)}
.fmt-tile.sel .fmt-name{color:var(--c)}
.orient-row{display:flex;gap:8px}
.orient-btn{flex:1;height:50px;border-radius:var(--r2);border:1.5px solid var(--b1)!important;background:var(--card);display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--fb);font-size:13px;font-weight:500;color:var(--t2);transition:var(--tr);cursor:pointer}
.orient-btn:active{transform:scale(.96)}
.orient-btn.active{border-color:var(--c)!important;background:var(--cbg);color:var(--c)}
.orient-icon{font-size:16px}
.step1-layout{display:block}
.step1-left{min-width:0}
.step1-right{display:none}
.doc-picker-wrap{margin-bottom:4px}
.doc-picker-cards{display:flex;flex-direction:column;gap:10px;padding:4px 16px 14px}

/* Category cards */
.doc-cat-card{display:flex;align-items:center;gap:14px;padding:16px 14px;background:var(--card);border:1.5px solid var(--b1);border-radius:var(--r3);cursor:pointer;transition:var(--tr);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}
.doc-cat-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--cbg) 0%,transparent 60%);opacity:0;transition:opacity 180ms}
.doc-cat-card:hover{border-color:rgba(0,212,255,.4)}
.doc-cat-card:hover::before{opacity:1}
.doc-cat-card:active{transform:scale(.98)}
.doc-cat-icon{width:52px;height:52px;border-radius:14px;background:var(--raise);border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--c);transition:var(--tr)}
.doc-cat-card:hover .doc-cat-icon{background:var(--cbg);border-color:rgba(0,212,255,.3)}
.doc-cat-body{flex:1;min-width:0}
.doc-cat-title{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--t1);line-height:1.2}
.doc-cat-sub{font-size:11.5px;color:var(--t3);margin-top:3px;font-family:var(--fm)}
.doc-cat-examples{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.doc-cat-tag{font-family:var(--fm);font-size:10px;color:var(--t2);background:var(--raise);border:1px solid var(--b1);border-radius:var(--rf);padding:2px 8px;letter-spacing:.02em}
.doc-cat-arrow{color:var(--t3);flex-shrink:0;transition:transform 160ms,color 160ms}
.doc-cat-card:hover .doc-cat-arrow{color:var(--c);transform:translateX(3px)}

/* Sub-picker */
.doc-subpicker{background:var(--card);border:1.5px solid var(--b1);border-radius:var(--r3);overflow:hidden;animation:fadeUp .2s cubic-bezier(.4,0,.2,1)}
.doc-subpicker-back{display:flex;align-items:center;gap:6px;padding:12px 14px;font-family:var(--fm);font-size:11px;font-weight:500;color:var(--c);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--b0);width:100%;text-align:left;cursor:pointer;transition:background 140ms;-webkit-tap-highlight-color:transparent}
.doc-subpicker-back:hover{background:var(--b0)}
.doc-subpicker-title{padding:10px 14px 6px;font-family:var(--fm);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.doc-subpicker-list{display:flex;flex-direction:column}
.doc-sub-item{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;transition:background 140ms;-webkit-tap-highlight-color:transparent;border-top:1px solid var(--b0)}
.doc-sub-item:hover{background:var(--b0)}
.doc-sub-item:active{background:var(--cbg)}
.doc-sub-icon{width:40px;height:26px;border-radius:6px;background:var(--raise);border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--t2)}
.doc-sub-info{flex:1;min-width:0}
.doc-sub-name{font-size:13.5px;font-weight:600;color:var(--t1);line-height:1.3}
.doc-sub-desc{font-family:var(--fm);font-size:10px;color:var(--t3);margin-top:2px}
.doc-sub-chev{color:var(--t3);flex-shrink:0}
#doc-scan-list{display:flex;flex-direction:column;gap:12px;padding:0 16px}
.doc-block{background:var(--card);border:1px solid var(--b1);border-radius:var(--r3);overflow:hidden;transition:border-color var(--tr)}
.doc-block.complete{border-color:rgba(0,229,160,.3)}
.doc-block-hdr{display:flex;align-items:center;gap:10px;padding:11px 13px 10px;border-bottom:1px solid var(--b0)}
.doc-block-icon{font-size:20px;flex-shrink:0}
.doc-block-info{flex:1;min-width:0}
.doc-block-name{font-size:13px;font-weight:600;line-height:1.3}
.doc-block-sub{font-family:var(--fm);font-size:9px;color:var(--t3);margin-top:1px;text-transform:uppercase;letter-spacing:.05em}
.doc-block-rm{width:26px;height:26px;border-radius:var(--r1);background:var(--rbg);color:var(--r);font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--tr)}
.doc-block-rm:hover{background:var(--r);color:#fff}
.sides-toggle{display:flex;gap:6px;margin:10px 13px 6px;padding:0}
.sides-tog-btn{flex:1;height:38px;display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--fb);font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--t3);background:var(--raise);border:1.5px solid var(--b1)!important;border-radius:var(--r2);transition:var(--tr);cursor:pointer;-webkit-tap-highlight-color:transparent}
.sides-tog-btn:active{transform:scale(.96)}
.sides-tog-btn.on{background:rgba(0,212,255,.12);border-color:var(--c)!important;color:var(--c)}
.sides-tog-btn .tog-check{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--t3);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:9px;transition:var(--tr)}
.sides-tog-btn.on .tog-check{background:var(--c);border-color:var(--c);color:var(--bg)}
.capture-slots{display:grid;gap:7px;padding:7px 13px 13px}
.capture-slots.cols-1{grid-template-columns:1fr}
.capture-slots.cols-2{grid-template-columns:1fr 1fr}
.cap-slot{background:var(--raise);border:1.5px dashed var(--b1);border-radius:var(--r2);padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;transition:var(--tr);-webkit-tap-highlight-color:transparent;min-height:88px;position:relative;overflow:hidden}
.cap-slot.has-img{border-style:solid;border-color:rgba(0,229,160,.35);padding:0;cursor:default}
.cap-slot:not(.has-img):hover{border-color:var(--c);background:var(--cbg)}
.cap-slot:not(.has-img):active{transform:scale(.96)}
.cap-slot-img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--r2) - 2px);display:block}
.cap-slot-lbl{font-family:var(--fm);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--t3)}
.cap-slot.has-img .cap-slot-lbl{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.58);color:#fff;padding:3px 5px;text-align:center;border-radius:0 0 calc(var(--r2)-2px) calc(var(--r2)-2px);font-size:8px}
.cap-slot-cam{font-size:22px;opacity:.3}
.cap-slot-check{position:absolute;top:5px;left:5px;width:18px;height:18px;border-radius:50%;background:var(--g);color:var(--bg);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cap-slot-redo{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.55);color:#fff;border-radius:4px;font-family:var(--fm);font-size:9px;padding:3px 6px;opacity:0;transition:var(--tr)}
.cap-slot.has-img:hover .cap-slot-redo{opacity:1;cursor:pointer}
.empty-docs{margin:0 16px;padding:36px 16px;text-align:center;border:1.5px dashed var(--b1);border-radius:var(--r3)}
.empty-icon{font-size:32px;margin-bottom:9px}
.empty-msg{font-size:13px;color:var(--t2)}
.step2-layout{display:block}
.step2-preview{padding:0 0 4px}
.preview-wrap{padding:0 16px;display:flex;flex-direction:column;gap:10px}
.preview-pg{background:#fff;border-radius:4px;position:relative;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.55)}
.prev-slot{position:absolute;border-radius:2px;overflow:hidden;background:#efefef;border:1px solid rgba(0,0,0,.08)}
.prev-slot img{width:100%;height:100%;object-fit:cover;display:block}
.prev-slot-lbl{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.55);color:#fff;font-size:7px;padding:2px 3px;text-align:center;font-family:var(--fm)}
.prev-slot-empty{background:repeating-linear-gradient(45deg,rgba(0,0,0,.03),rgba(0,0,0,.03) 3px,transparent 3px,transparent 10px);display:flex;align-items:center;justify-content:center;font-size:8px;color:rgba(0,0,0,.25);font-family:var(--fm)}
.prev-margin{position:absolute;border:1px dashed rgba(0,0,0,.09);pointer-events:none;border-radius:1px}
.preview-pg-lbl{font-family:var(--fm);font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px;padding:0 16px}
.step2-options{padding-top:4px;padding-bottom:16px}
.seg-row{display:flex;gap:6px}
.seg-btn{flex:1;height:40px;border-radius:var(--r2);border:1.5px solid var(--b1)!important;background:var(--card);font-family:var(--fd);font-size:13px;font-weight:700;color:var(--t2);transition:var(--tr);cursor:pointer}
.seg-btn.active{border-color:var(--c)!important;background:var(--cbg);color:var(--c)}
.seg-btn:active{transform:scale(.95)}
.dpi-row{display:flex;gap:6px}
.dpi-btn{flex:1;border-radius:var(--r2);border:1.5px solid var(--b1)!important;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;cursor:pointer;transition:var(--tr);font-family:var(--fm);font-size:11px;font-weight:500;color:var(--t2)}
.dpi-btn span{font-size:9px;color:var(--t3);font-family:var(--fb);font-weight:400}
.dpi-btn.active{border-color:var(--c)!important;background:var(--cbg);color:var(--c)}
.dpi-btn.active span{color:var(--cdim)}
.dpi-btn:active{transform:scale(.95)}
.btn-export{width:100%;height:52px;border-radius:var(--r3);background:var(--g);color:var(--bg);font-family:var(--fd);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 5px 22px rgba(0,229,160,.38);transition:var(--tr);cursor:pointer}
.btn-export:hover{box-shadow:0 7px 28px rgba(0,229,160,.55);transform:translateY(-1px)}
.btn-export:active{transform:scale(.97)}
.btn-export:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.export-ok{display:none;align-items:center;gap:10px;padding:12px 14px;background:var(--gbg);border-radius:var(--r2);border:1px solid rgba(0,229,160,.22);margin-top:2px}
.export-ok.show{display:flex}
.export-ok-ring{width:26px;height:26px;border-radius:50%;background:var(--g);color:var(--bg);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.export-ok-msg{font-size:13px;color:var(--g)}
.panel-actions{gap:10px;margin-top:24px;padding:0 16px}
.btn-primary{height:44px;padding:0 24px;border-radius:var(--r2);background:var(--c);color:var(--bg);font-family:var(--fd);font-size:14px;font-weight:700;box-shadow:0 3px 18px var(--cglow);transition:var(--tr)}
.btn-primary:hover{background:#19ddff;box-shadow:0 4px 24px var(--cglow)}
.btn-primary:active{transform:scale(.97)}
.btn-secondary{height:44px;padding:0 20px;border-radius:var(--r2);background:var(--raise);color:var(--t2);border:1px solid var(--b1)!important;font-family:var(--fd);font-size:13px;font-weight:600;transition:var(--tr)}
.btn-secondary:hover{color:var(--t1);border-color:var(--b2)!important}

/* ══════════════════════════════════════════════════════
   EXPORT SUCCESS SCREEN
══════════════════════════════════════════════════════ */
/* Overlay: covers everything including header */
#export-success{
  display:none;
  position:fixed;inset:0;z-index:600;
  background:var(--bg);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:env(safe-area-inset-top,0px) 24px calc(80px + env(safe-area-inset-bottom,0px));
  overflow:hidden;
}

/* Confetti canvas */
#confetti-cvs{
  position:absolute;inset:0;
  width:100%;height:100%;
  pointer-events:none;z-index:0;
}

.success-inner{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;max-width:380px;width:100%;
  gap:0;
}

/* Logo */
.success-logo{
  display:flex;align-items:center;gap:12px;
  margin-bottom:40px;
  opacity:0;animation:sRise .5s .05s cubic-bezier(.34,1.2,.64,1) forwards;
}
.success-logo-mark{
  width:46px;height:46px;border-radius:14px;
  background:linear-gradient(135deg,var(--c),#0077aa);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 1px rgba(0,212,255,.3),0 0 28px rgba(0,212,255,.3);
}
.success-logo-name{
  font-family:var(--fd);font-size:22px;font-weight:800;
  letter-spacing:-.02em;color:var(--t1);
}
.success-logo-name em{font-style:normal;color:var(--c)}

/* Animated check circle */
.success-icon-wrap{
  position:relative;width:104px;height:104px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:30px;
  opacity:0;animation:sRise .5s .15s cubic-bezier(.34,1.2,.64,1) forwards;
}
.success-circle-svg{
  position:absolute;inset:0;width:100%;height:100%;
  transform:rotate(-90deg);overflow:visible;
}
.success-circle-track{
  fill:none;stroke:rgba(0,229,160,.15);stroke-width:4;
}
.success-circle-fill{
  fill:none;stroke:var(--g);stroke-width:4;
  stroke-linecap:round;
  stroke-dasharray:276.5;
  stroke-dashoffset:276.5;
  animation:sCircle .7s .3s cubic-bezier(.4,0,.2,1) forwards;
  filter:drop-shadow(0 0 8px rgba(0,229,160,.5));
}
@keyframes sCircle{to{stroke-dashoffset:0}}

.success-check{
  color:var(--g);
  opacity:0;
  animation:sCheck .4s .85s cubic-bezier(.34,1.5,.64,1) forwards;
}
@keyframes sCheck{
  from{transform:scale(0) rotate(-10deg);opacity:0}
  to  {transform:scale(1) rotate(0deg);  opacity:1}
}

/* Text */
.success-thanks{
  font-family:var(--fm);font-size:12px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--c);margin-bottom:8px;
  opacity:0;animation:sRise .5s .9s cubic-bezier(.34,1.2,.64,1) forwards;
}
.success-title{
  font-family:var(--fd);font-size:clamp(28px,7vw,38px);
  font-weight:800;letter-spacing:-.03em;color:var(--t1);
  line-height:1.1;margin-bottom:14px;
  opacity:0;animation:sRise .5s .95s cubic-bezier(.34,1.2,.64,1) forwards;
}
.success-msg{
  font-size:14px;color:var(--t2);line-height:1.65;
  margin-bottom:18px;
  opacity:0;animation:sRise .5s 1.05s cubic-bezier(.34,1.2,.64,1) forwards;
}
.success-filename{
  font-family:var(--fm);font-size:12px;color:var(--c);
  background:rgba(0,212,255,.07);
  border:1px solid rgba(0,212,255,.22);
  border-radius:var(--rf);
  padding:6px 18px;margin-bottom:36px;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  opacity:0;animation:sRise .5s 1.1s cubic-bezier(.34,1.2,.64,1) forwards;
}

/* Actions */
.success-actions{
  display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;
  opacity:0;animation:sRise .5s 1.2s cubic-bezier(.34,1.2,.64,1) forwards;
}

/* Primary CTA — Nuova scansione */
.success-btn-new{
  display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;height:58px;
  border-radius:20px;
  background:linear-gradient(135deg,var(--c) 0%,#0095cc 100%);
  color:var(--bg);
  font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-.01em;
  cursor:pointer;border:none;
  box-shadow:0 0 0 1px rgba(0,212,255,.35),0 6px 28px rgba(0,212,255,.4);
  transition:all 200ms cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;
}
.success-btn-new::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.16) 0%,transparent 55%);
  border-radius:inherit;pointer-events:none;
}
.success-btn-new:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(0,212,255,.45),0 10px 36px rgba(0,212,255,.5)}
.success-btn-new:active{transform:scale(.97)}

/* Secondary link — Scarica di nuovo */
.success-link-retry{
  display:inline-flex;align-items:center;gap:6px;
  background:none;border:none;cursor:pointer;
  font-family:var(--fb);font-size:13px;font-weight:500;
  color:var(--t3);
  transition:color 180ms;
  padding:4px 8px;
  border-radius:6px;
}
.success-link-retry:hover{color:var(--t2)}
.success-link-retry:active{color:var(--t1)}

@keyframes sRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

#panel-2{position:relative}

/* Camera, crop and source picker styles → camera.css */

/* ══════════════════════════════════════════════════════
   TOASTS
══════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════
   CONFIRM MODAL
══════════════════════════════════════════════════════ */
.modal-backdrop{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:backdropIn 220ms ease}
.modal-backdrop.open{display:block}
.modal-card{display:none;position:fixed;z-index:9001;top:50%;left:50%;transform:translate(-50%,-54%) scale(.92);width:min(88vw,340px);background:var(--card);border:1px solid var(--b2);border-radius:24px;padding:32px 24px 24px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.7);transition:none}
.modal-card.open{display:block;animation:modalIn 320ms cubic-bezier(.34,1.2,.64,1) forwards}
@keyframes modalIn{to{transform:translate(-50%,-50%) scale(1)}}
.modal-icon{width:56px;height:56px;border-radius:18px;background:rgba(255,170,0,.1);border:1px solid rgba(255,170,0,.25);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:var(--gy)}
.modal-title{font-family:var(--fd);font-size:19px;font-weight:700;color:var(--t1);margin-bottom:8px}
.modal-msg{font-size:14px;color:var(--t2);line-height:1.55;max-width:260px;margin:0 auto}
.modal-actions{display:flex;gap:10px;margin-top:24px}
.modal-btn-cancel{flex:1;height:48px;border-radius:14px;background:var(--raise);border:1px solid var(--b1)!important;font-family:var(--fd);font-size:15px;font-weight:600;color:var(--t2);cursor:pointer;transition:var(--tr)}
.modal-btn-cancel:hover{color:var(--t1);border-color:var(--b2)!important}
.modal-btn-cancel:active{transform:scale(.97)}
.modal-btn-ok{flex:1;height:48px;border-radius:14px;background:var(--r);border:none;font-family:var(--fd);font-size:15px;font-weight:700;color:#fff;cursor:pointer;box-shadow:0 4px 16px rgba(255,71,87,.35);transition:var(--tr)}
.modal-btn-ok:hover{background:#ff6070;box-shadow:0 6px 22px rgba(255,71,87,.5)}
.modal-btn-ok:active{transform:scale(.97);box-shadow:none}

#toasts{position:fixed;top:calc(var(--mobile-hh)+8px);left:50%;transform:translateX(-50%);z-index:9998;display:flex;flex-direction:column;gap:7px;width:min(92vw,370px);pointer-events:none}
.toast{background:var(--raise);border:1px solid var(--b2);border-radius:var(--r2);padding:11px 14px;font-size:13px;display:flex;align-items:center;gap:9px;box-shadow:0 6px 24px rgba(0,0,0,.5);animation:toastIn .22s cubic-bezier(.4,0,.2,1);pointer-events:all}
.toast.success{border-left:3px solid var(--g)}
.toast.error  {border-left:3px solid var(--r)}
.toast.warning{border-left:3px solid var(--gy)}
@keyframes toastIn {from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes toastOut{to  {opacity:0;transform:translateY(-8px)}}

/* ══════════════════════════════════════════════════════
   DESKTOP 1024px+
══════════════════════════════════════════════════════ */
@media(min-width:1024px){
  .app-header{display:none}
  .mobile-only{display:none!important}
  .desktop-only{display:flex}
  .panel-actions{display:flex}
  body{display:flex;min-height:100dvh}
  .sidebar{display:flex;flex-direction:column;width:var(--sidebar-w);flex-shrink:0;background:var(--surf);border-right:1px solid var(--b1);position:fixed;top:0;left:0;bottom:0;z-index:200;padding:28px 0 24px}
  .sidebar-logo{display:flex;align-items:center;gap:10px;padding:0 24px 28px;border-bottom:1px solid var(--b1);margin-bottom:20px}
  .sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 12px;flex:1}
  .snav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r3);transition:var(--tr);cursor:pointer;text-align:left;border:1px solid transparent}
  .snav-item:hover{background:var(--b0);border-color:var(--b1)}
  .snav-item.active{background:var(--cbg);border-color:rgba(0,212,255,.25)}
  .snav-item.done{border-color:rgba(0,229,160,.18)}
  .snav-num{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:var(--raise);border:1px solid var(--b1);font-family:var(--fm);font-size:12px;font-weight:500;color:var(--t3);display:flex;align-items:center;justify-content:center;transition:var(--tr)}
  .snav-item.active .snav-num{background:var(--c);color:var(--bg);border-color:var(--c);box-shadow:0 0 12px var(--cglow)}
  .snav-item.done   .snav-num{background:var(--g);color:var(--bg);border-color:var(--g)}
  .snav-info{display:flex;flex-direction:column;gap:2px}
  .snav-title{font-family:var(--fd);font-size:14px;font-weight:600;color:var(--t2);transition:var(--tr)}
  .snav-sub{font-family:var(--fm);font-size:10px;color:var(--t3);letter-spacing:.03em}
  .snav-item.active .snav-title{color:var(--c)}
  .snav-item.done   .snav-title{color:var(--g)}
  .snav-line{height:1px;background:var(--b0);margin:2px 14px}
  .sidebar-footer{padding:0 16px;border-top:1px solid var(--b1);padding-top:20px}
  .sidebar-reset{width:100%;height:38px;border-radius:var(--r2);background:transparent;color:var(--t3);border:1px solid var(--b1)!important;font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:.04em;transition:var(--tr)}
  .sidebar-reset:hover{color:var(--t2);border-color:var(--b2)!important}
  #app{margin-left:var(--sidebar-w);max-width:none;flex:1;min-height:100dvh}
  .app-main{margin-top:0;padding-bottom:24px;max-width:860px;min-height:100dvh;overflow-y:auto}
  .panel-hdr{padding:32px 28px 18px}
  .panel-hdr h1{font-size:26px}
  .field-group{padding:0 28px;margin-bottom:20px}
  .px18{padding:0 28px}
  .fmt-grid{grid-template-columns:repeat(5,1fr)}
  .step1-layout{display:grid;grid-template-columns:1fr 300px;gap:0;align-items:start}
  .step1-right{display:flex;flex-direction:column;position:sticky;top:24px;padding:0 28px 28px;gap:12px}
  .acq-summary{background:var(--card);border:1px solid var(--b1);border-radius:var(--r3);padding:16px}
  .acq-title{font-family:var(--fm);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:12px}
  .acq-grid{display:flex;flex-direction:column;gap:8px}
  .acq-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--raise);border-radius:var(--r2);border:1px solid var(--b0)}
  .acq-item-thumb{width:44px;height:28px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg);border:1px solid var(--b1)}
  .acq-item-thumb.empty{display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.3}
  .acq-item-info{flex:1;min-width:0}
  .acq-item-name{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .acq-item-side{font-family:var(--fm);font-size:9px;color:var(--t3);margin-top:1px;text-transform:uppercase;letter-spacing:.05em}
  .acq-item-status{width:16px;height:16px;border-radius:50%;background:var(--b1);flex-shrink:0}
  .acq-item-status.done{background:var(--g);box-shadow:0 0 6px var(--g)}
  #doc-scan-list{padding:0 28px}
  .doc-picker-wrap{margin-bottom:4px}
  .doc-picker-cards{padding:4px 28px 14px}
  .empty-docs{margin:0 28px}
  .step2-layout{display:grid;grid-template-columns:auto 320px;gap:0;align-items:start}
  .step2-preview{position:sticky;top:24px;padding:0 0 28px 28px}
  .preview-wrap{padding:0}
  .preview-pg-lbl{padding:0;margin-bottom:10px}
  .step2-options{padding:0 28px 28px;position:sticky;top:24px}
  .panel-actions{padding:0 28px}
  #toasts{top:20px;left:calc(var(--sidebar-w) + 20px);transform:none}

  /* camera cards are handled by camera.css — no overrides needed */
}

@media(min-width:1280px){
  :root{--sidebar-w:260px}
  .app-main{max-width:960px}
  .step2-layout{grid-template-columns:auto 360px}
  .step1-layout{grid-template-columns:1fr 320px}
}
