:root{
    --sidebar-width:272px;
    --sidebar-collapsed-width:78px;
    --topbar-height:70px;
    --ink:#112441;
    --muted:#64748b;
    --line:#dfe8f2;
    --surface:#ffffff;
    --surface-soft:#f5f9fd;
    --page:#f3f7fb;
    --blue:#1768ff;
    --blue-dark:#0a54d1;
    --teal:#08bdc8;
    --teal-dark:#087f89;
    --green:#0f9f72;
    --amber:#d88a00;
    --red:#c92f45;
    --purple:#6d55c6;
    --shadow:0 12px 34px rgba(30,65,105,.07);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--page);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:15px}
a{color:#0768df;text-decoration:none}
a:hover{color:#034fae}
button,input,select,textarea{font:inherit}

/* Shell */
.sidebar{position:fixed;inset:0 auto 0 0;z-index:1030;width:var(--sidebar-width);display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);transition:width .2s ease,transform .2s ease;overflow:hidden}
.brand{height:var(--topbar-height);display:flex;align-items:center;gap:12px;padding:0 17px;color:var(--ink);font-size:23px;font-weight:800;border-bottom:1px solid var(--line);white-space:nowrap}
.brand:hover{color:var(--ink)}
.fmark{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;color:#fff;font-size:24px;font-weight:900;border-radius:12px;background:linear-gradient(145deg,var(--blue),var(--teal));box-shadow:0 8px 22px rgba(23,104,255,.22)}
.brand-text{overflow:hidden}
.sidebar-nav{flex:1;min-height:0;padding:14px 12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.nav-root,.nav-group summary{min-height:43px;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:#28405f;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap}
.nav-group summary::-webkit-details-marker{display:none}
.nav-root i,.nav-group summary>i:first-child{flex:0 0 22px;width:22px;text-align:center;font-size:18px;color:#537194}
.nav-root:hover,.nav-group summary:hover{background:linear-gradient(90deg,#edf6ff,#e8fcfa);color:#086bdc}
.nav-root.active{color:#fff;background:linear-gradient(100deg,var(--blue),var(--teal));box-shadow:0 9px 22px rgba(23,104,255,.18)}
.nav-root.active i{color:#fff}
.nav-group{margin-top:3px}
.nav-group[open]>summary{color:#0768df;background:#f0f7ff}
.nav-group .chevron{margin-left:auto;font-size:12px;transition:transform .18s ease}
.nav-group[open] .chevron{transform:rotate(180deg)}
.nav-children{display:grid;gap:3px;margin:4px 0 7px 34px;padding-left:9px;border-left:2px solid #e3ebf5}
.nav-children a{display:block;padding:8px 10px;border-radius:9px;color:#53657c;font-size:13px;font-weight:650;line-height:1.25}
.nav-children a:hover{background:#f0f7ff;color:#0768df}
.nav-children a.active{color:#0768df;background:linear-gradient(90deg,#eaf3ff,#e4fbf8);box-shadow:inset 3px 0 0 var(--teal)}
.sidebar-footer{flex:0 0 auto;padding:11px 12px 14px;border-top:1px solid var(--line);background:#fff}
.sidebar-collapse{width:100%;display:flex;align-items:center;gap:10px;padding:9px 11px;border:0;border-radius:9px;background:transparent;color:#58708f;font-weight:700;text-align:left}
.sidebar-collapse:hover{background:#f0f7ff;color:#0768df}
.version{display:block;margin-top:7px;text-align:center;color:#8a99ad;font-size:11px;white-space:nowrap}
.app-main{min-height:100vh;margin-left:var(--sidebar-width);transition:margin-left .2s ease;min-width:0}
.topbar{position:sticky;top:0;z-index:1020;height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 26px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:13px;min-width:0}
.topbar-context{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#48617f;font-weight:650}
.language-select{width:74px;border-color:#b9dfe3;background-color:#f6fcfc;color:#174f62}
.user-context{display:grid;line-height:1.2;white-space:nowrap}
.user-context small{color:var(--muted);font-size:11px}
.icon-button,.mobile-menu{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#44617f}
.icon-button:hover,.mobile-menu:hover{color:#0768df;background:#f0f7ff}
.mobile-menu{display:none}
.logout-form{margin:0}
.sidebar-backdrop{display:none}
.content{width:100%;padding:25px 28px 42px;min-width:0}

/* Collapsed sidebar */
body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-width)}
body.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed-width)}
body.sidebar-collapsed .brand{padding:0 17px}
body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-root span,body.sidebar-collapsed .nav-group summary span,body.sidebar-collapsed .nav-group .chevron,body.sidebar-collapsed .sidebar-collapse span,body.sidebar-collapsed .version{display:none}
body.sidebar-collapsed .nav-root,body.sidebar-collapsed .nav-group summary{justify-content:center;padding-inline:8px}
body.sidebar-collapsed .nav-group[open] .nav-children{display:none}
body.sidebar-collapsed .sidebar-collapse{justify-content:center}

/* Typography and common blocks */
h1{margin:0;font-size:28px;line-height:1.18;font-weight:780;letter-spacing:-.02em}
h2{font-size:21px;font-weight:760}
h3{font-size:17px;font-weight:740}
.page-head,.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:19px}
.page-head>div:first-child,.page-heading>div:first-child{min-width:0}
.page-head h1,.page-heading h1{overflow-wrap:anywhere}
.muted,.visually-subtle{color:var(--muted)}
.small{font-size:12px}
.hint{margin-top:5px;color:#78879b;font-size:12px}
.hash,code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}

.card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:var(--shadow)}
.card-title{margin:0 0 15px;font-size:18px;font-weight:780}
.grid-2,.two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.grid{display:grid;gap:18px}
.kpis,.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}
.kpis .card strong,.stat-card strong{display:block;margin-top:5px;font-size:31px}
.stat-card{position:relative;overflow:hidden}
.stat-card::after{content:"";position:absolute;width:95px;height:95px;right:-30px;top:-35px;border-radius:50%;background:linear-gradient(145deg,rgba(23,104,255,.11),rgba(8,189,200,.08))}
.workflow,.workflow-banner,.left-workflow-banner{padding:20px;background:linear-gradient(100deg,#ecfbf9,#eef5ff);border:1px solid #d7ebf5;border-radius:13px}
.empty-state,.left-empty-state{padding:24px;text-align:center;color:#77869b}
.subsection{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.small-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#5b708c}

/* Buttons */
.btn-main,button.btn-main,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:9px;padding:10px 16px;background:linear-gradient(100deg,var(--blue),#0b91ec 58%,var(--teal));color:#fff;font-weight:750;cursor:pointer;box-shadow:0 7px 17px rgba(23,104,255,.15)}
.btn-main:hover,.btn-primary:hover{color:#fff;filter:brightness(.96)}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #9ccbd4;border-radius:9px;padding:9px 14px;background:#f4fbfc;color:#176377;font-weight:750;cursor:pointer}
.btn-secondary:hover{background:#e9f8fa;color:#0a6570}
.btn-link{border:0;background:none;color:#0768df;padding:0;box-shadow:none}
.compact-button{padding:7px 10px;font-size:12px}
.action-row,.page-actions,.status-stack,.profile-action-row,.table-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.page-actions{justify-content:flex-end}
.inline-form,.left-inline-form{display:inline-flex;gap:8px;align-items:center;margin:0}

/* Forms */
.form-card,.wide-form-card,.left-form-card{display:grid;gap:11px;max-width:850px}
.wide-form-card{max-width:none}
.form-grid,.parameter-form-grid,.profile-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-wide,.full-width{grid-column:1/-1}
.form-field{display:grid;gap:5px}
.form-field label,.form-card>label{font-size:13px;color:#526781;font-weight:700}
.form-card input,.form-card select,.form-card textarea,.form-grid input,.form-grid select,.form-grid textarea,.filter-row input,.filter-row select,.compact-form input,.compact-form select,.compact-form textarea,.inline-form input,.inline-form select{width:100%;padding:9px 11px;border:1px solid #cdd9e7;border-radius:8px;background:#fff;color:var(--ink);min-width:0}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:0;border-color:#59a9f8;box-shadow:0 0 0 3px rgba(23,104,255,.10)}
.filter-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,auto) auto;gap:10px;align-items:end}
.compact-form{padding:14px}
.check-line,.user-active-line{display:flex;align-items:center;gap:8px}
.check-line input,.user-active-line input{width:auto}

/* Tables */
.table-wrap,.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;border-radius:11px}
table{width:100%;border-collapse:collapse;table-layout:auto}
th,td{padding:12px 13px;text-align:left;vertical-align:top;border-bottom:1px solid #e8eef5;overflow-wrap:anywhere;word-break:normal}
th{color:#5c6f88;font-size:12px;font-weight:800;text-transform:none;background:#fbfdff;white-space:nowrap}
tbody tr:hover{background:#f9fcff}
td strong{font-weight:760}
.table-compact th,.table-compact td{padding:9px 10px}
.spec-summary{display:grid;gap:3px;min-width:160px}
.spec-summary small{color:var(--muted)}
.technical-details{margin-top:6px}
.technical-details summary{cursor:pointer;color:#58708d;font-size:12px}
.technical-json{max-width:520px;max-height:220px;overflow:auto;padding:10px;border-radius:8px;background:#11213a;color:#dceaff;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.45 ui-monospace,Consolas,monospace}

/* Statuses */
.status-pill,.badge.status,.badge-soft{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#edf2f8;color:#53627b;font-size:12px;font-weight:800;white-space:nowrap}
.status-pill.pass,.badge-soft.pass,.eligibility-eligible{background:#dff8ee;color:#087c59}
.status-pill.warning,.badge-soft.warning,.eligibility-conditionallyeligible{background:#fff2d5;color:#936100}
.status-pill.fail,.status-pill.error,.status-pill.critical,.badge-soft.fail,.eligibility-noteligible{background:#ffe4e7;color:#b31d31}
.status-pill.information,.status-pill.neutral,.status-pill.notevaluated,.badge-soft.info{background:#e9f2ff;color:#2b5d98}
.status-pill.released{background:#dff8ee;color:#087c59}
.status-pill.blocked,.status-pill.recalled,.status-pill.rejected{background:#ffe4e7;color:#b31d31}
.status-pill.quarantine,.status-pill.undertest,.status-pill.sampling{background:#fff2d5;color:#936100}
.status-pill.approved,.status-pill.reviewed{background:#eee9ff;color:#5941b5}
.eligibility-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:17px;border-radius:13px;border-left:5px solid var(--green);background:#f5fffb}
.eligibility-panel.noteligible{border-left-color:var(--red);background:#fff7f8}
.eligibility-panel.conditionallyeligible{border-left-color:var(--amber);background:#fffaf0}
.eligibility-panel label{display:block;color:var(--muted);font-size:12px}
.eligibility-panel strong{display:block;font-size:18px}
.eligibility-panel .reasons{grid-column:1/-1;color:#52647d;font-size:13px}

/* Detail layouts */
.detail-list{display:grid;grid-template-columns:minmax(145px,195px) minmax(0,1fr);gap:9px 18px;margin:0}
.detail-list dt{color:#64738c;font-weight:650}
.detail-list dd{margin:0;overflow-wrap:anywhere}
.equipment-chip,.asset-chip,.usage-chip{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#f8fbfe;margin-bottom:8px}
.equipment-chip span{color:#526781}
.genealogy-flow{display:grid;gap:9px}
.genealogy-node{display:grid;grid-template-columns:42px minmax(0,1.4fr) minmax(0,.8fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff}
.genealogy-depth{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#e7f2ff,#e1fbf8);color:#0768df;font-weight:900}
.genealogy-node.blocked{border-color:#f1b8c0;background:#fff8f9}
.genealogy-node .node-meta{color:var(--muted);font-size:12px}

/* Alerts */
.qc-signal,.material-alert{margin-bottom:10px;padding:13px 14px;border-left:4px solid #6f91bd;border-radius:9px;background:#f4f8fd}
.qc-signal.information,.material-alert.information{border-color:#2e86de}
.qc-signal.warning,.material-alert.warning{border-color:#e6a21a;background:#fff9e9}
.qc-signal.critical,.material-alert.critical{border-color:#d53a4e;background:#fff1f2}
.alert{border-radius:10px;border:1px solid transparent}

/* Existing utility UI compatibility */
.mapping-grid{display:grid;grid-template-columns:1.15fr .85fr 1fr 1.5fr;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e8eef6}
.mapping-header{color:#5b6c88;font-size:12px;font-weight:750;text-transform:uppercase}
.mapping-grid select,.mapping-grid input,.utility-input-form input,.utility-input-form select{width:100%;padding:9px 11px;border:1px solid #ced9e8;border-radius:8px;background:#fff}
.mapping-extra{display:grid;grid-template-columns:1.35fr 1fr;gap:8px}
.input-source-legend{display:flex;gap:18px;margin-bottom:16px;color:#687791;font-size:13px}
.source-dot{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:50%;background:#96a4b8}.source-dot.auto{background:#16b7ae}.source-dot.selected{background:#6d5bd0}
.utility-field-row{display:grid;grid-template-columns:minmax(230px,.9fr) 1.6fr;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid #e8eef6}
.resolved-input{border-color:#78cfc8!important;background:#f1fcfb!important}.selected-result-input{border-color:#9e90e8!important;background:#f6f4ff!important}
.utility-launch-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #e8eef6}
.json-output,pre{white-space:pre-wrap;overflow-wrap:anywhere}.json-output{max-height:520px;overflow:auto;padding:14px;background:#101b2e;color:#d8e8ff;border-radius:9px}
.binding-tabs{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid #e8eef6;padding-top:14px}.binding-tabs a{padding:8px 12px;border:1px solid #d9e4f0;border-radius:9px;background:#fff}.binding-tabs a.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#2f78d1,#16a8a1)}
.profile-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.profile-steps span{padding:11px 12px;border:1px solid #dce7f2;border-radius:10px;background:linear-gradient(135deg,#f4f9ff,#f1fcfa);color:#465b79;font-size:13px}
.pagination-row{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:18px;flex-wrap:wrap}.pagination-row a,.pagination-row span{min-width:34px;padding:7px 10px;border-radius:8px;text-align:center}.pagination-row a{border:1px solid #d9e4f0;background:#fff}.pagination-row a.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#2f78d1,#16a8a1)}

/* Login */
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#e8fcfb,#eef4ff 45%,#f8fbff)}
.login-card{width:min(390px,calc(100vw - 30px));display:grid;gap:10px;padding:30px;background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(28,65,110,.15)}
.login-card input{padding:12px;border:1px solid #ced9e8;border-radius:8px}

@media(max-width:1180px){
    .kpis,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mapping-grid{grid-template-columns:1fr 1fr}.mapping-header{display:none}
}
@media(max-width:950px){
    .sidebar{transform:translateX(-100%);width:var(--sidebar-width)}
    .app-main,body.sidebar-collapsed .app-main{margin-left:0}
    body.sidebar-mobile-open .sidebar{transform:translateX(0)}
    body.sidebar-mobile-open .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:1025;background:rgba(15,31,54,.42)}
    .mobile-menu{display:grid}
    .grid-2,.two-columns{grid-template-columns:1fr}
    .content{padding:20px}
    .topbar{padding:0 18px}
    .user-context{display:none}
}
@media(max-width:680px){
    .kpis,.stats-grid,.form-grid,.parameter-form-grid,.profile-settings-grid,.two-col,.eligibility-panel{grid-template-columns:1fr}
    .eligibility-panel .reasons{grid-column:auto}
    .page-head,.page-heading{display:grid}
    .page-actions{justify-content:flex-start}
    .filter-row{grid-template-columns:1fr}
    .detail-list{grid-template-columns:1fr;gap:4px}
    .detail-list dd{margin-bottom:8px}
    .genealogy-node{grid-template-columns:36px 1fr}.genealogy-node>:nth-child(n+3){grid-column:2}
    .content{padding:16px 13px 32px}
    h1{font-size:24px}
}


/* v3.1.1 — restored component styles and responsive UI polish */
.card p,.card li{line-height:1.55}
.card p:last-child{margin-bottom:0}
.text-danger{color:#b42336!important}
.error-card{border-color:#f0b4bc!important;background:#fff8f9}
.vertical-flow{text-align:center;line-height:1.9}
.compact-head{margin-bottom:14px}
.compact-number-field{max-width:240px}
.password-form{max-width:560px}
.left-status-stack{justify-content:flex-start;margin-top:.5rem}

/* Cards used as links on the utility integration dashboard. */
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.stat-card{
    display:block;
    min-width:0;
    min-height:132px;
    padding:18px;
    color:inherit;
    text-decoration:none;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:15px;
    box-shadow:var(--shadow);
    transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.stat-card:hover{color:inherit;transform:translateY(-2px);border-color:#b8d8f3;box-shadow:0 16px 38px rgba(30,65,105,.11)}
.stat-card span{display:block;position:relative;z-index:1;color:#536984;font-weight:750}
.stat-card strong{position:relative;z-index:1;display:block;margin-top:7px;font-size:31px;line-height:1.05}
.stat-card small{position:relative;z-index:1;display:block;margin-top:8px;color:var(--muted)}

/* Utility setup steps and readiness. */
.integration-steps,.integration-readiness{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
}
.integration-steps>div,.readiness-step{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    padding:12px;
    border:1px solid #dce6f0;
    border-radius:12px;
    background:#f8fafc;
}
.integration-steps strong,.readiness-step strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 32px;
    width:32px;
    height:32px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--blue),var(--teal));
    color:#fff;
}
.integration-steps span,.readiness-step span{min-width:0;line-height:1.35}
.integration-readiness{grid-template-columns:repeat(4,minmax(0,1fr))}
.readiness-step.pending{opacity:.68}
.readiness-step.pending strong{background:#94a3b8}
.readiness-step.done{border-color:#9ee3d4;background:#f0fdfa}
.reference-action-card{display:flex;align-items:center;justify-content:space-between;gap:16px;border-color:#f5cf80;background:#fffaf0}

/* Utility configuration forms. */
.inline-binding-form{
    display:grid;
    grid-template-columns:minmax(240px,1fr) auto;
    gap:10px;
    align-items:end;
    width:100%;
}
.inline-binding-form select{width:100%;min-width:0;padding:10px 12px;border:1px solid #ced9e8;border-radius:8px;background:#fff}
.utility-description{max-height:520px;overflow:auto;margin:16px 0 0;padding:16px;border-radius:10px;background:#f6f9fd;color:#23334d}
.profile-coverage{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border:1px solid #ccecf0;border-radius:12px;background:#eef9fb}
.profile-preview-box{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.preview-controls{display:flex;align-items:center;gap:12px;min-width:min(460px,100%)}
.preview-controls select{flex:1;min-width:180px;padding:9px 11px;border:1px solid #ced9e8;border-radius:8px;background:#fff}
.profile-meta-row{display:flex;justify-content:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:13px}
.profile-settings-grid label,.mapping-controls label{display:block;margin-bottom:5px;color:#5c6d88;font-size:12px;font-weight:700}
.profile-settings-grid input,.profile-settings-grid select,.mapping-card input,.mapping-card select{width:100%;min-width:0;padding:9px 11px;border:1px solid #ced9e8;border-radius:8px;background:#fff}
.mapping-card{margin-top:12px;padding:15px;border:1px solid #dfe8f3;border-radius:12px;background:#fbfdff}
.mapping-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.mapping-card-head strong,.mapping-card-head span{display:block}
.mapping-card-head code{max-width:45%;text-align:right}
.mapping-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mapping-controls-wide{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.mapping-options-row{display:flex;flex-wrap:wrap;gap:14px 20px;margin-top:13px}
.field-origin{margin-top:6px;color:#39716d;font-size:12px;line-height:1.35}
.compact-alert{padding:9px 11px;margin-bottom:0;font-size:12px;line-height:1.45}
.configuration-report{max-height:360px;margin:12px 0 0;padding:12px 12px 12px 34px;overflow:auto;border:1px solid #dbe5f1;border-radius:10px;background:#f8fbff}
.concept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.concept-grid section{padding:14px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fbff}
.concept-grid h3{margin:0 0 6px}

/* Utility profile and requirement cards. */
.utility-profile-panel{margin:13px 0;border:1px solid #dbe5f1;border-radius:12px;background:#fbfdff}
.utility-profile-panel>summary{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px;cursor:pointer;text-align:left}
.utility-profile-summary-status{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.utility-profile-content{padding:0 16px 16px;text-align:left}
.requirement-list{display:grid;gap:10px}
.requirement-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:13px;border:1px solid #e0e8f2;border-radius:10px;background:#fff}
.requirement-actions{display:flex;align-items:flex-end;justify-content:flex-start;flex-direction:column;gap:9px}
.utility-usage-grid,.utility-requirement-designer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.utility-usage-card,.utility-requirement-card{padding:16px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fbff;text-align:left}
.utility-usage-head,.utility-requirement-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:13px}
.usage-section-title{margin-top:13px;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.usage-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:start;margin-top:6px;text-align:left}
.requirement-detail-list{display:grid;grid-template-columns:130px minmax(0,1fr);gap:7px 13px;margin:13px 0}
.requirement-detail-list dt{color:#64748b;font-weight:650}
.requirement-detail-list dd{margin:0;overflow-wrap:anywhere}
.usage-chip-list{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px}
.usage-chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    width:auto;
    margin:0;
    padding:5px 9px;
    border:1px solid #bfe4e8;
    border-radius:999px;
    background:#effbfc;
    color:#155e75;
    font-size:12px;
    text-align:left;
}
.inline-review-form{display:flex;align-items:center;gap:8px}
.inline-review-form input{padding:8px 10px;border:1px solid #ced9e8;border-radius:8px}

/* Structured tests, method designers and test plans. */
.form-check-card{align-items:flex-start;min-height:70px;padding:12px 14px;border:1px solid #dbe5f1;border-radius:10px;background:#f8fbff}
.form-check-card input{flex:0 0 auto;width:18px!important;height:18px;margin-top:2px}
.form-check-card small{display:block;color:#73829a;font-size:12px;line-height:1.4}
.asset-type-picker{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:8px;padding:12px;border:1px solid #dbe5f1;border-radius:10px;background:#f8fbff}
.asset-type-option{display:grid!important;grid-template-columns:20px minmax(0,1fr);align-items:start!important;justify-content:start;gap:9px;min-width:0;padding:7px 8px;border-radius:7px;text-align:left}
.asset-type-option:hover{background:#eaf5ff}
.asset-type-option input{width:18px!important;height:18px;margin:2px 0 0!important;justify-self:start}
.asset-selection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.equipment-role-card{padding:13px;border:1px solid #dbe5f1;border-radius:10px;background:#fbfdff;text-align:left}
.equipment-role-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;text-align:left}
.parameter-entry-table{display:grid;gap:10px}
.parameter-entry-row{display:grid;grid-template-columns:minmax(230px,1.3fr) minmax(180px,.9fr) minmax(150px,.7fr);gap:14px;align-items:start;padding:14px;border:1px solid #dfe8f3;border-radius:11px;background:#fbfdff;text-align:left}
.parameter-caption{min-width:0;text-align:left}
.method-selector,.structured-test-form,.utility-test-context{text-align:left}
.test-run-panel{margin:13px 0;border:1px solid #dce6f0;border-radius:14px;background:#fff}
.test-run-panel>summary{display:flex;justify-content:space-between;gap:16px;padding:16px;cursor:pointer;font-weight:650}
.test-run-content{padding:0 16px 16px}
.test-run-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px}
.asset-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.plan-head-fields>div,.user-form>div{display:grid;gap:6px;min-width:0}
.plan-head-fields label,.user-form label{color:#526781;font-size:13px;font-weight:700}
.plan-head-fields input,.plan-head-fields select{width:100%;min-width:0;padding:10px 12px;border:1px solid #cdd9e7;border-radius:8px;background:#fff}
.test-plan-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.test-plan-list .plan-item{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid #dce6f0;border-radius:11px;background:#f8fbff;cursor:pointer}
.test-plan-list .plan-item:hover{border-color:#a9d4f4;background:#f3faff}
.test-plan-list .plan-item input{width:18px;height:18px;margin-top:2px}
.test-plan-list .plan-item small{display:block;margin-top:3px;color:var(--muted)}
.product-utility-link-form{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:end;gap:13px;margin:13px 0 16px;padding:14px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fbff}
.product-utility-link-form select{width:100%;padding:10px 12px;border:1px solid #ced9e8;border-radius:8px;background:#fff}
.product-utility-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px 0;border-bottom:1px solid #e8eef6;text-align:left}

/* Users and data tables. */
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.role-grid>div{display:grid;gap:5px;padding:13px;border:1px solid #e1e9f3;border-radius:10px;background:#f9fbfe}
.role-grid strong{display:block;color:#243a5b}
.role-grid span{display:block;color:#687791;font-size:13px;line-height:1.45}
.user-active-line{align-self:end;min-height:42px}
.table-actions{justify-content:flex-start;white-space:nowrap}
.table-actions>a,.table-actions button{white-space:nowrap}
.actions-cell{min-width:245px}
.selected-row{background:#f0fbfa}

/* Keep direct tables inside cards from pushing the whole application wider. */
.card:has(>table){overflow-x:auto}
.card:has(>table)>table{min-width:680px}

@media(max-width:1180px){
    .integration-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
    .integration-readiness{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mapping-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
    .asset-type-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
    .inline-binding-form,.product-utility-link-form{grid-template-columns:1fr;align-items:stretch}
    .profile-preview-box{display:grid}
    .preview-controls{display:grid;min-width:0}
    .preview-controls select,.preview-controls button{width:100%}
    .utility-usage-grid,.utility-requirement-designer,.asset-selection-grid,.test-plan-list{grid-template-columns:1fr}
    .parameter-entry-row{grid-template-columns:1fr 1fr}
    .parameter-entry-row .parameter-caption{grid-column:1/-1}
}
@media(max-width:700px){
    .integration-steps,.integration-readiness,.mapping-controls,.concept-grid,.role-grid,.asset-type-picker{grid-template-columns:1fr}
    .reference-action-card{align-items:stretch;flex-direction:column}
    .mapping-card-head{display:grid}
    .mapping-card-head code{max-width:none;text-align:left}
    .requirement-row,.parameter-entry-row,.product-utility-row{grid-template-columns:1fr}
    .requirement-actions,.utility-profile-summary-status{align-items:flex-start;justify-content:flex-start}
    .usage-line{grid-template-columns:1fr;gap:2px}
    .usage-line>span:nth-child(2){display:none}
}


/* Test review and approval workflow shown directly on the test page. */
.test-workflow-card{margin-bottom:18px;background:linear-gradient(135deg,#fff,#f7fbff)}
.test-workflow-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.workflow-steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.workflow-step{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border:1px solid #d7e2ee;border-radius:999px;background:#f7f9fc;color:#6b7b91;font-size:12px;font-weight:750}
.workflow-step.done{border-color:#9ad8cb;background:#e8f8f3;color:#08745b}
.workflow-action-panel,.workflow-complete-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding:15px;border:1px solid #d8e7f4;border-radius:12px;background:#f7fbff}
.workflow-action-form{margin:0;flex:0 0 auto}
.workflow-approval-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;margin-top:16px;padding:15px;border:1px solid #cde5e7;border-radius:12px;background:#f4fbfc}
.workflow-comment-field textarea{min-height:82px}
.review-comment{display:grid;gap:3px;margin-top:10px;padding:10px 12px;border-left:3px solid #1b8fb6;background:#eef8fc;border-radius:0 8px 8px 0}
.review-comment span{color:#5a7088;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.utility-duplicate-warning{margin-top:16px}
@media(max-width:760px){.workflow-action-panel,.workflow-complete-panel{display:grid}.workflow-approval-form{grid-template-columns:1fr}.workflow-action-form,.workflow-action-form .btn-main,.workflow-approval-form .btn-main{width:100%}}
