/* Step 4A: additive presentation foundation. Original artwork and business rules unchanged.
   Brand anchors sampled from the authoritative logo: #090c10, #015925, #ae751c. */
:root {
  --v2-shell:#090c10; --v2-shell-raised:#14221e; --v2-primary:#015925; --v2-primary-hover:#01451d;
  --v2-gold:#ae751c; --v2-gold-light:#f0ce85; --v2-canvas:#f4f7f5; --v2-surface:#fff; --v2-elevated:#fff;
  --v2-text:#172a24; --v2-secondary:#43584f; --v2-muted:#596b63; --v2-border:#d6e0da;
  --v2-success:#146b36; --v2-success-bg:#e8f5eb; --v2-warning:#805300; --v2-warning-bg:#fff4dc;
  --v2-error:#a32932; --v2-error-bg:#fff0f1; --v2-info:#195983; --v2-info-bg:#eaf3fa;
  --v2-neutral:#46564e; --v2-neutral-bg:#edf1ee; --v2-disabled:#65756c; --v2-focus:#195983;
  --v2-font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --v2-body:1rem; --v2-small:.875rem; --v2-h3:1.25rem; --v2-h2:1.5rem; --v2-h1:2rem;
  --v2-s1:4px; --v2-s2:8px; --v2-s3:12px; --v2-s4:16px; --v2-s6:24px; --v2-s8:32px; --v2-s12:48px;
  --v2-control-radius:8px; --v2-card-radius:12px; --v2-panel-radius:16px;
  --v2-shadow:0 8px 28px #0927190a; --v2-overlay-shadow:0 20px 60px #090c1033;
  --v2-motion:160ms; --v2-sidebar:248px; --v2-bottom:72px;
  --ink:var(--v2-text); --muted:var(--v2-muted); --navy:var(--v2-shell); --teal:var(--v2-primary); --gold:var(--v2-gold); --line:var(--v2-border);
}
*{box-sizing:border-box}
body{font-family:var(--v2-font);font-size:var(--v2-body);color:var(--v2-text);line-height:1.55;background:var(--v2-canvas)}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--v2-focus)!important;outline-offset:3px}
[hidden]{display:none!important}
.draft{min-height:28px;height:auto;padding:5px 12px;font-size:10px;letter-spacing:.08em;line-height:18px;background:var(--v2-shell);color:var(--v2-gold-light);text-align:center}
.portal-shell{display:block!important;min-height:calc(100vh - 28px);background:var(--v2-canvas)}
.portal-shell aside{position:fixed;top:28px;bottom:0;left:0;width:var(--v2-sidebar);padding:24px 16px;background:linear-gradient(165deg,var(--v2-shell-raised),var(--v2-shell) 65%);border-right:1px solid #ae751c55;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;z-index:40;transform:none}
.portal-brand{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0;font-size:20px;letter-spacing:-.04em;margin:0 0 28px;line-height:1.2;color:#fff}
.portal-brand img{display:block;width:96px;height:96px;object-fit:contain;margin:0 calc(50% - 48px) 12px}
.portal-brand span{color:var(--v2-gold-light)}
.portal-shell aside nav{display:grid;overflow:visible;gap:4px;margin:0}
.portal-shell aside nav a{display:flex;align-items:center;min-height:44px;white-space:normal;padding:10px 14px;border-radius:8px;color:#cfdbd4;font-size:14px;font-weight:600;transition:background var(--v2-motion),color var(--v2-motion)}
.portal-shell aside nav a:hover{background:#ffffff12;color:#fff}
.portal-shell aside nav a.active{background:#ae751c26;color:var(--v2-gold-light);box-shadow:inset 3px 0 var(--v2-gold-light)}
.portal-shell aside :focus-visible{outline-color:var(--v2-gold-light)!important}
.nav-group{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#acbaaf;margin:20px 14px 6px}
.member-help{margin-top:24px;padding:14px;border-color:#ffffff24;color:#cbd7ce;font-size:12px}
.member-help a{color:var(--v2-gold-light)}
.logout{margin-top:16px;min-height:44px;border-top:1px solid #ffffff1c;color:#dce6df}
.portal-main{margin-left:var(--v2-sidebar);width:calc(100% - var(--v2-sidebar));min-width:0;min-height:calc(100vh - 28px)}
.portal-main>header{min-height:92px;padding:20px clamp(24px,3vw,40px);gap:16px;background:#ffffffed;border-bottom:1px solid var(--v2-border);display:flex;justify-content:space-between;align-items:center}
.portal-main>header>div:first-of-type{min-width:0;flex:1}
.portal-main h1{font-size:clamp(20px,2vw,28px);letter-spacing:-.035em;line-height:1.25;margin:4px 0;white-space:normal;overflow-wrap:anywhere}
.eyebrow{font-size:11px;font-weight:750;letter-spacing:.13em}
.portal-content{width:100%;max-width:1280px;margin-inline:auto;padding:28px clamp(24px,3vw,40px) 48px;min-width:0}
.identity{min-height:44px;max-width:240px;padding:4px;gap:10px;color:var(--v2-text);font-size:14px}
.identity i{width:36px;height:36px;flex:none;background:#e7eee8;color:var(--v2-primary);border:1px solid var(--v2-border)}
.identity span{display:block;width:auto;height:auto;background:none;color:inherit;border-radius:0;overflow-wrap:anywhere;text-align:left}
.account-menu{z-index:50;min-width:220px;max-width:min(320px,calc(100vw - 32px));box-shadow:var(--v2-overlay-shadow);padding:16px}
.account-menu a,.account-menu button{min-height:44px;display:flex;align-items:center}
.portal-menu,.v2-menu-close{display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--v2-text);cursor:pointer}
.v2-menu-close{color:#fff;position:absolute;right:8px;top:8px}
.v2-backdrop{position:fixed;inset:0;z-index:35;border:0;background:#090c1073;backdrop-filter:blur(3px)}
.v2-bottom-nav{display:none}
/* Shared primitives retain existing markup and status wording. */
.portal-card,.login-card{border:1px solid var(--v2-border);border-radius:var(--v2-panel-radius);background:var(--v2-surface);padding:24px;box-shadow:var(--v2-shadow)}
.portal-card+.portal-card{margin-top:16px}
.portal-card h2,.quick-actions h2{font-size:var(--v2-h3);letter-spacing:-.025em;line-height:1.35;margin-top:0}
.overview{background:var(--v2-shell-raised);border:1px solid #ae751c66;border-radius:16px;color:#fff;padding:24px}
.overview h2{color:#fff;font-size:24px;letter-spacing:-.03em}
.overview span,.overview .eyebrow{color:#d3e2d8}
.metric-grid article,.benefit-grid article{border-radius:12px;box-shadow:none;border-color:var(--v2-border)}
.metric-grid p,.metric-grid small{font-size:var(--v2-small)}
.metric-grid strong{font-size:24px;letter-spacing:-.035em}
.notice{border-radius:12px;background:var(--v2-success-bg);border-color:#b3d7bf;color:#244b31}
.notice.warn{background:var(--v2-warning-bg);color:var(--v2-warning);border-color:#e6cd96}
.badge{font-size:12px;line-height:1.4;padding:5px 9px;font-weight:700;background:var(--v2-neutral-bg);color:var(--v2-neutral)}
.badge[data-status="ACTIVE"],.badge[data-status="ACTIVE_UAT"],.badge[data-status="PAID"]{background:var(--v2-success-bg);color:var(--v2-success)}
.badge[data-status="APPROVED_AWAITING_MANUAL_PAYMENT"],.badge[data-status="AWAITING_MANUAL_PAYMENT"],.badge[data-status="UAT_ADDITIONAL_INFORMATION_REQUESTED"],.badge[data-status="REACTIVATION_PERIOD"]{background:var(--v2-warning-bg);color:var(--v2-warning)}
.badge[data-status="REJECTED"],.badge[data-status="SUSPENDED"],.badge[data-status="SUSPENDED_NON_PAYMENT"],.badge[data-status="TERMINATED"]{background:var(--v2-error-bg);color:var(--v2-error)}
.badge[data-status="RECEIVED"],.badge[data-status="UAT_INTERNAL_REVIEW"]{background:var(--v2-info-bg);color:var(--v2-info)}
.button{min-height:44px;justify-content:center;border-radius:8px;font-size:14px;font-weight:700;padding:11px 18px;line-height:1.4;transition:background var(--v2-motion),box-shadow var(--v2-motion)}
.button.primary,.button:not(.secondary):not(.danger){background:var(--v2-primary);color:#fff!important}
.button.primary:hover{background:var(--v2-primary-hover)}
.button.secondary{background:#fff;color:var(--v2-primary)!important;border-color:var(--v2-primary)}
.button.danger{background:var(--v2-error);color:#fff!important}
.button:disabled,button:disabled{cursor:not-allowed;opacity:.65}
.button[aria-busy="true"]{cursor:progress}
.text-button,.row-action{min-height:44px;padding:10px 4px}
label{font-size:14px;line-height:1.5;color:var(--v2-text)}
input,select,textarea{font-family:inherit;font-size:16px;min-height:44px;border-radius:8px;border-color:#a6b8ab;padding:10px 12px;max-width:100%}
input[type="checkbox"],input[type="radio"]{width:20px;min-height:20px;height:20px;vertical-align:middle;margin-right:8px;accent-color:var(--v2-primary)}
.form-hint,.filter-hint,.page-subtitle{color:var(--v2-secondary);font-size:14px}
.form-message{font-size:14px;overflow-wrap:anywhere}.form-message.error,.error{color:var(--v2-error)}
.doc-line,.document-list li{padding:14px 0;border-color:var(--v2-border);overflow-wrap:anywhere}
.table-wrap{max-width:100%;min-width:0;overscroll-behavior-inline:contain}.table-wrap td{padding:14px 12px}.table-wrap th{padding:12px;font-size:12px}
.empty-state,.empty-inline{padding:32px 24px;border-radius:12px;color:var(--v2-secondary);background:#fff}
.page-skeleton{border-radius:12px;min-height:180px}
.modal-card{max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);overflow:auto;box-shadow:var(--v2-overlay-shadow)}
.login-page{background:linear-gradient(135deg,#eaf1eb,#fff);gap:48px}.login-page>div>img{width:160px;height:160px}.login-card{padding:32px}.login-card .button{width:100%}.password button{min-width:44px}
.brand img{width:46px;height:46px}.site-header{background:#fff}.site-header nav a{min-height:44px;display:inline-flex;align-items:center}
.v2-header-logo{display:none;width:36px;height:36px;object-fit:contain;flex:none}
@media(max-width:1023px){
  .portal-shell aside{width:280px;max-width:calc(100vw - 48px);top:0;transform:translateX(-105%);transition:transform var(--v2-motion);padding-top:56px}
  .portal-shell aside.open{transform:translateX(0);z-index:40}
  .portal-menu,.v2-menu-close{display:inline-flex}
  .v2-header-logo{display:block}
  .portal-main{margin-left:0;width:100%}
  .portal-main>header{padding:16px 24px;min-height:84px}
  .portal-content{padding:24px}
  .portal-brand img{width:80px;height:80px;margin-inline:calc(50% - 40px)}
}
@media(min-width:768px) and (max-width:1023px){
  .metric-grid,.metric-grid.ops{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-shell aside nav{display:grid;overflow:visible}
}
@media(max-width:767px){
  .portal-main>header{padding:12px 16px;gap:8px;min-height:80px}
  .portal-main h1{font-size:20px;white-space:normal;overflow:visible;text-overflow:clip}
  .identity span{display:none}.identity{width:44px;min-width:44px}.identity-wrap{margin-left:auto}
  .portal-content{padding:20px 16px calc(var(--v2-bottom) + env(safe-area-inset-bottom,0px) + 24px)}
  .portal-card,.login-card{padding:20px}
  .overview{padding:20px}
  .v2-bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:25;min-height:var(--v2-bottom);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:var(--v2-shell);border-top:1px solid #ae751c66;box-shadow:0 -6px 24px #090c100f}
  .v2-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px;text-decoration:none;font-size:11px;font-weight:600;color:#c6d3ca;border-radius:8px}
  .v2-bottom-nav a.active{background:#ae751c21;color:var(--v2-gold-light)}
  .v2-bottom-nav a:focus-visible{outline-color:var(--v2-gold-light)!important;outline-offset:-3px}
  .member-grid,.profile-grid,.review-grid,.metric-grid,.metric-grid.three,.metric-grid.ops,.report-controls{grid-template-columns:minmax(0,1fr)}
  .portal-content>*{min-width:0;max-width:100%}.portal-content p,.portal-content dd{overflow-wrap:anywhere}
  .toolbar{align-items:stretch}.toolbar input{min-width:0;width:100%}.toolbar .button{margin-left:0}
  .login-page{padding:28px 16px;gap:24px}.login-page h1{font-size:28px}.login-page>div>img{width:96px;height:96px}
}
@media(min-width:390px) and (max-width:767px){.portal-content{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
