.login-shell{display:grid;grid-template-columns:minmax(0,3fr) minmax(400px,2fr);min-height:100vh;background:#fff}
.login-context{background:#f0f5f4;color:#203e3e;padding:38px 48px 26px;display:flex;flex-direction:column;min-height:100vh;border-right:1px solid #dbe6e3}
.login-brand{display:flex;align-items:center;gap:13px;font-size:30px;font-weight:650;line-height:1.4}
.login-brand h1{font-size:inherit;line-height:inherit;font-weight:inherit}
.login-brand .brand-mark{background:#08775e;color:#fff;width:44px;height:44px;border-radius:7px;flex:none}
.login-context-foot{font-size:11px;color:#647873;margin-top:28px}
.login-capability-visual{flex:1;display:flex;flex-direction:column;justify-content:center;width:min(100%,740px);min-height:630px;margin:0 auto;padding:42px 0 30px}
.capability-heading{margin-bottom:30px}
.capability-heading h2{font-size:24px;line-height:1.45;font-weight:600;color:#203e3e}
.capability-heading p{margin-top:7px;font-size:13px;line-height:1.7;color:#637973}
.diagnostic-map{position:relative}
.diagnostic-map-main{display:grid;grid-template-columns:34% minmax(0,1fr);gap:26px;align-items:stretch}
.diagnostic-map h3{font-size:14px;font-weight:600;line-height:1.5}
.vehicle-foundation{min-width:0;text-align:center;position:relative}
.vehicle-foundation h3{color:#336259}
.vehicle-portrait{position:relative;height:266px;width:196px;max-width:100%;margin:11px auto 0}
.vehicle-topology-image{display:block;width:100%;height:100%;object-fit:contain}
.vehicle-callout{position:absolute;font-size:10px;line-height:1.5;color:#32675b;background:#f0f5f4;padding:0 3px;right:0}
.callout-ecu{top:64px}.callout-config{top:184px}
.vehicle-identity{margin-top:10px;font-size:12px;line-height:1.7}
.vehicle-identity strong{font-weight:500;display:block}
.vehicle-identity>span{display:block;color:#637973;font-size:11px;margin-top:2px}
.vehicle-fact-flow{position:absolute;top:161px;right:-53px;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1px;background:#f0f5f4;padding:5px;color:#65867a;font-size:10px}
.reasoning-landscape{border-left:1px solid #cfddda;padding-left:26px;min-width:0;display:flex;flex-direction:column;align-items:center}
.reasoning-landscape h3{display:flex;align-items:center;gap:8px;color:#315c93;align-self:flex-start}
.ontology-relations{width:100%;margin-top:25px;text-align:center}
.ontology-entities{display:flex;align-items:center;justify-content:space-between;gap:4px;color:#315c93;font-size:12px;white-space:nowrap}
.ontology-entities>span{background:#e5eef6;border:1px solid #c7d8e8;min-height:31px;padding:5px 9px;border-radius:3px;display:grid;place-items:center}
.ontology-entities i{display:flex;flex-direction:column;align-items:center;color:#7392ad;flex-shrink:0;font-style:normal}
.ontology-entities small{font-size:10px;color:#637e95;line-height:1.5}
.ontology-rule{font-size:11px;color:#677e92;margin-top:9px}
.ontology-to-reasoning{height:51px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;color:#577ca0;font-size:10px;gap:3px;padding-bottom:5px;margin-left:92px}
.reasoning-core-row{display:flex;align-items:center;justify-content:center;gap:12px;width:100%}
.evidence-source{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:68px;font-size:11px;color:#526e67}
.evidence-source>svg{color:#58766d}.evidence-source strong{font-weight:500}.evidence-source>span{font-size:10px;color:#698078}
.evidence-connector{display:flex;color:#88a397;flex:none}
.reasoning-core{display:flex;flex-direction:column;align-items:center;flex:none;text-align:center}
.reasoning-emblem{width:76px;height:76px;display:grid;place-items:center;background:#08775e;color:#fff;clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%)}
.reasoning-core>strong{font-size:16px;font-weight:650;margin-top:10px;line-height:1.6;color:#165f4d}
.reasoning-core>span{font-size:11px;color:#59756a;margin-top:3px}
.reasoning-outputs{display:flex;justify-content:center;gap:22px;border-top:1px solid #cadfd5;padding-top:12px;margin-top:20px;width:100%;font-size:11px;color:#466e60}
.reasoning-outputs>span{display:flex;align-items:center;gap:6px}
.diagnostic-loop{margin-top:29px;position:relative;padding-top:21px;border-top:1px solid #b9d0c7}
.loop-evidence-return{position:absolute;top:-10px;left:0;right:0;display:flex;justify-content:center}
.loop-evidence-return>span{font-size:10px;line-height:18px;color:#557768;background:#f0f5f4;display:flex;align-items:center;gap:6px;padding:0 10px}
.diagnostic-stages{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:9px}
.diagnostic-stage{display:flex;align-items:center;justify-content:center;gap:10px;min-height:60px;min-width:0}
.stage-icon{display:grid;place-items:center;color:#2d7465;flex:none}
.diagnostic-stage strong{font-size:13px;font-weight:600;line-height:1.6;display:block;color:#254d43}
.diagnostic-stage p{font-size:10px;line-height:1.6;color:#637973;margin-top:3px;white-space:nowrap}
.stage-connector{display:flex;justify-content:center;color:#91a99c}
.stage-action .stage-icon{color:#ac7a25}.stage-validation .stage-icon{color:#3579a2}
.knowledge-return{position:relative;border:1px solid #bbcfd1;border-top:0;margin:5px 25px 0;height:27px;display:flex;justify-content:center;align-items:flex-end}
.knowledge-return>span{font-size:10px;line-height:18px;transform:translateY(9px);padding:0 10px;background:#f0f5f4;color:#587977;display:flex;align-items:center;gap:6px}
.knowledge-return::before{content:"";position:absolute;left:-4px;top:0;width:7px;height:7px;transform:rotate(45deg);border-left:1px solid #6f9990;border-top:1px solid #6f9990}
.capability-audiences{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:43px;font-size:11px;color:#3b6055}
.capability-audiences>span+span{padding-left:17px;border-left:1px solid #bdcdc6}
.capability-audiences>small{font-size:10px;color:#6b7e77;margin-left:5px}
.login-main{min-width:0;display:flex;align-items:center;justify-content:center;padding:48px 42px}
.login-form-wrap{width:min(100%,360px)}
.login-form-wrap h2{font-size:27px;line-height:1.3;font-weight:650;margin:0}
.login-subtitle{color:#667781;font-size:13px;margin:7px 0 29px}
#demo-login-form{display:grid;gap:9px}
#demo-login-form>label{font-weight:600;font-size:12px;color:#455760;margin-top:5px}
.login-input{height:44px;border:1px solid #c9d3d7;background:#fff;border-radius:4px;display:flex;align-items:center;color:#718188;transition:border-color .12s,box-shadow .12s}
.login-input:focus-within{border-color:#16856b;box-shadow:0 0 0 3px rgba(22,133,107,.12)}
.login-input>svg{margin-left:13px;flex:0 0 auto}
#demo-login-form .login-input input{min-width:0;max-width:none;min-height:0;flex:1;height:42px;border:0;background:transparent;padding:0 12px;color:#172a31;font-size:14px;outline:0;box-shadow:none}
#demo-login-form .login-input input::placeholder{color:#93a0a6}
.login-input.invalid{border-color:#ba4b43;box-shadow:0 0 0 3px rgba(186,75,67,.1)}
.password-toggle{width:40px;height:40px;padding:0;border:0;background:transparent;color:#60747b;display:grid;place-items:center}
.password-toggle:hover:not(:disabled){background:#eef4f2;border-color:transparent}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:4px 0 1px}
.login-remember{display:flex;align-items:center;gap:8px;font-size:12px;color:#50636a;font-weight:400}
.login-remember input{width:15px;height:15px;accent-color:#16856b;margin:0}
.text-button{border:0;background:transparent;color:#176d5a;font-size:12px;padding:5px 0;height:auto}
.text-button:hover:not(:disabled){background:transparent;border-color:transparent;text-decoration:underline}
.login-submit,.login-sso{height:44px;width:100%;font-weight:600;justify-content:center}
.login-submit{margin-top:8px}
.login-sso{background:#fff;border-color:#bdc9cd;color:#344d53}
.login-sso:hover:not(:disabled){background:#f1f6f4;border-color:#8da6a1}
.login-divider{height:25px;display:flex;align-items:center;gap:12px;color:#89979d;font-size:11px}
.login-divider::before,.login-divider::after{content:"";height:1px;background:#dbe2e5;flex:1}.login-divider span{padding:0 3px}
.login-error,.login-assistance{display:none;font-size:12px;line-height:1.55;padding:10px 12px;margin-bottom:12px;border-left:3px solid #ba4b43;background:#fff2f0;color:#853b36}
.login-error.visible,.login-assistance.visible{display:block}
.login-assistance{margin:14px 0 0;border-left-color:#397b6b;background:#edf7f3;color:#315f54}
.login-expired{border-left:3px solid #956218;background:#fdf7e8;color:#77531e;padding:11px 13px;margin-bottom:18px;font-size:12px}
.login-demo-account{font-size:11px;color:#65777e;margin:18px 0 0}.login-demo-account strong{font-weight:600;color:#344d53}
.login-boundary{font-size:11px;line-height:1.6;color:#7a898f;margin-top:8px;max-width:390px}
.identity-button{border:0;background:transparent;padding:2px 5px;min-height:32px;max-width:195px;color:#344d53;font-size:12px}
.identity-button:hover:not(:disabled){background:#eef4f2;border-color:transparent}
.identity-button span:last-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.identity-button .avatar{margin-right:2px}
.identity-button svg:last-child{width:13px;color:#657a7c}
.identity-summary{display:grid;grid-template-columns:115px minmax(0,1fr);gap:9px 16px;font-size:13px}
.identity-summary dt{color:#687981}.identity-summary dd{margin:0;overflow-wrap:anywhere}
.identity-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
@media(max-width:1200px){.vehicle-fact-flow{right:-38px}}
@media(min-width:761px) and (max-width:980px){.vehicle-fact-flow{display:none}}
@media(min-width:1600px){.login-context{padding-left:64px;padding-right:64px}.login-capability-visual{padding-top:56px;padding-bottom:48px}.capability-heading{margin-bottom:38px}.vehicle-portrait{height:295px}.callout-ecu{top:74px}.callout-config{top:206px}.ontology-relations{margin-top:32px}.reasoning-outputs{margin-top:32px}.diagnostic-loop{margin-top:35px}}
@media(max-width:1200px){.login-context{padding-left:30px;padding-right:30px}.login-main{padding-left:32px;padding-right:32px}.login-brand{font-size:26px}.diagnostic-map-main{grid-template-columns:30% minmax(0,1fr);gap:16px}.reasoning-landscape{padding-left:16px}.ontology-entities>span{padding-left:6px;padding-right:6px}.vehicle-callout{right:-8px}.diagnostic-stages{gap:3px}.diagnostic-stage{gap:7px}.capability-audiences{gap:12px}.capability-audiences>span+span{padding-left:12px}}
@media(min-width:761px) and (max-width:980px){.login-shell{grid-template-columns:minmax(0,1fr) 360px}.login-context{padding:27px 24px 22px}.login-brand{font-size:24px;gap:10px}.login-brand .brand-mark{width:38px;height:38px}.login-capability-visual{padding-top:30px;min-height:0}.capability-heading{margin-bottom:23px}.capability-heading h2{font-size:20px}.capability-heading p{font-size:11px}.diagnostic-map-main{display:flex;flex-direction:column;gap:21px}.vehicle-foundation{display:grid;grid-template-columns:126px minmax(0,1fr);grid-template-rows:36px 1fr;align-items:center;text-align:left;min-height:136px}.vehicle-portrait{grid-column:1;grid-row:1 / 3;height:136px;margin:0;width:115px}.vehicle-foundation h3{grid-column:2;grid-row:1;align-self:end}.vehicle-identity{grid-column:2;grid-row:2;align-self:start;margin-top:9px}.vehicle-identity>span{font-size:10px}.vehicle-callout{display:none}.reasoning-landscape{padding-left:0;border-left:0;border-top:1px solid #cfddda;padding-top:16px}.ontology-relations{margin-top:16px}.ontology-entities{justify-content:center;gap:12px}.ontology-to-reasoning{height:36px}.reasoning-emblem{width:60px;height:60px}.reasoning-emblem>svg{width:30px;height:30px}.reasoning-core>strong{font-size:14px;margin-top:7px}.reasoning-outputs{margin-top:13px;padding-top:10px}.diagnostic-loop{margin-top:25px}.diagnostic-stage{flex-direction:column;gap:6px;text-align:center;min-height:81px}.diagnostic-stage strong{font-size:12px}.diagnostic-stage p{font-size:9px}.knowledge-return{margin-left:10px;margin-right:10px}.capability-audiences{gap:12px;margin-top:34px}.capability-audiences>small{display:none}.login-context-foot{font-size:9px;margin-top:12px}.login-main{padding-left:28px;padding-right:28px}}
@media(max-width:760px){.login-shell{display:block}.login-context{min-height:0;padding:23px 22px;border-right:0;border-bottom:1px solid #dbe6e3}.login-capability-visual,.login-context-foot{display:none}.login-brand{font-size:24px;gap:11px}.login-brand .brand-mark{width:38px;height:38px}.login-main{padding:34px 22px 42px;align-items:flex-start}.login-form-wrap h2{font-size:23px}.login-subtitle{margin-bottom:21px}.identity-button{max-width:125px}.identity-button .avatar{display:none}}
@media(max-width:390px){.login-options{align-items:flex-start}.login-main{padding-left:18px;padding-right:18px}.login-context{padding-left:18px;padding-right:18px}.login-brand{font-size:22px}}
@media(prefers-reduced-motion:reduce){.login-input{transition:none}}
@media(min-width:981px) and (max-height:850px){
  .login-context{padding-top:26px;padding-bottom:20px}
  .login-capability-visual{min-height:0;padding-top:24px;padding-bottom:18px}
  .capability-heading{margin-bottom:20px}
  .vehicle-portrait{height:218px;margin-top:6px}
  .callout-ecu{top:52px}.callout-config{top:151px}
  .vehicle-identity{margin-top:5px}
  .vehicle-fact-flow{top:134px}
  .ontology-relations{margin-top:15px}
  .ontology-to-reasoning{height:26px;padding-bottom:4px}
  .reasoning-emblem{width:60px;height:60px}
  .reasoning-emblem>svg{width:30px;height:30px}
  .reasoning-core>strong{margin-top:6px;font-size:15px}
  .reasoning-outputs{margin-top:12px;padding-top:10px}
  .diagnostic-loop{margin-top:22px;padding-top:12px}
  .capability-audiences{margin-top:29px}
  .login-context-foot{margin-top:12px}
}
