*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:linear-gradient(to top right,#f0ece2,#e4dbca,#d3c9b4 70%,#beb49e) fixed;min-height:100vh;color:#2a2a2a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,button,textarea,select{font-family:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ddd3bf;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#c9c0ae}input:focus,textarea:focus,select:focus{outline:none;border-color:#c9c0ae!important;box-shadow:0 0 0 3px #c9c0ae40}button:focus-visible{outline:2px solid #C9C0AE;outline-offset:2px}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost,.btn-icon{transition:background .15s,border-color .15s,border-radius .15s}.btn-primary:not(:disabled):hover{background:#2a2a2a!important;border-radius:0 0 12px!important}.btn-primary:disabled{background:#c4c4c4!important;color:#6e6e6e!important;border:none!important;border-radius:0 0 8px!important;cursor:not-allowed}.btn-secondary:not(:disabled):hover{background:#f4efe5!important;border-radius:0 0 12px!important}.btn-secondary:disabled{background:#c9c0ae!important;color:#6e6e6e!important;border-color:transparent!important;border-radius:0 0 8px!important;cursor:not-allowed}.btn-danger:not(:disabled):hover{background:#efd5c6!important;border-radius:0 0 12px!important}.btn-ghost:not(:disabled):hover{background:#f4efe5!important;border-radius:0 0 12px!important}.btn-danger:disabled,.btn-ghost:disabled{cursor:not-allowed}.btn-beige:not(:disabled):hover{background:#c9c0ae!important;border-radius:0 0 12px!important}.btn-beige:disabled{background:#c4c4c4!important;color:#6e6e6e!important;cursor:not-allowed}.btn-icon:not(:disabled):hover{background:#2a2a2a!important;border-radius:0 0 12px!important}.btn-icon:disabled{cursor:not-allowed}.icon-tip{background:#2a2a2a;color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;font-weight:500;line-height:16px;padding:4px 12px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:1000}@keyframes spin{to{transform:rotate(360deg)}}.reels{display:inline-flex;align-items:flex-end}.reel{display:inline-block;height:var(--reel-h);overflow:hidden;vertical-align:bottom}.reel__strip{display:flex;flex-direction:column;transition-property:transform;transition-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform}.reel__cell{height:var(--reel-h);line-height:var(--reel-h);display:flex;align-items:center;justify-content:center}.reel__static{line-height:var(--reel-h)}.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}.layout-shell{display:flex;height:100vh;overflow:hidden}@media (max-width: 640px){.auth-left-panel{display:none!important}}.grid-3col{display:grid;grid-template-columns:repeat(3,1fr)}@media (max-width: 960px){.grid-3col{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.grid-3col{grid-template-columns:1fr}}.detection-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}@media (max-width: 700px){.detection-grid{grid-template-columns:1fr}}.tab-content{padding:56px 80px;margin:0 auto}@media (max-width: 900px){.tab-content{padding:32px 24px}}@media (max-width: 600px){.tab-content{padding:24px 16px}}.upload-zone{transition:border-color .15s,background .15s,transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .28s ease}.upload-zone:hover:not(.has-file){transform:scale(1.008);box-shadow:0 6px 24px #c9c0ae40}.upload-zone.scanning:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(108deg,transparent 22%,rgba(201,192,174,.18) 42%,rgba(221,211,191,.3) 50%,rgba(201,192,174,.18) 58%,transparent 78%);animation:shimmerSweep 2s linear infinite;pointer-events:none;border-radius:16px}@keyframes shimmerSweep{0%{transform:translate(-120%)}to{transform:translate(120%)}}.upload-zone.scanning{animation:borderPulse 1.8s ease-in-out infinite}@keyframes borderPulse{0%,to{box-shadow:0 0 #c9c0ae00}50%{box-shadow:0 0 0 4px #c9c0ae2e,0 0 22px #c9c0ae2e}}.scan-line{position:absolute;left:4px;right:4px;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(201,192,174,.55) 15%,rgba(26,26,26,.9) 50%,rgba(201,192,174,.55) 85%,transparent 100%);box-shadow:0 0 10px 2px #c9c0ae8c;pointer-events:none;border-radius:1px;animation:scanDown 2.4s cubic-bezier(.4,0,.6,1) infinite}@keyframes scanDown{0%{top:6px;opacity:0}6%{opacity:1}94%{opacity:1}to{top:calc(100% - 8px);opacity:0}}.btn-detect{transition:transform .28s cubic-bezier(.34,1.56,.64,1),background .15s,box-shadow .15s,opacity .15s!important}.btn-detect:not(:disabled):active{transform:scale(.97)!important;transition-duration:.07s!important}.scan-msg{display:inline-flex;align-items:center;gap:8px;animation:msgFadeIn .35s ease both}@keyframes msgFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.result-enter{animation:resultReveal .55s cubic-bezier(.34,1.56,.64,1) both}@keyframes resultReveal{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.detail-card-enter{animation:detailCardIn .4s ease both;animation-delay:.22s}@keyframes detailCardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.detail-row{opacity:0;animation:detailRowIn .3s ease forwards}.detail-row:nth-child(1){animation-delay:.38s}.detail-row:nth-child(2){animation-delay:.5s}.detail-row:nth-child(3){animation-delay:.62s}@keyframes detailRowIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.billing-thumb{transition:none!important}.upload-zone,.upload-zone:hover:not(.has-file){transform:none!important;box-shadow:none!important}.upload-zone.scanning:after,.upload-zone.scanning,.scan-line{animation:none;box-shadow:none}.result-enter,.detail-card-enter,.detail-row,.scan-msg{animation:none;opacity:1;transform:none}.btn-detect:not(:disabled):active{transform:none!important}}
