.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:.5rem;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:.5rem;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:.6rem;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:.85rem;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:999px;color:var(--muted);cursor:pointer;font:inherit;padding:.35rem .8rem}.settings-tabs .tab.active{background:var(--blueprint);border-color:var(--blueprint);color:#fff}.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:.6rem;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:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:.75rem;font-weight:800;height:1.5rem;justify-content:center;min-width:1.5rem;padding:0 .4rem}.id-cell{background:rgb(21 94 117/8%);border:1px solid var(--line);border-radius:.4rem;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:.5rem;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:rgb(16 33 43/82%);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:.5rem;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:#fff;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:.75rem;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:800}.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:34rem;overflow-y:auto;padding-right:.25rem}.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:.75rem;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(--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(--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:800;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 rgb(15 33 43/16%);border-radius:.6rem;box-shadow:0 1px 3px rgb(15 33 43/8%);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:rgb(148 163 184/10%);border-style:dashed;min-height:0;opacity:.8}.struct-chip--calculating{background:rgb(216 155 43/12%);border-color:rgb(216 155 43/45%)}.struct-chip--done{background:rgb(47 133 90/12%);border-color:rgb(47 133 90/40%)}.struct-chip--cannot{background:rgb(185 74 72/10%);border-color:rgb(185 74 72/38%)}.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:800;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:999px;flex-shrink:0;font-size:.62rem;font-weight:800;letter-spacing:.04em;padding:.12rem .5rem;text-transform:uppercase}.chip-class-badge.boq{background:rgb(21 94 117/12%);color:var(--blueprint)}.chip-class-badge.eng{background:rgb(47 133 90/14%);color:#276749}.chip-class-badge.none{background:rgb(148 163 184/20%);color:var(--muted)}.chip-field-label{color:var(--muted);font-size:.6rem;font-weight:800;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:800;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:#8a5b05;font-size:.7rem;line-height:1.3;margin:0;overflow-wrap:anywhere;text-align:center}.chip-result{color:var(--success,#2f855a);font-size:.9rem;font-weight:800;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:999px;font-size:.72rem;font-weight:700;padding:.1rem .5rem}.match-pill.high{background:#dcfce7;color:#166534}.match-pill.mid{background:#fef9c3;color:#854d0e}.match-pill.low{background:#fee2e2;color:#991b1b}.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:.6rem;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,#4b5563)}.result-row-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}.modal-backdrop{align-items:center;background:rgba(0,0,0,.5);display:flex;inset:0;justify-content:center;padding:1.5rem;position:fixed;z-index:50}.modal-card{background:var(--panel,#fff);border-radius:.9rem;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,#0f172a);border-radius:.5rem;color:var(--code-fg,#e2e8f0);font-family:var(--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:.75rem;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:rgb(21 94 117/8%);border-radius:.4rem;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:rgb(47 133 90/35%);color:var(--success)}.status-pill.needs_review{border-color:rgb(216 155 43/45%);color:#8a5b05}.status-pill.blocked,.status-pill.rejected{border-color:rgb(185 74 72/35%);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}