:root{--brand:#29277f;--brand-dark:#1c1b5a;--accent:#13bde3;--text:#1c2732;--muted:#667481;--line:#dde3e8;--soft:#f4f6f8;--panel:#fff;--danger:#a53030;--orange:#d96b20;--shadow:0 2px 10px rgba(35,48,61,.05)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--text);background:var(--soft);letter-spacing:0}
body{font-size:14px}a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit;letter-spacing:0}
.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:#1d2054;color:#e6e8f5;border-top:4px solid var(--accent)}
.brand{height:58px;display:flex;align-items:center;margin-bottom:16px;padding:7px 14px;background:#fff;border-bottom:1px solid #e3e6ef}.brand img{display:block;width:184px;height:44px;object-fit:contain;object-position:left center}
.nav{padding:0 12px;overflow:auto;scrollbar-width:thin;scrollbar-color:#4a4e84 transparent}.nav-group{padding:12px 10px 7px;color:#8d96ba;font-size:10px}.nav-link{display:flex;align-items:center;gap:11px;min-height:39px;padding:0 12px;margin:2px 0;color:#d9dcee;border:1px solid transparent;border-radius:5px;font-size:13px;font-weight:650}.nav-link:hover{background:rgba(255,255,255,.09);color:#fff}.nav-link.active{color:var(--brand);background:#f4f6ff;border-color:#dfe3f6;box-shadow:inset 3px 0 var(--accent)}.nav-icon{width:19px;text-align:center;font-size:15px}.nav-badge{margin-left:auto;padding:2px 5px;border-radius:999px;background:#185a87;color:#8fe9f8;font-size:9px;font-weight:750}
.sidebar-user{margin:14px 12px 0;display:grid;grid-template-columns:34px 1fr 32px;align-items:center;gap:10px;padding:14px 8px 0;border-top:1px solid #373c78}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{margin-top:2px;color:#9ea7c8;font-size:11px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e4f8fc;color:var(--brand-dark);font-weight:800}.sidebar-user form{margin:0}.icon-button{border:0;background:transparent;color:#aab2cf;font-size:19px;cursor:pointer}
.workspace{min-width:0}.topbar{position:sticky;z-index:10;top:0;height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#fff;border-bottom:1px solid var(--line)}.topbar h1{margin:0;color:#172630;font-size:18px}.topbar-actions{display:flex;gap:9px;align-items:center}.global-search-form{margin:0}.global-search{width:250px;height:35px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:#f8f9fb;color:var(--text);outline:none}.global-search:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px #eeeeff}.role-pill{padding:6px 9px;border-radius:999px;background:#eeeeff;color:var(--brand-dark);font-size:12px;font-weight:650}.main-content{padding:24px 26px 40px}
.button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;padding:0 13px;border:1px solid #cfd8df;border-radius:5px;background:#fff;color:#25343e;font-weight:700;cursor:pointer}.button:hover{border-color:#aab8c2}.button.primary{border-color:var(--brand);background:var(--brand);color:#fff}.button.primary:hover{background:var(--brand-dark)}.button.ghost{background:transparent}.button.danger{border-color:#d8bcbc;color:var(--danger)}.button.full{width:100%}
.message-stack{margin-bottom:15px}.message{padding:11px 14px;border:1px solid #b9e1d3;background:#eef9f5;color:#23624f;border-radius:5px}
.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:13px}.metric{min-height:112px;padding:17px;border:1px solid var(--line);border-radius:7px;background:#fff}.metric span,.metric small{display:block;color:var(--muted)}.metric span{font-size:12px}.metric strong{display:block;margin:14px 0 5px;font-size:27px;color:#172630}.metric small{font-size:12px}.metric-head{display:flex;align-items:center;justify-content:space-between}.metric-head b{display:grid;width:28px;height:28px;place-items:center;border-radius:5px;background:#eeeeff;color:var(--brand);font-weight:700}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:16px;margin-top:20px}.panel{border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:var(--shadow)}.panel-head{min-height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:14px}.panel-head>a,.panel-head>span{font-size:12px}
.activity-row{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:12px 15px;border-bottom:1px solid #edf1f3;color:var(--text)}.activity-row:last-child{border-bottom:0}.activity-row:hover{background:#fafbfc}.activity-row span strong,.activity-row span em,.activity-row span small{display:block}.activity-row span strong,.activity-row span em{font-size:13px;line-height:1.5}.activity-row span em{margin:3px 0;font-style:normal}.activity-row small,.activity-row time{color:var(--muted);font-size:11px}.activity-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eff8fb;color:#27829b}.todo-row{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:13px 15px;color:var(--text);border-bottom:1px solid #edf1f3}.todo-row:last-child{border-bottom:0}.todo-row strong,.todo-row small{display:block}.todo-row strong{font-size:13px}.todo-row small{margin-top:4px;color:#8a682a;font-size:11px}.todo-box{width:14px;height:14px;margin-top:2px;border:1px solid #bdc8cf;border-radius:2px}
.filterbar{display:flex;gap:8px;align-items:center;margin-bottom:14px}.search-control,.select-control,.form-control{min-height:38px;border:1px solid #ccd6dd;border-radius:5px;background:#fff;color:var(--text);outline:none}.search-control{flex:1;min-width:260px;padding:0 12px}.select-control{min-width:138px;padding:0 10px}.search-control:focus,.select-control:focus,.form-control:focus{border-color:#7f8fbd;box-shadow:0 0 0 2px rgba(41,39,127,.08)}
.table-panel{overflow:auto;border:1px solid var(--line);border-radius:6px;background:#fff}.table-panel table{width:100%;min-width:1050px;border-collapse:collapse}.table-panel th{padding:11px 12px;text-align:left;background:#f7f9fa;color:#52616d;font-size:11px;font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}.table-panel td{padding:12px;border-bottom:1px solid #edf0f2;font-size:12px;vertical-align:middle}.table-panel tr:last-child td{border-bottom:0}.table-panel tr:hover td{background:#fbfcfd}.company-link strong,.company-link small{display:block}.company-link{color:var(--text)}.company-link small,td small{margin-top:4px;color:var(--muted);font-size:11px}.brand-text{color:var(--orange);font-weight:750}
.tag,.mini-tag,.grade{display:inline-flex;align-items:center;min-height:23px;padding:0 8px;border-radius:999px;background:#eef1f3;color:#4f5f69;font-size:11px;white-space:nowrap}.grade{background:#edf8fb;color:#26778b}.mini-tag{min-height:20px;margin-left:6px;background:#f0f1fb;color:var(--brand)}
.profile-header{display:flex;align-items:center;gap:15px;padding:18px;border:1px solid var(--line);border-radius:6px;background:#fff}.profile-header h2{margin:3px 0;font-size:21px}.profile-header p{margin:0;color:var(--muted)}.company-avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:6px;background:var(--brand);color:#fff;font-size:19px;font-weight:800}.eyebrow{color:var(--orange);font-size:12px;font-weight:800}.profile-tags{display:flex;gap:7px;margin-left:auto}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:14px;margin-top:14px}.detail-panel{overflow:hidden}.kv-grid{display:grid;grid-template-columns:1fr 1fr;margin:0}.kv-grid>div{min-height:68px;padding:12px 15px;border-right:1px solid #edf1f3;border-bottom:1px solid #edf1f3}.kv-grid>div:nth-child(even){border-right:0}.kv-grid>div.span-2{grid-column:1/-1;border-right:0}.kv-grid dt{margin-bottom:5px;color:var(--muted);font-size:11px}.kv-grid dd{margin:0;line-height:1.55}.compact-row{display:flex;justify-content:space-between;gap:12px;padding:12px 15px;border-bottom:1px solid #edf1f3;color:var(--text)}.compact-row:last-child{border-bottom:0}.compact-row strong,.compact-row small{display:block}.compact-row small{margin-top:3px;color:var(--muted);font-size:11px}.section-gap{margin-top:14px}.project-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.project-item{display:flex;justify-content:space-between;gap:10px;padding:13px;border:1px solid var(--line);border-radius:5px;color:var(--text)}.project-item strong,.project-item small{display:block}.project-item small{margin-top:5px;color:var(--muted);font-size:11px}
.timeline{padding:14px}.timeline-card{border:1px solid var(--line);border-radius:5px;margin-bottom:10px;overflow:hidden}.timeline-card>header{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid #edf1f3}.timeline-card time{color:var(--muted);font-size:12px}.timeline-main{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,.8fr)}.timeline-main>div{padding:13px 14px}.timeline-main>aside{padding:13px 14px;border-left:1px solid var(--line);background:#f8fafb}.timeline-main p{margin:7px 0;line-height:1.6}.timeline-main small{color:var(--muted)}.timeline-main aside>span{color:var(--muted);font-size:11px}.technical{color:#325f70}.timeline-card footer{padding:7px 14px;text-align:right;border-top:1px solid #edf1f3;font-size:12px}.archive-form{margin-top:20px;text-align:right}
.form-panel{max-width:900px;margin:0 auto;padding:22px;border:1px solid var(--line);border-radius:6px;background:#fff}.form-panel.wide{max-width:1180px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.form-field{min-width:0}.form-field.span-2{grid-column:1/-1}.form-field label{display:block;margin-bottom:7px;color:#44535d;font-size:12px;font-weight:700}.form-field label b{margin-left:3px;color:#c04747}.form-control{width:100%;padding:8px 10px}.form-control[type=date]{padding:7px 10px}textarea.form-control{resize:vertical}.check-field{grid-column:1/-1}.check-label{display:flex!important;align-items:center;gap:8px;font-size:14px!important}.checkbox-input{width:16px;height:16px}.field-error{display:block;margin-top:5px;color:#b23333}.help{display:block;margin-top:5px;color:var(--muted)}.form-alert{margin-bottom:14px;padding:10px 12px;border:1px solid #e7bcbc;background:#fff2f2;color:#913232;border-radius:5px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}fieldset{margin:0 0 22px;padding:0;border:0}legend{width:100%;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line);font-weight:800}
.followup-stream{display:grid;gap:10px}.followup-card{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.7fr);border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}.followup-main{padding:14px 16px}.followup-main header{display:flex;align-items:center;gap:7px}.followup-main header>a{color:var(--text);font-weight:800}.followup-main>small{display:block;margin-top:5px;color:var(--muted)}.followup-main p{margin:10px 0 4px;line-height:1.55}.followup-card>aside{padding:14px 16px;border-left:1px solid var(--line);background:#f8fafb}.followup-card>aside>span{color:var(--muted);font-size:11px}.followup-card>aside p{margin:8px 0;line-height:1.5}.followup-card>aside a{display:block;margin-top:14px;font-size:12px}
.empty{padding:18px;color:var(--muted);text-align:center}.empty.large{padding:60px}.login-page{background:#eef2f5}.login-layout{display:grid;grid-template-columns:minmax(420px,1.2fr) minmax(420px,.8fr);min-height:100vh}.login-brand{display:flex;flex-direction:column;justify-content:center;padding:10vw;background:#fff;border-top:5px solid var(--accent)}.login-brand img{width:220px}.login-brand h1{margin:38px 0 10px;color:var(--brand);font-size:31px}.login-brand p{color:var(--muted);font-size:16px}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%);padding:28px;border:1px solid var(--line);border-radius:7px;background:#fff;box-shadow:0 12px 40px rgba(31,43,51,.08)}.login-card h2{margin:0 0 22px}.login-card label{display:block;margin:13px 0 7px;font-weight:700}.login-card input{width:100%;height:42px;padding:0 11px;border:1px solid #cbd5dc;border-radius:5px}.login-card .button{margin-top:20px}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#48535b}.technical{color:#315d70}
.quote-tag{background:#fff0e7;color:#9b4d18}.category-strip{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;margin-bottom:13px}.category-button{min-height:66px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:#fff}.category-button strong,.category-button span{display:block}.category-button span{margin-top:5px;color:var(--muted);font-size:11px}.category-button.active{border-color:var(--brand);background:var(--brand);color:#fff}.category-button.active span{color:#d8dcff}.category-button.disabled{color:#7b8790;background:#f8fafb}.segmented{display:inline-flex;gap:3px;margin-bottom:13px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff}.segmented a{min-height:34px;display:flex;align-items:center;gap:6px;padding:0 14px;border-radius:4px;color:#4c5b65}.segmented a.active{background:var(--brand);color:#fff;font-weight:750}.segmented small{opacity:.72}.parts-filterbar{display:grid;grid-template-columns:minmax(240px,1fr) repeat(5,minmax(110px,auto)) auto auto;gap:8px;margin-bottom:12px}.priority-check{min-height:38px;display:flex;align-items:center;padding:0 11px;border:1px solid #ccd6dd;border-radius:5px;background:#fff;white-space:nowrap}.parts-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:var(--muted);font-size:12px}.parts-table table{min-width:1800px}.parts-table th,.parts-table td{white-space:nowrap}.parts-table td small{display:block}.check-column{width:54px;text-align:center!important}.compare-check{width:16px;height:16px;accent-color:var(--brand)}.part-link strong,.part-link small{display:block}.part-link strong{color:var(--brand)}.brand-name,.comparison-table .brand-ubright,.comparison-table .brand-competitor{font-weight:800}.brand-ubright{color:var(--brand)}.brand-competitor{color:#b74b2c}.cert-list{display:flex;gap:4px}.cert-list b{padding:2px 5px;border-radius:3px;background:#eaf5f0;color:#257058;font-size:10px}.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);margin:0}.spec-grid>div{min-height:76px;padding:13px 15px;border-right:1px solid #edf1f3;border-bottom:1px solid #edf1f3}.spec-grid>div:nth-child(even){border-right:0}.spec-grid dt{margin-bottom:6px;color:var(--muted);font-size:11px}.spec-grid dd{margin:0;line-height:1.55}.file-path{word-break:break-all;color:#56646e}.compare-note{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;padding:11px 13px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted)}.compare-note strong{color:var(--brand)}.comparison-wrap{overflow:auto;border:1px solid var(--line);border-radius:6px;background:#fff}.comparison-table{width:100%;min-width:1000px;border-collapse:collapse;table-layout:fixed}.comparison-table th,.comparison-table td{padding:11px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.comparison-table th:first-child{width:210px;text-align:left;background:#f5f7f9;color:#28405a}.comparison-table thead th{background:#edf3f8;color:#142653}.comparison-table thead th.reference{background:var(--brand);color:#fff}.comparison-table thead th strong,.comparison-table thead th small{display:block}.comparison-table thead th small{margin-top:5px}.comparison-table td.different{color:#bd3023;font-weight:750}.comparison-table td.missing{color:#8a98aa}.comparison-table tr:last-child th,.comparison-table tr:last-child td{border-bottom:0}.comparison-table th:last-child,.comparison-table td:last-child{border-right:0}
.family-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}.family-tabs a{display:flex;min-height:35px;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#4c5b65}.family-tabs a.active{border-color:var(--brand);color:var(--brand);font-weight:750}.parts-filterbar{grid-template-columns:minmax(240px,1fr) repeat(4,minmax(108px,auto)) auto auto auto}.part-column-settings{position:relative}.part-column-settings summary{list-style:none;white-space:nowrap}.part-column-settings summary::-webkit-details-marker{display:none}.part-column-settings .column-settings-menu{top:43px}.parts-table-head{position:sticky;left:0;display:flex;min-height:44px;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line);background:#fff}.parts-table-head span{color:var(--muted);font-size:11px}.parts-table-head-actions{display:flex;align-items:center;gap:9px}.compact-add{display:grid;width:25px;height:25px;place-items:center;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--brand);font-size:16px;font-weight:800}.compact-add:hover{border-color:var(--brand);background:#eeeeff}
.inline-form{display:inline;margin:0}.button.compact{min-height:30px;padding:0 10px;font-size:12px}.link-button{padding:0;border:0;background:transparent;color:var(--brand);cursor:pointer}.danger-text{color:var(--danger)!important}.success-tag{background:#e8f5ef;color:#286b53}.row-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.state-complete td{color:#7b878e}.state-complete td:first-child strong{text-decoration:line-through}.state-overdue td:first-child{box-shadow:inset 3px 0 #b94a48}.action-table table{min-width:980px}.document-table table{min-width:1180px}.audit-table table{min-width:900px}.report-filter{justify-content:flex-start;padding:13px 15px;border:1px solid var(--line);border-radius:6px;background:#fff}.report-filter label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.report-filter .form-control{width:158px}.report-metrics{grid-template-columns:repeat(6,minmax(130px,1fr))}.report-metrics .metric{min-height:104px}.report-metrics .metric strong{margin:13px 0 4px}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.report-detail-list{max-height:620px;overflow:auto}
.import-summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.import-summary article{padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:#fff}.import-summary span,.import-summary strong{display:block}.import-summary span{color:var(--muted);font-size:12px}.import-summary strong{margin-top:8px;font-size:23px}.import-summary .has-error{border-color:#dfb7b7;color:var(--danger)}.import-commandbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:#fff}.import-commandbar p{margin:0;color:var(--muted)}.import-commandbar form{margin:0}.import-item-list{display:grid;gap:8px}.import-item{border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}.import-item summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer}.import-item summary span{display:flex;align-items:center;gap:10px}.import-item summary b{color:var(--muted);font-size:11px}.import-item[open] summary{border-bottom:1px solid var(--line)}.import-action-error{border-color:#dfb7b7}.import-error{padding:13px 14px;background:#fff4f4;color:var(--danger)}.change-table{min-width:760px!important}.change-table td:first-child{font-weight:700}.change-table td{white-space:normal}.import-history-table table{min-width:980px}.import-history-table td strong,.import-history-table td small{display:block}.import-status-applied{background:#e8f5ef;color:#286b53}.import-status-rolled_back{background:#f1f2f3;color:#6a747b}.button:disabled{cursor:not-allowed;opacity:.5}
@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.detail-grid{grid-template-columns:1fr}.project-strip{grid-template-columns:1fr 1fr}.parts-filterbar{grid-template-columns:minmax(240px,1fr) repeat(3,minmax(108px,auto));}.parts-filterbar .priority-check,.parts-filterbar .button,.parts-filterbar .part-column-settings{grid-row:2}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.brand{height:76px}.nav{display:flex;gap:5px;overflow:auto;padding:8px}.nav-group,.sidebar-user{display:none}.nav-link{flex:0 0 auto}.topbar{padding:0 16px}.main-content{padding:16px}.metric-grid{grid-template-columns:1fr 1fr}.filterbar{align-items:stretch;flex-direction:column}.search-control{min-width:0}.form-grid,.kv-grid,.timeline-main,.followup-card,.report-grid{grid-template-columns:1fr}.timeline-main>aside,.followup-card>aside{border-left:0;border-top:1px solid var(--line)}.project-strip{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr}.login-brand{display:none}.report-filter label{align-items:flex-start;flex-direction:column}.report-filter .form-control{width:100%}}

/* Customer workspace */
.customer-filterbar{display:grid;grid-template-columns:minmax(280px,1fr) repeat(3,minmax(126px,auto)) auto auto;gap:8px;margin-bottom:14px}
.customer-filterbar .search-control{min-width:0}
.customer-filter-submit{display:none}
.list-commandbar{min-height:38px;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:var(--muted);font-size:12px}
.column-settings{position:relative}
.column-settings summary{list-style:none}
.column-settings summary::-webkit-details-marker{display:none}
.column-settings-menu{position:absolute;z-index:20;top:42px;right:0;width:210px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 10px 28px rgba(31,43,51,.14)}
.column-settings-menu>strong{display:block;margin-bottom:8px;color:#2d3c46;font-size:12px}
.column-settings-menu label{display:flex;align-items:center;gap:8px;min-height:31px;color:#4c5b65;cursor:pointer}
.column-settings-menu input{width:15px;height:15px;accent-color:var(--brand)}
.customer-table-panel table{min-width:1320px;table-layout:fixed}
.customer-col-company{width:230px}.customer-col-region{width:105px}
.customer-table-panel col[data-column=type]{width:145px}.customer-table-panel col[data-column=contact]{width:175px}.customer-table-panel col[data-column=product]{width:245px}.customer-table-panel col[data-column=status]{width:116px}.customer-table-panel col[data-column=quote],.customer-table-panel col[data-column=sample]{width:108px}.customer-table-panel col[data-column=grade]{width:68px}
.customer-row{cursor:pointer;outline:none}
.customer-row:focus td{background:#f7f8ff;box-shadow:inset 0 1px var(--brand),inset 0 -1px var(--brand)}
.muted-value{color:var(--muted)}
.status-tag{background:#eceffc;color:var(--brand)}
.business-state{background:#edf5f7;color:#386878}
.customer-profile-header{min-height:90px;padding:16px 18px}
.customer-profile-header .profile-title{min-width:0}
.customer-profile-header .profile-title h2,.customer-profile-header .profile-title p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.customer-status-grid{display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(180px,.75fr) minmax(180px,.75fr) minmax(260px,1.15fr);gap:10px;margin-top:12px}
.customer-status-grid article{min-height:104px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:#fff}
.customer-status-grid span,.customer-status-grid small,.customer-status-grid strong{display:block}
.customer-status-grid span{color:var(--muted);font-size:11px}
.customer-status-grid strong{margin-top:10px;color:#263742;font-size:14px;line-height:1.45}
.customer-status-grid small{margin-top:7px;color:var(--muted);font-size:11px}
.customer-status-grid .next-action-summary{border-color:#c9d4df;background:#f8fafb}
.customer-detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr)}
.panel-actions{display:flex;gap:14px!important}
.customer-business-list>a{display:grid;grid-template-columns:110px minmax(190px,.7fr) minmax(260px,1fr);gap:14px;align-items:center;min-height:64px;padding:10px 15px;border-bottom:1px solid #edf1f3;color:var(--text)}
.customer-business-list>a:last-child{border-bottom:0}
.customer-business-list>a:hover{background:#fafbfc}
.customer-business-list strong,.customer-business-list small{display:block}
.customer-business-list small{margin-top:4px;color:var(--muted);font-size:11px}

/* Structured sample and quotation workspace */
.business-tabs{display:inline-flex;gap:3px;margin-bottom:12px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff}
.business-tabs a{min-height:34px;display:flex;align-items:center;gap:8px;padding:0 15px;border-radius:4px;color:#4c5b65}
.business-tabs a.active{background:var(--brand);color:#fff;font-weight:750}
.business-tabs small{opacity:.76}
.business-filterbar{display:flex;gap:8px;margin-bottom:12px}
.business-filterbar .search-control{min-width:0}
.business-metrics{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.business-metrics article{min-height:102px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:#fff}
.business-metrics span,.business-metrics strong,.business-metrics small{display:block}
.business-metrics span,.business-metrics small{color:var(--muted)}
.business-metrics span{font-size:11px}.business-metrics strong{margin:11px 0 5px;color:#172630;font-size:24px}.business-metrics small{font-size:11px}
.business-records-panel{overflow:hidden}
.business-list-head,.business-record-row{display:grid;grid-template-columns:118px minmax(220px,1.2fr) minmax(190px,1fr) minmax(260px,1.15fr);gap:14px;align-items:center}
.business-list-head{min-width:900px;padding:10px 15px;border-bottom:1px solid var(--line);background:#f5f7f8;color:var(--muted);font-size:11px;font-weight:700}
.business-list{overflow:auto}
.business-record-row{min-width:900px;min-height:72px;padding:11px 15px;border-bottom:1px solid #e8edef;color:var(--text)}
.business-record-row:last-child{border-bottom:0}
.business-record-row:hover{background:#fafbfc}
.business-record-row>span{min-width:0}
.business-record-row strong,.business-record-row small{display:block;overflow:hidden;text-overflow:ellipsis}
.business-record-row strong{line-height:1.45}
.business-record-row small{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.4;white-space:nowrap}
.record-kind{display:inline-flex!important;width:max-content;min-height:23px;align-items:center;padding:0 8px;border-radius:999px;background:#eaf5f0;color:#286b53;font-size:11px}
.record-kind.quote{background:#fff0e7;color:#9b4d18}
.record-next strong{font-weight:650;white-space:normal}
.structured-form .form-field:has(textarea){grid-column:1/-1}

/* Project and requirement workspace */
.project-metrics,.followup-metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px}.project-metrics article,.followup-metrics article{min-height:84px;padding:13px 15px;border:1px solid var(--line);border-radius:6px;background:#fff}.project-metrics span,.project-metrics strong,.project-metrics small,.followup-metrics span,.followup-metrics strong,.followup-metrics small{display:block}.project-metrics span,.project-metrics small,.followup-metrics span,.followup-metrics small{color:var(--muted)}.project-metrics span,.followup-metrics span{font-size:11px}.project-metrics strong,.followup-metrics strong{margin:9px 0 3px;font-size:23px}.project-metrics small,.followup-metrics small{font-size:11px}.project-commandbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:12px}.project-view-tabs,.followup-tabs{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#fff}.project-view-tabs a,.followup-tabs a{display:flex;min-width:86px;min-height:36px;align-items:center;justify-content:center;gap:6px;padding:0 14px;color:#4c5b65}.project-view-tabs a.active,.followup-tabs a.active{background:var(--brand);color:#fff;font-weight:750}.followup-tabs small{opacity:.72}.project-filterbar{display:grid;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(112px,auto));gap:8px}.project-filterbar .search-control{min-width:0}.project-result-count{color:var(--muted);font-size:11px;white-space:nowrap}.project-card-list{display:grid;gap:10px}.project-card{display:grid;grid-template-columns:minmax(260px,.86fr) minmax(320px,1.15fr) minmax(300px,.95fr);border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}.project-card>section{min-width:0;padding:14px 16px}.project-card>section+section{border-left:1px solid #edf1f3}.project-card-primary .brand-text,.project-name{display:block;font-weight:800}.project-name{margin-top:7px;color:var(--text);font-size:15px}.project-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:12px;color:var(--muted);font-size:11px}.project-card-application>span,.project-card-requirement>span{color:var(--muted);font-size:10px}.project-card-application>strong,.project-card-application>small{display:block}.project-card-application>strong{margin-top:7px}.project-card-application>small{margin-top:5px;color:var(--muted)}.project-card-application p,.project-card-requirement p{margin:12px 0 0;padding-top:11px;border-top:1px solid #edf1f3;line-height:1.5}.project-card-requirement small{display:block;margin-top:9px;color:var(--muted);line-height:1.45}.requirement-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.requirement-tags b{padding:4px 7px;border-radius:999px;background:#eef1f3;color:#52616b;font-size:10px}.followup-tabs{margin-bottom:12px}.followup-filterbar{display:grid;grid-template-columns:minmax(280px,1fr) minmax(125px,auto) minmax(135px,auto);gap:8px;margin-bottom:14px}.followup-filterbar .search-control{min-width:0}.followup-list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.followup-list-heading span{color:var(--muted);font-size:11px}
.contact-metrics{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-bottom:14px}.contact-metrics article{min-height:84px;padding:13px 15px;border:1px solid var(--line);border-radius:6px;background:#fff}.contact-metrics span,.contact-metrics strong,.contact-metrics small{display:block}.contact-metrics span,.contact-metrics small{color:var(--muted)}.contact-metrics span{font-size:11px}.contact-metrics strong{margin:9px 0 3px;font-size:23px}.contact-metrics small{font-size:11px}.contact-search{margin-bottom:12px}.contact-search .search-control{width:100%}.contact-directory{overflow:hidden}.contact-directory-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(300px,1.15fr) 90px minmax(180px,.75fr) 45px;gap:14px;align-items:center;min-height:54px;padding:10px 15px;border-bottom:1px solid #edf1f3}.contact-directory-row:last-child{border-bottom:0}.contact-directory-row>span{min-width:0}.contact-directory-row a{color:var(--text)}.contact-primary,.contact-related{display:inline-flex;min-height:22px;align-items:center;padding:0 8px;border-radius:999px;background:#e7f5ef;color:#177359;font-size:10px}.contact-related{background:#eef1f3;color:#667481}.contact-method{text-align:right}.contact-edit{font-size:11px;text-align:right}
.document-metrics{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-bottom:14px}.document-metrics article{min-height:84px;padding:13px 15px;border:1px solid var(--line);border-radius:6px;background:#fff}.document-metrics span,.document-metrics strong,.document-metrics small{display:block}.document-metrics span,.document-metrics small{color:var(--muted)}.document-metrics span{font-size:11px}.document-metrics strong{margin:9px 0 3px;font-size:23px}.document-metrics small{font-size:11px}.document-filterbar{display:grid;grid-template-columns:minmax(280px,1fr) minmax(150px,auto);gap:8px;margin-bottom:12px}.document-filterbar .search-control{min-width:0}.document-table-head{position:sticky;left:0;display:flex;min-height:48px;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--line);background:#fff}.document-table-head span{color:var(--muted);font-size:11px}
.action-metrics{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-bottom:14px}.action-metrics article{min-height:84px;padding:13px 15px;border:1px solid var(--line);border-radius:6px;background:#fff}.action-metrics span,.action-metrics strong,.action-metrics small{display:block}.action-metrics span,.action-metrics small{color:var(--muted)}.action-metrics span{font-size:11px}.action-metrics strong{margin:9px 0 3px;font-size:23px}.action-metrics small{font-size:11px}

@media(max-width:1180px){.customer-filterbar{grid-template-columns:minmax(240px,1fr) repeat(3,minmax(118px,auto))}.customer-filterbar .button{grid-row:2}.customer-status-grid{grid-template-columns:1fr 1fr}.business-metrics{grid-template-columns:1fr 1fr}.project-commandbar{grid-template-columns:1fr}.project-filterbar{grid-template-columns:minmax(240px,1fr) repeat(3,minmax(110px,auto)) auto}.project-card{grid-template-columns:1fr 1.35fr}.project-card-requirement{grid-column:1/-1;border-top:1px solid #edf1f3;border-left:0!important}}
@media(max-width:760px){.customer-filterbar{display:flex;align-items:stretch;flex-direction:column}.customer-filterbar .button{grid-row:auto}.customer-status-grid,.business-metrics,.project-metrics,.followup-metrics,.contact-metrics,.document-metrics,.action-metrics{grid-template-columns:1fr}.business-filterbar{flex-direction:column}.business-tabs,.project-view-tabs,.followup-tabs{display:flex}.business-tabs a,.project-view-tabs a,.followup-tabs a{flex:1;justify-content:center}.customer-business-list>a{grid-template-columns:1fr}.customer-profile-header{align-items:flex-start;flex-wrap:wrap}.profile-tags{width:100%;margin-left:67px}.structured-form .form-field:has(textarea){grid-column:auto}.project-filterbar,.followup-filterbar,.document-filterbar{display:flex;flex-direction:column}.project-card{grid-template-columns:1fr}.project-card>section+section{border-top:1px solid #edf1f3;border-left:0}.project-card-requirement{grid-column:auto}.contact-directory-row{grid-template-columns:1fr}.contact-method,.contact-edit{text-align:left}}

/* Parts-library parity with the accepted prototype. */
.category-button strong{font-size:15px}.category-button span{font-size:10px}.segmented a{min-width:122px;justify-content:center}.family-tabs a{font-size:14px}.parts-filterbar{grid-template-columns:minmax(260px,1fr) repeat(5,minmax(108px,auto)) auto auto;overflow-x:auto;padding-bottom:2px}.parts-filter-submit{display:none}.parts-table-head{min-height:48px;padding:0 15px}.parts-table-head strong{font-size:14px}.parts-table th{padding:10px 16px 10px 12px;font-size:10px}.parts-table td{padding:11px 12px;font-size:11px}.parts-table .part-link strong{font-size:11px;font-weight:750}.parts-table .brand-name{font-weight:750}.parts-table .cert-list b{font-size:9px}.parts-compare-bar{position:fixed;right:0;bottom:0;left:224px;z-index:18;min-height:64px;padding:10px 26px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #ccd5dc;background:rgba(255,255,255,.97);box-shadow:0 -10px 28px rgba(22,35,44,.10)}.parts-compare-bar[hidden]{display:none}.parts-compare-summary{color:#45535f;font-size:12px}.parts-compare-summary strong{color:var(--brand)}.parts-compare-actions{display:flex;align-items:center;gap:8px}.parts-compare-actions .button{min-height:35px;font-weight:650}body.compare-active .main-content{padding-bottom:105px}

.parts-filterbar{grid-template-columns:minmax(260px,1fr) repeat(5,minmax(108px,auto)) auto auto}
.priority-filter{height:37px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--text);white-space:nowrap;cursor:pointer}.priority-filter.active{border-color:#d6a11c;background:#fff7dd;color:#75520a;font-weight:750}.part-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.part-line>a:first-child{min-width:0}.priority-star{display:grid;flex:0 0 25px;width:25px;height:25px;padding:0;place-items:center;border:1px solid transparent;border-radius:4px;background:transparent;color:#8d98a1;font-size:16px;line-height:1;text-align:center;cursor:pointer}.priority-star:hover,.priority-star.active{border-color:#efd382;background:#fff7dd;color:#b77b00}.priority-star:disabled{cursor:wait;opacity:.7}

/* Model comparison is an overlay, not a second page layout. */
.comparison-backdrop{position:fixed;inset:0;z-index:20;background:rgba(18,30,48,.16)}.comparison-dialog{position:fixed;top:74px;right:18px;bottom:18px;left:242px;z-index:22;display:flex;flex-direction:column;overflow:hidden;border:1px solid #d7dfe6;border-radius:7px;background:#fff;box-shadow:0 20px 56px rgba(18,30,48,.18)}.comparison-head{flex:0 0 62px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce3e9}.comparison-head h2{margin:0;color:#172552;font-size:17px;font-weight:700}.comparison-close{width:34px;height:34px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#172552;font-size:18px;cursor:pointer}.comparison-body{flex:1 1 auto;min-height:0;padding:18px 24px 0;overflow:auto}.comparison-footer{flex:0 0 66px;padding:12px 24px;display:flex;align-items:center;justify-content:flex-end;border-top:1px solid #e2e7eb}.comparison-footer button{min-width:112px;height:38px;border:1px solid #bfcbd5;border-radius:5px;background:#fff;color:#263c67;font-weight:400;cursor:pointer}.comparison-controls{position:sticky;left:0;z-index:2;min-width:980px;margin-bottom:12px;display:grid;grid-template-columns:auto auto minmax(310px,1fr) auto auto;align-items:center;gap:18px;background:#fff}.comparison-reference{display:flex;align-items:center;color:#34455d;font-size:11px}.comparison-reference>span{height:40px;padding:0 14px;display:flex;align-items:center;border:1px solid #dce3e9;border-right:0;border-radius:5px 0 0 5px;background:#f4f6f8;font-weight:700;white-space:nowrap}.comparison-reference select{min-width:220px;height:40px;padding:0 34px 0 12px;border:1px solid #b9c8d8;border-radius:0 5px 5px 0;background:#fff;color:#172552;font-size:11px;font-weight:700}.comparison-toggle{display:flex;align-items:center;gap:7px;color:#243858;font-size:11px;cursor:pointer;white-space:nowrap}.comparison-toggle input{accent-color:var(--brand)}.comparison-legend{display:flex;justify-content:center;align-items:center;gap:18px;color:#718096;font-size:11px;white-space:nowrap}.comparison-legend span:first-child{color:#bd3023}.comparison-count{color:#293c63;font-size:11px;white-space:nowrap}.comparison-add{height:40px;padding:0 20px;border:1px solid #4b4cf0;border-radius:5px;background:#fff;color:#3133dc;font-size:14px;font-weight:750;white-space:nowrap;cursor:pointer}.comparison-empty{padding:60px;color:var(--muted);font-size:12px;text-align:center}.comparison-table-wrap{min-width:980px;border:1px solid #d7e0e8;border-radius:5px;overflow:hidden}.comparison-dialog .comparison-table{width:100%;min-width:980px;border-collapse:collapse;table-layout:fixed}.comparison-dialog .comparison-table th{min-width:180px;padding:12px 16px;border-right:1px solid #d7e0e8;border-bottom:0;background:#edf3f8;color:#142653;font-size:12px;text-align:center}.comparison-dialog .comparison-table th:first-child{width:220px;min-width:220px;background:#edf3f8;text-align:left}.comparison-dialog .comparison-table th:last-child{border-right:0}.comparison-dialog .comparison-table td{min-width:180px;padding:10px 16px;border-top:1px solid #dfe6ec;border-right:1px solid #dfe6ec;border-bottom:0;background:#fff;color:#1b3768;font-size:11px;font-weight:400;text-align:center}.comparison-dialog .comparison-table td:first-child{background:#f8fafc;color:#18305f;font-weight:700;text-align:left}.comparison-dialog .comparison-table td:last-child{border-right:0}.comparison-dialog .comparison-table th.reference{background:var(--brand);color:#fff}.comparison-model strong,.comparison-model small{display:block}.comparison-model strong{font-size:11px;font-weight:800}.comparison-brand{margin-top:5px;font-size:9px;font-weight:750}.comparison-brand.brand-ubright{color:#302e8b}.comparison-brand.brand-sfi{color:#b33b32}.comparison-brand.brand-boarden{color:#c16022}.comparison-model.reference .comparison-brand.brand-ubright{color:#8fe2f0}.comparison-model.reference .comparison-brand.brand-sfi{color:#ffb0a8}.comparison-model.reference .comparison-brand.brand-boarden{color:#ffc291}.comparison-dialog .comparison-table td.reference{background:#fff;color:#1b3768}.comparison-dialog .comparison-table td.different{background:#fff;color:#bd3023;font-weight:750}.comparison-dialog .comparison-table td.missing{background:#fff;color:#8a98aa;font-weight:500}

@media(min-width:761px) and (max-width:1390px){.comparison-controls{grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px 14px}.comparison-reference{grid-column:1}.comparison-toggle{grid-column:2}.comparison-count{grid-column:3;justify-self:end}.comparison-add{grid-column:4}.comparison-legend{grid-row:2;grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap;gap:6px 18px;white-space:normal}}
@media(max-width:760px){.parts-compare-bar{left:0;padding:9px 14px}.comparison-dialog{inset:70px 8px 8px}.comparison-body{padding:14px 14px 0}.comparison-controls{position:static;min-width:0;grid-template-columns:1fr;gap:9px}.comparison-reference{width:100%}.comparison-reference select{min-width:0;flex:1}.comparison-legend{justify-content:flex-start;flex-wrap:wrap;gap:5px 12px;white-space:normal}.comparison-add{width:100%}.comparison-footer{padding-right:14px;padding-left:14px}}

/* Shared page typography measured from the accepted desktop prototype. */
.business-metrics strong,.contact-metrics strong,.document-metrics strong,.action-metrics strong{font-size:22px}.business-record-row strong{font-size:12px}.contact-directory-row{margin:0 15px;padding:12px 0;font-size:12px}.project-card>section{padding:15px 17px}.project-card-primary .brand-text{font-size:12px}.project-name{margin-top:5px;font-size:14px;line-height:1.5}.project-meta{gap:6px;margin-top:8px;font-size:10px}.project-card-application>strong{font-size:13px;line-height:1.5}.project-card-application>small{margin-top:4px;font-size:11px;line-height:1.5}.project-card-application p,.project-card-requirement p{margin-top:9px;padding-top:8px;font-size:11px;line-height:1.55}.project-card-requirement small{margin-top:7px;font-size:10px}.followup-main>small{font-size:10px}.followup-main p.technical{margin-top:7px;font-size:10px;line-height:1.65}.followup-card>aside{padding:18px 20px}.followup-card>aside>span{font-size:10px;font-weight:750}.followup-card>aside p{font-size:12px;font-weight:650;line-height:1.7}
.kv-grid dd,.spec-grid dd{font-size:12px}.profile-header p{font-size:12px}.form-grid{gap:14px}.form-field label{font-size:13px;font-weight:650}.form-control{min-height:42px}
