.button-row{display:flex;flex-wrap:wrap;gap:.75rem}.field{display:grid;grid-gap:.3rem;gap:.3rem;max-width:32rem}.field.inline{align-items:center;display:flex;gap:.5rem}.field input,.field select,.field textarea{background:var(--panel);border:1px solid var(--line);border-radius:0;color:var(--ink);font:inherit;padding:.5rem .65rem;width:100%}.field textarea{font-family:var(--font-mono),monospace;resize:vertical}.checkbox-list{border:1px solid var(--line);border-radius:0;display:grid;grid-gap:.3rem;gap:.3rem;max-height:12rem;overflow-y:auto;padding:.5rem .65rem}.checkbox-row{align-items:center;cursor:pointer;display:flex;gap:.5rem}.checkbox-row input,.field.inline input,.field.inline select{width:auto}.process-head-actions{align-items:center;display:flex;gap:.75rem;margin-left:auto}.icon-button{white-space:nowrap}.token-tile{border:1px solid var(--line);border-radius:0;margin-top:.75rem;padding:.6rem .75rem}.token-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.25rem}.token-row strong{color:var(--blueprint)}.manage-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.manage-card{align-items:center;color:inherit;display:flex;gap:1rem;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}.manage-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.manage-card h2{margin:0 0 .25rem}.step-number.small{font-size:1.2rem}.manage-arrow{color:var(--blueprint);font-size:1.4rem;margin-left:auto}.settings-panel{background:var(--panel);border-radius:0;display:flex;flex-direction:column;gap:.85rem;max-height:88vh;max-width:780px;overflow-y:auto;padding:1.25rem 1.4rem;width:92vw}.settings-head{align-items:center;display:flex;justify-content:space-between}.settings-head h2{margin:0}.settings-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.settings-tabs .tab{background:none;border:1px solid var(--line);border-radius:0;color:var(--muted);cursor:pointer;font:inherit;padding:.35rem .8rem}.settings-tabs .tab.active{background:var(--blueprint);border-color:var(--blueprint);color:var(--color-bg)}.settings-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}.record-search{flex:1 1 16rem;min-width:12rem}.pager{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding-top:.75rem}.record-list{display:grid;grid-gap:.5rem;gap:.5rem}.record-row{align-items:center;border:1px solid var(--line);border-radius:0;display:flex;gap:.75rem;justify-content:space-between;padding:.55rem .75rem}.record-main{display:flex;flex-wrap:wrap;gap:.9rem;min-width:0}.record-cell{word-break:break-word}.record-serial{align-items:center;background:var(--blueprint);border-radius:0;color:var(--color-bg);display:inline-flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:1.5rem;justify-content:center;min-width:1.5rem;padding:0 .4rem}.id-cell{background:color-mix(in srgb,var(--color-accent) 8%,transparent);border:1px solid var(--line);border-radius:0;color:var(--ink);cursor:pointer;font:inherit;padding:.15rem .45rem}.id-cell code{font-family:var(--font-mono),monospace}.record-row-actions{display:flex;flex-shrink:0;gap:.4rem}.record-form{display:grid;grid-gap:.7rem;gap:.7rem}.button.small{font-size:.85rem;padding:.4rem .75rem}.param-group-head,.rulebook-head{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.param-group-head h3{margin:0}.image-cards{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.image-card{background:none;border:1px solid var(--line);border-radius:0;cursor:pointer;overflow:hidden;padding:0;transition:transform .12s ease,box-shadow .12s ease}.image-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.image-card img{display:block;height:84px;object-fit:cover;width:120px}.lightbox-backdrop{align-items:center;background:color-mix(in srgb,var(--color-text) 82%,transparent);display:flex;inset:0;justify-content:center;padding:2rem;position:fixed;z-index:50}.lightbox-body{display:grid;grid-gap:.75rem;gap:.75rem;max-height:90vh;max-width:90vw}.lightbox-body img{border-radius:0;max-height:78vh;max-width:90vw;object-fit:contain}.lightbox-actions{display:flex;gap:1rem;justify-content:center}.lightbox-actions a,.lightbox-actions button{background:none;border:none;color:var(--color-bg);cursor:pointer;font:inherit;text-decoration:underline}.draft-list,.result-list{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.75rem}.draft-card,.result-card{border:1px solid var(--line);border-radius:0;display:grid;grid-gap:.5rem;gap:.5rem;padding:.9rem 1rem}.draft-card-head,.result-card-head{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between}.result-card-head p,.result-card-head strong{margin:0}.result-card-title{align-items:flex-start;background:none;border:0;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:.1rem;min-width:0;padding:0;text-align:left}.result-card-title strong{overflow-wrap:anywhere}.result-card-title:hover strong{text-decoration:underline}.param-scroll .result-list{gap:.85rem}.result-quantity{align-items:center;display:flex;gap:.6rem}.result-quantity .quantity{color:var(--blueprint);font-size:1.35rem;font-weight:700}.empty ul{margin:.4rem 0 0;padding-left:1.1rem}.status-results-row{align-items:start;display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr 1fr}.status-results-row>.panel{font-size:.9rem;max-height:26rem;overflow-y:auto;padding:1rem}.status-results-row h2{font-size:1rem}@media (max-width:900px){.status-results-row{grid-template-columns:1fr}}.stack{display:grid;grid-gap:1.25rem;gap:1.25rem}.task-rows{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.75rem}.task-row{display:grid;grid-gap:.35rem;gap:.35rem}.task-row-head{align-items:center;display:flex;gap:.6rem}.task-label{color:var(--ink);font-weight:700;margin-right:auto}.progress-bar.slim{height:.45rem}.param-head{margin-bottom:.5rem}.param-scroll{max-height:clamp(9rem,17vh,14rem);overflow-y:auto;padding-right:.25rem}@media (max-width:780px){.param-scroll{max-height:clamp(12rem,34vh,20rem)}}.param-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.param-group{border:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;gap:.5rem;min-width:0;padding:.85rem 1rem}.param-group h3{margin:0}.param-group-head.sticky{background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:1}.table-wrap{overflow-x:auto}.param-table{border-collapse:collapse;width:100%}.param-table td,.param-table th{border-bottom:1px solid var(--line);padding:.4rem .5rem;text-align:left}.param-table th{color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase}.item-list{display:flex;flex-direction:column;gap:.4rem;list-style:none;margin:0;padding:0}.item-row{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;padding:.4rem 0}.item-row-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.item-name{font-weight:600}.item-code{font-family:var(--font-mono),ui-monospace,monospace;font-size:.72rem}.item-row-actions{align-items:center;display:flex;gap:.5rem;flex-shrink:0}.item-error{flex-basis:100%}.result-dl{display:flex;flex-direction:column;gap:.4rem;margin:0}.result-dl>div{display:grid;grid-gap:.15rem .75rem;gap:.15rem .75rem;grid-template-columns:7rem 1fr}.result-dl dt{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.result-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}.result-dl code{font-family:var(--font-mono),ui-monospace,monospace;font-size:.82rem}.two-col{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start}.col{display:flex;flex-direction:column;gap:1rem;min-width:0}.group-block{margin-bottom:.85rem}.group-title{border-bottom:1px solid var(--line);color:var(--ink);font-size:.92rem;font-weight:700;letter-spacing:.02em;margin:0 0 .55rem;padding-bottom:.3rem;text-transform:uppercase}.chip-grid{display:grid;grid-gap:.7rem;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.struct-chip{background:var(--panel);border:2px solid color-mix(in srgb,var(--color-text) 16%,transparent);border-radius:0;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.5rem;min-height:9.5rem;min-width:0;overflow:hidden;padding:.55rem .7rem .6rem;transition:background .15s ease,border-color .15s ease}.struct-chip--invalid{background:color-mix(in srgb,var(--color-neutral-500) 10%,transparent);border-style:dashed;min-height:0;opacity:.8}.struct-chip--calculating{background:color-mix(in srgb,var(--status-warn) 12%,transparent);border-color:color-mix(in srgb,var(--status-warn) 45%,transparent)}.struct-chip--done{background:color-mix(in srgb,var(--color-accent-800) 12%,transparent);border-color:color-mix(in srgb,var(--color-accent-800) 40%,transparent)}.struct-chip--cannot{background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:color-mix(in srgb,var(--danger) 38%,transparent)}.struct-chip-corners{align-items:flex-start;display:flex;gap:.5rem;justify-content:space-between;min-width:0}.struct-chip-corners.top{min-height:1.2rem}.struct-chip-corners.bottom{align-items:center;margin-top:auto}.chip-canonical{display:flex;flex-direction:column;gap:.05rem;min-width:0;overflow:hidden}.chip-canonical-label{color:var(--muted);font-size:.48rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.chip-canonical-value{color:var(--blueprint);font-size:.58rem;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-class-badge{border-radius:0;flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:.12rem .5rem;text-transform:uppercase}.chip-class-badge.boq{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--blueprint)}.chip-class-badge.eng{background:var(--color-accent-100);color:var(--color-accent-800)}.chip-class-badge.none{background:color-mix(in srgb,var(--color-neutral-500) 20%,transparent);color:var(--muted)}.chip-field-label{color:var(--muted);font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.struct-chip-center{align-items:center;background:none;border:0;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:.1rem;min-width:0;padding:0;text-align:center;width:100%}.struct-chip-center:hover .struct-chip-name{text-decoration:underline}.struct-chip-center .meta{overflow-wrap:anywhere}.chip-meas{font-size:.62rem}.struct-chip-name{color:var(--ink);font-size:1rem;font-weight:700;line-height:1.25;overflow-wrap:anywhere}.struct-chip-boq{align-items:center;display:flex;flex-direction:column;gap:.05rem;min-width:0;text-align:center}.chip-boqtype{color:var(--blueprint);display:block;font-size:.82rem;font-weight:700;line-height:1.25;min-width:0;overflow-wrap:anywhere}.chip-boqtype-unit{color:var(--muted);font-weight:600}.chip-reason{color:var(--color-neutral-800);font-size:.7rem;line-height:1.3;margin:0;overflow-wrap:anywhere;text-align:center}.chip-result{color:var(--success);font-size:.9rem;font-weight:700;overflow-wrap:anywhere;text-align:right}.struct-chip-corners.bottom .button.small{flex-shrink:0}.struct-chip .status-pill{font-size:.68rem;max-width:100%;overflow-wrap:anywhere;padding:.25rem .5rem;white-space:normal}.match-pill{border-radius:0;font-size:.72rem;font-weight:700;padding:.1rem .5rem}.match-pill.high{background:var(--color-accent-100);color:var(--color-accent-800)}.match-pill.mid{background:var(--color-neutral-200);color:var(--color-neutral-800)}.match-pill.low{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.item-done{flex-basis:100%}.result-list{display:flex;flex-direction:column;gap:.4rem;list-style:none;margin:0;padding:0}.result-row{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:0;cursor:pointer;display:flex;gap:.5rem;justify-content:space-between;padding:.5rem .7rem;text-align:left;width:100%}.result-row:hover{border-color:var(--accent)}.result-row-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.modal-backdrop{align-items:center;background:color-mix(in srgb,var(--color-neutral-900) 50%,transparent);display:flex;inset:0;justify-content:center;padding:1.5rem;position:fixed;z-index:50}.modal-card{background:var(--panel);border-radius:0;display:flex;flex-direction:column;max-height:85vh;max-width:720px;width:100%}.modal-head{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:.85rem 1.1rem}.modal-head h2{margin:0;font-size:1.05rem}.modal-body{overflow-y:auto;padding:1rem 1.1rem}.raw-head{align-items:center;display:flex;justify-content:space-between;margin:1rem 0 .4rem}.raw-json{background:var(--code-bg);border-radius:0;color:var(--code-fg);font-family:var(--font-mono),ui-monospace,monospace;font-size:.75rem;margin:0;max-height:40vh;overflow:auto;padding:.75rem;white-space:pre}.formula-list{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.75rem}.formula-card{border:1px solid var(--line);border-radius:0;display:grid;grid-gap:.3rem;gap:.3rem;padding:.85rem 1rem}.formula-card-head{align-items:center;display:flex;gap:.6rem;justify-content:space-between}.formula{background:color-mix(in srgb,var(--color-accent) 8%,transparent);border-radius:0;color:var(--blueprint);display:block;font-family:var(--font-mono),monospace;font-size:.9rem;padding:.5rem .65rem;white-space:pre-wrap;word-break:break-word}.status-pill.accepted,.status-pill.ready{border-color:color-mix(in srgb,var(--color-accent-800) 35%,transparent);color:var(--success)}.status-pill.needs_review{border-color:color-mix(in srgb,var(--status-warn) 45%,transparent);color:var(--color-neutral-800)}.status-pill.blocked,.status-pill.rejected{border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.live-processing-card{display:flex;flex-direction:column;gap:.3rem;max-height:21rem;min-width:0;overflow:hidden;padding:.85rem 1rem}.live-processing-card .task-rows{flex:0 1 auto;margin-top:.4rem;max-height:7.5rem;min-height:0;overflow-y:auto;padding-right:.25rem}.live-card-head{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.live-card-head h2{margin:0}.task-row .meta,.task-row .task-label{overflow-wrap:anywhere}.task-row-head{flex-wrap:wrap}.task-row-head .status-pill{flex-shrink:0}.rulebook-tools{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.rulebook-tools .record-search{flex:1 1 16rem;min-width:0}.rulebook-tools select{flex:0 1 14rem;min-width:0;width:auto}.rulebook-scroll{max-height:clamp(11rem,26vh,22rem);overflow-y:auto}.rulebook-scroll thead th{background:var(--color-bg);position:-webkit-sticky;position:sticky;top:0;z-index:1}.sort-header{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;padding:0;text-transform:inherit}.sort-header:hover{color:var(--color-accent)}.boq-bill{max-height:clamp(16rem,42vh,34rem);overflow-y:auto}.boq-bill thead th{top:0}.boq-bill tfoot td,.boq-bill thead th{background:var(--color-bg);position:-webkit-sticky;position:sticky;z-index:1}.boq-bill tfoot td{bottom:0}.boq-bill td.num,.boq-bill th.num,.rulebook-scroll td.num,.rulebook-scroll th.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.boq-bill tfoot td{border-bottom:0;border-top:1px solid var(--color-divider);font-weight:700}.boq-bill tfoot td:first-child{text-align:right}