@import url('/platform-header.css');
:root{--module-accent:#0095d7}.platform-brand .testbase-logo>span{background-image:url('/branding/elsa-logo.svg?v=20261020-approved')}.portal{max-width:1180px;margin:0 auto;padding:48px 32px 72px;display:block}.portal h1{margin:0 0 30px}.elsa-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.elsa-tile{display:flex;align-items:center;gap:20px;position:relative;text-decoration:none;color:inherit;padding:30px 24px;min-height:156px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.elsa-tile:hover{background:#22252b;border-color:#606774}.elsa-tile:active{background:#262930}.elsa-tile h2{font-size:24px;font-weight:350;margin:0;letter-spacing:-.6px}.elsa-tile h2 strong{font-weight:650}.elsa-icon{display:block;flex:none;width:64px;height:64px;object-fit:contain}.inspection-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:10px;border:1px solid var(--tile-accent);color:var(--tile-accent);font-size:28px;flex:none}.inspection-tile{border-top:3px solid var(--tile-accent)}.inspection-tile h2{font-size:20px;font-weight:550}.tile-arrow{margin-left:auto;color:var(--muted);font-size:20px}.elsa-empty{border:1px solid var(--line);padding:32px;border-radius:12px;color:var(--muted)}#settings{width:480px;padding:24px}#settings button{color:var(--ink);background:#262930;border:1px solid #444953;padding:10px 16px}#settings .dialog-head button{padding:8px}#preferences button[type=submit]{background:var(--ci-blue);border-color:var(--ci-blue);color:#101114}#own-password,.settings-signout{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}#own-password h2{font-size:18px;margin:0}.settings-signout{display:flex;justify-content:flex-end}.account-identity{color:var(--muted);margin:0 0 24px}.elsa-login{max-width:420px;margin:0 auto 40px;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.elsa-login label{display:grid;gap:8px;margin:20px 0}.elsa-login input{width:100%}.elsa-login button{width:100%;background:var(--ci-blue);border:1px solid var(--ci-blue);padding:12px;color:#101114}.continue-login{display:block;margin-top:24px}#loginError{border-left:3px solid var(--ci-red);padding-left:10px}
@media(prefers-reduced-motion:no-preference){.elsa-tile{animation:elsa-enter .4s ease-out both}.elsa-tile:nth-child(2){animation-delay:.06s}.elsa-tile:nth-child(3){animation-delay:.12s}}
@media(max-width:850px){.elsa-grid{grid-template-columns:1fr}.elsa-tile{min-height:112px;padding:24px}.elsa-icon{width:56px;height:56px}}
@media(max-width:650px){.portal{padding:32px 16px 48px}.portal h1{font-size:26px;margin-bottom:24px}.elsa-tile h2{font-size:23px}#settings{padding:20px}.elsa-login{padding:24px}}

.inspection-mark svg{width:30px;height:30px}.elsa-tile:not(.inspection-tile)::after{content:"↗";margin-left:auto;color:var(--muted);font-size:20px}

.portal-home .portal{width:100%;margin:auto;max-width:1200px;padding:64px 36px 80px}.portal-welcome{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.portal-welcome h1{margin:0;font-size:34px;font-weight:550;letter-spacing:-1px}.portal-welcome time{font-size:14px;color:var(--muted)}.portal-home .elsa-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.portal-home .elsa-tile{height:142px;min-height:142px;padding:24px;gap:20px;border-radius:14px;background:linear-gradient(145deg,#232830,#191c22);transition:transform .2s,border-color .2s,box-shadow .2s}.portal-home .elsa-tile:hover{transform:translateY(-4px);border-color:#0095d7;box-shadow:0 18px 50px #0004}.portal-home .elsa-icon{width:48px;height:48px;flex:0 0 48px}.portal-home .elsa-tile h2{font-size:25px;letter-spacing:-.7px;order:2}.portal-home .elsa-tile::after{display:none}.portal-arrow{order:3;margin-left:auto;width:28px;height:28px;flex:0 0 28px;border:1px solid #ffffff20;border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:17px}.portal-home .elsa-tile:focus-visible{outline:2px solid #0095d7;outline-offset:5px}@media(max-width:900px){.portal-home .elsa-tile{padding:20px;gap:14px}.portal-home .elsa-tile h2{font-size:22px}.portal-home .elsa-icon{width:40px;height:40px;flex-basis:40px}}@media(max-width:760px){.portal-home .portal{padding:36px 20px}.portal-welcome{align-items:start;flex-direction:column;gap:12px}.portal-welcome h1{font-size:28px}.portal-home .elsa-grid{grid-template-columns:1fr;gap:14px}.portal-home .elsa-tile{height:104px;min-height:104px;padding:22px;gap:20px}.portal-home .elsa-icon{width:44px;height:44px;flex-basis:44px}.portal-home .elsa-tile h2{font-size:25px}}@media(prefers-reduced-motion:reduce){.portal-home .elsa-tile{transition:none}}

body.portal-home{display:flex;flex-direction:column;min-height:100vh}.portal-home main.portal{flex:0 0 auto;margin:auto!important}.portal-home>header,.portal-home>footer{flex-shrink:0}

.preparation-mark{position:relative;color:#ed7900;border-color:#ed790080;font-weight:750;cursor:help}.preparation-tooltip{display:none;position:absolute;bottom:calc(100% + 12px);right:0;white-space:nowrap;padding:8px 12px;background:#282d35;color:#f4f5f7;border:1px solid #505661;border-radius:7px;font-size:13px;font-weight:400;z-index:10}.preparation-mark:hover .preparation-tooltip,.preparation-mark:focus .preparation-tooltip{display:block}.portal-home .module-preparing{cursor:default}.portal-home .module-preparing:hover{transform:none;box-shadow:none;border-color:var(--line)}

/* Raise the home content slightly while retaining responsive centering. */
.portal-home main.portal{transform:translateY(-48px)}@media(max-width:760px),(max-height:650px){.portal-home main.portal{transform:none}}

.portal-arrow.preparation-mark{width:28px;height:28px;min-width:28px;min-height:28px;max-width:28px;max-height:28px;flex:0 0 28px;font-size:14px;font-weight:600;line-height:1;box-sizing:border-box}

.portal-arrow:not(.preparation-mark){color:#0095d7;border-color:#0095d780}

.tile-arrow,.elsa-tile:not(.inspection-tile)::after{color:#0095d7}

/* Match the Base overview: content starts below the header, never vertically centered. */
body.portal-home main.portal{flex:1 0 auto;margin:0 auto!important;transform:none!important;max-width:1180px;padding:48px 32px 72px}.portal-home .portal-welcome{margin-bottom:30px}@media(max-width:650px){body.portal-home main.portal{padding:32px 16px 48px}}

.portal-home-link{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.portal-home-link img{width:28px;height:28px;object-fit:contain}.portal-home-link:focus-visible{outline:2px solid #0095d7;outline-offset:3px}

/* One indicator component for every portal tile, including inspection modules. */
.elsa-tile .portal-indicator{order:3;display:inline-flex;align-items:center;justify-content:center;position:relative;margin-left:auto;box-sizing:border-box;flex:0 0 28px;width:28px;height:28px;min-width:28px;min-height:28px;border:1px solid #0095d780;border-radius:50%;color:#0095d7;line-height:1}.elsa-tile .portal-indicator>svg{width:16px;height:16px;flex:none}.elsa-tile .portal-indicator.preparation-mark{color:#ed7900;border-color:#ed790080}.portal-home .elsa-tile .portal-wordmark,.portal-wordmark{display:block;width:150px;height:auto;max-width:100%;object-fit:contain}.portal-home .elsa-tile h2{flex:0 1 150px;min-width:0}.portal-brand-title .portal-wordmark{width:200px;height:auto}.inspection-tile h2{order:2}.inspection-tile .inspection-mark{order:1}@media(max-width:900px){.portal-home .elsa-tile{gap:14px}.portal-home .elsa-tile .portal-wordmark{width:138px}}@media(max-width:760px){.portal-home .elsa-tile .portal-wordmark{width:150px}}

.portal-brand-title .portal-section-logo{display:block;width:230px;height:auto;max-width:100%}

/* Approved logo ratio: 35 units between 378-unit icon and wordmark. */
.portal-home .elsa-tile{column-gap:4.45px}.portal-home .elsa-tile .portal-indicator{margin-left:auto}@media(max-width:900px){.portal-home .elsa-tile{column-gap:3.7px}}@media(max-width:760px){.portal-home .elsa-tile{column-gap:4.1px}}

/* Greeting and tile entrance; the header logo always stays static. */
.portal-welcome h1{transform-origin:0 0}.elsa-tile{animation:none!important}html.portal-intro-pending .portal-welcome h1,html.portal-intro-pending .elsa-grid>.elsa-tile{opacity:0}@media(prefers-reduced-motion:reduce){html.portal-intro-pending .portal-welcome h1,html.portal-intro-pending .elsa-grid>.elsa-tile{opacity:1}}

.portal-brand-title .portal-section-logo{width:202.45px;height:48px;max-width:100%;object-fit:contain}

/* Work's full wordmark is wider; preserve the shared letter and icon heights. */
.portal-home .elsa-tile h2:has(img[src$="/work-wordmark.svg"]){flex-basis:155.72px}.portal-home .elsa-tile .portal-wordmark[src$="/work-wordmark.svg"]{width:155.72px}.portal-brand-title .portal-section-logo[src$="/work-compact.svg"]{width:208.17px}
@media(min-width:761px) and (max-width:900px){.portal-home .elsa-tile h2:has(img[src$="/work-wordmark.svg"]){flex-basis:143.26px}.portal-home .elsa-tile .portal-wordmark[src$="/work-wordmark.svg"]{width:143.26px}}

/* Preserve legibility before three columns become too narrow. */
@media(min-width:761px) and (max-width:1000px){.elsa-grid,.portal-home .elsa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
