:root{font-family:var(--ah-font,'AH Inter','Segoe UI',Arial,sans-serif);color:var(--ah-text,#1c2b4c);background:var(--ah-background,#f4f6f9);--shell-blue:var(--ah-blue,#204798);--shell-height:68px;--shell-rail:216px}
*{box-sizing:border-box}body{margin:0}button,input,a{font:inherit}button,a,summary{touch-action:manipulation}button,summary{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #e9b85b;outline-offset:3px}[hidden]{display:none!important}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip:focus{position:fixed;z-index:100;padding:12px;background:white;color:var(--shell-blue)}
.platform-header{height:var(--shell-height);display:flex;align-items:center;gap:12px;padding:0 20px 0 0;background:var(--shell-blue);color:#fff;position:sticky;top:0;z-index:30;box-shadow:0 1px 0 #ffffff1c}
.brand{width:var(--shell-rail);flex-shrink:0;display:flex;align-items:center;padding-left:24px;height:100%;text-decoration:none}.brand img{width:52px;height:52px;object-fit:contain;filter:var(--ah-logo-on-dark-filter,brightness(0) invert(1))}
#nav{display:flex;justify-content:center;align-items:center;gap:2px;flex:1;min-width:0}#nav>a,.program-menu>summary{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;min-height:42px;padding:10px 11px;border-radius:7px;text-decoration:none;font-size:14px;font-weight:550;color:white;list-style:none}.program-menu>summary::-webkit-details-marker{display:none}#nav>a:hover,.program-menu>summary:hover,.program-menu[open]>summary{background:#ffffff16}#nav>a[aria-current=page],.program-menu .selected-group{background:#ffffff22;color:#fff}.program-menu{position:relative}.dropdown{position:absolute;z-index:31;top:calc(100% + 12px);left:0;min-width:252px;padding:6px;background:#fff;border:1px solid #dce3ef;border-radius:10px;box-shadow:0 12px 32px #14244326}.program-menu:last-child .dropdown{left:auto;right:0}.dropdown a{display:flex;align-items:center;min-height:42px;padding:10px 12px;text-decoration:none;color:#283c60;font-size:14px;border-radius:6px}.dropdown a:hover{background:#f0f4fc}.dropdown a[aria-current=page]{background:#e8effd;color:var(--shell-blue);font-weight:650}
.header-tools{display:flex;align-items:center;gap:10px}.test-label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#fff;background:#ffffff16;padding:5px 7px;border-radius:5px;white-space:nowrap}#refresh{border:0;background:transparent;display:grid;place-items:center;width:32px;height:34px;padding:7px;border-radius:6px}#refresh:hover{background:#ffffff20}#refresh img{width:19px;height:19px;filter:brightness(0) invert(1)}#refresh:disabled{opacity:.45}#menu{display:none;background:transparent;color:white;border:1px solid #ffffff50;border-radius:7px;padding:9px 12px;min-height:42px}
main{margin:0;padding:32px 36px;min-width:0;min-height:calc(100dvh - var(--shell-height))}main:focus{outline:none}h1{font-size:28px;letter-spacing:-.035em;line-height:1.2;margin:8px 0 10px}h2{font-size:17px;letter-spacing:-.02em}p{line-height:1.6}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#687b97;font-weight:650}.intro{color:#627590;font-size:14px;max-width:760px}.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.card{background:#fff;border:1px solid #dfe6ef;border-radius:10px;overflow:hidden}.overview-card{padding:24px;display:flex;flex-direction:column;min-height:210px}.card h2{margin:0}.overview-card p{font-size:14px;color:#627590}.pending-data{font-size:11px;color:#78869b;margin-bottom:22px}.overview-card a{margin-top:auto;min-height:32px;display:flex;align-items:center;font-size:14px;font-weight:600;color:var(--shell-blue);text-decoration:none}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card-head{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f5}.card-head span,.program span:last-child{font-size:11px;color:#76849a}.program{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;min-height:44px;border-bottom:1px solid #edf0f5;text-decoration:none;font-size:13px}.program:hover{background:#f5f8fd}.program-directory>summary{font-weight:600;font-size:14px;padding:14px 0}.program-directory .grid{margin-top:10px}.subtle,.note{font-size:12px;color:#6a7a91}.note{padding:10px 0;border:0}.detail{margin-top:24px;background:#fff;border:1px solid #dfe6ef;padding:24px;border-radius:10px;max-width:820px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.action{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;background:var(--shell-blue);color:white;border:1px solid var(--shell-blue);border-radius:6px;text-decoration:none;font-size:13px;font-weight:600}.action.secondary{background:white;color:var(--shell-blue)}.status{display:inline-block;padding:5px 9px;border-radius:6px;background:#f0f3f8;font-size:12px;color:#596d89}.status.ok{background:#eaf6ee;color:#245c44}
.embedded-main{padding:0;max-width:none;height:calc(100dvh - var(--shell-height));min-height:0;overflow:hidden}.frame-wrap{width:100%;height:100%;background:#f4f6f9}.frame-wrap>iframe{display:block;width:100%;height:100%;min-height:0;border:0;background:#f4f6f9}.frame-tools{position:absolute;right:72px;top:23px;color:white;pointer-events:none}.frame-tools #embed-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.website-external{position:fixed;bottom:24px;left:24px;z-index:5;background:#fff;border:1px solid #dce3ed;border-radius:8px;padding:10px 14px;color:var(--shell-blue);font-size:13px;text-decoration:none;box-shadow:0 3px 12px #1c2b4c15}
.quick-chat-toggle{position:fixed;z-index:45;right:22px;bottom:20px;display:flex;align-items:center;gap:9px;background:var(--shell-blue);color:#fff;border:1px solid #ffffff45;box-shadow:0 5px 20px #1c2b4c30;border-radius:24px;min-height:46px;padding:11px 17px;font-size:13px;font-weight:600}.quick-chat-toggle img{width:20px;height:20px;filter:brightness(0) invert(1)}.quick-chat-panel{position:fixed;right:22px;bottom:78px;z-index:44;width:min(600px,calc(100vw - 32px));height:min(660px,calc(100dvh - 160px));background:#fff;box-shadow:0 12px 48px #14244340;border:1px solid #d7e0ee;border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.quick-chat-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:var(--shell-blue);color:white}.quick-chat-panel>header strong{font-size:14px}.quick-chat-panel>header span{display:block;font-size:11px;margin-top:4px;color:#dce6fc}.quick-chat-panel>header button{color:white;border:1px solid #ffffff60;border-radius:6px;background:transparent;padding:7px 9px;font-size:12px}.quick-chat-panel #quick-chat-content{flex:1;min-height:0}.quick-chat-panel iframe{border:0;width:100%;height:100%;display:block}.quick-chat-panel .chat-unavailable{padding:24px;line-height:1.6;font-size:14px}
@media(min-width:1450px){#nav>a,.program-menu>summary{font-size:15px;padding-inline:15px}.overview-grid,.grid{max-width:1600px}}
@media(max-width:1250px){.brand{width:80px;padding-left:16px}#nav>a,.program-menu>summary{padding-inline:8px;font-size:13px}}
@media(max-width:1000px){.platform-header{padding-right:14px}.brand{width:72px}#menu{display:block}.header-tools{margin-left:auto}#nav{display:none;position:absolute;top:var(--shell-height);left:0;right:0;background:var(--shell-blue);align-items:stretch;justify-content:flex-start;padding:12px 16px;max-height:75dvh;overflow:auto}.menu-open #nav{display:flex;flex-direction:column}#nav>a,.program-menu>summary{justify-content:space-between;font-size:15px;min-height:44px}.dropdown{position:static;margin:4px 0 8px;box-shadow:none;min-width:0}.overview-grid,.grid{grid-template-columns:repeat(2,minmax(0,1fr))}main{padding:24px}.embedded-main{padding:0}}
@media(max-width:600px){:root{--shell-height:60px}.brand img{width:44px;height:44px}.test-label{font-size:9px}.overview-grid,.grid{grid-template-columns:1fr}h1{font-size:25px}main{padding:22px 16px}.embedded-main{padding:0}.overview-card{min-height:170px;padding:20px}.quick-chat-toggle{right:12px;bottom:12px}.quick-chat-panel{right:8px;bottom:68px;width:calc(100vw - 16px);height:calc(100dvh - 140px)}.website-external{left:10px;bottom:72px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Keep the launcher clear of Save/Send controls in every embedded program. */
.hockey-login{max-width:580px;margin:40px auto}.hockey-login form{display:grid;gap:18px;margin-top:24px}.hockey-login label{display:grid;gap:7px}.hockey-login input{padding:12px;border:1px solid #bbc6d8;border-radius:7px;font:inherit}.hockey-logout{color:white;background:transparent;border:1px solid #ffffff50;border-radius:6px;padding:8px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.platform-header:has(.hockey-logout) .test-label{display:none}
.header-tools .quick-chat-toggle{position:static;width:38px;min-height:38px;padding:8px;border-radius:7px;box-shadow:none;background:transparent;border:1px solid #ffffff50}
.header-tools .quick-chat-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.header-tools .quick-chat-toggle:hover,.header-tools .quick-chat-toggle[aria-expanded=true]{background:#ffffff20}
.quick-chat-panel{top:calc(var(--shell-height) + 12px);bottom:auto;height:calc(100dvh - var(--shell-height) - 28px);max-height:740px}
@media(max-width:1400px){.brand{width:80px;padding-left:16px}}
@media(max-width:600px){.quick-chat-panel{height:calc(100dvh - var(--shell-height) - 24px)}}

/* One viewport for an embedded workspace. The module owns its main scroller;
   dialogs and quick chat retain their bounded scroll areas. Overview keeps
   ordinary document scrolling. A tall iframe would move modal centres offscreen. */
body:has(.embedded-main){height:100dvh;display:grid;grid-template-rows:var(--shell-height) minmax(0,1fr);overflow:hidden}
body:has(.embedded-main)>.workspace{min-width:0;min-height:0;overflow:hidden}
body:has(.embedded-main) .embedded-main{height:100%;min-height:0}

.header-tools{position:relative}#notification-toggle{min-height:44px;white-space:nowrap}#notification-dot{color:#ffd166}.notification-panel{position:absolute;z-index:80;right:0;top:calc(100% + 12px);width:min(380px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:white;color:#1c2b4c;border:1px solid #dce3ed;border-radius:12px;padding:20px;box-shadow:0 16px 45px #10274433}.notification-panel[hidden]{display:none}.notification-panel h2{font-size:18px;margin:0 0 16px}.notification-panel p{font-size:12px;line-height:1.6;color:#52627c}.notification-panel article{display:grid;gap:8px;border-bottom:1px solid #dce3ed;padding:12px 0}.notification-panel time{font-size:12px}.header-tools .notification-panel button{background:#204798;color:white;border-radius:8px;padding:10px 14px;min-height:44px}

/* Header must fit the viewport; icon controls keep room for the program menu. */
.platform-header{min-width:0}.header-tools{flex-shrink:0}
#notification-toggle{position:relative;display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:10px;border:1px solid #ffffff50;border-radius:7px;background:transparent;color:white}
#notification-toggle:hover,#notification-toggle[aria-expanded=true]{background:#ffffff20}
#notification-dot{position:absolute;right:3px;top:0;font-size:12px}
@media(min-width:1001px) and (max-width:1650px){.brand{width:80px;padding-left:16px}#nav>a,.program-menu>summary{font-size:13px;padding-inline:8px}.header-tools{gap:6px}}
@media(max-width:600px){.platform-header{gap:6px;padding-right:8px}.brand{width:58px;padding-left:10px}.header-tools{gap:4px}.hockey-logout{max-width:74px}#refresh{display:none}}
