/* ==========================================================================
   LEOBRI — Portal skin for my.leobri.com (customer area)
   Mirrors the leobri.com design system (css/styles.css): same tokens, type,
   nav, buttons, cards, hero mesh and footer. Scoped to body.customers so the
   admin area is never touched. Loaded last by the leobri_theme module.
   ========================================================================== */

:root{
  --lb-ink:#16202E; --lb-body:#3A4756; --lb-muted:#6B7280; --lb-faint:#93A0AF;
  --lb-bg:#F6F7FA; --lb-bg-tint:#EEF1F8; --lb-surface:#FFFFFF; --lb-line:#E3E7EF;
  --lb-blue:#2563EB; --lb-blue-dark:#1741B8; --lb-blue-tint:#E9EFFE;
  --lb-green:#0EA473; --lb-green-tint:#E3F7EF;
  --lb-gold:#F0A202; --lb-gold-tint:#FEF3DD;
  --lb-navy-deep:#0A1120; --lb-navy-mid:#101B30;
  --lb-grad-primary:linear-gradient(135deg,#2563EB 0%,#0EA473 100%);
  --lb-grad-warm:linear-gradient(120deg,#F0A202 0%,#ef7f1a 100%);
  --lb-grad-dark:linear-gradient(180deg,#0E1830 0%,#0A1120 100%);
  --lb-mesh:
    radial-gradient(1100px 680px at 6% -10%, rgba(37,99,235,.6), transparent 55%),
    radial-gradient(950px 640px at 96% 4%, rgba(14,164,115,.46), transparent 55%),
    radial-gradient(780px 540px at 82% 100%, rgba(240,162,2,.3), transparent 58%),
    radial-gradient(640px 500px at 4% 96%, rgba(37,99,235,.32), transparent 55%),
    #0A1120;
  --lb-f-display:'Space Grotesk','Inter',sans-serif;
  --lb-f-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --lb-f-mono:'IBM Plex Mono','SFMono-Regular',monospace;
  --lb-radius-sm:12px; --lb-radius:20px; --lb-radius-lg:28px;
  --lb-ease:cubic-bezier(.4,0,.2,1);
  --lb-shadow-sm:0 1px 2px rgba(16,27,48,.06),0 1px 1px rgba(16,27,48,.04);
  --lb-shadow-md:0 10px 28px -10px rgba(16,27,48,.2);
  --lb-shadow-lg:0 30px 70px -18px rgba(16,27,48,.32);
  --lb-band:320px;
}

/* ---------- Base ---------- */
body.customers{
  font-family:var(--lb-f-body);color:var(--lb-body);background:var(--lb-bg);
  -webkit-font-smoothing:antialiased;
}
body.customers h1,body.customers h2,body.customers h3,body.customers h4,
body.customers .h1,body.customers .h2,body.customers .h3,body.customers .h4{
  font-family:var(--lb-f-display);color:var(--lb-ink);letter-spacing:-.01em;line-height:1.15;
}
body.customers h1,body.customers h2{font-weight:600;}
body.customers a{color:var(--lb-blue);transition:color .18s var(--lb-ease);}
body.customers a:hover{color:var(--lb-blue-dark);}
body.customers :focus-visible{outline:2.5px solid var(--lb-blue);outline-offset:3px;border-radius:4px;}
body.customers #content{padding-bottom:2.5rem;}

/* scroll progress (signature from leobri.com) */
.lb-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--lb-grad-primary);z-index:1100;transition:width .1s linear;pointer-events:none;}

/* ---------- Nav: dark glass bar ---------- */
body.customers.lb-theme .navbar.navbar-default.header{
  position:sticky;top:0;z-index:1000;min-height:0;margin-bottom:0;
  background:rgba(10,17,32,.95);
  -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);
  border:0;border-bottom:1px solid rgba(255,255,255,.08);
}
body.customers.lb-theme .navbar.header > .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;}
body.customers.lb-theme .navbar.header .container::before,
body.customers.lb-theme .navbar.header .container::after{display:none;}

/* brand: gradient mark + wordmark, like leobri.com */
body.customers.lb-theme .navbar a.navbar-brand.logo{
  display:flex;align-items:center;gap:.6rem;padding:.85rem 0;height:auto;margin:0;
  font-family:var(--lb-f-display);font-weight:700;font-size:1.28rem;color:#fff;line-height:1;
}
body.customers.lb-theme .navbar a.navbar-brand.logo img{display:none;}
body.customers.lb-theme .navbar a.navbar-brand.logo::before{
  content:'';width:34px;height:34px;border-radius:9px;flex:none;
  background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55),transparent 45%),var(--lb-grad-primary);
}
body.customers.lb-theme .navbar a.navbar-brand.logo::after{content:'Leobri';}
body.customers.lb-theme .navbar .navbar-header{float:none;display:flex;align-items:center;justify-content:space-between;}
body.customers.lb-theme .navbar .navbar-header::before,
body.customers.lb-theme .navbar .navbar-header::after{display:none;}

body.customers.lb-theme .navbar-default .navbar-nav{display:flex;align-items:center;gap:1.6rem;margin:0;}
body.customers.lb-theme .navbar-default .navbar-nav > li{float:none;}
body.customers.lb-theme .navbar-default .navbar-nav > li > a{
  display:inline-block;line-height:1.4;padding:.3rem 0;margin:0;
  font-weight:600;font-size:.95rem;color:#B9C6E4;background:transparent !important;position:relative;border-radius:0;
}
body.customers.lb-theme .navbar-default .navbar-nav > li > a::after{
  content:'';position:absolute;left:0;right:100%;bottom:-2px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#9FC4FF,#7EE8C0);transition:right .22s var(--lb-ease);
}
body.customers.lb-theme .navbar-default .navbar-nav > li > a:hover,
body.customers.lb-theme .navbar-default .navbar-nav > li > a:focus,
body.customers.lb-theme .navbar-default .navbar-nav > .active > a{color:#fff;background:transparent !important;}
body.customers.lb-theme .navbar-default .navbar-nav > li > a:hover::after,
body.customers.lb-theme .navbar-default .navbar-nav > .active > a::after{right:0;}

/* Log In = ghost pill, Register = gradient CTA pill (template's "Start Free Trial") */
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-login > a,
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-register > a{
  padding:.55em 1.2em;border-radius:999px !important;font-size:.88rem;font-weight:700;margin:0;
  transition:transform .18s var(--lb-ease),box-shadow .18s var(--lb-ease),background .18s,border-color .18s;
}
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-login > a{
  background:transparent !important;color:#EAF0FF !important;border:1px solid rgba(234,240,255,.25);
}
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-login > a:hover{background:rgba(234,240,255,.1) !important;border-color:rgba(234,240,255,.5);}
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-register > a{
  background:var(--lb-grad-primary) !important;color:#fff !important;border:1px solid transparent;
  box-shadow:0 10px 28px -10px rgba(37,99,235,.55);
}
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-register > a:hover{transform:translateY(-2px) scale(1.03);}
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-login > a::after,
body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-register > a::after{display:none;}
/* put the two buttons at the end, like the template */
body.customers.lb-theme .navbar-nav > li.customers-nav-item-login{order:90;}
body.customers.lb-theme .navbar-nav > li.customers-nav-item-register{order:91;margin-left:-.7rem;}
body.customers.lb-theme .navbar-nav > li.customers-nav-item-profile{order:92;}

/* profile dropdown */
body.customers.lb-theme .navbar .dropdown-menu{
  border:1px solid var(--lb-line);border-radius:14px;box-shadow:var(--lb-shadow-lg);padding:.4rem;margin-top:.6rem;
}
body.customers.lb-theme .navbar .dropdown-menu > li > a{border-radius:9px;padding:.55rem .9rem;color:var(--lb-body);font-weight:500;}
body.customers.lb-theme .navbar .dropdown-menu > li > a:hover{background:var(--lb-blue-tint);color:var(--lb-blue-dark);}
body.customers.lb-theme .client-profile-image-small{border:2px solid rgba(255,255,255,.35);}

/* mobile */
body.customers.lb-theme .navbar-default .navbar-toggle{order:2;float:none;border:0;margin:0;padding:.4rem;background:transparent !important;}
body.customers.lb-theme .navbar-header .navbar-brand.logo img{margin:0;}
body.customers.lb-theme .navbar-default .navbar-toggle .icon-bar{background:#fff;width:22px;height:2px;}
@media (max-width:767px){
  body.customers.lb-theme .navbar.header > .container{display:block;}
  body.customers.lb-theme .navbar .navbar-header{margin-left:0;margin-right:0;}
  body.customers.lb-theme .navbar-default .navbar-collapse{border-top:1px solid rgba(255,255,255,.08);box-shadow:none;}
  body.customers.lb-theme .navbar-default .navbar-nav{flex-direction:column;align-items:stretch;gap:.2rem;padding:.6rem 0 1rem;}
  body.customers.lb-theme .navbar-default .navbar-nav > li > a{display:block;padding:.6rem .2rem;color:#B9C6E4;}
  body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-login > a,
  body.customers.lb-theme .navbar-default .navbar-nav > li.customers-nav-item-register > a{text-align:center;margin:.35rem 0 0 !important;}
  body.customers.lb-theme .navbar-nav > li.customers-nav-item-register{margin-left:0;}
  body.customers.lb-theme .navbar-default .navbar-nav .open .dropdown-menu{background:#fff;}
}

/* ---------- Visitor pages: dark mesh hero band behind the top of the page ---------- */
body.customers.lb-guest.lb-nav #wrapper{position:relative;}
body.customers.lb-guest.lb-nav #wrapper::before{
  content:'';position:absolute;top:0;left:0;right:0;height:var(--lb-band);z-index:0;pointer-events:none;
  background:var(--lb-mesh);
}
body.customers.lb-guest.lb-nav #wrapper::after{
  content:'';position:absolute;top:0;left:0;right:0;height:var(--lb-band);z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:28px 28px;
  -webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent);
}
body.customers.lb-guest.lb-nav #wrapper > #content{position:relative;z-index:1;}
body.customers.lb-guest.lb-nav #wrapper:has(.kb-search-jumbotron)::before,
body.customers.lb-guest.lb-nav #wrapper:has(.kb-search-jumbotron)::after{display:none;}
/* page titles that sit on the band */
body.customers.lb-guest .login-heading,
body.customers.lb-guest .register-heading,
body.customers.lb-guest .forgot-password-heading h1,
body.customers.lb-guest .reset-password-heading h1,
body.customers.lb-guest #content .mtop40 > .text-center h1,
body.customers.lb-guest h3#greeting{
  color:#fff;font-family:var(--lb-f-display);font-weight:600;font-size:clamp(2rem,1.6rem + 1.5vw,2.9rem);
}
body.customers.lb-guest .login-heading::before,
body.customers.lb-guest .register-heading::before,
body.customers.lb-guest .forgot-password-heading h1::before{
  content:'Leobri client portal';display:block;margin-bottom:.8rem;
  font-family:var(--lb-f-mono);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7EE8C0;
}
body.customers.lb-guest .register-heading{text-align:left;}
body.customers.lb-guest #content .alert{position:relative;z-index:1;}

/* ---------- Cards / panels ---------- */
body.customers .panel_s{
  background:var(--lb-surface);border:1px solid var(--lb-line);border-radius:var(--lb-radius);
  box-shadow:var(--lb-shadow-sm);
}
body.customers.lb-guest .panel_s{box-shadow:var(--lb-shadow-lg);}
body.customers .panel_s > .panel-body{padding:1.9rem;background:transparent;}
body.customers .panel_s .panel-heading{background:var(--lb-bg-tint);border-bottom:1px solid var(--lb-line);font-family:var(--lb-f-display);font-weight:600;color:var(--lb-ink);}

/* ---------- Forms ---------- */
body.customers .form-control,
body.customers .bootstrap-select > .dropdown-toggle{
  border:1px solid var(--lb-line);border-radius:var(--lb-radius-sm);min-height:44px;
  box-shadow:none;color:var(--lb-ink);background:#fff;
  transition:border-color .18s var(--lb-ease),box-shadow .18s var(--lb-ease);
}
body.customers textarea.form-control{min-height:110px;}
body.customers .form-control:focus{border-color:var(--lb-blue);box-shadow:0 0 0 4px rgba(37,99,235,.14);}
body.customers label,body.customers .control-label{font-weight:600;color:var(--lb-ink);font-size:.9rem;}
body.customers .checkbox label{font-weight:500;color:var(--lb-body);}

/* ---------- Buttons (pill system from leobri.com) ---------- */
body.customers .btn{
  border-radius:999px;font-weight:700;font-family:var(--lb-f-body);
  transition:transform .18s var(--lb-ease),box-shadow .18s var(--lb-ease),background .18s var(--lb-ease),color .18s,border-color .18s;
}
body.customers .btn:not(.btn-xs):not(.btn-sm):not(.btn-icon):not(.dropdown-toggle){padding:.75em 1.5em;}
body.customers .btn:active{transform:scale(.97);}
body.customers .btn-primary,
body.customers .btn-info{
  background:var(--lb-grad-primary);border:1px solid transparent;color:#fff;
  box-shadow:0 10px 28px -10px rgba(37,99,235,.55);
}
body.customers .btn-primary:hover,body.customers .btn-primary:focus,
body.customers .btn-info:hover,body.customers .btn-info:focus{
  background:var(--lb-grad-primary);color:#fff;transform:translateY(-2px);box-shadow:0 16px 36px -10px rgba(37,99,235,.6);
}
body.customers .btn-default{background:transparent;color:var(--lb-ink);border:1px solid var(--lb-line);}
body.customers .btn-default:hover,body.customers .btn-default:focus{border-color:var(--lb-blue);color:var(--lb-blue-dark);background:var(--lb-blue-tint);}
body.customers .btn-success{background:var(--lb-green);border-color:var(--lb-green);color:#fff;}
body.customers .btn-success:hover{background:#0B8A61;border-color:#0B8A61;}
body.customers .btn-warning{background:var(--lb-grad-warm);border-color:transparent;color:#241100;}
body.customers .btn-block{width:100%;}
body.customers .btn-block + .btn-block{margin-top:.7rem;}

/* ---------- Knowledge base: hero search ---------- */
body.customers .kb-search-jumbotron{
  position:relative;overflow:hidden;margin-bottom:2.5rem;padding:clamp(3rem,7vw,5rem) 0;
  background:var(--lb-mesh);border:0;border-radius:0;
}
body.customers .kb-search-jumbotron::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000 0%,transparent 72%);
  mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000 0%,transparent 72%);
}
body.customers .kb-search{position:relative;z-index:1;}
body.customers .kb-search-heading{color:#fff;font-size:clamp(2rem,1.6rem + 1.5vw,2.9rem);font-weight:600;}
body.customers .kb-search-heading::before{
  content:'Help center';display:block;margin-bottom:.8rem;
  font-family:var(--lb-f-mono);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7EE8C0;
}
body.customers .kb-search input[type="search"]{
  height:58px;border-radius:999px 0 0 999px;border:1px solid rgba(255,255,255,.2);
  background:#fff;font-size:1.02rem;padding-left:46px;
}
body.customers .kb-search .form-control-feedback{line-height:58px;height:58px;color:var(--lb-muted);}
body.customers .kb-search button[type="submit"]{height:58px;border-radius:0 999px 999px 0;padding:0 1.8em;}
body.customers .section-knowledge-base .panel_s h1{font-family:var(--lb-f-display);color:var(--lb-ink);}

/* ---------- Products / Services module ---------- */
body.customers .nav-tabs{border:0;display:flex;flex-wrap:wrap;gap:.6rem;}
body.customers .nav-tabs > li{float:none;margin:0;}
body.customers .nav-tabs > li > a{
  border:1px solid var(--lb-line) !important;border-radius:999px;background:var(--lb-surface);
  padding:.55em 1.1em;font-size:.85rem;font-weight:600;color:var(--lb-body);margin:0;
}
body.customers .nav-tabs > li > a:hover{border-color:var(--lb-blue) !important;color:var(--lb-blue-dark);background:var(--lb-surface);}
body.customers .nav-tabs > li.active > a,
body.customers .nav-tabs > li.active > a:hover,
body.customers .nav-tabs > li.active > a:focus{background:var(--lb-ink);color:#fff;border-color:var(--lb-ink) !important;}
body.customers .card.panel-body{
  background:var(--lb-surface);border:1px solid var(--lb-line);border-radius:var(--lb-radius);
  padding:1.9rem;position:relative;
  transition:transform .35s var(--lb-ease),box-shadow .35s var(--lb-ease),border-color .35s var(--lb-ease);
}
body.customers .card.panel-body:hover{transform:translateY(-8px);box-shadow:var(--lb-shadow-lg);border-color:transparent;}
body.customers .card.panel-body::before{
  content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;opacity:0;pointer-events:none;
  background:var(--lb-grad-primary);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  transition:opacity .35s var(--lb-ease);
}
body.customers .card.panel-body:hover::before{opacity:1;}
body.customers .card .card-title{font-size:1.15rem;font-weight:600;color:var(--lb-ink);margin:0 0 .5rem;}
/* even-height product grid (stock Perfex floats leave gaps) */
body.customers .panel_s > .panel-body:has(> [class*="col-"] > .card){display:flex;flex-wrap:wrap;}
body.customers .panel_s > .panel-body:has(> [class*="col-"] > .card)::before,
body.customers .panel_s > .panel-body:has(> [class*="col-"] > .card)::after{display:none;}
body.customers .panel_s > .panel-body > [class*="col-"] > .card.panel-body{height:100%;display:flex;flex-direction:column;}
body.customers .card.panel-body > .card-body{display:flex;flex-direction:column;flex:1;}
body.customers .card.panel-body > .card-body > .btn{align-self:flex-start;}
body.customers .card.panel-body > .card-body > .btn:last-child,
body.customers .card.panel-body > .card-body > form:last-child{margin-top:auto;align-self:flex-start;}
body.customers .card .card-text{font-size:.92rem;color:var(--lb-muted);}
body.customers .services_description ul,
body.customers .services_module ul{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.6rem;}
body.customers .services_description ul li,
body.customers .services_module ul li{position:relative;padding-left:2rem;}
body.customers .services_description ul li::before,
body.customers .services_module ul li::before{
  content:'✓';position:absolute;left:0;top:.1em;width:22px;height:22px;border-radius:50%;
  background:var(--lb-green-tint);color:var(--lb-green);display:grid;place-items:center;font-size:.72rem;font-weight:900;
}
body.customers .panel_s h2.title{font-family:var(--lb-f-display);font-weight:600;color:var(--lb-ink);}

/* ---------- Tables, badges, alerts ---------- */
body.customers .table > thead > tr > th{
  font-family:var(--lb-f-mono);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--lb-muted);border-bottom:1px solid var(--lb-line);font-weight:600;
}
body.customers .table > tbody > tr > td{border-color:var(--lb-line);}
body.customers .label,body.customers .badge{border-radius:999px;font-weight:700;}
body.customers .alert{border-radius:var(--lb-radius-sm);border:1px solid transparent;}
body.customers .alert-success{background:var(--lb-green-tint);color:#0B7A54;border-color:#c9ecdc;}
body.customers .alert-info{background:var(--lb-blue-tint);color:var(--lb-blue-dark);border-color:#d5e1fd;}
body.customers .alert-warning{background:var(--lb-gold-tint);color:#9a6800;border-color:#fbe3b0;}

/* logged-in client submenu (Files / Calendar) */
body.customers .customer-top-submenu > li > a{color:var(--lb-body);font-weight:600;}
body.customers .customer-top-submenu > li > a:hover{color:var(--lb-blue-dark);}

/* ---------- Footer (leobri.com footer) ---------- */
body.customers.lb-has-footer footer.footer{display:none;}
body.customers footer.lb-footer{
  height:auto;margin:0;border:0;width:100%;
  background:var(--lb-navy-deep);color:#AEBBD6;padding:3.5rem 0 2rem;font-size:.9rem;
}
.lb-container{max-width:1240px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem);}
.lb-footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2.5rem;}
.lb-footer .lb-brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--lb-f-display);font-weight:700;font-size:1.28rem;color:#fff !important;}
.lb-brand-mark{width:34px;height:34px;border-radius:9px;flex:none;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55),transparent 45%),var(--lb-grad-primary);}
.lb-footer-about{font-size:.88rem;color:#8FA0C4;max-width:32ch;margin-top:1rem;}
body.customers .lb-footer h4{color:#fff;font-family:var(--lb-f-body);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;margin:0 0 1rem;font-weight:700;}
.lb-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.65rem;}
body.customers .lb-footer a{font-size:.9rem;color:#AEBBD6;}
body.customers .lb-footer a:hover{color:#fff;}
body.customers .lb-footer a.lb-brand{font-size:1.28rem;}
.lb-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.08);font-size:.8rem;color:#6E7FA3;}
@media (max-width:1080px){.lb-footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:760px){
  .lb-footer-grid{grid-template-columns:1fr;gap:2rem;}
  .lb-footer-bottom{flex-direction:column;align-items:flex-start;}
}

@media (prefers-reduced-motion:reduce){
  body.customers *,body.customers *::before,body.customers *::after{transition-duration:.001ms !important;animation-duration:.001ms !important;}
}
