:root{--sidebar:270px;--primary:#5b5ce2;--primary2:#7c3aed;--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#6b7280;--line:#e8ebf2;--dark:#101827}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}a{text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#111827,#0b1220);color:#fff;z-index:1040;display:flex;flex-direction:column;overflow-y:auto;transition:.25s}.brand{display:flex;align-items:center;gap:12px;padding:21px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--primary2));font-size:20px}.brand-title{font-weight:850}.brand-sub{font-size:10px;color:#94a3b8}.nav-area{padding:15px}.nav-label{font-size:10px;color:#64748b;font-weight:800;letter-spacing:.12em;margin:19px 12px 7px}.nav-link-app{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;margin-bottom:4px;border-radius:12px;color:#aeb9c8;font-size:13px;font-weight:600}.nav-link-app:hover{color:#fff;background:rgba(255,255,255,.07)}.nav-link-app.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 10px 25px rgba(91,92,226,.22)}.nav-link-app i{width:22px;text-align:center;font-size:17px}.sidebar-bottom{margin-top:auto;padding:15px;border-top:1px solid rgba(255,255,255,.08)}.btn-logout{width:100%;border:0;background:transparent;color:#fca5a5;text-align:left;padding:11px 12px;border-radius:11px}.btn-logout:hover{background:rgba(239,68,68,.12);color:#fff}.main{min-height:100vh;margin-left:var(--sidebar)}.topbar{height:78px;position:sticky;top:0;z-index:1020;padding:0 27px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.top-title{font-size:18px;font-weight:850}.top-date{font-size:11px;color:var(--muted)}.avatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--primary2))}.content{padding:27px}.menu-toggle{display:none;width:41px;height:41px;border:1px solid var(--line);background:#fff;border-radius:12px}.overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.58);z-index:1030}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head h1{font-size:24px;font-weight:850;margin:0 0 4px}.page-head p{font-size:13px;color:var(--muted);margin:0}.card-app{background:var(--card);border:1px solid var(--line);border-radius:19px;box-shadow:0 8px 25px rgba(30,41,59,.045);overflow:hidden}.card-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:15px;font-weight:800;margin:0}.card-body-app{padding:21px}.stat-card{height:100%;padding:20px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 25px rgba(30,41,59,.045)}.stat-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:19px}.bg-soft-primary{color:#4f46e5;background:#eef2ff}.bg-soft-success{color:#059669;background:#ecfdf5}.bg-soft-warning{color:#d97706;background:#fffbeb}.bg-soft-danger{color:#dc2626;background:#fef2f2}.bg-soft-info{color:#0284c7;background:#f0f9ff}.stat-label{font-size:12px;color:var(--muted);font-weight:650}.stat-value{font-size:25px;font-weight:850;margin-top:13px}.stat-note{font-size:10px;color:#94a3b8}.btn-primary-app{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:0 17px;border:0;border-radius:12px;color:#fff!important;background:linear-gradient(135deg,var(--primary),var(--primary2));font-size:13px;font-weight:750;box-shadow:0 10px 22px rgba(91,92,226,.18)}.btn-light-app{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:0 17px;border:1px solid var(--line);border-radius:12px;color:#475569;background:#fff;font-size:13px;font-weight:700}.form-label{font-size:12px;font-weight:750;color:#334155}.form-control,.form-select,.input-group-text{min-height:46px;border-color:#dfe3eb;border-radius:11px;font-size:13px}.form-control:focus,.form-select:focus{border-color:#6366f1;box-shadow:0 0 0 4px rgba(99,102,241,.1)}textarea.form-control{min-height:100px}.table-app{margin:0}.table-app thead th{padding:13px 16px;border:0;background:#f8fafc;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.table-app tbody td{padding:15px 16px;vertical-align:middle;border-color:#eef1f5;font-size:12px}.action-buttons{display:flex;gap:6px;justify-content:flex-end}.btn-icon{width:36px;height:36px;border-radius:10px;display:inline-grid;place-items:center;border:1px solid var(--line);background:#fff}.btn-icon.edit{color:#4f46e5;background:#eef2ff}.btn-icon.danger{color:#dc2626;background:#fef2f2}.btn-icon.warning{color:#d97706;background:#fffbeb}.badge-app{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:10px;font-weight:750}.empty{padding:55px 20px;text-align:center;color:#94a3b8}.empty i{font-size:32px;color:#6366f1}.filter-box{padding:18px;border-bottom:1px solid var(--line)}.detail-label{font-size:10px;color:#94a3b8;text-transform:uppercase;font-weight:800;letter-spacing:.04em}.detail-value{font-size:13px;font-weight:650;margin-top:3px}.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 10% 10%,rgba(91,92,226,.23),transparent 35%),radial-gradient(circle at 90% 90%,rgba(124,58,237,.18),transparent 35%),#f5f7fb}.login-card{width:min(980px,100%);display:grid;grid-template-columns:1.25fr .85fr;background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 30px 80px rgba(30,41,59,.17)}.login-brand{padding:52px;color:#fff;min-height:590px;background:linear-gradient(145deg,#4f46e5,#7c3aed);position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.09);right:-120px;top:-100px}.login-brand h1{font-size:41px;line-height:1.18;font-weight:850;margin-top:90px;position:relative;z-index:2}.login-brand p{color:rgba(255,255,255,.82);line-height:1.75;position:relative;z-index:2}.login-form{padding:48px;display:flex;align-items:center}.login-form>div{width:100%}.map-box{height:640px;border-radius:17px}.toast-flash{margin-bottom:18px}.invoice-total{font-size:26px;font-weight:900}.print-only{display:none}@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0}.content{padding:0}.card-app{box-shadow:none;border:0}.print-only{display:block}}@media(max-width:991px){.sidebar{transform:translateX(-100%)}.sidebar.show{transform:none}.main{margin-left:0}.menu-toggle{display:grid;place-items:center}.overlay.show{display:block}.content{padding:19px 15px}.topbar{padding:0 16px}.login-card{grid-template-columns:1fr;max-width:500px}.login-brand{display:none}.login-form{padding:38px 28px}.map-box{height:520px}}@media(max-width:576px){.page-head{flex-direction:column}.page-head .btn-primary-app{width:100%}.content{padding:16px 11px}.top-admin-text{display:none}}
