*{box-sizing:border-box}:root{--primary:#078c90;--primary-dark:#061943;--blue:#086bd8;--bg:#eef7fb;--text:#334e68;--muted:#6f8293;--border:#dceef7;--card:#ffffffe6}body{background:radial-gradient(circle at top left, #2bbfc32e, transparent 32%), radial-gradient(circle at bottom right, #086bd824, transparent 34%), var(--bg);color:var(--text);margin:0;font-family:Inter,Arial,sans-serif}.app{justify-content:center;align-items:flex-start;min-height:100vh;padding:42px 18px;display:flex;position:relative;overflow-x:hidden}.bgGlow{filter:blur(70px);opacity:.32;pointer-events:none;border-radius:50%;width:380px;height:380px;animation:8s ease-in-out infinite alternate floatGlow;position:fixed}.glowOne{background:#2bbfc3;top:-120px;left:-100px}.glowTwo{background:#3a7bd5;animation-delay:1.5s;bottom:-140px;right:-100px}.ocrCard{background:var(--card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:1;border:1px solid #ffffffe6;border-radius:30px;width:100%;max-width:980px;padding:clamp(24px,5vw,44px);animation:.55s both fadeUp;position:relative;box-shadow:0 30px 90px #102a4329}.badge{color:var(--primary);letter-spacing:1px;background:#e1f7f7;border-radius:999px;margin-bottom:18px;padding:8px 14px;font-size:12px;font-weight:900;display:inline-flex}h1{color:var(--primary-dark);letter-spacing:-1.3px;margin:0;font-size:clamp(32px,5vw,46px);line-height:1.05}.subtitle{color:#5b7083;max-width:680px;margin:14px 0 28px;font-size:clamp(14px,2vw,16px);line-height:1.65}.uploadBox{text-align:center;cursor:pointer;background:linear-gradient(135deg,#f8ffff,#eef9ff);border:2px dashed #9fdadc;border-radius:24px;padding:clamp(24px,5vw,38px);transition:all .25s;display:block;position:relative;overflow:hidden}.uploadBox:before{content:"";background:linear-gradient(120deg,#0000,#ffffffbf,#0000);transition:all .7s;position:absolute;inset:0;transform:translate(-120%)}.uploadBox:hover:before{transform:translate(120%)}.uploadBox:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 18px 42px #078c9021}.uploadBox input{display:none}.uploadIcon{z-index:1;background:#fff;border-radius:24px;place-items:center;width:76px;height:76px;margin:0 auto 14px;font-size:34px;display:grid;position:relative;box-shadow:0 14px 35px #078c9029}.uploadBox h3,.uploadBox p{z-index:1;position:relative}.uploadBox h3{color:var(--primary-dark);margin:0;font-size:clamp(18px,3vw,21px)}.uploadBox p{color:var(--muted);margin:8px 0 0;font-size:14px}.fileList{gap:8px;max-height:150px;margin-top:16px;padding-right:4px;display:grid;overflow-y:auto}.fileList span{border:1px solid var(--border);color:var(--text);background:#f8fcff;border-radius:13px;padding:11px 14px;font-size:14px;animation:.35s both fadeUp}.primaryBtn,.downloadBtn{cursor:pointer;border-radius:16px;width:100%;padding:16px 22px;font-size:16px;font-weight:900;transition:all .25s}.primaryBtn{background:linear-gradient(135deg, var(--primary), var(--blue));color:#fff;border:none;margin-top:22px;box-shadow:0 16px 32px #086bd83d}.primaryBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 38px #086bd847}.primaryBtn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.previewTable{background:#fff;border:1px solid #e3eef5;border-radius:22px;margin-top:28px;animation:.45s both fadeUp;overflow:hidden}.tableHeader{background:#f7fbfd;border-bottom:1px solid #e3eef5;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex}.tableHeader h2{color:var(--primary-dark);margin:0;font-size:18px}.tableHeader span{color:var(--primary);white-space:nowrap;background:#e1f7f7;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}.emptyState{color:var(--muted);padding:28px 22px;font-size:15px;line-height:1.6}.multiCards{flex-direction:column;gap:18px;padding:22px;display:flex}.resultCard{border:1px solid var(--border);background:linear-gradient(#f8fcff,#fff);border-radius:20px;width:100%;padding:18px;animation:.45s both cardIn;box-shadow:0 14px 34px #102a430f}.resultCard:hover{transition:all .25s;transform:translateY(-2px);box-shadow:0 18px 42px #102a4317}.resultCardHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.resultCardHeader h3{color:var(--primary);margin:0;font-size:18px}.resultCardHeader span{text-transform:uppercase;color:var(--blue);background:#eaf4ff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.resultCard p{color:var(--text);word-break:break-word;background:#fff;border:1px solid #e3eef5;border-radius:13px;margin:8px 0;padding:12px 14px;line-height:1.45}.resultCard b{color:var(--primary-dark)}.downloadArea{padding:0 22px 22px}.downloadBtn{border:1px solid var(--primary);color:var(--primary);background:#fff}.downloadBtn:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}.loadingOverlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:999;background:#06194373;justify-content:center;align-items:center;padding:20px;animation:.25s both fadeIn;display:flex;position:fixed;inset:0}.loadingModal{text-align:center;background:#fff;border-radius:26px;width:100%;max-width:380px;padding:36px 28px;animation:.28s both scaleIn;box-shadow:0 30px 90px #06194340}.loadingModal h2{color:var(--primary-dark);margin:18px 0 8px;font-size:22px}.loadingModal p{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.loader{border:5px solid #e1f7f7;border-top-color:var(--primary);border-radius:50%;width:60px;height:60px;margin:0 auto;animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}}@keyframes floatGlow{0%{transform:translate(0,0)}to{transform:translate(24px,18px)}}@media (width<=700px){.app{padding:22px 12px}.ocrCard{border-radius:22px}.tableHeader{flex-direction:column;align-items:flex-start}.multiCards{gap:16px;padding:16px}.downloadArea{padding:0 16px 16px}.resultCard{padding:15px}.resultCardHeader{flex-direction:column;align-items:flex-start}.resultCard p{font-size:14px}}@media (width<=430px){.app{padding:14px 10px}.ocrCard{border-radius:20px;padding:20px}.uploadIcon{width:64px;height:64px;font-size:30px}.primaryBtn,.downloadBtn{padding:14px 18px;font-size:15px}.fileList{max-height:110px}}
