:root{font-family:Avenir Next,Trebuchet MS,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background:radial-gradient(circle at 14% 20%,#e8f4ff,#eafdf8 38%,#deebfb);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 88% 8%,#157eab33,#157eab00 34%),radial-gradient(circle at 8% 94%,#0f4d8229,#0f4d8200 36%),linear-gradient(140deg,#e7f0f8,#dce8f3)}.portal-shell{min-height:100vh;display:grid;place-items:center;padding:36px}.portal-card{width:min(1100px,100%);background:#fdfefe;border:1px solid #d5e2ef;border-radius:24px;box-shadow:0 28px 58px #09223d33;padding:24px;animation:shellIn .18s ease-out both}.portal-hero{border-radius:18px;padding:20px 22px;background:linear-gradient(135deg,#0a304f,#114e77 48%,#1477a5);box-shadow:inset 0 0 0 1px #ffffff1f}.brand-wordmark{width:clamp(240px,34vw,420px);max-width:100%;height:auto;display:block}.portal-hero h1{margin:14px 0 0;color:#fff;font-size:clamp(2rem,3.4vw,2.6rem);line-height:1.08}.portal-hero p{margin:8px 0 0;color:#dbefff;font-size:1.02rem}.notice{margin-top:14px;border-radius:12px;padding:10px 12px}.notice.warning{color:#92400e;background:#fffbeb;border:1px solid #fbbf24}.muted{color:#31556f}.auth-block{margin-top:18px;display:grid;gap:12px}.primary-btn,.ghost-btn{border-radius:12px;min-height:46px;padding:10px 16px;font-size:.95rem;font-weight:700;cursor:pointer}.primary-btn{background:linear-gradient(120deg,#0f83b8,#0f5f8e);color:#fff;border:1px solid #0d688f;width:230px}.primary-btn:hover{filter:brightness(.96)}.primary-btn:focus-visible,.ghost-btn:focus-visible,.app-tile:focus-visible{outline:3px solid #8cd1ff;outline-offset:2px}.ghost-btn{background:#fff;border:1px solid #b8cde2;color:#153b5a}.error-text{margin:0;color:#b91c1c}.dashboard-block{margin-top:16px}.welcome-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d6e4f0;background:linear-gradient(170deg,#fff,#f2f8fd);border-radius:14px;padding:14px 16px}.welcome-copy{min-width:0}.signed-in-label{margin:0;color:#456580;font-size:.86rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.signed-in-email{margin:4px 0 0;color:#13273b;font-size:1.05rem;font-weight:700;overflow-wrap:anywhere}.app-grid{margin-top:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.app-tile{border:1px solid #c9deef;border-radius:16px;padding:18px 16px 16px;min-height:176px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;color:inherit;text-decoration:none;background:linear-gradient(165deg,#fff,#ebf6ff);box-shadow:0 10px 22px #0a345714;transition:transform .13s ease,border-color .13s ease,box-shadow .13s ease;opacity:0;animation:tileIn .18s ease-out forwards}.app-tile:hover{border-color:#4f95c6;box-shadow:0 14px 26px #093a6229;transform:translateY(-2px)}.app-tile:nth-child(2){animation-delay:40ms}.app-tile:nth-child(3){animation-delay:70ms}.app-tile:nth-child(4){animation-delay:.1s}.app-tile:nth-child(5){animation-delay:.13s}.tile-heading{display:flex;align-items:center;gap:10px;min-height:34px}.tile-icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#ddedf9;color:#14527a;border:1px solid #c4def0;flex-shrink:0}.tile-icon svg{width:17px;height:17px}.app-tile h2{margin:0;font-size:1.14rem;color:#0e2d46;line-height:1.2}.app-tile p{margin:10px 0 0;color:#325775;line-height:1.35;min-height:2.8em}.tile-action{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;border-radius:11px;background:linear-gradient(120deg,#0d75a2,#0f5f88);color:#fff;font-size:.88rem;font-weight:700}.build-version-badge{position:fixed;right:14px;bottom:14px;z-index:9999;border-radius:999px;border:1px solid #b9cbdd;background:#fffffff5;color:#1e415f;font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:.36rem .62rem;box-shadow:0 6px 16px #0f34562e;line-height:1.2}.build-updated{margin-top:2px;font-size:.66rem;color:#3e607d}.build-version-badge.mismatch{border-color:#ef4444;background:#fee2e2f5;color:#7f1d1d}@media(max-width:1060px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.portal-shell{padding:18px}.portal-card{padding:16px;border-radius:18px}.welcome-row{flex-direction:column;align-items:flex-start}.primary-btn{width:100%}.app-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.portal-card,.app-tile{animation:none;opacity:1}}@keyframes shellIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tileIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
