/* HorizonCRM Theme - Professional Corporate Dark */

/* Base */
:root {
  --shadow-sm: 0 2px 4px rgba(0,0,0,.1);
  --shadow-md: 0 4px 12px rgba(0,0,0,.18);
  --shadow-lg: 0 8px 24px rgba(0,0,0,.28);
  --shadow-xl: 0 12px 40px rgba(0,0,0,.38);
}

html, body { height: 100%; min-height: 100%; }

body { 
  background-color: #181a1b !important; 
  color: #f8f9fa !important; 
  display:flex; 
  flex-direction:column; 
  min-height:100vh;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Premium backdrop */
.theme-premium {
  --glass-bg: rgba(18,22,28,.62);
  --glass-border: rgba(255,255,255,.12);
  --glass-hover: rgba(18,22,28,.75);
  --grad-1: #2c5282; 
  --grad-2: #1e3a5f;
  --accent-primary: #3b82f6;
  --accent-secondary: #64748b;
  --role-admin: #7c3aed;
  --role-manager: #0891b2;
  --role-service: #3b82f6;
  --role-user: #f59e0b;
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans";
  background: transparent !important; 
  background-attachment: scroll !important; 
  position: relative;
  color-scheme: dark;
}

.theme-premium::before{
  content:''; 
  position:fixed; 
  inset:0; 
  z-index:-1; 
  pointer-events:none;
  background:
    radial-gradient(1200px 800px at 25% 0%, rgba(44, 82, 130, 0.15), transparent 40%),
    radial-gradient(900px 700px at 85% 10%, rgba(30, 58, 95, 0.12), transparent 45%),
    radial-gradient(700px 600px at 90% 85%, rgba(15, 23, 42, 0.18), transparent 50%),
    linear-gradient(180deg, rgba(15,23,42,.95), rgba(18,22,28,.98));
}

/* Typography */
h1, h2, h3, h4, h5, h6, .page-title { 
  font-weight: 700; 
  letter-spacing: -0.02em;
  color: #f8f9fa;
}

.page-title { 
  font-size: 1.85rem; 
  margin-bottom: 1.25rem;
  text-shadow: 0 2px 8px rgba(0,0,0,.2);
}

.fw-semibold { font-weight: 600 !important; }
.text-muted { color: #b8c5d6 !important; font-size: 0.9rem; }

a { transition: color 0.2s ease, opacity 0.2s ease; }
a:hover { opacity: 0.85; }

/* Cards */
.theme-premium .card.bg-dark{
  background: var(--glass-bg) !important;
  backdrop-filter: saturate(120%) blur(10px);
  box-shadow: var(--shadow-lg), 0 0 0 1px rgba(255,255,255,.04);
  border-radius: .25rem;
  transition: box-shadow 0.2s ease;
}

.theme-premium .card.bg-dark:hover{
  box-shadow: var(--shadow-xl), 0 0 0 1px rgba(255,255,255,.06);
}

.theme-premium .card.bg-dark:not([class*="border-"]){
  border-color: var(--glass-border) !important;
}

.theme-premium .card-body {
  padding: 1.25rem 1.5rem;
}

.theme-premium .card-header {
  background: rgba(255,255,255,.02);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: 1rem 1.5rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.theme-premium .card.bg-dark[class*="border-"]{
  border-width:1px; 
  border-style:solid;
  border-color: var(--chip-border-color, inherit) !important;
}

/* Tables */
.theme-premium .table{
  background: var(--glass-bg) !important;
  backdrop-filter: saturate(120%) blur(10px);
  box-shadow: var(--shadow-lg);
  color:#e9eef3 !important;
  --bs-table-color: #e9eef3;
  --bs-table-bg: rgba(30,34,40,.75);
  --bs-table-border-color: rgba(255,255,255,.12);
  font-size: 0.925rem;
  border-color: rgba(255,255,255,.12) !important;
}

.table > :not(caption) > * > * {
  background-color: transparent !important;
  border-color: rgba(255,255,255,.12) !important;
  color: inherit !important;
}

.table thead th{ 
  position:sticky; 
  top:0; 
  z-index:1; 
  color:#f1f5ff !important; 
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  padding: 0.85rem 0.75rem;
  border-bottom: 2px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.02) !important;
}

.table thead th::after{ 
  content:''; 
  position:absolute; 
  left:0; 
  right:0; 
  bottom:0; 
  height:2px; 
  background:linear-gradient(90deg, rgba(111,66,193,0), rgba(58,134,255,.35), rgba(111,66,193,0)); 
  pointer-events:none; 
}

.table tbody td {
  padding: 0.85rem 0.75rem;
  vertical-align: middle;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.table tbody tr {
  transition: background-color 0.15s ease;
}

.table-striped > tbody > tr:nth-of-type(odd) > * { 
  --bs-table-accent-bg: rgba(255,255,255,.03); 
  color:inherit; 
}

.table-hover > tbody > tr:hover > * { 
  --bs-table-accent-bg: rgba(255,255,255,.025); 
  color:inherit; 
}

.theme-premium .table a:not(.btn):not(.badge-shared){
  color:#e6f0ff !important;
  text-decoration-color: rgba(255,255,255,.6);
}

.theme-premium .table a:not(.btn):not(.badge-shared):hover{
  color:#ffffff !important;
  text-decoration-color: rgba(255,255,255,.85);
}

.table a.customer-link { 
  color:#ffffff !important; 
  font-weight:600; 
  text-decoration:underline; 
  text-underline-offset:2px; 
  transition: all 0.2s ease; 
}

.table a.customer-link:hover { 
  color:#fff !important; 
  text-decoration-thickness:2px; 
  opacity: 0.85; 
}

@media (forced-colors: active){
  .theme-premium .table a{ color: LinkText !important; }
  .theme-premium .table thead th{ color: ButtonText !important; }
  .theme-premium .table tbody td,
  .theme-premium .table tbody th{ color: CanvasText !important; }
}

/* Theme colors */
.theme-premium .border-success{ --chip-border-color: rgba(16,185,129,.6); --chip-glow: rgba(16,185,129,.25); --chip-glow-hover: rgba(16,185,129,.35); }
.theme-premium .border-info{ --chip-border-color: rgba(8,145,178,.6); --chip-glow: rgba(8,145,178,.25); --chip-glow-hover: rgba(8,145,178,.35); }
.theme-premium .border-warning{ --chip-border-color: rgba(245,158,11,.6); --chip-glow: rgba(245,158,11,.25); --chip-glow-hover: rgba(245,158,11,.35); }
.theme-premium .border-primary{ --chip-border-color: rgba(59,130,246,.6); --chip-glow: rgba(59,130,246,.25); --chip-glow-hover: rgba(59,130,246,.35); }
.theme-premium .border-secondary{ --chip-border-color: rgba(100,116,139,.6); --chip-glow: rgba(100,116,139,.25); --chip-glow-hover: rgba(100,116,139,.35); }
.theme-premium .border-danger{ --chip-border-color: rgba(239,68,68,.6); --chip-glow: rgba(239,68,68,.25); --chip-glow-hover: rgba(239,68,68,.35); }

.theme-premium .text-primary{ color: #3b82f6 !important; }
.theme-premium .text-success{ color: #10b981 !important; }
.theme-premium .text-info{ color: #0891b2 !important; }
.theme-premium .text-warning{ color: #f59e0b !important; }
.theme-premium .text-danger{ color: #ef4444 !important; }
.theme-premium .text-secondary{ color: #64748b !important; }

/* Badges */
a.badge-shared{ 
  display:inline-flex; 
  align-items:center; 
  gap:.3rem; 
  padding:.3em .6em; 
  font-size:.8rem; 
  font-weight:600; 
  border-radius:.25rem; 
  background:rgba(124,58,237,.12); 
  color:#c4b5fd!important; 
  border:1px solid rgba(124,58,237,.3); 
  letter-spacing:0; 
  text-decoration:none!important;
  transition: all 0.15s ease;
}

/* ===== Estimating Board Compact Mode ===== */
.estimate-compact .project-card{background:rgba(30,34,40,.6)!important; border:1px solid rgba(255,255,255,.08);}
.estimate-compact .project-card:hover{background:rgba(38,44,52,.65)!important;}
.estimate-compact .card-body{padding:6px 8px !important;}
.estimate-compact .project-name{font-weight:600; font-size:.8rem; max-width:55ch;}
.estimate-compact .project-header{width:100%;}
.estimate-compact .project-name.multi-line{max-width:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.05;}
.estimate-compact .meta{font-size:.65rem; line-height:1;}
.estimate-compact .notes{font-size:.6rem; line-height:1.05; max-width:60ch;}
.estimate-compact .division-badge{background:rgba(100,116,139,.35); font-size:.55rem; padding:.3em .45em; font-weight:500; letter-spacing:.01em;}
.estimate-compact .division-badge.prime{background:rgba(59,130,246,.5);}
.estimate-compact .due-badge{background:rgba(239,68,68,.65); font-size:.6rem; padding:.4em .5em;}
.estimate-compact .bid-badge{background:rgba(8,145,178,.55); font-size:.55rem; padding:.35em .45em;}
.estimate-compact .status-badge{background:rgba(59,130,246,.55); font-size:.5rem; padding:.3em .4em; max-width:70px;}
.estimate-compact .actions .btn-xxs{padding:2px 6px; font-size:.6rem; line-height:1; display:inline-flex; align-items:center; justify-content:center;}
.estimate-compact .actions .btn-xxs .bi{font-size:.7rem;}
.estimate-compact .compact-dates .badge{border-radius:.35rem; white-space:nowrap;}
.estimate-compact .divisions{display:flex; flex-wrap:wrap; gap:2px; max-height:38px; overflow:hidden;}
.estimate-compact .project-card{box-shadow:none;}
.estimate-compact .project-card + .project-card{margin-top:4px;}
.estimate-compact .project-card .text-truncate{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.estimate-compact .project-card .division-badge{white-space:nowrap;}
.estimate-compact .project-card .notes{text-overflow:ellipsis; white-space:nowrap; overflow:hidden;}
.estimate-compact .content-area{min-width:0;}
.estimate-compact .actions .btn-xxs{min-width:26px;}

@media (min-width:1400px){
  .estimate-compact .project-name{font-size:.85rem;}
  .estimate-compact .meta{font-size:.7rem;}
}

/* ===== New Dense Board Layout ===== */
.est-board.dense-mode{width:100%;}
.est-board .est-row{background:rgba(32,36,42,.55); border:1px solid rgba(255,255,255,.07); border-radius:4px; padding:4px 6px;}
.est-board .est-row:hover{background:rgba(40,46,54,.6);} 
.est-board .est-badges .est-badge{font-size:.55rem; padding:.32em .5em; margin-bottom:2px; line-height:1; border-radius:4px; font-weight:600; letter-spacing:.02em;}
.est-board .est-badge.due{background:rgba(239,68,68,.75);} /* increased contrast */
.est-board .est-badge.bid{background:rgba(8,145,178,.7);} 
.est-board .est-badge.status{background:rgba(59,130,246,.7); max-width:90px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.est-board .est-name{font-weight:600; font-size:.9rem; line-height:1.15; max-height:1.3rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1 1 auto; padding-right:6px;}
.est-board .est-actions .btn-xxs{padding:2px 6px; font-size:.6rem; line-height:1; display:inline-flex; align-items:center;}
.est-board .est-actions .btn-xxs .bi{font-size:.65rem;}
.est-board .est-meta{font-size:.7rem; line-height:1.15; display:flex; flex-wrap:wrap; margin-top:2px;}
.est-board .est-divisions{display:flex; flex-wrap:wrap; gap:2px; margin-top:3px; max-height:30px; overflow:hidden;}
.est-board .est-division{background:rgba(100,116,139,.45); font-size:.6rem; padding:.28em .45em; font-weight:500; border-radius:3px; white-space:nowrap;}
.est-board .est-division.prime{background:rgba(59,130,246,.6);}
.est-board .est-notes{font-size:.65rem; line-height:1.15; margin-top:2px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.est-board .est-folder{font-size:.7rem; line-height:1.2; margin-top:2px; background:rgba(59,130,246,.12); border:1px solid rgba(59,130,246,.35); padding:2px 8px; border-radius:4px; display:inline-flex; align-items:center; gap:6px; cursor:pointer; user-select:none; max-width:100%; color:#cfe2ff; font-family:monospace; white-space:nowrap; overflow-x:auto;}
.est-board .est-folder:hover{background:rgba(59,130,246,.2);} .est-board .est-folder.copied{background:rgba(16,185,129,.25); border-color:rgba(16,185,129,.5); color:#d1fae5;}
.est-board .est-folder .copy-hint .bi{font-size:.7rem;}
.est-board .est-row + .est-row{margin-top:5px;}
@media (min-width:1600px){
 .est-board .est-name{font-size:1rem;}
 .est-board .est-meta{font-size:.75rem;}
 .est-board .est-division{font-size:.65rem;}
 .est-board .est-folder{font-size:.75rem;}
}

a.badge-shared:hover{ 
  background:rgba(124,58,237,.2); 
  color:#e9d5ff!important; 
  border-color:rgba(124,58,237,.5);
}

/* Navbar */
.theme-premium #main-navbar{ 
  background-color: rgba(15,23,42,.85) !important; 
  backdrop-filter:saturate(110%) blur(8px); 
  border-bottom:1px solid rgba(255,255,255,.1) !important; 
  padding-left:0 !important; 
  padding-right:0 !important; 
  position: relative; 
  z-index: 1040;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}

.page-container { 
  max-width:1700px; 
  margin: 0 auto; 
  width: 100%; 
  flex: 1 0 auto; 
}

.navbar-brand{ 
  color:#fff !important; 
  display:inline-flex; 
  align-items:center; 
  gap:.5rem; 
  font-weight:700; 
  letter-spacing:0; 
  font-size: 1.1rem;
}

.navbar-brand .brand-mark{
  width:28px; 
  height:28px; 
  border-radius:0.25rem;
  display:inline-flex; 
  align-items:center; 
  justify-content:center;
  background: rgba(59,130,246,.15);
  color:#3b82f6;
  border:1px solid rgba(59,130,246,.3);
  transition: all 0.2s ease;
}

.navbar-brand .brand-mark:hover { 
  background: rgba(59,130,246,.25);
  border-color: rgba(59,130,246,.5);
}

.navbar-brand .brand-mark .bi{ font-size:1rem; line-height:1; }

.navbar-brand .brand-badge{ 
  margin-left:.4rem; 
  padding:.2rem .5rem; 
  border-radius:.25rem; 
  font-size:.7rem; 
  letter-spacing:.03em; 
  border:1px solid rgba(255,255,255,.15); 
  color:#94a3b8; 
  background:rgba(15,23,42,.6);
  font-weight: 500;
}

/* Nav buttons */
#main-navbar .navbar-nav .btn-nav{
  background: rgba(30,34,40,.6) !important; 
  color:#e9eef3 !important; 
  border:1px solid rgba(255,255,255,.1) !important;
  padding:.4rem .6rem !important; 
  border-radius:.25rem !important; 
  font-weight:600 !important; 
  line-height:1.2 !important;
  display:inline-flex !important; 
  align-items:center; 
  gap:.3rem; 
  box-shadow: none;
  transition: all 0.15s ease;
  position:relative; 
  overflow:hidden;
  font-size: 0.9rem !important;
}

#main-navbar .navbar-nav .btn-nav::after{
  content:''; 
  position:absolute; 
  left:0; 
  right:0; 
  bottom:0; 
  height:2px;
  background: var(--accent-primary); 
  opacity:0; 
  transition:opacity .15s ease;
}

#main-navbar .navbar-nav .btn-nav:hover{
  background: rgba(51,65,85,.7) !important; 
  border-color: rgba(255,255,255,.2) !important;
  transform: none;
}

#main-navbar .navbar-nav .btn-nav:hover::after{ opacity:.9; }

#main-navbar .navbar-nav .btn-nav.active,
#main-navbar .navbar-nav .btn-nav[aria-current="page"]{
  background: rgba(59,130,246,.15) !important; 
  color:#fff !important; 
  border-color: rgba(59,130,246,.4) !important;
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.2);
}

#main-navbar .navbar-nav .btn-nav.active::after,
#main-navbar .navbar-nav .btn-nav[aria-current="page"]::after{
  opacity: 1;
}

#main-navbar .navbar-nav .nav-text{ white-space: nowrap; }

#main-navbar .navbar-nav .btn-nav,
#main-navbar .navbar-nav .btn-nav:hover,
#main-navbar .navbar-nav .btn-nav:focus,
#main-navbar .navbar-nav .btn-nav:active,
#main-navbar .navbar-nav .dropdown-toggle,
#main-navbar .navbar-nav .dropdown-toggle:hover,
#main-navbar .navbar-nav .dropdown-toggle:focus,
#main-navbar .nav-link,
#main-navbar .nav-link:hover,
#main-navbar .nav-link:focus{
  text-decoration: none !important;
}

#main-navbar .navbar-nav .btn-nav--settings::after{ content: none !important; display: none !important; }

#main-navbar .navbar-nav.app-nav{
  display:flex; 
  align-items:center; 
  gap:.5rem;
}

/* Dropdown */
#main-navbar .dropdown-menu{
  background: rgba(22,26,32,.92) !important; 
  backdrop-filter:saturate(110%) blur(8px);
  border:1px solid rgba(255,255,255,.12) !important; 
  box-shadow:0 4px 12px rgba(0,0,0,.3); 
  border-radius:.25rem; 
  overflow:hidden;
  min-width: 200px;
}

#main-navbar .dropdown-item{ 
  color:#e6e6e6 !important; 
  border-radius: .25rem; 
  padding: .5rem .85rem;
  transition: background-color 0.15s ease;
  display: flex;
  align-items: center;
  gap: .5rem;
}

#main-navbar .dropdown-item i {
  width: 1.2em;
  text-align: center;
  opacity: 0.8;
}

#main-navbar .dropdown-item:hover{ 
  background: rgba(51,65,85,.65) !important; 
  color:#fff !important; 
}

#main-navbar .dropdown-item:hover i {
  opacity: 1;
}

#main-navbar .dropdown-divider {
  border-color: rgba(255,255,255,.1);
  margin: .5rem 0;
}

/* Buttons */
.theme-premium .btn{
  background: rgba(30,34,40,.75) !important;
  color:#e9eef3 !important;
  border:1px solid rgba(255,255,255,.12) !important;
  padding:.45rem .95rem !important;
  border-radius:.25rem !important;
  font-weight:600 !important;
  line-height:1.3 !important;
  display:inline-flex !important; 
  align-items:center; 
  gap:.4rem;
  box-shadow: 0 1px 2px rgba(0,0,0,.1);
  transition: all 0.15s ease;
  position:relative; 
  overflow:visible;
  letter-spacing: 0;
}

.theme-premium .btn::after{ display: none; }

.theme-premium .btn:hover{
  background: rgba(51,65,85,.85) !important; 
  border-color: rgba(255,255,255,.2) !important;
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
  transform: none;
}

.theme-premium .btn:active,
.theme-premium .btn.active,
.theme-premium .btn[aria-current="page"]{
  background: rgba(59,130,246,.2) !important; 
  color:#fff !important; 
  border-color: rgba(59,130,246,.4) !important;
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.3);
}

.theme-premium .btn:focus{ 
  outline:0; 
  box-shadow: 0 0 0 3px rgba(59,130,246,.25) !important; 
}

.theme-premium .btn-sm{ 
  padding:.35rem .65rem !important; 
  line-height:1.25 !important;
  font-size: 0.875rem;
}

.theme-premium .btn .bi{ font-size:1em; }

/* Button variants */
.theme-premium .btn-primary{ border-color: rgba(13,110,253,.6) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(13,110,253,.18), 0 1px 6px rgba(0,0,0,.22); }
.theme-premium .btn-primary:hover{ border-color: rgba(13,110,253,.75) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 0 0 2px rgba(13,110,253,.28), 0 2px 12px rgba(0,0,0,.3); }
.theme-premium .btn-success{ border-color: rgba(28,200,138,.6) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(28,200,138,.18), 0 1px 6px rgba(0,0,0,.22); }
.theme-premium .btn-success:hover{ border-color: rgba(28,200,138,.75) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 0 0 2px rgba(28,200,138,.28), 0 2px 12px rgba(0,0,0,.3); }
.theme-premium .btn-info{ border-color: rgba(23,162,184,.6) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(23,162,184,.18), 0 1px 6px rgba(0,0,0,.22); }
.theme-premium .btn-info:hover{ border-color: rgba(23,162,184,.75) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 0 0 2px rgba(23,162,184,.28), 0 2px 12px rgba(0,0,0,.3); }
.theme-premium .btn-warning{ color:#1a1a1a !important; border-color: rgba(246,194,62,.7) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(246,194,62,.22), 0 1px 6px rgba(0,0,0,.22); }
.theme-premium .btn-warning:hover{ border-color: rgba(246,194,62,.85) !important; }
.theme-premium .btn-danger{ border-color: rgba(231,74,59,.6) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(231,74,59,.18), 0 1px 6px rgba(0,0,0,.22); }
.theme-premium .btn-danger:hover{ border-color: rgba(231,74,59,.78) !important; }
.theme-premium .btn-secondary{ border-color: rgba(108,117,125,.55) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(108,117,125,.16), 0 1px 6px rgba(0,0,0,.22); }
.theme-premium .btn-outline-primary{ background: rgba(30,34,40,.6) !important; color:#cfe2ff !important; border-color: rgba(13,110,253,.6) !important; }
.theme-premium .btn-outline-primary:hover{ background: rgba(13,110,253,.22) !important; color:#fff !important; border-color: rgba(13,110,253,.8) !important; }
.theme-premium .btn-outline-success{ background: rgba(30,34,40,.6) !important; color:#d1fae5 !important; border-color: rgba(25,135,84,.6) !important; }
.theme-premium .btn-outline-success:hover{ background: rgba(25,135,84,.22) !important; color:#fff !important; border-color: rgba(25,135,84,.8) !important; }
.theme-premium .btn-check:checked + .btn-outline-success,
.theme-premium .btn-outline-success.active,
.theme-premium .btn-outline-success:active,
.theme-premium .show > .btn-outline-success.dropdown-toggle{
  background: linear-gradient(135deg, rgba(25,135,84,.9), rgba(28,200,138,.9)) !important;
  color:#fff !important;
  border-color: rgba(25,135,84,.9) !important;
  box-shadow: 0 3px 14px rgba(28,200,138,.35);
}
.theme-premium .btn-outline-danger{ background: rgba(30,34,40,.6) !important; color:#ffd1cc !important; border-color: rgba(231,74,59,.6) !important; }
.theme-premium .btn-outline-danger:hover{ background: rgba(231,74,59,.22) !important; color:#fff !important; border-color: rgba(231,74,59,.8) !important; }
.theme-premium .btn-outline-secondary{ background: rgba(30,34,40,.6) !important; color:#e6e6e6 !important; border-color: rgba(108,117,125,.55) !important; }
.theme-premium .btn-outline-secondary:hover{ background: rgba(108,117,125,.22) !important; color:#fff !important; border-color: rgba(108,117,125,.75) !important; }
.theme-premium .btn-outline-light{
  background: rgba(30,34,40,.6) !important;
  color:#f8f9fa !important;
  border-color: rgba(255,255,255,.55) !important;
}
.theme-premium .btn-outline-light:hover{
  background: rgba(255,255,255,.16) !important;
  color:#ffffff !important;
  border-color: rgba(255,255,255,.78) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 2px 12px rgba(0,0,0,.3) !important;
}

/* Forms */
.theme-premium .form-label{ color:#e2e8f0; font-weight:600; }
.theme-premium .form-text{ color:#9aa3ad; }

.theme-premium .form-control,
.theme-premium .form-select{
  background: rgba(80, 84, 90, 0.514) !important;
  color:#e9eef3 !important;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.45), 0 0 0 2px rgba(255,255,255,.14), 0 8px 20px rgba(0,0,0,.36);
  border-radius:.25rem;
  transition: background .15s ease, border-color .15s ease, box-shadow .2s ease;
}

.theme-premium .form-control:hover,
.theme-premium .form-select:hover{
  background: rgba(38,44,52,.78) !important;
  border-color: rgba(255,255,255,.5) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.5), 0 0 0 2px rgba(255,255,255,.18), 0 10px 22px rgba(0,0,0,.38);
}

.theme-premium .form-control::placeholder{ color:#b8c2cc; opacity:.9; }

.theme-premium .form-control:focus,
.theme-premium .form-select:focus{
  color:#fff !important;
  background: rgba(42,48,56,.82) !important;
  border-color: rgba(13,110,253,.8) !important;
  outline:0; 
  box-shadow: 0 0 0 .3rem rgba(13,110,253,.42), 0 0 0 2px rgba(255,255,255,.12), inset 0 0 0 1px rgba(0,0,0,.55);
}

.theme-premium .form-control:disabled,
.theme-premium .form-select:disabled,
.theme-premium .form-control[readonly]{
  background: rgba(60,64,70,.5) !important; 
  color:#cfd6de !important; 
  border-color: rgba(255,255,255,.18) !important;
}

.theme-premium .form-check-input{
  background-color: rgba(34,39,46,.72) !important;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.45), 0 0 0 2px rgba(255,255,255,.14);
  transition: background .15s ease, border-color .15s ease, box-shadow .2s ease;
}

.theme-premium .form-check-input:hover{ 
  border-color: rgba(255,255,255,.38) !important; 
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.5), 0 0 0 2px rgba(255,255,255,.1); 
}

.theme-premium .form-check-input:focus{ 
  border-color: rgba(13,110,253,.6) !important; 
  box-shadow: 0 0 0 .15rem rgba(13,110,253,.25); 
}

.theme-premium .form-check-input:checked{ 
  background-color:#0d6efd !important; 
  border-color:#0d6efd !important; 
}

.theme-premium .input-group-text{
  background: rgba(34,39,46,.74) !important;
  color:#e9eef3 !important;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.45), 0 0 0 2px rgba(255,255,255,.14);
  border-radius:.25rem;
}

.theme-premium .form-select option{ background-color:#1f2327; color:#e6e6e6; }
.theme-premium .form-select.form-select-sm{ padding-top:.25rem; padding-bottom:.25rem; }

/* User chip */
#main-navbar .user-chip{
  display:inline-flex; 
  align-items:center; 
  gap:.5rem;
  background: rgba(30,34,40,.7);
  color:#f0f4f8;
  border:1px solid rgba(255,255,255,.15);
  padding:.35rem .6rem; 
  border-radius:.25rem;
  box-shadow: 0 1px 2px rgba(0,0,0,.1);
}

#main-navbar .user-chip .user-avatar{
  width:24px; 
  height:24px; 
  border-radius:.25rem; 
  display:inline-flex; 
  align-items:center; 
  justify-content:center;
  font-size:.8rem; 
  font-weight:700; 
  border:1px solid rgba(255,255,255,.2);
}

#main-navbar .user-chip .user-role{
  font-size:.72rem; 
  letter-spacing:0; 
  padding:.15rem .45rem; 
  border-radius:.25rem;
  font-weight:600; 
  text-transform:none; 
  border:1px solid rgba(255,255,255,.15);
  color:#ffffff;
}

/* Graphs toggle */
.graphs-toggle-btn{
  display:inline-flex; 
  align-items:center; 
  gap:.4rem; 
  border:1px solid rgba(255,255,255,.22);
  background: rgba(30,34,40,.75); 
  color:#e6e6e6; 
  border-radius:.5rem; 
  padding:.35rem .75rem; 
  font-weight:600;
  transition: background .2s ease, box-shadow .25s ease, transform .1s ease;
}

.graphs-toggle-btn:hover{ 
  background:#5286ff !important; 
  color:#fff !important; 
  transform: none; 
}

/* Pagination */
.theme-premium .pagination{
  --pg-bg: rgba(30,34,40,.75);
  --pg-border: rgba(255,255,255,.12);
  --pg-text: #e9eef3;
  --pg-hover-bg: rgba(51,65,85,.85);
  --pg-hover-border: rgba(255,255,255,.2);
  --pg-active-bg: rgba(59,130,246,.2);
  --pg-active-border: rgba(59,130,246,.4);
  --pg-disabled-text: rgba(233,238,243,.4);
}

.theme-premium .page-link{
  background: var(--pg-bg) !important;
  color: var(--pg-text) !important;
  border: 1px solid var(--pg-border) !important;
  box-shadow: none;
  border-radius: .25rem;
}

.theme-premium .page-link:hover{
  background: var(--pg-hover-bg) !important;
  color:#ffffff !important;
  border-color: var(--pg-hover-border) !important;
}

.theme-premium .page-item.active .page-link{
  background: var(--pg-active-bg) !important;
  color:#fff !important;
  border-color: var(--pg-active-border) !important;
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.3);
}

.theme-premium .page-item.disabled .page-link{
  color: var(--pg-disabled-text) !important;
  background: rgba(30,34,40,.5) !important;
  border-color: rgba(255,255,255,.08) !important;
  opacity: .7;
}

.theme-premium .page-link:focus{
  outline:0; 
  box-shadow: 0 0 0 3px rgba(59,130,246,.25) !important;
}

/* Nav pills */
.theme-premium .nav.nav-pills .nav-link{
  background: rgba(30,34,40,.7) !important;
  color:#e9eef3 !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:.25rem !important;
  font-weight:600 !important;
  box-shadow: none;
  transition: all 0.15s ease;
}

.theme-premium .nav.nav-pills .nav-link:hover{
  background: rgba(51,65,85,.8) !important;
  color:#ffffff !important;
  border-color: rgba(255,255,255,.2) !important;
}

.theme-premium .nav.nav-pills .nav-link.active{
  background: rgba(59,130,246,.2) !important;
  color:#fff !important;
  border-color: rgba(59,130,246,.4) !important;
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.3);
}

.theme-premium .nav.nav-pills .nav-link:focus{ 
  outline:0; 
  box-shadow: 0 0 0 3px rgba(59,130,246,.25) !important; 
}

/* Probability chips */
.theme-premium .probability-chip{
  background: rgba(34,39,46,.78) !important;
  color:#e9eef3 !important;
  border-radius:.25rem;
  border-width:1px; 
  border-style:solid;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.1);
  border-color: var(--chip-border-color, currentColor) !important;
  transition: all 0.15s ease;
}

.theme-premium .probability-chip:hover{
  background: rgba(28,32,38,.75) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.25), 0 2px 4px rgba(0,0,0,.15);
  transform: none;
}

.theme-premium .probability-chip .text-muted{ color:#cfd6de !important; }
.theme-premium .probability-chip .badge{ border:1px solid rgba(255,255,255,.15); }
.theme-premium .probability-chip .badge.bg-info{ background: rgba(59,130,246,.85) !important; color:#ffffff !important; }
.theme-premium .probability-chip.border-secondary{ --chip-border-color: rgba(255,255,255,.25); }

/* Summary metrics */
.theme-premium #metricsSummary .card.bg-dark{ 
  background: rgba(34,39,46,.86) !important; 
  box-shadow: var(--shadow-md), 0 0 0 1px var(--chip-border-color, rgba(255,255,255,.08)) !important; 
}

.theme-premium #metricsSummary .card .text-muted{ color:#e0e6ed !important; font-weight:600; }
.theme-premium #metricsSummary .card .text-success{ color:#10b981 !important; }
.theme-premium #metricsSummary .card .text-info{ color:#0891b2 !important; }
.theme-premium #metricsSummary .card .text-warning{ color:#f59e0b !important; }
.theme-premium #metricsSummary .card .card-body > h6{ font-weight:800 !important; }

/* Misc */
.hero-premium{ 
  border:1px solid var(--glass-border); 
  background: linear-gradient(180deg, rgba(18,22,28,.6), rgba(18,22,28,.45)); 
  backdrop-filter:saturate(110%) blur(8px); 
  border-radius:.25rem; 
  padding:1.25rem 1.1rem; 
  box-shadow:var(--shadow-lg); 
}

.gradient-text{ 
  background: linear-gradient(135deg, #3b82f6, #1e3a5f); 
  -webkit-background-clip:text; 
  background-clip:text; 
  color:transparent; 
}

.site-footer{ 
  color:#aaa; 
  font-size:.95em; 
  padding-bottom:.75rem; 
  margin-top:auto; 
}

/* Table cell clamping for long text */
.cell-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  overflow: hidden;
  max-height: 3.1em;
  word-break: break-word;
}

.cell-clamp.expanded {
  line-clamp: unset;
  -webkit-line-clamp: unset;
  max-height: none;
}

.cell-clamp-wrap { max-width: 42ch; }

.toggle-clamp-btn { 
  color: var(--bs-info, #0dcaf0); 
  text-decoration: none; 
}

.toggle-clamp-btn:hover { 
  text-decoration: underline; 
}

/* Page-specific styles */

/* Email Schedules */
.form-check-group { list-style: none; padding-left: 0; }
.form-check-group .form-check { margin-bottom: .25rem; }
.form-check-input { margin-right: .4rem; }
.form-check-label { user-select: none; }
#startDateInput[disabled], #endDateInput[disabled] { opacity: .7; }
.form-check-group ul, .form-check-group li { list-style: none; margin: 0; padding: 0; }
.form-check { display: inline-flex; align-items: center; }

@media (min-width: 576px){
  .form-check-group { gap: .25rem 1rem; }
}

/* Changelog */
.changelog-card{ 
  background: var(--glass-bg); 
  border:1px solid var(--glass-border); 
  border-radius:.65rem; 
  box-shadow:0 10px 30px rgba(0,0,0,.35); 
  backdrop-filter:saturate(120%) blur(10px); 
}
.changelog-card .card-body{ padding:1rem 1.25rem; }
.changelog h1, .changelog h2, .changelog h3{ color:#e6f0ff; }
.changelog h1{ font-size:1.6rem; }
.changelog h2{ font-size:1.25rem; margin-top:1rem; border-bottom:1px solid rgba(255,255,255,.12); padding-bottom:.25rem; }
.changelog h3{ font-size:1.1rem; margin-top:.8rem; }
.changelog p, .changelog li{ color:#e6e6e6; }
.changelog code, .changelog pre{ background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:.35rem; padding:.1rem .3rem; }
.changelog a{ color:#cfe2ff; }
.changelog ul{ padding-left:1.2rem; }
.changelog .muted{ color:#aab2bd; }

/* Reports Dashboard */
.details-row > td { 
  background: var(--glass-bg); 
  padding:0 !important; 
  border-top:2px solid var(--glass-border); 
  backdrop-filter:saturate(120%) blur(8px); 
}
.details-row .details-inner { max-width:100%; overflow-x:auto; }
.details-row .details-inner thead th { position:sticky; top:0; background: rgba(18,22,28,.6); z-index:2; }
tr.report-row.open { box-shadow:0 0 0 2px rgba(13,110,253,.6) inset; }
.charts-panel { 
  background: var(--glass-bg); 
  padding:1rem 1.1rem 1.2rem; 
  border:1px solid var(--glass-border); 
  border-radius:.65rem; 
  box-shadow:0 10px 30px rgba(0,0,0,.35); 
  width:100%; 
  margin:0; 
  backdrop-filter:saturate(120%) blur(10px); 
}
.chart-grid { display:flex; flex-wrap:wrap; gap:1rem; }
.chart-box { 
  background: rgba(28,32,38,.55); 
  padding:.75rem .85rem 1rem; 
  border:1px solid var(--glass-border); 
  border-radius:.65rem; 
  box-shadow:0 8px 24px rgba(0,0,0,.35); 
  position:relative; 
  flex:1 1 320px; 
  min-width:280px; 
  max-width: 680px; 
}
.chart-box.chart-box--full { flex: 1 1 100%; min-width: 100%; }
.chart-box h6 { 
  font-size:.72rem; 
  text-transform:uppercase; 
  letter-spacing:.55px; 
  font-weight:600; 
  margin:0 0 .4rem; 
  opacity:.9; 
}
.chart-box canvas { width:100% !important; height:auto !important; min-height:180px; }
.graphs-toggle-btn { min-width:110px; }
.charts-panel.is-compact .chart-box { padding:.6rem .7rem .8rem; }
.charts-panel.is-compact .chart-box h6 { font-size:.66rem; opacity:.9; }
.charts-panel.is-compact .chart-box canvas { min-height:180px; }
.chart-box.pie-compact canvas { min-height:180px; }
.charts-panel.is-compact .chart-box.pie-compact canvas { min-height:180px; }
.details-row .table-responsive { max-height:80vh; min-height:420px; overflow:auto; }
.details-row thead th.sort-asc::after { content: ' \25B2'; opacity: .7; }
.details-row thead th.sort-desc::after { content: ' \25BC'; opacity: .7; }
.metric-card {
  background: rgba(30,34,40,.78);
  border:1px solid var(--chip-border-color, rgba(255,255,255,.22));
  border-radius:.6rem;
  padding:.6rem .85rem;
  box-shadow: 0 8px 24px rgba(0,0,0,.35), 0 0 0 2px var(--chip-glow, transparent);
  backdrop-filter:saturate(120%) blur(10px);
}
.metric-card[class*="border-"]{ border-color: var(--chip-border-color, currentColor) !important; }
.metric-card small { color:#e0e6ed; display:block; font-weight:600; letter-spacing:.2px; }
.metric-card .value { font-weight:800; text-shadow: 0 1px 2px rgba(0,0,0,.25); }
.metric-card:hover{ background: rgba(38,44,52,.86); box-shadow: 0 10px 30px rgba(0,0,0,.4), 0 0 0 2px var(--chip-glow-hover, transparent); }
body.graphs-hidden #reportsGraphs { display: none !important; }
body.graphs-hidden #customerChartBox { display: none !important; }

/* User Administration */
.users-table thead th { position: sticky; top: 0; z-index: 2; background-color: #212529; }
.users-table tbody tr:hover { background-color: rgba(255,255,255,0.03); }
.group-heading { background: rgba(255,255,255,0.05); }
.group-heading--admin { border-left: 3px solid var(--role-admin); }
.group-heading--manager { border-left: 3px solid var(--role-manager); }
.group-heading--service { border-left: 3px solid var(--role-service); }
.group-heading--user { border-left: 3px solid var(--role-user); }
.group-heading td { color: #adb5bd; }
.avatar { 
  display:inline-flex; 
  align-items:center; 
  justify-content:center; 
  width:26px; 
  height:26px; 
  border-radius:50%; 
  font-weight:600; 
  font-size:.8rem; 
  margin-right:.5rem; 
  background:#343a40; 
  border:1px solid #495057; 
}
tr:hover .avatar { border-color:#6c757d; }

/* Responsive */
@media (max-width: 991.98px){
  #main-navbar .navbar-nav .btn-nav{ width:100%; justify-content:flex-start; }
  #main-navbar .user-chip{ width:100%; justify-content:flex-start; }
  #main-navbar .navbar-nav.app-nav{
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .6rem;
    justify-content: flex-start !important;
  }
}
