.portal-shell{display:grid;grid-template-columns:248px minmax(0,1fr);grid-template-rows:64px minmax(calc(100vh - 64px),auto);min-height:100vh}.topbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--line);display:flex;grid-column:1/-1;height:64px;justify-content:space-between;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:40}.topbar-brand{font-size:18px;font-weight:700}.security-note,.sidebar-heading>div,.topbar-context,.user-summary{align-items:center;display:flex}.topbar-context{gap:14px}.environment-badge,.read-only-badge{background:var(--surface-subtle);border:1px solid var(--line);border-radius:4px;color:var(--ink-muted);font-size:12px;font-weight:600;padding:5px 8px}.topbar-divider{background:var(--line);height:24px;width:1px}.user-summary{gap:9px}.avatar{align-items:center;background:var(--blue);border-radius:50%;color:#fff;display:inline-flex;font-size:12px;font-weight:700;height:32px;justify-content:center;width:32px}.user-email{color:#344054;font-size:13px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar{background:#fbfcfd;border-right:1px solid var(--line);display:flex;flex-direction:column;grid-column:1;grid-row:2;min-height:calc(100vh - 64px);padding:22px 16px 18px}.sidebar-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:28px;padding:0 8px}.sidebar-heading>div{gap:10px}.brand-mark{align-items:center;background:#122a53;border-radius:6px;color:#fff;display:inline-flex;font-size:16px;font-weight:800;height:44px;justify-content:center;width:44px}.brand-mark-small{border-radius:5px;font-size:11px;height:30px;width:30px}.sidebar-heading strong{font-size:15px}.sidebar-nav{flex:1 1}.nav-label{color:var(--ink-soft);font-size:11px;font-weight:700;padding:0 11px 8px;text-transform:uppercase}.nav-label-spaced{margin-top:26px}.nav-link{align-items:center;border:0;border-radius:6px;color:#475467;display:flex;font-weight:500;gap:11px;margin:2px 0;min-height:42px;padding:10px 11px;text-align:left;width:100%}.nav-link:hover{background:#f0f3f7;color:var(--ink)}.nav-link-active{font-weight:650}.nav-link-active,.nav-link-active:hover{background:var(--blue-soft);color:var(--blue)}.sidebar-footer{border-top:1px solid var(--line);padding-top:14px}.security-note{color:var(--green);font-size:12px;gap:8px;padding:8px 11px}.logout-button{background:transparent}.mobile-logout{display:none}.workspace{grid-column:2;grid-row:2;min-width:0;padding:34px clamp(24px,3vw,48px) 56px}.page-heading{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin:0 0 26px}.eyebrow{color:var(--blue);font-size:11px;font-weight:750;margin-bottom:6px;text-transform:uppercase}.page-heading h1{font-size:29px;line-height:1.2}.page-subtitle{color:var(--ink-muted);margin-top:7px}.heading-actions{display:flex;gap:8px}.button{align-items:center;border:1px solid transparent;border-radius:5px;display:inline-flex;font-size:13px;font-weight:650;gap:8px;height:38px;justify-content:center;padding:0 14px;white-space:nowrap}.button-primary{background:var(--blue);border-color:var(--blue);color:#fff}.button-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.button-secondary{background:var(--surface);border-color:var(--line-strong);color:#344054}.button-secondary:hover,.button-tertiary:hover{background:var(--surface-subtle)}.button-tertiary{background:transparent;color:var(--blue);padding-left:8px;padding-right:8px}.button:disabled{opacity:.5}.icon-button{align-items:center;background:transparent;border:0;border-radius:4px;display:inline-flex;height:32px;justify-content:center;padding:0;width:32px}.icon-button:hover{background:#eef1f5}.mobile-menu,.sidebar-close{display:none}.admin-section,.admin-side-panel,.profile-panel,.summary-panel,.table-section,.tool-panel{background:var(--surface);border:1px solid var(--line);border-radius:7px}.tool-panel{margin-bottom:26px;padding:20px}.section-heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.section-heading h2{font-size:17px;line-height:1.35}.section-heading p{color:var(--ink-muted);font-size:12px;line-height:1.5;margin-top:3px}.policy-status,.table-status{align-items:center;color:var(--green);display:inline-flex;font-size:12px;font-weight:650;gap:6px;white-space:nowrap}.policy-status{background:var(--green-soft);border-radius:4px;padding:5px 8px}.pricing-form{align-items:end;display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(220px,2fr) minmax(120px,.8fr) minmax(160px,1.2fr) repeat(5,minmax(88px,.65fr)) auto;margin-top:20px}.field{min-width:0;position:relative}.field label{color:#344054;display:block;font-size:12px;font-weight:650;margin-bottom:7px}.field input,.field select{background:var(--surface);border:1px solid var(--line-strong);border-radius:5px;height:40px;outline:none;padding:0 10px;width:100%}.field input::placeholder{color:#98a2b3}.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,92,211,.12)}.field input[readonly]{background:var(--surface-subtle);color:var(--ink-muted)}.input-with-icon{position:relative}.input-with-icon>svg{color:var(--ink-muted);left:11px;position:absolute;top:11px}.input-with-icon input{padding-left:36px;padding-right:32px}.auth-loading,.button-spinner,.field-spinner{animation:spin .8s linear infinite;border-radius:50%;border:2px solid #d0d5dd;border-top:2px solid var(--blue);display:inline-block}.field-spinner{height:15px;position:absolute;right:11px;top:12px;width:15px}.button-spinner{border-color:#fff rgba(255,255,255,.45) rgba(255,255,255,.45);height:16px;width:16px}.search-results{background:var(--surface);border:1px solid var(--line-strong);border-radius:5px;box-shadow:0 12px 30px rgba(16,24,40,.13);left:0;max-height:300px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 5px);z-index:30}.search-results button{align-items:center;background:transparent;border:0;border-bottom:1px solid #edf0f4;display:flex;justify-content:space-between;padding:10px 12px;text-align:left;width:100%}.search-results button:last-child{border-bottom:0}.search-results button:hover{background:var(--blue-soft)}.search-results button span{display:flex;flex-direction:column;min-width:0}.search-results strong{font-size:13px;overflow-wrap:anywhere}.search-results small{color:var(--ink-muted);margin-top:2px}.search-empty{color:var(--ink-muted);padding:16px;text-align:center}.calculate-button{height:40px}.inline-alert{align-items:center;background:var(--red-soft);border:1px solid #f3c9bc;border-radius:5px;color:var(--red);display:flex;font-size:12px;gap:8px;margin-top:16px;padding:10px 12px}.table-section{overflow:hidden}.table-heading{align-items:center;padding:17px 19px}.data-table-wrap{border-top:1px solid var(--line);overflow-x:auto}.data-table{border-collapse:collapse;min-width:1000px;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e9ecf1;height:49px;padding:10px 13px;text-align:left;vertical-align:middle}.data-table th{background:var(--surface-subtle);color:#667085;font-size:11px;font-weight:700;text-transform:uppercase;white-space:nowrap}.data-table td{color:#344054;font-size:12px}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover,.selected-row{background:#f7f9fc}.data-table tbody tr:last-child td{border-bottom:0}.data-table .numeric{text-align:right}.total-cell{color:var(--blue)!important;font-weight:750}.row-actions{text-align:center!important;width:48px}.danger-button{color:var(--red)}.empty-state{align-items:center;color:var(--ink-muted);display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:160px}.empty-state strong{color:#344054;margin-top:3px}.detail-layout{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);margin-top:20px}.profile-panel,.summary-panel{padding:19px}.timestamp{color:var(--ink-muted);font-size:12px}.metric-list{display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(3,1fr);margin-top:18px}.metric-list>div{background:var(--surface-subtle);min-width:0;padding:14px}.metric-list>div:first-child{border-radius:5px 0 0 5px}.metric-list>div:last-child{border-radius:0 5px 5px 0}.admin-definition-list dt,.metric-list dt,.record-grid dt{color:var(--ink-muted);font-size:11px;margin-bottom:6px}.metric-list dd{font-size:17px;font-weight:700}.primary-metric{background:var(--blue-soft)!important}.primary-metric dd{color:var(--blue)}.record-grid{display:grid;grid-gap:14px 24px;gap:14px 24px;grid-template-columns:repeat(2,1fr);margin-top:18px}.record-grid>div{border-bottom:1px solid #edf0f4;padding-bottom:10px}.record-grid dd{color:#344054;font-size:12px;font-weight:650;overflow-wrap:anywhere}.status-strip{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.status-item{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:7px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr) auto;min-height:92px;padding:15px}.status-icon{align-items:center;border-radius:50%;display:inline-flex;height:39px;justify-content:center;width:39px}.status-icon.blue{background:var(--blue-soft);color:var(--blue)}.status-icon.green{background:var(--green-soft);color:var(--green)}.status-icon.amber{background:var(--amber-soft);color:var(--amber)}.status-icon.violet{background:var(--violet-soft);color:var(--violet)}.status-item p{color:var(--ink-muted);font-size:11px;margin-bottom:4px}.status-item strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{background:#98a2b3;border-radius:50%;display:inline-block;flex:0 0 auto;height:8px;width:8px}.status-dot.online{background:#1f9d59;box-shadow:0 0 0 3px #e5f7eb}.status-dot.offline{background:#d92d20;box-shadow:0 0 0 3px #feeceb}.admin-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1fr) 300px}.admin-table{min-width:760px}.admin-side-panel{padding:19px}.admin-definition-list{margin-top:18px}.admin-definition-list>div{align-items:center;border-bottom:1px solid #edf0f4;display:flex;justify-content:space-between;padding:11px 0}.admin-definition-list>div:last-child{border-bottom:0}.admin-definition-list dt{margin:0}.admin-definition-list dd{font-size:12px;font-weight:650;text-align:right}.admin-section{margin-top:20px;padding:19px}.manufacturer-list{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.manufacturer-list article{align-items:center;background:var(--surface-subtle);border:1px solid #edf0f4;border-radius:5px;display:flex;gap:13px;padding:14px}.manufacturer-code{align-items:center;background:#122a53;border-radius:4px;color:#fff;display:inline-flex;font-size:11px;font-weight:750;height:36px;justify-content:center;width:44px}.manufacturer-list strong{font-size:13px}.access-section p,.manufacturer-list p{color:var(--ink-muted);font-size:12px;margin-top:3px}.access-section{align-items:center;display:grid;grid-gap:14px;gap:14px;grid-template-columns:auto minmax(0,1fr) auto}.access-section h2{font-size:16px}.auth-page{align-items:center;background:#eef1f5;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{background:var(--surface);border:1px solid var(--line);border-radius:7px;max-width:390px;padding:36px;width:100%}.login-panel h1{font-size:29px}.login-copy{color:var(--ink-muted);margin-top:9px}.login-panel .brand-mark{margin-bottom:24px}.login-button{margin-top:24px;width:100%}.auth-loading{height:28px;width:28px}.sidebar-scrim{display:none}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1380px){.pricing-form{grid-template-columns:repeat(4,minmax(130px,1fr))}.field-part{grid-column:span 2}.calculate-button{align-self:end}.status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1000px){.portal-shell{display:block;padding-top:64px}.topbar{left:0;padding:0 18px;position:fixed;right:0}.mobile-logout,.mobile-menu,.sidebar-close{display:inline-flex}.topbar-brand{margin-right:auto;margin-left:10px}.environment-badge,.topbar-divider{display:none}.sidebar{bottom:0;left:0;min-height:100vh;position:fixed;top:0;transform:translateX(-100%);transition:transform .18s ease;width:270px;z-index:60}.sidebar-open{transform:translateX(0)}.sidebar-scrim{background:rgba(16,24,40,.48);border:0;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:50}.workspace{padding:28px 20px 44px}.admin-grid,.detail-layout{grid-template-columns:1fr}}@media (max-width:720px){.user-email,.user-summary>svg{display:none}.topbar-context{gap:0}.page-heading{align-items:stretch;flex-direction:column}.page-heading h1{font-size:25px}.heading-actions .button,.page-heading>.button{width:100%}.pricing-form{grid-template-columns:repeat(2,minmax(0,1fr))}.field-part{grid-column:1/-1}.calculate-button{grid-column:1/-1;width:100%}.manufacturer-list,.metric-list,.record-grid,.status-strip{grid-template-columns:1fr}.metric-list>div:first-child,.metric-list>div:last-child{border-radius:5px}.access-section{align-items:flex-start;grid-template-columns:auto minmax(0,1fr)}.access-section .read-only-badge{grid-column:2;justify-self:start}}@media (max-width:480px){.workspace{padding-left:14px;padding-right:14px}.pricing-form{grid-template-columns:1fr}.calculate-button,.field-part{grid-column:auto}.admin-section,.admin-side-panel,.profile-panel,.summary-panel,.tool-panel{padding:15px}.section-heading{gap:10px}.policy-status{display:none}}@media print{.detail-layout,.page-heading,.sidebar,.tool-panel,.topbar{display:none}.portal-shell,.workspace{display:block;padding:0}.table-section{border:0}}:root{--ink:#172033;--ink-muted:#667085;--ink-soft:#8a94a6;--line:#dfe3ea;--line-strong:#ccd2dc;--canvas:#f6f7f9;--surface:#ffffff;--surface-subtle:#f9fafb;--blue:#175cd3;--blue-dark:#12489f;--blue-soft:#eaf1ff;--green:#16824b;--green-soft:#e8f7ee;--amber:#a15c00;--amber-soft:#fff4dd;--violet:#6941c6;--violet-soft:#f0ebff;--red:#c4320a;--red-soft:#fff0eb}*{box-sizing:border-box}body,html{background:var(--canvas)}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;letter-spacing:0}button,input,select,textarea{color:inherit;font:inherit;letter-spacing:0}button,select{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}dd,dl,h1,h2,h3,p{margin:0}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{margin:0}.visually-hidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}