@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--font-main:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--navy-900:#03142f;--navy-800:#07224f;--navy-700:#0c326d;--blue-600:#0284c7;--cyan-500:#00b8f0;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--emerald-500:#10b981;--emerald-100:#d1fae5;--emerald-800:#065f46;--rose-500:#f43f5e;--rose-100:#ffe4e6;--rose-800:#9f1239;--amber-500:#f59e0b;--amber-100:#fef3c7;--amber-800:#92400e}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--slate-50);color:var(--slate-900);-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}.shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}aside{background-color:var(--navy-900);color:#fff;border-right:1px solid #ffffff14;flex-direction:column;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.logo-box{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;margin-bottom:20px;padding:0 8px 24px;display:flex}.logo-icon{background:linear-gradient(135deg, var(--blue-600), var(--cyan-500));color:#fff;border-radius:10px;place-items:center;width:40px;height:40px;font-size:16px;font-weight:800;display:grid;box-shadow:0 4px 12px #00b8f04d}.logo-box b{letter-spacing:-.3px;font-size:17px;display:block}.logo-box small{color:var(--slate-400);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}nav{flex-direction:column;gap:6px;display:flex}.nav-btn{color:var(--slate-300);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;padding:12px 14px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.nav-btn:hover{color:#fff;background-color:#ffffff0f}.nav-btn.active{color:var(--cyan-500);border-left:3px solid var(--cyan-500);background:linear-gradient(90deg,#00b8f026,#0000);font-weight:700}.aside-footer{border-top:1px solid #ffffff14;margin-top:auto;padding-top:16px}.logout-btn{width:100%;color:var(--slate-400);cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:8px;padding:10px;font-size:13px;font-weight:600;transition:all .15s}.logout-btn:hover{color:var(--rose-500);background:#f43f5e1a;border-color:#f43f5e4d}.content{max-width:1560px;padding:32px 40px}.main-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.header-tag{color:var(--blue-600);letter-spacing:1px;margin-bottom:6px;font-size:11px;font-weight:700}.main-header h1{color:var(--slate-900);letter-spacing:-.6px;font-size:28px;font-weight:800}.header-actions{align-items:center;gap:12px;display:flex}.search-input{border:1px solid var(--slate-300);width:320px;color:var(--slate-900);background:#fff;border-radius:8px;outline:none;padding:10px 14px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--blue-600);box-shadow:0 0 0 3px #0284c726}.btn-primary{background:linear-gradient(135deg, var(--blue-600), var(--cyan-500));color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:13.5px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 2px 8px #00b8f040}.btn-primary:hover{opacity:.95;transform:translateY(-1px)}.btn-secondary{color:var(--slate-700);border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:600;transition:all .15s}.btn-secondary:hover{background:var(--slate-50);border-color:var(--slate-400)}.btn-row{gap:10px;margin-top:16px;display:flex}.alert-bar{background:var(--emerald-100);color:var(--emerald-800);cursor:pointer;border:1px solid #a7f3d0;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.metric-card{border:1px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:12px;padding:20px;transition:all .15s;box-shadow:0 1px 3px #0000000a}.metric-card:hover{border-color:var(--slate-300);transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.metric-title{color:var(--slate-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.metric-val{color:var(--slate-900);letter-spacing:-.5px;font-size:28px;font-weight:800;display:block}.metric-sub{color:var(--slate-400);margin-top:6px;font-size:12px;display:block}.split-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.card-panel{border:1px solid var(--slate-200);background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a}.card-panel h3{color:var(--slate-900);margin-bottom:8px;font-size:17px;font-weight:800}.muted{color:var(--slate-500);font-size:13.5px;line-height:1.5}.card-table{border:1px solid var(--slate-200);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.wisp-table{border-collapse:collapse;text-align:left;width:100%}.wisp-table th{background:var(--slate-100);color:var(--slate-600);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--slate-200);padding:14px 18px;font-size:11px;font-weight:700}.wisp-table td{border-bottom:1px solid var(--slate-200);vertical-align:middle;padding:14px 18px;font-size:13.5px}.wisp-table tr:last-child td{border-bottom:0}.wisp-table tr:hover td{background-color:var(--slate-50)}.sub-text{color:var(--slate-400);margin-top:3px;font-size:12px}.mono-text{font-family:var(--font-mono);color:var(--slate-700);font-size:12px}.tech-badge{background:var(--slate-200);color:var(--slate-700);border-radius:4px;margin-bottom:3px;padding:2px 6px;font-size:10.5px;font-weight:700;display:inline-block}.badge-recharge{color:#6d28d9;background:#ede9fe;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.status-badge{letter-spacing:.2px;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-block}.bg-emerald{background:var(--emerald-100);color:var(--emerald-800)}.bg-rose{background:var(--rose-100);color:var(--rose-800)}.bg-amber{background:var(--amber-100);color:var(--amber-800)}.bg-slate{background:var(--slate-200);color:var(--slate-600)}.action-buttons{flex-wrap:wrap;gap:6px;display:flex}.btn-action{border:1px solid var(--slate-300);color:var(--slate-700);cursor:pointer;background:#fff;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:700;transition:all .15s}.btn-action:hover{background:var(--slate-100);border-color:var(--slate-400)}.btn-action.success{color:var(--emerald-800);background:#f0fdf4;border-color:#bbf7d0}.btn-action.success:hover{background:var(--emerald-100)}.btn-action.danger{color:var(--rose-800);background:#fff1f2;border-color:#fecdd3}.btn-action.danger:hover{background:var(--rose-100)}.btn-action.warning{color:var(--amber-800);background:#fffbeb;border-color:#fde68a}.btn-action.highlight{color:#0369a1;background:#e0f2fe;border-color:#bae6fd}.invoices-filter-bar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.pill-group{gap:8px;display:flex}.pill-btn{border:1px solid var(--slate-300);color:var(--slate-600);cursor:pointer;background:#fff;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s}.pill-btn.active{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}.report-panel{border:1px solid var(--slate-200);background:#fff;border-radius:12px;margin-bottom:20px;padding:20px}.report-inputs{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.report-inputs label{color:var(--slate-600);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.report-inputs input,.report-inputs select{border:1px solid var(--slate-300);border-radius:6px;padding:8px 12px;font-size:13px}.report-summary{border-top:1px solid var(--slate-200);justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;font-size:14px;display:flex}.summary-card b{color:var(--emerald-800);font-size:18px}.summary-detail{color:var(--slate-600);gap:16px;font-size:13px;display:flex}.devices-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px;display:grid}.device-card{border:1px solid var(--slate-200);border-radius:10px;justify-content:space-between;align-items:center;padding:16px;display:flex}.device-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.jobs-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.job-row{border:1px solid var(--slate-200);border-radius:8px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;display:flex}.job-action{align-items:center;gap:8px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172aa6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-container{background:#fff;border-radius:16px;flex-direction:column;width:min(560px,100%);max-height:90vh;animation:.15s ease-out modalIn;display:flex;box-shadow:0 20px 40px #00000040}.modal-container.lg{width:min(780px,100%)}@keyframes modalIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.modal-head{border-bottom:1px solid var(--slate-200);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-head h3{color:var(--slate-900);font-size:18px;font-weight:800}.close-btn{color:var(--slate-400);cursor:pointer;background:0 0;border:0;padding:4px;font-size:18px}.close-btn:hover{color:var(--slate-700)}.modal-body{padding:24px;overflow-y:auto}.modal-foot{border-top:1px solid var(--slate-200);background:var(--slate-50);border-bottom-right-radius:16px;border-bottom-left-radius:16px;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal-error-alert{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13.5px;font-weight:600;line-height:1.4;display:flex;box-shadow:0 1px 2px #ef444414}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid.single{grid-template-columns:1fr}.col-span-2{grid-column:span 2}.form-grid label{color:var(--slate-700);flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;display:flex}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--slate-300);color:var(--slate-900);background:#fff;border-radius:8px;outline:none;padding:10px 14px;font-size:13.5px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--blue-600);box-shadow:0 0 0 3px #0284c726}.section-title{color:var(--blue-600);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:14px;font-weight:800}.info-banner{background:var(--slate-100);border:1px solid var(--slate-200);border-radius:8px;justify-content:space-between;align-items:center;padding:14px;display:flex}.checkbox-row{gap:20px;margin-top:4px;display:flex}.checkbox-row label{cursor:pointer;flex-direction:row;align-items:center;gap:8px}.zones-box{border:1px solid var(--slate-200);border-radius:8px;flex-wrap:wrap;gap:12px;padding:12px;display:flex}.checkbox-item{cursor:pointer;align-items:center;gap:6px;flex-direction:row!important;font-size:13px!important}.payment-entry{border-bottom:1px solid var(--slate-200);justify-content:space-between;align-items:center;padding:14px 0;display:flex}.login{background:radial-gradient(circle at 80% 20%, #00b8f026, transparent 40%), var(--navy-900);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border-radius:16px;width:min(440px,100%);padding:40px;box-shadow:0 25px 50px -12px #00000059}.login-brand{align-items:center;gap:12px;margin-bottom:24px;display:flex}.login-logo-badge{background:linear-gradient(135deg, var(--blue-600), var(--cyan-500));color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;font-size:18px;font-weight:800;display:grid}.login-brand h2{letter-spacing:-.5px;font-size:19px;font-weight:800}.login-brand small{color:var(--slate-500);font-size:11px;font-weight:700}.login-card h1{color:var(--slate-900);letter-spacing:-.5px;margin-bottom:6px;font-size:24px;font-weight:800}.login-sub{color:var(--slate-500);margin-bottom:28px;font-size:13.5px}.login-card form{flex-direction:column;gap:16px;display:flex}.login-card label{color:var(--slate-700);flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.login-card input{border:1px solid var(--slate-300);border-radius:8px;outline:none;padding:12px 14px;font-size:14px}.login-card input:focus{border-color:var(--blue-600);box-shadow:0 0 0 3px #0284c726}.primary-btn.full{background:linear-gradient(135deg, var(--blue-600), var(--cyan-500));color:#fff;cursor:pointer;border:0;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:700;box-shadow:0 4px 12px #00b8f04d}.login-error{color:var(--rose-800);background:var(--rose-100);text-align:center;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.text-green{color:var(--emerald-800)}.text-danger{color:var(--rose-800)}.text-amber{color:var(--amber-800)}.font-bold{font-weight:700}.text-lg{font-size:17px}.text-center{text-align:center}.py-4{padding-top:16px;padding-bottom:16px}.py-6{padding-top:24px;padding-bottom:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.pt-2{padding-top:8px}.border-t{border-top:1px solid var(--slate-200)}@media (width<=1024px){.shell{grid-template-columns:1fr}aside{border-bottom:1px solid #ffffff1a;border-right:0;flex-direction:row;align-items:center;height:auto;padding:12px 20px;position:static}.logo-box{border-bottom:0;margin-bottom:0;padding-bottom:0}nav{flex-flow:wrap}.aside-footer{border-top:0;margin-top:0;margin-left:auto;padding-top:0}.content{padding:20px}.metrics-grid{grid-template-columns:1fr 1fr}.split-grid{grid-template-columns:1fr}}@media (width<=640px){.metrics-grid{grid-template-columns:1fr}.main-header{flex-direction:column;align-items:flex-start}.header-actions{flex-direction:column;width:100%}.search-input{width:100%}.form-grid{grid-template-columns:1fr}.col-span-2{grid-column:span 1}.wisp-table{font-size:12px}}
