/* A320/A321 TEST TEAM — approved large-tile, three-per-row iPad design */
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#10254a;background:#eaf3fc;font-synthesis:none;-webkit-tap-highlight-color:transparent}
*,*::before,*::after{box-sizing:border-box}
html{min-height:100%;background:#eaf3fc}
body{margin:0;min-height:100svh;overflow-x:hidden;background:radial-gradient(ellipse 70% 34% at 16% 13%,#faffff 0%,transparent 85%),radial-gradient(ellipse 58% 38% at 85% 28%,#faffffcf 0%,transparent 90%),linear-gradient(160deg,#deedff 0%,#f4f9ff 49%,#e3effb 100%)}
body::before{content:"";position:fixed;inset:38% -14% -22% 32%;z-index:0;pointer-events:none;transform:rotate(-13deg);background:linear-gradient(140deg,transparent 20%,#ffffff3c 25%,#c8dcef24 31%,transparent 59%);clip-path:polygon(8% 100%,72% 0,100% 0,35% 100%)}
.hub-shell{position:relative;z-index:1;width:min(1120px,100%);margin:0 auto;padding:max(36px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(36px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
.branding{text-align:center;margin:4px auto 27px;user-select:none}
.branding h1{font-size:clamp(41px,6.25vw,77px);font-weight:830;line-height:1.04;letter-spacing:-2.5px;margin:0;color:#0b2350}
.branding p{margin:6px 0 0;font-size:clamp(22px,2.7vw,36px);line-height:1.2;font-weight:650;letter-spacing:clamp(4px,1.1vw,12px);color:#667caa;padding-left:clamp(4px,1.1vw,12px)}
.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(13px,2.2vw,26px);align-items:stretch}
.app-tile{height:clamp(185px,28.5vh,294px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.4vh,15px);padding:clamp(14px,2.4vw,29px);border-radius:clamp(20px,2.9vw,34px);text-align:center;min-width:0;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease;box-shadow:0 13px 30px #123c7430, inset 0 1px 0 #ffffff60}
.app-tile-icon{color:#fff;display:grid;place-items:center;width:clamp(94px,13vw,172px);height:clamp(94px,13vw,172px);filter:drop-shadow(0 6px 8px #0a2b541e)}
.app-tile-icon svg{display:block;width:100%;height:100%}
.app-tile-label{font-size:clamp(16px,2.13vw,30px);font-weight:750;line-height:1.15;letter-spacing:-.4px;color:#fff;text-shadow:0 2px 4px #002d4c1f;overflow-wrap:break-word}
.app-tile--planner{background:linear-gradient(145deg,#259df8 0%,#0965de 49%,#064ab8 100%)}
.app-tile--wifi{background:linear-gradient(145deg,#32dba3 0%,#0baa83 51%,#087450 100%)}
.app-tile--extra{background:linear-gradient(145deg,#857be2 0%,#6456bb 100%)}
.app-tile--unavailable{background:linear-gradient(145deg,#b1b9c6,#8390a4);opacity:.65;cursor:default}
.app-tile--placeholder{color:#aabbd4;background:linear-gradient(155deg,#ffffff9c,#e4edf9b3);border:2px solid #aec5e3b0;box-shadow:0 8px 20px #244d7220;pointer-events:none;user-select:none}
.placeholder-plus{display:block;font-size:clamp(72px,9.5vw,128px);font-weight:250;line-height:1;margin-top:-14px;color:#aebfd8}
a.app-tile:hover{transform:translateY(-3px);box-shadow:0 19px 35px #143a7040,inset 0 1px 0 #ffffff70}
a.app-tile:active{transform:scale(.987)}
a.app-tile:focus-visible{outline:4px solid #0e356a;outline-offset:5px}
@media(max-width:680px){
 .hub-shell{padding: max(30px,env(safe-area-inset-top)) 12px max(20px,env(safe-area-inset-bottom))}
 .branding{margin:2px auto 22px}
 .branding h1{font-size:clamp(35px,9vw,56px);letter-spacing:-1.5px}
 .branding p{font-size:clamp(16px,4.7vw,25px);letter-spacing:4px}
 .app-grid{gap:9px}
 .app-tile{height:clamp(132px,38vw,205px);padding:8px 5px;border-radius:17px;gap:6px}
 .app-tile-icon{width:clamp(64px,18vw,100px);height:clamp(64px,18vw,100px)}
 .app-tile-label{font-size:clamp(12px,3.3vw,17px);letter-spacing:-.3px}
 .placeholder-plus{font-size:70px;margin-top:-7px}
}
@media(max-height:660px) and (min-width:681px){.hub-shell{padding-top:16px}.branding{margin-bottom:16px}.branding h1{font-size:50px}.branding p{font-size:22px}.app-tile{height:185px}.app-tile-icon{width:100px;height:100px}}
@media(prefers-reduced-motion:reduce){.app-tile{transition:none}}
