:root{--text:#9aa1ae;--text-h:#f3f4f6;--bg:#14151b;--bg-raised:#1b1c24;--bg-input:#23242e;--border:#303240;--border-soft:#26272f;--accent:#c084fc;--accent-hover:#d4a6fd;--accent-soft:#a985e0;--ok:#4ade80;--warning:#facc15;--error:#f87171;--display:"Plus Jakarta Sans", var(--sans);--sans:"Source Sans 3", system-ui, "Segoe UI", Roboto, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #0000003d, 0 1px 1px #00000029;--shadow-md:0 8px 24px #00000052, 0 2px 6px #0003;--shadow-glow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);font:16px/1.6 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);min-height:100svh;margin:0}h1,h2,h3{font-family:var(--display);color:var(--text-h);text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:600}@media (prefers-reduced-motion:no-preference){a,button,input,select,textarea,.project-list__item,.document-list__item{transition:color .14s,background-color .14s,border-color .14s,box-shadow .14s,transform .14s}}.app-shell{max-width:960px;padding:var(--space-6) var(--space-5) var(--space-8);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.app-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--border-soft);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{color:var(--accent);flex-shrink:0}.brand-mark__badge{fill:var(--accent)}.app-header h1{letter-spacing:-.02em;font-size:26px;font-weight:700}.brand-name{font-family:var(--display);letter-spacing:-.01em;color:var(--text-h);font-size:20px;font-weight:700}.app-header__right{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.app-header__user{align-items:center;gap:var(--space-3);font-size:14px;display:flex}.subtitle{color:var(--text);margin:2px 0 0;font-size:13.5px}main{gap:var(--space-5);flex-direction:column;display:flex}.panel,.auth-card,.status-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5) var(--space-5);text-align:left}.auth-card{max-width:380px;margin:var(--space-7) auto;box-shadow:var(--shadow-md)}.panel h2,.auth-card h2,.status-card h2{margin-bottom:var(--space-4);font-size:17px}.pill{font-family:var(--mono);border:1px solid var(--border);background:color-mix(in srgb, var(--text) 6%, transparent);white-space:nowrap;letter-spacing:.01em;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500}.pill--ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent);border-color:color-mix(in srgb, var(--ok) 35%, var(--border))}.pill--warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent);border-color:color-mix(in srgb, var(--warning) 35%, var(--border))}.status{font-family:var(--mono);margin:4px 0;font-size:14px}.status--ok{color:var(--ok)}.status--warning{color:var(--warning)}.status--error{color:var(--error)}.status--loading{color:var(--text)}.form{gap:var(--space-4);flex-direction:column;display:flex}.form--row{flex-flow:wrap;align-items:flex-end}.form label{color:var(--text);flex-direction:column;flex:1;gap:7px;min-width:160px;font-size:13.5px;font-weight:500;display:flex}.form input,.form select,.form textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-h);font:inherit;resize:vertical;padding:10px 12px}.form input::placeholder,.form textarea::placeholder{color:color-mix(in srgb, var(--text) 65%, transparent)}.form input:hover:not(:focus),.form select:hover:not(:focus){border-color:color-mix(in srgb, var(--text) 40%, var(--border))}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-glow);outline:none}.button{background:var(--accent);color:#16171d;border-radius:var(--radius-sm);font:inherit;letter-spacing:.01em;cursor:pointer;border:none;padding:10px 18px;font-weight:600;box-shadow:0 1px #0000001f}.button:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.button:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.button:focus-visible,.button--ghost:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.button--ghost{color:var(--text);border:1px solid var(--border);box-shadow:none;background:0 0;padding:7px 14px;font-weight:500}.button--ghost:hover:not(:disabled){color:var(--text-h);border-color:color-mix(in srgb, var(--text) 55%, var(--border));background:color-mix(in srgb, var(--text) 5%, transparent)}.auth-card__footer{margin-top:var(--space-4);color:var(--text);font-size:13.5px}.auth-card__footer a{color:var(--accent)}.project-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-list__item{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.project-list__item:has(.project-list__link:hover){border-color:color-mix(in srgb, var(--accent) 45%, var(--border));box-shadow:var(--shadow-sm)}.project-list__name{color:var(--text-h);font-weight:600}.project-list__trade{color:var(--text);font-size:13px}.project-list__status{font-family:var(--mono);color:var(--ok);font-size:12px}.project-list__link{width:100%;color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;display:flex}.project-list__link:hover .project-list__name{color:var(--accent)}.document-list__item{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.document-list__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.document-list__classification{color:var(--accent);font-size:12px;font-family:var(--mono);flex-wrap:wrap;gap:14px;display:flex}.document-list__review-reason{margin:2px 0 0;font-size:13px}.document-detail-layout{align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;margin-top:4px;display:flex}.document-detail-layout__viewer{flex:none}.document-detail-layout__panels{gap:var(--space-3);flex-direction:column;flex:380px;min-width:280px;display:flex}.pdf-viewer{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);width:320px;max-width:100%;top:var(--space-4);flex-direction:column;align-items:center;gap:10px;padding:12px;display:flex;position:sticky}.pdf-viewer__page canvas{border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);max-width:100%}.pdf-viewer__image{border-radius:var(--radius-sm);max-width:100%;box-shadow:var(--shadow-sm)}.pdf-viewer__controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.pdf-viewer__page-indicator{font-family:var(--mono);color:var(--text);align-items:center;gap:4px;font-size:13px;display:inline-flex}.pdf-viewer__page-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:48px;color:var(--text-h);font:inherit;font-family:var(--mono);text-align:center;padding:4px}.pdf-viewer__filename{color:var(--text);text-align:center;word-break:break-all;margin:0;font-size:12px}.extraction-details{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:12px;margin-top:4px;padding:12px;display:flex}.extraction-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0;display:grid}.extraction-fields div{flex-direction:column;gap:2px;display:flex}.extraction-fields dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text);font-size:11px}.extraction-fields dd{color:var(--text-h);margin:0;font-size:14px}.extraction-fields__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text);font-size:11px}.extraction-penetrations ul{color:var(--text-h);margin:4px 0 0;padding-left:18px;font-size:13px}.validation-flags{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.extraction-edit-form{flex-flow:wrap}.extraction-edit-actions{gap:10px;display:flex}.generation-details{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:14px;margin-top:4px;padding:12px;display:flex}.generation-prose{color:var(--text-h);margin:4px 0 0;font-size:13px;line-height:1.5}.generation-list{color:var(--text-h);margin:4px 0 0;padding-left:18px;font-size:13px}.generation-actions{flex-wrap:wrap;gap:10px;display:flex}.quantity-stats{flex-wrap:wrap;gap:20px;display:flex}.quantity-stats__item{flex-direction:column;gap:2px;display:flex}.quantity-stats__value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.quantity-table-wrap{margin-top:4px;overflow-x:auto}.quantity-table{border-collapse:collapse;width:100%;font-size:13px}.quantity-table th,.quantity-table td{border-bottom:1px solid var(--border-soft);text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums;padding:8px 10px}.quantity-table thead th{color:var(--text);font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);font-size:11px;font-weight:600}.quantity-table td{color:var(--text-h)}.quantity-table tbody tr:hover{background:color-mix(in srgb, var(--text) 4%, transparent)}.cost-estimate-details{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:14px;margin-top:4px;padding:12px;display:flex}.cost-estimate-table-wrap{overflow-x:auto}.cost-estimate-table{border-collapse:collapse;width:100%;font-size:13px}.cost-estimate-table th,.cost-estimate-table td{border-bottom:1px solid var(--border-soft);text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums;padding:8px 10px}.cost-estimate-table thead th{color:var(--text);font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);font-size:11px;font-weight:600}.cost-estimate-table td{color:var(--text-h)}.cost-estimate-table tbody tr:hover{background:color-mix(in srgb, var(--text) 4%, transparent)}.cost-estimate-total{color:var(--text-h);margin:0;font-size:16px;font-weight:600}.cost-estimate-table input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:90px;color:var(--text-h);font:inherit;padding:4px 6px}.project-summary{flex-direction:column;gap:14px;display:flex}.project-summary__counts{color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.back-link{color:var(--text);font-size:13px;text-decoration:none}.back-link:hover{color:var(--text-h)}input[type=file]{color:var(--text);font-size:13px;display:block}.upload-list{flex-direction:column;gap:10px;margin:16px 0 0;padding:0;list-style:none;display:flex}.upload-list__item{flex-direction:column;gap:6px;display:flex}.upload-list__name{color:var(--text-h);font-size:13px}.progress-bar{background:var(--bg-input);border-radius:999px;height:6px;overflow:hidden}.progress-bar__fill{background:var(--accent);height:100%;transition:width .15s}.landing{flex-direction:column;min-height:100svh;display:flex}.landing-nav{width:100%;max-width:1120px;padding:var(--space-5) var(--space-5) 0;justify-content:space-between;align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.landing-nav__links{align-items:center;gap:var(--space-4);display:flex}.landing-nav__login{color:var(--text);font-size:14.5px;font-weight:500;text-decoration:none}.landing-nav__login:hover{color:var(--text-h)}.landing-hero{padding:var(--space-8) var(--space-5) var(--space-7);position:relative;overflow:hidden}.landing-hero:before{content:"";background-image:linear-gradient(color-mix(in srgb, var(--accent) 10%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 10%, transparent) 1px, transparent 1px);pointer-events:none;background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 55% at 50% 0,#000 40%,#0000 100%);mask-image:radial-gradient(60% 55% at 50% 0,#000 40%,#0000 100%)}.landing-hero__inner{text-align:center;align-items:center;gap:var(--space-5);flex-direction:column;max-width:760px;margin:0 auto;display:flex;position:relative}.landing-eyebrow{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:999px;padding:6px 14px;font-size:12.5px}.landing-hero h1{letter-spacing:-.02em;font-size:clamp(32px,6vw,52px);font-weight:700;line-height:1.08}.landing-hero h1 em{color:var(--accent);font-style:normal}.landing-hero__sub{color:var(--text);max-width:58ch;font-size:18px;line-height:1.55}.landing-hero__actions{align-items:center;gap:var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.button--lg{border-radius:var(--radius-sm);padding:13px 26px;font-size:15.5px}.landing-hero__note{color:var(--text);font-size:13px}.landing-section{width:100%;max-width:1120px;padding:var(--space-7) var(--space-5);margin:0 auto}.landing-section--tight{padding-top:0}.landing-section__head{max-width:640px;margin:0 auto var(--space-6);text-align:center;gap:var(--space-2);flex-direction:column;display:flex}.landing-section__head h2{font-size:30px}.landing-section__head p{color:var(--text);margin:0 auto;font-size:15.5px}.landing-pipeline{gap:var(--space-3);grid-template-columns:repeat(5,1fr);display:grid}@media (width<=900px){.landing-pipeline{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.landing-pipeline{grid-template-columns:1fr}}.landing-step{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-2);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.landing-step__index{font-family:var(--mono);color:var(--accent);letter-spacing:.04em;font-size:12px}.landing-step h3{font-size:15.5px}.landing-step p{color:var(--text);margin:0;font-size:13.5px}.landing-trades{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=780px){.landing-trades{grid-template-columns:repeat(3,1fr)}}@media (width<=520px){.landing-trades{grid-template-columns:repeat(2,1fr)}}.landing-trade{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--text-h);text-align:center;font-size:14px;font-weight:500}.landing-audience{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=780px){.landing-audience{grid-template-columns:1fr}}.landing-audience__card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-2);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.landing-audience__card h3{font-size:17px}.landing-audience__card p{color:var(--text);margin:0;font-size:14px}.landing-trust{align-items:center;gap:var(--space-5);background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm);display:flex}@media (width<=700px){.landing-trust{flex-direction:column;align-items:flex-start}}.landing-trust__mark{font-family:var(--display);color:var(--accent);flex-shrink:0;font-size:40px;font-weight:800;line-height:1}.landing-trust h3{margin-bottom:4px;font-size:17px}.landing-trust p{color:var(--text);max-width:60ch;margin:0;font-size:14.5px}.landing-cta{text-align:center;padding:var(--space-7) var(--space-5) var(--space-8);align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.landing-cta h2{font-size:30px}.landing-cta p{color:var(--text);max-width:50ch;margin:0;font-size:15.5px}.landing-footer{border-top:1px solid var(--border-soft);padding:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;width:100%;max-width:1120px;margin:0 auto;display:flex}.landing-footer__brand{color:var(--text);align-items:center;gap:8px;font-size:13.5px;display:flex}.landing-footer__brand .brand-mark{color:var(--text)}.landing-footer p{color:var(--text);margin:0;font-size:13px}.legal-page{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6) var(--space-6);text-align:left;width:100%;max-width:800px;margin:0 auto}.legal-page>h2{margin-bottom:var(--space-2);font-size:28px}.legal-page h3{margin:var(--space-6) 0 var(--space-2);font-size:17px}.legal-page p,.legal-page li{font-size:15px;line-height:1.7}.legal-page p{margin:var(--space-3) 0}.legal-page ul,.legal-page ol{margin:var(--space-3) 0;padding-left:var(--space-5)}.legal-page li{margin:var(--space-1) 0}.legal-page strong{color:var(--text-h);font-weight:600}.legal-page a{color:var(--accent)}.legal-page code{font-family:var(--mono);background:color-mix(in srgb, var(--text) 10%, transparent);border-radius:var(--radius-sm);overflow-wrap:anywhere;padding:1px 6px;font-size:13px}.legal-dates{font-family:var(--mono);color:var(--text);margin:0 0 var(--space-4);font-size:13px}.legal-notice{border:1px solid color-mix(in srgb, var(--warning) 45%, var(--border));background:color-mix(in srgb, var(--warning) 9%, transparent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-5);color:var(--text-h)}.legal-placeholder{background:color-mix(in srgb, var(--warning) 22%, transparent);color:var(--warning);border-radius:4px;padding:0 4px}.legal-table-wrap{margin:var(--space-3) 0;border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow-x:auto}.legal-table{border-collapse:collapse;width:100%;font-size:14px}.legal-table th,.legal-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border-soft);padding:9px 12px}.legal-table tr:last-child td{border-bottom:none}.legal-table th{color:var(--text-h);background:color-mix(in srgb, var(--text) 5%, transparent);white-space:nowrap;font-weight:600}.legal-success{border:1px solid color-mix(in srgb, var(--ok) 40%, var(--border));background:color-mix(in srgb, var(--ok) 8%, transparent);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-top:var(--space-5)}.legal-success h3{margin-top:0}.legal-form{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-soft)}.form label.form__check{align-items:flex-start;gap:var(--space-3);flex-direction:row;font-weight:400;line-height:1.5}.form label.form__check input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:2px;padding:0}.auth-card__legal{color:var(--text);margin:0;font-size:12.5px;line-height:1.5}.auth-card__legal a{color:var(--accent)}.legal-footer{gap:var(--space-2) var(--space-4);flex-wrap:wrap;align-items:center;font-size:13px;display:flex}.legal-footer a,.legal-footer__button,.legal-inline-button{color:var(--text);text-decoration:none}.legal-footer a:hover,.legal-footer__button:hover,.legal-inline-button:hover{color:var(--text-h);text-decoration:underline}.legal-footer__button,.legal-inline-button{font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.legal-inline-button{color:var(--accent);text-decoration:underline}.app-shell>.legal-footer{border-top:1px solid var(--border-soft);padding-top:var(--space-4)}.cookie-banner{left:var(--space-4);right:var(--space-4);bottom:var(--space-4);z-index:50;justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-5);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:820px;box-shadow:var(--shadow-md);padding:var(--space-4) var(--space-5);text-align:left;flex-wrap:wrap;margin:0 auto;display:flex;position:fixed}.cookie-banner__text{flex:320px;min-width:0}.cookie-banner__text strong{color:var(--text-h);font-family:var(--display)}.cookie-banner__text p{margin:var(--space-1) 0 0;font-size:13.5px;line-height:1.55}.cookie-banner__text a{color:var(--accent)}.cookie-banner .cookie-banner__current{font-family:var(--mono);font-size:12px}.cookie-banner__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}
