/* ===== RADJO PANEL CSS ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  --primary: #22C55E;
  --primary-dark: #16A34A;
  --primary-light: rgba(34,197,94,0.15);
  --bg: #0F172A;
  --bg-secondary: #1E293B;
  --bg-card: #1E293B;
  --bg-glass: rgba(30,41,59,0.85);
  --border: rgba(255,255,255,0.08);
  --text: #F1F5F9;
  --text-muted: #94A3B8;
  --text-dim: #64748B;
  --success: #22C55E;
  --warning: #EAB308;
  --danger: #EF4444;
  --info: #3B82F6;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 4px 24px rgba(0,0,0,0.4);
  --shadow-glow: 0 0 24px rgba(34,197,94,0.2);
  --transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
  --header-h: 60px;
  --nav-h: 68px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  -webkit-tap-highlight-color:transparent;
  -webkit-font-smoothing:antialiased;
}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--bg-secondary);border-radius:4px;}

/* ===== SPLASH SCREEN ===== */
.splash-container{
  position:fixed;inset:0;
  background:var(--bg);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  z-index:9999;
  animation:fadeIn 0.5s ease;
}
.splash-content{display:flex;flex-direction:column;align-items:center;gap:20px;}
.splash-logo{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center;}
.logo-ring{
  width:100px;height:100px;
  border-radius:50%;
  border:3px solid var(--primary);
  display:flex;align-items:center;justify-content:center;
  animation:rotate 3s linear infinite;
  position:relative;
}
.logo-ring::before{
  content:'';position:absolute;
  inset:-3px;border-radius:50%;
  border:3px solid transparent;
  border-top-color:var(--primary);
  animation:rotate 1s linear infinite;
}
.logo-inner{
  width:80px;height:80px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-glow);
}
.logo-text-splash{font-size:36px;font-weight:800;color:#fff;}
.splash-pulse{
  position:absolute;inset:-10px;
  border-radius:50%;
  border:2px solid var(--primary);
  animation:pulse-ring 2s ease infinite;
  opacity:0;
}
.splash-title{font-size:28px;font-weight:800;letter-spacing:2px;color:var(--text);}
.splash-tagline{color:var(--text-muted);font-size:14px;}
.splash-loader{width:240px;text-align:center;}
.loader-bar{height:4px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:8px;}
.loader-fill{height:100%;background:linear-gradient(90deg,var(--primary),#4ADE80);border-radius:4px;transition:width 0.5s ease;width:0%;}
.loader-text{font-size:12px;color:var(--text-dim);}
.splash-footer{position:absolute;bottom:24px;color:var(--text-dim);font-size:12px;}

/* ===== APP SHELL ===== */
.app-shell{display:flex;flex-direction:column;min-height:100vh;}

/* ===== HEADER ===== */
.app-header{
  position:fixed;top:0;left:0;right:0;
  height:var(--header-h);
  background:var(--bg-glass);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 16px;
  z-index:100;
}
.header-left,.header-right{display:flex;align-items:center;gap:8px;}
.header-brand{display:flex;align-items:center;gap:8px;}
.header-logo{width:28px;height:28px;border-radius:8px;}
.header-title{font-size:16px;font-weight:700;letter-spacing:0.5px;}
.btn-icon{
  width:38px;height:38px;
  border-radius:10px;
  background:var(--bg-secondary);
  border:1px solid var(--border);
  color:var(--text);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:18px;
  transition:var(--transition);
}
.btn-icon:hover{background:var(--primary);border-color:var(--primary);}
.notif-badge{
  position:absolute;top:-2px;right:-2px;
  width:16px;height:16px;
  border-radius:50%;
  background:var(--danger);
  font-size:9px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
}
.header-avatar{
  width:34px;height:34px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:#fff;
  cursor:pointer;
}

/* ===== SIDEBAR ===== */
.sidebar-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.7);
  z-index:200;
  backdrop-filter:blur(4px);
  animation:fadeIn 0.2s ease;
}
.sidebar{
  position:fixed;top:0;left:0;bottom:0;
  width:280px;
  background:var(--bg-secondary);
  z-index:201;
  overflow-y:auto;
  border-right:1px solid var(--border);
  animation:slideInLeft 0.3s cubic-bezier(0.4,0,0.2,1);
}
.sidebar-header{
  padding:20px 16px;
  background:linear-gradient(135deg,rgba(34,197,94,0.1),transparent);
  border-bottom:1px solid var(--border);
}
.sidebar-user{display:flex;align-items:center;gap:12px;}
.sidebar-avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:700;color:#fff;
  flex-shrink:0;
}
.sidebar-username{font-weight:700;font-size:15px;margin:0;color:var(--text);}
.sidebar-balance{font-size:12px;color:var(--primary);margin:2px 0 0;}
.sidebar-menu{list-style:none;padding:8px 0;}
.sidebar-menu li a{
  display:flex;align-items:center;gap:12px;
  padding:12px 20px;
  color:var(--text-muted);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  transition:var(--transition);
  border-left:3px solid transparent;
}
.sidebar-menu li a:hover,
.sidebar-menu li a.active{
  color:var(--primary);
  background:var(--primary-light);
  border-left-color:var(--primary);
}
.sidebar-menu li a i{font-size:18px;width:20px;}
.sidebar-divider{height:1px;background:var(--border);margin:8px 16px;}

/* ===== MAIN CONTENT ===== */
.app-main{
  margin-top:var(--header-h);
  margin-bottom:var(--nav-h);
  min-height:calc(100vh - var(--header-h) - var(--nav-h));
  overflow-y:auto;
}
.page-content{
  display:none;
  padding:16px;
  animation:fadeInUp 0.3s ease;
}
.page-content.active{display:block;}

/* ===== PAGE HEADER ===== */
.page-header{margin-bottom:20px;}
.page-title{font-size:22px;font-weight:800;color:var(--text);margin:0 0 4px;}
.page-subtitle{font-size:13px;color:var(--text-muted);margin:0;}

/* ===== BOTTOM NAV ===== */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;
  height:var(--nav-h);
  background:var(--bg-glass);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--border);
  display:flex;align-items:center;
  z-index:100;
  padding:0 4px;
}
.nav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;padding:6px 2px;
  color:var(--text-dim);text-decoration:none;
  font-size:10px;font-weight:600;
  cursor:pointer;transition:var(--transition);
  border-radius:12px;
  letter-spacing:0.3px;
}
.nav-item i{font-size:20px;}
.nav-item.active,.nav-item:hover{color:var(--primary);}
.nav-center{position:relative;top:-8px;}
.nav-center-btn{
  width:50px;height:50px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(34,197,94,0.4);
  transition:var(--transition);
  margin-bottom:2px;
}
.nav-center-btn i{font-size:22px;color:#fff;}
.nav-center.active .nav-center-btn,
.nav-center:hover .nav-center-btn{
  box-shadow:0 6px 24px rgba(34,197,94,0.6);
  transform:translateY(-2px);
}

/* ===== GLASS CARD ===== */
.glass-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:20px;
  transition:var(--transition);
}

/* ===== BANNER CARD ===== */
.banner-card{
  background:linear-gradient(135deg,#16A34A,#22C55E,#4ADE80);
  border-radius:var(--radius);
  padding:20px;
  position:relative;overflow:hidden;
}
.banner-card::before{
  content:'';position:absolute;
  right:-30px;top:-30px;
  width:120px;height:120px;
  border-radius:50%;
  background:rgba(255,255,255,0.1);
}
.banner-card::after{
  content:'';position:absolute;
  right:20px;bottom:-20px;
  width:80px;height:80px;
  border-radius:50%;
  background:rgba(255,255,255,0.07);
}
.banner-content{position:relative;z-index:1;}
.banner-content h3{font-size:17px;font-weight:800;color:#fff;margin:0 0 4px;}
.banner-content p{font-size:12px;color:rgba(255,255,255,0.85);margin:0;}

/* ===== STATS GRID ===== */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.stat-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
  display:flex;align-items:center;gap:12px;
  transition:var(--transition);
}
.stat-card:hover{border-color:var(--primary);box-shadow:var(--shadow-glow);}
.stat-icon{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;
}
.stat-info{flex:1;min-width:0;}
.stat-label{font-size:11px;color:var(--text-muted);margin:0;text-transform:uppercase;letter-spacing:0.5px;}
.stat-value{font-size:15px;font-weight:700;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ===== SECTION TITLE ===== */
.section-title-row{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;
}
.section-title-row h5{font-size:15px;font-weight:700;margin:0;}
.see-all{font-size:12px;color:var(--primary);text-decoration:none;font-weight:600;}

/* ===== QUICK ACTIONS ===== */
.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.quick-action-btn{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px 8px;
  cursor:pointer;transition:var(--transition);
  text-align:center;
}
.quick-action-btn:hover{border-color:var(--primary);transform:translateY(-2px);}
.qa-icon{
  width:44px;height:44px;border-radius:12px;
  background:var(--primary-light);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;color:var(--primary);
}
.quick-action-btn span{font-size:11px;font-weight:600;color:var(--text-muted);}

/* ===== ANNOUNCEMENT ===== */
.announcement-item{
  background:linear-gradient(135deg,rgba(234,179,8,0.1),rgba(234,179,8,0.05));
  border:1px solid rgba(234,179,8,0.25);
  border-radius:var(--radius-sm);
  padding:14px;
  margin-bottom:8px;
}
.announcement-title{font-size:13px;font-weight:700;color:var(--warning);margin:0 0 4px;}
.announcement-msg{font-size:12px;color:var(--text-muted);margin:0;}

/* ===== SEARCH BOX ===== */
.search-box{position:relative;}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:16px;z-index:1;}
.search-input{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);color:var(--text);
  padding:12px 16px 12px 42px;font-size:14px;
  width:100%;
}
.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none;}

/* ===== CATEGORY FILTER ===== */
.category-filter{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;}
.category-filter::-webkit-scrollbar{display:none;}
.cat-btn{
  padding:6px 16px;border-radius:20px;
  border:1px solid var(--border);
  background:var(--bg-card);color:var(--text-muted);
  font-size:12px;font-weight:600;cursor:pointer;
  white-space:nowrap;transition:var(--transition);
  flex-shrink:0;
}
.cat-btn.active,.cat-btn:hover{
  background:var(--primary);border-color:var(--primary);color:#fff;
}

/* ===== SERVICE CARD ===== */
.service-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px;
  margin-bottom:10px;cursor:pointer;
  transition:var(--transition);
  display:flex;gap:12px;align-items:center;
}
.service-card:hover{border-color:var(--primary);transform:translateX(4px);}
.service-icon{
  width:44px;height:44px;border-radius:12px;
  background:var(--primary-light);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;
}
.service-info{flex:1;min-width:0;}
.service-name{font-size:14px;font-weight:600;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.service-category{font-size:11px;color:var(--text-dim);margin:0 0 6px;}
.service-price{font-size:13px;font-weight:700;color:var(--primary);margin:0;}
.service-price small{font-size:10px;font-weight:400;color:var(--text-muted);}
.service-badge{
  padding:3px 8px;border-radius:20px;
  font-size:10px;font-weight:700;
  background:rgba(34,197,94,0.15);color:var(--primary);
  flex-shrink:0;
}

/* ===== ORDER FORM ===== */
.dark-select,.dark-input{
  background:var(--bg)!important;
  border:1px solid var(--border)!important;
  color:var(--text)!important;
  border-radius:var(--radius-sm)!important;
  padding:12px 14px!important;
  font-size:14px!important;
  transition:var(--transition)!important;
}
.dark-select:focus,.dark-input:focus{
  border-color:var(--primary)!important;
  box-shadow:0 0 0 3px var(--primary-light)!important;
  outline:none!important;
}
.dark-select option{background:var(--bg-secondary);color:var(--text);}
.form-label{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:8px;}
.dark-addon{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);}
.input-group .dark-input{border-left:0!important;}
.input-icon-group{position:relative;}
.input-icon-group>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-dim);z-index:1;}
.input-icon-group .dark-input{padding-left:40px!important;}
.btn-toggle-pw{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--text-dim);cursor:pointer;z-index:1;
  padding:4px;
}

/* ===== SERVICE DETAIL CARD ===== */
.service-detail-card{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px;
}
.detail-item{margin-bottom:8px;}
.detail-label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.5px;display:block;margin-bottom:2px;}
.detail-val{font-size:14px;font-weight:600;}
.detail-desc{font-size:13px;color:var(--text-muted);margin:4px 0 0;}

/* ===== PRICE SUMMARY ===== */
.price-summary{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px;
}
.price-row{
  display:flex;justify-content:space-between;
  padding:6px 0;font-size:13px;color:var(--text-muted);
  border-bottom:1px solid var(--border);
}
.price-row:last-child{border-bottom:none;}
.total-row{color:var(--text);font-size:15px;font-weight:600;}

/* ===== ORDER HISTORY CARDS ===== */
.order-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px;
  margin-bottom:10px;transition:var(--transition);
}
.order-card:hover{border-color:rgba(255,255,255,0.15);}
.order-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;}
.order-id{font-size:11px;color:var(--text-dim);}
.order-service{font-size:13px;font-weight:600;margin:4px 0;}
.order-target{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.order-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);}
.order-price{font-size:14px;font-weight:700;color:var(--primary);}
.order-qty{font-size:12px;color:var(--text-muted);}
.status-badge{
  padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;
}
.status-pending{background:rgba(234,179,8,0.15);color:var(--warning);}
.status-processing{background:rgba(59,130,246,0.15);color:var(--info);}
.status-completed{background:rgba(34,197,94,0.15);color:var(--success);}
.status-failed{background:rgba(239,68,68,0.15);color:var(--danger);}
.status-partial{background:rgba(168,85,247,0.15);color:#A855F7;}

/* ===== FILTER TABS ===== */
.filter-tabs{display:flex;gap:8px;overflow-x:auto;}
.filter-tabs::-webkit-scrollbar{display:none;}
.filter-tab{
  padding:6px 16px;border-radius:20px;
  border:1px solid var(--border);background:var(--bg-card);
  color:var(--text-muted);font-size:12px;font-weight:600;
  cursor:pointer;white-space:nowrap;transition:var(--transition);
  flex-shrink:0;
}
.filter-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;}

/* ===== DEPOSIT ===== */
.balance-display{text-align:center;padding:20px 0;}
.balance-label{font-size:12px;color:var(--text-muted);margin:0 0 4px;}
.balance-big{font-size:32px;font-weight:800;color:var(--primary);margin:0;}
.nominal-chips{display:flex;gap:8px;flex-wrap:wrap;}
.chip{
  padding:6px 14px;border-radius:20px;
  border:1px solid var(--border);background:var(--bg);
  color:var(--text-muted);font-size:12px;font-weight:600;
  cursor:pointer;transition:var(--transition);
}
.chip:hover,.chip.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);}

/* ===== PAYMENT METHODS ===== */
.payment-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.payment-method-btn{
  background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:12px 8px;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  cursor:pointer;transition:var(--transition);text-align:center;
}
.payment-method-btn.active{border-color:var(--primary);background:var(--primary-light);}
.payment-method-btn i{font-size:20px;color:var(--primary);}
.payment-method-btn span{font-size:10px;font-weight:600;color:var(--text-muted);}
.payment-method-btn.active span{color:var(--primary);}

/* ===== DEPOSIT CARD ===== */
.deposit-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:14px;margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:center;
}
.deposit-info{flex:1;}
.deposit-method{font-size:13px;font-weight:600;margin:0 0 2px;}
.deposit-date{font-size:11px;color:var(--text-muted);}
.deposit-right{text-align:right;}
.deposit-amount{font-size:15px;font-weight:700;color:var(--success);margin:0 0 4px;}

/* ===== PROFILE ===== */
.profile-hero{text-align:center;padding:24px 0;}
.profile-avatar-big{
  width:80px;height:80px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  font-size:32px;font-weight:800;color:#fff;
  margin:0 auto 12px;
  box-shadow:0 0 30px rgba(34,197,94,0.4);
}
.profile-hero h3{font-size:20px;font-weight:800;margin:0 0 4px;}
.profile-hero p{color:var(--text-muted);font-size:13px;margin:0 0 12px;}
.profile-badge{
  display:inline-block;padding:4px 14px;
  border-radius:20px;font-size:11px;font-weight:700;
  background:var(--primary-light);color:var(--primary);
}
.profile-stat-row{display:flex;text-align:center;}
.pstat{flex:1;padding:12px;border-right:1px solid var(--border);}
.pstat:last-child{border-right:none;}
.pstat-label{font-size:11px;color:var(--text-dim);margin:0 0 4px;}
.pstat-val{font-size:15px;font-weight:700;margin:0;}

/* ===== MENU LIST ===== */
.menu-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.menu-item{
  display:flex;align-items:center;gap:12px;
  padding:16px 20px;color:var(--text);text-decoration:none;
  font-size:14px;font-weight:500;
  border-bottom:1px solid var(--border);
  transition:var(--transition);
}
.menu-item:last-child{border-bottom:none;}
.menu-item:hover{background:rgba(255,255,255,0.03);}
.menu-item i:first-child{font-size:18px;width:20px;color:var(--text-muted);}
.menu-item i:last-child{margin-left:auto;color:var(--text-dim);}

/* ===== AUTH SCREEN ===== */
.auth-screen{
  min-height:100vh;
  background:var(--bg);
  overflow-y:auto;
}
.auth-view{display:none;padding:24px 20px 40px;}
.auth-view.active{display:block;}
.auth-header{text-align:center;padding:40px 0 24px;}
.auth-logo{
  width:72px;height:72px;border-radius:20px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;
  font-size:28px;font-weight:800;color:#fff;
  margin:0 auto 16px;
  box-shadow:var(--shadow-glow);
}
.auth-header h2{font-size:24px;font-weight:800;margin:0 0 6px;}
.auth-header p{color:var(--text-muted);font-size:13px;margin:0;}
.auth-form{max-width:400px;margin:0 auto;}

/* ===== MODALS ===== */
.dark-modal{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);}
.dark-modal .modal-header{border-bottom:1px solid var(--border);}
.dark-modal .modal-footer{border-top:1px solid var(--border);}
.confirm-detail .row{gap:8px;}
.confirm-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px;}
.confirm-row:last-child{border-bottom:none;}
.confirm-label{color:var(--text-muted);}
.confirm-val{font-weight:600;}

/* ===== PWA PROMPT ===== */
.pwa-prompt{
  position:fixed;bottom:calc(var(--nav-h) + 12px);left:16px;right:16px;
  background:var(--bg-secondary);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;z-index:99;
  box-shadow:var(--shadow);
  animation:slideInUp 0.3s ease;
}
.pwa-icon{width:40px;height:40px;border-radius:10px;}

/* ===== LOADING STATES ===== */
.loading-state,.empty-state{
  text-align:center;padding:40px 20px;
  color:var(--text-dim);
}
.loading-state p,.empty-state p{font-size:13px;margin:12px 0 0;}
.empty-state i{font-size:40px;}
.spinner{
  width:32px;height:32px;border-radius:50%;
  border:3px solid var(--border);
  border-top-color:var(--primary);
  animation:rotate 0.8s linear infinite;
  margin:0 auto 8px;
}
.loading-overlay{
  position:fixed;inset:0;
  background:rgba(15,23,42,0.85);
  backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  z-index:9998;
}
.loading-box{
  background:var(--bg-secondary);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:30px 40px;text-align:center;
  min-width:180px;
}
.loading-box p{font-size:13px;color:var(--text-muted);margin:10px 0 0;}

/* ===== TOAST ===== */
#appToast{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);}
#appToast.toast-success{border-color:var(--success);}
#appToast.toast-error{border-color:var(--danger);}

/* ===== NOTIFICATIONS ===== */
.notif-item{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px;margin-bottom:8px;
  display:flex;gap:12px;
}
.notif-icon{
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
}
.notif-title{font-size:13px;font-weight:600;margin:0 0 4px;}
.notif-msg{font-size:12px;color:var(--text-muted);margin:0 0 4px;}
.notif-time{font-size:11px;color:var(--text-dim);}

/* ===== ANIMATIONS ===== */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideInLeft{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes slideInUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes pulse-ring{0%{opacity:0.8;transform:scale(1)}100%{opacity:0;transform:scale(1.4)}}

/* ===== RESPONSIVE ===== */
@media(min-width:768px){
  .app-main{max-width:480px;margin-left:auto;margin-right:auto;}
  .bottom-nav{max-width:480px;left:50%;transform:translateX(-50%);}
  .app-header{max-width:480px;left:50%;transform:translateX(-50%);}
}

/* ===== UTILITY ===== */
.text-success{color:var(--success)!important;}
.text-danger{color:var(--danger)!important;}
.text-warning{color:var(--warning)!important;}
.text-primary{color:var(--info)!important;}
.text-muted{color:var(--text-muted)!important;}
.btn-success{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600;border-radius:var(--radius-sm);}
.btn-success:hover{background:var(--primary-dark);border-color:var(--primary-dark);}
.btn-outline-secondary{color:var(--text-muted);border-color:var(--border);background:transparent;}
.btn-outline-secondary:hover{background:var(--bg-secondary);color:var(--text);}
.badge-admin{background:linear-gradient(135deg,#F59E0B,#D97706);color:#fff;}

/* ===== SPLASH TRANSITION ===== */
.splash-screen body{overflow:hidden;}
