*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth}body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);color:var(--text-primary);background-color:var(--bg-base);font-weight:400;overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);text-wrap:balance;font-weight:600;line-height:1.2}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--accent-gold);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-gold-dim);color:var(--text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*{scrollbar-width:thin;scrollbar-color:var(--border-subtle) transparent}:root{--bg-base:#0a0a0f;--bg-elevated:#12121a;--bg-surface:#1a1a2e;--bg-surface-alt:#1e1e32;--bg-hover:#222238;--bg-active:#2a2a40;--accent-gold:#d4af37;--accent-gold-light:#e8c94a;--accent-gold-dim:#d4af3740;--accent-gold-subtle:#d4af371a;--accent-gold-glow:#d4af3759;--color-success:#34d399;--color-success-dim:#34d39926;--color-warning:#fbbf24;--color-warning-dim:#fbbf2426;--color-danger:#f87171;--color-danger-dim:#f8717126;--color-info:#60a5fa;--color-info-dim:#60a5fa26;--text-primary:#e8e6e3;--text-secondary:#8a8a9a;--text-muted:#5a5a6a;--text-inverse:#0a0a0f;--text-gold:#d4af37;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff29;--border-gold:#d4af3766;--border-gold-dim:#d4af3726;--font-heading:"Outfit", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--leading-tight:1.2;--leading-normal:1.6;--leading-relaxed:1.8;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.025em;--tracking-wider:.05em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.5rem;--space-10:3rem;--space-11:4rem;--space-12:6rem;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:36px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #0003;--shadow-md:0 4px 6px #0000004d, 0 2px 4px #0003;--shadow-lg:0 10px 25px #0006, 0 4px 10px #0000004d;--shadow-xl:0 20px 50px #00000080, 0 8px 20px #0000004d;--shadow-glow:0 0 20px var(--accent-gold-dim), 0 0 60px #d4af3714;--shadow-gold:0 4px 20px #d4af3733, 0 0 40px #d4af370f;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--duration-slower:.6s;--z-base:1;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--navbar-height:64px;--sidebar-width:280px;--max-width:1280px;--max-width-sm:640px;--max-width-md:960px}.container{width:100%;max-width:var(--max-width);padding-inline:var(--space-6);margin-inline:auto}.container-sm{max-width:var(--max-width-sm)}.container-md{max-width:var(--max-width-md)}.glass{-webkit-backdrop-filter:blur(20px)saturate(1.2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#12121a99}.glass-elevated{-webkit-backdrop-filter:blur(32px)saturate(1.4);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#1a1a2e8c}.glass-card{-webkit-backdrop-filter:blur(16px)saturate(1.2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo), border-color var(--duration-normal) var(--ease-out-expo);background:#12121a80}.glass-card:hover{box-shadow:var(--shadow-xl);border-color:var(--border-strong);transform:translateY(-2px)}.glass-input{-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--text-primary);width:100%;transition:border-color var(--duration-normal) var(--ease-in-out), box-shadow var(--duration-normal) var(--ease-in-out), background var(--duration-normal) var(--ease-in-out);background:#0a0a0f80}.glass-input::placeholder{color:var(--text-muted)}.glass-input:hover{border-color:var(--border-default);background:#0a0a0fa6}.glass-input:focus{border-color:var(--accent-gold);box-shadow:0 0 0 3px var(--accent-gold-subtle);background:#0a0a0fb3}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-body);font-size:var(--text-base);border-radius:var(--radius-md);transition:all var(--duration-normal) var(--ease-out-expo);white-space:nowrap;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";border-radius:inherit;opacity:0;transition:opacity var(--duration-normal) var(--ease-in-out);position:absolute;inset:0}.btn-primary{background:linear-gradient(135deg, var(--accent-gold), #c9a84c);color:var(--text-inverse);box-shadow:var(--shadow-gold)}.btn-primary:before{background:linear-gradient(135deg, var(--accent-gold-light), var(--accent-gold))}.btn-primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-primary:hover:before{opacity:1}.btn-primary:active{box-shadow:var(--shadow-md);transform:translateY(0)}.btn-secondary{border:1px solid var(--border-default);color:var(--text-primary);background:#ffffff0d}.btn-secondary:hover{border-color:var(--border-strong);background:#ffffff1a;transform:translateY(-1px)}.btn-secondary:active{background:#ffffff14;transform:translateY(0)}.btn-ghost{color:var(--text-secondary);padding:var(--space-2) var(--space-3)}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0d}.btn-danger{color:var(--color-danger);background:#f871711f;border:1px solid #f8717140}.btn-danger:hover{background:#f8717133;border-color:#f8717166}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg)}.btn-icon{padding:var(--space-2);border-radius:var(--radius-sm);width:40px;height:40px}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-full);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-weight:600;display:inline-flex}.badge-gold{background:var(--accent-gold-dim);color:var(--accent-gold-light);border:1px solid var(--border-gold-dim)}.badge-danger{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid #f8717133}.badge-warning{background:var(--color-warning-dim);color:var(--color-warning);border:1px solid #fbbf2433}.badge-success{background:var(--color-success-dim);color:var(--color-success);border:1px solid #34d39933}.badge-info{background:var(--color-info-dim);color:var(--color-info);border:1px solid #60a5fa33}.divider{background:var(--border-subtle);border:none;width:100%;height:1px}.divider-labeled{align-items:center;gap:var(--space-4);color:var(--text-muted);font-size:var(--text-sm);display:flex}.divider-labeled:before,.divider-labeled:after{content:"";background:var(--border-subtle);flex:1;height:1px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseGold{0%,to{box-shadow:0 0 0 0 var(--accent-gold-glow)}50%{box-shadow:0 0 0 12px #d4af3700}}@keyframes pulseDot{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}@keyframes scanning{0%{top:0%}50%{top:95%}to{top:0%}}@keyframes laserSweep{0%{opacity:0;left:-4px}5%{opacity:1}95%{opacity:1}to{opacity:0;left:calc(100% + 4px)}}@keyframes laserBloom{0%,to{box-shadow:0 0 6px 2px #00e0ffe6,0 0 18px 6px #00e0ff80,0 0 40px 12px #00e0ff33}50%{box-shadow:0 0 10px 3px #00e0ff,0 0 28px 10px #00e0ffb3,0 0 60px 20px #00e0ff59}}@keyframes nodeRadiate{0%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}to{opacity:.3;transform:scale(.8)}}@keyframes gridLinePulse{0%,to{opacity:.04}50%{opacity:.12}}@keyframes beamHit{0%{box-shadow:none;transform:scale(1)}30%{transform:scale(1.06);box-shadow:0 0 0 2px #00e0ffcc,0 0 20px 4px #00e0ff66}to{transform:scale(1);box-shadow:0 0 0 1px #00e0ff33}}@keyframes techTextFade{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes glow{0%,to{opacity:.5}50%{opacity:1}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes borderGlow{0%,to{border-color:var(--border-subtle)}50%{border-color:var(--border-gold)}}@keyframes progressRing{0%{stroke-dashoffset:var(--ring-circumference,283)}to{stroke-dashoffset:var(--ring-offset,0)}}@keyframes countUp{0%{--progress-value:0}}@keyframes needleSweep{0%{transform:rotate(-90deg)}to{transform:rotate(var(--needle-angle,0deg))}}@keyframes toastIn{0%{opacity:0;transform:translate(100%)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(100%)scale(.95)}}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pageExit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.995)}}.animate-fade-in{animation:fadeIn var(--duration-slow) var(--ease-out-expo) both}.animate-fade-in-up{animation:fadeInUp var(--duration-slow) var(--ease-out-expo) both}.animate-fade-in-down{animation:fadeInDown var(--duration-slow) var(--ease-out-expo) both}.animate-scale-in{animation:scaleIn var(--duration-slow) var(--ease-out-expo) both}.animate-float{animation:4s ease-in-out infinite float}.animate-pulse-gold{animation:2s ease-in-out infinite pulseGold}.animate-shimmer{background:linear-gradient(90deg, var(--bg-elevated) 0%, var(--bg-surface) 40%, var(--bg-elevated) 80%);background-size:200% 100%;animation:1.8s ease-in-out infinite shimmer}.animate-spin{animation:1s linear infinite spin}.animate-gradient{background-size:200% 200%;animation:8s infinite gradientShift}.page-enter{animation:pageEnter var(--duration-slow) var(--ease-out-expo) both}.page-exit{animation:pageExit var(--duration-fast) var(--ease-in-out) both}.animate-stagger>*{animation:fadeInUp var(--duration-slow) var(--ease-out-expo) both}.animate-stagger>:first-child{animation-delay:0s}.animate-stagger>:nth-child(2){animation-delay:60ms}.animate-stagger>:nth-child(3){animation-delay:.12s}.animate-stagger>:nth-child(4){animation-delay:.18s}.animate-stagger>:nth-child(5){animation-delay:.24s}.animate-stagger>:nth-child(6){animation-delay:.3s}.animate-stagger>:nth-child(7){animation-delay:.36s}.animate-stagger>:nth-child(8){animation-delay:.42s}.animate-stagger>:nth-child(9){animation-delay:.48s}.animate-stagger>:nth-child(10){animation-delay:.54s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.navbar{height:var(--navbar-height);padding:0 var(--space-6);-webkit-backdrop-filter:blur(24px)saturate(1.3);border-bottom:1px solid var(--border-subtle);z-index:var(--z-sticky);transition:background var(--duration-normal) var(--ease-in-out);background:#0a0a0fbf;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.navbar-brand{align-items:center;gap:var(--space-3);display:flex}.navbar-logo{width:36px;height:36px}.navbar-title{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--text-primary);letter-spacing:var(--tracking-tight);font-weight:700}.navbar-title span{color:var(--accent-gold)}.navbar-nav{align-items:center;gap:var(--space-2);display:flex}.navbar-link{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--duration-normal) var(--ease-in-out);font-weight:500;display:flex}.navbar-link:hover,.navbar-link.active{color:var(--text-primary);background:#ffffff0d}.navbar-link.active{color:var(--accent-gold)}.navbar-user{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-in-out);display:flex}.navbar-user:hover{background:#ffffff0d}.navbar-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent-gold), #c9a84c);width:32px;height:32px;font-family:var(--font-heading);font-weight:700;font-size:var(--text-sm);color:var(--text-inverse);justify-content:center;align-items:center;display:flex}.navbar-dropdown{top:calc(var(--navbar-height) - 4px);right:var(--space-6);min-width:200px;padding:var(--space-2);animation:fadeInDown var(--duration-normal) var(--ease-out-expo) both;position:absolute}.navbar-dropdown-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-in-out);cursor:pointer;width:100%;display:flex}.navbar-dropdown-item:hover{color:var(--text-primary);background:#ffffff0d}.navbar-dropdown-item.danger:hover{color:var(--color-danger);background:var(--color-danger-dim)}.app-layout{padding-top:var(--navbar-height);min-height:100dvh}.page-content{padding:var(--space-8) var(--space-6)}.login-page{grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.login-brand{background:var(--bg-elevated);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-brand-bg{background-color:#0000;background-image:radial-gradient(at 20%,#d4af3714 0%,#0000 60%),radial-gradient(at 80% 20%,#1a1a2ecc 0%,#0000 50%),radial-gradient(at 50% 80%,#d4af370a 0%,#0000 50%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:200% 200%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;animation:12s infinite gradientShift;position:absolute;inset:0}.login-brand-content{z-index:2;text-align:center;padding:var(--space-8);max-width:420px;position:relative}.login-brand-icon{width:80px;height:80px;margin:0 auto var(--space-6);animation:5s ease-in-out infinite float}.login-brand h1{font-size:var(--text-4xl);color:var(--text-primary);margin-bottom:var(--space-4)}.login-brand h1 span{color:var(--accent-gold)}.login-brand p{font-size:var(--text-lg);color:var(--text-secondary);line-height:var(--leading-relaxed)}.login-form-side{padding:var(--space-8);background:var(--bg-base);justify-content:center;align-items:center;display:flex}.login-form-wrapper{width:100%;max-width:400px}.login-tabs{border-radius:var(--radius-md);padding:var(--space-1);margin-bottom:var(--space-8);border:1px solid var(--border-subtle);background:#ffffff08;display:flex}.login-tab{padding:var(--space-3);text-align:center;font-size:var(--text-sm);color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--duration-normal) var(--ease-out-expo);flex:1;font-weight:600}.login-tab.active{color:var(--text-primary);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.login-tab:hover:not(.active){color:var(--text-secondary)}.login-form{gap:var(--space-5);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.form-hint{font-size:var(--text-xs);color:var(--text-muted)}.login-forgot{text-align:right}.login-forgot a{font-size:var(--text-sm);color:var(--accent-gold);transition:color var(--duration-fast)}.login-forgot a:hover{color:var(--accent-gold-light)}.google-btn{justify-content:center;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);background:#ffffff0d;font-weight:500;display:flex}.google-btn:hover{border-color:var(--border-strong);background:#ffffff1a;transform:translateY(-1px)}.google-btn svg{width:20px;height:20px}.login-footer{margin-top:var(--space-8);text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.login-footer a{color:var(--accent-gold);transition:color var(--duration-fast)}.login-footer a:hover{color:var(--accent-gold-light)}.onboarding-page{min-height:100dvh;padding:var(--space-8);background:radial-gradient(ellipse at 30% 30%, #d4af370a 0%, transparent 50%), radial-gradient(ellipse at 70% 70%, #1a1a2e80 0%, transparent 50%), var(--bg-base);justify-content:center;align-items:center;display:flex}.onboarding-card{width:100%;max-width:520px;padding:var(--space-10);text-align:center}.onboarding-icon{width:72px;height:72px;margin:0 auto var(--space-6);border-radius:var(--radius-xl);background:var(--accent-gold-subtle);color:var(--accent-gold);justify-content:center;align-items:center;display:flex}.onboarding-icon svg{width:36px;height:36px}.onboarding-card h1{font-size:var(--text-3xl);margin-bottom:var(--space-3)}.onboarding-card h1 span{color:var(--accent-gold)}.onboarding-subtitle{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-8)}.onboarding-features{gap:var(--space-4);text-align:left;margin-bottom:var(--space-8);flex-direction:column;display:flex}.onboarding-feature{align-items:flex-start;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#ffffff05;display:flex}.onboarding-feature-icon{border-radius:var(--radius-sm);background:var(--accent-gold-subtle);width:40px;height:40px;color:var(--accent-gold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.onboarding-feature h3{font-size:var(--text-base);margin-bottom:var(--space-1)}.onboarding-feature p{font-size:var(--text-sm);color:var(--text-secondary)}.onboarding-fine-print{margin-top:var(--space-6);font-size:var(--text-xs);color:var(--text-muted)}.upload-zone{border:2px dashed var(--border-gold-dim);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-8);text-align:center;cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);max-width:720px;margin:var(--space-8) auto;position:relative;overflow:hidden}.upload-zone:before{content:"";background:radial-gradient(circle at center, var(--accent-gold-subtle) 0%, transparent 70%);opacity:0;transition:opacity var(--duration-normal) var(--ease-in-out);position:absolute;inset:0}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent-gold);background:#d4af3708}.upload-zone:hover:before,.upload-zone.drag-over:before{opacity:1}.upload-zone.drag-over{box-shadow:var(--shadow-glow);transform:scale(1.01)}.upload-zone-content{z-index:1;position:relative}.upload-icon{width:64px;height:64px;margin:0 auto var(--space-5);color:var(--accent-gold);animation:4s ease-in-out infinite float}.upload-zone h2{font-size:var(--text-2xl);margin-bottom:var(--space-3)}.upload-zone h2 span{color:var(--accent-gold)}.upload-zone p{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-2)}.upload-zone .upload-constraints{font-size:var(--text-sm);color:var(--text-muted)}.upload-zone input[type=file]{display:none}.processing-view{max-width:900px;padding:var(--space-8) 0;margin:0 auto}.processing-header{text-align:center;margin-bottom:var(--space-8)}.processing-header h2{font-size:var(--text-2xl);margin-bottom:var(--space-3)}.processing-header p{color:var(--text-secondary)}.processing-progress-wrap{align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);flex-direction:column;display:flex}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:var(--border-subtle);stroke-width:6px}.progress-ring-fill{fill:none;stroke:url(#cyanGradient);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset var(--duration-slow) var(--ease-out-expo)}.progress-ring-text{font-family:var(--font-heading);font-size:var(--text-2xl);color:#00e0ff;text-shadow:0 0 12px #00e0ffcc;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.progress-ring-container{width:120px;height:120px;position:relative}.progress-ring-container:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#00e0ff14 1px,#0000 1px),linear-gradient(90deg,#00e0ff14 1px,#0000 1px);background-size:12px 12px;border-radius:50%;animation:2.5s ease-in-out infinite gridLinePulse;position:absolute;inset:-20px}.progress-ring-container:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#00e0ff0f 0%,#0000 70%);border-radius:50%;animation:2.5s ease-in-out infinite reverse gridLinePulse;position:absolute;inset:-20px}.progress-ring{z-index:1;position:relative;transform:rotate(-90deg)}.processing-status{font-size:var(--text-base);color:#00e0ff;letter-spacing:.04em;text-shadow:0 0 10px #00e0ff80;text-align:center;min-height:1.5em;font-weight:600;animation:2s ease-in-out techTextFade}.processing-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(100px,1fr));display:grid;position:relative;overflow:hidden}.processing-thumbnail{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.processing-thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.processing-thumbnail.beam-hit{border-color:#00e0ff99;animation:.5s ease-out forwards beamHit}.processing-thumbnail.scanned{border-color:#00e0ff59}.processing-thumbnail.scanned:after{content:"";border-radius:inherit;pointer-events:none;background:#00e0ff12;position:absolute;inset:0}.scanning-laser{z-index:10;pointer-events:none;background:linear-gradient(#00e0ff00 0%,#00e0ff 30%,#fff 50%,#00e0ff 70%,#00e0ff00 100%);border-radius:2px;width:3px;animation:.8s ease-in-out infinite laserBloom;position:absolute;top:0;bottom:0;box-shadow:0 0 6px 2px #00e0ffe6,0 0 18px 6px #00e0ff80,0 0 40px 14px #00e0ff33}.scanning-line{z-index:10;background:linear-gradient(90deg,#0000,#00e0ff,#0000);height:2px;animation:3s ease-in-out infinite scanning;position:absolute;left:0;right:0;box-shadow:0 0 12px #00e0ff99}.risk-meter{padding:var(--space-8);text-align:center;margin-bottom:var(--space-8)}.risk-meter-gauge{width:240px;height:130px;margin:0 auto var(--space-6);position:relative}.risk-meter-stats{gap:var(--space-4);grid-template-columns:repeat(3,1fr);max-width:500px;margin:0 auto;display:grid}.risk-stat{text-align:center}.risk-stat-value{font-family:var(--font-heading);font-size:var(--text-3xl);margin-bottom:var(--space-1);font-weight:700;line-height:1}.risk-stat-value.danger{color:var(--color-danger)}.risk-stat-value.warning{color:var(--color-warning)}.risk-stat-value.success{color:var(--color-success)}.risk-stat-label{font-size:var(--text-sm);color:var(--text-secondary)}.clusters-section{margin-bottom:var(--space-8)}.clusters-section h2{font-size:var(--text-xl);margin-bottom:var(--space-5)}.cluster-card{padding:var(--space-5);margin-bottom:var(--space-5)}.cluster-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.cluster-title{font-size:var(--text-lg);font-weight:600}.cluster-images{gap:var(--space-3);padding-bottom:var(--space-3);scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.image-tile{border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:180px;transition:all var(--duration-normal) var(--ease-out-expo);scroll-snap-align:start;flex-shrink:0;position:relative;overflow:hidden}.image-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg)}.image-tile.discarded{opacity:.45;border-color:#f871714d}.image-tile.discarded:after{content:"";pointer-events:none;background:repeating-linear-gradient(-45deg,#0000,#0000 8px,#f871710f 8px 16px);position:absolute;inset:0}.image-tile-thumb{aspect-ratio:1;object-fit:cover;width:100%;display:block}.image-tile-badge{top:var(--space-2);right:var(--space-2);z-index:2;position:absolute}.image-tile-info{padding:var(--space-3);background:var(--bg-elevated)}.image-tile-name{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:var(--space-2);overflow:hidden}.image-tile-actions{gap:var(--space-2);display:flex}.tile-action-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-xs);text-align:center;transition:all var(--duration-fast) var(--ease-in-out);cursor:pointer;border:1px solid #0000;flex:1;font-weight:600}.tile-action-btn.keep{background:var(--color-success-dim);color:var(--color-success);border-color:#34d39933}.tile-action-btn.keep:hover{background:#34d39940}.tile-action-btn.keep.active{background:var(--color-success);color:var(--text-inverse)}.tile-action-btn.discard{background:var(--color-danger-dim);color:var(--color-danger);border-color:#f8717133}.tile-action-btn.discard:hover{background:#f8717140}.tile-action-btn.discard.active{background:var(--color-danger);color:var(--text-inverse)}.actions-bar{bottom:var(--space-4);padding:var(--space-4) var(--space-6);max-width:var(--max-width);z-index:var(--z-sticky);animation:slideInUp var(--duration-slow) var(--ease-out-expo) both;justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:sticky}.actions-bar-stats{font-size:var(--text-base);color:var(--text-secondary)}.actions-bar-stats strong{color:var(--text-primary)}.actions-bar-btns{gap:var(--space-3);display:flex}.account-page{max-width:720px;margin:0 auto}.account-page h1{font-size:var(--text-3xl);margin-bottom:var(--space-8)}.account-section{padding:var(--space-6);margin-bottom:var(--space-5)}.account-section h2{font-size:var(--text-lg);margin-bottom:var(--space-5);align-items:center;gap:var(--space-3);display:flex}.account-row{padding:var(--space-3) 0;justify-content:space-between;align-items:center;display:flex}.account-row+.account-row{border-top:1px solid var(--border-subtle)}.account-row-label{font-size:var(--text-sm);color:var(--text-secondary)}.account-row-value{font-size:var(--text-base);font-weight:500}.trial-progress{border-radius:var(--radius-full);background:var(--bg-active);width:100%;height:6px;margin-top:var(--space-3);overflow:hidden}.trial-progress-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--accent-gold), var(--accent-gold-light));height:100%;transition:width var(--duration-slow) var(--ease-out-expo)}#toast-container{top:calc(var(--navbar-height) + var(--space-4));right:var(--space-4);gap:var(--space-3);z-index:var(--z-toast);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{min-width:320px;max-width:420px;padding:var(--space-4) var(--space-5);align-items:flex-start;gap:var(--space-3);pointer-events:all;animation:toastIn var(--duration-normal) var(--ease-out-expo) both;display:flex;position:relative;overflow:hidden}.toast.removing{animation:toastOut var(--duration-normal) var(--ease-in-out) both}.toast-icon{flex-shrink:0;width:20px;height:20px;margin-top:1px}.toast-body{flex:1;min-width:0}.toast-title{font-size:var(--text-sm);margin-bottom:var(--space-1);font-weight:600}.toast-message{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45}.toast-cta{align-items:center;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-xs);letter-spacing:.04em;color:var(--accent-gold);border-radius:var(--radius-full);cursor:pointer;transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;white-space:nowrap;-webkit-backdrop-filter:blur(4px);background:#d4af3714;border:1px solid #d4af3773;padding:4px 12px;font-weight:600;display:inline-flex}.toast-cta:before{content:"✦";opacity:.75;font-size:9px}.toast-cta:hover{background:#d4af372e;border-color:#d4af37bf;transform:translateY(-1px);box-shadow:0 0 10px #d4af3740}.toast-cta:active{box-shadow:none;transform:translateY(0)}.toast-close{color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast);flex-shrink:0}.toast-close:hover{color:var(--text-primary)}.toast-progress{border-radius:0 0 var(--radius-lg) var(--radius-lg);transform-origin:0;height:2px;animation:toastProgress var(--toast-duration,5s) linear both;position:absolute;bottom:0;left:0}.toast.success .toast-icon{color:var(--color-success)}.toast.success .toast-progress{background:var(--color-success)}.toast.error .toast-icon{color:var(--color-danger)}.toast.error .toast-progress{background:var(--color-danger)}.toast.warning .toast-icon{color:var(--color-warning)}.toast.warning .toast-progress{background:var(--color-warning)}.toast.info .toast-icon{color:var(--color-info)}.toast.info .toast-progress{background:var(--color-info)}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-state-icon{width:56px;height:56px;margin:0 auto var(--space-5);color:var(--text-muted)}.empty-state h3{font-size:var(--text-xl);margin-bottom:var(--space-3)}.empty-state p{color:var(--text-secondary);max-width:360px;margin:0 auto}@media (width<=1024px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.risk-meter-stats{gap:var(--space-3);grid-template-columns:repeat(3,1fr)}}@media (width<=768px){:root{--navbar-height:56px}.page-content{padding:var(--space-5) var(--space-4)}.upload-zone{padding:var(--space-8) var(--space-5)}.processing-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.image-tile{width:140px}.actions-bar{gap:var(--space-3);text-align:center;flex-direction:column}.actions-bar-btns{flex-direction:column;width:100%}.actions-bar-btns .btn{width:100%}.risk-meter-stats{gap:var(--space-3);grid-template-columns:1fr}.account-row{align-items:flex-start;gap:var(--space-2);flex-direction:column}.onboarding-card{padding:var(--space-6)}}@media (width<=480px){.navbar-title{font-size:var(--text-base)}.navbar-nav .navbar-link span{display:none}.cluster-images{gap:var(--space-2)}.image-tile{width:120px}}.custom-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:9999;background:#0a0a0fb3;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.custom-modal-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:90%;max-width:440px;padding:var(--space-8);box-shadow:var(--shadow-xl);animation:.3s cubic-bezier(.16,1,.3,1) slideInUp}.custom-modal-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.custom-modal-icon{font-size:28px;line-height:1}.custom-modal-header h3{font-size:var(--text-xl);color:var(--text-primary);margin:0}.custom-modal-body{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-8)}.custom-modal-actions{gap:var(--space-4);justify-content:flex-end;display:flex}.custom-modal-actions .btn{flex:1}.pricing-upgrade-section{text-align:center;padding:var(--space-4) 0 0 0}.custom-modal-card .pricing-upgrade-section{padding:0}.pricing-modal-close:hover{transition:all var(--duration-fast);transform:scale(1.2);color:var(--text-primary)!important}.pricing-header h2{font-size:var(--text-3xl);margin-bottom:var(--space-3);color:var(--text-primary)}.pricing-header h2 span{color:var(--accent-gold)}.pricing-header p{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-8);max-width:600px;margin-left:auto;margin-right:auto}.pricing-toggle-wrap{justify-content:center;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);display:flex}.pricing-toggle-label{font-size:var(--text-lg);color:var(--text-secondary);cursor:pointer;transition:color var(--duration-fast);font-weight:500}.pricing-toggle-label.active{color:var(--text-primary);font-weight:700}.pricing-toggle-switch{cursor:pointer;border:1px solid var(--border-subtle);width:64px;height:32px;transition:background var(--duration-fast);background:#ffffff1a;border-radius:999px;position:relative}.pricing-toggle-switch:after{content:"";background:var(--accent-gold);width:24px;height:24px;transition:transform var(--duration-normal) var(--ease-out-expo);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 0 10px #d4af3780}.pricing-toggle-wrap[data-annual=true] .pricing-toggle-switch:after{transform:translate(32px)}.save-badge{background:var(--color-success-dim);color:var(--color-success);border-radius:var(--radius-full);font-size:var(--text-xs);margin-left:var(--space-2);border:1px solid #10b98133;padding:2px 8px;font-weight:700}.pricing-cards{gap:var(--space-6);flex-wrap:wrap;justify-content:center;display:flex}.pricing-card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);min-width:300px;max-width:400px;padding:var(--space-8);text-align:left;transition:transform var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal);flex-direction:column;flex:1;display:flex;position:relative}.pricing-card.premium{border-color:var(--border-gold-dim);background:linear-gradient(180deg, #d4af370d 0%, #0a0a0fcc 100%), var(--bg-elevated)}.pricing-card.premium:before{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--accent-gold), transparent 60%);-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.pricing-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.pricing-card.premium:hover{box-shadow:0 10px 40px #d4af3726}.pricing-card-header{margin-bottom:var(--space-6)}.pricing-card-title{font-size:var(--text-2xl);margin-bottom:var(--space-2);color:var(--text-primary);font-weight:700}.pricing-card.premium .pricing-card-title{color:var(--accent-gold)}.pricing-price{font-family:var(--font-heading);color:var(--text-primary);align-items:baseline;gap:var(--space-1);font-size:3rem;font-weight:700;display:flex}.pricing-price span{font-size:var(--text-lg);color:var(--text-secondary);font-weight:400}.pricing-features{margin:0 0 var(--space-8) 0;flex:1;padding:0;list-style:none}.pricing-features li{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);display:flex}.pricing-features li svg{color:var(--accent-gold);flex-shrink:0;margin-top:2px}.pricing-btn{width:100%;padding:var(--space-4);font-size:var(--text-lg);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all var(--duration-fast);justify-content:center;align-items:center;gap:var(--space-2);border:none;font-weight:700;display:flex}.pricing-btn.primary{background:linear-gradient(135deg, var(--accent-gold), #c9a84c);color:#000;box-shadow:0 0 20px #d4af3766}.pricing-btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 30px #d4af3799}.legal-page{background:var(--bg-base);min-height:100dvh;position:relative;overflow-x:hidden}.legal-bg{pointer-events:none;z-index:0;background:radial-gradient(at 15% 20%,#d4af370a 0%,#0000 50%),radial-gradient(at 85% 80%,#d4af3708 0%,#0000 50%),radial-gradient(#1a1a2e99 0%,#0000 70%);position:fixed;inset:0}.legal-container{z-index:1;max-width:860px;padding:var(--space-8) var(--space-6) var(--space-12);margin:0 auto;position:relative}.legal-header{margin-bottom:var(--space-8);padding-top:var(--space-2);justify-content:space-between;align-items:center;display:flex}.legal-back-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:linear-gradient(135deg, var(--accent-gold), #c9a84c);border-radius:var(--radius-full);font-size:var(--text-sm);color:#000;cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);border:none;font-weight:700;display:flex;box-shadow:0 0 16px #d4af3759}.legal-back-btn:hover{transform:translateY(-2px);box-shadow:0 0 24px #d4af378c}.legal-brand{align-items:center;gap:var(--space-3);display:flex}.legal-brand-icon{flex-shrink:0;width:36px;height:36px}.legal-brand-name{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--text-primary);letter-spacing:var(--tracking-tight);font-weight:700}.legal-brand-name span{color:var(--accent-gold)}.legal-card{border-radius:var(--radius-xl);border:1px solid var(--border-gold-dim);-webkit-backdrop-filter:blur(20px);background:#12121ab3;overflow:hidden}.legal-doc-header{padding:var(--space-10) var(--space-10) var(--space-8);border-bottom:1px solid var(--border-subtle);text-align:center;background:linear-gradient(#d4af370a 0%,#0000 100%)}.legal-doc-type{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--accent-gold);background:var(--accent-gold-subtle);border:1px solid var(--border-gold-dim);border-radius:var(--radius-full);padding:var(--space-1) var(--space-4);margin-bottom:var(--space-5);font-weight:700;display:inline-block}.legal-doc-header h1{font-family:var(--font-heading);font-size:var(--text-4xl);color:var(--text-primary);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-3);font-weight:700}.legal-effective{font-size:var(--text-sm);color:var(--text-muted)}.legal-effective strong{color:var(--text-secondary)}.legal-body{padding:var(--space-8) var(--space-10)}.legal-section{gap:var(--space-6);padding:var(--space-8) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:56px 1fr;display:grid}.legal-section:last-child{border-bottom:none}.legal-section-number{font-family:var(--font-heading);font-size:var(--text-sm);color:var(--accent-gold);opacity:.6;letter-spacing:var(--tracking-wider);flex-shrink:0;padding-top:6px;font-weight:700}.legal-section-content h2{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);font-weight:700}.legal-section-content h3{font-size:var(--text-base);color:var(--text-primary);margin-top:var(--space-6);margin-bottom:var(--space-3);font-weight:700}.legal-section-content p{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}.legal-section-content p:last-child{margin-bottom:0}.legal-section-content a{color:var(--accent-gold);transition:color var(--duration-fast);text-decoration:underline}.legal-section-content a:hover{color:var(--accent-gold-light)}.legal-list{margin:var(--space-3) 0 var(--space-4) 0;gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.legal-list li{gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);padding-left:var(--space-2);display:flex;position:relative}.legal-list li:before{content:"—";color:var(--accent-gold);opacity:.6;flex-shrink:0;font-weight:700}.legal-callout{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);margin:var(--space-5) 0;border-left:3px solid;align-items:flex-start;display:flex}.legal-callout p{font-size:var(--text-sm);margin:0!important}.legal-callout svg{flex-shrink:0;margin-top:2px}.legal-callout-warning{background:var(--color-warning-dim);border-color:var(--color-warning);color:var(--color-warning)}.legal-callout-warning p{color:#fbbf24e6}.legal-callout-warning svg{color:var(--color-warning)}.legal-callout-danger{background:var(--color-danger-dim);border-color:var(--color-danger)}.legal-callout-danger p{color:#f87171e6}.legal-callout-danger svg{color:var(--color-danger)}.legal-callout-info{background:var(--color-info-dim);border-color:var(--color-info)}.legal-callout-info p{color:#60a5fae6}.legal-callout-info svg{color:var(--color-info)}.legal-callout-gold{background:var(--accent-gold-subtle);border-color:var(--accent-gold)}.legal-callout-gold p{color:#d4af37f2}.legal-contact-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);margin:var(--space-4) 0;gap:var(--space-3);background:#ffffff05;flex-direction:column;display:flex}.legal-contact-item{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.legal-contact-item svg{color:var(--accent-gold);flex-shrink:0}.legal-contact-item a{color:var(--accent-gold);text-decoration:underline}.legal-footer-note{padding:var(--space-8) var(--space-10);border-top:1px solid var(--border-subtle);background:#d4af3705}.legal-footer-note p{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-relaxed);text-align:center}.legal-footer-note strong{color:var(--text-secondary)}.legal-page-footer{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-8);padding-bottom:var(--space-4);display:flex}.legal-footer-link{font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast)}.legal-footer-link:hover,.legal-footer-link.active{color:var(--accent-gold)}.legal-footer-sep{color:var(--text-muted);opacity:.4;font-size:var(--text-xs)}@media (width<=768px){.legal-header{align-items:flex-start;gap:var(--space-5);flex-direction:column-reverse}.legal-doc-header{padding:var(--space-8) var(--space-6) var(--space-6)}.legal-doc-header h1{font-size:var(--text-3xl)}.legal-body{padding:var(--space-6) var(--space-6)}.legal-section{gap:var(--space-2);grid-template-columns:1fr}.legal-section-number{padding-top:0}.legal-footer-note{padding:var(--space-6)}}
