@import url(https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@300;400;500;600&display=swap);.auth-wrapper{align-items:center;background:var(--green-deep);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:24px;position:relative}.auth-wrapper:before{background:radial-gradient(ellipse at 50% 0,#4daf7a12 0,#0000 65%);content:"";inset:0;pointer-events:none;position:absolute}.auth-card{background:var(--green-mid);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:400px;padding:48px 40px;position:relative;width:100%}.auth-eyebrow{color:var(--green-bright);font-size:11px;font-weight:600;letter-spacing:.12em;margin-bottom:16px;text-transform:uppercase}.auth-title{color:var(--cream);font-family:var(--font-serif);font-size:28px;font-weight:400;line-height:1.2;margin-bottom:8px}.auth-subtitle{color:var(--green-muted);font-size:13px;line-height:1.5;margin-bottom:36px}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-error{background:#c0392b1f;border:1px solid #c0392b4d;border-radius:var(--radius);color:#e07070;font-size:13px;padding:10px 14px}.auth-divider{background:var(--border);height:1px;margin:4px 0}.capture-page{margin:0 auto;max-width:680px;padding:40px 24px 80px}.page-header{border-bottom:1px solid var(--border);margin-bottom:36px;padding-bottom:24px}.page-eyebrow{color:var(--green-bright);font-size:11px;font-weight:600;letter-spacing:.1em;margin-bottom:8px;text-transform:uppercase}.page-title{color:var(--cream);font-family:var(--font-serif);font-size:30px;font-weight:400;line-height:1.2}.page-desc{color:var(--green-muted);font-size:13px;line-height:1.6;margin-top:6px}.capture-body{display:flex;flex-direction:column;gap:20px}.dropzone{align-items:center;background:#ffffff05;border:1px dashed var(--border-accent);border-radius:var(--radius-lg);cursor:pointer;display:flex;justify-content:center;min-height:220px;overflow:hidden;position:relative;transition:border-color .15s,background .15s}.dropzone:hover{background:#4daf7a0a;border-color:var(--green-bright)}.dropzone.has-preview{border-color:var(--border);border-style:solid;cursor:default;min-height:300px}.dropzone-placeholder{align-items:center;display:flex;flex-direction:column;gap:10px;padding:32px;text-align:center}.dropzone-icon{font-size:32px;opacity:.4}.dropzone-placeholder p{color:var(--green-muted);font-size:14px}.dropzone-placeholder strong{color:var(--green-bright);font-weight:500}.dropzone-hint{color:var(--green-muted);font-size:11px;letter-spacing:.04em;opacity:.5}.preview-img{height:100%;object-fit:cover;width:100%}.btn-change{background:#0f2d1fd9;border:1px solid var(--border);border-radius:var(--radius);bottom:12px;color:var(--cream-dim);cursor:pointer;font-family:var(--font-sans);font-size:12px;letter-spacing:.03em;padding:6px 12px;position:absolute;right:12px;transition:background .15s}.btn-change:hover{background:#0f2d1ff2}.capture-form{display:flex;flex-direction:column;gap:14px}.form-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}.capture-error{background:#c0392b1a;border:1px solid #c0392b40;border-radius:var(--radius);color:#e07070;font-size:13px;padding:10px 14px}.btn-analyze{align-items:center;background:var(--green-bright);border:none;border-radius:var(--radius);color:var(--green-deep);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:13px;font-weight:600;gap:10px;justify-content:center;letter-spacing:.05em;margin-top:4px;padding:14px 24px;text-transform:uppercase;transition:background .15s,transform .1s}.btn-analyze:hover:not(:disabled){background:#5dc48a}.btn-analyze:disabled{cursor:not-allowed;opacity:.35}@media (max-width:480px){.form-row{grid-template-columns:1fr}}.dashboard{display:flex;flex-direction:column;gap:32px;margin:0 auto;max-width:960px;padding:40px 24px 80px}.dash-loading{align-items:center;color:var(--green-muted);display:flex;font-size:14px;justify-content:center;letter-spacing:.04em;min-height:60vh}.dash-header{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:16px;padding-bottom:24px}.btn-back{background:#0000;border:1px solid var(--border);border-radius:var(--radius);color:var(--green-muted);cursor:pointer;flex-shrink:0;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.04em;margin-top:4px;padding:7px 14px;transition:color .15s;white-space:nowrap}.btn-back:hover{color:var(--cream)}.dash-title{flex:1 1}.dash-eyebrow{color:var(--green-bright);font-size:11px;font-weight:600;letter-spacing:.1em;margin-bottom:6px;text-transform:uppercase}.dash-title h1{color:var(--cream);font-family:var(--font-serif);font-size:26px;font-weight:400;line-height:1.2;margin-bottom:4px}.dash-meta{color:var(--green-muted);font-size:12px;letter-spacing:.02em}.btn-export{background:#0000;border:1px solid var(--border-accent);border-radius:var(--radius);color:var(--green-bright);cursor:pointer;flex-shrink:0;font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.08em;margin-top:4px;padding:7px 16px;text-transform:uppercase;transition:background .15s;white-space:nowrap}.btn-export:hover{background:#4daf7a14}.metrics-grid{grid-gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);display:grid;gap:1px;grid-template-columns:repeat(3,1fr);overflow:hidden}.metric-card{background:var(--green-mid);display:flex;flex-direction:column;gap:6px;padding:24px 20px;transition:background .15s}.metric-card:hover{background:#2d6e4566}.metric-card.highlight{background:#2d6e4559}.metric-label{color:var(--green-muted);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.metric-value{color:var(--cream);font-family:var(--font-serif);font-size:28px;font-weight:400;line-height:1}.metric-unit{color:var(--green-muted);font-family:var(--font-sans);font-size:13px;font-weight:400;margin-left:3px}.dash-tabs{border-bottom:1px solid var(--border);display:flex;gap:0}.tab{background:#0000;border:none;border-bottom:2px solid #0000;color:var(--green-muted);cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:.02em;margin-bottom:-1px;padding:10px 20px;transition:color .15s,border-color .15s}.tab.active,.tab:hover{color:var(--cream)}.tab.active{border-bottom-color:var(--green-bright)}.chart-card{background:var(--green-mid);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px}.chart-card h2{color:var(--cream);font-family:var(--font-serif);font-size:18px;font-weight:400;margin-bottom:4px}.chart-subtitle{color:var(--green-muted);font-size:12px;font-style:italic;letter-spacing:.03em;margin-bottom:24px}.compare-section{display:flex;flex-direction:column;gap:16px}.compare-selector{background:var(--green-mid);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px}.compare-selector h3{color:var(--green-muted);font-size:12px;font-weight:600;letter-spacing:.08em;margin-bottom:16px;text-transform:uppercase}.compare-list{display:flex;flex-direction:column;gap:10px}.compare-item{align-items:center;color:var(--cream);cursor:pointer;display:flex;font-size:13px;gap:10px}.compare-item input[type=checkbox]{accent-color:var(--green-bright);cursor:pointer;height:14px;width:14px}.compare-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.compare-meta{color:var(--green-muted);font-size:11px;margin-left:auto}.annotated-img{border:1px solid var(--border);border-radius:var(--radius);margin-top:8px;width:100%}@media (max-width:600px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.dash-header{flex-wrap:wrap}}.history-page{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:800px;padding:40px 24px 80px}.history-empty,.history-loading{align-items:center;color:var(--green-muted);display:flex;font-size:14px;justify-content:center;letter-spacing:.04em;min-height:40vh}.history-header{align-items:flex-end;border-bottom:1px solid var(--border);display:flex;gap:16px;justify-content:space-between;padding-bottom:24px}.history-header h1{color:var(--cream);font-family:var(--font-serif);font-size:30px;font-weight:400;line-height:1.1}.history-count{color:var(--green-muted);font-size:12px;letter-spacing:.03em;margin-top:4px}.btn-new{background:var(--green-bright);border:none;border-radius:var(--radius);color:var(--green-deep);cursor:pointer;flex-shrink:0;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.05em;padding:10px 18px;text-transform:uppercase;transition:background .15s;white-space:nowrap}.btn-new:hover{background:#5dc48a}.history-search{background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius);color:var(--cream);font-family:var(--font-sans);font-size:13px;outline:none;padding:10px 14px;transition:border-color .15s;width:100%}.history-search:focus{border-color:var(--green-bright)}.history-search::placeholder{color:var(--green-muted);opacity:.5}.history-list{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:1px;overflow:hidden}.history-item{align-items:center;background:var(--green-mid);cursor:pointer;display:flex;gap:20px;padding:16px 20px;transition:background .15s}.history-item:hover{background:#2d6e4566}.history-item-main{flex:1 1;min-width:0}.history-label{color:var(--cream);display:block;font-size:14px;font-weight:500;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:#ffffff0d;border:1px solid var(--border);border-radius:3px;color:var(--green-muted);font-size:11px;letter-spacing:.03em;padding:2px 7px}.history-item-metrics{display:flex;gap:24px}.hist-metric{align-items:flex-end;display:flex;flex-direction:column;gap:1px}.hist-metric-val{color:var(--cream);font-family:var(--font-serif);font-size:17px;line-height:1}.hist-metric-lbl{color:var(--green-muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.history-item-right{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.history-date{color:var(--green-muted);font-size:11px;white-space:nowrap}.btn-delete{background:#0000;border:none;border-radius:3px;color:var(--green-muted);cursor:pointer;font-size:12px;opacity:0;padding:3px 6px;transition:color .15s,background .15s}.history-item:hover .btn-delete{opacity:1}.btn-delete:hover{background:#c0392b1a;color:#e07070}@media (max-width:560px){.history-item-metrics{display:none}.btn-delete{opacity:1}}:root{--green-deep:#0f2d1f;--green-mid:#1a4a2e;--green-accent:#2d6e45;--green-bright:#4caf7a;--green-muted:#8aab96;--cream:#f5f0e8;--cream-dim:#c8c0b0;--white:#fff;--error:#c0392b;--border:#ffffff14;--border-accent:#4daf7a40;--font-serif:"Instrument Serif",Georgia,serif;--font-sans:"Inter",system-ui,sans-serif;--nav-h:60px;--radius:4px;--radius-lg:8px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{-webkit-font-smoothing:antialiased;background:#0f2d1f;background:var(--green-deep);color:#f5f0e8;color:var(--cream);font-family:Inter,system-ui,sans-serif;font-family:var(--font-sans);font-size:14px;height:100%}.app-layout{display:flex;flex-direction:column;min-height:100vh}.navbar{background:#0f2d1f;background:var(--green-deep);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--border);gap:32px;height:60px;height:var(--nav-h);padding:0 32px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.navbar,.navbar-brand{align-items:center;display:flex}.navbar-brand{flex-shrink:0;gap:10px;text-decoration:none}.navbar-wordmark{color:#f5f0e8;color:var(--cream);font-family:"Instrument Serif",Georgia,serif;font-family:var(--font-serif);font-size:17px;letter-spacing:.01em}.navbar-sep{background:#ffffff14;background:var(--border);flex-shrink:0;height:16px;width:1px}.navbar-subtitle{color:#8aab96;color:var(--green-muted);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.navbar-links{display:flex;flex:1 1;gap:2px}.nav-link{border-radius:4px;border-radius:var(--radius);color:#8aab96;color:var(--green-muted);font-size:13px;font-weight:500;letter-spacing:.02em;padding:6px 14px;text-decoration:none;transition:color .15s,background .15s}.nav-link.active,.nav-link:hover{color:#f5f0e8;color:var(--cream)}.nav-link.active{background:#ffffff0f}.navbar-user{align-items:center;display:flex;flex-shrink:0;gap:16px}.user-name{white-space:nowrap}.btn-logout,.user-name{color:#8aab96;color:var(--green-muted);font-size:12px}.btn-logout{background:#0000;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:4px;border-radius:var(--radius);cursor:pointer;font-family:Inter,system-ui,sans-serif;font-family:var(--font-sans);font-weight:500;letter-spacing:.04em;padding:6px 14px;text-transform:uppercase;transition:color .15s,border-color .15s}.btn-logout:hover{border-color:#fff3;color:#f5f0e8;color:var(--cream)}.app-main{flex:1 1}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#2d6e45;background:var(--green-accent);border-radius:2px}.field{display:flex;flex-direction:column;gap:6px}.field label{color:#8aab96;color:var(--green-muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.field input,.field textarea{background:#ffffff0a;border:1px solid #ffffff14;border:1px solid var(--border);border-radius:4px;border-radius:var(--radius);color:#f5f0e8;color:var(--cream);font-family:Inter,system-ui,sans-serif;font-family:var(--font-sans);font-size:14px;outline:none;padding:10px 14px;resize:vertical;transition:border-color .15s}.field input:focus,.field textarea:focus{border-color:#4caf7a;border-color:var(--green-bright)}.field input::placeholder,.field textarea::placeholder{color:#8aab96;color:var(--green-muted);opacity:.5}.btn-primary{background:#4caf7a;background:var(--green-bright);border:none;border-radius:4px;border-radius:var(--radius);color:#0f2d1f;color:var(--green-deep);cursor:pointer;font-family:Inter,system-ui,sans-serif;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.04em;padding:12px 24px;text-transform:uppercase;transition:background .15s,transform .1s}.btn-primary:hover:not(:disabled){background:#5dc48a}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{cursor:not-allowed;opacity:.35}.spinner{animation:spin .7s linear infinite;border:2px solid #0f2d1f4d;border-radius:50%;border-top:2px solid var(--green-deep);display:inline-block;height:14px;width:14px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:600px){.navbar{gap:16px;padding:0 16px}.navbar-subtitle,.user-name{display:none}}
/*# sourceMappingURL=main.d63bcb52.css.map*/