:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:light;--bg-primary: #f6f5f2;--bg-secondary: #fff;--surface-muted: #f0f0ec;--surface-hover: #faf9f6;--text-primary: #222c34;--text-secondary: #626e76;--border-color: #e1e4e3;--accent-color: #a9431b;--accent-hover: #893314;--accent-soft: #fbece3;--accent-solid: #a9431b;--input-bg: #fff;--input-border: #d6dcda;--shadow: 0 2px 4px #162b3603, 0 8px 24px #162b3604;--danger: #b52d37;--success: #167455}.dark-mode{color-scheme:dark;--bg-primary: #151b20;--bg-secondary: #1d262d;--surface-muted: #242f37;--surface-hover: #263039;--text-primary: #eef1f1;--text-secondary: #a6b1b8;--border-color: #34414a;--accent-color: #f2ad86;--accent-hover: #ffc7a5;--accent-soft: #382c27;--input-bg: #1d262d;--input-border: #43515b;--shadow: 0 4px 16px #00000012;--danger: #ffa1a6;--success: #80d8b5}*{box-sizing:border-box}body{margin:0;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--accent-color);text-underline-offset:3px}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-soft);color:var(--text-primary)}#root{min-height:100vh}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.app-shell{max-width:1680px;margin:auto;padding:0 clamp(1rem,3vw,3rem)}.app-header,.brand,.header-actions,.tabs,.page-heading,.button-row,.order-heading,.settings-row,.inline-form{display:flex;align-items:center}.app-header{min-height:96px;justify-content:space-between;gap:1rem}.brand{gap:.8rem}.brand-mark{width:40px;height:40px;flex-shrink:0;color:var(--accent-solid)}.brand h1{font-size:20px;letter-spacing:-.04em;font-weight:750;line-height:1.3}.brand p{font-size:11px;color:var(--text-secondary);margin-top:.15rem}.brand p span{margin:0 .3rem;opacity:.5}.header-actions{gap:.75rem}.user-chip{display:flex;align-items:center;gap:.6rem;font-size:12px}.user-initials{display:grid;place-items:center;width:32px;height:32px;background:var(--surface-muted);border:1px solid var(--border-color);border-radius:50%;font-size:10px;font-weight:700}.tabs{gap:.4rem;padding:.65rem 0;border-block:1px solid var(--border-color)}.tabs button{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border:0;border-radius:7px;color:var(--text-secondary);background:transparent;font-size:13px;font-weight:600}.tabs svg,.theme-toggle svg{width:18px;height:18px}.tabs button:hover{background:var(--surface-muted);color:var(--text-primary)}.tabs button.active{color:var(--accent-color);background:var(--accent-soft)}.page-content{padding-top:2rem;min-height:65vh;animation:page-enter .22s ease-out}.page-content:focus{outline:none}.page-heading{justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-heading h2{font-size:32px;letter-spacing:-.045em;line-height:1.25;font-weight:700}.page-heading p{margin-top:.4rem;color:var(--text-secondary);font-size:13px}.eyebrow{display:block;margin-bottom:.35rem;color:var(--accent-color);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.app-footer{display:flex;justify-content:space-between;padding:1.5rem 0;margin-top:1rem;color:var(--text-secondary);font-size:11px}.skip-link{position:fixed;top:-100px;left:1rem;z-index:5;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px}.skip-link:focus{top:1rem}button{transition:background-color .15s,border-color .15s,color .15s}button:active:not(:disabled){transform:translateY(1px)}.primary,.secondary,.danger,.quiet-button,.theme-toggle{min-height:40px;padding:.5rem .9rem;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600}.primary{background:var(--accent-solid);color:#fff}.primary:hover:not(:disabled){background:#893314}.secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--input-border)}.secondary:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-secondary)}.quiet-button,.theme-toggle{color:var(--text-secondary);background:transparent}.quiet-button:hover,.theme-toggle:hover{background:var(--surface-muted);color:var(--text-primary)}.theme-toggle{display:grid;place-items:center;padding:.5rem;width:40px}.text-button,.text-danger{background:none;border:0;padding:.4rem .2rem;font-size:12px}.text-button{color:var(--accent-color)}.text-button:hover,.text-danger:hover{text-decoration:underline;text-underline-offset:3px}.danger,.text-danger{color:var(--danger)}.danger{border-color:var(--danger);background:transparent}input,textarea,select{min-width:0;min-height:40px;padding:.5rem .65rem;border:1px solid var(--input-border);border-radius:7px;background:var(--input-bg);color:var(--text-primary);font-size:13px}input::placeholder,textarea::placeholder{color:var(--text-secondary);opacity:1}input[type=checkbox]{min-height:18px;width:18px;accent-color:var(--accent-solid)}input:disabled{background:var(--surface-muted)}:where(input,textarea,select,button,a,summary,[tabindex]):focus-visible{outline:2px solid var(--accent-color);outline-offset:3px}.filter-field,.form-grid label{display:flex;flex-direction:column;gap:.4rem;min-width:0;color:var(--text-secondary);font-size:11px;font-weight:600}.filter-field input,.filter-field select,.form-grid input,.form-grid select,.form-grid textarea{width:100%;font-weight:400}.filter-toolbar,.kanban-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:.8rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px}.filter-toolbar>.filter-field,.kanban-toolbar>.filter-field{flex:1 1 140px}.filter-toolbar>.filter-search,.kanban-toolbar>.kanban-search{flex:2 1 230px}.kanban-toolbar{margin:1.5rem 0 1rem}.kanban-toolbar>.filter-field:first-child{max-width:280px}.result-count{color:var(--text-secondary);font-size:12px;padding-bottom:.65rem;white-space:nowrap}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:46px;color:var(--text-secondary);font-size:12px}.results-bar strong{color:var(--text-primary)}.button-row{gap:.5rem;flex-wrap:wrap}.panel{margin:1rem 0;padding:1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow)}.panel h3{font-size:16px;letter-spacing:-.02em}.panel>p,.form-grid p{color:var(--text-secondary);margin-top:.35rem;font-size:13px}.form-grid,.settings-grid{display:grid;gap:1.25rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.form-grid .wide{grid-column:1 / -1;min-width:0}.form-grid textarea{min-height:80px;resize:vertical}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid .panel{margin-bottom:0}.settings-row{justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border-color);padding:.85rem 0}.settings-row:last-of-type{border-bottom:0}.settings-row>span:not(.badge){display:flex;flex-direction:column}.settings-row small{color:var(--text-secondary);font-size:12px}.section-gap{margin-top:1.5rem}.inline-form{align-items:end;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.inline-form>input,.inline-form>.filter-field{flex:1 1 180px}.inline-form>.season-field{flex:0 1 110px}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1.5rem}.summary-card{display:flex;flex-direction:column;gap:.4rem;padding:1.15rem 1.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px}.summary-label{color:var(--text-secondary);font-size:12px;font-weight:500}.summary-value{font-size:29px;letter-spacing:-.04em;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.summary-value small{font-size:14px;font-weight:400;letter-spacing:-.01em}.summary-card small{color:var(--text-secondary)}.summary-card>small{font-size:11px}progress{appearance:none;display:block;height:5px;border:0;border-radius:10px;background:var(--surface-muted);color:var(--success);overflow:hidden}progress::-webkit-progress-bar{background:var(--surface-muted);border-radius:10px}progress::-webkit-progress-value{background:var(--success);border-radius:10px;transition:width .2s}progress::-moz-progress-bar{background:var(--success);border-radius:10px}.summary-card progress{width:100%;margin:auto 0 .35rem}.table-scroll{overflow:auto;max-height:65vh;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary)}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}th,td{border-bottom:1px solid var(--border-color);padding:.75rem .85rem;text-align:left;white-space:nowrap}th{position:sticky;top:0;z-index:1;background:var(--surface-muted);color:var(--text-secondary);font-size:10px;font-weight:600;letter-spacing:.045em;text-transform:uppercase}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-hover)}td.button-row{display:table-cell}td.button-row>button+button{margin-left:.4rem}td .secondary{min-height:32px;padding:.3rem .6rem;font-size:11px}.cell-primary{display:block;font-weight:600}.cell-secondary{display:block;color:var(--text-secondary);font-size:11px;margin-top:.2rem;font-weight:400}.part-name-cell{min-width:155px;max-width:260px;white-space:normal;overflow-wrap:anywhere}.part-with-preview{display:flex;align-items:center;gap:.65rem;min-width:0}.part-with-preview>:last-child{min-width:0}.part-thumbnail{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid var(--border-color);border-radius:7px;overflow:hidden;background:#fff}.part-thumbnail img{display:block;width:100%;height:100%;object-fit:contain}button.part-thumbnail:hover{border-color:var(--accent-color)}.part-thumbnail.is-placeholder{background:var(--surface-muted);color:var(--text-secondary)}.part-thumbnail svg{width:22px;height:22px}.part-preview-dialog{width:min(440px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;padding:1.25rem;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow)}.part-preview-dialog[open]{animation:page-enter .16s ease-out}.part-preview-dialog::backdrop{background:#10182099}.part-preview-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.part-preview-heading h2{font-size:18px;overflow-wrap:anywhere}.part-preview-image{display:block;width:min(100%,320px);height:auto;margin:1rem auto;border-radius:8px;background:#fff}.part-preview-dialog p{color:var(--text-secondary);font-size:12px;margin:1rem 0}.part-preview-dialog a{font-size:13px}.progress-controls{display:flex;align-items:center;gap:.5rem;font-variant-numeric:tabular-nums}.progress-controls button{display:grid;place-items:center;width:28px;min-width:28px;height:30px;background:var(--bg-secondary);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:16px}.progress-controls button:hover:not(:disabled){border-color:var(--accent-color);color:var(--accent-color)}.order-heading{justify-content:space-between;gap:1rem}.order-heading p{color:var(--text-secondary);margin-top:.35rem;font-size:12px}.order-card .order-meta{margin:.65rem 0 1rem;font-size:11px}.order-card .order-notes{background:var(--surface-muted);border-radius:6px;padding:.7rem .9rem;margin:1rem 0}.order-actions{margin:1rem 0}.order-delivery{display:flex;align-items:center;gap:1rem;color:var(--text-secondary);font-size:11px;margin:1rem 0}.order-delivery progress{flex:1;max-width:240px}.order-selection-table input[type=number]{max-width:110px}.panel>.table-scroll{margin-top:1rem}.onshape-fields{border:0;padding:0;margin:0;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.onshape-source-details{display:flex;flex:1;flex-direction:column;gap:.25rem;min-width:0;overflow-wrap:anywhere}.onshape-source-details small{color:var(--text-secondary)}.onshape-row-input{margin-top:.6rem}.onshape-review-table td{vertical-align:top}.onshape-review-table td:nth-child(3){min-width:240px}.onshape-review-details{min-width:220px;max-width:360px;white-space:normal;overflow-wrap:anywhere}.onshape-warning{color:var(--danger)}.onshape-review-footer{justify-content:space-between;align-items:center;font-size:12px}.empty,.empty-state{color:var(--text-secondary);padding:3rem 1rem;text-align:center}.empty-state h2,.empty-state h3{color:var(--text-primary);font-size:18px;margin-bottom:.4rem}.empty-state p{font-size:13px}.empty-state button{margin-top:1rem}.error,.success{padding:.85rem 1rem;border:1px solid currentColor;border-radius:8px;font-size:13px;margin:1rem 0}.error{color:var(--danger)}.success{color:var(--success)}.badge{display:inline-block;align-self:center;width:fit-content;border-radius:5px;font-size:9px;font-weight:650;letter-spacing:.025em;padding:.2rem .4rem;white-space:nowrap}.badge.make,.badge.priority-p2{background:#eaf1f8;color:#32597f}.badge.buy,.badge.order-ordered,.badge.priority-p1{background:#fff1db;color:#835820}.badge.order-draft,.badge.priority-p3{background:#edf0f2;color:#566571}.badge.order-received{background:#e1f3ea;color:#246449}.badge.priority-p0{background:#fbe8e8;color:#a43138}.dark-mode .badge.make,.dark-mode .badge.priority-p2{background:#273d51;color:#a6c8ed}.dark-mode .badge.buy,.dark-mode .badge.order-ordered,.dark-mode .badge.priority-p1{background:#443928;color:#ecc18c}.dark-mode .badge.order-draft,.dark-mode .badge.priority-p3{background:#34414b;color:#c2ccd3}.dark-mode .badge.order-received{background:#214637;color:#a0dbbe}.dark-mode .badge.priority-p0{background:#4d3035;color:#ffadb1}.status-completed{color:var(--success)}.status-needs-revision{color:var(--danger)}.status-in-progress,.status-hand-work,.status-new-parts,.status-review{color:var(--text-secondary)}.kanban-guidance{color:var(--text-secondary);font-size:11px;margin-bottom:1rem}.kanban-scroll{overflow-x:auto;padding-bottom:.75rem;scroll-snap-type:x proximity}.kanban-board{display:grid;gap:.75rem;grid-template-columns:repeat(6,minmax(12rem,1fr));min-width:75rem}.kanban-column{background:var(--surface-muted);border:1px solid var(--border-color);border-radius:10px;padding:.65rem;scroll-snap-align:start}.kanban-column h3{display:flex;align-items:center;gap:.4rem;font-size:12px;font-weight:600;margin:.35rem .1rem .85rem}.kanban-column h3:before{content:"";width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--lane-color)}.kanban-column h3 span{margin-left:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:5px;color:var(--text-secondary);font-size:10px;padding:0 .35rem}.kanban-column-body{display:flex;flex-direction:column;gap:.65rem;max-height:60vh;min-height:250px;overflow-y:auto}.kanban-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.8rem;box-shadow:var(--shadow)}.kanban-card[draggable=true]{cursor:grab}.kanban-card:hover{border-color:var(--input-border)}.kanban-card.is-dragging{opacity:.45}.kanban-card-heading,.kanban-card-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem}.kanban-card-heading strong{font-size:12px;line-height:1.45;overflow-wrap:anywhere}.kanban-card small,.kanban-card p{color:var(--text-secondary);display:block;font-size:10px;margin-top:.35rem}.kanban-progress{margin:.8rem 0}.kanban-progress progress{width:100%;height:4px;margin-top:.4rem}.kanban-details{border-top:1px solid var(--border-color);padding-top:.6rem;cursor:default}.kanban-details summary{color:var(--text-secondary);font-size:10px;cursor:pointer}.kanban-details[open] summary{color:var(--accent-color)}.kanban-card-metadata{font-size:10px;margin:.75rem 0}.kanban-card-metadata div{margin:.5rem 0}.kanban-card-metadata dt{color:var(--text-secondary)}.kanban-card-metadata dd{margin:.1rem 0 0;overflow-wrap:anywhere}.kanban-card select{min-height:36px;font-size:11px}.kanban-card-actions{margin-top:.6rem;flex-wrap:wrap;align-items:center;font-size:10px}.kanban-card-actions .text-button{font-size:10px}.kanban-empty{color:var(--text-secondary);font-size:11px;text-align:center;padding:1rem .25rem}.state-new-parts{--lane-color: #7d8d97}.state-review{--lane-color: #648dbf}.state-hand-work{--lane-color: #9b83c2}.state-in-progress{--lane-color: #c69043}.state-completed{--lane-color: #499574}.state-needs-revision{--lane-color: #c5686b}.centered{display:flex;flex-direction:column;gap:1rem;min-height:100vh;align-items:center;justify-content:center;color:var(--text-secondary)}.login-shell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1rem;background:radial-gradient(ellipse at 50% 35%,var(--accent-soft),transparent 65%)}.login-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:2.25rem;font-size:19px;font-weight:700;letter-spacing:-.04em}.login-card{max-width:490px;width:100%;padding:2.5rem;border:1px solid var(--border-color);border-radius:18px;background:var(--bg-secondary);box-shadow:var(--shadow);animation:page-enter .3s ease-out}.login-card h1{margin:1rem 0;font-size:44px;letter-spacing:-.055em;line-height:1.12}.login-description{color:var(--text-secondary);line-height:1.8;font-size:14px}.login-button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:2rem;min-height:46px}.login-note,.login-footer{color:var(--text-secondary);text-align:center;font-size:11px}.login-note{margin-top:1rem}.login-footer{margin-top:2rem}.loading-indicator{display:inline-block;width:24px;height:24px;margin-bottom:1rem;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes page-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1000px){.settings-grid{grid-template-columns:minmax(0,1fr)}.summary-card{padding:1rem}.user-name{display:none}}@media(max-width:700px){.app-header{min-height:80px}.brand{gap:.5rem}.brand h1{font-size:18px}.brand p{font-size:9px}.brand-mark{width:34px;height:34px}.header-actions{gap:.15rem}input,select,textarea,.kanban-card select{font-size:16px}.user-chip{display:none}.quiet-button{padding:.5rem;font-size:11px}.tabs{gap:.2rem;justify-content:space-between}.tabs button{padding:.6rem .65rem;font-size:12px;gap:.35rem}.tabs svg{width:15px;height:15px}.page-content{padding-top:1.5rem}.page-heading{align-items:flex-start}.page-heading h2{font-size:28px}.page-heading p{font-size:12px;max-width:250px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.summary-value{font-size:26px}.summary-value small{font-size:12px}.filter-toolbar,.kanban-toolbar{gap:.75rem;padding:.85rem}.filter-toolbar>.filter-field{flex-basis:125px}.filter-toolbar>.filter-search,.kanban-toolbar>.kanban-search{flex-basis:100%}.kanban-toolbar>.filter-field:first-child{max-width:none}.panel{padding:1rem}.order-heading{align-items:flex-start}.order-heading h3{font-size:15px}.order-delivery{flex-wrap:wrap;gap:.5rem}.order-delivery progress{min-width:100px}.parts-table thead,.order-lines-table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.parts-table,.parts-table tbody,.parts-table tr,.order-lines-table,.order-lines-table tbody,.order-lines-table tr{display:block}.parts-table tr,.order-lines-table tr{padding:.75rem;border-bottom:1px solid var(--border-color)}.parts-table tr:last-child,.order-lines-table tr:last-child{border:0}.parts-table td,.order-lines-table td{border:0;display:grid;gap:.75rem;grid-template-columns:80px minmax(0,1fr);padding:.4rem .2rem;white-space:normal;max-width:none;min-width:0}.parts-table td:before,.order-lines-table td:before{color:var(--text-secondary);content:attr(data-label);font-size:10px;font-weight:500;padding-top:.15rem}.parts-table td.button-row{display:flex;justify-content:flex-end;padding-top:.75rem}.parts-table td.button-row:before{margin-right:auto}.parts-table td.button-row>button+button{margin-left:0}.parts-table td a,.order-lines-table td a{overflow-wrap:anywhere}.progress-controls{flex-wrap:wrap}.progress-controls button{min-height:36px;min-width:32px}.kanban-board{grid-template-columns:repeat(6,calc(100vw - 2rem));min-width:max-content}.kanban-card-heading strong{font-size:14px}.kanban-card small,.kanban-card p,.kanban-details summary,.kanban-card-metadata,.kanban-card-actions,.kanban-card-actions .text-button{font-size:12px}.kanban-card select{min-height:40px}.app-footer span:last-child{display:none}.login-card{padding:2rem 1.5rem}.login-card h1{font-size:40px}}@media(max-width:370px){.tabs svg{display:none}.tabs button{padding-inline:.6rem}.brand p{display:none}.brand h1{font-size:16px}}
