/* SaaSNext compatibility layer
   - Fixes missing classes used by Twig templates (Redmax base)
   - Improves layout stability so pages don't break when uploaded

   Load order: base.css -> app.css -> compat.css
*/

/* ---------- Utilities ---------- */
.hidden, .hidden-desc{display:none!important;}
.hidden-mobile{display:none;}
@media (min-width:992px){.hidden-mobile{display:block;}}

.text-center{text-align:center;}
.text-muted{color:var(--text-muted)!important;}
.muted{color:var(--text-muted)!important;}
.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.font-bold{font-weight:700;}
.text-xl{font-size:1.25rem;}
.mt-4{margin-top:var(--spacing-xl)!important;}
.mb-3{margin-bottom:var(--spacing-lg)!important;}
.width-40{width:40px;}

/* ---------- Buttons ---------- */
.btn-sm{padding:8px 14px;font-size:.875rem;}
.btn-lg{padding:12px 22px;font-size:1rem;}
.btn-xl{padding:14px 26px;font-size:1.05rem;border-radius:var(--radius-md);}
.btn-block{display:flex;width:100%;}
.btn-group{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;}

.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-muted);}
.btn-ghost:hover{color:var(--text-main);border-color:var(--border-color);background:rgba(255,255,255,.02);}

.btn-success{background:var(--success);color:white;box-shadow:0 4px 12px rgba(16,185,129,.2);}
.btn-success:hover{background:#059669;transform:translateY(-1px);}

.btn-danger{background:var(--danger);color:white;box-shadow:0 4px 12px rgba(239,68,68,.2);}
.btn-danger:hover{background:#dc2626;transform:translateY(-1px);} 

/* ---------- Forms ---------- */
.checkbox{display:flex;align-items:center;gap:10px;color:var(--text-muted);} 
.checkbox input{accent-color:var(--primary);} 

.form-row{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);} 
@media (min-width:768px){.form-row{grid-template-columns:1fr 1fr;}}

.input-group{display:flex;gap:var(--spacing-sm);align-items:stretch;}
.input-group .form-control{flex:1;}

/* ---------- Alerts (extra variants) ---------- */
.alert-success{background:rgba(16,185,129,.06);border-color:rgba(16,185,129,.25);color:#34d399;}
.alert-warning{background:rgba(245,158,11,.06);border-color:rgba(245,158,11,.25);color:#fbbf24;}

/* ---------- Layout wrappers ---------- */
.app-main{padding-bottom:84px;}
@media (min-width:992px){.app-main{padding-bottom:0;}}

.page-header{margin-bottom:var(--spacing-lg);} 
.page-header h1{font-size:1.5rem;font-family:var(--font-display);}

.page-content-wrapper{padding:var(--spacing-xl) 0;}
.page-title{font-size:1.6rem;font-family:var(--font-display);margin-bottom:var(--spacing-xs);} 
.page-body{margin-top:var(--spacing-lg);} 

/* Dashboard columns helpers */
.dashboard-grid{align-items:start;}
.col-main,.col-sidebar{min-width:0;}

/* ---------- Sidebar (class mismatch fix) ---------- */
.app-sidebar{background:var(--bg-card);border-right:1px solid var(--border-color);padding:var(--spacing-lg);display:none;}
@media (min-width:992px){.app-sidebar{display:block;}}

.sidebar-nav .nav-list{display:flex;flex-direction:column;gap:6px;}
.sidebar-nav .nav-item{margin:0;}
.sidebar-nav .nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--text-muted);}
.sidebar-nav .nav-link:hover{background:rgba(255,255,255,.03);color:var(--text-main);}
.sidebar-nav .nav-link.active{background:rgba(124,58,237,.12);color:var(--primary);border:1px solid rgba(124,58,237,.22);} 

/* ---------- Header polish ---------- */
.header-actions{display:flex;align-items:center;gap:var(--spacing-md);} 

.balance-badge{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border:1px solid var(--border-color);border-radius:999px;background:rgba(255,255,255,.02);} 
.balance-badge .label{color:var(--text-muted);font-size:.85rem;} 
.balance-badge .amount{font-weight:700;} 

.user-menu{display:flex;align-items:center;gap:var(--spacing-sm);} 
.auth-buttons{display:flex;gap:var(--spacing-sm);align-items:center;}

.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--border-color);background:rgba(255,255,255,.02);color:var(--text-muted);cursor:pointer;}
.theme-toggle:hover{color:var(--text-main);border-color:rgba(124,58,237,.35);} 

/* ---------- Header submenu ---------- */
.has-submenu{position:relative;}
.submenu{display:none;position:absolute;top:calc(100% + 10px);left:0;min-width:220px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px;box-shadow:var(--shadow-lg);z-index:200;}
.has-submenu:hover .submenu{display:block;}
.submenu li a{display:block;padding:10px 12px;border-radius:10px;color:var(--text-muted);} 
.submenu li a:hover{background:rgba(255,255,255,.03);color:var(--text-main);} 

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--border-color);background:rgba(255,255,255,.01);padding:var(--spacing-xl) 0;margin-top:var(--spacing-xl);} 
.footer-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl);} 
@media (min-width:992px){.footer-grid{grid-template-columns:2fr 1fr 1fr;align-items:start;}}
.footer-brand img{height:34px;margin-bottom:var(--spacing-md);} 
.footer-brand h4{font-family:var(--font-display);margin-bottom:var(--spacing-sm);} 
.footer-links h5,.footer-legal h5{margin-bottom:var(--spacing-md);color:var(--text-main);font-weight:700;font-family:var(--font-display);} 
.footer-links a,.footer-legal a{color:var(--text-muted);} 
.footer-links a:hover,.footer-legal a:hover{color:var(--primary);} 
.footer-links ul,.footer-legal ul{display:flex;flex-direction:column;gap:10px;}

/* ---------- Mobile nav items ---------- */
.mobile-item{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-muted);font-size:.72rem;}
.mobile-item.active{color:var(--primary);} 
.mobile-item i{font-size:1.1rem;}

/* ---------- Pagination ---------- */
.pagination{display:flex;gap:8px;flex-wrap:wrap;}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border-radius:10px;border:1px solid var(--border-color);color:var(--text-muted);background:rgba(255,255,255,.02);} 
.pagination a:hover{color:var(--text-main);border-color:rgba(124,58,237,.35);} 
.pagination .active,.pagination span.active{color:var(--primary);border-color:rgba(124,58,237,.35);background:rgba(124,58,237,.10);} 

/* ---------- Status helpers ---------- */
.success{color:var(--success);} 
.warning{color:var(--warning);} 
.danger{color:var(--danger);} 

/* ---------- Code blocks ---------- */
.code-block{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.9rem;}

/* ---------- Icon fallback system (Unicode) ---------- */
/* Uses Unicode glyphs so layout doesn't break if icon fonts are missing */
i[class^="icon-"], i[class*=" icon-"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.15em;
  height:1.15em;
  line-height:1;
}

i[class^="icon-"]::before, i[class*=" icon-"]::before{
  font-style:normal;
  font-weight:700;
}

.icon-home::before{content:"⌂";}
.icon-plus::before{content:"+";}
.icon-plus-circle::before{content:"⊕";}
.icon-list::before{content:"≡";}
.icon-grid::before{content:"▦";}
.icon-package::before{content:"▣";}
.icon-credit-card::before{content:"💳";}
.icon-wallet::before{content:"👛";}
.icon-message::before{content:"✉";}
.icon-help-circle::before{content:"?";}
.icon-settings::before{content:"⚙";}
.icon-user::before{content:"👤";}
.icon-moon::before{content:"☾";}
.icon-sun::before{content:"\2600";}
.icon-zap::before{content:"⚡";}
.icon-shield::before{content:"🛡";}
.icon-headphones::before{content:"🎧";}
.icon-chevron-down::before{content:"⌄";}
.light-mode .btn-ghost:hover{background:rgba(15,23,42,.04);}
.light-mode .balance-badge{background:rgba(15,23,42,.02);}
.light-mode .sidebar-nav .nav-link:hover{background:rgba(15,23,42,.04);}
.light-mode .submenu li a:hover{background:rgba(15,23,42,.04);}
.light-mode .site-footer{background:rgba(15,23,42,.02);}
.light-mode .pagination a,
.light-mode .pagination span{background:rgba(15,23,42,.02);}

/* ---------- SaaSNext auth layout refresh ---------- */
body.auth-mode #agrs{
  background:linear-gradient(180deg, rgba(14,20,36,.97) 0%, rgba(15,17,26,.93) 100%);
  border-bottom:1px solid rgba(148,163,184,.15);
  backdrop-filter:blur(10px);
}

.light-mode body.auth-mode #agrs{
  background:linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(248,250,252,.92) 100%);
  border-bottom:1px solid rgba(15,23,42,.08);
}

body.auth-mode .header-inner{
  gap:18px;
  overflow:visible;
}

body.auth-mode .logo img{
  height:34px;
  width:auto;
}

body.auth-mode .container{
  max-width:1360px;
}

body.auth-mode .header-actions{
  margin-left:auto;
  gap:12px;
  position:relative;
  z-index:260;
}

.header-emoji{
  font-size:1rem;
  line-height:1;
}

.menu-emoji{
  font-size:.95rem;
  line-height:1;
  margin-right:8px;
}

body.auth-mode .balance-badge{
  align-items:center;
  border-radius:14px;
  padding:10px 15px;
  background:rgba(124,58,237,.08);
  border-color:rgba(124,58,237,.25);
  font-size:.98rem;
}

body.auth-mode .balance-badge .label{
  font-size:.92rem;
}

body.auth-mode .balance-badge .amount{
  font-size:1.05rem;
}

.light-mode body.auth-mode .balance-badge{
  background:rgba(124,58,237,.07);
  border-color:rgba(124,58,237,.2);
}

.auth-controls{
  display:flex;
  align-items:center;
  gap:10px;
}

.auth-controls .btn-sm{
  font-size:.96rem;
  padding:10px 14px;
}

.account-dropdown{
  position:relative;
}

.account-toggle{
  gap:9px;
  border-radius:10px;
  min-height:42px;
}

.account-toggle .dropdown-caret{
  font-size:.85rem;
  opacity:.85;
}

.theme-toggle{
  width:42px;
  height:42px;
}

.theme-toggle .theme-emoji{
  font-size:1rem;
  line-height:1;
}

.account-dropdown-menu{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  width:240px;
  background:var(--bg-card);
  border:1px solid var(--border-color);
  border-radius:12px;
  padding:8px;
  box-shadow:0 16px 40px rgba(2,8,23,.35);
  opacity:0;
  transform:translateY(-4px);
  pointer-events:none;
  transition:all .16s ease;
  z-index:250;
}

.account-dropdown.open .account-dropdown-menu{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.account-dropdown:focus-within .account-dropdown-menu{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.account-dropdown-menu li a{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:8px 11px;
  border-radius:8px;
  color:var(--text-muted);
  font-weight:500;
}

.account-dropdown-menu li a:hover{
  background:rgba(124,58,237,.1);
  color:var(--text-main);
}

.app-layout{
  grid-template-columns:255px minmax(0, 1fr);
  gap:20px;
  padding-top:20px;
  min-height:calc(100vh - 92px);
}

.app-sidebar{
  display:block;
  position:sticky;
  top:96px;
  height:calc(100vh - 112px);
  overflow:auto;
  border-radius:16px;
  border:1px solid var(--border-color);
  background:linear-gradient(180deg, rgba(22,27,38,.96) 0%, rgba(17,24,39,.88) 100%);
  box-shadow:0 14px 28px rgba(2,8,23,.26);
  padding:16px 12px;
}

.light-mode .app-sidebar{
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  box-shadow:0 12px 24px rgba(15,23,42,.08);
}

.sidebar-context{
  padding:2px 6px 12px;
  margin-bottom:10px;
  border-bottom:1px solid rgba(148,163,184,.18);
}

.sidebar-context .sidebar-page-title{
  margin:0;
  font-size:1rem;
  line-height:1.2;
  font-weight:700;
  color:var(--text-main);
}

.sidebar-context .sidebar-page-desc{
  margin:4px 0 0;
  font-size:.8rem;
  line-height:1.35;
  color:var(--text-muted);
}

.sidebar-nav .nav-list{
  gap:6px;
}

.nav-emoji{
  font-size:1rem;
  line-height:1;
  flex-shrink:0;
}

.sidebar-nav .nav-link{
  min-height:48px;
  padding:11px 10px;
  gap:12px;
  border:1px solid transparent;
  border-radius:12px;
  font-weight:600;
  font-size:.98rem;
}

.sidebar-nav .nav-link i{
  width:1rem;
  opacity:.9;
  font-size:.92rem;
}

.sidebar-nav .nav-link:hover{
  background:rgba(124,58,237,.08);
  border-color:rgba(124,58,237,.18);
}

.sidebar-nav .nav-link.active{
  background:rgba(124,58,237,.14);
  border-color:rgba(124,58,237,.35);
  color:#c4b5fd;
}

.light-mode .sidebar-nav .nav-link.active{
  color:#5b21b6;
}

.main-content{
  padding:0 0 28px;
}

.new-order-grid{
  gap:20px;
}

@media (min-width:1200px){
  .new-order-grid{
    grid-template-columns:minmax(0,2.6fr) minmax(300px,1fr);
  }
}

.main-content .card{
  border-radius:16px;
  box-shadow:0 10px 24px rgba(2,8,23,.18);
}

.light-mode .main-content .card{
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}

@media (max-width:991px){
  .app-layout{grid-template-columns:1fr;padding-top:14px;}
  .app-sidebar{display:none;}
  body.auth-mode .header-actions{gap:8px;}
  body.auth-mode .balance-badge{padding:8px 10px;font-size:.85rem;}
  body.auth-mode .balance-badge .label{display:none;}
  .account-dropdown-menu{right:auto;left:0;}
  .header-inner{flex-wrap:wrap;}
  .nav-menu{display:none;}
  .theme-toggle{width:36px;height:36px;}
  .theme-toggle .theme-emoji{font-size:.9rem;}
}

@media (max-width:768px){
  .features-grid{
    grid-template-columns:1fr;
  }

  .feature-card{
    padding:var(--spacing-lg);
  }

  .landing-hero{
    padding:60px 0;
  }

  .login-section{
    min-height:calc(100vh - 80px);
    padding:var(--spacing-lg) 0;
  }
}

/* Smooth scrolling for better UX */
html{
  scroll-behavior:smooth;
}

/* Better focus styles for accessibility */
*:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}
