.scanner-view{--scan-purple:#b88cff;--scan-ink:#120b21;--scan-muted:#b5a7c8;--scan-line:#ffffff15;color:#f4edff}.scan-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 0 28px}.scan-kicker,.scan-step{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--scan-purple)}.scan-hero h1{font-size:clamp(30px,4.5vw,58px);line-height:1.06;letter-spacing:-.045em;margin:13px 0}.scan-hero h1 span{display:block;background:linear-gradient(110deg,#d6bcff,#a175ff,#e7baff);background-clip:text;-webkit-background-clip:text;color:transparent}.scan-hero p{max-width:540px;color:var(--scan-muted);line-height:1.7}.scan-orbit{position:relative;width:132px;height:132px;flex-shrink:0;display:grid;place-items:center;background:radial-gradient(circle,#924dff25,transparent 65%)}.scan-orbit:before,.scan-orbit:after{content:"";position:absolute;inset:5px;border:1px solid #a46dff50;border-radius:50%;transform:rotateX(30deg) rotate(-20deg)}.scan-orbit:after{inset:17px;transform:rotateX(65deg) rotate(25deg);box-shadow:0 0 24px #9a4eff30}.scan-orbit span{position:absolute;width:7px;height:7px;top:10px;border-radius:50%;background:#d0acff;box-shadow:0 0 18px #b871ff;animation:scan-orbit 9s linear infinite;transform-origin:0 58px}.scan-orbit svg{width:68px;fill:none;stroke:#ceb1ff;stroke-width:2;filter:drop-shadow(0 0 10px #9756ff70);animation:scan-float 5s ease-in-out infinite}.scan-access{padding:12px 16px;border:1px solid #ac78ff35;background:#8e4cf20c;border-radius:12px;font-size:13px;color:#cebddf}.scan-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;margin-top:22px}.scan-drop{border:1px dashed #a46dff65;background:radial-gradient(ellipse at 50% 0,#8c4ee61a,transparent 75%),#130c22;border-radius:22px;padding:32px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .3s,transform .3s}.scan-drop:hover,.scan-drop.is-dragging{border-color:#c195ff;background-color:#241138;transform:translateY(-2px)}.scan-drop:focus-visible{outline:3px solid #d1afff;outline-offset:3px}.scan-drop svg{width:50px;height:50px;fill:none;stroke:#b685ff;stroke-width:1.6}.scan-drop h2{font-size:19px;margin:10px 0}.scan-drop p{color:var(--scan-muted);font-size:14px}.scan-limits{font-size:11px;color:#9d8bac}.scan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:14px 0}.scanner-view .btn{border-radius:12px;padding:11px 14px;min-height:44px;font-size:13px;white-space:normal}.scanner-view .btn.primary{background:linear-gradient(120deg,#9e5dea,#783ce3);color:#fff;border:1px solid #bc88ff66;box-shadow:0 5px 20px #6f24c42a}.scanner-view .btn.secondary{background:#ffffff06;border:1px solid #b189df40;color:#dfccf9}.scanner-view .btn.ghost{border:1px solid transparent;background:transparent;color:#be9edf}.scanner-view button:disabled{opacity:.4;cursor:not-allowed}.scan-pages-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 14px}.scan-pages-heading h2{font-size:19px;margin:0}.scan-pages-heading h2 span{font-size:11px;margin-left:8px;color:#a18eaf}.scan-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.scan-page{position:relative;border:1px solid var(--scan-line);border-radius:15px;background:#191025;padding:9px;animation:scan-appear .36s both}.scan-page.is-selected{border-color:#ad79ff;box-shadow:0 0 0 2px #a06bec26,0 10px 30px #0002}.scan-page-select{display:block;width:100%;border:0;padding:0;background:#09070f;border-radius:9px;overflow:hidden;cursor:pointer}.scan-page-select img{display:block;width:100%;height:178px;object-fit:contain}.scan-page-label{display:block;font-size:12px;padding:9px 1px 5px;color:#deceed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.scan-page-controls{display:flex;justify-content:space-between;gap:4px}.scan-page-controls button{width:34px;height:34px;border-radius:8px;background:#ffffff07;color:#cfb7e9;border:1px solid #ffffff0d;cursor:pointer}.scan-page-controls button:last-child{color:#eeb0c8}.scan-empty{text-align:center;padding:35px 15px 48px;color:#a795b8;border-bottom:1px solid var(--scan-line)}.scan-empty>span{display:inline-block;color:#a77ee2;font-size:24px;padding:15px}.scan-empty p{font-size:17px;color:#cbb7e0;margin:8px}.scan-empty small{font-size:12px}.scan-sidebar{display:grid;gap:16px;align-content:start}.scan-card{background:linear-gradient(150deg,#20132f,#140d20);border:1px solid #b98ee024;border-radius:20px;padding:22px}.scan-card h2{font-size:18px;margin:9px 0 14px}.scan-card p{font-size:12px;color:var(--scan-muted);line-height:1.65}.scan-card>.btn{display:block;width:100%;margin-top:10px}.scan-card label{display:block;font-size:12px;color:#c7b4dc;line-height:1.6;margin:10px 0}.scanner-view select,.scanner-view input[type=number]{width:100%;padding:10px 12px;margin-top:6px;border:1px solid #b89bda2c;border-radius:10px;background:#0e0919;color:#eadff7;font:inherit}.scan-card summary{cursor:pointer;color:#c6a3ee;font-size:13px;padding:12px 0}.scan-crop-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.scan-fine{font-size:11px!important}.scan-privacy{font-size:12px;line-height:1.8;color:#9583a7;padding:22px 0;max-width:800px}.scan-error{padding:14px 16px;border:1px solid #fa8a9e55;border-radius:12px;background:#471a2c55;color:#ffbdca;line-height:1.6;font-size:13px}.scan-progress{padding:16px;border:1px solid #ad7eff50;background:#201130;border-radius:13px;margin-top:20px;display:grid;grid-template-columns:1fr auto;gap:10px}.scan-progress span{font-size:13px;color:#dbc4fa}.scan-progress progress{width:100%;height:7px;accent-color:#b27cff;grid-column:1}.scan-progress button{grid-column:2;grid-row:1/3;border:1px solid #b384d955;background:#ffffff05;color:#d3b8ef;padding:6px 12px;border-radius:9px}.scan-camera-panel{position:relative;border-radius:18px;background:#08050e;border:1px solid #9e70d944;padding:12px;margin-top:18px}.scan-camera-panel video{width:100%;max-height:430px;border-radius:10px;object-fit:contain}.scan-camera-panel p{font-size:12px;text-align:center;color:#cfb9df}.scan-camera-frame{position:absolute;inset:30px 12% 110px;border:1px solid #c9a2ff70;border-radius:8px;pointer-events:none;box-shadow:0 0 22px #ad68ff22}.scan-text-panel{margin-top:26px;padding:24px;border:1px solid #b281e340;background:#1a1028;border-radius:22px;animation:scan-appear .45s both}.scan-text-panel>p{font-size:12px;color:#bca7cf;line-height:1.65}.scan-text-panel textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:220px;padding:18px;border-radius:12px;background:#0c0814;border:1px solid #b88ceb2d;color:#e6daef;font-size:14px;line-height:1.8}.scanner-view [hidden]{display:none!important}.scanner-view.is-busy .scan-drop{pointer-events:none;opacity:.6}@keyframes scan-orbit{to{transform:rotate(360deg)}}@keyframes scan-float{50%{transform:translateY(-6px)}}@keyframes scan-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.scan-layout{grid-template-columns:minmax(0,1fr) 270px;gap:16px}.scan-card{padding:18px}}@media(max-width:850px){.scan-layout{grid-template-columns:1fr}.scan-sidebar{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.scan-orbit{width:100px;height:100px}.scan-hero{gap:12px}.scan-orbit span{transform-origin:0 42px}.scan-hero h1{font-size:38px}}@media(max-width:500px){.scan-hero h1{font-size:32px}.scan-orbit{width:76px;height:96px}.scan-orbit svg{width:52px}.scan-hero p{font-size:13px}.scan-drop{padding:22px 14px}.scan-drop h2{font-size:17px}.scan-pages{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.scan-page-select img{height:158px}.scan-sidebar{grid-template-columns:1fr}.scan-text-panel{padding:16px}.scan-text-panel .scan-pages-heading{align-items:flex-start;flex-direction:column}.scan-actions>.btn{flex:1}.scan-hero{align-items:flex-start}.scan-orbit{margin-top:16px}}@media(prefers-reduced-motion:reduce){.scanner-view *,.scanner-view *:before,.scanner-view *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
