:root{--color-bg:#faf9f6;--color-bg-gradient:linear-gradient(180deg, #fcfaf7 0%, #faf8f5 100%);--color-bg-elevated:#fff;--color-bg-card:#fff;--color-bg-glass:#fffefcd9;--color-bg-input:#f5f3ed;--color-bg-hover:#efece5;--color-bg-subtle:#f8f6f1;--color-border:#e9e4db;--color-border-strong:#d5cfc3;--color-border-accent:#c3bbaf;--color-text-primary:#1c1917;--color-text-secondary:#6e6961;--color-text-muted:#a39e96;--color-text-inverse:#fff;--color-accent:#7c3aed;--color-accent-light:#a78bfa;--color-accent-hover:#6d28d9;--color-accent-dim:#7c5dfa0d;--color-accent-glow:#7c5dfa14;--color-accent-ring:#7c5dfa26;--color-logo-start:#ec4899;--color-logo-end:#7c3aed;--sidebar-w:240px;--color-sidebar-bg:#f4f1ea;--color-sidebar-text:#6e6961;--color-sidebar-hover:#1c191709;--color-sidebar-active:#1c191711;--sidebar-shadow-active:inset 0 1px 0 #fff6, 0 1px 2px #1c19170a, 0 0 0 1px #1c191705;--color-sidebar-border:#e6e1d5;--color-success:#166534;--color-success-dim:#16653414;--color-warning:#9a3412;--color-warning-dim:#9a341214;--color-danger:#9f1239;--color-danger-dim:#9f123914;--color-info:#0369a1;--color-info-dim:#0369a114;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-2xl:24px;--r-full:9999px;--shadow-xs:0 1px 2px #1c191704;--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--shadow-accent:0 0 0 2px #1c1917, 0 10px 24px #1c19170f;--shadow-glow:var(--shadow-glow);--shadow-glass:0 8px 32px #1c19170a;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:26px;--text-3xl:34px;--text-4xl:44px;--t-fast:.12s cubic-bezier(.2, .8, .2, 1);--t-base:.22s cubic-bezier(.2, .8, .2, 1);--t-slow:.32s cubic-bezier(.16, 1, .3, 1);--header-h:44px;--bg-primary:var(--color-bg);--bg-secondary:var(--color-bg-elevated);--bg-tertiary:var(--color-bg-input);--bg-card:var(--color-bg-card);--bg-hover:var(--color-bg-hover);--border-primary:var(--color-border);--border-secondary:#0000000a;--border-accent:var(--color-border-accent);--text-primary:var(--color-text-primary);--text-secondary:var(--color-text-secondary);--text-tertiary:var(--color-text-muted);--text-inverse:var(--color-text-inverse);--accent-primary:var(--color-accent);--accent-secondary:var(--color-accent-light);--accent-gradient:linear-gradient(135deg, var(--color-logo-start), var(--color-logo-end));--accent-glow:var(--color-accent-glow);--success:var(--color-success);--warning:var(--color-warning);--error:var(--color-danger);--info:var(--color-info);--chain-color:var(--color-border);--success-glow:#4caf504d;--radius-sm:var(--r-sm);--radius-md:var(--r-md);--radius-lg:var(--r-lg);--radius-xl:var(--r-xl);--radius-full:var(--r-full);--kanban-todo:#9e9e9e;--kanban-progress:#42a5f5;--kanban-done:#4caf50;--kanban-review:#ff9800;--duration-fast:.15s;--duration-normal:.3s;--duration-slow:.5s;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--sidebar-width:var(--sidebar-w);--header-height:var(--header-h)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "cv11";font-family:Inter,PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px}body{background:var(--color-bg);min-height:100vh;margin:0;padding:0;overflow:hidden}#root{width:100vw;height:100vh;overflow:hidden}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--r-full);background:#1c191714}::-webkit-scrollbar-thumb:hover{background:#1c191729}::selection{color:var(--color-text-primary);background:#7c3aed14}.page-shell{background:linear-gradient(#d9deda 0%,#f3efe8 56%,#f7b09c 100%);height:100%;padding:20px;overflow:hidden}.page-shell.quotation-page-shell{background:linear-gradient(#d9deda 0%,#f3efe8 56%,#f7b09c 100%);padding:20px 20px 20px 0}.quotation-page-shell .ant-card,.quotation-page-shell .ant-card-head,.quotation-page-shell .ant-card-body{background:#fff!important}.quotation-page-shell .ant-card{transition:transform .18s var(--ease-out), box-shadow .18s ease, border-color .18s ease, background .18s ease;border-color:var(--color-sidebar-border)!important;border-radius:8px!important;box-shadow:0 1px 2px #1c191706!important}.quotation-page-shell .ant-card:hover{border-color:#1c191729!important;box-shadow:0 7px 18px #1c19170b!important}.quotation-page-shell .ant-divider{border-color:var(--color-sidebar-border)!important}.quotation-page-shell .ant-btn,.quotation-modal .ant-btn,.cad-floating-dock .ant-btn{transition:transform .16s var(--ease-out), box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease, opacity .16s ease!important}.quotation-page-shell .ant-btn:not(:disabled):hover,.quotation-modal .ant-btn:not(:disabled):hover,.cad-floating-dock .ant-btn:not(:disabled):hover{transform:translateY(-1px)}.quotation-page-shell .ant-btn:not(:disabled):active,.quotation-modal .ant-btn:not(:disabled):active,.cad-floating-dock .ant-btn:not(:disabled):active{transform:translateY(0)scale(.985)}.quotation-page-shell .ant-btn-link{color:var(--color-text-primary)!important}.quotation-page-shell .ant-btn-link:not(:disabled):hover,.quotation-page-shell .ant-btn-text:not(:disabled):hover{color:var(--color-text-primary)!important;background:#1c19170b!important}.quotation-page-shell .ant-btn-default:not(:disabled):hover{color:var(--color-text-primary)!important;border-color:#1c191738!important;box-shadow:0 8px 18px #1c19170b!important}.quotation-page-shell .ant-btn-primary:not(:disabled):hover,.quotation-modal .ant-btn-primary:not(:disabled):hover{box-shadow:0 9px 20px #1c19171a!important}.quotation-page-shell .ant-tag,.quotation-modal .ant-tag{transition:transform .16s var(--ease-out), box-shadow .16s ease, border-color .16s ease, background .16s ease, opacity .16s ease!important}.quotation-page-shell .ant-tag[style*="cursor: pointer"]:hover,.quotation-modal .ant-tag[style*="cursor: pointer"]:hover{transform:translateY(-1px);box-shadow:0 7px 16px #1c19170e}.quotation-page-shell .ant-tag[style*="cursor: pointer"]:active,.quotation-modal .ant-tag[style*="cursor: pointer"]:active{transform:translateY(0)scale(.985)}.quotation-page-shell .ant-input,.quotation-page-shell .ant-select-selector,.quotation-modal .ant-input,.quotation-modal .ant-select-selector{transition:border-color .16s,box-shadow .16s,background .16s!important}.quotation-page-shell .ant-input:hover,.quotation-page-shell .ant-select-selector:hover,.quotation-modal .ant-input:hover,.quotation-modal .ant-select-selector:hover{border-color:#1c191733!important}.quotation-page-shell .ant-segmented-item-selected{color:var(--color-text-primary)!important;box-shadow:0 6px 16px #1c19170f!important}.quotation-page-shell .ant-segmented,.quotation-modal .ant-segmented{transition:background .18s,box-shadow .18s}.quotation-page-shell .ant-segmented-item,.quotation-modal .ant-segmented-item{transition:color .16s ease, background .16s ease, transform .16s var(--ease-out)!important}.quotation-page-shell .ant-segmented-item:hover,.quotation-modal .ant-segmented-item:hover{transform:translateY(-1px)}.quotation-page-shell .ant-steps-item-icon,.quotation-page-shell .ant-steps-item-title,.quotation-page-shell .ant-tabs-tab,.quotation-modal .ant-tabs-tab{transition:color .18s ease, border-color .18s ease, transform .18s var(--ease-out), background .18s ease!important}.quotation-page-shell .ant-steps-item:not(.ant-steps-item-active):hover .ant-steps-item-icon,.quotation-page-shell .ant-steps-item:not(.ant-steps-item-active):hover .ant-steps-item-title,.quotation-page-shell .ant-tabs-tab:hover,.quotation-modal .ant-tabs-tab:hover{transform:translateY(-1px)}.quotation-page-shell .ant-table-tbody>tr{transition:background .16s ease, transform .16s var(--ease-out), box-shadow .16s ease}.quotation-page-shell .ant-table-tbody>tr:hover>td{background:#1c191707!important}.quotation-panel{animation:quotationPanelIn .26s var(--ease-out) both;will-change:transform;transition:transform .18s var(--ease-out), box-shadow .18s ease, border-color .18s ease, background .18s ease!important}.quotation-config-panel,.quotation-summary-panel,.quotation-rail{box-shadow:0 12px 30px #1c19170e!important}.quotation-config-panel:hover,.quotation-summary-panel:hover,.quotation-rail:hover{transform:translateY(-1px);border-color:#1c191729!important;box-shadow:0 18px 42px #1c191713!important}.quotation-summary-panel{animation-delay:45ms}.quotation-rail{animation-delay:35ms}.quotation-rail>div{transition:transform .16s var(--ease-out), box-shadow .16s ease, border-color .16s ease, background .16s ease}.quotation-rail>div:hover{transform:translateY(-1px);box-shadow:0 7px 16px #1c19170b}.quotation-panel-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.quotation-panel-title-wrap,.quotation-section-title-wrap{gap:2px;min-width:0;display:grid}.quotation-panel-title,.quotation-section-title{color:var(--color-text-primary);font-size:13px;font-weight:850;line-height:18px}.quotation-panel-subtitle,.quotation-section-subtitle{color:var(--color-sidebar-text);font-size:11px;font-weight:550;line-height:16px}.quotation-project-strip{background:#1c191705;border:1px solid #1c191714;border-radius:8px;align-items:center;gap:8px;margin-bottom:14px;padding:8px 10px;display:flex}.quotation-step-card.ant-card .ant-card-body{padding:14px!important}.quotation-field-label{color:var(--color-sidebar-text);margin-bottom:6px;font-size:11px;font-weight:700;line-height:15px;display:block}.quotation-form-explain{border-radius:8px}.quotation-config-row{background:#1c191703;border:1px solid #1c19170e;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:30px;padding:6px 8px;display:flex}.quotation-tier-card.ant-card{transition:transform .16s var(--ease-out), box-shadow .16s ease, border-color .16s ease, background .16s ease}.quotation-tier-card.ant-card:hover{transform:translateY(-1px);box-shadow:0 7px 16px #1c19170b!important}.quotation-room-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;display:grid}.quotation-room-card.ant-card{transition:border-color .18s ease, box-shadow .18s ease, transform .18s var(--ease-out), background .18s ease;overflow:hidden;background:#fffffff0!important;border-color:#1c191713!important}.quotation-room-card.ant-card .ant-card-head{min-height:42px;border-bottom-color:#1c19170e!important;padding:0 12px!important}.quotation-room-card.ant-card .ant-card-body{padding:10px 12px 12px!important}.quotation-room-title{align-items:center;gap:7px;min-width:0;display:inline-flex}.quotation-room-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:850;line-height:18px;overflow:hidden}.quotation-room-actions{align-items:center;gap:4px;display:inline-flex}.quotation-room-actions .ant-btn{height:26px}.quotation-base-items{background:#1c191704;border:1px solid #1c191712;border-radius:8px;margin-bottom:8px;padding:8px}.quotation-base-items-label{color:var(--color-sidebar-text);margin-bottom:5px;font-size:10.5px;font-weight:750;line-height:14px;display:block}.quotation-base-items .ant-tag{color:var(--color-sidebar-text)!important;background:#fff!important;border-color:#1c191714!important}.quotation-extra-list{flex-direction:column;gap:6px;display:flex;overflow:hidden}.quotation-extra-row{transition:background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s var(--ease-out);background:#1c191703;border:1px solid #1c191712;border-radius:8px;grid-template-columns:minmax(0,1fr) 132px 78px 66px;align-items:center;gap:8px;padding:8px;display:grid;overflow:hidden}.quotation-extra-row:hover{background:#fff;border-color:#1c191721;transform:translateY(-1px);box-shadow:0 6px 16px #1c191709}.quotation-extra-name{min-width:0;color:var(--color-text-primary);overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:16px}.quotation-extra-price{color:var(--color-text-primary);font-size:11px;font-weight:650;line-height:15px}.quotation-empty-hint{color:var(--color-sidebar-text);background:#1c191703;border:1px dashed #1c19171f;border-radius:8px;padding:10px 11px;font-size:12px;font-weight:550;line-height:18px}.quotation-global-section{border-top:1px solid var(--color-sidebar-border);margin-top:16px;padding-top:12px}.quotation-global-section .quotation-panel-header{margin-bottom:8px}.quotation-global-list{flex-direction:column;gap:8px;display:flex}.quotation-global-card{transition:background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s var(--ease-out);background:#fff;border:1px solid #1c191712;border-radius:8px;flex-direction:column;gap:8px;padding:10px 11px;display:flex;box-shadow:0 1px 2px #1c191705}.quotation-global-card:hover{border-color:#1c191721;transform:translateY(-1px);box-shadow:0 7px 18px #1c19170a}.quotation-global-head{align-items:flex-start;gap:8px;min-width:0;display:flex}.quotation-global-title{color:var(--color-text-primary);overflow-wrap:anywhere;font-size:12px;font-weight:750;line-height:18px;display:block}.quotation-global-spec{color:var(--color-sidebar-text);overflow-wrap:anywhere;margin-top:3px;font-size:11px;font-weight:500;line-height:16px;display:block}.quotation-global-controls{align-items:center;gap:8px;display:grid}.quotation-summary-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.quotation-summary-actions{flex-wrap:wrap;flex:1;justify-content:flex-end;gap:4px;min-width:0;display:flex}.quotation-summary-actions .ant-btn{height:28px;padding-inline:8px}.quotation-summary-action-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.quotation-summary-action-bar .ant-btn{width:100%;height:30px;color:var(--color-text-primary);border-color:#1c19171c;padding-inline:6px;font-size:11.5px;font-weight:750}.quotation-summary-action-bar .ant-btn:not(:disabled):hover{border-color:#1c191733!important;box-shadow:0 9px 18px #1c19170e!important}.quotation-summary-meta{background:0 0;border:0;border-radius:0;margin-top:8px;padding:0}.quotation-summary-meta-title{color:var(--color-text-primary);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;line-height:18px;display:block;overflow:hidden}.quotation-summary-meta-subtitle{color:var(--color-sidebar-text);text-align:center;margin-top:2px;font-size:11px;font-weight:550;line-height:16px;display:block}.quotation-summary-row{color:var(--color-sidebar-text);justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:600;line-height:18px;display:flex}.quotation-summary-row.is-workdays{cursor:pointer;width:100%;transition:transform .16s var(--ease-out), border-color .16s ease, box-shadow .16s ease;background:#fff;border:1px solid #1c19171a;border-radius:8px;padding:7px 9px}.quotation-summary-row.is-workdays:hover{border-color:#1c19172e;transform:translateY(-1px);box-shadow:0 8px 18px #1c19170b}.quotation-summary-row.is-workdays:active{transform:translateY(0)scale(.992)}.quotation-summary-row.is-workdays:focus-visible,.quotation-rail-schedule-card:focus-visible,.quotation-summary-compare-row:focus-visible{outline-offset:2px;outline:2px solid #1c191742}.quotation-summary-row+.quotation-summary-row{margin-top:8px}.quotation-summary-detail-list .quotation-summary-row+.quotation-summary-row{margin-top:0}.quotation-summary-row-value{color:var(--color-text-primary);text-align:right;white-space:nowrap;font-size:12px;font-weight:800;line-height:18px}.quotation-summary-row strong,.quotation-summary-row .ant-typography{font-size:12px}.quotation-workdays-card,.quotation-rail-schedule-card{appearance:none;font:inherit;color:inherit}.quotation-rail-schedule-card{cursor:pointer}.quotation-workdays-card{text-align:left;align-items:stretch}.quotation-workdays-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.quotation-workdays-label{color:var(--color-sidebar-text);font-size:12px;font-weight:800;line-height:17px}.quotation-workdays-sub{color:var(--color-sidebar-text);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:600;line-height:15px;overflow:hidden}.quotation-workdays-date{color:var(--color-text-primary);flex-direction:column;flex:none;justify-content:center;align-items:flex-end;gap:2px;display:flex}.quotation-workdays-date strong{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-size:12px;font-weight:900;line-height:16px;display:block;overflow:hidden}.quotation-workdays-date em{color:var(--color-sidebar-text);font-size:10px;font-style:normal;font-weight:650;line-height:13px}.quotation-workdays-popover .ant-popover-inner{border-radius:10px;box-shadow:0 14px 32px #1c19171f}.quotation-workdays-popover .ant-popover-inner-content{padding:10px}.quotation-workdays-popover-content{width:264px}.quotation-workdays-popover-head{color:var(--color-text-primary);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:850;line-height:18px;display:flex}.quotation-workdays-popover-content .ant-picker-calendar{border:1px solid #1c191714;border-radius:8px;overflow:hidden}.quotation-workdays-popover-content .ant-picker-panel{border-top:0}.quotation-workdays-popover-content .ant-picker-calendar-header{padding:7px 8px 5px}.quotation-workdays-popover-content .ant-picker-calendar-mini .ant-picker-content th{height:22px;color:var(--color-sidebar-text);font-size:10px;font-weight:700}.quotation-workdays-popover-content .ant-picker-calendar-mini .ant-picker-cell{padding:1px 0}.quotation-workdays-popover-result{color:var(--color-sidebar-text);border-top:1px solid #1c191714;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding-top:8px;font-size:11px;font-weight:650;line-height:16px;display:flex}.quotation-workdays-popover-result strong{color:var(--color-text-primary);text-align:right;font-size:12px;font-weight:900}.quotation-workdays-popover-meta,.quotation-workdays-popover-note{color:var(--color-sidebar-text);margin-top:4px;font-size:10.5px;font-weight:600;line-height:15px}.quotation-workdays-popover-note{color:#1c191794}.quotation-summary-hero{text-align:center;transition:transform .18s var(--ease-out), border-color .18s ease, box-shadow .18s ease;will-change:transform;background:#fff;border:1px solid #9f123924;border-radius:10px;padding:12px 12px 11px;box-shadow:inset 0 0 0 1px #ffffffb8,0 8px 20px #1c191709}.quotation-summary-hero:hover{border-color:#9f123938;transform:translateY(-2px);box-shadow:inset 0 0 0 1px #ffffffb8,0 14px 30px #1c19170f}.quotation-summary-total-label{color:var(--color-sidebar-text);text-align:left;justify-content:space-between;align-items:center;gap:8px;margin-bottom:3px;font-size:11px;font-weight:800;line-height:15px;display:flex}.quotation-summary-total{color:var(--color-danger);letter-spacing:0;text-align:left;font-size:29px;font-weight:900;line-height:34px}.quotation-summary-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.quotation-summary-stat{min-width:0;transition:transform .18s var(--ease-out), border-color .18s ease, box-shadow .18s ease, opacity .18s ease;will-change:transform;background:#fff;border:1px solid #1c191714;border-radius:8px;padding:7px 7px 6px}.quotation-summary-stat:hover{transform:translateY(-2px);box-shadow:0 10px 22px #1c19170e;border-color:#1c19172e!important}.quotation-summary-stat span{color:var(--color-sidebar-text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:750;line-height:13px;display:block;overflow:hidden}.quotation-summary-stat strong{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;font-weight:900;line-height:16px;display:block;overflow:hidden}.quotation-summary-stat.is-help{cursor:help}.quotation-summary-stat.is-help:hover{box-shadow:0 8px 18px #1c19170b;border-color:#1c19172e!important}.quotation-explainable{cursor:help;transition:transform .18s var(--ease-out), border-color .18s ease, box-shadow .18s ease, opacity .18s ease, filter .18s ease;position:relative}.quotation-explainable:hover{box-shadow:0 8px 18px #1c19170b;border-color:#1c19172e!important}.quotation-explainable:focus-visible{outline-offset:2px;outline:2px solid #1c191742}.quotation-tooltip .ant-tooltip-inner,.quotation-tooltip .ant-tooltip-container{max-width:320px;color:var(--color-text-primary);background:#fffffffa;border:1px solid #1c19171f;border-radius:8px;padding:9px 10px;box-shadow:0 14px 34px #1c191721,0 2px 6px #1c19170d}.quotation-tooltip .ant-tooltip-arrow:before{background:#fffffffa}.quotation-tooltip-content{color:var(--color-text-primary);text-align:left;white-space:pre-line;font-size:11.5px;font-weight:650;line-height:17px;display:block}.quotation-summary-fee-card{background:#fff;border:1px solid #1c191714;border-radius:10px;padding:9px;transition:border-color .18s,box-shadow .18s}.quotation-summary-fee-card:hover{border-color:#1c191724;box-shadow:0 10px 24px #1c19170b}.quotation-summary-fee-row{min-height:30px;color:var(--color-sidebar-text);transition:transform .16s var(--ease-out), box-shadow .16s ease, border-color .16s ease;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:650;line-height:18px;display:flex}.quotation-summary-fee-row+.quotation-summary-fee-row{border-top:1px solid #1c19170f}.quotation-summary-fee-row .ant-input-number{border-radius:7px}.quotation-summary-fee-row:hover{transform:translate(2px)}.quotation-summary-fee-row .ant-input-number-focused,.quotation-summary-fee-row .ant-input-number:focus-within{border-color:#1c19173d!important;box-shadow:0 0 0 3px #1c19170e!important}.quotation-summary-compare-row{width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;transition:transform .16s var(--ease-out), border-color .16s var(--ease-out), background .16s var(--ease-out), box-shadow .16s var(--ease-out);background:#9f12390b;border:1px solid #9f12392e;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 9px;display:flex}.quotation-summary-compare-row:hover,.quotation-summary-compare-row:focus-visible{background:#9f123912;border-color:#9f123952;transform:translateY(-1px);box-shadow:0 8px 18px #9f123914}.quotation-summary-compare-row:active{transform:translateY(0)scale(.992)}.quotation-summary-compare-copy{gap:1px;min-width:0;display:grid}.quotation-summary-compare-copy strong,.quotation-summary-compare-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.quotation-summary-compare-copy strong{color:var(--color-text-primary);font-size:11.5px;font-weight:850;line-height:16px}.quotation-summary-compare-copy small{color:var(--color-sidebar-text);font-size:10px;font-weight:700;line-height:14px}.quotation-summary-compare-action{height:22px;color:var(--color-danger);transition:transform .16s var(--ease-out), border-color .16s ease, box-shadow .16s ease;background:#fff;border:1px solid #9f123938;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 9px;font-size:10.5px;font-weight:850;line-height:1;display:inline-flex}.quotation-summary-compare-row:hover .quotation-summary-compare-action{border-color:#9f12394d;transform:translate(1px);box-shadow:0 6px 14px #9f123914}.quotation-compare-hero{background:linear-gradient(#9f123909,#fff 46%);border:1px solid #1c191714;border-radius:8px;gap:12px;margin-bottom:20px;padding:12px;display:grid}.quotation-compare-hero-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.quotation-compare-hero-title.ant-typography{color:var(--color-text-primary);font-size:14px;font-weight:850;line-height:20px;display:block}.quotation-compare-hero-sub.ant-typography{color:var(--color-sidebar-text);margin-top:1px;font-size:11.5px;line-height:18px;display:block}.quotation-compare-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.quotation-compare-plan-card{background:#fff;border:1px solid #1c191714;border-radius:8px;min-width:0;padding:10px}.quotation-compare-plan-card.is-active{border-color:#9f12394d;box-shadow:inset 0 0 0 1px #9f12391a}.quotation-compare-plan-card.is-m9{background:#9f12390a}.quotation-compare-plan-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px;display:flex}.quotation-compare-plan-top strong{min-width:0;color:var(--color-text-primary);font-size:12px;font-weight:850;line-height:18px}.quotation-compare-plan-top span{color:var(--color-sidebar-text);background:#1c19170b;border-radius:999px;flex:none;padding:2px 7px;font-size:10.5px;font-weight:800;line-height:14px}.quotation-compare-plan-card.is-m9 .quotation-compare-plan-top span{color:var(--color-danger);background:#9f123917}.quotation-compare-plan-card p{color:var(--color-sidebar-text);margin:0;font-size:11.5px;line-height:18px}.quotation-compare-m9-panel{border-top:1px solid #1c191712;gap:8px;padding-top:10px;display:grid}.quotation-compare-m9-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.quotation-compare-m9-title strong{color:var(--color-text-primary);font-size:12px;font-weight:850;line-height:18px}.quotation-compare-m9-title span{color:var(--color-sidebar-text);font-size:10.5px;font-weight:700;line-height:16px}.quotation-compare-highlight-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.quotation-compare-highlight-card{background:#fff;border:1px solid #9f123921;border-radius:8px;gap:5px;min-width:0;padding:9px;display:grid}.quotation-compare-highlight-card strong{min-width:0;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850;line-height:17px;overflow:hidden}.quotation-compare-highlight-card span{min-width:0;color:var(--color-danger);overflow-wrap:anywhere;font-size:11.5px;font-weight:800;line-height:17px}.quotation-compare-highlight-card small{color:var(--color-sidebar-text);overflow-wrap:anywhere;font-size:10.5px;line-height:15px}.quotation-compare-empty-state{color:var(--color-sidebar-text);text-align:center;border:1px dashed #1c19171f;border-radius:8px;grid-column:1/-1;padding:12px;font-size:12px}.quotation-compare-section{gap:9px;margin-bottom:16px;display:grid}.quotation-compare-section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.quotation-compare-section-head strong{color:var(--color-text-primary);font-size:13px;font-weight:850;line-height:18px}.quotation-compare-section-head span{color:var(--color-sidebar-text);font-size:10.5px;font-weight:700;line-height:16px}.quotation-compare-price-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.quotation-compare-price-card{background:#fff;border:1px solid #1c191714;border-radius:8px;gap:3px;min-width:0;padding:10px;display:grid}.quotation-compare-price-card.is-active{background:#9f12390a;border-color:#9f123947}.quotation-compare-price-card span{color:var(--color-sidebar-text);font-size:10.5px;font-weight:850;line-height:14px}.quotation-compare-price-card strong{color:var(--color-text-primary);font-size:18px;font-weight:900;line-height:24px}.quotation-compare-price-card.is-active strong{color:var(--color-danger)}.quotation-compare-price-card small{color:var(--color-sidebar-text);font-size:10.5px;font-weight:700;line-height:15px}.quotation-compare-diff-table .ant-table{border:1px solid #1c191714;border-radius:8px;overflow:hidden}.quotation-compare-diff-table .ant-table-thead>tr>th{font-size:11px;color:var(--color-sidebar-text)!important;background:#1c191706!important;font-weight:850!important}.quotation-compare-diff-table .ant-table-tbody>tr>td{vertical-align:top}.quotation-compare-change{min-width:58px;color:var(--color-sidebar-text);white-space:nowrap;background:#1c191709;border:1px solid #1c19171a;border-radius:999px;justify-content:center;align-items:center;padding:2px 7px;font-size:10.5px;font-weight:850;line-height:15px;display:inline-flex}.quotation-compare-change.is-m7{color:#3d6475;background:#3d647512;border-color:#3d64752e}.quotation-compare-change.is-m9{color:var(--color-danger);background:#9f123912;border-color:#9f123933}.quotation-compare-diff-title{gap:2px;min-width:0;display:grid}.quotation-compare-diff-title strong{min-width:0;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850;line-height:17px;overflow:hidden}.quotation-compare-diff-title span{color:var(--color-sidebar-text);font-size:10.5px;font-weight:700;line-height:15px}.quotation-compare-diff-value{max-width:100%;color:var(--color-text-primary);overflow-wrap:anywhere;font-size:11.5px;font-weight:750;line-height:17px;display:inline-flex}.quotation-compare-diff-value.is-empty{color:#1c191761;font-weight:650}@media (width<=900px){.quotation-compare-plan-grid,.quotation-compare-highlight-grid,.quotation-compare-price-grid{grid-template-columns:1fr}}.quotation-summary-section-label{color:var(--color-sidebar-text);font-size:11px;font-weight:800;line-height:16px}.quotation-summary-section-head{color:var(--color-sidebar-text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;font-size:10.5px;font-weight:650;line-height:16px;display:flex}.quotation-summary-room-row span:first-child{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.quotation-summary-room-row small{color:var(--color-sidebar-text);flex:none;font-size:10px;font-weight:650;line-height:14px}.quotation-summary-detail-list{flex-direction:column;gap:6px;display:flex}.quotation-summary-detail-card{transition:transform .18s var(--ease-out), border-color .18s ease, box-shadow .18s ease, opacity .18s ease, filter .18s ease;background:#fff;border:1px solid #1c191712;border-radius:8px;padding:7px 8px;position:relative;overflow:hidden}.quotation-summary-detail-card:hover{transform:translateY(-2px);border-color:#1c19172e!important;box-shadow:0 10px 24px #1c19170f!important}.quotation-summary-detail-card:active{transform:translateY(0)scale(.992);box-shadow:0 5px 14px #1c19170b!important}.quotation-summary-detail-card:focus-visible{outline-offset:2px;outline:2px solid #1c191747;border-color:#1c19173d!important}.quotation-professional-card:after{content:"";opacity:0;transform-origin:50%;width:3px;transition:opacity .18s ease, transform .18s var(--ease-out);background:currentColor;border-radius:0 999px 999px 0;position:absolute;inset:8px auto 8px 0;transform:scaleY(.55)}.quotation-professional-card.is-selected{color:var(--color-text-primary);box-shadow:inset 0 0 0 1px #ffffff94}.quotation-professional-card.is-selected:after{opacity:.34;transform:scaleY(1)}.quotation-professional-card.is-muted{filter:saturate(.72)}.quotation-professional-card.is-muted:hover{filter:saturate(.9);opacity:.9!important}.quotation-summary-more-btn.ant-btn{width:100%;height:26px;color:var(--color-sidebar-text);border-radius:8px;margin-top:6px;font-size:11px;font-weight:750}.quotation-summary-more-btn.ant-btn:hover{color:var(--color-text-primary)!important;background:#1c19170b!important}.quotation-summary-text-toggle.ant-btn{text-align:center;height:auto;margin-top:2px;box-shadow:none!important;background:0 0!important;border:0!important;padding:2px 0!important}.quotation-summary-text-toggle.ant-btn:not(:disabled):hover{transform:none;box-shadow:none!important;background:0 0!important}.quotation-summary-material-text-link{width:100%;color:var(--color-text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:2px 0;display:grid}.quotation-summary-material-text-link span{min-width:0;font-size:var(--quote-type-body);font-weight:var(--quote-weight-title);line-height:var(--quote-line-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quotation-summary-material-text-link small{color:var(--color-sidebar-text);font-size:var(--quote-type-meta);font-weight:var(--quote-weight-meta);line-height:var(--quote-line-meta);grid-column:1/-1}.quotation-summary-material-text-link strong{color:var(--color-text-primary);font-size:var(--quote-type-meta);font-weight:850;line-height:var(--quote-line-meta)}.quotation-summary-material-text-link:hover span,.quotation-summary-material-text-link:hover strong{text-underline-offset:3px;text-decoration:underline}.quotation-modal .ant-modal-content{animation:quotationModalLift .22s var(--ease-out);border:1px solid #1c19171a;box-shadow:0 24px 70px #1c191729,0 6px 18px #1c191712!important}.quotation-modal .ant-modal-close{transition:transform .16s var(--ease-out), background .16s ease, box-shadow .16s ease;border-radius:8px}.quotation-modal .ant-modal-close:hover{transform:translateY(-1px);box-shadow:0 7px 16px #1c19170e}.quotation-modal .ant-modal-close:active{transform:translateY(0)scale(.96)}.quotation-modal .ant-modal-close:focus-visible{outline-offset:2px;outline:2px solid #1c191742}.quotation-professional-modal-head{transition:transform .18s var(--ease-out), border-color .18s ease, box-shadow .18s ease}.quotation-professional-modal-head:hover{transform:translateY(-1px);box-shadow:0 10px 24px #1c19170b;border-color:#1c191729!important}.quotation-professional-table .ant-table{border-radius:8px;overflow:hidden}.quotation-professional-table .ant-table-container{border-radius:8px}.quotation-professional-table .ant-table-thead>tr>th{white-space:nowrap;font-size:11px;line-height:16px;color:var(--color-sidebar-text)!important;font-weight:850!important}.quotation-professional-table .ant-table-tbody>tr>td{transition:background .16s,box-shadow .16s}.quotation-professional-table .ant-table-tbody>tr:hover>td{box-shadow:inset 0 1px #1c191709,inset 0 -1px #1c191709}.quotation-page-shell .ant-checkbox-wrapper,.quotation-modal .ant-checkbox-wrapper{transition:color .16s ease, transform .16s var(--ease-out)}.quotation-page-shell .ant-checkbox-wrapper:hover,.quotation-modal .ant-checkbox-wrapper:hover{transform:translateY(-1px)}.quotation-page-shell .ant-checkbox-inner,.quotation-modal .ant-checkbox-inner{transition:border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s var(--ease-out)!important}.quotation-page-shell .ant-checkbox-checked .ant-checkbox-inner,.quotation-modal .ant-checkbox-checked .ant-checkbox-inner{box-shadow:0 0 0 3px #1c19170e}.quotation-page-shell .ant-checkbox:active .ant-checkbox-inner,.quotation-modal .ant-checkbox:active .ant-checkbox-inner{transform:scale(.92)}.quotation-page-shell,.quotation-modal{font-variant-numeric:tabular-nums;letter-spacing:0}.quotation-page-shell .ant-typography,.quotation-modal .ant-typography,.quotation-page-shell .ant-btn,.quotation-modal .ant-btn,.quotation-page-shell .ant-input,.quotation-modal .ant-input,.quotation-page-shell .ant-select,.quotation-modal .ant-select,.quotation-page-shell .ant-tag,.quotation-modal .ant-tag,.quotation-page-shell .ant-tabs,.quotation-modal .ant-tabs,.quotation-page-shell .ant-segmented,.quotation-modal .ant-segmented{letter-spacing:0;font-family:inherit}.quotation-modal .ant-modal-title,.quotation-page-shell .ant-card-head-title{color:var(--color-text-primary)!important;font-size:13px!important;font-weight:800!important;line-height:20px!important}.quotation-page-shell .ant-btn,.quotation-modal .ant-btn{font-size:12px;font-weight:700;line-height:18px}.quotation-page-shell .ant-input,.quotation-modal .ant-input,.quotation-page-shell .ant-select-selection-item,.quotation-modal .ant-select-selection-item,.quotation-page-shell .ant-select-selection-placeholder,.quotation-modal .ant-select-selection-placeholder{font-size:12px;font-weight:500;line-height:18px}.quotation-page-shell .ant-tag,.quotation-modal .ant-tag{border-radius:5px;font-size:10px;font-weight:700;line-height:16px}.quotation-page-shell .ant-segmented-item-label,.quotation-modal .ant-segmented-item-label,.quotation-page-shell .ant-tabs-tab-btn,.quotation-modal .ant-tabs-tab-btn{font-size:12px;font-weight:700;line-height:18px}.quotation-picker-modal .ant-tag,.quotation-picker-modal .ant-btn{will-change:transform}.quotation-picker-grid{grid-template-columns:repeat(auto-fill,minmax(188px,1fr));align-items:stretch;gap:8px;display:grid}.quotation-picker-grid-compact{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}.quotation-picker-section-title{color:var(--color-text-primary);margin:0 0 8px;font-size:12px;font-weight:700;line-height:18px}.quotation-picker-panel-heading{min-width:0;padding:2px 2px 4px}.quotation-picker-panel-title{color:var(--color-text-primary);font-size:13px;font-weight:800;line-height:18px}.quotation-picker-panel-title.is-danger{color:var(--color-danger)}.quotation-picker-panel-subtitle,.quotation-picker-modal-note,.quotation-picker-empty{color:var(--color-sidebar-text);font-size:11px;font-weight:500;line-height:16px}.quotation-picker-modal-note{margin-bottom:8px}.quotation-picker-empty{padding:10px 2px}.quotation-picker-card.ant-btn{transition:border-color .16s,box-shadow .16s,transform .16s,background .16s;overflow:hidden;color:var(--color-text-primary)!important;background:#fff!important;border:1px solid #1c19171a!important;border-radius:8px!important;box-shadow:0 1px 2px #1c191706!important}.quotation-picker-card.ant-btn>span{width:100%;display:block}.quotation-picker-card.ant-btn:not(:disabled):hover{transform:translateY(-1px);background:#fff!important;border-color:#1c19172e!important;box-shadow:0 9px 20px #1c19170f!important}.quotation-picker-card.ant-btn:not(:disabled):active{transform:translateY(0)scale(.992)}.quotation-picker-card.ant-btn.is-required{border-color:#9f12392e!important}.quotation-picker-card.ant-btn.is-added{background:#1c191705!important}.quotation-picker-card.ant-btn.is-just-added,.quotation-picker-added-card.is-just-added{animation:.9s ease-out quotationPickerPulse;border-color:#1c191742!important}.quotation-picker-card.ant-btn.is-just-added{box-shadow:0 10px 24px #1c191713!important}.quotation-picker-card-inner{flex-direction:column;gap:5px;width:100%;min-height:76px;padding:9px 10px;display:flex}.quotation-picker-card-head,.quotation-picker-added-head{align-items:center;gap:5px;min-width:0;display:flex}.quotation-picker-card-head{flex-wrap:wrap;min-height:18px}.quotation-picker-badge{white-space:nowrap;border:1px solid #1c19171f;border-radius:5px;flex:none;align-items:center;max-width:100%;height:18px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;display:inline-flex}.quotation-picker-badge-muted{color:var(--color-sidebar-text);text-overflow:ellipsis;background:#1c191709;border-color:#1c191714;overflow:hidden}.quotation-picker-card-title,.quotation-picker-added-title{min-width:0;color:var(--color-text-primary);overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:17px}.quotation-picker-card-subtitle{color:var(--color-sidebar-text);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;font-weight:500;line-height:15px;display:-webkit-box;overflow:hidden}.quotation-picker-card-foot{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-top:auto;padding-top:2px;display:flex}.quotation-picker-card-price{white-space:nowrap;flex:none;font-size:11px;font-weight:800;line-height:16px}.quotation-picker-card-meta{min-width:0;color:var(--color-sidebar-text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;line-height:14px;overflow:hidden}.quotation-picker-added-card{background:#fff;border:1px solid #1c19171a;border-radius:8px;padding:8px 9px;transition:border-color .16s,box-shadow .16s,background .16s;box-shadow:0 1px 2px #1c191706}.quotation-picker-added-head{justify-content:space-between;margin-bottom:4px}.quotation-picker-added-head .ant-btn{flex:none;width:24px;height:24px;padding:0!important}.quotation-picker-added-meta{min-width:0;color:var(--color-sidebar-text);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:11px;font-weight:600;line-height:16px;display:flex}.quotation-picker-added-meta span:last-child{color:var(--color-text-primary);white-space:nowrap;font-weight:800}.quotation-picker-session-bar{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border:1px solid #1c19171f;border-radius:10px;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:-2px;padding:8px 10px;animation:.16s ease-out quotationPickerBarIn;display:grid;position:sticky;bottom:-1px;box-shadow:0 14px 32px #1c191717,0 1px 2px #1c19170a}.quotation-picker-session-main{min-width:0;color:var(--color-text-primary);white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:700;line-height:18px;display:inline-flex}.quotation-picker-session-main strong{font-size:12px;font-weight:800}.quotation-picker-session-kicker{color:var(--color-sidebar-text);font-size:11px;font-weight:700}.quotation-picker-session-amount{font-size:12px;font-weight:800}.quotation-picker-session-amount.is-positive{color:var(--color-text-primary)}.quotation-picker-session-amount.is-negative{color:var(--color-danger)}.quotation-picker-session-last{min-width:0;color:var(--color-sidebar-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;line-height:16px;overflow:hidden}@keyframes quotationPickerPulse{0%{background:#1c19170e;box-shadow:0 0 #1c191721}to{background:#fff;box-shadow:0 0 0 8px #1c191700}}@keyframes quotationPickerBarIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.cad-floating-dock-wrap{animation:quotationDockLift .26s var(--ease-out);will-change:filter, transform}.cad-floating-dock{isolation:isolate;position:relative}.cad-floating-dock:before{content:"";border-radius:inherit;pointer-events:none;opacity:.82;z-index:-1;background:linear-gradient(#ffffff57,#fff0);position:absolute;inset:1px}.cad-floating-dock .ant-btn:not(:disabled):not(.ant-btn-primary):hover{background:#1c19170e!important;box-shadow:0 8px 18px #1c191713!important}.cad-floating-dock .ant-btn-primary:not(:disabled):hover{box-shadow:0 10px 22px #1c191724!important}.cad-active-task-card{animation:quotationTaskBarIn .22s var(--ease-out) both}.cad-active-task-card .ant-tag,.cad-active-task-card .ant-btn,.cad-active-task-card .ant-select-selector,.cad-active-task-card .ant-input-number,.cad-active-task-card input[type=range]{transition:transform .16s var(--ease-out), border-color .16s ease, box-shadow .16s ease, background .16s ease}.cad-active-task-card .ant-btn:not(:disabled):hover,.cad-active-task-card .ant-tag:hover{transform:translateY(-1px)}@keyframes quotationDockLift{0%{opacity:0;transform:translateY(-6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes quotationTaskBarIn{0%{opacity:0;transform:translateY(-4px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes quotationPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes quotationModalLift{0%{opacity:0;transform:translateY(8px)scale(.988)}to{opacity:1;transform:translateY(0)scale(1)}}.traffic-ai-thinking-card{border:1px solid #2563eb38;border-radius:8px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;margin:0 0 10px;padding:10px;animation:1.8s ease-in-out infinite trafficAiThinkingPulse;display:grid;box-shadow:0 12px 28px #2563eb24}.traffic-ai-thinking-orbit{color:#1d4ed8;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:relative}.traffic-ai-thinking-orbit:before{content:"";border:2px solid #2563eb;border-color:#2563eb #7c3aed #2563eb2e #2563eb2e;border-radius:999px;animation:.9s linear infinite trafficAiOrbitSpin;position:absolute;inset:0}.traffic-ai-thinking-orbit svg{z-index:1;position:relative}.traffic-ai-stream-list{border-top:1px solid #2563eb24;gap:3px;margin-top:7px;padding-top:7px;display:grid}.traffic-ai-stream-line{color:inherit;opacity:.86;padding-left:10px;font-size:10px;line-height:1.45;position:relative}.traffic-ai-stream-line:before{content:"";background:#2563eb;border-radius:999px;width:4px;height:4px;position:absolute;top:.58em;left:0;box-shadow:0 0 0 3px #2563eb1f}.traffic-ai-skill-strip{flex-wrap:wrap;gap:5px;display:flex}.traffic-ai-skill-chip{color:#1d4ed8;white-space:nowrap;background:#eff6ffdb;border:1px solid #2563eb2e;border-radius:6px;align-items:center;max-width:100%;min-height:20px;padding:0 7px;font-size:10px;font-weight:800;line-height:1.2;display:inline-flex}.traffic-ai-skill-applied{color:#166534;background:#f0fdf4db;border-color:#16a34a38}.traffic-ai-skill-learned{color:#6d28d9;background:#f5f3ffe6;border-color:#7c3aed38}.traffic-ai-learning-box{border:1px solid #10b9813d;border-radius:8px;gap:4px;margin:0 0 10px;padding:8px 9px;font-size:11px;line-height:1.5;display:grid}.traffic-ai-learning-title{font-weight:900}.traffic-ai-learning-note{padding-left:10px;position:relative}.traffic-ai-learning-note:before{content:"";opacity:.55;background:currentColor;border-radius:999px;width:4px;height:4px;position:absolute;top:.62em;left:0}@keyframes trafficAiOrbitSpin{to{transform:rotate(360deg)}}@keyframes trafficAiThinkingPulse{0%,to{box-shadow:0 12px 28px #2563eb1f}50%{box-shadow:0 16px 34px #7c3aed38}}.page-surface{height:100%;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.page-container{flex:1;min-height:0;padding:24px 32px;overflow-y:auto}.erp-live-panel,.erp-live-panel *{min-width:0}.erp-live-panel{width:100%}.erp-live-panel-title{flex:360px}.erp-live-panel-actions{flex:0 auto;justify-content:flex-end}.erp-live-panel-actions .ant-btn{max-width:100%}.erp-live-panel-metrics{width:100%}.erp-live-metric{overflow:hidden}.projects-erp-panel,.erp-leads-board,.project-card,.project-detail-summary,.project-follow-panel{color:var(--color-text-primary)}.projects-erp-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.erp-leads-board{box-shadow:0 12px 30px #0f172a0d}.erp-lead-card,.project-card{box-shadow:0 8px 22px #0f172a0a;border:1px solid #1c191714!important}.project-card .ant-card-body{min-height:150px}.project-detail-modal .ant-modal-content{border-radius:8px;overflow:hidden}.project-detail-modal .ant-modal-body{max-height:min(78vh,860px);padding-top:12px;overflow-y:auto}.project-detail-summary{border:1px solid var(--color-border);background:#f8fafcd9;border-radius:8px;margin-bottom:20px;padding:14px 16px}.project-follow-panel{border:1px solid var(--color-border);background:#fff;border-radius:8px;margin-bottom:20px;padding:14px 16px}.project-follow-panel .ant-input,.project-follow-panel textarea.ant-input{border-radius:8px;min-width:0}.detail-section-title{letter-spacing:0;color:var(--color-text-muted);margin:18px 0 10px;font-size:11px;font-weight:700}.follow-option-group{min-width:0}.follow-option{min-height:30px;color:var(--color-text-primary);font:inherit;cursor:pointer;background:#0f172a0a;border:1px solid #0000;border-radius:8px;padding:0 12px;font-size:12px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.follow-option:hover:not(:disabled){background:#0f172a12}.follow-option.is-active{color:#0958d9;background:#1890ff1f;border-color:#1890ff33}.follow-option[data-tone=error].is-active{color:#cf1322;background:#ff4d4f1f;border-color:#ff4d4f3d}.follow-option[data-tone=warning].is-active{color:#ad6800;background:#faad1429;border-color:#faad1442}.follow-option[data-tone=success].is-active{color:#237804;background:#52c41a24;border-color:#52c41a42}.follow-option:disabled{cursor:wait;opacity:.7}.follow-saving-dot{height:30px;color:var(--color-text-muted);align-items:center;padding:0 6px;font-size:11px;display:inline-flex}@media (width<=760px){.page-shell.projects-page-shell{padding:12px}.projects-page-container{padding:16px}.projects-page-container .toolbar-row{flex-wrap:wrap;gap:10px}.projects-page-container .toolbar-row .ant-input-affix-wrapper{width:100%!important}.erp-live-panel-header{flex-direction:column}.erp-live-panel-title{flex-basis:auto;width:100%}.erp-live-panel-actions{justify-content:flex-start;width:100%}.erp-live-panel-actions .ant-space-item{flex:140px}.erp-live-panel-actions .ant-btn,.erp-live-panel-actions .ant-btn>span{white-space:normal;width:100%;height:auto;min-height:32px}.erp-live-panel-metrics{grid-template-columns:1fr!important}}@media (width<=520px){.page-shell.projects-page-shell{padding:8px}.projects-page-container{padding:10px}.erp-live-panel{padding:10px!important}.erp-live-panel-title{flex-direction:column;gap:8px!important;display:flex!important}.erp-live-panel-title>.ant-space-item:first-child{align-self:flex-start}.erp-live-panel-title .ant-typography{white-space:normal;overflow-wrap:anywhere}.erp-live-panel-actions{flex-direction:column;align-items:stretch;gap:8px!important;display:flex!important}.erp-live-panel-actions .ant-space-item{width:100%}}@keyframes statusHaloPulse{0%{box-shadow:0 0 #16653480}70%{box-shadow:0 0 0 6px #16653400}to{box-shadow:0 0 #16653400}}.status-pulse-dot{animation:2s cubic-bezier(.25,0,0,1) infinite statusHaloPulse}.chat-message{animation:fadeIn var(--t-base) ease;gap:12px;padding:10px 0;display:flex}.chat-message.user{justify-content:flex-end}.chat-message.assistant{justify-content:flex-start}.chat-avatar{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-top:2px;font-size:11px;font-weight:700;display:flex}.chat-avatar.assistant-avatar{background:var(--color-text-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.chat-avatar.user-avatar{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-secondary);box-shadow:var(--shadow-sm)}.chat-bubble{letter-spacing:-.005em;max-width:68%;box-shadow:var(--shadow-sm);padding:12px 16px;font-size:13.5px;line-height:1.65}.chat-bubble.assistant-bubble{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:16px 16px 16px 4px;font-weight:400}.chat-bubble.user-bubble{background:var(--color-text-primary);border:1px solid var(--color-text-primary);color:var(--color-text-inverse);border-radius:16px 16px 4px;font-weight:500}.chat-input-bar{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);width:100%;max-width:680px;box-shadow:var(--shadow-md);transition:all var(--t-base);border-radius:20px;align-items:center;gap:8px;margin:0 auto;padding:4px 5px 4px 18px;display:flex}.chat-input-bar:focus-within{border-color:var(--color-text-primary);box-shadow:var(--shadow-md), 0 0 0 3px #1c19170d}.chat-input-bar input{color:var(--color-text-primary);font-feature-settings:inherit;background:0 0;border:none;outline:none;flex:1;padding:8px 0;font-family:inherit;font-size:13.5px}.chat-input-bar input::placeholder{color:var(--color-text-muted)}.chat-send-btn{background:var(--color-text-primary);width:32px;height:32px;color:var(--color-text-inverse);cursor:pointer;transition:all var(--t-fast);border:none;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send-btn:hover{opacity:.85;transform:scale(1.04)}.chat-send-btn:active{transform:scale(.96)}.new-chat-btn{background:var(--color-text-primary);color:var(--color-text-inverse);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;border:none;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.new-chat-btn:hover{opacity:.88}.chat-history-item{cursor:pointer;transition:all var(--t-fast);color:var(--color-sidebar-text);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex;position:relative}.chat-history-item:hover{background:var(--color-sidebar-hover);color:var(--color-text-primary)}.chat-history-item.active{background:var(--color-sidebar-active);color:var(--color-text-primary)}.chat-history-item .item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;overflow:hidden}.chat-history-item .item-time{color:var(--color-text-muted);flex-shrink:0;font-size:10px}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:10px 10px 5px;font-size:10px;font-weight:600}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--r-lg);transition:all var(--t-fast);box-shadow:var(--shadow-sm)}.stat-card:hover{border-color:var(--color-border-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card-value{color:var(--color-text-primary);letter-spacing:-.02em;font-size:20px;font-weight:700;line-height:1.2}.stat-card-label{color:var(--color-text-secondary);letter-spacing:.02em;margin-top:2px;font-size:11px}.quick-action-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--r-lg);cursor:pointer;transition:all var(--t-fast);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;display:flex}.quick-action-card:hover{border-color:var(--color-border-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.quick-action-icon{border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.quick-action-title{color:var(--color-text-primary);font-weight:600}.quick-action-desc{color:var(--color-text-secondary);font-size:11px;line-height:1.4}.suggestion-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.suggestion-chip{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--r-full);color:var(--color-text-secondary);cursor:pointer;transition:all var(--t-fast);box-shadow:var(--shadow-xs);align-items:center;gap:5px;padding:6px 14px;font-size:12px;display:inline-flex}.suggestion-chip:hover{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-bg-hover);box-shadow:none}.pill-btn{border-radius:var(--r-full);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all var(--t-fast);box-shadow:var(--shadow-sm);align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;display:inline-flex}.pill-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-bg-hover);box-shadow:none}.tag-pill{border:1px solid var(--color-border);border-radius:var(--r-full);color:var(--color-text-secondary);cursor:pointer;transition:all var(--t-fast);background:0 0;align-items:center;gap:4px;padding:3px 10px;font-size:11px;display:inline-flex}.tag-pill:hover{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-bg-hover)}.progress-bar{border-radius:var(--r-full);background:#0000000f;height:3px;overflow:hidden}.progress-bar-fill{border-radius:var(--r-full);background:var(--color-accent);height:100%;transition:width var(--t-slow)}.fork-kanban{grid-template-columns:repeat(4,1fr);gap:8px;height:100%;display:grid}.kanban-column{border:1px solid var(--color-border);border-radius:var(--r-lg);background:0 0;flex-direction:column;display:flex;overflow:hidden}.kanban-column-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.kanban-column-title{letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-secondary);align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.kanban-column-dot{border-radius:50%;width:6px;height:6px}.kanban-column-count{color:var(--color-text-muted);border-radius:var(--r-full);background:#0000000a;padding:2px 6px;font-size:10px}.kanban-column-body{flex-direction:column;flex:1;gap:4px;min-height:0;padding:6px;display:flex;overflow-y:auto}.kanban-card{background:var(--color-bg-card);border-radius:var(--r-md);border:1px solid var(--color-border);cursor:grab;transition:all var(--duration-fast) var(--ease-smooth);box-shadow:var(--shadow-xs);padding:8px 10px;position:relative}.kanban-card:hover{border-color:var(--color-border-accent);box-shadow:var(--shadow-sm)}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.5}.kanban-card-title{margin-bottom:3px;font-size:12px;font-weight:600;line-height:1.3}.kanban-card-desc{color:var(--color-text-secondary);margin-bottom:6px;font-size:11px;line-height:1.4}.kanban-card-footer{justify-content:space-between;align-items:center;display:flex}.kanban-card-tag{border-radius:var(--r-full);background:var(--color-bg-hover);color:var(--color-text-secondary);padding:1px 6px;font-size:10px}.kanban-card-priority{border-radius:50%;width:5px;height:5px}.gear-chain{flex-direction:column;justify-content:flex-start;align-items:center;gap:0;height:100%;padding:12px 0 20px;display:flex;position:relative;overflow-y:auto}.gear-node{z-index:2;cursor:pointer;flex-direction:column;align-items:center;display:flex;position:relative}.gear-icon{border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative}.gear-label{color:var(--color-text-secondary);text-align:center;max-width:70px;margin-top:4px;font-size:10px;line-height:1.3}.gear-node:hover .gear-label,.gear-node.active .gear-label{color:var(--color-text-primary)}.gear-node.active .gear-label{color:var(--color-accent-hover);font-weight:600}.task-detail-panel{background:var(--color-bg-elevated);border-left:1px solid var(--color-border);flex-direction:column;gap:12px;padding:16px;display:flex;overflow-y:auto}.detail-section{flex-direction:column;gap:6px;display:flex}.detail-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--color-text-muted);font-size:10px;font-weight:600}.detail-section-content{color:var(--color-text-secondary);font-size:13px;line-height:1.6}.subtask-list{flex-direction:column;gap:6px;display:flex}.subtask-item{background:var(--color-bg-input);border-radius:var(--r-md);border:1px solid var(--color-border);transition:all var(--duration-fast);cursor:pointer;align-items:center;gap:8px;padding:8px 12px;display:flex}.subtask-item:hover{background:var(--color-bg-hover);border-color:var(--color-border-accent)}.subtask-check{border:2px solid var(--color-border-accent);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.subtask-item.completed .subtask-check{background:var(--color-success);border-color:var(--color-success)}.subtask-name{flex:1;font-size:12px}.subtask-item.completed .subtask-name{color:var(--color-text-muted);text-decoration:line-through}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.8}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes typingDot{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.typing-dot{color:var(--color-text-muted);font-size:16px;animation:1.2s ease-in-out infinite typingDot;display:inline-block}.fade-in{animation:fadeIn var(--t-slow) ease}.slide-up{animation:.35s cubic-bezier(.16,1,.3,1) slideUp}.scale-in{animation:.3s cubic-bezier(.16,1,.3,1) scaleIn}.glass-panel{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-glass);border:1px solid #ffffff4d}.ant-layout{background:0 0!important}.ant-menu{background:0 0!important;border:none!important}.ant-btn-primary{background:var(--color-text-primary)!important;border-radius:var(--r-md)!important;box-shadow:none!important;color:var(--color-text-inverse)!important;border:none!important;font-weight:600!important}.ant-btn-primary:hover{opacity:.88!important;background:var(--color-text-primary)!important}.ant-input,.ant-input-outlined{background:var(--color-bg-card)!important;border-color:var(--color-border)!important;color:var(--color-text-primary)!important;border-radius:var(--r-md)!important;box-shadow:var(--shadow-xs)!important}.ant-input:focus,.ant-input-outlined:focus{border-color:var(--color-accent)!important;box-shadow:var(--shadow-accent)!important}.ant-modal-content{background:var(--color-bg-elevated)!important;color:var(--color-text-primary)!important;border-radius:var(--r-lg)!important;border:1px solid var(--color-border)!important;box-shadow:var(--shadow-lg)!important}.ant-modal-header{background:var(--color-bg-elevated)!important}.ant-modal-title{color:var(--color-text-primary)!important}.ant-modal-footer{border-top-color:var(--color-border)!important}.ant-card{background:var(--color-bg-card)!important;border-color:var(--color-border)!important;border-radius:var(--r-lg)!important;color:var(--color-text-primary)!important;box-shadow:var(--shadow-sm)!important}.ant-card-head{border-bottom-color:var(--color-border)!important;color:var(--color-text-primary)!important;background:0 0!important}.ant-table{color:var(--color-text-primary)!important;background:0 0!important}.ant-table-thead>tr>th{background:var(--color-bg)!important;color:var(--color-text-secondary)!important;border-bottom-color:var(--color-border)!important}.ant-table-tbody>tr>td{border-bottom-color:var(--color-border)!important}.ant-table-tbody>tr:hover>td{background:var(--color-bg-hover)!important}.ant-tabs-tab{color:var(--color-text-secondary)!important}.ant-tabs-tab-active{color:var(--color-text-primary)!important}.ant-tabs-ink-bar{background:var(--color-text-primary)!important}.ant-select-selector{background:var(--color-bg-card)!important;border-color:var(--color-border)!important;color:var(--color-text-primary)!important;box-shadow:var(--shadow-xs)!important}.ant-select-dropdown{background:var(--color-bg-card)!important;border:1px solid var(--color-border)!important;box-shadow:var(--shadow-md)!important}.ant-select-item{color:var(--color-text-primary)!important}.ant-select-item-option-selected{background:var(--color-bg-hover)!important}.ant-tag{border-radius:var(--r-sm)!important}.ant-progress-bg{background:var(--color-text-primary)!important}.ant-statistic-title{color:var(--color-text-secondary)!important}.ant-statistic-content{color:var(--color-text-primary)!important}.ant-empty-description,.ant-form-item-label>label{color:var(--color-text-secondary)!important}.ant-divider{border-color:var(--color-border)!important}.ant-list-item{border-bottom-color:var(--color-border)!important}.ant-badge-status-success{background-color:var(--color-success)!important}.ant-badge-status-error{background-color:var(--color-danger)!important}.ant-badge-status-warning{background-color:var(--color-warning)!important}.ant-badge-status-processing{background-color:var(--color-info)!important}.ant-radio-wrapper{color:var(--color-text-secondary)!important}.ant-switch-checked{background:var(--color-text-primary)!important}.quotation-page-shell .ant-input,.quotation-page-shell .ant-input-affix-wrapper input.ant-input,.quotation-page-shell .ant-select-selection-item,.quotation-page-shell .ant-select-selection-placeholder,.quotation-modal .ant-input,.quotation-modal .ant-input-affix-wrapper input.ant-input,.quotation-modal .ant-select-selection-item,.quotation-modal .ant-select-selection-placeholder{font-size:12px!important;font-weight:500!important;line-height:18px!important}.quotation-page-shell .ant-input::placeholder,.quotation-page-shell .ant-input-affix-wrapper input.ant-input::placeholder,.quotation-modal .ant-input::placeholder,.quotation-modal .ant-input-affix-wrapper input.ant-input::placeholder{color:var(--color-sidebar-text)!important;font-size:12px!important;font-weight:500!important}.quotation-picker-modal .quotation-picker-search.ant-input-affix-wrapper,.quotation-picker-modal .quotation-picker-search.ant-input,.quotation-picker-modal .quotation-picker-search .ant-input{font-size:12px!important;font-weight:500!important;line-height:18px!important}.quotation-picker-modal .quotation-picker-search.ant-input-affix-wrapper{color:var(--color-text-primary)!important}.quotation-picker-modal .quotation-picker-search .ant-input::placeholder,.quotation-picker-modal .quotation-picker-search.ant-input::placeholder{color:var(--color-sidebar-text)!important;font-size:12px!important;font-weight:500!important}.quotation-page-shell,.quotation-modal,.quotation-room-filter-popover{--quote-type-caption:10.5px;--quote-type-meta:11px;--quote-type-body:12px;--quote-type-title:13px;--quote-type-section:14px;--quote-line-caption:14px;--quote-line-meta:15px;--quote-line-body:18px;--quote-line-title:19px;--quote-weight-meta:600;--quote-weight-body:650;--quote-weight-title:820;font-size:var(--quote-type-body);line-height:var(--quote-line-body)}.quotation-page-shell .quote-text,.quotation-modal .quote-text,.quotation-room-filter-popover .quote-text{font-size:var(--quote-type-body)!important;font-weight:var(--quote-weight-body)!important;line-height:var(--quote-line-body)!important;letter-spacing:0!important}.quotation-page-shell .quote-text.is-strong,.quotation-modal .quote-text.is-strong,.quotation-room-filter-popover .quote-text.is-strong{font-weight:var(--quote-weight-title)!important}.quotation-page-shell .quote-text-secondary,.quotation-modal .quote-text-secondary,.quotation-room-filter-popover .quote-text-secondary{color:var(--color-sidebar-text)!important;font-size:var(--quote-type-meta)!important;font-weight:var(--quote-weight-meta)!important;line-height:var(--quote-line-meta)!important}.quotation-page-shell .quotation-panel-title,.quotation-page-shell .quotation-section-title,.quotation-modal .ant-modal-title{font-size:var(--quote-type-section)!important;font-weight:880!important;line-height:20px!important}.quotation-page-shell .quotation-panel-subtitle,.quotation-page-shell .quotation-section-subtitle,.quotation-page-shell .quotation-field-label,.quotation-page-shell .quotation-base-items-label,.quotation-page-shell .quotation-summary-section-label,.quotation-page-shell .quotation-summary-section-head,.quotation-modal .ant-table-thead>tr>th,.quotation-room-filter-popover .ant-popover-inner-content{font-size:var(--quote-type-meta)!important;line-height:var(--quote-line-meta)!important;letter-spacing:0!important}.quotation-page-shell .quotation-room-name,.quotation-page-shell .quotation-global-title,.quotation-page-shell .quotation-picker-panel-title,.quotation-modal .quotation-picker-panel-title,.quotation-page-shell .quotation-summary-meta-title,.quotation-page-shell .quotation-compare-section-head strong{font-size:var(--quote-type-title)!important;font-weight:var(--quote-weight-title)!important;line-height:var(--quote-line-title)!important}.quotation-page-shell .quotation-extra-name,.quotation-page-shell .quotation-picker-card-title,.quotation-page-shell .quotation-picker-added-title,.quotation-modal .quotation-picker-card-title,.quotation-modal .quotation-picker-added-title,.quotation-page-shell .quotation-summary-row,.quotation-page-shell .quotation-summary-row-value,.quotation-page-shell .quotation-summary-fee-row,.quotation-page-shell .quotation-summary-detail-card,.quotation-page-shell .quotation-summary-compare-copy strong,.quotation-page-shell .quotation-workdays-label,.quotation-modal .ant-table-tbody>tr>td{font-size:var(--quote-type-body)!important;line-height:var(--quote-line-body)!important}.quotation-page-shell .quotation-extra-price,.quotation-page-shell .quotation-global-spec,.quotation-page-shell .quotation-picker-panel-subtitle,.quotation-page-shell .quotation-picker-card-subtitle,.quotation-page-shell .quotation-picker-added-meta,.quotation-page-shell .quotation-picker-session-last,.quotation-page-shell .quotation-summary-meta-subtitle,.quotation-page-shell .quotation-summary-compare-copy small,.quotation-page-shell .quotation-workdays-sub,.quotation-page-shell .quotation-workdays-date em,.quotation-page-shell .quotation-summary-room-row small,.quotation-modal .quotation-picker-panel-subtitle,.quotation-modal .quotation-picker-card-subtitle,.quotation-room-filter-popover .ant-checkbox-wrapper .quote-text-secondary{font-size:var(--quote-type-meta)!important;line-height:var(--quote-line-meta)!important}.quotation-page-shell .ant-btn,.quotation-modal .ant-btn,.quotation-room-filter-popover .ant-btn,.quotation-page-shell .ant-input,.quotation-page-shell .ant-input-number-input,.quotation-page-shell .ant-select-selection-item,.quotation-page-shell .ant-select-selection-placeholder,.quotation-modal .ant-input,.quotation-modal .ant-input-number-input,.quotation-modal .ant-select-selection-item,.quotation-modal .ant-select-selection-placeholder,.quotation-room-filter-popover .ant-checkbox-wrapper{font-size:var(--quote-type-body)!important;line-height:var(--quote-line-body)!important;letter-spacing:0!important}.quotation-page-shell .ant-tag,.quotation-modal .ant-tag,.quotation-room-filter-popover .ant-tag,.quotation-page-shell .quotation-picker-badge,.quotation-modal .quotation-picker-badge{font-size:var(--quote-type-caption)!important;font-weight:760!important;line-height:var(--quote-line-caption)!important;letter-spacing:0!important}.quotation-page-shell .ant-segmented-item-label,.quotation-modal .ant-segmented-item-label,.quotation-page-shell .ant-tabs-tab-btn,.quotation-modal .ant-tabs-tab-btn,.quotation-page-shell .quotation-summary-action-bar .ant-btn,.quotation-page-shell .quotation-summary-more-btn.ant-btn{font-size:var(--quote-type-body)!important;line-height:var(--quote-line-body)!important}.quotation-page-shell .quotation-picker-card-price,.quotation-page-shell .quotation-picker-card-meta,.quotation-page-shell .quotation-summary-stat span,.quotation-page-shell .quotation-summary-compare-action,.quotation-page-shell .quotation-workdays-popover-meta,.quotation-page-shell .quotation-workdays-popover-note{font-size:var(--quote-type-meta)!important;line-height:var(--quote-line-meta)!important}.quotation-page-shell .quotation-summary-stat strong,.quotation-page-shell .quotation-workdays-date strong{font-size:var(--quote-type-body)!important;line-height:16px!important}.quotation-page-shell .quotation-summary-total{font-size:29px!important;line-height:34px!important}.cad-floating-dock-wrap::-webkit-scrollbar{width:0;height:0;display:none}.cad-floating-dock::-webkit-scrollbar{width:0;height:0;display:none}.material-price-page-shell{padding:20px 20px 20px 0}.material-price-surface{flex-direction:column;height:100%;display:flex;overflow:hidden}.material-price-toolbar{background:#fff;border-bottom:1px solid #1c191714;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.material-price-title{font-size:18px;line-height:1.2;display:block}.material-price-meta{color:var(--color-text-muted);margin-top:5px;font-size:12px}.material-price-layout{flex:1;grid-template-columns:minmax(360px,.8fr) minmax(420px,1.2fr);min-height:0;display:grid;overflow:hidden}.material-price-lookup-panel,.material-price-detail-panel{min-width:0;min-height:0;overflow:hidden}.material-price-lookup-panel{background:#fbfbfa;border-right:1px solid #1c191714;flex-direction:column;display:flex}.material-price-actions{gap:10px;padding:16px;display:grid}.material-price-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.material-price-action-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.material-price-scanner{aspect-ratio:4/3;background:#101820;border-radius:8px;margin:0 16px 12px;position:relative;overflow:hidden}.material-price-scanner video{object-fit:cover;width:100%;height:100%;display:block}.material-price-scan-frame{border:2px solid #ffffffe6;border-radius:8px;position:absolute;inset:22%;box-shadow:0 0 0 999px #00000057}.material-price-scan-status{color:#fff;text-align:center;background:#101820b8;border-radius:8px;padding:8px 10px;font-size:13px;position:absolute;bottom:12px;left:12px;right:12px}.material-price-capture-panel{background:#fff;border:1px solid #1c191714;border-radius:8px;margin:0 16px 12px;padding:12px}.material-price-capture-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.material-price-capture-head>div{gap:3px;min-width:0;display:grid}.material-price-capture-head strong{font-size:14px;line-height:1.2}.material-price-capture-head span,.material-price-capture-empty,.material-price-capture-row span{color:var(--color-text-muted);font-size:12px}.material-price-capture-list{gap:8px;margin-top:10px;display:grid}.material-price-capture-row{background:#f7f7f5;border-radius:8px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;padding:7px;display:grid}.material-price-capture-row img,.material-price-capture-thumb{object-fit:cover;background:#e7e5e4;border-radius:6px;width:42px;height:42px}.material-price-capture-row>div{gap:2px;min-width:0;display:grid}.material-price-capture-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.material-price-capture-empty{margin-top:9px;line-height:1.55}.material-price-list{flex:1;min-height:0;padding:0 12px 12px;overflow:hidden}.material-price-list .ant-table-wrapper,.material-price-list .ant-spin-nested-loading,.material-price-list .ant-spin-container{height:100%}.material-price-list .ant-table{border-radius:8px;overflow:hidden}.material-price-row-button{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;gap:3px;padding:0;display:grid}.material-price-row-button strong,.material-price-row-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.material-price-row-button span{color:var(--color-text-muted);font-size:12px}.material-price-row-selected td{background:#1c19170e!important}.material-price-table-price{color:#101820;align-items:baseline;gap:2px;font-weight:800;display:inline-flex}.material-price-table-price small{color:var(--color-text-muted);font-weight:500}.material-price-detail-panel{background:#fff;flex-direction:column;gap:18px;padding:28px;display:flex;overflow-y:auto}.material-price-price-block{border-bottom:1px solid #1c191714;align-items:baseline;gap:8px;padding-bottom:16px;display:flex}.material-price-price-block span{color:var(--color-text-muted);font-size:13px}.material-price-price-block strong{letter-spacing:0;font-size:46px;line-height:1}.material-price-price-block em{color:var(--color-text-muted);font-size:18px;font-style:normal}.material-price-detail-head h1{letter-spacing:0;margin:0 0 10px;font-size:24px;line-height:1.25}.material-price-fields{border:1px solid #1c191714;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.material-price-field{border-bottom:1px solid #1c191714;border-right:1px solid #1c191714;gap:5px;min-width:0;padding:13px 14px;display:grid}.material-price-field:nth-child(2n){border-right:0}.material-price-field span{color:var(--color-text-muted);font-size:12px}.material-price-field strong{overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:700}.material-price-note{color:var(--color-text-secondary);white-space:pre-wrap;background:#f7f7f5;border-radius:8px;padding:14px;line-height:1.7}.material-price-capture-preview{object-fit:contain;background:#f7f7f5;border-radius:8px;width:min(100%,520px);max-height:360px}.material-price-manual-form{gap:10px;display:grid}@media (width<=860px){body:has(.material-price-page-shell){overflow:auto}#root:has(.material-price-page-shell){height:auto;min-height:100vh;overflow:visible}.material-price-page-shell{height:auto;min-height:100vh;padding:0;overflow:visible}.material-price-surface{border-radius:0;min-height:100vh;overflow:visible}.material-price-toolbar{flex-direction:column;align-items:flex-start;padding:14px}.material-price-toolbar .ant-space{width:100%}.material-price-toolbar .ant-space-item{flex:1}.material-price-toolbar .ant-btn,.material-price-toolbar .ant-upload{width:100%}.material-price-layout{flex-direction:column;display:flex;overflow:visible}.material-price-lookup-panel{border-bottom:1px solid #1c191714;border-right:0;overflow:visible}.material-price-list{overflow:visible}.material-price-list .ant-table-body{max-height:320px!important}.material-price-detail-panel{padding:18px 14px 28px;overflow:visible}.material-price-price-block{z-index:3;background:#fff;margin:-18px -14px 0;padding:14px;position:sticky;top:0}.material-price-price-block strong{font-size:38px}.material-price-fields{grid-template-columns:1fr}.material-price-field,.material-price-field:nth-child(2n){border-right:0}}
