/* St. Charles Catholic Church — Admin Panel Styles */
:root{--p:#1A237E;--pd:#0D1642;--pl:#3949AB;--g:#C9A84C;--bg:#F5F6FA;--w:#FFF;--t:#1A1A2E;--ts:#6B7280;--b:#E5E7EB;--ok:#10B981;--er:#EF4444;--wa:#F59E0B}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--t);line-height:1.5}
a{text-decoration:none;color:inherit}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--pd),var(--p))}
.login-box{background:var(--w);border-radius:20px;padding:48px 40px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-logo{text-align:center;margin-bottom:32px}
.logo-circle{width:72px;height:72px;border-radius:50%;background:rgba(201,168,76,.12);border:2px solid var(--g);display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}
.logo-circle span{font-size:24px;font-weight:800;color:var(--g)}
.login-logo h1{font-size:22px;font-weight:700}.login-logo p{font-size:14px;color:var(--ts);margin-top:4px}

/* Forms */
.form-group{margin-bottom:20px}
.form-group label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:1.5px solid var(--b);border-radius:12px;font-size:15px;outline:none;background:var(--bg);transition:.2s;font-family:inherit}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--p);background:var(--w)}
textarea{resize:vertical;min-height:80px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:12px;font-size:15px;font-weight:600;border:none;cursor:pointer;transition:.2s;text-decoration:none}
.btn-primary{background:var(--p);color:#fff;width:100%}.btn-primary:hover{background:var(--pl)}
.btn-success{background:var(--ok);color:#fff}.btn-danger{background:var(--er);color:#fff}
.btn-warning{background:var(--wa);color:#fff}
.btn-outline{background:transparent;border:1.5px solid var(--p);color:var(--p)}
.btn-sm{padding:6px 14px;font-size:13px;border-radius:8px}
.btn-logout{width:100%;padding:10px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);border-radius:10px;font-size:14px;font-weight:500;border:none;cursor:pointer;display:block;text-align:center}
.btn-logout:hover{background:rgba(239,68,68,.2);color:var(--er)}
.error-msg{color:var(--er);font-size:14px;text-align:center;margin-top:12px}

/* Layout */
.layout{display:flex;min-height:100vh}

/* Sidebar */
.sidebar{width:260px;background:var(--pd);color:#fff;position:fixed;top:0;left:0;bottom:0;display:flex;flex-direction:column;z-index:100;overflow-y:auto}
.sidebar-header{padding:28px 24px 24px;border-bottom:1px solid rgba(255,255,255,.1);text-align:center}
.sidebar-header h2{font-size:17px;font-weight:700;margin-top:8px}.sidebar-header p{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px}
.sidebar-nav{padding:16px 12px;flex:1}
.nav-item{display:flex;align-items:center;padding:12px 16px;border-radius:12px;margin-bottom:4px;color:rgba(255,255,255,.65);font-size:14px;font-weight:500;transition:.2s}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item.active{background:rgba(201,168,76,.2);color:var(--g);font-weight:600}
.nav-item .icon{margin-right:12px;font-size:18px}.nav-item .label{}
.sidebar-footer{padding:16px 24px;border-top:1px solid rgba(255,255,255,.1)}

/* Main */
.main-content{flex:1;margin-left:260px;background:var(--bg)}
.topbar{background:var(--w);padding:16px 32px;border-bottom:1px solid var(--b);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}
.topbar h1{font-size:22px;font-weight:700}
.badge{background:var(--g);color:#fff;padding:4px 14px;border-radius:20px;font-size:12px;font-weight:600}
.content-area{padding:32px}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:32px}
.stat-card{background:var(--w);border-radius:16px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.stat-icon{font-size:32px;margin-bottom:12px}.stat-value{font-size:28px;font-weight:800}
.stat-label{font-size:13px;color:var(--ts);margin-top:4px}
.stat-card.highlight{background:var(--p);color:#fff}
.stat-card.highlight .stat-label{color:rgba(255,255,255,.7)}

/* Tables */
.table-card{background:var(--w);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06);margin-bottom:24px}
.table-header{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--b)}
.table-header h3{font-size:17px;font-weight:700;margin:0}
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--ts);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--b);background:var(--bg);white-space:nowrap}
td{padding:14px 16px;font-size:14px;border-bottom:1px solid var(--b)}
tr:hover{background:rgba(26,35,126,.02)}
.empty-msg{text-align:center;color:var(--ts);padding:40px!important}

/* Status badges */
.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}
.status-paid,.status-approved,.status-redeemed{background:#D1FAE5;color:#065F46}
.status-pending{background:#FEF3C7;color:#92400E}
.status-failed,.status-rejected,.status-cancelled{background:#FEE2E2;color:#991B1B}

/* Filter tabs */
.filter-tabs{display:flex;gap:8px;margin-bottom:20px}
.filter-tab{padding:8px 20px;border-radius:25px;font-size:13px;font-weight:600;background:var(--w);color:var(--ts);transition:.2s}
.filter-tab.active{background:var(--p);color:#fff}
.filter-tab:hover{opacity:.8}

/* Alerts */
.alert{padding:14px 20px;border-radius:12px;margin-bottom:20px;font-size:14px;font-weight:500}
.alert-success{background:#D1FAE5;color:#065F46;border:1px solid #A7F3D0}

/* Responsive */
@media(max-width:768px){
  .sidebar{width:60px}
  .sidebar-header h2,.sidebar-header p,.nav-item .label,.sidebar-header .logo-circle{display:none}
  .sidebar-header{padding:16px 8px}
  .nav-item{justify-content:center;padding:14px}.nav-item .icon{margin:0}
  .main-content{margin-left:60px}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .content-area{padding:16px}
  .topbar{padding:12px 16px}
  table{font-size:12px}
  th,td{padding:8px 10px}
}
