*{box-sizing:border-box}:root{--ink: #1a1a1a;--ink-70: #404040;--ink-50: #6b7280;--ink-30: #cbd5dc;--ink-60: var(--ink-70);--ink-40: var(--ink-50);--paper: #ffffff;--off-paper: #f7f6f3;--hairline: #e5e3df;--subtle: rgba(26, 26, 26, .06);--red: var(--brand-primary, #af231c);--red-hover: color-mix(in srgb, var(--red) 85%, #000);--red-tint: color-mix(in srgb, var(--red) 8%, transparent);--steel: var(--brand-accent, #3d5469);--steel-hover: color-mix(in srgb, var(--steel) 80%, #000);--danger: #c0271f;--danger-tint: rgba(192, 39, 31, .08);--sage: #2f7a3a;--sage-tint: rgba(47, 122, 58, .1);--amber: #a86c1f;--amber-tint: rgba(168, 108, 31, .12);--focus: var(--red);--radius: 4px;--radius-lg: 6px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*:focus{outline:none}*:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;top:-40px;left:1rem;background:var(--ink);color:var(--paper);padding:.5rem .75rem;border-radius:var(--radius);z-index:100;text-decoration:none}.skip-link:focus{top:.5rem;color:var(--paper)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}h1,h2,h3{line-height:1.25;letter-spacing:-.01em;margin:0}h1{font-size:2.25rem;font-weight:600}h2{font-size:1.5rem;font-weight:600}h3{font-size:1.125rem;font-weight:500}a{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--red)}code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em;background:var(--off-paper);padding:.1em .3em;border-radius:3px}.brand{font-family:var(--font);font-weight:700;font-size:1.125rem;color:var(--ink);letter-spacing:-.01em;text-transform:lowercase}.brand-tag{font-size:.8125rem;color:var(--ink-60);text-transform:lowercase;margin-top:.1rem}.centered{display:grid;place-items:center;height:100%;color:var(--ink-60);font-size:.95rem}.landing{min-height:100%;display:grid;place-items:center;padding:2.5rem 1.5rem}.landing-hero{max-width:520px;text-align:left}.landing-hero .brand{font-size:1.5rem;margin-bottom:.25rem}.landing-hero .brand-tag{margin-bottom:3rem}.landing-hero h1{font-size:2.25rem;margin:0 0 1rem}.lede{color:var(--ink-60);font-size:1.0625rem;margin:0 0 2rem;max-width:42ch}.cta-row{display:flex;gap:.75rem}.preview-note{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--hairline);color:var(--ink-60);font-size:.8125rem;max-width:42ch}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.5rem;border-radius:var(--radius);font-family:inherit;font-weight:500;font-size:.9375rem;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand-fill, var(--red));color:var(--brand-on-primary, var(--paper));border-color:var(--brand-fill, var(--red))}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--brand-fill, var(--red)) 88%,#000);border-color:color-mix(in srgb,var(--brand-fill, var(--red)) 88%,#000);color:var(--brand-on-primary, var(--paper))}.btn-provider{background:var(--paper);color:var(--ink);border-color:var(--hairline);width:100%}.btn-provider:hover:not(:disabled){border-color:var(--ink-40);background:var(--subtle)}.btn-ghost{background:transparent;color:var(--ink-60);border-color:var(--hairline)}.btn-ghost:hover:not(:disabled){color:var(--ink);border-color:var(--ink-40)}.auth-page{min-height:100%;display:grid;place-items:center;padding:2.5rem 1.5rem}.auth-card{width:100%;max-width:380px;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:2rem}.auth-card .brand{margin-bottom:1.5rem}.auth-card h1{font-size:1.5rem;font-weight:600;margin:0 0 1.5rem}.auth-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:1.75rem}.auth-brand .wordmark-image{height:3rem;max-width:220px;width:auto}.auth-brand .wordmark-text{font-size:1.75rem;line-height:1.1}.btn-block{width:100%}.auth-signup{margin-top:1rem}.auth-footer-center{justify-content:center}.provider-row{display:flex;flex-direction:column;gap:.5rem}.divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--ink-40);font-size:.8125rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--hairline)}.email-form{display:flex;flex-direction:column;gap:.875rem}.email-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.8125rem;color:var(--ink-60)}.email-form input{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);padding:.65rem .8rem;width:100%}.email-form input:focus{outline:none;border-color:var(--ink)}.email-form input::placeholder{color:var(--ink-40)}.email-form .btn{margin-top:.25rem}.alert{margin-top:1rem;padding:.7rem .9rem;border-radius:var(--radius);font-size:.875rem;border:1px solid transparent}.alert-error{color:var(--danger);border-color:var(--danger);background:var(--danger-tint)}.alert-info{color:var(--ink);border-color:var(--ink-40);background:var(--subtle)}.auth-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;font-size:.875rem}.auth-footer .link{background:none;border:none;color:var(--ink);cursor:pointer;padding:0;font:inherit;text-decoration:underline;text-underline-offset:2px}.auth-footer .link:hover{color:var(--red)}.app-shell{min-height:100%;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;border-bottom:1px solid var(--hairline)}.app-body{flex:1;padding:4rem 1.5rem;max-width:880px;width:100%;margin:0 auto}.app-body h1{font-size:1.75rem;margin:0 0 .75rem}.placeholder-card{margin-top:2.5rem;padding:2.5rem 2rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);color:var(--ink-60);text-align:center;font-size:.9375rem}.files-panel{margin-top:2.5rem}.files-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;padding:1rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);margin-bottom:1.25rem}.files-toolbar label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--ink-60)}.files-toolbar select{font:inherit;padding:.5rem .65rem;background:var(--paper);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius)}.upload-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-left:auto}.upload-button input[hidden]{display:none}.upload-drop-hint{align-self:center;font-size:.85rem}.tab-pane.drag-over{outline:2px dashed var(--steel);outline-offset:-6px;border-radius:var(--radius-lg)}.files-table{width:100%;border-collapse:collapse;font-size:.9375rem}.files-table th,.files-table td{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--hairline);vertical-align:middle}.files-table th{font-weight:500;color:var(--ink-60);font-size:.8125rem;text-transform:uppercase;letter-spacing:.02em}.files-table tr:hover td{background:var(--off-paper)}.row-actions{display:flex;gap:.75rem;justify-content:flex-end}.link{background:none;border:none;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link:hover{color:var(--red)}.link-danger{color:var(--ink-60)}.link-danger:hover{color:var(--danger)}.muted{color:var(--ink-60);font-size:.9375rem}.muted.error{color:var(--danger)}.viewer-block{margin-top:2rem;padding:1rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg)}.viewer-block h2{font-size:1rem;font-weight:500;margin-bottom:.75rem;color:var(--ink-60)}.mesh-viewer{width:100%}.mesh-canvas{width:100%;background:#f5f5f5;border-radius:var(--radius);overflow:hidden}.mesh-error{color:var(--danger);font-size:.9rem;margin-top:.5rem;min-height:1.2em}.mesh-viewer-toolbar{display:flex;gap:1rem;align-items:center;margin-bottom:.5rem;font-size:.9rem}.mesh-viewer-checkbox{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink-60)}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1.25rem;align-items:start}@media (max-width: 900px){.viewer-layout{grid-template-columns:1fr}}.mesh-metadata{background:var(--paper, #fff);border:1px solid var(--hairline);border-radius:var(--radius);padding:.75rem 1rem;font-size:.85rem}.mesh-metadata h3{font-size:.95rem;font-weight:500;margin:0 0 .5rem;color:var(--ink-60)}.mesh-metadata h4{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-40, #888);margin:.75rem 0 .25rem}.mesh-metadata section+section{border-top:1px solid var(--hairline);padding-top:.5rem}.mesh-metadata-table{width:100%;border-collapse:collapse}.mesh-metadata-table th{text-align:left;font-weight:500;color:var(--ink-60);padding:.15rem .5rem .15rem 0;width:4.5rem}.mesh-metadata-table td{padding:.15rem .5rem .15rem 0;font-variant-numeric:tabular-nums}.mesh-metadata-table td.muted{color:var(--ink-40, #888)}.mesh-metadata-warning{font-size:.8rem;color:var(--amber, #8a6d00);background:#fff8e1;padding:.4rem .6rem;border-radius:var(--radius);margin:0 0 .5rem}.pdf-viewer{width:100%}.pdf-viewer-toolbar{display:flex;gap:.75rem;align-items:center;font-size:.9rem;padding:.35rem .6rem;background:var(--off-paper);border-radius:var(--radius);margin-bottom:.5rem}.pdf-viewer-spacer{flex:1}.pdf-viewer-canvas-wrap{overflow:auto;background:#525659;border-radius:var(--radius);display:flex;justify-content:center;padding:.5rem}.pdf-viewer-canvas-wrap canvas{box-shadow:0 4px 16px #00000040;background:#fff}.image-viewer{background:#f5f5f5;border-radius:var(--radius);padding:.5rem;display:flex;justify-content:center}.image-viewer img{border-radius:calc(var(--radius) - 2px)}.download-only-viewer{background:var(--off-paper);border:1px dashed var(--hairline);border-radius:var(--radius);padding:1.5rem;text-align:center}.download-only-viewer .btn{margin-top:.5rem}.dxf-viewer{position:relative}.dxf-loading{position:absolute;top:.5rem;right:.75rem;background:#ffffffd9;padding:.15rem .5rem;border-radius:var(--radius)}.shell{display:grid;grid-template-columns:16rem 1fr;grid-template-rows:1fr;min-height:100vh;background:var(--paper)}.shell-topbar{display:none}.shell-sidebar{background:var(--paper);border-right:1px solid var(--hairline);display:flex;flex-direction:column;padding:1.25rem 1rem 1rem;height:100vh;height:100dvh;position:sticky;top:0;align-self:start;overflow-y:auto}.sidebar-brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.sidebar-brand-row .drawer-toggle{display:none}.workspace-switcher{position:relative;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:.65rem .75rem .75rem;margin-bottom:1.25rem}.workspace-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-60);font-weight:600;display:block;margin-bottom:.35rem}.workspace-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font:inherit;font-size:1rem;font-weight:600;background:var(--paper);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius);padding:.55rem .65rem;cursor:pointer;text-align:left}.workspace-trigger:hover{border-color:var(--ink-40)}.workspace-trigger-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-trigger-chevron{color:var(--ink-50);flex:none}.workspace-menu{position:absolute;left:.5rem;right:.5rem;top:calc(100% - .35rem);z-index:30;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000001f;padding:.3rem;max-height:60vh;overflow-y:auto}.workspace-menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font:inherit;font-size:.95rem;background:transparent;color:var(--ink);border:0;border-radius:var(--radius);padding:.5rem .6rem;cursor:pointer;text-align:left}.workspace-menu-item:hover{background:var(--off-paper)}.workspace-menu-item.is-active{font-weight:600}.workspace-menu-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-menu-check{color:var(--sage);flex:none}.workspace-menu-divider{border-top:1px solid var(--hairline);margin:.3rem .25rem}.workspace-menu-add{color:var(--steel);font-weight:500}.sidebar-nav{display:flex;flex-direction:column;gap:.15rem}.sidebar-nav:first-of-type{flex:1}.sidebar-link{display:block;padding:.6rem .75rem;font-size:.95rem;border-radius:var(--radius);text-decoration:none;color:var(--ink)}.sidebar-link:hover{background:var(--off-paper)}.sidebar-link.active{background:var(--brand-fill, var(--red));color:var(--brand-on-primary, var(--paper));font-weight:500}.sidebar-link.active:hover{background:color-mix(in srgb,var(--brand-fill, var(--red)) 88%,#000);color:var(--brand-on-primary, var(--paper))}.sidebar-foot{border-top:1px solid var(--hairline);padding-top:.85rem;margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.who-name{font-weight:500;font-size:.95rem}.who-meta{color:var(--ink-60);font-size:.8125rem;word-break:break-all}.shell-main{padding:2.5rem clamp(1.25rem,4vw,3.5rem);width:100%;max-width:1200px;margin:0 auto}.page{display:flex;flex-direction:column}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.page-header h1{font-size:1.75rem}.page-sub{color:var(--ink-60);margin:0 0 1.5rem;font-size:.9375rem}.empty-state{padding:3rem 1.5rem;text-align:center;background:var(--off-paper);border:1px dashed var(--hairline);border-radius:var(--radius-lg);margin-top:1.5rem}.empty-state p{margin:.25rem 0}.card{padding:1.25rem 1.5rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);margin-bottom:1.25rem}.card h2{font-size:1.1rem;margin-bottom:.75rem}.card-form label{display:block;margin-bottom:.85rem;font-size:.875rem;color:var(--ink-60)}.card-form input,.card-form textarea{display:block;width:100%;margin-top:.3rem;padding:.55rem .7rem;font:inherit;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper)}.card-actions{display:flex;gap:1rem;align-items:center}.cards-row{display:flex;gap:1rem;flex-wrap:wrap}.cards-row .card{flex:1 1 240px;display:flex;flex-direction:column;gap:.6rem}.cards-row .upload-button{width:100%}.data-table{width:100%;border-collapse:collapse;font-size:.9375rem}.data-table th,.data-table td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--hairline);vertical-align:middle}.data-table th{font-weight:500;color:var(--ink-60);font-size:.8125rem;text-transform:uppercase;letter-spacing:.02em}.data-table tr:hover td{background:var(--off-paper)}.qty-input{width:4.5rem;padding:.35rem .4rem}.staging-title{font-size:1.1rem;margin:1.5rem 0 .75rem;color:var(--ink-60);font-weight:500}.contact-notes{display:block;margin:1rem 0;color:var(--ink-60);font-size:.875rem}.contact-notes textarea{display:block;width:100%;margin-top:.3rem;padding:.55rem .7rem;font:inherit;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal-card{background:var(--paper);border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:520px;max-height:80vh;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.picker-list{list-style:none;padding:0;margin:0}.picker-list li{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--hairline)}.picker-list li:last-child{border-bottom:none}.drawer-toggle{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--ink);padding:.25rem .5rem}.shell-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:19}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.25rem}.project-card{display:flex;flex-direction:column;gap:.4rem;padding:1.1rem 1.2rem;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);text-decoration:none;color:var(--ink);position:relative;transition:border-color .12s ease}.project-card:hover{border-color:var(--ink)}.project-insignia{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-60)}.project-name{font-size:1.05rem;font-weight:500}.project-meta{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--ink-60);margin-top:auto}.project-archive{position:absolute;top:.6rem;right:.85rem;font-size:.78rem;opacity:0;transition:opacity .12s}.project-card:hover .project-archive{opacity:1}.project-detail-insignia{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem;letter-spacing:.04em;color:var(--ink-60);margin-bottom:.25rem}.tab-strip{display:flex;gap:.25rem;border-bottom:1px solid var(--hairline);margin:1.5rem 0 1.25rem;overflow-x:auto}.tab-button{background:none;border:none;border-bottom:2px solid transparent;padding:.7rem 1rem;font:inherit;color:var(--ink-60);cursor:pointer;white-space:nowrap}.tab-button:hover{color:var(--ink)}.tab-button.active{color:var(--ink);border-bottom-color:var(--red);font-weight:500}.tab-pane{display:flex;flex-direction:column}.page-header.tight{margin-bottom:.25rem}.page-header.tight h2{font-size:1.15rem;font-weight:500}.placeholder-thread{display:flex;flex-direction:column;gap:.75rem;max-width:480px;margin:1.5rem auto 0;text-align:left}.placeholder-message{display:flex;flex-direction:column;gap:.2rem}.placeholder-message.me{align-items:flex-end}.placeholder-meta{font-size:.7rem;color:var(--ink-40)}.placeholder-bubble{padding:.65rem .85rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);max-width:80%;font-size:.9rem}.placeholder-message.me .placeholder-bubble{background:var(--ink);color:var(--paper);border-color:var(--ink)}.account-card{margin-bottom:1rem}.account-card h2{font-size:1.05rem;margin-bottom:.75rem}.kv{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin-bottom:.85rem}.kv label{color:var(--ink-60);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.profile-fieldset{border:1px solid var(--hairline);border-radius:var(--radius);padding:.9rem 1rem 1rem;margin-top:.85rem}.profile-fieldset legend{padding:0 .4rem;color:var(--ink-60);font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em}.profile-fieldset label{display:block;margin-bottom:.55rem;font-size:.85rem;color:var(--ink-60)}.profile-fieldset input{display:block;width:100%;margin-top:.25rem;padding:.5rem .6rem;font:inherit;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.form-actions{display:flex;gap:1rem;align-items:center;margin-top:.85rem;flex-wrap:wrap}@media (max-width: 600px){.grid-3,.grid-2{grid-template-columns:1fr}}.sidebar-nav-foot{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--hairline)}@media (max-width: 899px){.shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.shell-topbar{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--hairline);background:var(--paper);position:sticky;top:0;z-index:18}.topbar-spacer{flex:1}.shell-sidebar{position:fixed;inset:0 auto 0 0;width:16rem;z-index:20;transform:translate(-100%);transition:transform .18s ease}.shell-drawer-open .shell-sidebar{transform:translate(0)}.shell-drawer-open .shell-overlay{display:block}.sidebar-brand-row .drawer-toggle{display:inline-flex}.shell-main{padding:1.25rem 1rem 2rem}}.parts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:1rem}.part-tile{display:flex;flex-direction:column;gap:.4rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:.75rem}.part-tile-body{display:flex;flex-direction:column;gap:.5rem;background:transparent;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.part-tile-body:hover .part-tile-name{text-decoration:underline}.part-thumb{aspect-ratio:1 / 1;border-radius:var(--radius);border:1px solid var(--hairline);background:#f5f5f4;overflow:hidden;display:flex;align-items:center;justify-content:center}.part-thumb img{width:100%;height:100%;object-fit:contain}.part-thumb-loading{animation:thumb-pulse 1.4s ease-in-out infinite}@keyframes thumb-pulse{0%,to{opacity:1}50%{opacity:.55}}.part-thumb-icon{flex-direction:column;gap:.25rem}.part-thumb-ext{font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--ink-40);text-transform:lowercase}.part-thumb-note{font-size:.72rem;color:var(--ink-50)}.part-tile-title-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.part-tile-name{font-weight:500;font-size:.9rem;word-break:break-word;min-width:0}.part-tile-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem}.part-tile-desc{margin:0;font-size:.82rem;color:var(--ink-70);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.part-tile-order{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.part-tile-order input{width:4rem;font:inherit;padding:.3rem .4rem;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);color:var(--ink)}.part-tile-price{font-weight:600;font-size:.9rem;margin-right:auto}.part-tile-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:auto}.part-file-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.btn-sm{padding:.35rem .7rem;font-size:.85rem}.modal-foot{margin-top:1rem;display:flex;justify-content:flex-end}.modal-card-wide{max-width:1000px}.order-flow{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;margin:0 0 1.25rem;padding:1rem .5rem .85rem;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--off-paper)}.order-flow-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;padding:0 .25rem;min-width:0}.order-flow-step:before{content:"";position:absolute;top:.9rem;left:-50%;width:100%;height:2px;background:var(--hairline)}.order-flow-step:first-child:before{display:none}.order-flow-step.is-done:before,.order-flow-step.is-current:before{background:var(--sage)}.order-flow-node{width:1.8rem;height:1.8rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;background:var(--paper);border:2px solid var(--hairline);color:var(--ink-50);position:relative;z-index:1}.order-flow-step.is-done .order-flow-node{background:var(--sage);border-color:var(--sage);color:var(--paper)}.order-flow-step.is-current .order-flow-node{border-color:var(--sage);color:var(--sage)}.order-flow-label{font-size:.8rem;color:var(--ink-60)}.order-flow-step.is-done .order-flow-label,.order-flow-step.is-current .order-flow-label{color:var(--ink);font-weight:500}.order-flow-sub{font-size:.72rem;color:var(--ink-50)}.order-flow-halted{margin:0 0 1.25rem;padding:.75rem 1rem;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--off-paper);color:var(--ink-60);font-size:.9rem}@media (max-width: 599px){.order-flow-label{font-size:.7rem}.order-flow-sub{display:none}}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .55rem;font-size:.78rem;font-weight:500;border-radius:999px;border:1px solid;white-space:nowrap;letter-spacing:.01em}.pill:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor;opacity:.85}.pill-active,.pill-ready,.pill-verified{color:var(--sage);background:var(--sage-tint);border-color:var(--sage)}.pill-requested,.pill-pending,.pill-rendering{color:var(--amber);background:var(--amber-tint);border-color:var(--amber)}.pill-archived,.pill-closed,.pill-neutral{color:var(--ink-70);background:var(--off-paper);border-color:var(--hairline)}.wordmark-image{display:inline-block;height:1.4rem;width:auto;vertical-align:middle}.wordmark-tagline{color:var(--ink-50);font-size:.8125rem;font-weight:400;margin-left:.4rem}.onboarding-shell{min-height:100vh;background:var(--paper);display:flex;justify-content:center;align-items:flex-start;padding:3rem 1.25rem 4rem}.onboarding-shell .onboarding-card{width:100%;max-width:640px;display:flex;flex-direction:column;gap:1.25rem}.onboarding-step-meta{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-50);letter-spacing:.04em;text-transform:uppercase}.onboarding-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem}.onboarding-toolbar .right{display:flex;gap:.75rem;align-items:center}.same-as-shipping{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 .75rem;font-size:.9rem;color:var(--ink-70)}.same-as-shipping input{width:auto}.billing-summary{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0 1.25rem}.billing-summary-card{flex:1 1 200px;padding:.9rem 1.1rem;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);display:flex;flex-direction:column;gap:.25rem}.billing-summary-warn{border-left:3px solid var(--amber)}.billing-summary-ok{border-left:3px solid var(--sage)}.billing-summary-label{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-50)}.billing-summary-amount{font-size:1.5rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.billing-status{display:inline-block;padding:.15rem .55rem;font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase;border-radius:999px;border:1px solid var(--hairline);background:var(--off-paper);color:var(--ink-70)}.billing-status-paid{background:var(--sage-tint);border-color:var(--sage);color:var(--sage)}.billing-status-overdue{background:var(--amber-tint);border-color:var(--amber);color:var(--amber)}.billing-status-sent{background:var(--off-paper);border-color:var(--ink-40);color:var(--ink-70)}.billing-status-draft,.billing-status-void{color:var(--ink-50)}.billing-notes{max-width:22rem;color:var(--ink-70);font-size:.875rem}.home-page{display:flex;flex-direction:column;gap:1.5rem}.home-greeting h1{font-size:1.6rem;margin:0 0 .3rem}.home-greeting p{margin:0}.home-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.home-stat-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.home-stat-card:hover{border-color:var(--ink-40, #999);transform:translateY(-1px)}.home-stat-card.home-stat-static{cursor:default}.home-stat-card.home-stat-static:hover{border-color:var(--hairline);transform:none}.home-stat-label{font-size:.85rem;color:var(--ink-60);text-transform:uppercase;letter-spacing:.04em}.home-stat-value{font-size:1.6rem;font-weight:600}.home-stat-value.warn{color:var(--amber, #b35900)}.home-stat-hint{font-size:.8rem}.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.home-section{display:flex;flex-direction:column;gap:.75rem}.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.home-section-head h2{margin:0;font-size:1rem;font-weight:600}.home-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}.home-list-row{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.5rem;border-bottom:1px dashed var(--hairline)}.home-list-row:last-child{border-bottom:0;padding-bottom:0}.home-task-kind{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.1rem .4rem;border-radius:var(--radius);background:var(--off-paper);color:var(--ink-70);margin-right:.4rem}.home-task-et{background:var(--sage-tint, #dde9d6);color:var(--sage, #4a6a3a)}.home-task-mt{background:var(--amber-tint, #f4e7cf);color:var(--amber, #8a5800)}.home-task-title{font-weight:500;color:inherit;text-decoration:none}.home-task-title:hover{text-decoration:underline}.home-task-meta{font-size:.82rem}.home-file-name{font-weight:500}.home-actions{display:flex;flex-direction:column;gap:.6rem}.home-action-link{display:flex;flex-direction:column;gap:.15rem;padding:.65rem .85rem;background:var(--off-paper);border-radius:var(--radius);text-decoration:none;color:inherit;border:1px solid transparent;transition:border-color .15s}.home-action-link:hover{border-color:var(--hairline)}.home-action-link strong{font-weight:500}.home-action-link span{font-size:.85rem}[data-theme=dark]{--ink: #e8e6e2;--ink-70: #b8b6b1;--ink-50: #8d8c87;--ink-30: #4a4945;--ink-60: var(--ink-70);--ink-40: var(--ink-50);--paper: #18181b;--off-paper: #232327;--hairline: #34343a;--red: var(--brand-primary, #f87171);--red-hover: color-mix(in srgb, var(--red) 80%, #fff);--red-tint: color-mix(in srgb, var(--red) 14%, transparent);--danger: #f87171;--danger-tint: rgba(248, 113, 113, .16);--sage: #4ade80;--sage-tint: rgba(74, 222, 128, .14);--amber: #fbbf24;--amber-tint: rgba(251, 191, 36, .16)}[data-theme=dark] body{color-scheme:dark}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:var(--off-paper);color:var(--ink);border-color:var(--hairline)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--ink-50)}.theme-toggle{display:flex;align-items:center;gap:.5rem;width:100%;background:transparent;border:1px solid var(--hairline);border-radius:var(--radius, .4rem);padding:.45rem .75rem;font:inherit;font-size:.85rem;color:var(--ink-70);cursor:pointer;margin-top:.4rem;transition:border-color .15s,color .15s,background .15s}.theme-toggle:hover{border-color:var(--ink-50);color:var(--ink);background:var(--off-paper)}.theme-toggle-icon{font-size:1rem;line-height:1}.configurator-layout{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:1.5rem;align-items:start}@media (max-width: 860px){.configurator-layout{grid-template-columns:1fr}}.configurator-main{min-width:0}.process-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.process-card{display:flex;flex-direction:column;gap:.25rem;text-align:left;flex:1 1 12rem;padding:.85rem 1rem;background:var(--off-paper);border:1px solid var(--hairline);border-radius:var(--radius-lg);cursor:pointer;font:inherit;transition:border-color .15s,background .15s}.process-card:hover{border-color:var(--ink-50)}.process-card-active{border-color:var(--sage);background:var(--sage-tint)}.process-card-name{font-weight:500}.process-card-desc{font-size:.8125rem}.configurator-form .field,.po-form .field{display:block;margin-bottom:.85rem}.field-label{display:block;margin-bottom:.3rem;font-size:.8125rem;color:var(--ink-60)}.configurator-form select,.configurator-form input[type=text],.configurator-form input[type=number],.po-form input{display:block;width:100%;max-width:22rem;padding:.5rem .7rem;font:inherit;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper)}.configurator-form .qty-input{width:6rem}.field-check{display:flex;align-items:center;gap:.5rem}.field-check .field-label{margin-bottom:0}.config-files{border:1px solid var(--hairline);border-radius:var(--radius);padding:.75rem;background:var(--paper)}.config-file-list{list-style:none;padding:0;margin:0 0 .5rem}.config-file-list li{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--hairline);font-size:.9rem}.config-file-list li:last-child{border-bottom:none}.config-file-actions{display:flex;gap:.75rem;flex-wrap:wrap}.config-file-actions .upload-button{width:auto}.cart-summary{position:sticky;top:1rem}.cart-item-list{list-style:none;padding:0;margin:0 0 1rem}.cart-item{padding:.75rem 0;border-bottom:1px solid var(--hairline)}.cart-item:last-child{border-bottom:none}.cart-item-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.cart-item-name{font-weight:500}.cart-item-meta{font-size:.8125rem;margin-top:.15rem}.cart-item-qty{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;font-size:.8125rem;color:var(--ink-60)}.cart-checkout{width:100%}.cart-note{font-size:.8125rem;margin-top:.6rem}.clickable-row{cursor:pointer}.detail-grid{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.25rem;margin:0 0 .75rem}.detail-grid dt{color:var(--ink-60);font-size:.875rem}.detail-grid dd{margin:0;font-size:.9375rem}.order-actions{flex-wrap:wrap;margin-top:1rem}.po-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--hairline)}.order-options-cell{max-width:22rem;color:var(--ink-70);font-size:.875rem}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;margin-left:.4rem;padding:0 .4rem;border-radius:999px;background:var(--brand-fill, var(--red));color:var(--brand-on-primary, #fff);font-size:.72rem;font-weight:600;line-height:1}.order-type-engineering{color:var(--sage);border-color:var(--sage)}.order-type-manufacturing{color:var(--amber);border-color:var(--amber)}.order-choice-grid{display:grid;gap:.75rem;margin-top:.5rem}.order-choice{display:flex;flex-direction:column;gap:.3rem;text-align:left;padding:1rem;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--paper);cursor:pointer;transition:border-color .12s,background .12s}.order-choice:hover{border-color:var(--red);background:var(--off-paper)}.order-choice-title{font-weight:600}.order-choice-sub{font-size:.875rem}.qty-stepper{display:inline-flex;align-items:center;gap:.5rem}.qty-stepper .btn-sm{padding:.1rem .5rem;line-height:1}.qty-stepper>span{min-width:1.5rem;text-align:center}.cart-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 1.5rem;padding-top:1rem;border-top:1px solid var(--hairline)}.cart-total{display:flex;flex-direction:column;gap:.15rem}.cart-total strong{font-size:1.15rem}.cart-files{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0}.cart-file-list{list-style:none;margin:0;padding:0}.cart-file-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--hairline);font-size:.9rem}.powered-by{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--hairline);font-size:.78rem;color:var(--ink-50)}.powered-by img{height:.95rem;width:auto;opacity:.85}.powered-by strong{font-weight:600;color:var(--ink-60)}.app-powered-by{margin-top:2.5rem;padding:1rem 0 .5rem;border-top:1px solid var(--hairline);text-align:center;font-size:.72rem;color:var(--ink-50)}.app-powered-by strong{font-weight:600;color:var(--ink-60)}.shell{border-top:3px solid var(--red)}html{scroll-padding-top:4.5rem}.topbar-home{text-decoration:none;display:inline-flex;align-items:center;min-width:0}.topbar-home:hover{color:inherit}.topbar-home .brand{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-loading{display:inline-block;min-width:6rem;height:1.4rem}.workspace-trigger-text{display:flex;flex-direction:column;gap:.05rem;min-width:0}.workspace-trigger-sub{font-size:.7rem;font-weight:400;color:var(--ink-50);text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-menu-item.is-active{box-shadow:inset 3px 0 0 var(--red)}.sidebar-profile{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .6rem;border-radius:var(--radius);text-decoration:none;color:var(--ink)}.sidebar-profile:hover{background:var(--off-paper);color:var(--ink)}.sidebar-profile.active{background:var(--off-paper);box-shadow:inset 3px 0 0 var(--red)}.sidebar-signout{align-self:flex-start}.home-welcome{text-align:left}.home-welcome h1{font-size:1.6rem;margin-bottom:.5rem}.home-welcome-actions{margin-top:1.25rem;flex-wrap:wrap}.home-stat-skeleton{height:5.25rem;background:var(--off-paper);border:1px solid var(--hairline);animation:thumb-pulse 1.4s ease-in-out infinite}.home-task-title{display:inline-block}.empty-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.25rem}.list-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:.5rem 0 1rem}.filter-chips{display:flex;flex-wrap:wrap;gap:.4rem}.filter-chip{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.85rem;padding:.35rem .7rem;border:1px solid var(--hairline);border-radius:999px;background:var(--paper);color:var(--ink-70);cursor:pointer}.filter-chip:hover{border-color:var(--ink-40);color:var(--ink)}.filter-chip.active{background:var(--brand-fill, var(--red));border-color:var(--brand-fill, var(--red));color:var(--brand-on-primary, #fff)}.filter-chip-n{font-size:.72rem;font-variant-numeric:tabular-nums;opacity:.8}.list-search{font:inherit;font-size:.9rem;padding:.45rem .7rem;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);color:var(--ink);min-width:12rem}.list-search:focus{outline:none;border-color:var(--ink)}.action-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.25rem;padding:.85rem 1.1rem;border:1px solid var(--sage);border-left:4px solid var(--sage);border-radius:var(--radius-lg);background:var(--sage-tint)}.action-banner-text{display:flex;flex-direction:column;gap:.15rem}.action-banner-actions{display:flex;gap:.6rem;flex-wrap:wrap}.order-choice-engineering{border-left:3px solid var(--sage)}.order-choice-manufacturing{border-left:3px solid var(--amber)}.empty-state h2{font-size:1.2rem;margin-bottom:.4rem}.part-tile-linetotal{font-size:.9rem;margin-top:.1rem}.part-tile-breaks{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.1rem}.price-break{font-size:.72rem;padding:.05rem .4rem;border-radius:var(--radius);background:var(--off-paper);color:var(--ink-60);font-variant-numeric:tabular-nums}.price-break.active{background:var(--sage-tint);color:var(--sage);font-weight:600}.file-state{font-size:.82rem;display:inline-flex;align-items:center;gap:.25rem}.file-state-wait{color:var(--amber)}.file-state-bad{color:var(--danger)}.file-state-bad a{color:inherit}.mesh-metadata-note{margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid var(--hairline);font-size:.72rem;color:var(--ink-50)}.auth-support{text-align:center;margin-top:1rem;font-size:.85rem}.onboarding-progress{display:flex;gap:.5rem;list-style:none;padding:0;margin:0}.onboarding-dot{width:2.25rem;height:.35rem;border-radius:999px;background:var(--hairline);transition:background-color .15s}.onboarding-dot.active{background:var(--red)}.field-optional{color:var(--ink-50);font-weight:400;font-size:.85em}
