/* UI shell fix: SVG symbol sprite must not occupy the browser default 300x150 box.
   Inline style was blocked by the portal's strict style-src 'self' CSP. */
.ds-icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}

/* UI01 | enterprise shell, deterministic RTL layout. */
.portal-body.portal-authenticated .portal-layout{display:grid;grid-template-columns:var(--ds-sidebar-width) minmax(0,1fr);min-height:100dvh}
.portal-body .portal-sidebar{background:linear-gradient(164deg,#14364a 0%,#0d2b3c 74%,#0b2939 100%);color:#f7fbfd;border-left:1px solid rgb(255 255 255 / 8%);height:100dvh;min-height:0;overflow:hidden;position:sticky;top:0;display:flex;flex-direction:column;z-index:1032;box-shadow:-8px 0 25px rgb(12 38 54 / 4%)}
.portal-sidebar-inner{height:100%;width:100%;display:flex;flex-direction:column;min-width:0}
.portal-nav{display:flex;flex-direction:column;gap:0;padding:6px 14px 12px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#46687a transparent;flex:1}
.portal-nav-brand{margin:0;padding:23px 22px 17px;display:flex;gap:12px;align-items:center;min-height:96px;border-bottom:1px solid rgb(255 255 255 / 10%);color:#fff;text-decoration:none}
.portal-brand-symbol{width:46px;height:46px;min-width:46px;background:linear-gradient(135deg,#178da0,#0a6177);border:1px solid rgb(255 255 255 / 26%);border-radius:14px;display:grid;place-items:center;color:white;box-shadow:0 10px 24px rgb(0 0 0 / 14%)}
.portal-brand-symbol .ui-icon{width:27px;height:27px;stroke-width:1.9}
.portal-brand-text{font-size:.99rem;font-weight:850;line-height:1.45;white-space:nowrap}.portal-brand-text small{font-size:.67rem;font-weight:450;color:#bbd0da;display:block;margin-top:3px}
.portal-nav-group{margin-top:13px}.portal-nav-label{display:block;margin:13px 13px 9px;font-size:.71rem;font-weight:750;color:#a5beca;letter-spacing:.012em;white-space:nowrap}
.portal-nav-link{display:flex;align-items:center;gap:12px;min-height:43px;padding:10px 13px;margin:2px 0;border-radius:10px;color:#dcebf1;text-decoration:none;font-size:.86rem;font-weight:560;transition:background var(--ds-duration),color var(--ds-duration),transform var(--ds-duration);white-space:nowrap}
.portal-nav-link .ui-icon{color:#a8c5d2;flex:0 0 20px}.portal-nav-link .portal-nav-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.portal-nav-link:hover,.portal-nav-link:focus-visible{background:rgb(238 250 255 / 10%);color:#fff}.portal-nav-link:hover .ui-icon{color:#fff}
.portal-nav-link[aria-current="page"],.portal-nav-link[data-portal-active="true"]{background:#e9f5f7;color:#093e53;font-weight:830;box-shadow:var(--ds-shadow-sm)}
.portal-nav-link[aria-current="page"] .ui-icon,.portal-nav-link[data-portal-active="true"] .ui-icon{color:#0d6578}
.portal-nav-link[aria-current="page"]::before{content:"";position:absolute;right:5px;height:22px;width:3px;background:#0d8897;border-radius:8px}.portal-nav-link{position:relative}
.portal-nav-divider{border-top:1px solid rgb(255 255 255 / 10%);margin:14px 11px 2px}
.portal-sidebar-footer{margin:8px 13px 18px;padding:13px 12px;border:1px solid rgb(255 255 255 / 12%);border-radius:13px;background:rgb(255 255 255 / 5%);color:#c2d9e1;display:flex;gap:10px;align-items:center;font-size:.71rem;line-height:1.5}
.portal-sidebar-footer strong{font-size:.76rem;color:#eefaff;display:block}.portal-sidebar-footer .ui-icon{color:#72d5cb}
.portal-content-shell{min-width:0;min-height:100dvh;display:flex;flex-direction:column}
.portal-topbar{position:sticky;top:0;z-index:1020;min-height:var(--ds-topbar-height);height:var(--ds-topbar-height);background:rgb(255 255 255 / 97%);backdrop-filter:blur(14px);border-bottom:1px solid var(--ds-border);padding:0 clamp(20px,2.7vw,44px);display:flex;align-items:center;justify-content:space-between;gap:18px}
.portal-topbar-leading,.portal-topbar-trailing{display:flex;align-items:center;gap:14px;min-width:0}.portal-topbar-trailing{gap:10px;flex-shrink:0}
.portal-top-brand{display:flex;align-items:center;gap:11px;color:var(--ds-ink);text-decoration:none;font-weight:840;font-size:.95rem;white-space:nowrap}
.portal-top-brand .ui-icon{color:var(--ds-teal-700)}
.portal-topbar-subtitle{color:var(--ds-muted);font-size:.73rem;font-weight:500;display:block}
.portal-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:40px;height:40px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ds-ink-soft);text-decoration:none;flex-shrink:0;cursor:pointer}
.portal-icon-button:hover,.portal-icon-button:focus-visible{background:#edf3f7;border-color:#d7e3eb;color:var(--ds-navy-900)}
.portal-search-trigger{display:inline-flex;align-items:center;gap:10px;min-width:240px;max-width:330px;border:1px solid var(--ds-border);border-radius:11px;padding:9px 12px;background:#f8fafc;color:var(--ds-muted);font-size:.81rem;cursor:pointer;text-align:right}
.portal-search-trigger:hover{border-color:#b0cbd4;background:#fff}.portal-search-trigger kbd{margin-inline-start:auto;border:1px solid var(--ds-border);border-radius:6px;background:white;padding:1px 6px;font-size:.7rem;color:var(--ds-muted)}
.portal-account-toggle{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--ds-border);border-radius:12px;min-height:44px;padding:4px 7px 4px 12px;color:var(--ds-ink);cursor:pointer;white-space:nowrap}
.portal-account-toggle:hover,.portal-account-toggle[aria-expanded="true"]{background:var(--ds-soft);border-color:#b7d1db}
.portal-account-avatar{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:#dceef1;color:#0a576a;font-weight:850;font-size:.9rem}
.portal-account-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.5;font-size:.8rem;font-weight:800;max-width:140px}
.portal-account-meta small{font-size:.67rem;color:var(--ds-muted);font-weight:500}
.portal-account-menu{min-width:225px;border-radius:13px;box-shadow:var(--ds-shadow-md);border:1px solid var(--ds-border);padding:8px;text-align:right}
.portal-account-menu .dropdown-item{padding:9px 10px;border-radius:8px;font-size:.83rem;display:flex;align-items:center;gap:9px}
.portal-account-menu .dropdown-item:active{background:var(--ds-teal-700)}
.portal-account-menu form{margin:0}.portal-account-menu button.dropdown-item{background:transparent;border:0;width:100%;color:var(--ds-danger);text-align:right}
.portal-main{padding:22px clamp(20px,2.7vw,44px) 56px;max-width:var(--ds-container);margin:0 auto;flex:1;width:100%;min-width:0}
.portal-breadcrumb-nav{display:flex;align-items:center;margin:0 0 18px;min-height:25px}.portal-breadcrumb{font-size:.78rem;margin:0;align-items:center;gap:4px}.portal-breadcrumb a{color:var(--ds-muted);text-decoration:none}.portal-breadcrumb .active{color:var(--ds-teal-700);font-weight:750}
.portal-page-head{margin-bottom:23px}.portal-page-head h1{font-size:1.65rem}.portal-page-head p{margin:5px 0 0;color:var(--ds-muted);font-size:.88rem}
.portal-footer{padding:17px clamp(20px,2.7vw,44px);background:transparent;border-top:1px solid var(--ds-border);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.71rem;color:var(--ds-muted)}
.portal-footer .footer-mark{display:flex;align-items:center;gap:8px}.portal-footer .footer-mark .ui-icon{color:var(--ds-teal-700)}
.portal-body.portal-guest{background:radial-gradient(ellipse at 85% -20%,#d7f0ee 0,transparent 48%),var(--ds-canvas)}
.portal-guest-header{border-bottom:1px solid var(--ds-border);min-height:76px;display:flex;align-items:center;padding:15px clamp(18px,4vw,65px);background:rgb(255 255 255 / 95%)}
.portal-guest-header a{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ds-navy-900);font-weight:800;font-size:1.03rem}
.portal-guest-header .portal-brand-symbol{width:38px;height:38px;min-width:38px}.portal-guest-header .portal-brand-symbol .ui-icon{width:22px;height:22px}
.portal-guest-main{width:100%;max-width:1200px;padding:52px 20px 85px}.portal-guest-main .auth-card{max-width:430px;margin:0 auto;box-shadow:var(--ds-shadow-md);border-radius:20px}
.portal-guest-main .auth-card .card-body{padding:34px!important}
/* Sidebar collapse is opted into by the user and never changes permissions. */
@media(min-width:992px){.portal-body[data-sidebar="collapsed"] .portal-layout{grid-template-columns:var(--ds-sidebar-mini) minmax(0,1fr)}
.portal-body[data-sidebar="collapsed"] .portal-nav-brand{justify-content:center;padding-inline:10px}.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-brand-text,.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav-text,.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav-label,.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-sidebar-footer,.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav-divider{display:none}
.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav{padding-inline:10px}.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav-link{justify-content:center;padding:10px}.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav-group{margin-top:8px}
.portal-body[data-sidebar="collapsed"] .portal-sidebar{overflow:visible}.portal-body[data-sidebar="collapsed"] .portal-sidebar .portal-nav-link:hover::after{content:attr(data-label);position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--ds-navy-950);border-radius:6px;padding:8px 12px;color:#fff;font-size:.78rem;white-space:nowrap;z-index:1050;box-shadow:var(--ds-shadow-md)}
}
.portal-mobile-nav{max-width:min(340px,92vw);background:var(--ds-navy-900);color:white}.portal-mobile-nav .offcanvas-body{padding:0}.portal-mobile-nav .offcanvas-header{border-bottom:1px solid #dbe4eb;background:white;color:var(--ds-ink);min-height:68px}
.portal-mobile-nav .portal-sidebar-inner{height:calc(100dvh - 68px)}
