/* Sweet Billing v2.0.21 — Customer Portal follows Administrator Visual Settings. */
body.portal-visual-sync{
  --portal-sync-radius:18px;
  --portal-sync-shadow:0 12px 30px rgba(15,23,42,.08);
  --portal-sync-gap:12px;
}
body.portal-visual-sync .portal-card,
body.portal-visual-sync .portal-admin-card,
body.portal-visual-sync .portal-live-metric,
body.portal-visual-sync .portal-live-chart-card,
body.portal-visual-sync .portal-payment-tile,
body.portal-visual-sync .portal-bulletin,
body.portal-visual-sync .portal-bulletin-links a{
  border-radius:var(--portal-sync-radius);
  box-shadow:var(--portal-sync-shadow);
}
body.portal-visual-sync .portal-admin-grid{gap:var(--portal-sync-gap)}
body.portal-visual-sync .portal-admin-grid-five{grid-template-columns:repeat(var(--portal-admin-columns,5),minmax(0,1fr))}

/* Dashboard design mappings. */
body.portal-preset-sweet-current{
  --portal-sync-radius:18px;
  --portal-sync-shadow:0 12px 30px rgba(15,23,42,.10);
  --portal-sync-gap:12px;
}
body.portal-preset-sweet-current .portal-admin-card{
  background:linear-gradient(145deg,var(--portal-card),var(--portal-card-soft));
}
body.portal-preset-sweet-current .portal-admin-card:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(145deg,rgba(var(--portal-accent-rgb),.035),transparent 55%);
}

body.portal-preset-classic-tiles{
  --portal-sync-radius:10px;
  --portal-sync-shadow:0 4px 14px rgba(15,23,42,.06);
  --portal-sync-gap:10px;
}
body.portal-preset-classic-tiles .portal-admin-card{border-left:4px solid rgba(var(--portal-accent-rgb),.72)}
body.portal-preset-classic-tiles .portal-card,
body.portal-preset-classic-tiles .portal-admin-card,
body.portal-preset-classic-tiles .portal-live-metric,
body.portal-preset-classic-tiles .portal-live-chart-card{background:var(--portal-card)}

body.portal-preset-executive-finance{
  --portal-sync-radius:16px;
  --portal-sync-shadow:0 12px 30px rgba(31,41,55,.07);
  --portal-sync-gap:16px;
}
body.portal-preset-executive-finance .portal-admin-card small{letter-spacing:.09em}
body.portal-preset-executive-finance .portal-admin-card strong{font-size:1.65rem}
html[data-bs-theme="light"] body.portal-preset-executive-finance .portal-card,
html[data-bs-theme="light"] body.portal-preset-executive-finance .portal-admin-card,
html[data-bs-theme="light"] body.portal-preset-executive-finance .portal-live-metric,
html[data-bs-theme="light"] body.portal-preset-executive-finance .portal-live-chart-card{background:linear-gradient(110deg,#fff,#f8faff)}

body.portal-preset-noc-dark{
  --portal-sync-radius:10px;
  --portal-sync-shadow:0 8px 24px rgba(2,8,23,.16);
  --portal-sync-gap:9px;
}
html[data-bs-theme="dark"] body.portal-preset-noc-dark{
  --portal-bg:#040b13;--portal-surface:#071525;--portal-surface-2:#0a1b2b;
  --portal-border:#18324a;--portal-card:#071525;--portal-card-soft:#0a1b2b;
  --portal-muted:#7dd3fc;--portal-text:#dbeafe;
}
html[data-bs-theme="dark"] body.portal-preset-noc-dark .portal-body,
html[data-bs-theme="dark"] body.portal-preset-noc-dark{background:radial-gradient(circle at top right,#102c43 0,#07111d 42%,#040b13 100%)}
html[data-bs-theme="dark"] body.portal-preset-noc-dark .portal-admin-card{background:#0a1b2b;border-color:#18364f}
html[data-bs-theme="dark"] body.portal-preset-noc-dark .portal-admin-card:hover:is(a){border-color:rgba(var(--portal-accent-rgb),.7);box-shadow:0 0 18px rgba(var(--portal-accent-rgb),.18)}
html[data-bs-theme="light"] body.portal-preset-noc-dark{
  --portal-bg:#eef6fb;--portal-surface:#fff;--portal-surface-2:#f8fbff;
  --portal-border:#cbdceb;--portal-card:#fff;--portal-card-soft:#f8fbff;
}

body.portal-preset-compact-analytics{
  --portal-sync-radius:10px;
  --portal-sync-shadow:none;
  --portal-sync-gap:8px;
}
body.portal-preset-compact-analytics .portal-admin-card{min-height:102px;padding:12px}
body.portal-preset-compact-analytics .portal-admin-card>i{width:42px;height:42px;flex-basis:42px;border-radius:10px}
body.portal-preset-compact-analytics .portal-admin-card strong{font-size:1.25rem;margin-top:7px}
body.portal-preset-compact-analytics .portal-admin-card span{margin-top:5px}

body.portal-preset-informative-isp{
  --portal-sync-radius:8px;
  --portal-sync-shadow:0 3px 10px rgba(15,23,42,.06);
  --portal-sync-gap:9px;
}
body.portal-preset-informative-isp .portal-admin-card{min-height:96px;padding:11px 12px}
body.portal-preset-informative-isp .portal-admin-card>i{width:42px;height:42px;flex-basis:42px;border-radius:6px;color:#fff;background:var(--portal-accent)}
body.portal-preset-informative-isp .portal-admin-card strong{font-size:1.28rem;margin-top:5px}

body.portal-preset-soft-business{
  --portal-sync-radius:10px;
  --portal-sync-shadow:0 6px 18px rgba(15,23,42,.055);
  --portal-sync-gap:11px;
}
body.portal-preset-soft-business .portal-admin-card{min-height:100px;padding:13px 14px}
body.portal-preset-soft-business .portal-admin-card>i{border-radius:8px}

/* Global card-size mapping. */
body.portal-size-compact{--portal-sync-gap:9px}
body.portal-size-compact .portal-admin-card{min-height:100px;padding:13px}
body.portal-size-compact .portal-admin-card>i{width:42px;height:42px;flex-basis:42px;border-radius:12px;font-size:1.08rem}
body.portal-size-compact .portal-admin-card strong{font-size:1.2rem;margin-top:7px}
body.portal-size-compact .portal-admin-card span{margin-top:5px}
body.portal-size-compact .portal-card{padding:14px}
body.portal-size-large{--portal-sync-gap:16px}
body.portal-size-large .portal-admin-card{min-height:164px;padding:22px}
body.portal-size-large .portal-admin-card>i{width:60px;height:60px;flex-basis:60px;border-radius:18px;font-size:1.55rem}
body.portal-size-large .portal-admin-card strong{font-size:1.72rem;margin-top:14px}
body.portal-size-large .portal-card{padding:22px}

/* Global view mapping. */
body.portal-view-list .portal-admin-grid{grid-template-columns:1fr!important}
body.portal-view-list .portal-admin-card{min-height:96px}
body.portal-view-carousel .portal-admin-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}
body.portal-view-carousel .portal-admin-card{flex:0 0 min(330px,82vw);scroll-snap-align:start}

/* Administrator left-menu design mappings for the Customer Portal sidebar. */
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-sidebar{
  background:linear-gradient(180deg,#f8fbff 0%,#eef4fb 100%);border-right-color:#d8e2ee;box-shadow:7px 0 22px rgba(15,23,42,.06)
}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-sidebar-head{border-bottom-color:#d8e2ee}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-brand{color:#17324a}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-brand-copy small{color:#64748b}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-sidebar-collapse{background:#fff;color:#526174;border:1px solid #d8e2ee}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-menu a{color:#355064;border-radius:0;border-bottom:1px solid #e7edf3}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-menu{padding-left:0;padding-right:0;gap:0}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-menu a:hover{background:#eef4f9;color:#102b40}
html[data-bs-theme="light"] body.portal-sidebar-style-current-dark .portal-menu a.active{background:#244963;color:#fff;box-shadow:none}

body.portal-sidebar-style-navy-modern .portal-sidebar{background:linear-gradient(180deg,#12243b 0%,#0b1728 100%);border-right-color:rgba(148,163,184,.13);box-shadow:8px 0 28px rgba(15,23,42,.12)}
body.portal-sidebar-style-navy-modern .portal-menu{padding:.45rem .58rem 1rem;gap:3px}
body.portal-sidebar-style-navy-modern .portal-menu a{border-radius:10px;color:#cbd5e1}
body.portal-sidebar-style-navy-modern .portal-menu a:hover{background:rgba(96,165,250,.12);color:#fff}
body.portal-sidebar-style-navy-modern .portal-menu a.active{background:linear-gradient(135deg,var(--portal-accent),color-mix(in srgb,var(--portal-accent) 72%,#60a5fa));color:#fff}
html[data-bs-theme="light"] body.portal-sidebar-style-navy-modern .portal-sidebar{background:linear-gradient(180deg,#edf4ff 0%,#dfe9f7 100%);border-right-color:#d5e0ee}
html[data-bs-theme="light"] body.portal-sidebar-style-navy-modern .portal-brand{color:#132d44}
html[data-bs-theme="light"] body.portal-sidebar-style-navy-modern .portal-brand-copy small{color:#5d7388}
html[data-bs-theme="light"] body.portal-sidebar-style-navy-modern .portal-menu a{color:#31485f}
html[data-bs-theme="light"] body.portal-sidebar-style-navy-modern .portal-menu a:hover{background:#dfeaf7;color:#112b41}
html[data-bs-theme="light"] body.portal-sidebar-style-navy-modern .portal-menu a.active{background:color-mix(in srgb,var(--portal-accent) 14%,#fff);color:var(--portal-accent);box-shadow:inset 3px 0 var(--portal-accent)}

body.portal-sidebar-style-clean-light .portal-sidebar{background:#f8fafc;border-right-color:#dfe5ec;box-shadow:6px 0 22px rgba(15,23,42,.06)}
body.portal-sidebar-style-clean-light .portal-sidebar-head{border-bottom-color:#e5e7eb}
body.portal-sidebar-style-clean-light .portal-brand{color:#172033}
body.portal-sidebar-style-clean-light .portal-brand-copy small{color:#64748b}
body.portal-sidebar-style-clean-light .portal-sidebar-collapse{background:#fff;color:#526174;border:1px solid #d9e0e8}
body.portal-sidebar-style-clean-light .portal-menu a{color:#526174;border-radius:9px}
body.portal-sidebar-style-clean-light .portal-menu a:hover{background:#eef3f9;color:#172033}
body.portal-sidebar-style-clean-light .portal-menu a.active{background:color-mix(in srgb,var(--portal-accent) 10%,#fff);color:var(--portal-accent);box-shadow:inset 3px 0 var(--portal-accent)}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-sidebar{background:linear-gradient(180deg,#1b2027,#11161d);border-right-color:#303944;box-shadow:7px 0 24px rgba(0,0,0,.24)}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-sidebar-head{border-bottom-color:#303944}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-brand{color:#f3f7fb}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-brand-copy small{color:#9fb0c1}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-sidebar-collapse{background:#252c34;color:#cbd5e1;border-color:#39434f}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-menu a{color:#cbd5e1}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-menu a:hover{background:#252d36;color:#fff}
html[data-bs-theme="dark"] body.portal-sidebar-style-clean-light .portal-menu a.active{background:var(--portal-accent);color:#fff;box-shadow:none}

body.portal-sidebar-style-glass-accent .portal-sidebar{background:radial-gradient(circle at 15% 5%,color-mix(in srgb,var(--portal-accent) 72%,#312e81),#111827 46%,#07111d 100%);border-right-color:rgba(255,255,255,.12);box-shadow:10px 0 32px rgba(15,23,42,.18)}
body.portal-sidebar-style-glass-accent .portal-menu a{border:1px solid transparent;border-radius:12px;color:rgba(255,255,255,.78);background:rgba(255,255,255,.025);backdrop-filter:blur(8px)}
body.portal-sidebar-style-glass-accent .portal-menu a:hover{background:rgba(255,255,255,.09);color:#fff}
body.portal-sidebar-style-glass-accent .portal-menu a.active{background:rgba(255,255,255,.17);border-color:rgba(255,255,255,.22);color:#fff;box-shadow:inset 3px 0 #fff,0 8px 22px rgba(0,0,0,.12)}
html[data-bs-theme="light"] body.portal-sidebar-style-glass-accent .portal-sidebar{background:radial-gradient(circle at 12% 3%,color-mix(in srgb,var(--portal-accent) 18%,#e8f0fb),#edf3fb 48%,#e1eaf5 100%);border-right-color:#d4deea}
html[data-bs-theme="light"] body.portal-sidebar-style-glass-accent .portal-brand{color:#17324a}
html[data-bs-theme="light"] body.portal-sidebar-style-glass-accent .portal-brand-copy small{color:#63788c}
html[data-bs-theme="light"] body.portal-sidebar-style-glass-accent .portal-menu a{color:#41566d;background:rgba(255,255,255,.42);border-color:rgba(180,194,209,.18)}
html[data-bs-theme="light"] body.portal-sidebar-style-glass-accent .portal-menu a:hover{background:rgba(255,255,255,.82);color:#17324a}
html[data-bs-theme="light"] body.portal-sidebar-style-glass-accent .portal-menu a.active{background:color-mix(in srgb,var(--portal-accent) 14%,#fff);color:var(--portal-accent);box-shadow:inset 3px 0 var(--portal-accent),0 8px 20px rgba(15,23,42,.08)}

body.portal-sidebar-style-compact-pro .portal-sidebar{background:#252a30;border-right-color:#30363d;box-shadow:5px 0 18px rgba(0,0,0,.12)}
body.portal-sidebar-style-compact-pro .portal-sidebar-head{height:58px;padding-left:10px;padding-right:10px}
body.portal-sidebar-style-compact-pro .portal-menu{padding:.25rem .38rem .75rem;gap:1px}
body.portal-sidebar-style-compact-pro .portal-menu a{height:36px;border-radius:6px;color:#cbd0d6;font-size:.82rem;padding:0 10px}
body.portal-sidebar-style-compact-pro .portal-menu a:hover{background:#343b43;color:#fff}
body.portal-sidebar-style-compact-pro .portal-menu a.active{background:var(--portal-accent);color:#fff;box-shadow:inset 3px 0 rgba(255,255,255,.65)}
html[data-bs-theme="light"] body.portal-sidebar-style-compact-pro .portal-sidebar{background:#f5f7fa;border-right-color:#d8e0e8;box-shadow:6px 0 18px rgba(15,23,42,.05)}
html[data-bs-theme="light"] body.portal-sidebar-style-compact-pro .portal-brand{color:#172033}
html[data-bs-theme="light"] body.portal-sidebar-style-compact-pro .portal-brand-copy small{color:#64748b}
html[data-bs-theme="light"] body.portal-sidebar-style-compact-pro .portal-menu a{color:#4e5c6c}
html[data-bs-theme="light"] body.portal-sidebar-style-compact-pro .portal-menu a:hover{background:#ebf1f6;color:#172033}
html[data-bs-theme="light"] body.portal-sidebar-style-compact-pro .portal-menu a.active{background:var(--portal-accent);color:#fff}

body.portal-sidebar-style-classic-isp-menu .portal-sidebar{background:#f7f8fa;border-right-color:#d7dde4;box-shadow:5px 0 18px rgba(15,23,42,.07)}
body.portal-sidebar-style-classic-isp-menu .portal-menu{padding:.35rem 0 1rem;gap:0}
body.portal-sidebar-style-classic-isp-menu .portal-menu a{height:48px;margin:0;border-radius:0;color:#17344a;border-bottom:1px solid #e6eaee;background:#fff}
body.portal-sidebar-style-classic-isp-menu .portal-menu a:hover{background:#edf2f6;color:#102b40}
body.portal-sidebar-style-classic-isp-menu .portal-menu a.active{background:#244963;color:#fff;box-shadow:none}
body.portal-sidebar-style-classic-isp-menu .portal-brand{color:#17324a}
body.portal-sidebar-style-classic-isp-menu .portal-brand-copy small{color:#64748b}
html[data-bs-theme="dark"] body.portal-sidebar-style-classic-isp-menu .portal-sidebar{background:linear-gradient(180deg,#142232,#0d1620);border-right-color:#203446;box-shadow:7px 0 24px rgba(0,0,0,.24)}
html[data-bs-theme="dark"] body.portal-sidebar-style-classic-isp-menu .portal-brand{color:#f4f8fb}
html[data-bs-theme="dark"] body.portal-sidebar-style-classic-isp-menu .portal-brand-copy small{color:#9ab0c3}
html[data-bs-theme="dark"] body.portal-sidebar-style-classic-isp-menu .portal-menu a{background:#101b27;color:#c5d2de;border-bottom-color:rgba(255,255,255,.04)}
html[data-bs-theme="dark"] body.portal-sidebar-style-classic-isp-menu .portal-menu a:hover{background:#162838;color:#fff}
html[data-bs-theme="dark"] body.portal-sidebar-style-classic-isp-menu .portal-menu a.active{background:#244963;color:#fff}

/* Login uses the same Administrator preset language without changing login behavior. */
body.portal-login-page.portal-preset-classic-tiles .portal-login-shell{border-radius:12px;box-shadow:0 8px 26px rgba(15,23,42,.08)}
body.portal-login-page.portal-preset-executive-finance .portal-login-shell{border-radius:22px;box-shadow:0 26px 70px rgba(31,41,55,.14)}
body.portal-login-page.portal-preset-noc-dark .portal-login-shell{border-radius:14px}
body.portal-login-page.portal-preset-compact-analytics .portal-login-shell{border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.10)}
body.portal-login-page.portal-preset-informative-isp .portal-login-shell{border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.09)}
body.portal-login-page.portal-preset-soft-business .portal-login-shell{border-radius:16px;box-shadow:0 16px 42px rgba(15,23,42,.10)}

@media(max-width:1399.98px){body.portal-visual-sync .portal-admin-grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1199.98px){body.portal-visual-sync .portal-admin-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){body.portal-view-list .portal-admin-grid,body.portal-view-carousel .portal-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible}body.portal-view-carousel .portal-admin-card{min-width:0}body.portal-size-large .portal-admin-card{min-height:124px;padding:16px}}
@media(max-width:480px){body.portal-visual-sync .portal-admin-grid-five,body.portal-view-list .portal-admin-grid,body.portal-view-carousel .portal-admin-grid{grid-template-columns:1fr 1fr!important}}
