/* ============================================================================
   LeaveApp Theme (Drop-in) v2.3.3
   - Overwrite-safe: replace existing theme.css and theme.js only
   - Contains: site-wide UI + modern login + icon overlap fixes
   ============================================================================ */
:root{
  --lp-primary:#1d4ed8; --lp-primary-2:#0b3ea0; --lp-accent:#0ea5e9;
  --lp-bg:#f6f8fc; --lp-surface:#ffffff; --lp-muted:#64748b; --lp-text:#0f172a;
  --lp-success:#16a34a; --lp-danger:#dc2626; --lp-warning:#d97706; --lp-info:#0ea5e9;
  --lp-radius:14px; --lp-shadow:0 10px 26px rgba(2,6,23,.08);
}

/* Base */
html,body{background:var(--lp-bg); color:var(--lp-text);}
a{color:var(--lp-primary);} a:hover{text-decoration:underline}

/* Navbar */
.app-nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(255,255,255,.85);border-bottom:1px solid rgba(15,23,42,.06)}
.app-nav .inner{display:flex;align-items:center;gap:16px;padding:10px 18px}
.app-brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--lp-primary-2)}
.app-brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--lp-accent),var(--lp-primary))}
.app-menu{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}
.app-menu a{padding:8px 12px;border-radius:10px;color:#0f172a;font-weight:600}
.app-menu a.active,.app-menu a:hover{background:#e8eefc;color:var(--lp-primary-2)}

/* Layout */
.container{width:min(1120px,92vw);margin:18px auto}
.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-2{grid-template-columns:1fr}}

/* Cards */
.card{background:var(--lp-surface);border:1px solid rgba(15,23,42,.06);border-radius:var(--lp-radius);box-shadow:var(--lp-shadow)}
.card-header{padding:14px 16px;border-bottom:1px solid rgba(15,23,42,.06);display:flex;align-items:center;justify-content:space-between}
.card-title{margin:0;font-weight:700}
.card-body{padding:16px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid transparent;cursor:pointer;font-weight:700}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn-primary{color:#fff;background:linear-gradient(135deg,var(--lp-accent),var(--lp-primary));box-shadow:0 8px 18px rgba(14,165,233,.35)}
.btn-secondary{color:#0f172a;background:#e6eefb;border-color:#d9e3fb}

/* Forms */
.form-control,input[type="text"],input[type="password"],input[type="email"],input[type="date"],input[type="number"],select,textarea{background:#fff;border:1px solid #dbe2ee;border-radius:12px;padding:10px 12px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lp-primary);box-shadow:0 0 0 3px rgba(29,78,216,.15)}

/* Tables */
.table{width:100%;border-collapse:separate;border-spacing:0}
.table thead th{background:#f1f5f9;text-align:left;padding:10px 12px;font-weight:700}
.table tbody td{padding:10px 12px;border-top:1px solid #edf2f7}
.table-hover tbody tr:hover{background:#f8fafc}
.table-striped tbody tr:nth-child(odd){background:#fbfdff}
.table-responsive{width:100%;overflow:auto;border-radius:12px;border:1px solid #e5e7eb}

/* Badges */
.badge{display:inline-block;padding:.38rem .6rem;border-radius:999px;font-weight:700;font-size:12px;border:1px solid transparent}
.badge.gray{background:#f1f5f9;color:#334155;border-color:#e2e8f0}
.badge.blue{background:#eef2ff;color:#1d4ed8;border-color:#c7d2fe}
.badge.green{background:#ecfdf5;color:#15803d;border-color:#bbf7d0}
.badge.red{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.badge.amber{background:#fff7ed;color:#b45309;border-color:#fed7aa}
.badge.cyan{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}

/* Alerts */
.alert{padding:12px 14px;border-radius:12px;border:1px solid}
.alert.info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}
.alert.success{background:#ecfdf5;border-color:#bbf7d0;color:#065f46}
.alert.warning{background:#fff7ed;border-color:#fed7aa;color:#92400e}
.alert.danger{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}

/* Calendar */
.calendar{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:var(--lp-shadow)}
.calendar .cal-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:linear-gradient(180deg,#f8fbff,#eef2ff);border-bottom:1px solid #e2e8f0}
.calendar table{width:100%;border-collapse:collapse}
.calendar th,.calendar td{padding:10px;text-align:center;border:1px solid #eef2f7}
.calendar .event.approved{background:#dcfce7;color:#166534}
.calendar .event.pending{background:#ffedd5;color:#9a3412}
.calendar .event.rejected{background:#fee2e2;color:#991b1b}
.calendar .is-today{outline:2px solid #60a5fa;outline-offset:-2px}.calendar .is-weekend{background:#fafafa}

/* Footer */
.app-footer{color:#64748b;font-size:12px;padding:24px 0 48px;text-align:center}

/* ---------------------- Modern Login ---------------------- */
body.login-modern{
  min-height:100dvh; display:flex; align-items:center; justify-content:center; color:#fff;
  background: radial-gradient(90vw 90vh at 10% 10%, rgba(255,255,255,.08), transparent 60%),
              radial-gradient(60vw 60vh at 90% 80%, rgba(255,255,255,.08), transparent 65%),
              linear-gradient(135deg, var(--lp-accent), var(--lp-primary) 40%, var(--lp-primary-2));
}
.lp-login-shell{ width:min(1100px,92vw); min-height:560px; display:grid; grid-template-columns:1fr 1fr;
  border-radius:22px; overflow:hidden; box-shadow:0 20px 50px rgba(2,6,23,.35); position:relative; isolation:isolate; }
.lp-login-left{ background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.02)); display:flex; align-items:center; justify-content:center; padding:40px; position:relative; }
.lp-login-left::before{ content:""; position:absolute; inset:0; background:url('../img/login_polygons.svg') no-repeat center/cover; opacity:.35; }
.lp-brand{text-align:center}
.lp-brand .lp-logo{ width:82px; height:82px; border-radius:20px; background: rgba(255,255,255,.2); display:inline-flex; align-items:center; justify-content:center; font-weight:800; box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); margin-bottom:18px; }
.lp-brand h2{ font-weight:700; margin:0 0 10px; }
.lp-divider{ position:absolute; left:50%; top:10%; bottom:10%; width:1px; background:linear-gradient(transparent, rgba(255,255,255,.6), transparent); transform:translateX(-.5px); }
.lp-login-right{ background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); display:flex; align-items:center; justify-content:center; padding:40px; }
.lp-card{ width:min(420px,92%); background: rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); border-radius:18px; box-shadow:0 12px 32px rgba(2,6,23,.2); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding:26px; }
.lp-card h1{ font-size:22px; font-weight:700; color:#fff; margin:0 0 16px; }

/* Login fields (robust with input-group) */
body.login-modern .lp-card label{display:block;margin:6px 0 6px;color:#e5edff;font-weight:600;letter-spacing:.2px}
.lp-field{position:relative;margin-bottom:14px;}
.lp-field .lp-input{padding:12px 14px;border-radius:12px;min-height:46px;line-height:1.3}
.lp-field.has-icon .lp-input{padding-left:52px !important;}
.lp-icon{position:absolute; left:14px; top:50%; transform:translateY(-50%); width:20px;height:20px;opacity:.95;pointer-events:none;z-index:3; color:#fff;}
/* hide legacy icons within login card */
body.login-modern .lp-card .input-group-prepend,
body.login-modern .lp-card .input-group-text,
body.login-modern .lp-card i.fa,
body.login-modern .lp-card [class*="fa-"],
body.login-modern .lp-card [class*="icon-"]{ display:none !important; }
body.login-modern .lp-card .input-group, body.login-modern .lp-card .form-group{ width:100% }
body.login-modern .lp-card .form-control{ border-radius:12px !important; }

.lp-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin:4px 0 14px; }
.lp-remember{ display:flex; align-items:center; gap:8px; font-size:13px; color:#f8fafc; opacity:.92; }
.lp-forgot{ font-size:13px; color:#e2e8f0; text-decoration:none; opacity:.92; } .lp-forgot:hover{ text-decoration:underline; }
.lp-btn{ width:100%; border:0; border-radius:12px; padding:12px 16px; font-weight:700; letter-spacing:.3px; color:#fff; background:linear-gradient(135deg, var(--lp-accent), var(--lp-primary)); box-shadow:0 8px 18px rgba(14,165,233,.35); }
.lp-meta{ margin-top:10px; font-size:12px; color:#e2e8f0; opacity:.8; text-align:center; }
@media (max-width:900px){ .lp-login-shell{ grid-template-columns:1fr; min-height:auto; } .lp-divider{ display:none; } .lp-login-left{ display:none; } .lp-login-right{ padding:28px; } }