
:root{
  --navy:#062f68; --navy2:#0a4d98; --blue:#0f68c9; --orange:#ff7a00;
  --line:#d8e0ea; --soft:#f4f7fb; --text:#16345e; --muted:#6d7d92;
}
*{box-sizing:border-box}
html,body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:#17253a;background:#eef3f8}
a{color:#0756ad;text-decoration:none} a:hover{text-decoration:underline}
.wrap{width:min(1500px,96%);margin:auto}
.utility-bar{background:#032f69;color:#fff;font-size:14px}
.utility-inner{height:36px;display:flex;justify-content:space-between;align-items:center}
.utility-inner nav{display:flex;gap:22px}.utility-inner a{color:#fff}
.masthead{background:#fff;border-bottom:1px solid var(--line)}
.masthead-grid{display:grid;grid-template-columns:330px 1fr 260px;gap:28px;align-items:center;padding:18px 0}
.logo-mark{font-size:58px;font-weight:900;font-style:italic;letter-spacing:-5px;color:#0980ef;text-shadow:0 2px 0 #023d89}
.logo-mark span{color:var(--orange);letter-spacing:-3px}.tagline{color:#093976;font-weight:700;font-style:italic;margin-top:-6px}
.search-tabs{display:flex;gap:4px}.search-tabs button{border:0;background:transparent;padding:10px 18px;color:#064a9d;font-weight:600}
.search-tabs .active{background:#f3f6fa;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0}
.search-box{display:flex}.search-box input{flex:1;padding:14px;border:1px solid #aebdcc;border-radius:4px 0 0 4px;font-size:16px}
.search-box button{padding:0 28px;border:0;background:var(--orange);color:#fff;font-weight:800;border-radius:0 4px 4px 0}
.top-searches{font-size:13px;color:#60738a;margin-top:9px}
.weather-card{border-left:1px solid var(--line);padding-left:28px;color:#0b376d}.weather-card .temp{font-size:38px;font-weight:900}
.main-nav{background:linear-gradient(#0c58aa,#04346f);border-bottom:3px solid #ff7a00}
.nav-inner{display:flex;align-items:center}.nav-inner a{color:#fff;font-weight:700;text-transform:uppercase;padding:15px 18px}.nav-inner .active{background:#052d61}
.customize{margin-left:auto;background:transparent;border:0;color:#fff;font-weight:700}
.portal-grid{display:grid;grid-template-columns:290px 1fr 300px;gap:16px;padding:16px 0 24px}
.panel{background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 1px 4px #cdd7e2;overflow:hidden;margin-bottom:16px}
.panel>h2{margin:0;background:linear-gradient(90deg,#0b5db4,#063b79);color:#fff;padding:10px 14px;font-size:16px;text-transform:uppercase}
.profile-row{display:flex;gap:10px;padding:12px}.avatar{width:38px;height:38px;border-radius:5px;background:#243a58;color:#fff;display:grid;place-items:center;font-weight:800}
.profile-row small{display:block;color:#2d9b3f}.panel h3{margin:0 12px 6px;font-size:14px}
.buddy-list,.plain-list{list-style:none;padding:0 16px;margin:0}.buddy-list li,.plain-list li{padding:5px 0}
.buddy-list li:before{content:"●";color:#4caf50;margin-right:8px;font-size:11px}
.panel-link{display:block;text-align:right;padding:10px 14px;font-weight:700}
.mail-promo{text-align:center;padding:12px;background:#f7fbff;color:#0b4a9b}.mail-promo span{display:block;font-size:12px}
.mail-actions{display:grid;grid-template-columns:repeat(3,1fr);padding:10px;border-bottom:1px solid #e4eaf0}.mail-actions a{text-align:center;font-size:13px}
.mail-list{list-style:none;padding:6px 12px;margin:0}.mail-list li{display:grid;grid-template-columns:1fr 1.4fr;gap:6px;padding:6px 0;font-size:12px;border-bottom:1px solid #edf1f5}
.hero-content{display:grid;grid-template-columns:1.05fr 1fr}.hero-image{min-height:250px;background:linear-gradient(135deg,#0c4283,#11a8e8 55%,#ff7a00);display:grid;place-items:center;color:#fff;font-size:46px;font-weight:900;font-style:italic}
.hero-copy{padding:24px}.hero-copy h1{color:#073e82;margin-top:0}.hero-copy li{margin:9px 0}
.two-col{display:grid;grid-template-columns:1fr 260px;gap:16px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.news-list{list-style:none;padding:8px 16px 14px;margin:0}.news-list li{display:grid;grid-template-columns:1fr auto;gap:10px;border-bottom:1px solid #edf1f5;padding:10px 0}.news-list time{color:#7c8796}
.score-card{padding:16px}.purple{background:linear-gradient(90deg,#7433a8,#a145b6)!important}.green{background:linear-gradient(90deg,#237b36,#4d9f45)!important}.orange{background:linear-gradient(90deg,#d76700,#f4931c)!important}
.three-col .panel p{padding:4px 14px}
.trending>h2{background:linear-gradient(90deg,#6e2caf,#a22cc1)}.trending ol{margin:12px 20px;padding-left:26px}.trending li{padding:7px}
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}.quick-grid a{text-align:center;background:#f2f7fd;border:1px solid #dce7f2;border-radius:6px;padding:15px 6px;font-size:12px;font-weight:700}
.connect-card{background:linear-gradient(135deg,#0b559d,#053069);color:#fff;border-radius:7px;padding:22px;box-shadow:0 1px 4px #cdd7e2}.connect-card h3{font-size:22px;margin:8px 0}.connect-card a{display:inline-block;margin-top:10px;background:#0b70d6;color:#fff;padding:10px 14px;border-radius:4px;font-weight:700}
footer{background:#06346f;color:#fff}.footer-inner{min-height:74px;display:flex;justify-content:space-between;align-items:center}.footer-inner nav{display:flex;gap:18px}.footer-inner a{color:#fff}
@media (max-width:1100px){.portal-grid{grid-template-columns:250px 1fr}.right-rail{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.masthead-grid{grid-template-columns:260px 1fr}.weather-card{display:none}}
@media (max-width:760px){.masthead-grid,.portal-grid,.two-col,.three-col{grid-template-columns:1fr}.left-rail,.right-rail{display:block}.main-nav{overflow:auto}.nav-inner{min-width:900px}.hero-content{grid-template-columns:1fr}.utility-inner{gap:10px}.utility-inner nav{gap:10px}.footer-inner{padding:16px 0;display:block}.footer-inner nav{flex-wrap:wrap;margin-bottom:12px}}

/* Phase 2A approved ECN Now identity/logo additions */
.brand-link{display:block}
.ecnnow-logo{display:block;max-width:100%;width:390px;height:auto}
.auth-shell{min-height:calc(100vh - 110px);background:linear-gradient(180deg,#eef6ff 0,#f8fbff 45%,#eef3f8 100%);padding:34px 0 60px}
.auth-card{width:min(920px,94%);margin:auto;background:#fff;border:1px solid #cfd9e5;border-radius:10px;box-shadow:0 8px 28px rgba(11,54,106,.14);overflow:hidden}
.auth-head{display:grid;grid-template-columns:280px 1fr;align-items:center;gap:24px;padding:22px 28px;border-bottom:1px solid #dce4ee;background:#fff}
.auth-head img{max-width:250px}
.auth-head h1{margin:0;color:#073e82;font-size:28px}
.auth-head p{margin:7px 0 0;color:#64748a}
.auth-body{padding:26px 30px 32px}
.account-choice{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
.choice-card{border:2px solid #dbe5f0;border-radius:9px;padding:18px;cursor:pointer;background:#fbfdff}
.choice-card.active{border-color:#0d67c8;background:#f1f7ff;box-shadow:0 0 0 2px rgba(13,103,200,.08)}
.choice-card input{margin-right:8px}
.choice-card strong{color:#073e82;font-size:17px}
.choice-card span{display:block;color:#65758b;margin:7px 0 0 25px;font-size:14px;line-height:1.45}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-weight:700;color:#173f75}
.field input{padding:12px 13px;border:1px solid #aebdcc;border-radius:5px;font-size:15px}
.email-builder{display:flex;align-items:center}
.email-builder input{border-radius:5px 0 0 5px;flex:1}
.email-builder span{padding:12px;background:#edf4fb;border:1px solid #aebdcc;border-left:0;border-radius:0 5px 5px 0;color:#123f79;font-weight:700}
.status-line{min-height:21px;margin-top:5px;font-size:13px}
.status-ok{color:#23833b}.status-bad{color:#b42318}
.primary-btn{border:0;border-radius:5px;background:linear-gradient(#1380e8,#0758b0);color:#fff;font-weight:800;padding:13px 22px;font-size:16px;cursor:pointer}
.secondary-link{margin-left:14px}
.auth-note{margin-top:22px;padding:14px 16px;background:#fff7e7;border:1px solid #f1d59c;border-radius:6px;color:#704c0b;font-size:13px;line-height:1.5}
.service-strip{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px}
.service-strip span{background:#edf5ff;border:1px solid #d2e3f7;border-radius:18px;padding:7px 11px;color:#154d8b;font-size:12px;font-weight:700}
@media(max-width:700px){.auth-head,.account-choice,.form-grid{grid-template-columns:1fr}.auth-head{text-align:center}.auth-head img{margin:auto}.field.full{grid-column:auto}}

.account-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.account-summary>div{border:1px solid #dce5ef;background:#f8fbff;border-radius:7px;padding:14px}
.account-summary strong{display:block;color:#174b85;margin-bottom:6px;font-size:13px;text-transform:uppercase}
.account-summary span{font-size:16px;word-break:break-word}
@media(max-width:700px){.account-summary{grid-template-columns:1fr}}
.account-section{margin-top:24px;border-top:1px solid #dce5ef;padding-top:20px}.account-section h2{color:#073e82}.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-form>input{flex:1;min-width:260px;padding:11px;border:1px solid #aebdcc;border-radius:5px}.email-builder.compact{min-width:300px;flex:1}.email-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid #e0e8f0;border-radius:6px;margin:8px 0;background:#fbfdff}.email-row strong{display:block;color:#173f75}.email-row span{display:block;color:#65758b;font-size:13px;margin-top:3px}.email-row button{border:0;background:#edf5ff;color:#0756ad;padding:7px 10px;border-radius:4px;cursor:pointer;font-weight:700;margin-left:6px}@media(max-width:700px){.email-row{align-items:flex-start;flex-direction:column}.inline-form{align-items:stretch}.inline-form>*{width:100%}}

/* Phase 5A.1 — existing ECN Now portal consolidation */
.utility-link-button{
  border:0;background:transparent;color:#fff;padding:0;cursor:pointer;font:inherit;
}
.utility-link-button:hover{text-decoration:underline}
.home-mail-summary{
  display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:10px;
  background:#f8fbff;border-bottom:1px solid #e4eaf0;
}
.home-mail-summary>div{
  min-width:0;text-align:center;padding:10px 4px;background:#fff;
  border:1px solid #e1e9f2;border-radius:6px;
}
.home-mail-summary strong{
  display:block;color:#073e82;font-size:21px;line-height:1.05;
  overflow:hidden;text-overflow:ellipsis;
}
.home-mail-summary span{
  display:block;margin-top:5px;color:#6d7d92;font-size:10px;text-transform:uppercase;font-weight:700;
}
.service-list li:before{color:#168a3b}
.my-ecnnow-body{padding:15px}
.my-ecnnow-body>strong{display:block;color:#073e82;font-size:18px}
.my-ecnnow-body>span{
  display:block;color:#65758b;font-size:12px;margin-top:5px;overflow-wrap:anywhere;
}
.my-ecnnow-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.my-ecnnow-actions a{
  text-align:center;background:#edf5ff;border:1px solid #d2e3f7;border-radius:5px;
  padding:9px 7px;font-size:12px;font-weight:700;
}
@media(max-width:760px){
  .home-mail-summary{grid-template-columns:1fr 1fr 1fr}
}


/* Phase 5B — portal polish and functionality */
html{scroll-behavior:smooth}
button{font-family:inherit}
.search-tabs button,.customize,.weather-card,.top-searches button,.link-button,
.quick-grid button,.footer-inner button,.mini-module button,.connect-launch{
  cursor:pointer;
}
.search-tabs button:focus-visible,.search-box input:focus-visible,.search-box button:focus-visible,
.customize:focus-visible,.weather-card:focus-visible,.quick-grid a:focus-visible,.quick-grid button:focus-visible{
  outline:3px solid rgba(255,122,0,.35);outline-offset:2px;
}
.top-searches button{
  border:0;background:none;color:#0756ad;padding:0 2px;font-size:13px;
}
.top-searches button:hover{text-decoration:underline}
.weather-card{
  appearance:none;text-align:left;background:#fff;border:0;border-left:1px solid var(--line);
  padding-left:28px;color:#0b376d;
}
.weather-card:hover{background:#f8fbff}
.weather-card .temp{font-size:30px;font-weight:900}
.main-nav{position:sticky;top:0;z-index:20}
.nav-inner a{white-space:nowrap}
.link-button{
  width:100%;border:0;background:transparent;color:#0756ad;
}
.quick-grid button{
  text-align:center;background:#f2f7fd;border:1px solid #dce7f2;border-radius:6px;
  padding:15px 6px;font-size:12px;font-weight:700;color:#0756ad;
}
.quick-grid button:hover{background:#e7f2ff}
.connect-launch{
  display:inline-block;margin-top:10px;background:#0b70d6;color:#fff;border:0;
  padding:10px 14px;border-radius:4px;font-weight:700;
}
.footer-inner button{
  border:0;background:transparent;color:#fff;padding:0;font-size:inherit;
}
.footer-inner button:hover{text-decoration:underline}
.portal-extras{padding-bottom:24px}
.extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mini-module{padding-bottom:12px}
.mini-module p{padding:4px 14px 0;min-height:48px}
.mini-module button{
  margin:6px 14px 12px;border:1px solid #c7d9ec;background:#eef6ff;color:#0756ad;
  padding:8px 11px;border-radius:5px;font-weight:700;
}
.portal-modal[hidden],.customize-drawer[hidden]{display:none!important}
.portal-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.portal-modal-backdrop{position:absolute;inset:0;background:rgba(2,20,45,.55);backdrop-filter:blur(2px)}
.portal-modal-card{
  position:relative;z-index:1;width:min(540px,100%);background:#fff;border-radius:10px;
  border:1px solid #cfd9e5;box-shadow:0 25px 70px rgba(0,0,0,.28);padding:24px;
}
.portal-modal-card h2{margin:0 34px 12px 0;color:#073e82}
.portal-modal-card p{color:#56687e;line-height:1.55}
.modal-close{
  position:absolute;right:13px;top:11px;border:0;background:transparent;font-size:28px;color:#53657a;cursor:pointer;
}
.modal-actions{text-align:right;margin-top:20px}
.primary-action,.secondary-action{
  border:0;border-radius:5px;background:linear-gradient(#1380e8,#0758b0);
  color:#fff;font-weight:800;padding:10px 16px;cursor:pointer;
}
.secondary-action{background:#edf5ff;color:#0756ad;border:1px solid #d2e3f7}
.customize-drawer{
  position:fixed;right:18px;top:76px;width:min(340px,calc(100vw - 36px));z-index:900;
  background:#fff;border:1px solid #c8d6e6;border-radius:9px;box-shadow:0 20px 55px rgba(10,41,78,.24);
  padding:18px;
}
.customize-head{display:flex;justify-content:space-between;align-items:center;color:#073e82;font-size:18px}
.customize-head button{border:0;background:transparent;font-size:24px;cursor:pointer}
.customize-drawer p{font-size:12px;color:#687a90;line-height:1.45}
.customize-drawer label{display:block;padding:7px 0;font-size:13px}
.customize-drawer .secondary-action{margin-top:10px}
.portal-module-hidden{display:none!important}
body.portal-compact .panel{margin-bottom:10px}
body.portal-compact .panel>h2{padding:7px 11px;font-size:14px}
body.portal-compact .profile-row{padding:9px}
body.portal-compact .news-list li{padding:7px 0}
body.portal-compact .portal-grid{gap:10px}
@media(max-width:760px){
  .extra-grid{grid-template-columns:1fr}
  .main-nav{position:static}
  .weather-card{border-left:0;padding:12px 0;text-align:center}
}


/* Phase 5C — portal visual experience */
:root{
  --ecn-blue:#0b5fb8;
  --ecn-blue-dark:#083e7b;
  --ecn-blue-soft:#eaf4ff;
  --ecn-cyan:#33a6ff;
  --ecn-orange:#f08a17;
  --ecn-bg:#eef3f8;
  --ecn-panel:#ffffff;
  --ecn-line:#d5e0eb;
  --ecn-text:#17324f;
  --ecn-muted:#6f8195;
  --ecn-shadow:0 8px 24px rgba(21,62,105,.10);
}

body{
  background:
    linear-gradient(180deg,#e7f1fb 0,#f7f9fb 160px,#eef3f8 100%);
  color:var(--ecn-text);
}

.utility-bar{
  background:linear-gradient(90deg,#052d5d,#0a4a8d 60%,#0e69bd);
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset;
}
.utility-bar a,.utility-link-button{opacity:.95}
.utility-bar a:hover,.utility-link-button:hover{opacity:1}

.header-main{
  background:
    radial-gradient(circle at 18% 10%,rgba(62,163,255,.18),transparent 32%),
    linear-gradient(135deg,#ffffff 0%,#f7fbff 70%,#eef7ff 100%);
  border-bottom:1px solid #c9dbea;
}

.logo img{filter:drop-shadow(0 6px 14px rgba(8,67,124,.14))}

.search-area{
  background:rgba(255,255,255,.86);
  border:1px solid #d6e4f0;
  border-radius:12px;
  padding:10px;
  box-shadow:0 10px 24px rgba(29,76,119,.08);
}
.search-tabs{border-bottom:1px solid #e1eaf2;margin-bottom:8px}
.search-tabs button{
  border-radius:6px 6px 0 0;
  padding:7px 10px;
}
.search-tabs button.active{
  background:linear-gradient(#1677d5,#0b5fb8);
  color:#fff;
  box-shadow:0 2px 6px rgba(0,76,155,.2);
}
.search-box input{
  border:2px solid #91b9dd;
  border-right:0;
  box-shadow:inset 0 1px 2px rgba(15,65,110,.05);
}
.search-box button{
  background:linear-gradient(#f9a73f,#e57b08);
  border-color:#c96b00;
  text-shadow:0 1px 0 rgba(0,0,0,.15);
}
.search-box button:hover{filter:brightness(1.04)}

.portal-masthead{
  background:
    linear-gradient(120deg,rgba(5,57,119,.96),rgba(10,103,190,.94)),
    radial-gradient(circle at 80% 15%,rgba(85,186,255,.7),transparent 35%);
  color:#fff;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.portal-masthead-inner{
  min-height:96px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-top:18px;
  padding-bottom:18px;
}
.masthead-copy{display:flex;flex-direction:column;gap:5px}
.masthead-kicker{
  font-size:10px;
  letter-spacing:1.8px;
  font-weight:900;
  color:#bfe2ff;
}
.masthead-copy strong{font-size:26px;line-height:1.1}
.masthead-copy>span:last-child{font-size:13px;color:#dceeff}
.masthead-actions{display:flex;gap:10px;flex-wrap:wrap}
.masthead-actions a{
  min-width:112px;
  text-align:center;
  border-radius:7px;
  padding:10px 14px;
  font-weight:800;
  font-size:12px;
}
.masthead-primary{background:#fff;color:#0b5fb8}
.masthead-secondary{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.4)}

.main-nav{
  background:linear-gradient(#0d6ac4,#0858a7);
  border-top:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid #06457f;
  box-shadow:0 3px 8px rgba(8,67,124,.12);
}
.nav-inner a,.customize{color:#fff}
.nav-inner a:hover,.nav-inner a.active{background:rgba(255,255,255,.13)}
.customize{
  border-left:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.08);
}

.service-launcher{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
  margin:18px 0;
}
.service-launcher a,.service-launcher button{
  appearance:none;
  border:1px solid #d1deea;
  background:linear-gradient(#fff,#f6f9fc);
  border-radius:10px;
  padding:12px;
  display:flex;
  align-items:center;
  gap:10px;
  text-align:left;
  color:#17324f;
  box-shadow:0 4px 12px rgba(21,62,105,.06);
  cursor:pointer;
  min-width:0;
}
.service-launcher a:hover,.service-launcher button:hover{
  border-color:#9fc1df;
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(21,62,105,.10);
}
.service-launcher .svc-icon{
  width:34px;height:34px;border-radius:9px;
  display:grid;place-items:center;
  background:linear-gradient(145deg,#e5f3ff,#f7fbff);
  color:#0b5fb8;font-size:18px;font-weight:900;
  border:1px solid #cfe3f4;
  flex:0 0 auto;
}
.service-launcher strong,.service-launcher small{display:block}
.service-launcher strong{font-size:12px}
.service-launcher small{font-size:10px;color:#7b8b9d;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.portal-grid{gap:14px}
.panel{
  border-color:#d3dee9;
  border-radius:9px;
  overflow:hidden;
  box-shadow:var(--ecn-shadow);
  background:#fff;
}
.panel>h2{
  background:linear-gradient(#f8fbfe,#edf4fa);
  color:#0a4d90;
  border-bottom:1px solid #d7e2ec;
  font-size:15px;
  font-weight:900;
  letter-spacing:.1px;
}
.panel>h2.purple{
  background:linear-gradient(#faf7ff,#f1ebfb);
  color:#6a45a3;
}
.panel>h2.green{
  background:linear-gradient(#f3fbf6,#e9f6ee);
  color:#2b7a48;
}
.panel>h2.orange{
  background:linear-gradient(#fff9f1,#fff1df);
  color:#a45a07;
}

.profile-row{
  background:linear-gradient(135deg,#f8fbff,#eef6fd);
  border-bottom:1px solid #e1e9f1;
}
.avatar{
  border:2px solid #fff;
  box-shadow:0 2px 9px rgba(10,74,141,.16);
  background:linear-gradient(145deg,#0d6ac4,#0a4d90);
  color:#fff;
}
.account-badge{
  display:inline-block!important;
  margin-top:6px;
  padding:2px 7px;
  border-radius:20px;
  font-size:9px!important;
  font-style:normal;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.6px;
  background:#dff3e6;
  color:#2b7a48!important;
}
.account-badge.guest{background:#edf1f5;color:#6f8195!important}

.home-mail-summary{background:#f3f8fd}
.home-mail-summary>div{
  border-color:#dbe7f1;
  box-shadow:0 2px 7px rgba(12,66,115,.04);
}
.mail-cta-row{display:grid;grid-template-columns:1.35fr 1fr;gap:8px;padding:10px;border-top:1px solid #e1e9f1}
.mail-cta{
  text-align:center;
  padding:9px 8px;
  border:1px solid #c8daeb;
  border-radius:6px;
  color:#0b5fb8;
  font-size:11px;
  font-weight:900;
  background:#f5f9fd;
}
.mail-cta.primary{background:linear-gradient(#1780df,#0b5fb8);color:#fff;border-color:#09529e}

.today-card .today-grid{padding:12px;display:grid;gap:8px}
.today-card .today-grid>div{
  display:flex;justify-content:space-between;gap:8px;
  padding:8px 10px;background:#f7fafc;border:1px solid #e2e9f0;border-radius:6px;
}
.today-label{font-size:10px;color:#7a8a9c;text-transform:uppercase;font-weight:900}
.today-grid strong{font-size:11px;color:#0a4d90;text-align:right}

.quick-grid a,.quick-grid button{
  box-shadow:0 2px 7px rgba(10,74,141,.04);
  transition:.15s ease;
}
.quick-grid a:hover,.quick-grid button:hover{transform:translateY(-1px)}

.news-list a{font-weight:700}
.news-list a:hover{color:#0b5fb8}

.portal-extras{margin-top:4px}
.mini-module{
  box-shadow:0 6px 18px rgba(21,62,105,.07);
}

.footer{
  background:
    radial-gradient(circle at 10% 0%,rgba(27,128,220,.18),transparent 30%),
    linear-gradient(90deg,#042c59,#063d77);
  border-top:3px solid #0b6abd;
}

.portal-modal-card,.customize-drawer{
  box-shadow:0 28px 80px rgba(7,41,78,.3);
}

@media(max-width:1120px){
  .service-launcher{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .portal-masthead-inner{align-items:flex-start;flex-direction:column}
  .masthead-copy strong{font-size:22px}
  .service-launcher{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:460px){
  .service-launcher{grid-template-columns:1fr}
}


/* Phase 5D — managed portal content */
.hero-story-link{
  display:inline-block;
  margin-top:10px;
  color:#0b5fb8;
  font-weight:900;
  font-size:12px;
}
.featured-member-body{
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px;
  background:linear-gradient(135deg,#f8fbff,#eef6fd);
}
.featured-member-avatar{
  width:44px;
  height:44px;
  flex:0 0 44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#0d6ac4,#0a4d90);
  color:#fff;
  font-weight:900;
  font-size:18px;
  box-shadow:0 3px 10px rgba(10,74,141,.18);
}
.featured-member-body strong,
.featured-member-body span{display:block}
.featured-member-body strong{font-size:13px;color:#0a4d90}
.featured-member-body span{font-size:11px;color:#728399;margin-top:4px;line-height:1.35}
.featured-service-body{
  display:flex;
  gap:12px;
  padding:14px;
  background:linear-gradient(135deg,#f8fbff,#eef6fd);
}
.featured-service-mark{
  width:46px;height:46px;flex:0 0 46px;
  display:grid;place-items:center;border-radius:10px;
  background:linear-gradient(145deg,#0758a8,#0d79d6);
  color:#fff;font-size:11px;font-weight:900;letter-spacing:.5px;
}
.featured-service-body strong{display:block;color:#0a4d90;font-size:13px}
.featured-service-body p{margin:5px 0 8px;color:#718197;font-size:11px;line-height:1.4}
.featured-service-body a{font-size:11px;font-weight:900;color:#0b5fb8}


/* Phase 5E — managed portal data modules */
.weather-details{
  margin:0;
  padding:10px 12px;
  border-top:1px solid #e5edf5;
  color:#6e7f92;
  font-size:11px;
  line-height:1.45;
}
.news-category-links{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:9px 10px;
  border-bottom:1px solid #e1e8f0;
  background:#f8fbfe;
}
.news-category-links a{
  padding:5px 8px;
  border:1px solid #cfdeec;
  background:#fff;
  border-radius:20px;
  color:#0b5fb8;
  font-size:10px;
  font-weight:800;
}
.news-category-links a:hover{background:#eaf4ff}
.service-launcher button[disabled]{opacity:.55}


/* Phase 5F — live portal data */
.weather-updated{
  display:block;
  margin-top:4px;
  color:#7c8ea2;
  font-size:9px;
  font-weight:700;
}
.live-news-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px 6px;
  color:#0a4d90;
}
.live-news-head strong{font-size:12px}
.live-news-head span{font-size:9px;color:#8191a3}
.live-news-list{
  list-style:none;
  padding:0 12px 10px;
  margin:0;
}
.live-news-list li{
  padding:8px 0;
  border-top:1px solid #e9eef4;
}
.live-news-list li:first-child{border-top:0}
.live-news-list a{
  display:block;
  font-size:12px;
  font-weight:800;
  color:#164f88;
  line-height:1.35;
}
.live-news-list a:hover{color:#0b6abd}
.live-news-list span{
  display:block;
  margin-top:3px;
  color:#8795a5;
  font-size:9px;
}


/* Phase 5G — service hub & health */
.service-status-summary{
  display:flex;
  align-items:center;
  gap:7px;
  margin:-9px 0 16px;
  color:#718398;
  font-size:10px;
  font-weight:700;
}
.status-dot{
  width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 8px;
  background:#aeb9c5;
}
.status-dot.online{background:#2ea861}
.status-dot.partial{background:#e79a21}
.status-dot.offline{background:#c94a4a}
.status-dot.neutral{background:#9ba8b6}
.service-launcher [data-service-name]{
  position:relative;
}
.service-launcher [data-service-name]::after{
  content:"";
  position:absolute;
  top:8px;right:8px;
  width:7px;height:7px;border-radius:50%;
  background:#b2bdc7;
}
.service-launcher .service-online::after{background:#2ea861}
.service-launcher .service-offline::after{background:#c94a4a}
.service-launcher .service-maintenance::after{background:#e79a21}
.service-launcher .service-coming-soon::after{background:#8896a6}
