:root{font-family:Inter,system-ui,Arial,sans-serif;color:#1e293b;background:#f8fafc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#f8fafc}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.with-nav{padding-bottom:82px}.page{max-width:920px;margin:auto;padding:20px}.brand{font-weight:800;color:#1a3c6e;font-size:24px}.hero{padding:48px 0 28px}.hero h1{font-size:clamp(34px,7vw,64px);line-height:1.02;max-width:800px;margin:12px 0}.hero p{font-size:18px;line-height:1.6;max-width:680px;color:#64748b}.eyebrow{font-size:12px;letter-spacing:.16em;color:#1a3c6e;font-weight:800}.primary,.secondary,.ghost,.danger-btn{border:0;border-radius:12px;min-height:44px;padding:12px 16px;font-weight:700}.primary{background:#1a3c6e;color:#fff}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#fff;color:#1a3c6e;border:1px solid #CBD5E1}.ghost{background:transparent;color:#1a3c6e}.danger-btn{background:#dc2626;color:#fff}.full{width:100%;margin-top:12px}.feature-grid,.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stats-grid{grid-template-columns:repeat(4,1fr)}.card{background:#fff;border:1px solid #E2E8F0;border-radius:18px;padding:20px;box-shadow:0 4px 18px #0f172a0d;margin-bottom:16px}.card h3{margin-top:8px}.card p,.card span{color:#64748b}.disclaimer{font-size:13px;color:#64748b;margin-top:24px}.screen-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.screen-header h2{margin:0}.upload-box{width:100%;min-height:250px;border:2px dashed #CBD5E1;background:#f8fafc;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#1a3c6e}.preview-wrap{position:relative}.preview{width:100%;max-height:380px;object-fit:cover;border-radius:14px}.icon-btn{position:absolute;right:10px;top:10px;border:0;border-radius:999px;width:42px;height:42px;background:#fff}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.error{background:#fee2e2;color:#991b1b;padding:12px;border-radius:10px;margin-top:12px}.scan-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:#0f172a}.scan-card{width:min(520px,100%);background:#fff;border-radius:22px;padding:24px}.scan-card h2{text-align:center}.scan-card>p{text-align:center;color:#64748b}.scan-visual{height:200px;border-radius:16px;background:linear-gradient(135deg,#dbeafe,#eff6ff);position:relative;overflow:hidden;display:grid;place-items:center;font-weight:800;color:#1a3c6e}.scan-line{position:absolute;left:0;right:0;height:3px;background:#1a3c6e;animation:scan 1.4s linear infinite}@keyframes scan{0%{top:0}50%{top:98%}to{top:0}}.steps{display:grid;gap:12px;margin-top:20px}.step{display:flex;gap:10px;align-items:center}.ok{color:#16a34a}.spin{color:#1a3c6e;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress{height:8px;background:#e2e8f0;border-radius:99px;margin-top:18px;overflow:hidden}.progress span{display:block;height:100%;background:#1a3c6e;transition:width .35s}.score-card{text-align:center}.ring{width:150px;height:150px;border-radius:50%;margin:auto;display:grid;place-items:center;border:14px solid}.ring.good{border-color:#16a34a}.ring.warn{border-color:#d97706}.ring.bad{border-color:#dc2626}.ring div{display:flex;flex-direction:column}.ring strong{font-size:34px}.ring span{font-size:12px}.status{display:inline-block;margin-top:14px;padding:8px 12px;border-radius:99px;font-weight:800}.status.good,.badge.good{background:#dcfce7;color:#166534}.status.warn{background:#fef3c7;color:#92400e}.status.bad,.badge.bad{background:#fee2e2;color:#991b1b}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.metrics div{background:#f8fafc;border-radius:12px;padding:12px;display:flex;flex-direction:column}.declaration-list{display:grid}.declaration{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #E2E8F0}.declaration>div{display:flex;flex-direction:column;gap:4px}.badge{height:max-content;padding:6px 9px;border-radius:99px;font-size:12px;font-weight:800}.violation{border-left:4px solid #DC2626}.report-top{display:flex;justify-content:space-between;gap:16px}.report-id{font-family:monospace}.report-row{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid #E2E8F0}.legal-note{margin-top:18px;padding:14px;background:#f8fafc;border-radius:10px;font-size:13px;color:#475569}.stats-grid .card{display:flex;flex-direction:column;gap:6px}.stats-grid strong{font-size:28px;color:#1a3c6e}.history-row{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid #E2E8F0;background:#fff;padding:14px 0}.history-row div{display:flex;flex-direction:column;align-items:flex-start}.fab{position:fixed;right:22px;bottom:92px;width:56px;height:56px;border-radius:50%;border:0;background:#1a3c6e;color:#fff;font-size:28px;box-shadow:0 8px 26px #0f172a40}.search{width:100%;min-height:46px;border:1px solid #CBD5E1;border-radius:12px;padding:0 14px;margin-bottom:12px}.chips{display:flex;gap:8px;overflow:auto;margin-bottom:12px}.chip{border:1px solid #CBD5E1;background:#fff;border-radius:99px;padding:9px 12px;white-space:nowrap}.chip.active{background:#1a3c6e;color:#fff;border-color:#1a3c6e}.report-card{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #E2E8F0}.report-card>div{display:flex;flex-direction:column;gap:4px}.empty{text-align:center;padding:34px 8px;color:#64748b}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(920px,100%);height:72px;background:#fff;border-top:1px solid #E2E8F0;display:grid;grid-template-columns:repeat(4,1fr);z-index:30}.bottom-nav a{text-decoration:none;color:#64748b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px}.bottom-nav a.active{color:#1a3c6e;font-weight:800;border-top:3px solid #1A3C6E}@media(max-width:700px){.feature-grid,.stats-grid{grid-template-columns:1fr 1fr}.hero{padding-top:32px}.report-row{grid-template-columns:1fr}}@media(max-width:460px){.feature-grid{grid-template-columns:1fr}.page,.card{padding:16px}}@media print{body{background:#fff}.no-print,.bottom-nav{display:none!important}.page{max-width:none;padding:0}.card{box-shadow:none;border:0}.report{color:#000}}.auth-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;background:#f8fafc}.auth-card{width:min(100%,430px);background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:30px;box-shadow:0 16px 45px #0f172a14}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.auth-brand strong{display:block;color:#1a3c6e;font-size:21px}.auth-brand span{display:block;color:#64748b;font-size:12px;margin-top:2px}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#1a3c6e;color:#fff;font-weight:800;font-size:21px}.auth-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#eff6ff;color:#1a3c6e;margin-bottom:16px}.auth-card h1{margin:0;color:#1e293b;font-size:28px}.auth-subtitle{color:#64748b;margin:8px 0 24px;line-height:1.5}.auth-form{display:grid;gap:9px}.auth-form label{color:#334155;font-size:13px;font-weight:700;margin-top:5px}.input-with-icon{height:48px;display:flex;align-items:center;gap:10px;border:1px solid #cbd5e1;border-radius:11px;padding:0 13px;background:#fff}.input-with-icon:focus-within{border-color:#1a3c6e;box-shadow:0 0 0 3px #1a3c6e17}.input-with-icon svg{color:#64748b}.input-with-icon input{width:100%;height:100%;border:0;outline:0;font:inherit;color:#1e293b;background:transparent}.auth-footer{text-align:center;color:#64748b;font-size:14px;margin:22px 0 0}.auth-footer a{color:#1a3c6e;font-weight:700}.auth-note{text-align:center;color:#94a3b8;font-size:11px;line-height:1.5;margin:18px 0 0}.auth-error{padding:10px 12px;border-radius:9px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-size:13px}.upload-help{text-align:center;color:#64748b;font-size:12px;margin:12px}.ocr-progress-label{text-align:center;font-size:13px;color:#64748b;margin:14px 0}.scan-card .primary{margin-top:18px}@media(max-width:480px){.auth-page{padding:14px}.auth-card{padding:24px 20px;border-radius:18px}}
