/* Inter, bundled (assets/fonts, SIL OFL 1.1) — without it every device fell
   back to its own system font, e.g. a handwriting-style theme font on some
   Android phones. */
@font-face{font-family:"Inter";src:url("assets/fonts/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --bg:#070b16; --panel:#0e1424; --panel2:#111a2d; --text:#f4f7ff; --muted:#98a4ba;
  --line:rgba(255,255,255,.09); --primary:#7c5cff; --cyan:#20c8ff; --green:#39d98a;
  --shadow:0 24px 70px rgba(0,0,0,.28); --radius:22px;
  /* Elevation: 1 = resting surfaces, 2 = the primary work surface on a page,
     3 = floating layers (menus, dialogs). */
  --elev-1:0 1px 0 rgba(255,255,255,.035) inset,0 8px 24px rgba(0,0,0,.22);
  --elev-2:0 1px 0 rgba(255,255,255,.06) inset,0 0 0 1px rgba(124,92,255,.10),0 26px 70px rgba(0,0,0,.38),0 8px 22px rgba(40,30,120,.18);
  --elev-3:0 22px 60px rgba(0,0,0,.55);
  --tap:40px;
}
@media(pointer:coarse){:root{--tap:44px}}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:radial-gradient(circle at 80% -10%,rgba(124,92,255,.18),transparent 30%),radial-gradient(circle at 15% 20%,rgba(32,200,255,.09),transparent 26%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:"Inter",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select{font:inherit}button{cursor:pointer} a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
[hidden]{display:none!important}
.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;position:fixed;inset:0 auto 0 0;padding:24px 16px;display:flex;flex-direction:column;background:rgba(7,11,22,.88);border-right:1px solid var(--line);backdrop-filter:blur(22px);z-index:20}
.brand{display:flex;gap:12px;align-items:center;padding:5px 9px 30px}.brand img{width:44px;height:44px;border-radius:12px;object-fit:cover}.brand strong{display:block;font-size:15px}.brand span{display:block;color:var(--muted);font-size:12.5px;margin-top:3px}
nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;color:#aab4c7;text-align:left;padding:12px 13px;border-radius:13px;display:flex;align-items:center;gap:12px;transition:.2s}.nav-item span{width:22px;text-align:center}.nav-item:hover{background:rgba(255,255,255,.05);color:white}.nav-item.active{background:linear-gradient(90deg,rgba(124,92,255,.22),rgba(32,200,255,.08));color:white;box-shadow:inset 2px 0 var(--primary)}
.sidebar-bottom{margin-top:auto;color:var(--muted);font-size:12.5px}.sidebar-bottom>a{display:block;padding:18px 9px 0;color:#c9d1df}.secure-card{border:1px solid var(--line);background:rgba(255,255,255,.03);padding:12px;border-radius:15px;display:flex;gap:9px}.secure-card small{display:block;margin-top:3px;line-height:1.4}.dot{width:8px;height:8px;background:var(--green);border-radius:50%;margin-top:4px;box-shadow:0 0 12px var(--green)}
.main{margin-left:260px;width:calc(100% - 260px);min-width:0}.topbar{height:72px;padding:0 34px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;background:rgba(7,11,22,.7);backdrop-filter:blur(18px)}.crumb{font-size:14px;color:var(--muted);display:flex;gap:10px}.crumb strong{color:white}.top-actions{display:flex;gap:9px;align-items:center}.status-pill{font-size:12.5px;border:1px solid var(--line);padding:7px 10px;border-radius:999px;color:#c9d2e3}.status-pill i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:6px}.icon-btn,.mobile-menu{border:1px solid var(--line);background:rgba(255,255,255,.03);color:white;width:34px;height:34px;border-radius:10px}.mobile-menu{display:none}
.icon-btn.icon-link{display:grid;place-items:center;text-decoration:none;font-size:13.5px;font-weight:800}
.page{display:none;max-width:1450px;margin:0 auto;padding:46px 34px 20px}.page.active{display:block}.hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:12px;letter-spacing:.18em;color:#8f9bb2;font-weight:800}.hero h1,.section-heading h1{font-size:clamp(38px,5vw,66px);line-height:.98;letter-spacing:-.055em;margin:11px 0 14px}.hero h1 em{font-style:normal;background:linear-gradient(90deg,#a78bfa,#36d5ff);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p,.section-heading p{max-width:680px;color:var(--muted);line-height:1.65;margin:0}.hero-orb{width:150px;height:150px;border-radius:42% 58% 60% 40%;background:radial-gradient(circle at 35% 30%,#55dfff,transparent 28%),linear-gradient(135deg,#7c5cff,#1d2440);box-shadow:0 0 90px rgba(124,92,255,.28);display:grid;place-items:center;transform:rotate(18deg)}.hero-orb span{font-size:42px;transform:rotate(-18deg)}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.card{background:linear-gradient(180deg,rgba(17,26,45,.88),rgba(11,17,30,.88));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.converter-card{padding:22px}.card-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.card h2{margin:0;font-size:18px}.card-head p{color:var(--muted);font-size:13.5px;margin:5px 0 0}.segmented{display:flex;padding:3px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px}.seg{border:0;background:transparent;color:#8995aa;padding:8px 11px;border-radius:9px;font-size:12.5px;transition:.15s}.seg:hover:not(.active){color:white;background:rgba(255,255,255,.06)}.seg.active{background:#fff;color:#101522}
.dropzone{margin-top:20px;border:1px dashed rgba(124,92,255,.48);border-radius:18px;min-height:245px;padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 0,rgba(124,92,255,.10),transparent 55%);transition:.2s}.dropzone.drag{border-color:#36d5ff;background:rgba(32,200,255,.07)}.drop-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(124,92,255,.12);color:#b9aaff;font-size:23px;margin-bottom:10px}.dropzone h3{margin:0 0 6px;font-size:17px}.dropzone p{margin:0;color:var(--muted);font-size:13.5px}.drop-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:17px 0 12px}.dropzone small{color:var(--muted);max-width:520px;font-size:12px;line-height:1.5}
.btn{border:1px solid var(--line);padding:10px 15px;border-radius:11px;font-size:13.5px;font-weight:750;color:white;background:rgba(255,255,255,.04);transition:.2s}.btn:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.18)}.btn:active{transform:translateY(0);filter:brightness(.92)}.btn[disabled]{opacity:.55;pointer-events:none;transform:none}.btn.primary{border:0;background:linear-gradient(100deg,#7658ff,#25bfe9);box-shadow:0 9px 26px rgba(92,83,255,.22)}.btn.ghost{background:rgba(255,255,255,.035)}.btn.danger{border:1px solid rgba(255,110,110,.35);background:rgba(255,110,110,.08);color:#ffb4b4}.btn.danger:hover{background:rgba(255,110,110,.16);border-color:rgba(255,110,110,.5)}
.danger-zone{border-color:rgba(255,110,110,.22)}
.conversion-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.conversion-row label{font-size:12.5px;color:#9da8bb;display:grid;gap:7px}.conversion-row select{width:100%;background:#0a1020;color:white;border:1px solid var(--line);border-radius:11px;padding:11px;outline:none}.quality-wrap input{width:100%;accent-color:#8c72ff}.quality-wrap{position:relative}.quality-wrap span{position:absolute;right:0;top:0;color:#dbe2ef}
.option-row{display:flex;gap:20px;flex-wrap:wrap;align-items:center;margin:15px 0}.check{font-size:12.5px;color:#a5b0c2;display:inline-flex;align-items:center}.check input{accent-color:#7c5cff;margin-right:7px}.check.check-wrap{align-items:flex-start;line-height:1.6}.field .check.check-wrap input{width:auto;margin-top:3px;flex:none}.option-row-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:750}
.file-list{border-top:1px solid var(--line);min-height:78px;padding:8px 0}.empty{color:var(--muted);font-size:13.5px;text-align:center;padding:25px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.05)}.file-item:last-child{border-bottom:0}.file-name{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72%}.file-meta{color:var(--muted);font-size:12px}.remove-file{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:4px 8px;transition:.15s}.remove-file:hover{color:white;background:rgba(255,255,255,.06)}
.scan-item{display:flex;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.05)}.scan-item:last-child{border-bottom:0}.scan-thumb{width:44px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:none;background:#0a1020}.scan-item-meta{flex:1;min-width:0}.scan-item-meta b{font-size:13.5px;display:block}.scan-item-meta span{color:var(--muted);font-size:12px}.scan-item-actions{display:flex;align-items:center;gap:6px;flex:none}
.btn.small{padding:7px 10px;font-size:12px}
.card-foot{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;align-items:center;gap:10px}.output-info span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.output-info b{font-size:12.5px}.actions{display:flex;gap:8px}
.quick-card{padding:20px}.tool-card{width:100%;border:0;border-top:1px solid var(--line);background:transparent;color:white;padding:15px 2px;display:grid;grid-template-columns:48px 1fr 18px;align-items:center;text-align:left;gap:10px;border-radius:10px;transition:.15s}.tool-card:hover{background:rgba(255,255,255,.04)}.tool-card>span{border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center;font-size:11px;color:#b7c0d2}.tool-card b{font-size:12.5px;display:block}.tool-card small{color:var(--muted);font-size:12px}.tool-card i{color:#7d8aa0;font-style:normal;display:inline-block;transition:.15s}.tool-card:hover i{color:#b9aaff;transform:translateX(2px)}.engine-note{margin-top:10px;border-radius:14px;background:rgba(32,200,255,.06);border:1px solid rgba(32,200,255,.12);padding:12px}.engine-note b{font-size:12px}.engine-note p{font-size:12px;line-height:1.55;color:#8190a8;margin:5px 0 0}
.section-heading{margin-bottom:25px}.print-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.print-grid>.card:first-child{padding:22px}.dropzone.compact{min-height:210px}.print-list{margin-top:10px}.print-actions{border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:flex-end;gap:8px}.print-help{padding:28px}.big-symbol{font-size:36px}.print-help h2{margin:10px 0}.print-help li{color:#a2aec1;font-size:13.5px;line-height:2}.notice{margin-top:20px;padding:12px;border-radius:12px;background:rgba(245,158,11,.07);color:#a99a79;font-size:12px;line-height:1.6}
.history-list{padding:8px 20px}.history-row{display:flex;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13.5px}.history-row:last-child{border-bottom:0}.history-row span{color:var(--muted)}
.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cap{padding:22px}.cap-icon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(124,92,255,.12);font-size:12px;font-weight:900;color:#bbaeff}.cap h3{margin:18px 0 8px}.cap p{color:var(--muted);font-size:12.5px;line-height:1.65;min-height:54px}.cap>b{font-size:11px;letter-spacing:.13em;color:#56dca0}

.pdf-tools-heading{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.pdf-tools-heading h1{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.03em;margin:8px 0 10px}
.pdf-tools-heading p{font-size:13.5px}
.pdf-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.pdf-tool{padding:20px;position:relative;display:flex;flex-direction:column;gap:10px}
.pdf-tool h3{margin:0;font-size:14px}
.pdf-tool p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.6;min-height:32px}
.pdf-tool code{background:rgba(255,255,255,.06);border-radius:5px;padding:1px 5px;font-size:12px}
.pdf-tool input[type="file"],.pdf-tool input[type="text"],.pdf-tool select{width:100%;background:#0a1020;color:white;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:12.5px;outline:none}
.pdf-tool input[type="file"]{padding:8px}
.pdf-tool .btn{margin-top:auto}
.premium-badge{position:absolute;top:16px;right:16px;font-size:11px;font-weight:800;letter-spacing:.1em;color:#1a1430;background:linear-gradient(100deg,#ffd36e,#ff9f6e);padding:4px 8px;border-radius:999px}
.ocr-result{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:12.5px;line-height:1.6;color:#c6cfe0;white-space:pre-wrap;max-height:220px;overflow:auto}

.modal-backdrop{position:fixed;inset:0;background:rgba(4,6,14,.72);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-backdrop[hidden]{display:none}
.modal-card{position:relative;max-width:520px;width:100%;background:linear-gradient(180deg,rgba(20,28,48,.97),rgba(10,14,26,.97));border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.5);padding:32px}
.modal-close{position:absolute;top:16px;right:16px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:white;width:30px;height:30px;border-radius:9px}
.modal-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.12em;color:#1a1430;background:linear-gradient(100deg,#ffd36e,#ff9f6e);padding:5px 10px;border-radius:999px;margin-bottom:14px}
.modal-card h2{margin:0 0 8px;font-size:22px}
.modal-card>p{color:var(--muted);font-size:13.5px;line-height:1.6;margin:0 0 20px}
.tier-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}
.tier-compare>div{border:1px solid var(--line);border-radius:14px;padding:14px;background:rgba(255,255,255,.02)}
.tier-compare b{font-size:12.5px;letter-spacing:.06em}
.tier-compare ul{margin:10px 0 0;padding-left:16px;color:#a9b3c7;font-size:12px;line-height:1.7}
.modal-actions{display:flex;justify-content:flex-end;gap:10px}
.link-btn{display:block;margin:16px auto 0;background:transparent;border:0;color:#8fdfff;font-size:12.5px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.tier-compare{grid-template-columns:1fr}}
.about-card{padding:32px;display:flex;align-items:center;gap:25px;max-width:800px}.about-card img{width:100px;height:100px;border-radius:24px;object-fit:cover}.about-card h2{margin:0 0 5px}.about-card>div>p{color:#b1bbcb;margin:0 0 10px}.about-card .muted{color:var(--muted);font-size:13.5px;line-height:1.6}.about-links{display:flex;gap:18px;font-size:12.5px;color:#b9c4d5}.about-links a{color:#8fdfff}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:800px;margin-top:16px}.about-stat{padding:20px}.about-stat b{display:block;font-size:22px;letter-spacing:-.02em;background:linear-gradient(90deg,#a78bfa,#36d5ff);-webkit-background-clip:text;background-clip:text;color:transparent}.about-stat span{display:block;margin-top:8px;color:var(--muted);font-size:12.5px;line-height:1.5}
.about-mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:800px;margin-top:14px}.about-mv{padding:24px}.about-mv h3{margin:0 0 8px;font-size:15px}.about-mv p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.about-values-heading{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.about-values-heading h1{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.03em;margin:8px 0 0}
.about-values-grid .cap p{min-height:0}
.about-quote{max-width:800px;margin:40px 0 0;padding:0;border:0;font-size:clamp(18px,2.4vw,26px);font-weight:750;letter-spacing:-.02em;line-height:1.4;color:white}
@media(max-width:760px){.about-stats,.about-mv-grid{grid-template-columns:1fr}}
footer{max-width:1450px;margin:20px auto 0;padding:22px 34px 28px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}footer a{text-decoration:underline;text-underline-offset:2px}footer a:hover{color:white}
.legal-shell{min-height:100vh;padding:48px 20px 80px;display:flex;justify-content:center}
.legal-content{width:100%;max-width:760px;padding:44px 48px}
.legal-content .brand-row{display:flex;align-items:center;gap:12px;margin-bottom:32px}
.legal-content .brand-row img{width:38px;height:38px;border-radius:11px;object-fit:cover}
.legal-content .brand-row strong{display:block;font-size:14px}
.legal-content .brand-row span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.legal-content h1{font-size:clamp(28px,4vw,38px);letter-spacing:-.03em;margin:0 0 8px}
.legal-content .updated{color:var(--muted);font-size:12.5px;margin:0 0 32px}
.legal-content h2{font-size:16px;margin:32px 0 10px;letter-spacing:-.01em}
.legal-content p,.legal-content li{color:#c3cbdb;font-size:14px;line-height:1.75}
.legal-content ul{padding-left:20px;margin:8px 0}
.legal-content a{color:#8fdfff;text-decoration:underline;text-underline-offset:3px}
.legal-content .legal-back{display:inline-block;margin-top:36px;color:var(--muted);font-size:13.5px}
@media(max-width:640px){.legal-content{padding:32px 22px}.legal-shell{padding:32px 14px 60px}}
.toast{position:fixed;right:25px;bottom:25px;max-width:360px;padding:13px 16px;border:1px solid var(--line);border-radius:13px;background:#111a2d;color:white;font-size:12.5px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;z-index:50}.toast.show{opacity:1;transform:none;pointer-events:auto;cursor:pointer}.toast.toast-error{background:#2a1420;border-color:rgba(255,110,110,.4);box-shadow:0 24px 70px rgba(180,30,30,.22)}
@media(max-width:1050px){.workspace-grid,.print-grid{grid-template-columns:1fr}.quick-card{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.quick-card .card-head,.engine-note{grid-column:1/-1}.cap-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s;width:275px}.sidebar.open{transform:none}.main{margin-left:0;width:100%}.mobile-menu{display:block}.topbar{padding:0 17px;gap:12px}.crumb{margin-right:auto}.page{padding:30px 17px 10px}.hero-orb{width:90px;height:90px}.hero h1{font-size:44px}.hero p{font-size:13.5px}.card-head{display:block}.segmented{margin-top:14px;width:max-content}.conversion-row{grid-template-columns:1fr}.card-foot{display:block}.actions{margin-top:12px}.actions .btn{flex:1}.quick-card{display:block}.cap-grid{grid-template-columns:1fr}.about-card{display:block}.about-card img{margin-bottom:15px}footer{padding:20px 17px;display:block}footer span{display:block;margin-top:5px}.status-pill{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.premium-badge.is-unlocked{color:#062a1a;background:linear-gradient(100deg,#7cf0b8,#39d98a)}

/* Scan review/edit dialog — crop (draggable corners), rotate, filter presets */
.modal-card.scan-editor{max-width:1060px;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:auto;padding:24px 24px 20px;display:flex;flex-direction:column;gap:16px}
.scan-editor-head h2{margin:6px 0 4px;font-size:22px}
.scan-editor-head p{color:var(--muted);font-size:13.5px;margin:0;min-height:1.4em;line-height:1.5}
.scan-editor-head p.is-warning{color:#ffd36e}
.scan-editor-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px}
.scan-editor-pane{display:flex;flex-direction:column;gap:10px;min-width:0}
.pane-label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px}
.pane-label span{color:var(--muted);font-size:12.5px;text-align:right}
.scan-stage{position:relative;display:grid;place-items:center;min-height:240px;padding:14px;border-radius:16px;border:1px solid var(--line);background:radial-gradient(ellipse at 50% 0%,rgba(124,92,255,.10),transparent 60%),#060a14;box-shadow:inset 0 2px 18px rgba(0,0,0,.45)}
.scan-crop-wrap{position:relative;display:inline-block;line-height:0;touch-action:none;user-select:none;-webkit-user-select:none}
#scanCropCanvas{display:block;max-width:100%;max-height:52vh;border-radius:4px}
.scan-crop-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.scan-crop-mask{fill:rgba(3,6,14,.58)}
.scan-crop-poly{fill:rgba(32,200,255,.08);stroke:var(--cyan);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.crop-handle{position:absolute;width:44px;height:44px;margin:0;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);cursor:grab;touch-action:none;border-radius:50%}
.crop-handle::after{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff;border:3px solid var(--cyan);box-shadow:0 0 0 4px rgba(32,200,255,.22),0 4px 12px rgba(0,0,0,.5);transition:transform .15s}
.crop-handle:hover::after{transform:scale(1.12)}
.crop-handle.dragging{cursor:grabbing}.crop-handle.dragging::after{transform:scale(1.25);background:var(--cyan)}
.crop-handle:focus-visible{outline:none}.crop-handle:focus-visible::after{box-shadow:0 0 0 3px #0e1424,0 0 0 6px var(--cyan)}
.scan-crop-wrap.no-crop .crop-handle,.scan-crop-wrap.no-crop .scan-crop-svg{display:none}
.scan-loupe{position:absolute;top:8px;left:8px;width:112px;height:112px;border-radius:50%;border:2px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.55);pointer-events:none;background:#060a14}
.scan-loupe.on-right{left:auto;right:8px}
.scan-preview-stage canvas{display:block;max-width:100%;max-height:40vh;background:#fff;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.06),0 18px 40px rgba(0,0,0,.5),0 4px 10px rgba(0,0,0,.35)}
.scan-busy{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:16px;background:rgba(6,10,20,.66);font-size:13.5px;font-weight:700}
.scan-busy[hidden]{display:none}
.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:var(--cyan);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.scan-editor-tools{display:flex;flex-wrap:wrap;gap:8px}
.scan-presets{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.scan-preset{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;width:76px;padding:7px 6px 8px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);font-size:12px;font-weight:700;transition:border-color .15s,background .15s,transform .15s}
.scan-preset:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.2);color:#fff}
.scan-preset canvas{width:60px;height:74px;object-fit:contain;border-radius:5px;background:#0a1020;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.scan-preset[aria-checked="true"]{border-color:var(--cyan);background:rgba(32,200,255,.09);color:#fff;box-shadow:0 0 0 1px var(--cyan) inset,0 8px 22px rgba(32,200,255,.12)}
.scan-preset[aria-checked="true"] .preset-name::before{content:"✓ "}
.scan-editor-actions{align-items:center;position:sticky;bottom:-20px;z-index:2;margin:0 -24px -20px;padding:12px 24px 16px;background:linear-gradient(180deg,rgba(10,14,26,.82),#0a0e1a 45%);border-top:1px solid var(--line);border-radius:0 0 24px 24px}
.scan-editor-actions #scanEditorRetake{margin-right:auto}
.scan-editor-actions .btn[aria-busy="true"]{opacity:.7;pointer-events:none}
@media(max-width:900px){.scan-editor-body{grid-template-columns:1fr}#scanCropCanvas{max-height:42vh}.scan-preview-stage canvas{max-height:30vh}}
@media(max-width:760px){
  .scan-editor-backdrop{padding:0}
  .modal-card.scan-editor{max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;border:0;padding:16px 16px 0}
  .scan-editor-head h2{font-size:19px;padding-right:36px}
  .scan-stage{min-height:180px;padding:10px}
  #scanCropCanvas{max-height:40vh}
  .scan-editor-actions{bottom:0;margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-radius:0;flex-wrap:wrap}
  .scan-editor-actions .btn{flex:1;white-space:nowrap}.scan-editor-actions #scanEditorRetake{margin-right:0}
}
@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}

/* ---- Navigation: icons, account menu, mobile sidebar backdrop ---- */
.i{width:18px;height:18px;flex:none;display:inline-block;vertical-align:middle}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nav-item .i{width:19px;height:19px;opacity:.85}.nav-item.active .i{opacity:1;color:#bfb2ff}
.nav-sep{height:1px;background:var(--line);margin:10px 12px}
.sidebar-link{display:inline-flex!important;align-items:center;gap:6px;padding:14px 9px 0!important}.sidebar-link .i{width:14px;height:14px}.sidebar-link:hover{color:white}
.mobile-menu{place-items:center}.mobile-menu .i{width:20px;height:20px}
.account-menu{position:relative}
.account-trigger{display:flex;align-items:center;gap:9px;height:40px;padding:0 10px 0 4px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);color:var(--text);font-size:14px;font-weight:650;max-width:240px;transition:border-color .15s,background .15s}
.account-trigger:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.06)}
.account-trigger[aria-expanded="true"]{border-color:rgba(124,92,255,.55);background:rgba(124,92,255,.12)}
.avatar-sm{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;background:linear-gradient(135deg,#7c5cff,#20c8ff);color:#0b1020;font-size:14px;font-weight:800}.avatar-sm .i{width:17px;height:17px}
.account-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-trigger .chev{width:15px;height:15px;color:var(--muted);transition:transform .15s}.account-trigger[aria-expanded="true"] .chev{transform:rotate(180deg)}
.menu-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:250px;padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#121a2e;box-shadow:0 22px 60px rgba(0,0,0,.55),0 2px 0 rgba(255,255,255,.04) inset;z-index:40}
.menu-head{padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.menu-head b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis}.menu-head span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.menu-pop [role="menuitem"]{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:#dbe2ef;font-size:13.5px;text-align:left}
.menu-pop [role="menuitem"]:hover,.menu-pop [role="menuitem"]:focus-visible{background:rgba(255,255,255,.07);color:white;outline:none}
.menu-pop [role="menuitem"] .i{width:17px;height:17px;color:var(--muted)}
@media(max-width:760px){
  .mobile-menu{display:grid!important}
  .account-label,.account-trigger .chev{display:none}.account-trigger{padding:0 3px;height:42px}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(3,6,14,.6);z-index:15}
  .sidebar{z-index:30}
}


/* ---- Design system pass (premium-3d-uiux review, 2026-09-27) ---- */
/* Hierarchy: compact page headers so each tool sits near the top of the screen */
.page-head{margin-bottom:22px}
.page-head h1{font-size:clamp(26px,2.8vw,34px);line-height:1.12;letter-spacing:-.035em;margin:8px 0 8px}
.page-head p{max-width:720px;color:var(--muted);font-size:14px;line-height:1.6;margin:0}
.page-head-hero h1{font-size:clamp(30px,3.6vw,44px)}
.page-head-hero h1 em{font-style:normal;background:linear-gradient(90deg,#a78bfa,#36d5ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub-head{margin:44px 0 16px;padding-top:28px;border-top:1px solid var(--line)}
.sub-head h2{font-size:clamp(20px,2vw,24px);letter-spacing:-.025em;margin:6px 0 6px}
.sub-head p{color:var(--muted);font-size:13.5px;line-height:1.6;margin:0;max-width:720px}
.text-link{color:#8fdfff;text-decoration:underline;text-underline-offset:3px}.text-link:hover{color:#bff0ff}

/* Elevation: resting cards are quieter; the main work surface on each page lifts forward */
.card{box-shadow:var(--elev-1)}
.converter-card,.print-grid>.card:first-child{box-shadow:var(--elev-2);border-color:rgba(255,255,255,.12)}
.quick-card,.print-help{background:linear-gradient(180deg,rgba(17,26,45,.6),rgba(11,17,30,.6))}
.dropzone{transition:border-color .2s,background .2s,box-shadow .2s}
.dropzone:hover{border-color:rgba(124,92,255,.75);box-shadow:0 0 0 4px rgba(124,92,255,.06) inset}
.menu-pop,.modal-card{box-shadow:var(--elev-3)}

/* Buttons: consistent height, icon + label alignment, real touch targets */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);font-size:13.5px}
.btn .i{width:17px;height:17px}
.btn.small{min-height:34px;font-size:12.5px;padding:6px 11px}
@media(pointer:coarse){.btn.small{min-height:40px}}
.icon-btn,.mobile-menu{width:var(--tap);height:var(--tap)}
.modal-close{width:40px;height:40px;display:grid;place-items:center}
.seg{min-height:36px;padding:8px 14px;font-size:13px}
@media(pointer:coarse){.seg{min-height:42px}}
.remove-file{min-height:36px;padding:6px 10px}
.check{font-size:13.5px;gap:0;min-height:var(--tap);cursor:pointer}
.check input{width:18px;height:18px;flex:none}
footer a{display:inline-block;padding:6px 2px}
.nav-item{min-height:44px;font-size:14px}

/* Quick tools / dashboard tiles: legible badges and real icons */
.tool-card{min-height:60px}
.tool-card>span{display:grid;place-items:center;height:36px;padding:0 4px;font-size:11px;font-weight:800;letter-spacing:.04em}
.tool-card>span .i{width:18px;height:18px;color:#c9c0ff}
.tool-card b{font-size:14px}.tool-card small{font-size:12.5px}
.tool-card i .i{width:16px;height:16px}
.drop-icon .i{width:26px;height:26px}
.big-symbol .i{width:36px;height:36px;color:#bfb2ff}

/* PDF tools */
.tool-head{display:flex;align-items:center;gap:10px}
.tool-head h2{margin:0;font-size:16px}
.tool-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(124,92,255,.14);color:#c9c0ff;flex:none}
.pdf-tool .premium-badge{top:18px}
.pdf-tool input[type="file"],.pdf-tool input[type="text"],.pdf-tool select{min-height:var(--tap);font-size:13.5px}

/* Capabilities */
.cap-icon .i{width:22px;height:22px}
.cap-status{display:inline-flex;align-items:center;gap:6px;font-size:12px!important;letter-spacing:.02em!important;font-weight:700}
.cap-status .i{width:15px;height:15px}
.cap-status.is-local{color:#56dca0!important}.cap-status.is-server{color:#8fdfff!important}.cap-status.is-planned{color:#c9b98a!important}
.cap-planned{opacity:.78}

/* Scan tips */
.tip-list{list-style:none;margin:14px 0 4px;padding:0;display:grid;gap:12px}
.tip-list li{display:flex;gap:12px;align-items:flex-start}
.tip-list li>span{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:none;background:rgba(32,200,255,.1);color:#8fdfff;font-size:12.5px;font-weight:800}
.tip-list b{display:block;font-size:13.5px}.tip-list small{display:block;color:var(--muted);font-size:12.5px;line-height:1.5;margin-top:2px}

/* Empty states */
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 16px}
.empty-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.04);border:1px solid var(--line);color:#9aa6bb;margin-bottom:4px}
.empty-icon .i{width:21px;height:21px}
.empty-state b{font-size:14px}
.empty-state p{margin:0;color:var(--muted);font-size:13px;line-height:1.55;max-width:360px}
.empty-state .btn{margin-top:8px}
@media(max-width:760px){.page-head{margin-bottom:16px}.page-head h1{font-size:26px}.page-head-hero h1{font-size:30px}}
.tool-head .premium-badge{position:static;margin-left:auto;flex:none}
.tool-head h2{min-width:0}
input[type="file"]{color:var(--muted);font-size:12.5px;max-width:100%}
input[type="file"]::file-selector-button{margin-right:10px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.07);color:var(--text);font:inherit;font-weight:700;cursor:pointer}
input[type="file"]::file-selector-button:hover{background:rgba(255,255,255,.12)}
.pdf-tools-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.secure-card b{font-size:13px}.secure-card small{font-size:12px;color:var(--muted)}
.sidebar-link{min-height:40px}
@media(pointer:coarse){footer a{padding:12px 4px}}
input[type="range"]{height:28px}
.menu-sep{height:1px;background:var(--line);margin:6px 4px}
