.portal-body { --side: 230px; min-height: 100vh; color: #12201b; background: #eef1ec; }
.portal-side { position: fixed; z-index: 10; inset: 0 auto 0 0; width: var(--side); display: flex; flex-direction: column; padding: 29px 22px; color: white; background: #09130f; }
.portal-side .brand { margin: 0 7px 45px; }.side-caption { margin: 0 8px 13px; color: rgba(255,255,255,.3); font-size: 8px; letter-spacing: .14em; }.portal-side nav { display: grid; gap: 5px; }.portal-side nav a { padding: 13px 13px; color: rgba(255,255,255,.5); border-radius: 9px; font-size: 11px; }.portal-side nav a:hover, .portal-side nav a.active { color: white; background: rgba(255,255,255,.07); }.portal-side nav a.active { box-shadow: inset 2px 0 var(--lime); }.side-bottom { display: grid; gap: 16px; margin-top: auto; padding: 18px 8px 0; border-top: 1px solid rgba(255,255,255,.08); }.side-bottom span { color: rgba(255,255,255,.37); font-size: 8px; }.side-bottom span i { display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: var(--lime); }.side-bottom a { color: var(--mint); font-size: 9px; }
.portal-main { min-height: 100vh; margin-left: var(--side); }.portal-top { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 32px; border-bottom: 1px solid rgba(10,26,20,.09); background: rgba(249,251,248,.88); backdrop-filter: blur(15px); }.portal-top > div:first-child { display: grid; gap: 3px; }.portal-top span, .panel-title span { color: #6a978b; font-size: 8px; font-weight: 700; letter-spacing: .13em; }.portal-top h1 { margin: 0; font-size: 21px; }.portal-top > div:last-child { display: flex; gap: 8px; }.portal-top button, .primary-link { min-height: 37px; padding: 0 14px; color: #33443e; border: 1px solid #d3dad6; border-radius: 9px; background: #fafbf9; font-size: 9px; cursor: pointer; }.primary-link { display: flex; align-items: center; color: #13251e; border-color: var(--lime); background: var(--lime); font-weight: 800; }
.portal-content { width: min(1180px, calc(100vw - var(--side) - 58px)); margin: 0 auto; padding: 25px 0 50px; }.portal-hero { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 14px; overflow: hidden; color: white; border-radius: 16px; background: #13251e; }.portal-hero > div { min-height: 125px; display: grid; align-content: center; gap: 8px; padding: 20px 24px; border-left: 1px solid rgba(255,255,255,.08); }.portal-hero > div:first-child { border-left: 0; }.portal-hero span { color: rgba(255,255,255,.38); font-size: 9px; }.portal-hero strong { font-size: 25px; }.portal-hero small { color: rgba(255,255,255,.35); font-size: 8px; }.provider-hero > div:first-child { background: linear-gradient(135deg,#245949,#347b67); }.provider-hero > div:first-child strong { color: var(--lime); }
.portal-panel { margin-bottom: 14px; padding: 22px; border: 1px solid rgba(10,26,20,.09); border-radius: 15px; background: #fafbf9; }.panel-title { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 19px; }.panel-title h2 { margin: 6px 0 0; font-size: 17px; }.panel-title button { padding: 7px 11px; color: #426057; border: 1px solid #d7dfda; border-radius: 8px; background: transparent; cursor: pointer; font-size: 9px; }.panel-copy { max-width: 750px; margin: -7px 0 23px; color: #75817c; font-size: 10px; line-height: 1.7; }.status-chip { padding: 6px 8px; color: #2e705f!important; border-radius: 6px; background: #e0f2e9; letter-spacing: 0!important; }.status-chip.amber { color: #8b651e!important; background: #f7edcf; }
.order-list, .device-list { display: grid; gap: 9px; }.order-row, .device-row { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr auto; gap: 14px; align-items: center; padding: 16px; border: 1px solid #e2e7e3; border-radius: 11px; background: white; }.order-row div, .device-row div { display: grid; gap: 4px; min-width: 0; }.order-row span, .device-row span { color: #8a9690; font-size: 8px; }.order-row strong, .device-row strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.state { width: fit-content; padding: 5px 7px; color: #815d1c!important; border-radius: 6px; background: #f6ebcd; }.state.active, .state.approved { color: #286e5e!important; background: #ddf1e7; }.state.rejected, .state.revoked { color: #984d40!important; background: #f6e0dc; }.credential-box { grid-column: 1 / -1; display: grid!important; grid-template-columns: 1.5fr .5fr 1fr 1fr; gap: 10px!important; margin-top: 4px; padding: 12px; border-radius: 8px; background: #102019; }.credential-box span { color: rgba(255,255,255,.34); }.credential-box strong { color: white; font-family: ui-monospace,monospace; }.empty-state { min-height: 110px; display: grid; place-items: center; color: #929c97; font-size: 10px; }.portal-note { display: flex; gap: 17px; padding: 20px 23px; color: #d9e9e2; border-radius: 14px; background: #1c3c32; }.portal-note strong { flex: 0 0 auto; color: var(--lime); font-size: 10px; }.portal-note p { margin: 0; font-size: 9px; line-height: 1.7; }
.portal-columns { display: grid; grid-template-columns: 1.7fr .7fr; gap: 14px; }.portal-columns .portal-panel { min-width: 0; }.withdrawal-card form { display: grid; gap: 12px; }.withdrawal-card label, .portal-login label { display: grid; gap: 6px; color: #65736d; font-size: 9px; }.withdrawal-card input, .withdrawal-card select, .portal-login input { width: 100%; height: 41px; padding: 0 11px; border: 1px solid #ccd5d0; border-radius: 8px; outline: 0; background: #f7f9f6; }.withdrawal-card button, .portal-login form button { height: 42px; color: #12201b; border: 0; border-radius: 8px; background: var(--lime); font-weight: 800; cursor: pointer; }.form-error { min-height: 12px; color: #a04b3e; font-size: 8px; }.platform-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 9px; }.platform-grid article, .platform-download { min-height: 105px; display: grid; align-content: center; gap: 7px; padding: 16px; color: inherit; border: 1px solid #dfe5e1; border-radius: 11px; background: white; }.platform-download { border-color: #83dcb9; background: #e9f8f1; transition: transform .18s ease, box-shadow .18s ease; }.platform-download:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(35,103,82,.12); }.platform-grid b { color: #347a68; font-size: 22px; }.platform-grid strong { font-size: 10px; }.platform-grid span { color: #909a95; font-size: 8px; }
.portal-login { width: min(420px,calc(100vw - 28px)); padding: 36px; color: #12201b; border: 0; border-radius: 22px; box-shadow: 0 35px 100px rgba(0,0,0,.35); }.portal-login::backdrop { background: rgba(5,13,10,.84); backdrop-filter: blur(6px); }.login-tag { color: #36816f; font-size: 8px; font-weight: 800; letter-spacing: .15em; }.portal-login h2 { margin: 10px 0; font-size: 27px; }.portal-login > p { margin-bottom: 24px; color: #71807a; font-size: 10px; line-height: 1.65; }.portal-login form { display: grid; gap: 9px; }.portal-login > a, .portal-login > small { display: block; margin-top: 16px; color: #809089; font-size: 8px; text-align: center; }.portal-locked .portal-main, .portal-locked .portal-side { filter: blur(2px); pointer-events: none; }
@media(max-width:900px){.portal-body{--side:0px}.portal-side{display:none}.portal-main{margin-left:0}.portal-content{width:calc(100vw - 28px)}.portal-hero{grid-template-columns:1fr 1fr}.portal-hero>div:nth-child(3){border-left:0}.portal-columns{grid-template-columns:1fr}.platform-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.portal-top{height:auto;min-height:78px;padding:13px 15px}.portal-top h1{font-size:18px}.portal-top>div:last-child button{display:none}.portal-content{padding-top:14px}.portal-hero{grid-template-columns:1fr}.portal-hero>div{min-height:95px;border-left:0;border-top:1px solid rgba(255,255,255,.08)}.portal-hero>div:first-child{border-top:0}.order-row,.device-row{grid-template-columns:1fr 1fr}.credential-box{grid-template-columns:1fr}.platform-grid{grid-template-columns:1fr 1fr}.portal-panel{padding:17px}.portal-login{padding:29px 23px}}
.copy-credential {
  border: 1px solid #2d6cdf;
  border-radius: 8px;
  background: #2d6cdf;
  color: #fff;
  padding: 9px 14px;
  cursor: pointer;
}
