/* =========================================================
   Wonders Gate Partner Hub v4.2 — Phase 2 Premium Inner Pages
   UAE travel-tech / enterprise B2B interface
   ========================================================= */

:root{
  --p2-deep:#071b2a;
  --p2-deep-2:#0b2d43;
  --p2-blue:#0b7fb9;
  --p2-cyan:#25a9d7;
  --p2-teal:#1d9b88;
  --p2-gold:#e7aa55;
  --p2-gold-soft:#f5c97d;
  --p2-ink:#102d3d;
  --p2-muted:#6d8290;
  --p2-line:#dce7ec;
  --p2-soft:#f4f8fa;
  --p2-shadow:0 18px 55px rgba(7,35,52,.08);
  --p2-shadow-hover:0 25px 68px rgba(7,35,52,.14);
}

/* ---------- Inner page canvas ---------- */
body.portal-v4:not(.hero-page) .content{
  position:relative;
  padding-top:34px;
}
body.portal-v4:not(.hero-page) .content:before{
  content:"";
  position:fixed;
  inset:82px 0 auto 0;
  height:260px;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 12% 18%,rgba(36,169,215,.10),transparent 30%),
    radial-gradient(circle at 86% 12%,rgba(231,170,85,.09),transparent 24%),
    linear-gradient(180deg,#f3f8fb 0%,rgba(245,248,250,0) 100%);
}

/* Per-area accent system */
body.page-admin-visas,body.page-global-visas,body.page-uae-visas,body.page-visa-application,body.page-admin-visa-applications{--p2-accent:#0f88b5;--p2-accent2:#20a38c}
body.page-marketplace,body.page-admin-packages,body.page-admin-package-edit,body.page-package{--p2-accent:#0b76ae;--p2-accent2:#e7aa55}
body.page-service-orders,body.page-admin-service-orders,body.page-admin-service-order-edit{--p2-accent:#137aa9;--p2-accent2:#3e9e76}
body.page-bookings,body.page-admin-bookings,body.page-booking-edit,body.page-book{--p2-accent:#6b63b5;--p2-accent2:#168ab2}
body.page-wallet,body.page-statements,body.page-admin-topups,body.page-topup-edit{--p2-accent:#1b8e72;--p2-accent2:#0c789f}
body.page-profile,body.page-admin-profile,body.page-admin-settings,body.page-subagent-edit,body.page-admin-subagent-edit{--p2-accent:#0b759f;--p2-accent2:#8d6aae}
body.page-subagents,body.page-admin-subagents,body.page-admin-agents,body.page-markup{--p2-accent:#0b7b9e;--p2-accent2:#dc9f4c}
body.portal-v4{--p2-accent:var(--p2-blue);--p2-accent2:var(--p2-teal)}

/* ---------- Premium compact page banner ---------- */
.portal-v4:not(.hero-page) .page-head{
  position:relative;
  overflow:hidden;
  min-height:126px;
  padding:25px 28px!important;
  margin:0 0 24px;
  border-radius:24px;
  color:#fff;
  background:
    radial-gradient(circle at 89% 12%,rgba(255,255,255,.15),transparent 23%),
    radial-gradient(circle at 77% 85%,rgba(231,170,85,.14),transparent 25%),
    linear-gradient(120deg,var(--p2-deep) 0%,#0a354c 50%,color-mix(in srgb,var(--p2-accent) 72%,#08324a) 100%);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 18px 50px rgba(6,31,47,.15);
  align-items:center;
}
.portal-v4:not(.hero-page) .page-head:before{
  content:"";
  position:absolute;
  width:210px;height:210px;border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  right:-52px;top:-89px;
}
.portal-v4:not(.hero-page) .page-head:after{
  content:"";
  position:absolute;
  width:92px;height:92px;border-radius:50%;
  border:1px solid rgba(245,201,125,.30);
  right:70px;bottom:-50px;
}
.portal-v4:not(.hero-page) .page-head>div,
.portal-v4:not(.hero-page) .page-head>a,
.portal-v4:not(.hero-page) .page-head>span{
  position:relative;z-index:2;
}
.portal-v4:not(.hero-page) .page-head h1{
  color:#fff!important;
  font-size:clamp(27px,2.5vw,37px)!important;
  margin:5px 0 6px!important;
  letter-spacing:-.045em!important;
  line-height:1.05;
}
.portal-v4:not(.hero-page) .page-head p{color:#c4d7e1!important;max-width:760px;margin:0!important}
.portal-v4:not(.hero-page) .page-head .eyebrow{color:#f2c77f!important;letter-spacing:.15em}
.portal-v4:not(.hero-page) .page-head>.btn{
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.19)!important;
  backdrop-filter:blur(10px);
  box-shadow:none!important;
}
.portal-v4:not(.hero-page) .page-head>.btn.primary{
  background:linear-gradient(135deg,#e6a64f,#f4ca83)!important;
  color:#143244!important;border:0!important;
}

/* ---------- Filters / search ---------- */
.portal-v4 .filters,
.portal-v4 .search-box{
  position:relative;
}
.portal-v4 .filters{
  padding:14px;
  border:1px solid var(--p2-line);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 34px rgba(8,38,56,.05);
}
.portal-v4 .filters input,.portal-v4 .filters select,.portal-v4 .search-box input{
  min-height:45px;
  border-radius:12px;
}
.portal-v4 .search-box input{
  padding-left:16px;
  box-shadow:0 10px 30px rgba(7,37,54,.06);
}

/* ---------- Tours / package cards ---------- */
.portal-v4 .catalog-grid,
.portal-v4 .product-grid,
.portal-v4 .product-admin-grid{
  gap:22px!important;
}
.portal-v4 .catalog-card,
.portal-v4 .product-card,
.portal-v4 .admin-product-card{
  position:relative;
  overflow:hidden;
  border-radius:22px!important;
  border:1px solid rgba(211,224,231,.95)!important;
  background:#fff!important;
  box-shadow:0 14px 46px rgba(7,36,54,.07)!important;
  transform:translateZ(0);
}
.portal-v4 .catalog-card:hover,
.portal-v4 .product-card:hover,
.portal-v4 .admin-product-card:hover{
  transform:translateY(-7px);
  border-color:#bfd7e3!important;
  box-shadow:0 27px 70px rgba(7,36,54,.15)!important;
}
.portal-v4 .catalog-img,
.portal-v4 .product-card{isolation:isolate}
.portal-v4 .catalog-img:after,
.portal-v4 .product-card:before,
.portal-v4 .admin-product-card:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:3px;
  z-index:4;
  background:linear-gradient(90deg,var(--p2-accent),var(--p2-accent2),var(--p2-gold));
  opacity:.88;
}
.portal-v4 .catalog-img img,
.portal-v4 .product-image,
.portal-v4 .admin-product-card>img{
  height:215px!important;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.75,.2,1),filter .45s ease;
}
.portal-v4 .catalog-card:hover .catalog-img img,
.portal-v4 .product-card:hover .product-image,
.portal-v4 .admin-product-card:hover>img{
  transform:scale(1.045);
  filter:saturate(1.08) contrast(1.02);
}
.portal-v4 .catalog-body,
.portal-v4 .product-body,
.portal-v4 .admin-product-card .pad{padding:19px!important}
.portal-v4 .catalog-body h3,.portal-v4 .product-body h3,.portal-v4 .admin-product-card h3{
  font-size:18px;
  line-height:1.25;
  letter-spacing:-.02em;
  color:#112f40;
}
.portal-v4 .catalog-body p,.portal-v4 .product-body p,.portal-v4 .admin-product-card p{
  color:#748894;
  line-height:1.55;
}
.portal-v4 .type-pill{
  border:1px solid #d8e9f0;
  background:#eff8fb;
  color:#0b709d;
  font-weight:900;
}
.portal-v4 .featured-tag{
  top:14px;right:14px;
  background:linear-gradient(135deg,#dc9944,#f1c16f);
  color:#14303e;
  box-shadow:0 8px 22px rgba(185,126,49,.28);
}
.portal-v4 .catalog-price,
.portal-v4 .price-row{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e9eff2;
}
.portal-v4 .catalog-price strong,
.portal-v4 .price strong{
  color:#0b638e!important;
  letter-spacing:-.025em;
}
.portal-v4 .catalog-card .btn.wide,
.portal-v4 .card-actions .btn{
  min-height:42px;
  border-radius:11px;
}

/* Admin catalogue feels like a product control board */
.page-admin-packages .table-card,
.page-admin-visas .product-admin-grid{margin-top:6px}
.page-admin-packages .thumb{
  width:86px;height:62px;border-radius:11px;box-shadow:0 7px 18px rgba(8,39,57,.10);
}

/* ---------- Visa cards ---------- */
.page-global-visas .catalog-card,
.page-uae-visas .catalog-card,
.page-admin-visas .admin-product-card{
  background:
    linear-gradient(180deg,rgba(240,249,252,.5),#fff 35%)!important;
}
.page-global-visas .catalog-card .catalog-body,
.page-uae-visas .catalog-card .catalog-body{position:relative}
.page-global-visas .catalog-card .catalog-price,
.page-uae-visas .catalog-card .catalog-price{
  background:#f6fafc;
  margin:15px -19px -19px;
  padding:16px 19px 18px;
  border-top:1px solid #e3edf2;
}
.page-global-visas .catalog-card .catalog-price small,
.page-uae-visas .catalog-card .catalog-price small{
  text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:800
}

/* ---------- Product / service detail ---------- */
.portal-v4 .detail-hero{
  border-radius:25px!important;
  border:1px solid #d7e5eb!important;
  box-shadow:0 22px 65px rgba(7,37,55,.10);
  overflow:hidden;
}
.portal-v4 .detail-hero>img{
  min-height:410px;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.portal-v4 .detail-hero:hover>img{transform:scale(1.025)}
.portal-v4 .detail-hero>div{padding:36px!important}
.portal-v4 .detail-hero h1{font-size:clamp(30px,3vw,43px)!important;letter-spacing:-.045em}
.portal-v4 .spec-grid span{
  border-radius:14px!important;
  background:linear-gradient(180deg,#fbfdfe,#f5f9fb)!important;
}
.portal-v4 .side-summary{
  border-top:3px solid var(--p2-gold)!important;
  box-shadow:0 18px 52px rgba(7,37,55,.09)!important;
}
.portal-v4 .summary-line.total{
  padding:15px 0;
  color:#0b698e;
}
.portal-v4 .notice-box{
  border-left:0!important;
  border:1px solid #d9eaf1;
  border-radius:12px!important;
  background:#f1f9fc!important;
}

/* ---------- Service orders / bookings / data tables ---------- */
.portal-v4 .table-card{
  position:relative;
  border-radius:20px!important;
  border:1px solid #d8e5eb!important;
  background:#fff!important;
  box-shadow:0 16px 50px rgba(8,38,56,.065)!important;
}
.portal-v4 .table-card table{
  border-collapse:separate!important;
  border-spacing:0!important;
}
.portal-v4 .table-card thead th{
  position:sticky;
  top:0;
  z-index:2;
  padding-top:14px!important;
  padding-bottom:14px!important;
  background:linear-gradient(180deg,#f6f9fb,#f0f5f7)!important;
  border-bottom:1px solid #dce7ec!important;
  color:#5c7583!important;
  font-size:9px!important;
  letter-spacing:.105em!important;
}
.portal-v4 .table-card tbody td{
  padding-top:15px!important;
  padding-bottom:15px!important;
  border-bottom:1px solid #edf2f4!important;
  transition:background .18s ease,transform .18s ease;
}
.portal-v4 .table-card tbody tr:hover td{background:#f7fbfd!important}
.portal-v4 .table-card tbody tr:last-child td{border-bottom:0!important}
.portal-v4 .table-card td>strong:first-child{color:#15374a}
.portal-v4 .table-card td small{line-height:1.45}
.portal-v4 .table-card .btn.small{
  border-radius:9px;
  min-height:31px;
  padding:6px 10px;
}
.portal-v4 .table-card .inline{align-items:center;flex-wrap:wrap}
.portal-v4 .table-card.is-scrollable:after{
  content:"Scroll →";
  position:sticky;
  right:10px;
  bottom:8px;
  display:none;
  float:right;
  padding:5px 8px;
  border-radius:99px;
  background:rgba(7,31,47,.82);
  color:#fff;
  font-size:8px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.page-service-orders .table-card,
.page-admin-service-orders .table-card,
.page-bookings .table-card,
.page-admin-bookings .table-card{
  border-top:3px solid color-mix(in srgb,var(--p2-accent) 68%,#fff)!important;
}

/* Status system */
.portal-v4 .badge{
  padding:6px 9px!important;
  border-radius:999px!important;
  font-size:9px!important;
  font-weight:900!important;
  text-transform:uppercase;
  letter-spacing:.055em!important;
  border:1px solid transparent;
}
.portal-v4 .badge.pending{background:#fff5df!important;color:#986318!important;border-color:#f4dfb8}
.portal-v4 .badge.confirmed,.portal-v4 .badge.approved,.portal-v4 .badge.completed,.portal-v4 .badge.active{background:#eaf7f1!important;color:#1c775b!important;border-color:#d2ecdf}
.portal-v4 .badge.processing,.portal-v4 .badge.under_review,.portal-v4 .badge.submitted{background:#eaf5fb!important;color:#176d93!important;border-color:#cee6f2}
.portal-v4 .badge.cancelled,.portal-v4 .badge.rejected,.portal-v4 .badge.suspended,.portal-v4 .badge.inactive{background:#fceceb!important;color:#a33c37!important;border-color:#f3d4d1}
.portal-v4 .badge.refunded{background:#f2eefb!important;color:#7056a4!important;border-color:#e0d8f2}

/* ---------- Forms ---------- */
.portal-v4 form.card.form-grid,
.portal-v4 form.card.form-stack,
.portal-v4 .card .form-grid,
.portal-v4 .card .form-stack{
  gap:18px!important;
}
.portal-v4 form.card.form-grid,
.portal-v4 form.card.form-stack{
  padding:28px!important;
  border-top:3px solid var(--p2-accent)!important;
}
.portal-v4 label{
  color:#4f6978!important;
  font-size:10px!important;
  letter-spacing:.045em;
  text-transform:uppercase;
  font-weight:850!important;
}
.portal-v4 label small{
  text-transform:none;
  letter-spacing:0;
  color:#8798a1;
  font-weight:600;
}
.portal-v4 input,
.portal-v4 select,
.portal-v4 textarea{
  min-height:44px;
  padding:11px 13px!important;
  border:1px solid #d7e4ea!important;
  border-radius:12px!important;
  background:#f9fbfc!important;
  color:#173546;
}
.portal-v4 textarea{min-height:108px}
.portal-v4 input:hover,.portal-v4 select:hover,.portal-v4 textarea:hover{border-color:#c1d7e2!important}
.portal-v4 input:focus,.portal-v4 select:focus,.portal-v4 textarea:focus{
  background:#fff!important;
  border-color:color-mix(in srgb,var(--p2-accent) 70%,#93c9df)!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--p2-accent) 10%,transparent)!important;
}
.portal-v4 input[type=file]{
  padding:8px!important;
  min-height:46px;
}
.portal-v4 input[type=file]::file-selector-button{
  border:0;
  border-radius:9px;
  padding:8px 11px;
  margin-right:10px;
  background:#eaf4f8;
  color:#155f80;
  font-weight:800;
  cursor:pointer;
}
.portal-v4 input[disabled]{
  background:#eef3f5!important;
  color:#78909d;
}
.portal-v4 .check{
  text-transform:none!important;
  letter-spacing:0!important;
  background:#f5f9fb;
  border:1px solid #dfebf0;
  border-radius:12px;
  padding:11px 13px;
}
.portal-v4 .check input{min-height:0;width:auto}

/* Form action buttons */
.portal-v4 form>.btn.primary:last-child,
.portal-v4 form>.btn.primary.span2:last-child{
  min-height:47px;
  font-size:12px;
  letter-spacing:.02em;
  background:linear-gradient(135deg,var(--p2-accent),color-mix(in srgb,var(--p2-accent) 70%,#083754))!important;
  box-shadow:0 11px 25px color-mix(in srgb,var(--p2-accent) 20%,transparent)!important;
}

/* ---------- Profile / settings ---------- */
.page-profile .grid2,
.page-admin-profile .grid2,
.page-admin-settings .grid2{gap:22px}
.page-profile .grid2>.card,
.page-admin-profile .grid2>.card,
.page-admin-settings .grid2>.card{
  padding:27px!important;
}
.page-profile .grid2>.card h2,
.page-admin-profile .grid2>.card h2,
.page-admin-settings .grid2>.card h2{
  font-size:20px;
  letter-spacing:-.025em;
  color:#15384a;
}
.page-profile .grid2>.card:nth-child(2),
.page-admin-profile .grid2>.card:nth-child(2){
  background:
    radial-gradient(circle at 90% 10%,rgba(36,169,215,.08),transparent 26%),
    linear-gradient(180deg,#fff,#f7fbfc)!important;
}
.page-admin-settings code{
  display:block;
  padding:9px 10px!important;
  margin-top:4px;
  border-radius:9px!important;
  background:#eef5f8!important;
  color:#28566d;
}

/* ---------- Wallet / financial ---------- */
.page-wallet .kpis .kpi,
.page-statements .table-card,
.page-admin-topups .table-card{
  position:relative;
  overflow:hidden;
}
.page-wallet .kpis .kpi:before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(var(--p2-teal),var(--p2-blue));
}
.page-wallet .bank-box{
  background:linear-gradient(135deg,#f3faf8,#f7fbfd)!important;
  border:1px solid #d4e9e2!important;
  border-radius:14px!important;
  padding:17px!important;
}

/* ---------- Network / clients / markup ---------- */
.page-subagents .metric-grid .metric,
.page-admin-subagents .table-card,
.page-admin-agents .table-card{
  animation-duration:.45s;
}
.portal-v4 .subagent-selector a{
  position:relative;
  border-radius:14px!important;
  background:#fff;
  transition:.2s ease;
}
.portal-v4 .subagent-selector a:hover{transform:translateX(3px);box-shadow:0 9px 24px rgba(8,39,57,.07)}
.portal-v4 .subagent-selector a.active{
  background:linear-gradient(135deg,#edf8fb,#f5fbf8)!important;
  box-shadow:inset 3px 0 0 var(--p2-accent);
}

/* ---------- Notifications / empty states ---------- */
.portal-v4 .notification-row{
  padding:15px 12px!important;
  border-radius:12px;
  margin-bottom:5px;
}
.portal-v4 .notification-row.unread{
  background:linear-gradient(90deg,#edf8fc,#f8fcfd)!important;
  border-left:3px solid var(--p2-accent)!important;
}
.portal-v4 .empty-state,.portal-v4 .empty{
  border-radius:20px!important;
  background:
    radial-gradient(circle at 50% 0,rgba(37,169,215,.09),transparent 38%),
    #fff!important;
}

/* ---------- Buttons ---------- */
.portal-v4 .btn{
  min-height:39px;
  border-radius:11px!important;
  font-weight:850!important;
}
.portal-v4 .btn.primary{
  background:linear-gradient(135deg,var(--p2-accent),color-mix(in srgb,var(--p2-accent) 70%,#073552))!important;
}
.portal-v4 .btn.secondary:hover{
  color:#0c678e!important;
  border-color:#bdd7e2!important;
  background:#f7fbfd!important;
}
.portal-v4 .btn.danger{
  background:#fff1f0!important;
  border:1px solid #f1d1ce!important;
  color:#a54039!important;
}
.portal-v4 .btn.danger:hover{background:#fce5e2!important}

/* ---------- Reveal motion ---------- */
.v4-reveal{
  opacity:0;
  transform:translateY(15px);
  transition:
    opacity .52s cubic-bezier(.2,.75,.2,1) var(--reveal-delay,0ms),
    transform .52s cubic-bezier(.2,.75,.2,1) var(--reveal-delay,0ms);
}
.v4-reveal.v4-visible{
  opacity:1;
  transform:none;
}

/* ---------- Responsive ---------- */
@media(max-width:1150px){
  .portal-v4 .catalog-grid,.portal-v4 .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .portal-v4 .product-admin-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:850px){
  .portal-v4:not(.hero-page) .page-head{
    padding:22px!important;
    min-height:0;
  }
  .portal-v4:not(.hero-page) .page-head:before,
  .portal-v4:not(.hero-page) .page-head:after{opacity:.55}
  .portal-v4 .detail-hero>div{padding:24px!important}
  .portal-v4 .detail-hero>img{min-height:260px}
  .portal-v4 .table-card.is-scrollable:after{display:block}
}
@media(max-width:700px){
  body.portal-v4:not(.hero-page) .content{padding-top:20px}
  .portal-v4:not(.hero-page) .page-head{
    display:block!important;
    border-radius:19px;
  }
  .portal-v4:not(.hero-page) .page-head>.btn{margin-top:16px;width:100%}
  .portal-v4 .catalog-grid,.portal-v4 .product-grid,.portal-v4 .product-admin-grid,.portal-v4 .product-admin-grid.compact{grid-template-columns:1fr!important}
  .portal-v4 .catalog-img img,.portal-v4 .product-image,.portal-v4 .admin-product-card>img{height:205px!important}
  .portal-v4 form.card.form-grid,.portal-v4 form.card.form-stack{padding:20px!important}
  .portal-v4 .filters{padding:10px}
  .portal-v4 .filters .btn{width:100%}
  .portal-v4 .detail-hero h1{font-size:29px!important}
}
@media(prefers-reduced-motion:reduce){
  .v4-reveal,.v4-reveal.v4-visible{opacity:1!important;transform:none!important;transition:none!important}
  .portal-v4 .catalog-card,.portal-v4 .product-card,.portal-v4 .admin-product-card,.portal-v4 .detail-hero>img{transition:none!important}
}


/* ---------- Premium compact corporate footer ---------- */
.portal-footer{
  margin-top:34px;
  background:
    radial-gradient(circle at 18% 0,rgba(28,139,184,.14),transparent 28%),
    linear-gradient(135deg,#071d2c,#0a2e43 58%,#0c3c53);
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 -10px 32px rgba(6,29,43,.06);
  overflow:hidden;
}
.portal-footer-inner{
  min-height:72px;
  max-width:1600px;
  margin:0 auto;
  padding:12px 30px;
  display:grid;
  grid-template-columns:minmax(270px,1.25fr) auto minmax(210px,.75fr);
  align-items:center;
  gap:24px;
}
.portal-footer-brand{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.portal-footer-mark{
  width:35px;
  height:35px;
  flex:0 0 35px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:linear-gradient(135deg,#f0b75f,#f6d58e);
  color:#103246;
  font-size:10px;
  font-weight:950;
  letter-spacing:.06em;
  box-shadow:0 7px 18px rgba(225,165,77,.20);
}
.portal-footer-brand strong,
.portal-footer-brand span{
  display:block;
}
.portal-footer-brand strong{
  color:#fff;
  font-size:11px;
  line-height:1.3;
  letter-spacing:.01em;
}
.portal-footer-brand span{
  margin-top:2px;
  color:#9db8c6;
  font-size:8.5px;
  letter-spacing:.02em;
}
.portal-footer-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
}
.portal-footer-links a{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.045);
  color:#d8e8ef!important;
  font-size:8px;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}
.portal-footer-links a:hover{
  color:#fff!important;
  background:rgba(255,255,255,.10);
  border-color:rgba(242,191,111,.35);
  transform:translateY(-1px);
}
.portal-footer-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  color:#7897a7;
  font-size:8px;
  line-height:1.35;
  text-align:right;
}
.portal-footer-meta span:first-child{
  color:#b7ccd6;
  font-weight:700;
}
@media(max-width:980px){
  .portal-footer-inner{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:9px;
    padding:15px 20px;
  }
  .portal-footer-brand{justify-content:center}
  .portal-footer-meta{align-items:center;text-align:center}
}
@media(max-width:560px){
  .portal-footer{
    margin-top:24px;
  }
  .portal-footer-inner{
    min-height:0;
    padding:16px 14px;
  }
  .portal-footer-brand{
    align-items:flex-start;
  }
  .portal-footer-links{
    gap:6px;
  }
  .portal-footer-links a{
    min-height:28px;
    padding:5px 9px;
  }
}

/* Public login / application mini footer */
.public-mini-footer{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:12;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:7px 18px;
  color:rgba(255,255,255,.72);
  background:rgba(4,22,34,.48);
  border-top:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-size:9px;
}
.public-mini-footer a{
  color:#fff!important;
  font-weight:750;
  opacity:.88;
}
.public-mini-footer a:hover{opacity:1}
.v4-login-page,.register-v4-page{padding-bottom:40px!important}

@media(max-width:900px){
  .portal-footer-inner{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:7px;
    padding:12px 18px;
  }
  .portal-footer-meta{align-items:center;text-align:center}
  .portal-footer{margin-top:20px}
}
@media(max-width:560px){
  .portal-footer-links{gap:7px 12px}
  .portal-footer-brand span{font-size:8px}
  .public-mini-footer{
    position:static;
    flex-wrap:wrap;
    min-height:0;
    background:#082638;
  }
  .v4-login-page,.register-v4-page{padding-bottom:0!important}
}

/* ---------- Legal pages ---------- */
.legal-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 8%,rgba(36,169,215,.10),transparent 28%),
    radial-gradient(circle at 88% 0,rgba(231,170,85,.10),transparent 24%),
    #f4f8fa;
}
.legal-shell{
  width:min(980px,calc(100% - 32px));
  margin:0 auto;
  padding:42px 0 60px;
}
.legal-back{
  display:inline-flex;
  margin-bottom:14px;
  font-size:11px;
  font-weight:800;
  color:#1b6f95!important;
}
.legal-card{
  background:#fff;
  border:1px solid #dce7ec;
  border-radius:24px;
  padding:34px;
  box-shadow:0 20px 62px rgba(7,35,52,.08);
}
.legal-card h1{
  margin:7px 0 5px;
  font-size:38px;
  letter-spacing:-.04em;
  color:#112f40;
}
.legal-card h2{
  margin:26px 0 7px;
  font-size:17px;
  color:#17394b;
}
.legal-card p{color:#657e8c;line-height:1.75}
.legal-updated{font-size:11px!important;color:#91a1aa!important}
.legal-note{
  margin-top:28px;
  padding:15px 16px;
  border:1px solid #eadfcb;
  border-radius:13px;
  background:#fffaf2;
  color:#7a6545;
  font-size:11px;
  line-height:1.6;
}
@media(max-width:600px){
  .legal-shell{padding-top:24px}
  .legal-card{padding:23px}
  .legal-card h1{font-size:30px}
}
