:root{
  --primary:#0d6efd;
  --primary-dark:#0a58ca;
  --accent:#00b4d8;
  --bg:#f4f6fb;
  --radius:1rem;
  --shadow:0 4px 18px rgba(30,41,59,.07);
  --shadow-lg:0 12px 32px rgba(30,41,59,.12);
}
*{font-family:'Segoe UI',system-ui,-apple-system,sans-serif}
html{scroll-behavior:smooth}
body{background:var(--bg);min-height:100vh;color:#1e293b}
a{text-decoration:none}
a:hover{text-decoration:none}

/* ---------- Navbar ---------- */
.navbar-mgt{background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 2px 12px rgba(13,110,253,.25);position:sticky;top:0;z-index:1030}
.navbar-mgt .navbar-brand{color:#fff;font-weight:700;letter-spacing:.3px}
.navbar-mgt .nav-link{color:rgba(255,255,255,.92);border-radius:.5rem;padding:.45rem .8rem;margin:0 .1rem;transition:.15s}
.navbar-mgt .nav-link:hover,.navbar-mgt .nav-link.active{color:#fff;background:rgba(255,255,255,.15)}
.navbar-mgt .dropdown-menu{border:0;box-shadow:var(--shadow-lg);border-radius:.7rem}

/* ---------- Card ---------- */
.card{border:0;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s, box-shadow .15s}
.card:hover{box-shadow:var(--shadow-lg)}
.card-header-mgt{background:linear-gradient(90deg,var(--primary),var(--accent));color:#fff;border-radius:var(--radius) var(--radius) 0 0!important;font-weight:600;border:0;padding:.9rem 1.25rem}

/* ---------- Button ---------- */
.btn{border-radius:.65rem;font-weight:600;transition:.15s}
.btn-mgt{background:linear-gradient(90deg,var(--primary),var(--accent));border:0;color:#fff;border-radius:.7rem;font-weight:600;padding:.6rem 1.4rem;transition:.15s}
.btn-mgt:hover{background:linear-gradient(90deg,var(--primary-dark),#0096c7);color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px rgba(13,110,253,.35)}
.btn-outline-primary{border-radius:.7rem}
.btn-outline-secondary{border-radius:.7rem}
.btn-wa{background:#25d366;color:#fff;border:0;border-radius:.7rem;font-weight:600}
.btn-wa:hover{background:#1da851;color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px rgba(37,211,102,.35)}

/* ---------- Form ---------- */
.form-control,.form-select{border-radius:.6rem;border-color:#e2e8f0;padding:.55rem .85rem}
.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(13,110,253,.15)}
.form-label{color:#334155}

/* ---------- Stat cards ---------- */
.stat-card{border-radius:var(--radius);padding:1.25rem;color:#fff;position:relative;overflow:hidden;transition:transform .15s}
.stat-card:hover{transform:translateY(-3px)}
.stat-card .stat-num{font-size:1.9rem;font-weight:700;line-height:1.1}
.stat-card .stat-label{opacity:.85;font-size:.85rem}
.stat-blue{background:linear-gradient(135deg,#0d6efd,#00b4d8)}
.stat-green{background:linear-gradient(135deg,#198754,#20c997)}
.stat-orange{background:linear-gradient(135deg,#fd7e14,#ffc107)}
.stat-red{background:linear-gradient(135deg,#dc3545,#ff6b6b)}
.stat-purple{background:linear-gradient(135deg,#6f42c1,#a370f7)}
.stat-gray{background:linear-gradient(135deg,#495057,#adb5bd)}

.badge-status{font-size:.8rem;padding:.45em .8em;border-radius:.6rem;font-weight:600}

/* ---------- Table ---------- */
.table thead th{background:#f1f5ff;color:#334155;font-weight:600;border-bottom:2px solid #e2e8f0;white-space:nowrap}
.table td{vertical-align:middle}
.table-hover tbody tr:hover{background:#f8faff}

/* ---------- Auth ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;background:linear-gradient(135deg,#0d6efd 0%,#00b4d8 100%);position:relative;overflow:hidden}
.auth-wrap::before,.auth-wrap::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.auth-wrap::before{width:420px;height:420px;top:-120px;right:-120px}
.auth-wrap::after{width:320px;height:320px;bottom:-100px;left:-100px}
.auth-card{max-width:440px;width:100%;margin:auto;border-radius:1.25rem;position:relative;z-index:1;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.auth-logo{width:56px;height:56px;max-width:56px;max-height:56px;margin:0 auto;object-fit:contain}

/* ---------- Sidebar ---------- */
.sidebar{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);position:sticky;top:76px}
.sidebar .list-group-item{border:0;border-radius:.6rem!important;margin-bottom:.25rem;color:#334155;font-weight:500;transition:.15s}
.sidebar .list-group-item.active{background:linear-gradient(90deg,var(--primary),var(--accent));border:0;box-shadow:0 4px 12px rgba(13,110,253,.3)}
.sidebar .list-group-item:hover:not(.active){background:#f1f5ff;transform:translateX(3px)}

/* ---------- Announcement ---------- */
.announce{background:linear-gradient(90deg,#fff8e1,#fff3cd);border-left:4px solid #ffc107;border-radius:.6rem;padding:.9rem 1.1rem;font-size:.92rem;color:#5c4a00}

/* ---------- Invoice ---------- */
.invoice-box{background:#fff;border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}
.invoice-box .inv-head{border-bottom:2px dashed #e2e8f0;padding-bottom:1rem;margin-bottom:1rem}

/* ---------- Peta ---------- */
#map,#mapConfirm{border:2px solid #e2e8f0}
.leaflet-container{font-family:inherit}

@media print{
  .navbar-mgt,.sidebar,.btn,.no-print,.alert{display:none!important}
  body{background:#fff}
  .invoice-box{box-shadow:none;padding:0}
  .card{box-shadow:none}
}
@media (max-width:767px){
  .stat-card .stat-num{font-size:1.4rem}
  .invoice-box{padding:1.25rem}
  #map{height:260px}
}
