@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";:root{--green:#4a5d23;--green-light:#a3b87a;--green-pale:#c2d49a;--green-bg:#f0f4e8;--brown:#8b5a2b;--brown-light:#c4956a;--bg:#faf9f7;--surface:#fff;--text:#2d2d2d;--text-secondary:#6b7280;--text-muted:#9ca3af;--border:#e8e5df;--border-hover:#d1cdc5;--danger:#e87461;--danger-bg:#fef2f0;--success:#6bc67e;--success-bg:#edf9f0;--warning:#f0b955;--warning-bg:#fef9ee;--info:#6ba3d4;--info-bg:#eef4fb;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-full:9999px;--s-xs:4px;--s-sm:8px;--s-md:16px;--s-lg:24px;--s-xl:32px;--s-2xl:48px;--s-3xl:64px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--sidebar-w:260px;--header-h:64px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}h1{letter-spacing:-.03em;font-size:2.5rem;font-weight:900;line-height:1.1}h2{letter-spacing:-.02em;font-size:1.75rem;font-weight:800;line-height:1.2}h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:700}h4{font-size:1rem;font-weight:600}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.7rem;font-weight:600}.mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem}a{color:var(--green);text-decoration:none;transition:color .15s}a:hover{color:var(--brown)}.btn{border-radius:var(--r-md);font-family:var(--font);cursor:pointer;white-space:nowrap;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.875rem;font-weight:600;line-height:1;text-decoration:none;transition:all .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--green);color:#fff;border-color:var(--green)}.btn-primary:hover{background:#3d4e1c;border-color:#3d4e1c}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{border-color:var(--green);color:var(--green)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--green-bg);color:var(--green)}.btn-sm{border-radius:var(--r-sm);padding:6px 14px;font-size:.8rem}.btn-lg{border-radius:var(--r-lg);padding:14px 28px;font-size:1rem}.btn-icon{border-radius:var(--r-md);padding:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.textarea,.select{border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;font-family:var(--font);background:var(--surface);color:var(--text);outline:none;padding:10px 14px;font-size:.9rem;transition:border-color .2s}.input:focus,.textarea:focus,.select:focus{border-color:var(--green)}.input::placeholder{color:var(--text-muted)}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:var(--s-lg);transition:border-color .2s}.card:hover{border-color:var(--border-hover)}.card-flat{background:var(--green-bg);border-color:#0000}.badge{border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.05em;align-items:center;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-green{background:var(--green-bg);color:var(--green)}.badge-brown{color:var(--brown);background:#fdf3eb}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-success{background:var(--success-bg);color:#2d8a43}.badge-muted{color:var(--text-muted);background:#f3f4f6}.stat-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:var(--s-lg);flex-direction:column;gap:4px;display:flex}.stat-value{letter-spacing:-.03em;color:var(--text);font-size:2rem;font-weight:900}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.75rem;font-weight:600}.stat-card.accent{border-color:var(--green)}.stat-card.accent .stat-value{color:var(--green)}.app-layout{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1.5px solid var(--border);padding:var(--s-lg) 0;flex-direction:column;flex-shrink:0;display:flex}.sidebar-brand{padding:0 var(--s-lg) var(--s-lg);border-bottom:1.5px solid var(--border);margin-bottom:var(--s-md);align-items:center;gap:10px;display:flex}.sidebar-brand h2{letter-spacing:-.04em;font-size:1.3rem;font-weight:900}.sidebar-brand .dot{color:var(--green)}.sidebar-nav{padding:0 var(--s-sm);flex-direction:column;flex:1;gap:2px;display:flex}.nav-item{border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 16px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background:var(--green-bg);color:var(--green)}.nav-item.active{background:var(--green-bg);color:var(--green);font-weight:600}.sidebar-footer{padding:var(--s-md) var(--s-lg) 0;border-top:1.5px solid var(--border);margin-top:auto}.user-pill{border-radius:var(--r-md);background:var(--bg);align-items:center;gap:10px;padding:8px 12px;display:flex}.user-pill .avatar{border-radius:var(--r-full);background:var(--green);color:#fff;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.user-pill .user-info{flex:1;min-width:0}.user-pill .user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.user-pill .user-role{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}.main-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.page-header{padding:var(--s-xl) var(--s-xl) var(--s-lg);justify-content:space-between;align-items:center;display:flex}.page-header h1{font-size:1.75rem}.page-body{padding:0 var(--s-xl) var(--s-xl);flex:1}.grid{gap:var(--s-lg);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.gap-sm{gap:var(--s-sm)}.gap-md{gap:var(--s-md)}.gap-lg{gap:var(--s-lg)}.table-wrap{border:1.5px solid var(--border);border-radius:var(--r-lg);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead{background:var(--bg)}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:12px 16px;font-size:.75rem;font-weight:600}td{border-top:1px solid var(--border);padding:12px 16px}tbody tr{transition:background .1s}tbody tr:hover{background:var(--green-bg)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0000004d;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);padding:var(--s-xl);width:90%;max-width:480px;animation:.25s slideUp}.modal-header{margin-bottom:var(--s-lg);justify-content:space-between;align-items:center;display:flex}.upload-zone{border:2px dashed var(--border);border-radius:var(--r-lg);padding:var(--s-2xl);text-align:center;cursor:pointer;background:var(--bg);transition:all .2s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--green);background:var(--green-bg)}.upload-zone .upload-icon{color:var(--green-light);margin-bottom:var(--s-md)}.scan-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:border-color .2s;overflow:hidden}.scan-card:hover{border-color:var(--green-light)}.scan-card-images{gap:0;display:flex}.scan-card-images img{object-fit:cover;width:50%;height:120px}.scan-card-body{padding:var(--s-md)}.scan-card-footer{padding:var(--s-sm) var(--s-md);border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.landing{min-height:100vh}.landing-nav{z-index:100;padding:var(--s-md) var(--s-2xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#faf9f7d9;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.landing-nav .brand{align-items:center;gap:8px;font-size:1.2rem;font-weight:900;display:flex}.landing-nav .brand .dot{color:var(--green)}.landing-nav-links{align-items:center;gap:var(--s-md);display:flex}.hero{padding:160px var(--s-2xl) 100px;text-align:center;max-width:900px;margin:0 auto}.hero h1{letter-spacing:-.04em;margin-bottom:var(--s-lg);font-size:4rem;font-weight:900;line-height:1.05}.hero h1 .accent{color:var(--green)}.hero .subtitle{color:var(--text-secondary);max-width:600px;margin:0 auto var(--s-xl);font-size:1.25rem;font-weight:400;line-height:1.6}.hero-actions{justify-content:center;align-items:center;gap:var(--s-md);display:flex}.section{padding:80px var(--s-2xl);max-width:1100px;margin:0 auto}.section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--green);margin-bottom:var(--s-sm);font-size:.7rem;font-weight:700}.section h2{margin-bottom:var(--s-xl)}.step-cards{gap:var(--s-lg);grid-template-columns:repeat(3,1fr);display:grid}.step-card{border:1.5px solid var(--border);border-radius:var(--r-lg);padding:var(--s-xl);background:var(--surface);transition:border-color .2s}.step-card:hover{border-color:var(--green-light)}.step-num{color:var(--brown);margin-bottom:var(--s-md);font-size:.75rem;font-weight:700}.step-card h3{margin-bottom:var(--s-sm)}.step-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.step-card .step-icon{color:var(--green);margin-bottom:var(--s-md)}.pricing-cards{gap:var(--s-lg);grid-template-columns:repeat(2,1fr);display:grid}.pricing-card{border:1.5px solid var(--border);border-radius:var(--r-lg);padding:var(--s-xl);background:var(--surface)}.pricing-card.featured{border-color:var(--green);background:var(--green-bg)}.pricing-price{letter-spacing:-.03em;margin:var(--s-md) 0 var(--s-xs);font-size:2.5rem;font-weight:900}.pricing-unit{color:var(--text-muted);margin-bottom:var(--s-lg);font-size:.8rem}.pricing-features{gap:var(--s-sm);flex-direction:column;list-style:none;display:flex}.pricing-features li{color:var(--text-secondary);align-items:center;gap:8px;font-size:.9rem;display:flex}.pricing-features li svg{color:var(--green);flex-shrink:0}.landing-footer{border-top:1.5px solid var(--border);padding:var(--s-xl) var(--s-2xl);text-align:center;color:var(--text-muted);font-size:.8rem}.auth-page{background:var(--bg);min-height:100vh;padding:var(--s-xl);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-xl);padding:var(--s-2xl);width:100%;max-width:420px}.auth-card h1{text-align:center;margin-bottom:var(--s-xs);font-size:1.5rem}.auth-card .auth-subtitle{text-align:center;color:var(--text-muted);margin-bottom:var(--s-xl);font-size:.9rem}.auth-card form{gap:var(--s-md);flex-direction:column;display:flex}.auth-card .auth-footer{text-align:center;margin-top:var(--s-lg);color:var(--text-muted);font-size:.85rem}.auth-brand{text-align:center;margin-bottom:var(--s-xl);font-size:1.5rem;font-weight:900}.auth-brand .dot{color:var(--green)}.error-msg{background:var(--danger-bg);color:var(--danger);border-radius:var(--r-md);padding:10px 14px;font-size:.85rem;font-weight:500}.empty-state{text-align:center;padding:var(--s-3xl) var(--s-xl);color:var(--text-muted)}.empty-state svg{margin-bottom:var(--s-md);color:var(--border)}.empty-state h3{color:var(--text-secondary);margin-bottom:var(--s-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:.3s fadeIn}.slide-up{animation:.35s slideUp}.confidence-bar{border-radius:var(--r-full);background:var(--border);height:6px;overflow:hidden}.confidence-fill{border-radius:var(--r-full);height:100%;transition:width .5s}.scan-overlay-container{align-items:center;gap:var(--s-sm);flex-direction:column;display:flex;position:relative}.scan-overlay-wrapper{border-radius:var(--r-md);line-height:0;display:inline-block;position:relative;overflow:hidden}.scan-overlay-img{border-radius:var(--r-md);width:100%;height:auto;display:block}.scan-overlay-loading,.scan-overlay-error{background:var(--bg);border-radius:var(--r-md);width:100%;min-height:200px;color:var(--text-muted);justify-content:center;align-items:center;font-size:.85rem;display:flex}.detection-box{cursor:pointer;z-index:2;border:2px solid #0000;transition:border-color .15s,background .15s;position:absolute}.detection-gano{background:0 0;border-color:#e87461d9}.detection-gano.detection-active{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger) inset;background:0 0}.detection-healthy{background:0 0;border-color:#6bc67e59}.detection-healthy.detection-active{background:0 0;border-color:#6bc67ebf;box-shadow:inset 0 0 0 1px #6bc67ebf}.detection-corner{pointer-events:none;width:8px;height:8px;position:absolute}.detection-gano .detection-corner{border-color:var(--danger)}.detection-healthy .detection-corner{border-color:#6bc67e80}.detection-corner.tl{border-top:3px solid;border-left:3px solid;border-color:inherit;top:-1px;left:-1px}.detection-corner.tr{border-top:3px solid;border-right:3px solid;border-color:inherit;top:-1px;right:-1px}.detection-corner.bl{border-bottom:3px solid;border-left:3px solid;border-color:inherit;bottom:-1px;left:-1px}.detection-corner.br{border-bottom:3px solid;border-right:3px solid;border-color:inherit;bottom:-1px;right:-1px}.detection-tooltip{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-sm);white-space:nowrap;z-index:10;pointer-events:none;padding:8px 12px;line-height:1.4;animation:.15s fadeIn;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.detection-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--border);position:absolute;top:100%;left:50%;transform:translate(-50%)}.detection-tooltip-label{align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:flex}.detection-tooltip-dot{border-radius:var(--r-full);flex-shrink:0;width:8px;height:8px}.dot-gano{background:var(--danger)}.dot-healthy{background:var(--success)}.detection-tooltip-conf{color:var(--text-muted);margin-top:2px;font-size:.7rem}.detection-tooltip-coords{color:var(--text-muted);margin-top:2px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.65rem}.detection-toggle{background:var(--surface);border-color:var(--border);color:var(--text-secondary);align-self:flex-end}.detection-toggle:hover{border-color:var(--green);color:var(--green)}.mobile-header-bar,.sidebar-overlay,.mobile-menu-btn{display:none}@media (width<=768px){.step-cards,.pricing-cards,.grid-3,.grid-4,.grid-2{grid-template-columns:1fr}.hero h1{font-size:2.5rem}:root{--sidebar-w:0px}.app-layout{flex-direction:column}.mobile-header-bar{padding:var(--s-md) var(--s-xl);background:var(--surface);border-bottom:1.5px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.mobile-menu-btn{cursor:pointer;color:var(--text);background:0 0;border:none;display:block}.sidebar{z-index:1000;width:260px;transition:transform .3s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:999;background:#0006;display:none;position:fixed;inset:0}.sidebar-overlay.open{animation:.3s fadeIn;display:block}.landing-nav{padding:var(--s-md) var(--s-lg);flex-wrap:wrap}.landing-nav-links{width:100%;margin-top:var(--s-md);gap:var(--s-sm);flex-direction:column;display:none}.landing-nav-links.open{display:flex}.landing-nav-links .btn{justify-content:center;width:100%}.page-header{flex-direction:column;gap:16px;align-items:flex-start!important}.page-header>div{width:100%}.page-header select{flex:1;width:calc(50% - 6px)!important}.page-header input,.page-header>div>div{width:100%!important}}
