.bluda-portal,.bluda-portal *{box-sizing:border-box}
.bluda-portal{max-width:1200px;margin:0 auto;padding:23px clamp(14px,2vw,24px) 60px;background:#fff;color:#18334c;font-family:inherit}
.bluda-portal-hero{padding:16px 0 24px;max-width:720px}
.bluda-portal-hero small{font-size:11px;letter-spacing:.12em;font-weight:800;color:#b95c1e}
.bluda-portal h1{font-size:clamp(31px,5vw,56px);line-height:1.13;letter-spacing:-.035em;color:#123b62;margin:12px 0}
.bluda-portal h2{font-size:clamp(19px,3vw,27px);color:#153c5e}
.bluda-portal p{color:#566a7e;line-height:1.65;font-size:14px}
.bluda-portal-frame{border:1px solid #dbe6ed;border-top:3px solid #ef7c29;background:#fff;border-radius:7px;padding:clamp(15px,3vw,30px);max-width:850px}
.bluda-portal label{display:block;font-size:13px;font-weight:700;margin:15px 0;color:#244761}
.bluda-portal input,.bluda-portal select,.bluda-portal textarea{display:block;width:100%;border:1px solid #adc3d6;border-radius:5px;background:#fff;color:#1f405e;padding:12px;font:inherit;font-size:14px;margin-top:7px;min-height:45px}
.bluda-portal textarea{min-height:105px;resize:vertical}
.bluda-portal button{display:inline-flex;justify-content:center;align-items:center;min-height:45px;border:none;border-radius:5px;padding:12px 20px;background:#1161b5;color:#fff;font-weight:750;cursor:pointer}
.bluda-portal button:disabled{opacity:.55;cursor:wait}
.bluda-portal :focus-visible{outline:3px solid #f0893b;outline-offset:3px}
.bluda-portal-alert{padding:12px 0;font-size:13px;color:#155a40}.bluda-portal-alert.error{color:#9c3333}
.bluda-portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0}
.bluda-portal-grid .bluda-portal-detail{border:1px solid #e0e8f0;border-radius:6px;padding:15px;display:flex;flex-direction:column;gap:5px}
.bluda-portal-detail{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:10px 0;border-bottom:1px solid #e4ebf2;font-size:13px}
.bluda-portal-detail span{color:#58718a}.bluda-portal-detail strong{color:#173d63}
.bluda-portal-channels,.bluda-portal-action-row{background:#fff;border:1px solid #dfe9f1;border-radius:7px;padding:15px;margin:15px 0}
.bluda-portal-disclaimer,.bluda-portal-fine{font-size:12px!important;color:#6e7c89!important}
@media(max-width:640px){.bluda-portal{padding:14px 12px 40px}.bluda-portal-grid{grid-template-columns:1fr}.bluda-portal button{width:100%}}

.bluda-portal .bluda-alt-access{margin-top:20px;background:#fff;color:#155ca6;border:1px solid #b8cde0}

/* BLUDA 2.8: one customer home for self-service and managed progress. */
.bluda-portal-roadmap,.bluda-portal-metrics{background:#fff;border:1px solid #dce7f2;border-radius:8px;padding:14px;margin:18px 0}
.bluda-portal-milestone{display:flex;align-items:center;gap:10px;margin:8px 0;color:#668099;font-size:13px}
.bluda-portal-milestone.done{color:#1c6584;font-weight:700}
.bluda-portal-milestone>span:first-child{width:20px;flex:none;text-align:center}
.bluda-portal-budget-bar{margin:10px 0;font-size:12px;color:#314e67}
.bluda-portal-track{height:9px;border-radius:6px;background:#eaf1f7;overflow:hidden;margin-top:5px}
.bluda-portal-fill{height:100%;background:#1768b4;border-radius:6px}

/* BLUDA 2.9.2 - Customer-first campaign dashboard. No Astra header styling. */
.bluda-portal{max-width:1240px;min-width:0;margin:0 auto;padding:20px 16px 64px}
.bluda-portal [hidden]{display:none!important}
.bluda-portal-hero{max-width:940px;padding:11px 0 24px}
.bluda-portal-hero h1{font-size:clamp(29px,4vw,43px)}
.bluda-portal-frame{max-width:none;padding:clamp(17px,2.5vw,30px);border-top-width:2px}
.bluda-portal #bluda-portal-resend{max-width:680px;margin:10px auto;padding:14px 0 22px}
.bluda-portal-access-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bluda-dashboard-head{padding:3px 0 20px;border-bottom:1px solid #e0eaf2}
.bluda-dashboard-head h2{font-size:clamp(24px,3.1vw,35px);line-height:1.2;margin:12px 0 4px}
.bluda-dashboard-head p{margin:0}
.bluda-dashboard-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.bluda-reference{font-size:12px;font-weight:800;color:#52708a;letter-spacing:.02em}
.bluda-status-pill{font-size:11px;border-radius:100px;border:1px solid #c9e4d7;background:#f0f8f5;color:#126444;padding:5px 11px;font-weight:800}
.bluda-next-step{margin:19px 0 16px;padding:clamp(19px,3vw,26px);border-radius:8px;border:1px solid #c9dff1;background:linear-gradient(130deg,#f5faff,#fff)}
.bluda-overline{font-size:11px;letter-spacing:.12em;font-weight:800;color:#ad5b20}
.bluda-next-step h3{font-size:clamp(21px,2.6vw,28px);color:#143c5d;margin:8px 0}
.bluda-next-step p{max-width:810px;margin:0 0 16px}
.bluda-next-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.bluda-portal .bluda-main-cta{background:#0a60b8;color:white}
.bluda-portal .bluda-quiet-cta{background:#fff;color:#155d9f;border:1px solid #bad2e7}
.bluda-metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:17px}
.bluda-metric{display:flex;flex-direction:column;justify-content:center;gap:8px;border:1px solid #e0e8f0;padding:16px;border-radius:7px;min-width:0;background:#fff}
.bluda-metric span{font-size:12px;color:#55718a}.bluda-metric strong{font-size:15px;color:#153a59;overflow-wrap:anywhere}
.bluda-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:14px;align-items:start}
.bluda-panel{border:1px solid #dce7f0;background:#fff;border-radius:8px;padding:clamp(16px,2.3vw,22px);min-width:0}
.bluda-panel h3,.bluda-activity h3{font-size:21px;color:#153d5c;margin:8px 0 16px}
.bluda-plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.bluda-network-list{margin-top:15px}.bluda-network{padding:11px 0;border-bottom:1px solid #ebf0f4}
.bluda-network-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:#244860}
.bluda-network-label span{color:#285d8a;font-weight:700}
.bluda-step-list{padding:0;margin:0 0 15px;list-style:none}
.bluda-step-list li{display:flex;gap:10px;align-items:center;margin:11px 0;color:#58718a;font-size:13px}
.bluda-step-list li.complete{color:#155d59;font-weight:700}
.bluda-step-icon{width:25px;height:25px;flex:0 0 25px;display:inline-grid;place-items:center;border:1px solid #cbd9e4;border-radius:50%;font-size:12px}
.bluda-step-list li.complete .bluda-step-icon{background:#ebf8f1;border-color:#92c9ad;color:#167052}
.bluda-activity{border:1px solid #dce7f0;padding:clamp(16px,2.3vw,22px);border-radius:8px;margin:14px 0;background:#fff}
.bluda-activity p{margin:8px 0}.bluda-activity-row{border-top:1px solid #e2e9f0;padding:14px 0;display:grid;gap:3px}
.bluda-activity-row strong{text-transform:capitalize}.bluda-activity-row span{font-size:12px;color:#668099}
.bluda-service-desk{margin-top:19px;border:1px solid #dbe6f0;border-radius:8px;background:#fff;overflow:hidden}
.bluda-service-desk>summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 21px;cursor:pointer;color:#245272}
.bluda-service-desk>summary::-webkit-details-marker{display:none}
.bluda-service-desk>summary:focus-visible{outline:3px solid #e87a30;outline-offset:-4px}
.bluda-service-summary{display:flex;flex-direction:column;gap:4px}.bluda-service-summary strong{font-size:15px}.bluda-service-summary small{color:#667e90;font-size:12px}
.bluda-service-desk[open]>summary{border-bottom:1px solid #e0e9f1;background:#f8fbfe}
.bluda-service-desk form{padding:10px 21px 22px;max-width:760px}
.bluda-service-desk select:invalid{color:#607b92}
.bluda-portal-footer-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.bluda-portal .bluda-alt-access{margin:0;background:#fff;color:#155ca6;border:1px solid #b8cde0}
.bluda-portal-alert:not(:empty){padding:12px 16px;margin:12px 0;border-radius:6px;background:#f3f9fc;border:1px solid #d2e6f0}
.bluda-portal-alert.error{background:#fff5f3;border-color:#eabfba;color:#923323}
@media(max-width:900px){.bluda-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.bluda-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:610px){.bluda-portal{padding:8px 11px 85px}.bluda-portal-frame{padding:15px 12px}.bluda-portal-access-fields,.bluda-plan-meta{grid-template-columns:1fr}.bluda-metric-strip{gap:7px}.bluda-metric{padding:12px}.bluda-next-buttons{display:grid;grid-template-columns:1fr}.bluda-next-buttons button{width:100%}.bluda-portal-footer-actions{display:grid;grid-template-columns:1fr}.bluda-service-desk>summary{padding:15px}.bluda-service-desk form{padding:10px 15px 20px}}

/* BLUDA 2.9.3 customer navigation and responsive exit paths; scoped to the portal only. */
.bluda-portal-wayfinder{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.bluda-portal-wayfinder a{display:inline-flex;align-items:center;gap:8px;text-decoration:none!important;font-size:12px;font-weight:750;color:#185a92;border:1px solid #d8e5ef;background:#fff;padding:10px 13px;min-height:44px;border-radius:6px}
.bluda-portal-wayfinder a:hover,.bluda-portal-wayfinder a:focus-visible{border-color:#1768ac;background:#f4f9fd}
.bluda-portal-wayfinder a span{display:inline-grid;place-items:center;min-width:20px;min-height:20px;color:#1462ad;background:#eaf4fc;border-radius:4px;font-size:15px}
.bluda-dashboard-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 0 15px;margin:0 0 17px;border-bottom:1px solid #e1eaf1}
.bluda-dashboard-nav a{display:inline-flex;align-items:center;text-decoration:none!important;border-radius:5px;border:1px solid transparent;padding:9px 13px;font-size:13px;line-height:1.3;color:#3a617b;font-weight:720;min-height:42px}
.bluda-dashboard-nav a:hover,.bluda-dashboard-nav a[aria-current="location"]{color:#145c9e;background:#f0f7fe;border-color:#c7dff1}
.bluda-portal :is(#bluda-next-step,#bluda-plan,#bluda-progress,#bluda-activity,#bluda-service-desk){scroll-margin-top:95px}
.bluda-portal-next-note{margin:16px 0 0!important;font-size:12px!important;border-top:1px solid #dce7f1;padding-top:13px;color:#47657e!important}
.bluda-portal-hero p{max-width:680px}
@media(max-width:700px){.bluda-portal-wayfinder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.bluda-portal-wayfinder a{font-size:12px;padding:9px 10px;min-width:0}.bluda-dashboard-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.bluda-dashboard-nav a{font-size:12px;text-align:center;justify-content:center;padding:8px 4px;min-width:0}.bluda-dashboard-nav a:last-child{grid-column:span 2}.bluda-portal .bluda-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:350px){.bluda-portal-wayfinder{grid-template-columns:1fr 1fr}.bluda-dashboard-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.bluda-dashboard-nav a:last-child{grid-column:auto}}
