/* Technobulut Modern Theme v1.1
   Separate theme. Defaults remain untouched. */
:root,
[data-bs-theme="light"]{
  --tb-page:#f6f8fc; --tb-card:#ffffff; --tb-card-soft:#f8fafc; --tb-text:#111827;
  --tb-muted:#64748b; --tb-line:#e5e7eb; --tb-primary:#0f70d7; --tb-primary-2:#22b8cf;
  --tb-navy:#071326; --tb-radius:16px; --tb-shadow:0 10px 30px rgba(15,23,42,.08);
}
[data-bs-theme="dark"]{
  --tb-page:#07111f; --tb-card:#0f1b2d; --tb-card-soft:#111f33; --tb-text:#e8eef7;
  --tb-muted:#98a6ba; --tb-line:rgba(148,163,184,.18); --tb-primary:#38bdf8; --tb-primary-2:#22d3ee;
  --tb-shadow:0 18px 50px rgba(0,0,0,.32);
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{min-height:100vh;color:var(--tb-text);background:linear-gradient(180deg,#eef6ff 0%,var(--tb-page) 240px,var(--tb-page) 100%);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
[data-bs-theme="dark"] body, body[data-bs-theme="dark"]{background:linear-gradient(180deg,#06101e 0%,var(--tb-page) 260px,var(--tb-page) 100%)}
a{color:var(--tb-primary);text-decoration:none} a:hover{text-decoration:underline}.text-muted{color:var(--tb-muted)!important}
body>.container:first-of-type{max-width:1240px}.navbar{margin:18px 0 22px!important;padding:14px 18px!important;background:rgba(255,255,255,.82);border:1px solid rgba(226,232,240,.9);border-radius:20px;box-shadow:var(--tb-shadow);backdrop-filter:blur(16px)}
[data-bs-theme="dark"] .navbar{background:rgba(15,27,45,.82);border-color:var(--tb-line)}
.navbar-brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:-.03em;color:var(--tb-text)!important}.navbar-brand img{max-height:38px;width:auto;object-fit:contain}.navbar-brand span{font-size:1.05rem}.navbar-brand span::before{content:"";display:inline-block;width:10px;height:10px;margin-right:10px;border-radius:50%;background:linear-gradient(135deg,var(--tb-primary),var(--tb-primary-2));box-shadow:0 0 0 5px rgba(34,184,207,.12)}
.navbar-toggler{border:1px solid var(--tb-line);border-radius:12px}.nav-link{color:var(--tb-muted)!important;font-weight:650;border-radius:12px;padding:.55rem .75rem!important}.nav-link:hover,.nav-link.active{color:var(--tb-text)!important;background:rgba(15,112,215,.08);text-decoration:none}.btn{border-radius:12px;font-weight:700;box-shadow:none!important}.btn-primary,.btn-info{border-color:transparent!important;color:#fff!important;background:linear-gradient(135deg,var(--tb-primary),var(--tb-primary-2))!important}.btn-primary:hover,.btn-info:hover{filter:brightness(.96);transform:translateY(-1px)}.btn-outline-primary{border-color:rgba(15,112,215,.35)!important;color:var(--tb-primary)!important}.btn-outline-primary:hover{background:var(--tb-primary)!important;color:#fff!important;text-decoration:none}
#wrapper,.content-block{min-height:60vh}.content-block{padding-bottom:8px}.card,.modal-content,.dropdown-menu,.list-group-item{background:var(--tb-card)!important;border:1px solid var(--tb-line)!important;border-radius:var(--tb-radius)!important;box-shadow:var(--tb-shadow)}.card{overflow:hidden}.card:hover{box-shadow:0 14px 36px rgba(15,23,42,.10)}.card-header,.card-footer{background:var(--tb-card-soft)!important;border-color:var(--tb-line)!important}.card-title,h1,h2,h3,h4,h5{font-weight:800;letter-spacing:-.025em;color:var(--tb-text)}
.form-control,.form-select{border-radius:12px;border-color:var(--tb-line);background-color:var(--tb-card);color:var(--tb-text)}.form-control:focus,.form-select:focus{border-color:var(--tb-primary);box-shadow:0 0 0 .2rem rgba(15,112,215,.14)}.table{--bs-table-bg:transparent;--bs-table-border-color:var(--tb-line);color:var(--tb-text)}.table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--tb-muted);background:var(--tb-card-soft)}.badge{border-radius:999px;padding:.45em .65em}.alert{border-radius:14px;border-color:var(--tb-line)}
/* Sidebar */
.col-3.d-none.d-md-block .list-group,.col-3.d-none.d-md-block .card{position:sticky;top:18px}.list-group-item{box-shadow:none!important;border-radius:12px!important;margin-bottom:6px}.list-group-item.active{background:linear-gradient(135deg,var(--tb-primary),var(--tb-primary-2))!important;border-color:transparent!important}
/* Clean footer; no external software advert */
.tb-footer{color:var(--tb-muted);font-size:.86rem}.tb-footer-inner{display:flex;gap:10px;align-items:center;justify-content:center;padding:18px 0}.tb-footer-dot{width:4px;height:4px;border-radius:50%;background:var(--tb-muted);opacity:.55}a[href*="fossbilling.org"], .branding, .powered-by{display:none!important}
/* Public/login */
body.login, body.signup, body.password-reset{background:radial-gradient(circle at 18% 12%,rgba(34,184,207,.22),transparent 340px),linear-gradient(135deg,#071326 0%,#0b2644 54%,#071326 100%);}.login .navbar,.signup .navbar,body.password-reset .navbar{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);box-shadow:0 18px 50px rgba(0,0,0,.26)}.login .navbar-brand,.signup .navbar-brand,.login .nav-link,.signup .nav-link{color:#e8eef7!important}.login .card,.signup .card,body.password-reset .card{border-color:rgba(255,255,255,.14)!important;background:rgba(255,255,255,.96)!important;box-shadow:0 24px 70px rgba(0,0,0,.30)}
/* Showcase / markdown area */
.markdown, .showcase, [class*="showcase"]{border-radius:20px}.breadcrumb{font-size:.88rem}.breadcrumb a{color:var(--tb-muted)}
@media(max-width:768px){body>.container:first-of-type{padding-left:14px;padding-right:14px}.navbar{margin:10px 0 16px!important;border-radius:16px}.navbar-brand img{max-height:34px}.card{border-radius:14px!important}.tb-footer-inner{flex-direction:column;gap:4px}.tb-footer-dot{display:none}.table-responsive{border-radius:14px}}

/* v1.2 dashboard polish */
.alert-info{position:relative;overflow:hidden;background:linear-gradient(135deg,#071326,#0d355e)!important;color:#eef8ff!important;border:0!important;border-radius:22px!important;padding:26px 28px!important;box-shadow:0 18px 54px rgba(7,19,38,.20)}
.alert-info:after{content:"";position:absolute;right:-80px;top:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(34,211,238,.38),transparent 66%)}
.alert-info h1,.alert-info h2,.alert-info h3{color:#fff!important;margin-bottom:8px}.alert-info p{margin-bottom:0;color:#cdeafe}.alert-info a,.alert-info .btn{position:relative;z-index:1}
body.dashboard .content-block>.alert-info:first-child{margin-bottom:22px}


/* v1.3 readability/stability hotfix
   Force one consistent light UI. This prevents mixed white/black pages and unreadable text. */
html[data-bs-theme], html, body{
  color-scheme: light !important;
}
html[data-bs-theme="dark"]{
  --tb-page:#f6f8fc !important;
  --tb-card:#ffffff !important;
  --tb-card-soft:#f8fafc !important;
  --tb-text:#111827 !important;
  --tb-muted:#64748b !important;
  --tb-line:#e5e7eb !important;
  --tb-primary:#0f70d7 !important;
  --tb-primary-2:#22b8cf !important;
  --tb-shadow:0 10px 30px rgba(15,23,42,.08) !important;
}
body,
body.page-login,
body.page-signup,
body.password-reset,
body.login,
body.signup,
body.order-index,
body.dashboard{
  background:linear-gradient(180deg,#eef6ff 0%,#f6f8fc 240px,#f6f8fc 100%) !important;
  color:#111827 !important;
}
body *, .card, .card-body, .card-header, .card-footer, .modal-content, .dropdown-menu,
.table, .table td, .table th, .list-group-item, .form-label, label, p, span, div, li, dd, dt{
  color:inherit;
}
.card, .modal-content, .dropdown-menu, .list-group-item,
body.page-login .card, body.page-signup .card, body.password-reset .card,
.login .card, .signup .card{
  background:#ffffff !important;
  color:#111827 !important;
  border-color:#e5e7eb !important;
}
.card-header,.card-footer,.table thead th{
  background:#f8fafc !important;
  color:#334155 !important;
}
.navbar,
body.page-login .navbar, body.page-signup .navbar, body.password-reset .navbar,
.login .navbar,.signup .navbar{
  background:rgba(255,255,255,.92) !important;
  border-color:#e5e7eb !important;
  color:#111827 !important;
}
.navbar-brand, .navbar-brand span,
body.page-login .navbar-brand, body.page-signup .navbar-brand,
.nav-link, body.page-login .nav-link, body.page-signup .nav-link{
  color:#111827 !important;
}
.nav-link{color:#475569 !important}.nav-link:hover,.nav-link.active{color:#0f172a !important;background:rgba(15,112,215,.08) !important}
.text-muted, small, .small{color:#64748b !important}.text-white{color:#ffffff !important}
.form-control,.form-select, input, textarea, select{
  background-color:#ffffff !important;
  color:#111827 !important;
  border-color:#d8dee8 !important;
}
.form-control::placeholder, textarea::placeholder{color:#94a3b8 !important}
.alert:not(.alert-info){background:#ffffff !important;color:#111827 !important;border-color:#e5e7eb !important}
.alert-info, .alert-info *{color:#eef8ff !important}.alert-info h1,.alert-info h2,.alert-info h3{color:#ffffff !important}
.btn-primary,.btn-info,.list-group-item.active,.badge.bg-primary{color:#ffffff !important}
.btn-outline-primary:hover{color:#ffffff !important}
/* Remove visible upstream promo blocks, including order page powered-by line */
a[href*="fossbilling.org"],
.d-flex.justify-content-center.small.text-muted.pt-3.pb-2,
[class*="powered"], [class*="branding"]{display:none !important;visibility:hidden !important;height:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important}
/* Reduce over-styling that caused inconsistent screens */
body.page-login .card, body.page-signup .card, body.password-reset .card{box-shadow:0 14px 36px rgba(15,23,42,.12) !important}
.card:hover{transform:none !important}


/* v1.4 dropdown stacking fix */
header, .navbar, .navbar .container-fluid, .navbar-collapse, .navbar-nav, .nav-item, .client-dropdown{
  overflow: visible !important;
}
.navbar{
  position: relative !important;
  z-index: 1055 !important;
}
.client-dropdown{
  position: relative !important;
}
.client-dropdown .dropdown-menu,
.navbar .dropdown-menu{
  z-index: 3000 !important;
  min-width: 210px;
  padding: 8px !important;
  margin-top: 10px !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 50px rgba(15,23,42,.18) !important;
}
.client-dropdown .dropdown-item,
.navbar .dropdown-item{
  color: #111827 !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-weight: 650;
}
.client-dropdown .dropdown-item:hover,
.navbar .dropdown-item:hover{
  color: #0f172a !important;
  background: rgba(15,112,215,.08) !important;
  text-decoration: none !important;
}
@media (min-width: 768px){
  .client-dropdown .dropdown-menu{
    right: 0 !important;
    left: auto !important;
  }
}


/* v1.6.7 signup consent checkbox fix */
.tb-consent-check{
  position: relative !important;
  z-index: 50 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  cursor: pointer !important;
}
.tb-consent-check .form-check-input{
  position: relative !important;
  z-index: 60 !important;
  width: 20px !important;
  height: 20px !important;
  margin-top: 2px !important;
  flex: 0 0 auto !important;
  cursor: pointer !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.tb-consent-check .form-check-label{
  position: relative !important;
  z-index: 55 !important;
  cursor: pointer !important;
  color: #111827 !important;
  line-height: 1.45 !important;
}
.tb-consent-check a{ position: relative !important; z-index: 70 !important; pointer-events: auto !important; }


/* v1.6.9 hard fix: native clickable signup consent checkbox */
.tb-consent-check,
.form-check.tb-consent-check{
  user-select: none !important;
  pointer-events: auto !important;
}
.tb-consent-check .form-check-input#flexCheckDefault{
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: static !important;
  float: none !important;
  margin: 2px 10px 0 0 !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  transform: none !important;
  accent-color: #0f70d7 !important;
  cursor: pointer !important;
}
.tb-consent-check .form-check-label{
  pointer-events: auto !important;
  cursor: pointer !important;
  flex: 1 1 auto !important;
}
.tb-consent-check .form-check-label span{
  pointer-events: none !important;
}
.tb-consent-check .form-check-label a{
  pointer-events: auto !important;
}
