.tt-model-log-failed>summary{color:#cf1322;font-weight:600}.tt-model-log-tools{margin:4px 0 0}.tt-model-log .tt-log-error{color:#cf1322;font-weight:600}.tt-model-log .tt-log-warning{color:#d46b08}:root{--tt-bg: #f5f7fa;--tt-surface: #ffffff;--tt-border: #e5e8ed;--tt-muted: #8c8c8c;--tt-na-bg: #f2f3f5;--tt-row-hover-tint: rgba(20, 50, 100, .09);--tt-yes: #fa541c;--tt-no: #bfbfbf;--tt-unclear: #faad14;--tt-done: #52c41a;--tt-progress: #1677ff;--tt-notstarted: #d9d9d9;--tt-blocked: #f5222d;--tt-magenta: #c41d7f;--tt-notset: #7c8898;--tt-notset-text: #4f5a6a}html,body{margin:0;background:var(--tt-bg)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif}.tt-layout{min-height:100vh;background:var(--tt-bg)}.tt-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:16px}.tt-brand{color:#fff;font-weight:600;font-size:16px;letter-spacing:.3px;white-space:nowrap}.tt-brand:hover{color:#d6e4ff}.tt-nav{flex:1;min-width:0;background:transparent;border-bottom:none;line-height:48px}.tt-user{color:#d9d9d9;white-space:nowrap}.tt-user .tt-user-name{color:#fff}.tt-content{padding:12px 16px 24px;min-width:0}.tt-page-spinner{display:flex;justify-content:center;padding:80px 0}.tt-page-error{max-width:720px;margin:80px auto;padding:0 16px}.tt-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(160deg,#12263f,#1f5f99)}.tt-login-card{width:100%;max-width:380px;box-shadow:0 8px 32px #00000040}.tt-login-head{text-align:center;margin-bottom:20px}.tt-login-title.ant-typography{margin-bottom:4px}.tt-login-error{margin-bottom:16px}.tt-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.tt-toolbar-right,.tt-toolbar-filters .tt-count{margin-left:auto}.tt-cf-tag.ant-tag{max-width:320px;margin-inline-end:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.tt-cf-option{display:inline-flex;align-items:baseline;gap:12px;max-width:320px}.tt-cf-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-cf-special{color:var(--tt-muted);font-style:italic}.tt-cf-count{margin-left:auto;color:var(--tt-muted);font-size:12px;font-variant-numeric:tabular-nums}.tt-cf-range{display:flex;flex-direction:column;gap:6px;width:260px;padding:8px}.tt-cf-range-inputs{display:flex;align-items:center;gap:6px}.tt-cf-range-inputs .ant-input-number{flex:1;min-width:0}.tt-cf-range-foot{display:flex;justify-content:space-between}.tt-bulk-bar{padding:6px 10px;margin-bottom:8px;background:#e6f4ff;border:1px solid #91caff;border-radius:4px}.tt-objects-table .ant-table-thead>tr>th{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-objects-table .ant-table-thead .ant-table-column-title{min-width:0;overflow:hidden;text-overflow:ellipsis}.tt-objects-table .ant-table-thead>tr>th:not(.tt-colgroup){white-space:normal;vertical-align:bottom;line-height:1.25}.tt-objects-table .tt-col-title{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;overflow-wrap:anywhere}.tt-objects-table .ant-table-thead .tt-colgroup{text-align:center;font-size:12px;color:#595959}.tt-objects-table .ant-table-thead .tt-colgroup-requirements{background:#fff7f0}.tt-objects-table .ant-table-thead .tt-colgroup-milestones{background:#f0f7ff}.tt-objects-table .ant-table-thead .tt-colgroup-classification{background:#f9f0ff}.tt-objects-table .ant-table-thead .tt-colgroup-engineering{background:#e6fffb}.tt-objects-table .ant-table-thead .tt-colgroup-execution{background:#fcffe6}.tt-objects-table .ant-table-thead .tt-colgroup-general{background:#fafafa}.tt-objects-table .ant-table-thead .tt-colgroup-models{background:#f0f5ff}.tt-objects-table .ant-table-thead .tt-colgroup-quantities{background:#fff0f6}.tt-objects-table .ant-table-thead .tt-colgroup-designCurrent{background:#e6f4ff}.tt-objects-table .ant-table-thead .tt-colgroup-designPrevious{background:#f0f2f5}.tt-objects-table .ant-table-thead .tt-colgroup-designComparison{background:#fffbe6}.tt-objects-table .ant-table-thead .tt-colgroup-concrete{background:#f5f5f5}.tt-objects-table .ant-table-thead .tt-colgroup-disassembly{background:#fff2e8}.tt-objects-table .ant-table-thead .tt-colgroup-bulkLoad{background:#f6ffed}.tt-undecided{color:#d46b08}.tt-tonnage-info{margin-left:4px;color:var(--tt-muted, #8c8c8c);cursor:help}.tt-undecided-hint{color:#d46b08;font-size:11px}.tt-objects-table .ant-table-thead .tt-colgroup-structure{background:#f6ffed}.tt-objects-table .ant-table-tbody>tr>td{vertical-align:middle}.tt-objects-table .ant-table-tbody>tr>td.tt-cell-na{background:var(--tt-na-bg)}.tt-code{font-weight:600;white-space:nowrap}.tt-editable{cursor:pointer;min-height:20px;margin:-2px -4px;padding:2px 4px;border-radius:3px;border:1px dashed transparent}.tt-editable:hover{border-color:#91caff;background:#f0f7ff}.tt-editor{display:flex;flex-direction:column;gap:8px;width:240px}.tt-editor-wide{width:340px}.tt-editor-footer{justify-content:flex-end;width:100%}.tt-notes{max-width:100%}.tt-load-links a{white-space:nowrap}.tt-column-picker{max-width:720px;max-height:70vh;overflow:auto}.tt-column-picker-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px 20px}.tt-column-picker-items{display:flex;flex-direction:column;gap:2px;padding:4px 0 0 22px}.tt-column-picker-footer{margin-top:12px}.tt-tag{margin-inline-end:0}.tt-tag-default{opacity:.75;border-style:dotted}.tt-tag-pending{border-style:dashed}.tt-tag-na{color:var(--tt-muted);background:var(--tt-na-bg)}.tt-tag-hint{color:var(--tt-muted);font-size:11px}.ant-tag.tt-tag-notset{color:var(--tt-notset-text);background:transparent;border:1px dashed var(--tt-notset);font-style:italic}.ant-tag.tt-tag-open{color:var(--tt-notset-text);background:#f4f6f9;border:1px solid var(--tt-notset);font-variant-numeric:tabular-nums}.tt-open-none{color:#b7c0cc}.tt-row-notset>td:first-child{box-shadow:inset 3px 0 0 var(--tt-notset)}.tt-row-unclear>td:first-child{box-shadow:inset 3px 0 0 var(--tt-unclear)}.tt-stat-notset .ant-statistic-content{color:var(--tt-notset-text)}.tt-warn-icon{color:#d48806;margin-left:4px}.tt-progress{margin:0;display:inline-flex}.tt-progress .ant-progress-text{font-size:11px}.tt-detail-head{margin-bottom:4px}.tt-back{display:block;width:fit-content;margin-bottom:4px}.tt-detail-title.ant-typography{margin:0}.tt-detail-name{font-size:16px}.tt-row-gate>td{background:#f0f5ff}.tt-dash-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}.tt-dash-title.ant-typography{margin:0}.tt-dash-card{height:100%}.tt-dash-stack{display:flex;flex-direction:column;gap:12px;height:100%}.tt-dash-stack>.tt-dash-card-auto{height:auto}.tt-dash-stack-fill{flex:1}.tt-section-title.ant-typography{margin:20px 0 8px}.tt-section-gap{height:20px}.tt-tile .ant-card-head-title{font-size:13px}.tt-tile-gate{border-color:#adc6ff;box-shadow:inset 3px 0 #2f54eb}.tt-tile-foot{margin-top:6px;color:#595959;font-size:12px}.tt-subhead{margin-top:10px;font-weight:600;font-size:12px;color:#595959}.tt-type-list{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:12px;color:#595959}.tt-type-list strong{color:#262626}.tt-top-blocked{margin-top:12px}.tt-mini-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}.tt-mini-table td{padding:3px 6px 3px 0;border-bottom:1px solid #f0f0f0;vertical-align:top}.tt-num{text-align:right;font-variant-numeric:tabular-nums;width:40px}.tt-mini-bar-cell{width:45%;vertical-align:middle!important}.tt-mini-bar{height:8px;min-width:2px;border-radius:0 4px 4px 0;background:#1f5f99}.tt-stack{margin-top:8px}.tt-stack-bar{display:flex;gap:2px;height:12px}.tt-stack-seg{min-width:3px;flex-basis:0}.tt-stack-seg:first-child{border-radius:4px 0 0 4px}.tt-stack-seg:last-child{border-radius:0 4px 4px 0}.tt-stack-seg:only-child{border-radius:4px}.tt-stack-empty{flex:1;border-radius:4px;background:#f0f0f0}.tt-stack-legend{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:6px;font-size:12px;color:#595959}.tt-stack-legend-item strong{color:#262626;font-variant-numeric:tabular-nums}.tt-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.tt-fill-yes{background:var(--tt-yes)}.tt-fill-no{background:var(--tt-no)}.tt-fill-unclear{background:var(--tt-unclear)}.tt-fill-done{background:var(--tt-done)}.tt-fill-progress{background:var(--tt-progress)}.tt-fill-notstarted{background:var(--tt-notstarted)}.tt-fill-pending{background:repeating-linear-gradient(45deg,var(--tt-unclear) 0 3px,#ffe58f 3px 6px)}.tt-fill-blocked{background:var(--tt-blocked)}.tt-fill-notset,.tt-mini-bar.tt-fill-notset{background:repeating-linear-gradient(-45deg,var(--tt-notset) 0 2px,#ffffff 2px 5px);box-shadow:inset 0 0 0 1px var(--tt-notset)}.tt-muted{color:var(--tt-muted)}.tt-hint{color:var(--tt-muted);font-size:12px}.tt-nowrap{white-space:nowrap}.tt-prewrap{white-space:pre-wrap}.tt-full-width{width:100%}.tt-w-150{width:150px}.tt-w-200{width:200px}.tt-w-300{width:300px}.tt-text-danger{color:#cf1322}.tt-text-warning{color:#d48806}.tt-msg{text-align:left}.tt-msg-list{margin:4px 0 0;padding-left:18px;text-align:left}.tt-print-only{display:none}@page{size:A4 landscape;margin:10mm}@media print{html,body,.tt-layout{background:#fff!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.tt-header,.no-print,.ant-message,.ant-notification{display:none!important}.tt-content{padding:0}.tt-print-only{display:block}.tt-print-subtitle{font-weight:600;margin:10px 0 4px}.tt-dash-card,.tt-avoid-break,.ant-col{break-inside:avoid;page-break-inside:avoid}.tt-dash-card{box-shadow:none}.tt-dashboard .ant-col-xl-6{flex:0 0 25%;max-width:25%}.tt-dashboard .ant-col-xl-8{flex:0 0 33.333%;max-width:33.333%}.tt-dashboard .ant-col-xl-12{flex:0 0 50%;max-width:50%}.tt-section-title{break-after:avoid;page-break-after:avoid}.tt-kpi-tabs .ant-tabs-nav{display:none}.tt-kpi-tabs .ant-tabs-tabpane-hidden,.tt-kpi-tabs .ant-tabs-tabpane{display:block!important}.tt-kpi-tabs .ant-tabs-content{display:block}a{color:inherit;text-decoration:none}}.tt-add-load-form{margin-top:12px;row-gap:8px}.tt-model-card .ant-descriptions-item-label{width:130px}.tt-model-alert{margin-bottom:8px}.tt-model-log{margin:6px 0 0;font-size:12px;color:#00000073}.tt-model-log>summary{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-model-log>pre{max-height:320px;overflow:auto;margin:6px 0 0;font-size:11px;white-space:pre-wrap;word-break:break-all}.tt-conversion{margin:0 0 12px;padding:8px 12px;border:1px solid #f0f0f0;border-radius:6px;background:#fafafa}.tt-conversion-head{margin-bottom:4px}.tt-conversion .ant-progress{margin:0 0 4px}.tt-conversion-alert{margin-top:8px}.tt-conversion-alert .tt-cli-hint{display:inline-block;margin:2px 0 6px}.tt-live-log>pre{max-height:260px;padding:6px 8px;border-radius:4px;background:#1f1f1f;color:#d9d9d9}.tt-viewer-opacity{display:inline-flex;align-items:center;gap:6px}.tt-viewer-opacity .ant-slider{width:90px;margin:0 4px}.tt-model-older{margin-top:12px}.tt-cli-hint.ant-typography{font-size:12px}.tt-check-stats{margin-bottom:8px}.tt-check-stats .ant-statistic-content{font-size:20px}.tt-check-diffs{margin-top:12px}.tt-row-selected>td{background:#fff7e6!important}.tt-summary-row>td{background:#fafbfc}.tt-assembly-sums.ant-typography{margin:8px 0 0}.tt-swatch{display:inline-block;width:10px;height:10px;margin:0 2px 0 4px;border-radius:2px;vertical-align:-1px;border:1px solid rgba(0,0,0,.12)}.tt-viewer-card>.ant-card-body{padding:8px 12px 12px}.tt-viewer-toolbar{margin-bottom:6px}.tt-viewer-canvas{position:relative;height:min(62vh,640px);min-height:360px;border:1px solid var(--tt-border);border-radius:4px;overflow:hidden;background:#f5f7fa;touch-action:none}.tt-objects-split{display:flex;align-items:flex-start;gap:12px}.tt-objects-split>.tt-objects-main{flex:1;min-width:0}.tt-side-pane{position:sticky;top:56px;display:flex;flex:0 0 clamp(320px,var(--tt-side-width, clamp(380px, 38vw, 760px)),calc(100% - 432px));min-width:0}.tt-side-viewer{flex:1;min-width:0;max-height:calc(100vh - 64px);overflow:auto;padding:8px;border:1px solid var(--tt-border);border-radius:6px;background:#fff}.tt-side-resize{position:absolute;top:0;bottom:0;left:-11px;z-index:2;width:10px;cursor:col-resize;touch-action:none;border-radius:4px}.tt-side-resize:after{content:"";position:absolute;top:50%;left:3px;width:4px;height:48px;max-height:100%;border-radius:2px;background:#c5ccd6;transform:translateY(-50%);transition:background-color .15s,height .15s}.tt-side-resize:hover:after,.tt-side-resize:focus-visible:after,.tt-side-pane-dragging>.tt-side-resize:after{height:100%;background:#1677ff}.tt-side-resize:focus-visible{outline:2px solid #1677ff;outline-offset:1px}body.tt-resizing-x,body.tt-resizing-x *{cursor:col-resize!important;user-select:none!important;-webkit-user-select:none!important}.tt-side-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.tt-side-viewer-title{min-width:0}.tt-side-viewer .tt-overview-viewer .tt-viewer-canvas{height:calc(100vh - 300px);min-height:280px}.tt-objects-table-pick .ant-table-tbody>tr{cursor:pointer}.tt-objects-table-pick .ant-table-tbody>tr:focus-visible>td{outline:2px solid #1677ff;outline-offset:-2px}@media(max-width:1100px){.tt-objects-split{flex-direction:column;align-items:stretch}.tt-side-pane{position:static;flex-basis:auto;width:100%}.tt-side-resize{display:none}.tt-side-viewer{max-height:none}.tt-side-viewer .tt-overview-viewer .tt-viewer-canvas{height:60vh}}@media print{.tt-side-pane{display:none}}.tt-objects-table .ant-table-tbody>tr.tt-row-active>td{background:#e6f4ff}.tt-overview-viewer .tt-viewer-canvas{height:min(52vh,520px);min-height:320px}.tt-viewer-loading{display:flex;align-items:center;justify-content:center;height:360px}.tt-viewer-hover{position:absolute;top:8px;left:8px;max-width:50%;padding:2px 8px;border-radius:4px;background:#ffffffeb;box-shadow:0 1px 4px #0000001f;font-size:12px;pointer-events:none}.tt-viewer-panel{position:absolute;top:8px;right:8px;width:320px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;box-shadow:0 2px 10px #00000026;border-radius:6px}.tt-element-panel .ant-descriptions-item-label{width:80px}.tt-element-flags{margin-top:6px}.tt-element-guid.ant-typography{display:block;margin-top:6px;font-size:11px;word-break:break-all}.tt-viewer-status{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:2px 8px;border-radius:4px;background:#ffffffd9;font-size:11px;color:#595959;pointer-events:auto}.tt-viewer-status:empty{display:none}.tt-viewer-status-line{display:flex;align-items:center;gap:8px;white-space:nowrap}.tt-viewer-status-error{color:#cf1322;white-space:normal}.tt-viewer-progress{width:120px;margin:0}.tt-viewer-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tt-viewer-legend{margin-top:6px}.tt-viewer-toolbar .tt-toolbar-right{display:inline-flex;gap:8px}.tt-page-title.ant-typography{margin:0 8px 0 0}.tt-link-button.ant-btn{height:auto;padding:0;white-space:normal;text-align:left}.tt-nav-badge{margin-left:6px;vertical-align:1px}.tt-nav-badge .ant-badge-count{box-shadow:none}.tt-upload-progress{margin-bottom:8px;padding:6px 8px;border:1px solid var(--tt-border);border-radius:4px;background:#fafbfc}.tt-upload-progress-head{display:flex;align-items:center;gap:8px}.tt-upload-file{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-row-overdue>td{background:#fff6f6}.tt-overdue{font-weight:600}.tt-inline-select{width:118px;margin-left:-8px}.tt-task-updated{color:var(--tt-muted);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-task-title.ant-typography{margin-top:0}.tt-task-facts .ant-descriptions-item-label{width:150px}.tt-task-objects-select{margin-top:6px}.tt-task-section{margin-top:16px}.tt-task-visibility{margin:12px 0}.tt-task-section h5.ant-typography{margin-bottom:6px}.tt-task-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tt-task-section-head h5.ant-typography{margin:0}.tt-comment.ant-list-item{padding-left:0;padding-right:0}.tt-comment-form{display:flex;align-items:flex-end;gap:8px;margin-top:8px}.tt-attachment-form{margin-top:8px;padding:8px;border:1px dashed var(--tt-border);border-radius:4px}.tt-api-key{margin-top:12px}.tt-api-key-value.ant-typography{margin:6px 0;word-break:break-all;font-size:13px}.tt-settings-form{row-gap:8px}.tt-settings-hint{margin-top:6px}.tt-site-body{display:flex;gap:12px;align-items:stretch}.tt-site-canvas{position:relative;flex:1;min-width:0;height:calc(100vh - 210px);min-height:420px;border:1px solid var(--tt-border);border-radius:4px;overflow:hidden;background:#f5f7fa;touch-action:none}.tt-site-side{width:300px;flex:none;max-height:calc(100vh - 210px);overflow:auto}.tt-site-list{margin:0;padding:0;list-style:none}.tt-site-list li{padding:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-site-list-hint{margin-bottom:6px}.tt-site-tooltip{position:absolute;top:0;left:0;z-index:2;max-width:320px;padding:2px 8px;border-radius:4px;background:#12263fe6;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.tt-site-legend{position:absolute;top:8px;left:8px;max-height:calc(100% - 70px);overflow:auto;padding:6px 10px;border-radius:4px;background:#ffffffeb;box-shadow:0 1px 4px #0000001f;font-size:12px}.tt-site-legend-title{font-weight:600;margin-bottom:4px}.tt-site-legend-item{white-space:nowrap}.tt-site-legend-item .tt-swatch{margin-left:0;margin-right:6px}.tt-site-gradient{display:flex;align-items:center;gap:6px;margin-bottom:4px}.tt-site-gradient-bar{display:inline-block;width:120px;height:10px;border-radius:2px;border:1px solid rgba(0,0,0,.12)}.tt-site-blocked{margin-top:4px;font-size:12px}.tt-site-drawer-links{margin-top:12px}@media(max-width:900px){.tt-site-body{flex-direction:column}.tt-site-side{width:auto;max-height:none}}.tt-drop-target{position:relative}.tt-objects-table .ant-table-tbody>tr>td.tt-cell-model{position:relative;min-width:0}.tt-model-cell{position:absolute;inset:0;box-sizing:border-box;display:flex;align-items:center;gap:4px;padding:2px 6px;overflow:hidden;border:1px dashed transparent;border-radius:3px;transition:background-color .15s,border-color .15s}.tt-model-cell-spacer{display:block;min-height:22px}.tt-model-cell-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#e6f4ff}.tt-model-cell-over{border-color:#1677ff;background:#e6f4ff}.tt-model-cell-drop{color:#1677ff;font-size:12px;font-weight:600;white-space:nowrap}.tt-model-cell-upload{display:flex;flex:1;align-items:center;gap:4px;min-width:0}.tt-model-cell-upload .ant-progress{flex:1;margin:0}.tt-model-na{color:#8c8c8c;font-size:12px;font-style:italic;white-space:nowrap}.tt-model-missing{color:#d46b08;font-size:12px;white-space:nowrap}.tt-drop-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;text-align:center;border:2px dashed #1677ff;border-radius:8px;background:#e6f4ffeb;color:#0958d9;pointer-events:none}.tt-drop-icon{font-size:36px}.tt-drop-text{font-size:15px;font-weight:600}.tt-drop-hint{font-size:12px;color:#4d6a8f}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row{cursor:pointer}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row.tt-hdr-area>td.ant-table-cell{padding-top:7px;padding-bottom:7px;background:#dde4ec;border-top:2px solid #aab7c7;color:#1f2937;font-weight:700}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row.tt-hdr-area:hover>td.ant-table-cell{background:#d2dbe6}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row.tt-hdr-group>td.ant-table-cell{padding-top:5px;padding-bottom:5px;background:#f0f3f7;color:#334155;font-weight:600}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row.tt-hdr-group:hover>td.ant-table-cell{background:#e4eaf1}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row.tt-hdr-group.tt-hdr-active>td.ant-table-cell{background:#e6f4ff}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row.tt-hdr-active>td.tt-hdr-cell{box-shadow:inset 3px 0 #1677ff}.tt-objects-table .ant-table-tbody>tr.tt-hdr-row:focus-visible>td{outline:2px solid #1677ff;outline-offset:-2px}.tt-objects-table td.tt-hdr-cell:after{display:none}.tt-hdr-inner{position:sticky;display:inline-flex;align-items:center;gap:8px;max-width:100%;white-space:nowrap}.tt-hdr-inner-group{padding-left:14px}.tt-hdr-chevron{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:3px;background:transparent;color:inherit;font-size:11px;cursor:pointer}button.tt-hdr-chevron:hover{background:#00000014}button.tt-hdr-chevron:focus-visible{outline:2px solid #1677ff;outline-offset:1px}.tt-hdr-area .tt-hdr-name{font-size:14px}.tt-hdr-count,.tt-hdr-desc{color:#5b6573;font-size:12px;font-weight:400}.tt-hdr-desc{max-width:520px;overflow:hidden;text-overflow:ellipsis}.tt-hdr-3d{color:#1677ff;font-size:12px;font-weight:400;opacity:.7}.tt-hdr-row:hover .tt-hdr-3d,.tt-hdr-active .tt-hdr-3d{opacity:1}.tt-objects-grouped .ant-table-tbody>tr:not(.tt-hdr-row)>td.tt-cell-code{padding-left:26px}@media print{.tt-objects-table .ant-table-tbody>tr.tt-hdr-row{break-after:avoid;page-break-after:avoid}.tt-hdr-chevron{display:none}}.tt-side-viewer-actions{display:inline-flex;flex-shrink:0;align-items:center;gap:4px}.tt-stack{display:flex;flex-direction:column;gap:12px}.tt-objects-table .ant-table-summary .tt-total-row>td{background:#f0f3f8;border-top:2px solid #b8c4d8;vertical-align:top;line-height:1.3;padding-bottom:14px}.tt-total-main{font-weight:600;white-space:nowrap}.tt-total-row .tt-hint,.tt-total-row .tt-undecided-hint{font-size:11px}html:has(.tt-objects-table){scroll-padding-bottom:60px}@media print{.tt-objects-table .ant-table-summary.ant-table-sticky-holder{position:static!important}.tt-objects-table .ant-table-sticky-scroll{display:none!important}}.tt-site-drawer-alert{margin-bottom:12px}.tt-objects-table .ant-table-tbody>tr.ant-table-row:not(.tt-hdr-row):hover>td{background-image:linear-gradient(var(--tt-row-hover-tint),var(--tt-row-hover-tint))!important}@media print{.tt-objects-table .ant-table-tbody>tr.ant-table-row:hover>td{background-image:none!important}}.tt-code-cell{display:inline-flex;align-items:center;gap:4px}.tt-follow{border:0;background:none;padding:3px 4px;margin:-3px -2px;cursor:pointer;color:#8c96a3;line-height:1;font-size:13px;border-radius:3px}.tt-follow:hover{color:#d46b08}.tt-follow:focus-visible{color:#d46b08;outline:2px solid #1677ff;outline-offset:1px}.tt-follow:disabled{cursor:default;color:#c3c8cf}.tt-follow.tt-follow-on,.tt-follow-icon{color:#d46b08}.tt-detail-title .tt-follow{font-size:18px;vertical-align:middle}@media print{.tt-follow:not(.tt-follow-on){display:none}}.tt-follow-alert{margin-bottom:12px}.tt-model-shared{font-size:12px;white-space:nowrap}.tt-checks{display:flex;gap:12px;align-items:stretch}.tt-checks-list{flex:0 0 104px;max-height:calc(100vh - 120px);overflow-y:auto;border:1px solid var(--tt-border);border-radius:4px;padding:4px 0}.tt-checks-count{padding:0 8px 4px;font-size:12px}.tt-checks-item{display:flex;align-items:center;gap:2px;padding:1px 4px;cursor:pointer}.tt-checks-item:hover{background:#f0f5ff}.tt-checks-item-active,.tt-checks-item-active:hover{background:#e6f0ff;box-shadow:inset 3px 0 #1f6fd6}.tt-checks-code{all:unset;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.tt-checks-code:focus-visible{outline:2px solid #1f6fd6}.tt-lock.tt-lock-closed,.tt-lock.tt-lock-closed:not(:disabled):hover{color:#389e0d}.tt-lock.tt-lock-open{color:#8c8c8c}.tt-checks-main{flex:1 1 auto;min-width:0}.tt-checks-title{margin-bottom:6px}.tt-checks-heading.ant-typography{margin:0}.tt-compare-views{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}.tt-compare-view{min-width:0}.tt-compare-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:4px;min-height:24px}.tt-compare-file{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.tt-compare-canvas{position:relative;height:calc(100vh - 250px);min-height:320px;border:1px solid var(--tt-border);border-radius:4px;overflow:hidden;background:#f5f7fa;touch-action:none}@media(max-width:900px){.tt-checks{flex-direction:column}.tt-checks-list{flex-basis:auto;max-height:180px}.tt-compare-views{grid-template-columns:1fr}.tt-compare-canvas{height:45vh}}.tt-checks-preload{padding:0 8px 4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-checks-hide{display:flex;align-items:center;gap:4px;padding:0 8px 6px;font-size:11px;white-space:nowrap;cursor:pointer}.tt-roles-info{margin-bottom:12px}.tt-roles-quick{margin-bottom:8px}.tt-photos-page{max-width:1100px;margin:0 auto}.tt-photos-search{margin:4px 0 12px}.tt-photo-objects{list-style:none;margin:0;padding:0;border:1px solid var(--tt-border);border-radius:6px;background:#fff}.tt-photo-objects li+li{border-top:1px solid var(--tt-border)}.tt-photo-object{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:52px;color:inherit}.tt-photo-object:hover{background:#f0f5ff;color:inherit}.tt-photo-object-code{flex:0 0 auto;min-width:84px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tt-photo-object-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-photos-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.tt-photos-title{flex:1 1 auto;min-width:0}.tt-photos-title .tt-page-title.ant-typography{margin:0}.tt-photos-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tt-photos-mobile .tt-photos-actions{flex-direction:column}.tt-photos-mobile .tt-photos-actions .ant-btn-primary{height:56px;font-size:18px}.tt-photo-queue{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:8px 10px;border:1px solid var(--tt-border);border-radius:6px;background:#fff}.tt-photo-queue-item{display:flex;align-items:center;gap:8px;min-width:0}.tt-photo-queue-name{flex:0 1 40%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.tt-photo-queue-progress{flex:1 1 auto;margin:0}.tt-photo-queue-error{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.tt-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.tt-photos-mobile .tt-photo-grid{grid-template-columns:repeat(2,1fr);gap:6px}.tt-photo{position:relative;margin:0;border:1px solid var(--tt-border);border-radius:6px;overflow:hidden;background:#fff}.tt-photo .ant-image{display:block;width:100%}.tt-photo-img.ant-image-img,.tt-photo .ant-image-img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#eef1f5}.tt-photo-caption{padding:4px 8px 6px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-photo-delete{position:absolute;top:6px;right:6px;opacity:.85}.tt-photo-count{white-space:nowrap}.tt-header-camera{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#1f6fd6;color:#fff;font-size:20px;flex:0 0 auto}.tt-header-camera:hover{color:#fff;background:#1a5fb8}.tt-camera-fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:200;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#1f6fd6;color:#fff;font-size:28px;box-shadow:0 6px 18px #10264c59}.tt-camera-fab:hover,.tt-camera-fab:focus{color:#fff;background:#1a5fb8}@media(max-width:767px){.tt-header{gap:8px;padding-inline:10px}.tt-user .tt-user-name,.tt-user .anticon-user{display:none}.tt-content{padding:10px 10px 96px}}@media print{.tt-camera-fab,.tt-header-camera{display:none}}.tt-schedule-summary{margin-left:16px}.tt-w-240{width:240px}.tt-w-full{width:100%}.tt-gantt-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:4px 0 8px}.tt-gantt-legend-default,.tt-gantt-legend-critical,.tt-gantt-legend-baseline{display:inline-block;width:18px;height:9px;margin-right:4px;vertical-align:middle;border-radius:2px}.tt-gantt-legend-default{border:1px dashed #5f6b7a;background:repeating-linear-gradient(45deg,#dfe4ea 0 3px,#fff 3px 6px)}.tt-gantt-legend-critical{background:#9aa3ad;box-shadow:inset 0 -3px #cf1322}.tt-gantt-legend-baseline{height:4px;background:#6b7682}.tt-gantt{--tt-gantt-label: 300px;position:relative;overflow:auto;max-height:calc(100vh - 230px);border:1px solid var(--tt-border);border-radius:4px;background:#fff}.tt-gantt-row{display:flex;min-width:calc(var(--tt-gantt-label) + var(--tt-gantt-width));border-bottom:1px solid #f0f2f5}.tt-gantt-label{position:sticky;left:0;z-index:3;flex:0 0 var(--tt-gantt-label);display:flex;align-items:center;gap:6px;padding:0 8px;height:26px;background:#fff;border-right:1px solid var(--tt-border);font-size:12px;overflow:hidden}.tt-gantt-label-end{margin-left:auto;flex:0 0 auto;font-variant-numeric:tabular-nums}.tt-gantt-slip{color:#cf1322}.tt-gantt-code{flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}.tt-gantt-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b7682}.tt-gantt-group .tt-gantt-label,.tt-gantt-group .tt-gantt-track{background:#f3f6fa}.tt-gantt-group-name{font-weight:600}.tt-gantt-caret{all:unset;cursor:pointer;padding:0 2px;color:#5f6b7a}.tt-gantt-track{position:relative;flex:0 0 var(--tt-gantt-width);height:26px}.tt-gantt-head{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--tt-border)}.tt-gantt-head .tt-gantt-label,.tt-gantt-head .tt-gantt-track{height:40px;font-weight:600}.tt-gantt-head .tt-gantt-label{z-index:6}.tt-gantt-month{position:absolute;top:0;height:20px;padding:2px 6px;font-size:12px;border-left:1px solid var(--tt-border);white-space:nowrap;overflow:hidden}.tt-gantt-week{position:absolute;top:20px;height:20px;padding:3px;font-size:10px;font-weight:400;color:#6b7682;border-left:1px solid #eef1f5}.tt-gantt-body{position:relative}.tt-gantt-grid{position:absolute;top:0;bottom:0;left:var(--tt-gantt-label);width:var(--tt-gantt-width);pointer-events:none;z-index:0}.tt-gantt-off{position:absolute;top:0;bottom:0;background:#78849414}.tt-gantt-today{position:absolute;top:0;bottom:0;width:2px;background:#cf1322;opacity:.7}.tt-gantt-bar{position:absolute;top:5px;height:16px;border-radius:3px;z-index:1;overflow:hidden;color:#fff;font-size:10px;line-height:16px;padding:0 4px;white-space:nowrap;text-overflow:ellipsis}.tt-gantt-editable{cursor:pointer}.tt-gantt-editable:hover{filter:brightness(1.08);outline:2px solid #1d2733}.tt-gantt-default{opacity:.55;outline:1px dashed #1d2733;outline-offset:-1px}.tt-gantt-progress{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.28) 0 4px,transparent 4px 8px)!important}.tt-gantt-done{filter:saturate(.55) brightness(.9)}.tt-gantt-critical{box-shadow:inset 0 -3px #cf1322}.tt-gantt-baseline{position:absolute;top:21px;height:3px;background:#6b7682;border-radius:2px;z-index:1;opacity:.8}.tt-gantt-summary{position:absolute;top:9px;height:8px;border-radius:2px;background:#5f6b7a;z-index:1}.tt-gantt-summary-concrete{background:#9b7b5a}.tt-gantt-diamond,.tt-gantt-diamond-inline{display:inline-block;width:11px;height:11px;transform:rotate(45deg);border:1px solid #1d2733}.tt-gantt-diamond{position:absolute;top:7px;z-index:2}.tt-gantt-diamond-steel{background:#1f6fd6}.tt-gantt-diamond-concrete{background:#9b7b5a}.tt-gantt-diamond-hollow{background:transparent;border:2px solid #6b7682}.tt-gantt-diamond-inline{margin-right:4px;vertical-align:-1px}.tt-gantt-tip div{font-size:12px}.tt-gantt-edit{width:300px}@media print{.tt-gantt{max-height:none;overflow:visible}}.tt-checks-divider{margin:8px 6px 4px;padding-top:6px;border-top:2px solid var(--tt-border);font-size:11px;color:#6b7682;white-space:nowrap}.tt-checks-nolock{flex:0 0 24px;width:24px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;color:#8c96a3;letter-spacing:1px}.tt-compare-missing{display:flex;align-items:center;justify-content:center;background:#d9dde3;color:#5f6b7a;font-size:13px}.tt-gantt-bar-group{top:3px;height:20px;line-height:20px;font-weight:600}.tt-gantt-exception .tt-gantt-label{background:#fffaf0}.tt-gantt-exc-tag{margin:0;font-size:10px;line-height:14px;padding:0 4px}.tt-gantt-label-stack{flex-direction:column;align-items:stretch;gap:0;height:auto;padding:0}.tt-gantt-label-line{display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;border-bottom:1px dashed #eef0f3}.tt-gantt-label-line:last-child{border-bottom:none}.tt-gantt-cluster .tt-gantt-label-stack{border-left:3px solid #d6e4ff}.tt-gantt-foundation .tt-gantt-label{padding-left:18px}.tt-gantt-foundation-label{flex:0 0 auto;color:#7c5b3a;font-size:12px}.tt-roles-columns{padding:4px 0 4px 8px}.tt-roles-column-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px}.tt-roles-column-list .ant-checkbox-wrapper{margin-inline-start:0}.tt-roles-pages{display:flex;flex-wrap:wrap;gap:4px 16px}.tt-roles-filter{display:flex;flex-direction:column;gap:8px;margin-top:8px}.tt-roles-filter-column{width:260px}.tt-roles-filter-values{min-width:300px;max-width:400px}.tt-roles-filter-summary{font-size:12px}.tt-print-gantt{display:none}@media print{.tt-schedule>:not(.tt-print-gantt){display:none!important}.tt-schedule .tt-print-gantt{display:block;font-size:9px;color:#1f1f1f}.tt-print-gantt table{width:100%;border-collapse:collapse;table-layout:fixed}.tt-print-gantt thead{display:table-header-group}.tt-print-gantt tr{break-inside:avoid;page-break-inside:avoid}.tt-pg-label{width:200px;padding:1px 6px 1px 0;vertical-align:middle;text-align:left;border-bottom:1px solid #eef0f3}.tt-pg-head-title{font-size:11px;font-weight:600;vertical-align:bottom}.tt-pg-track{position:relative;height:15px;padding:0;border-bottom:1px solid #eef0f3;overflow:hidden}.tt-pg-months,.tt-pg-weeks{height:13px;font-weight:400}.tt-pg-month,.tt-pg-week{position:absolute;top:0;white-space:nowrap;font-size:8px;color:#595959}.tt-pg-month{border-left:1px solid #bfbfbf;padding-left:2px;font-weight:600}.tt-pg-week{padding-left:1px}.tt-pg-grid{position:absolute;top:0;bottom:0;border-left:1px solid #f0f0f0}.tt-pg-today{position:absolute;top:0;bottom:0;border-left:1.5px solid #e03c3c}.tt-pg-bar{position:absolute;top:2px;bottom:2px;border-radius:2px;overflow:hidden;white-space:nowrap;color:#fff;font-size:7.5px;line-height:11px;padding:0 2px}.tt-pg-done{opacity:.55}.tt-pg-group td{border-top:1px solid #8c8c8c;padding-top:3px;font-size:9.5px}.tt-pg-group .tt-pg-track{height:16px}.tt-pg-foundation .tt-pg-codes{color:#6f5238}.tt-pg-codes{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.tt-pg-ms{float:right;color:#1d4fa3;white-space:nowrap}.tt-pg-ms span+span{margin-left:4px}.tt-pg-ms-concrete{color:#6f5238}.tt-pg-legend{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:6px;font-size:8px}.tt-pg-swatch{display:inline-block;width:10px;height:7px;border-radius:1px;vertical-align:middle}.tt-pg-swatch-today{width:0;border-left:1.5px solid #e03c3c}}.tt-gantt-area{background:#e8edf5}.tt-gantt-area .tt-gantt-label{background:#e8edf5;font-weight:700;color:#1d3c6e;text-transform:uppercase;letter-spacing:.03em}@media print{.tt-pg-area td{padding:4px 0 2px;border-top:1.5px solid #1d3c6e;font-size:10px;font-weight:700;color:#1d3c6e;text-transform:uppercase;letter-spacing:.03em;background:#e8edf5}.tt-pg-area,.tt-pg-group{break-after:avoid;page-break-after:avoid}}.tt-viewer-dim{padding:1px 6px;border:1.5px solid;border-radius:4px;background:#ffffffeb;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none}.tt-manual-tag{margin-left:4px;font-size:10px;line-height:14px;padding:0 4px}.tt-steps{padding-left:20px}.tt-steps li{margin-bottom:6px}.tt-feedback-message{white-space:pre-wrap}.tt-feedback-details p{margin-bottom:6px;white-space:pre-wrap}.tt-foundations-toolbar{margin-bottom:8px}.tt-foundations-filter{max-width:720px}.tt-compare-views-single{grid-template-columns:1fr}.tt-foundations .tt-compare-canvas{height:calc(100vh - 290px)}.tt-counts-layout{display:flex;gap:12px;align-items:flex-start}.tt-counts-viewer{flex:1 1 auto;min-width:0}.tt-counts-panel{flex:0 0 260px;display:flex;flex-direction:column;gap:14px;padding-top:32px}.tt-counts-field{display:flex;flex-direction:column;gap:4px}.tt-counts-label{font-weight:600}.tt-counts-input{width:120px}.tt-counts-done{color:#389e0d}@media(max-width:900px){.tt-counts-layout{flex-direction:column}.tt-counts-panel{flex-basis:auto;padding-top:0}.tt-foundations .tt-compare-canvas{height:45vh}}
