:root{--paper: #efebe1;--surface: #fcfaf5;--surface-input: #fffdf9;--surface-sunken: #f4f0e7;--nav: #17130f;--ink: #1b1815;--ink-soft: #5c5347;--label: #8a8275;--faint: #a79e8e;--placeholder: #bbb2a2;--accent: #7c2b3b;--accent-hover: #611f2d;--accent-underline: #8e3546;--line: #e4ddd0;--line-soft: #efe9de;--line-mid: #ddd5c6;--input-border: #e1dacc;--btn-secondary-border: #c7bead;--nav-text: #b7af9f;--nav-text-active: #f4f1e9;--success: #3f6b4f;--success-bg: #e7f0e7;--success-border: #cbdec9;--amber: #b07b2e;--amber-bg: #f6eedd;--amber-border: #e6d3ae;--badge-dot-fabric: #8e3546;--badge-dot-trim: #b07b2e;--red: var(--accent);--red-dark: var(--accent-hover);--muted: var(--ink-soft);--rule: var(--line);--border: var(--line);--panel: var(--surface);--field: var(--surface-input);--ok: var(--success);--danger: var(--accent);--font-serif: "Marcellus", Georgia, "Times New Roman", serif;--font-ui: "Hanken Grotesk", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius: 10px;--radius-card: 18px;--radius-input: 9px;--radius-pill: 999px;--topbar-h: 54px;--page-max: 1360px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);color:var(--ink);background:var(--paper);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}h1,h2,h3{margin:0 0 .4em}h1{font-family:var(--font-serif);font-size:32px;font-weight:400;line-height:1.05;letter-spacing:.005em}h2{font-family:var(--font-serif);font-size:21px;font-weight:400;line-height:1.15}h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--label)}.mono{font-family:var(--font-mono)}.app{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:stretch;gap:36px;padding:0 32px;height:var(--topbar-h);background:var(--nav);color:var(--nav-text-active);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;font-family:var(--font-serif);font-size:22px;font-weight:400;letter-spacing:.34em;text-indent:.34em;color:var(--nav-text-active)}.topbar nav{display:flex;align-items:stretch;gap:28px;flex:1}.topbar nav a{display:flex;align-items:center;color:var(--nav-text);font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:500;border-bottom:2px solid transparent}.topbar nav a.active,.topbar nav a:hover{color:var(--nav-text-active);text-decoration:none;border-bottom-color:var(--accent-underline)}.topbar .who{display:flex;align-items:center;font-size:12px;color:var(--faint)}.topbar .who strong{color:var(--nav-text-active);font-weight:500}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-pill);background:#3a332b;color:#d8cfbe;font-size:11px;font-weight:600;letter-spacing:.04em;flex:0 0 auto}.topbar-user{display:flex;align-items:center;gap:10px}.topbar-signout{background:transparent;color:var(--nav-text-active);border:1px solid #423b32;border-radius:var(--radius);padding:7px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.topbar-signout:hover{background:var(--nav-text-active);color:var(--nav)}.nav-dropdown{position:relative;display:flex;align-items:stretch}.nav-dropdown-toggle{display:flex;align-items:center;background:transparent;border:0;border-bottom:2px solid transparent;padding:0;cursor:pointer;font:inherit;color:var(--nav-text);font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:500}.nav-dropdown-toggle:hover,.nav-dropdown-toggle.active{color:var(--nav-text-active);border-bottom-color:var(--accent-underline)}.nav-dropdown-toggle .caret{font-size:9px;margin-left:5px}.nav-dropdown-menu{position:absolute;top:100%;left:0;z-index:10;min-width:210px;background:#221c17;border:1px solid #352c24;border-radius:12px;padding:7px 0;box-shadow:0 10px 26px #00000052}.nav-dropdown-item{display:block;padding:9px 18px;color:var(--nav-text);font-size:12px;text-transform:uppercase;letter-spacing:.1em}.nav-dropdown-item:hover{background:#332a22;color:var(--nav-text-active);text-decoration:none}.nav-dropdown-item.active{color:var(--nav-text-active);background:#332a22}.content{flex:1;padding:32px;max-width:var(--page-max);width:100%;margin:0 auto}.breadcrumb{display:flex;align-items:center;gap:14px;margin:0 0 20px;font-size:13px}.breadcrumb a{font-weight:500}.breadcrumb .crumb-path{font-family:var(--font-mono);font-size:12px;color:var(--faint)}.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.header-actions{display:flex;gap:10px;flex:0 0 auto;flex-wrap:wrap}.card-divider{border-top:1px solid var(--line-mid);margin:4px 0 6px}.variant-subtitle{font-size:16px;color:var(--ink-soft);margin:4px 0 0}.variant-fixed{display:flex;flex-wrap:wrap;align-items:center;gap:24px;border-top:1px solid var(--line-soft);margin-top:14px;padding-top:14px}.variant-fixed-item{display:flex;flex-direction:column;gap:3px}.variant-fixed-item .label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:600;color:var(--label)}.variant-fixed-item>span:last-child{font-size:14px;color:var(--ink)}.status-path{margin-top:18px;display:flex;align-items:center;gap:14px}.status-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.status-step{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:6px 15px;border-radius:999px}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.sticker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 18px;margin-top:6px}.sticker-option{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:400;font-size:14px;color:var(--ink);margin:0}.sticker-option .tag{padding:1px 8px;font-size:10px}.eyebrow{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);font-weight:500;margin:0 0 6px}.eyebrow-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.eyebrow-row .eyebrow{margin:0}.detail-header{margin-bottom:20px}.detail-header h1{margin:6px 0}.detail-2col{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start}@media(max-width:860px){.detail-2col{grid-template-columns:1fr}}label.button-link{cursor:pointer}label.button-link input{display:none}.button-link.disabled{opacity:.45;pointer-events:none}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:28px 34px;margin-bottom:18px;box-shadow:0 1px 2px #1e160c08}.page-toolbar,.variant-sticky{position:sticky;top:var(--topbar-h);z-index:20;background:var(--paper);padding-top:14px;margin-top:-14px;box-shadow:0 8px 12px -8px #1e160c24}.variant-sticky .variant-header{margin-bottom:14px}.variant-sticky .tabs{margin-bottom:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.stack>*+*{margin-top:12px}.muted{color:var(--ink-soft)}.faint{color:var(--faint)}.neg{color:var(--accent)}.spacer{flex:1}.placeholder-value{color:var(--placeholder)}label{display:block;font-size:11px;color:var(--label);margin-bottom:5px;text-transform:uppercase;letter-spacing:.09em;font-weight:600}input,select,textarea{width:100%;padding:10px 13px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface-input);border:1px solid var(--input-border);border-radius:var(--radius-input)}input::placeholder,textarea::placeholder{color:var(--placeholder)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical;min-height:72px}.field{margin-bottom:12px}select{appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237c2b3b' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}button{font:inherit;font-size:14px;cursor:pointer;padding:10px 24px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:var(--nav-text-active);transition:background .14s ease,color .14s ease,border-color .14s ease}button:hover{background:var(--accent);border-color:var(--accent);color:var(--nav-text-active)}button.secondary{background:transparent;color:var(--ink);border-color:var(--btn-secondary-border)}button.secondary:hover{background:transparent;color:var(--accent);border-color:var(--accent)}button.danger{background:transparent;color:var(--accent);border-color:#e0bec4}button.danger:hover{background:var(--accent-underline);color:var(--nav-text-active);border-color:var(--accent-underline)}button.small{padding:6px 13px;font-size:12px}button:disabled{opacity:.45;cursor:not-allowed}a.button-link{display:inline-block;text-decoration:none;font:inherit;padding:10px 24px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:var(--nav-text-active);transition:background .14s ease,color .14s ease,border-color .14s ease}a.button-link:hover{background:var(--accent);border-color:var(--accent);color:var(--nav-text-active);text-decoration:none}a.button-link.secondary{background:transparent;color:var(--ink);border-color:var(--btn-secondary-border)}a.button-link.secondary:hover{color:var(--accent);border-color:var(--accent)}a.button-link.small{padding:6px 13px;font-size:12px}button.link{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer}button.link:hover{background:none;color:var(--accent-hover)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line-soft);font-size:13px}thead th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--label);font-weight:600;background:var(--surface-sunken);border-bottom:1px solid var(--line-mid)}tfoot td{border-bottom:none;border-top:1px solid var(--line-mid)}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--surface-sunken)}.data-table-card{padding:0;overflow:hidden}.data-table-card table{width:100%}.data-table-card th:first-child,.data-table-card td:first-child{padding-left:24px}.data-table-card th:last-child,.data-table-card td:last-child{padding-right:24px}.data-table-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-top:1px solid var(--line-mid);background:var(--surface-sunken)}.data-table-foot .count{font-family:var(--font-mono);font-size:12px;color:var(--faint)}.table-scroll{overflow-x:auto}.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600;background:var(--surface-sunken);border:1px solid var(--line-mid);color:var(--label)}.tag.red{background:var(--accent);color:var(--nav-text-active);border-color:var(--accent)}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--faint);display:inline-block}.badge-dot.fabric:before{background:var(--badge-dot-fabric)}.badge-dot.trim:before{background:var(--badge-dot-trim)}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 10px;border-radius:var(--radius-pill);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.active{color:var(--success);background:var(--success-bg);border:1px solid var(--success-border)}.status-pill.prototyping{color:var(--amber);background:var(--amber-bg);border:1px solid var(--amber-border)}.status-pill.draft,.status-pill.neutral{color:var(--label);background:#f0ece2;border:1px solid var(--line-mid)}.chip{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:1px 7px;border-radius:5px;letter-spacing:.02em;background:var(--surface-sunken);border:1px solid var(--line-mid);color:var(--ink-soft);vertical-align:middle}.swatch{display:inline-block;width:22px;height:22px;border-radius:7px;vertical-align:middle;border:1px solid rgba(0,0,0,.12);box-shadow:inset 0 1px #ffffff59}.banner{padding:11px 14px;border-radius:var(--radius-input);font-size:13px;margin-bottom:12px}.banner.error{background:#fbe9eb;color:var(--accent-hover);border:1px solid #e7c3c8}.banner.ok{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.tabs{display:flex;gap:30px;border-bottom:1px solid var(--line-mid);margin-bottom:20px}.tabs button{background:none;border:none;color:var(--label);border-bottom:2px solid transparent;border-radius:0;padding:10px 0;font-size:14px;letter-spacing:0}.tabs button:hover{background:none;color:var(--ink);border-bottom-color:transparent}.tabs button.active{color:var(--ink);font-weight:600;border-bottom-color:var(--accent-underline)}.dim{opacity:.55}.center{text-align:center}details>summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--label);padding:6px 0}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▶";font-size:9px;color:var(--faint);transition:transform .14s ease}details[open]>summary:before{transform:rotate(90deg)}.pages-disclosure{border-top:1px solid var(--line);margin-top:18px;padding-top:6px}dl.kv{display:grid;grid-template-columns:220px 1fr;margin:0;column-gap:16px}dl.kv dt,dl.kv dd{margin:0;padding:11px 0;border-top:1px solid var(--line-soft)}dl.kv dt:first-of-type,dl.kv dd:first-of-type{border-top:none}dl.kv dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:600;color:var(--label);align-self:center}dl.kv dd{color:var(--ink);align-self:center}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 24px;color:var(--ink-soft)}.empty-state .tile{width:44px;height:44px;border-radius:12px;background:var(--surface-sunken);border:1px solid var(--line-mid);display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:20px;margin-bottom:4px}.empty-state .title{font-family:var(--font-serif);font-size:18px;color:var(--ink)}.empty-state .desc{font-size:13px;color:var(--ink-soft);max-width:380px}.empty-dashed{border:1px dashed var(--line-mid);border-radius:14px;background:var(--surface-sunken)}.image-ph{aspect-ratio:1 / 1;width:100%;border-radius:14px;background:repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(140,128,108,.1) 9px,rgba(140,128,108,.1) 10px),var(--surface-sunken);border:1px solid var(--line-mid);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--faint)}.image-ph .glyph{width:34px;height:34px;border-radius:8px;border:1.5px solid var(--faint)}.image-ph .cap{font-family:var(--font-mono);font-size:11px}.helper-mono{font-family:var(--font-mono);font-size:11px;color:var(--faint)}.colour-value{display:inline-flex;align-items:center;gap:9px}.colour-swatch{width:22px;height:22px;border-radius:6px;flex:none;border:1px solid rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px #ffffff40}.colour-swatch.unknown{background:var(--surface-sunken);border:1.5px dashed var(--line-mid);box-shadow:none}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:44px 46px;width:350px;text-align:center;box-shadow:0 1px 2px #1e160c08}.login-brand{font-family:var(--font-serif);font-size:28px;font-weight:400;letter-spacing:.34em;text-indent:.34em}.login-sub{margin:6px 0 24px;color:var(--ink-soft)}.login-card button{width:100%}.modal-backdrop{position:fixed;inset:0;background:#17130f80;display:flex;align-items:flex-start;justify-content:center;padding:50px 20px;z-index:50;overflow:auto}.modal{background:var(--surface);border-radius:var(--radius-card);padding:26px 28px;width:100%;max-width:520px;box-shadow:0 18px 48px #17130f47}.modal.wide{max-width:1000px}.schematic-stage{position:relative;display:inline-block;border:1px solid var(--line);background:#fff;line-height:0;border-radius:10px;overflow:hidden}.schematic-stage img{display:block}.anno-svg{position:absolute;inset:0;overflow:visible}.anno-label-box{position:absolute;background:#fff;border:1px solid var(--accent);border-radius:3px;padding:2px 6px;font-size:11px;line-height:1.3;max-width:150px;pointer-events:none}.anno-label-box.measurement{font-weight:600}.thumb{width:92px;height:92px;object-fit:cover;border:1px solid var(--line);border-radius:10px;background:#fff}.editor-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.anno-list-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line-soft)}.anno-list-row.selected{background:var(--surface-sunken)}.support-link{position:relative}.support-badge{position:absolute;top:6px;right:-12px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;min-width:16px;text-align:center;line-height:1.4}.badge{display:inline-block;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge.bug{background:#f6e2e4;color:var(--accent)}.badge.improvement{background:#e6ecf2;color:#35506e}.badge.open{background:var(--amber-bg);color:var(--amber)}.badge.solved{background:var(--success-bg);color:var(--success)}.dialog-backdrop{position:fixed;inset:0;background:#17130f73;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--surface);border-radius:var(--radius-card);padding:24px;width:min(680px,90vw);max-height:90vh;overflow:auto;box-shadow:0 18px 48px #17130f47}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin:0;border:1px solid var(--line-mid);background:var(--surface);border-radius:8px;font-size:14px;line-height:1;cursor:pointer;color:var(--ink-soft);text-decoration:none;vertical-align:middle}.icon-btn:hover{background:var(--surface-sunken);color:var(--accent)}@media(max-width:860px){.content{padding:20px}.panel{padding:20px 18px}dl.kv{grid-template-columns:1fr}dl.kv dt{padding-bottom:0;border-top:1px solid var(--line-soft)}dl.kv dd{padding-top:4px;border-top:none}.topbar{gap:18px}}
