:root{--bg-outer:#e2e8f0;--bg-sidebar:#fff;--bg-content:#f4f7f8;--surface-color:#fff;--text-main:#334155;--text-muted:#64748b;--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#e0e7ff;--border-light:#e2e8f0;--shadow-sm:0 4px 15px #4f46e50a;--shadow-md:0 10px 30px #4f46e514}body{background-color:var(--bg-outer);color:var(--text-main);-webkit-font-smoothing:antialiased;justify-content:center;align-items:center;height:100vh;margin:0;padding:15px;font-family:Inter,sans-serif;font-size:14px;display:flex;overflow:hidden}.app-wrapper{background:var(--bg-content);width:100%;height:100%;box-shadow:var(--shadow-md);border:1px solid var(--border-light);border-radius:24px;display:none;overflow:hidden}#loginOverlay{z-index:9999;background:linear-gradient(135deg,#1e1b4b 0%,#4f46e5 50%,#312e81 100%);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0;overflow:hidden}#loginOverlay:before,#loginOverlay:after{content:"";filter:blur(80px);opacity:.25;pointer-events:none;border-radius:50%;position:absolute}#loginOverlay:before{background:#818cf8;width:500px;height:500px;animation:8s ease-in-out infinite alternate orb-drift;top:-120px;left:-100px}#loginOverlay:after{background:#6366f1;width:400px;height:400px;animation:10s ease-in-out infinite alternate-reverse orb-drift;bottom:-100px;right:-80px}@keyframes orb-drift{0%{transform:translate(0)scale(1)}to{transform:translate(40px,30px)scale(1.12)}}.login-card{z-index:1;-webkit-backdrop-filter:blur(24px);background:#fffffff7;border:1px solid #fff9;border-radius:28px;width:100%;max-width:420px;padding:48px 44px;position:relative;box-shadow:0 32px 80px #00000059}.login-brand{color:var(--primary);text-align:center;margin-bottom:10px;font-size:2.8rem}.sidebar{border-right:1px solid var(--border-light);z-index:10;background-color:#fff;flex-direction:column;flex-shrink:0;align-items:center;width:90px;padding:25px 0;display:flex}.sidebar .brand-icon{margin-bottom:30px}.sidebar .nav-pills{gap:8px}.sidebar .nav-link{width:72px;height:72px;color:var(--text-main);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:0;font-size:.75rem;font-weight:600;transition:all .2s ease-in-out;display:flex}.sidebar .nav-link i{color:var(--text-muted);font-size:1.4rem;transition:all .2s}.sidebar .nav-link:hover{background-color:#f1f5f9}.sidebar .nav-link.active{color:var(--primary);box-shadow:none;background-color:#f8fafc;position:relative;transform:none}.sidebar .nav-link.active i{color:var(--primary);font-weight:800}.sidebar .nav-link.active:before{content:"";background-color:var(--primary);border-radius:0 4px 4px 0;width:4px;height:60%;position:absolute;top:20%;left:-9px}.sidebar .create-btn{border:1px solid var(--border-light);background-color:#fff}.sidebar .create-btn:hover{border-color:var(--primary-light);background-color:var(--primary-light)}.sidebar #logoutBtn{gap:4px;height:auto;padding:10px 0}.sidebar #logoutBtn:hover{background-color:#fee2e2}.sidebar #logoutBtn i{color:#ef4444}.card{background:var(--surface-color);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-radius:20px;margin-bottom:20px;transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.section-title{color:var(--text-main);align-items:center;margin-bottom:1.2rem;font-size:1.15rem;font-weight:700;display:flex}.section-title i{color:var(--primary);margin-right:8px;font-size:1.1rem}.kpi-wrapper{flex-direction:column;justify-content:space-between;height:100%;padding:5px;display:flex}.kpi-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.kpi-icon{border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.2rem;display:flex}.icon-primary{color:#4f46e5;background:#e0e7ff}.icon-info{color:#0284c7;background:#e0f2fe}.icon-success{color:#16a34a;background:#dcfce7}.icon-warning{color:#d97706;background:#fef3c7}.icon-secondary{color:#475569;background:#f1f5f9}.kpi-value{color:var(--text-main);font-size:1.6rem;font-weight:800;line-height:1.2}.kpi-title{color:var(--text-muted);font-size:.85rem;font-weight:600}.table-floating{border-collapse:separate;border-spacing:0 8px;margin-top:-8px}.table-floating thead th{color:var(--text-muted);background:0 0;border:none;padding:0 15px 8px;font-size:.85rem;font-weight:600;border-bottom:none!important}.table-floating tbody tr{background:var(--surface-color);border-radius:12px;transition:transform .2s;box-shadow:0 2px 6px #00000005}.table-floating tbody tr:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.table-floating tbody td{border:none;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);vertical-align:middle;color:var(--text-main);padding:14px 15px;font-size:.9rem;font-weight:500}.table-floating tbody td:first-child{border-left:1px solid var(--border-light);border-top-left-radius:12px;border-bottom-left-radius:12px}.table-floating tbody td:last-child{border-right:1px solid var(--border-light);border-top-right-radius:12px;border-bottom-right-radius:12px}.form-control,.form-select{border:1px solid var(--border-light);background-color:var(--surface-color);color:var(--text-main);border-radius:10px;padding:.7rem 1rem;font-size:.9rem;font-weight:500;transition:all .3s}.form-control:focus,.form-select:focus{background-color:var(--surface-color);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.btn{border-radius:10px;padding:.7rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s}.btn-primary{background-color:var(--primary);color:#fff;border:none}.btn-primary:hover{background-color:var(--primary-hover);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #4f46e533}.badge-soft-success{color:#16a34a;background-color:#dcfce7;border-radius:6px;padding:.4em .8em;font-size:.75rem;font-weight:600}.badge-soft-danger{color:#dc2626;background-color:#fee2e2;border-radius:6px;padding:.4em .8em;font-size:.75rem;font-weight:600}.badge-soft-info{color:#0284c7;background-color:#e0f2fe;border-radius:6px;padding:.4em .8em;font-size:.75rem;font-weight:600}.badge-soft-warning{color:#d97706;background-color:#fef3c7;border-radius:6px;padding:.4em .8em;font-size:.75rem;font-weight:600}.action-btn{cursor:pointer;background:var(--bg-content);color:var(--text-muted);border:1px solid #0000;border-radius:6px;margin-left:4px;padding:.3rem .5rem;font-size:.85rem;transition:all .2s}.action-btn:hover{background:var(--border-light);color:var(--primary)}.custom-multi-wrapper{position:relative}.custom-dropdown{background:var(--surface-color);border:1px solid var(--border-light);box-shadow:var(--shadow-md);z-index:1000;border-radius:10px;max-height:200px;margin-top:5px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.custom-dropdown.show{display:block}.dropdown-item-custom{cursor:pointer;color:var(--text-main);border-bottom:1px solid var(--bg-content);padding:10px 15px;font-weight:500;transition:all .2s}.dropdown-item-custom:hover{background:var(--primary-light);color:var(--primary)}.tag-badge{background:var(--primary-light);color:var(--primary);border-radius:8px;align-items:center;gap:8px;padding:5px 12px;font-size:.85rem;font-weight:600;animation:.2s fadeIn;display:inline-flex}.tag-badge i{cursor:pointer;font-size:1rem;transition:all .2s}.tag-badge i:hover{color:var(--primary-hover);transform:scale(1.1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.sub-tabs{background-color:var(--surface-color);border:1px solid var(--border-light);border-radius:12px;gap:.2rem;padding:.3rem;display:inline-flex}.sub-tabs .nav-link{color:var(--text-muted);border-radius:8px;padding:.5rem 1.5rem;font-size:.9rem;font-weight:600;transition:all .3s}.sub-tabs .nav-link.active{background-color:var(--primary-light);color:var(--primary)}.chart-container{width:100%;height:300px;position:relative}#map{z-index:1;border:1px solid var(--border-light);border-radius:16px;width:100%;height:380px}.sticky-header{background-color:var(--bg-content);z-index:5;margin-bottom:8px;padding-bottom:8px;position:sticky;top:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.main-panel{background:var(--bg-content);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.top-header{background:var(--surface-color);border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 28px;display:flex}.top-header h2{color:var(--text-main);margin:0;font-size:1.15rem;font-weight:800}.tab-content#pills-tabContent{flex:1;padding:28px 28px 52px;overflow:hidden auto}.sidebar .brand-icon i{text-align:center;background:var(--primary-light);border-radius:14px;width:44px;height:44px;line-height:44px;display:block;color:var(--primary)!important;font-size:1.4rem!important}.top-header .status-dot{background:#22c55e;border-radius:50%;width:9px;height:9px;animation:2s infinite pulse-dot;display:inline-block;box-shadow:0 0 0 3px #22c55e33}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px #22c55e33}50%{box-shadow:0 0 0 6px #22c55e14}}.card .kpi-wrapper{position:relative}.col-lg-2 .card,.col-lg-3 .card{border-left:4px solid #0000}:is(.col-lg-2 .card:has(.icon-primary),.col-lg-3 .card:has(.icon-primary)){border-left-color:#4f46e5}:is(.col-lg-2 .card:has(.icon-info),.col-lg-3 .card:has(.icon-info)){border-left-color:#0ea5e9}:is(.col-lg-2 .card:has(.icon-success),.col-lg-3 .card:has(.icon-success)){border-left-color:#22c55e}:is(.col-lg-2 .card:has(.icon-secondary),.col-lg-3 .card:has(.icon-secondary)){border-left-color:#94a3b8}:is(.col-lg-2 .card:has(.icon-warning),.col-lg-3 .card:has(.icon-warning)){border-left-color:#f59e0b}.tab-pane.fade.show.active{animation:.22s tabEnter}@keyframes tabEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.badge-soft-secondary{color:#475569;background-color:#f1f5f9;border-radius:6px;padding:.4em .8em;font-size:.75rem;font-weight:600}#pills-reports>.card.border-0{background:linear-gradient(135deg,#fafbff 0%,#fff 100%);border:1px solid var(--border-light)!important}#map{height:420px}.pagination-controls{border-top:1px solid var(--border-light);margin-top:4px;padding-top:10px}.card:hover,.card.p-3:hover,.card.p-4:hover{transform:none}.section-title:after{content:"";background:var(--primary);border-radius:2px;width:28px;height:3px;margin-top:5px;display:block}.section-title{flex-direction:column;align-items:flex-start}.section-title i{margin-bottom:2px}.header-avatar-btn{border:1px solid var(--border-light);background:var(--surface-color);cursor:pointer;border-radius:14px;align-items:center;gap:10px;padding:6px 10px 6px 6px;transition:background .2s,border-color .2s,box-shadow .2s;display:flex}.header-avatar-btn:hover{background:var(--primary-light);border-color:var(--primary);box-shadow:0 0 0 3px #4f46e514}.avatar-sm{background:var(--primary);color:#fff;letter-spacing:-.5px;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.8rem;font-weight:800;display:flex}.avatar-lg{background:var(--primary);color:#fff;letter-spacing:-1px;border-radius:22px;justify-content:center;align-items:center;width:80px;height:80px;font-size:2rem;font-weight:800;display:flex;box-shadow:0 8px 28px #4f46e547}#profileDrawer{z-index:6000;pointer-events:none;justify-content:flex-end;display:flex;position:fixed;inset:0}#profileDrawer.open{pointer-events:all}#profileBackdrop{-webkit-backdrop-filter:blur(3px);opacity:0;cursor:pointer;background:#0f172a59;transition:opacity .28s;position:absolute;inset:0}#profileDrawer.open #profileBackdrop{opacity:1}.profile-panel{z-index:1;background:var(--surface-color);flex-direction:column;width:390px;max-width:92vw;height:100%;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;transform:translate(100%);box-shadow:-12px 0 48px #0f172a24}#profileDrawer.open .profile-panel{transform:translate(0)}.profile-panel-header{border-bottom:1px solid var(--border-light);background:var(--surface-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.profile-panel-body{flex:1;padding:0 0 32px;overflow-y:auto}.profile-identity{text-align:center;border-bottom:1px solid var(--border-light);background:linear-gradient(160deg,#f0f4ff 0%,#fff 60%);flex-direction:column;align-items:center;padding:32px 24px 24px;display:flex}.profile-section{border-bottom:1px solid var(--border-light);padding:22px 24px}.profile-section:last-of-type{border-bottom:none}.profile-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:7px;margin-bottom:18px;font-size:.78rem;font-weight:700;display:flex}.profile-section-title i{color:var(--primary);font-size:1rem}.profile-label{color:var(--text-muted);margin-bottom:6px;font-size:.8rem;font-weight:700;display:block}.role-badge{border-radius:20px;align-items:center;padding:4px 14px;font-size:.78rem;font-weight:700;display:inline-flex}.role-supervisor{color:#6d28d9;background:#ede9fe}.role-rep{color:#0369a1;background:#e0f2fe}.pw-input-wrap{position:relative}.pw-input-wrap .form-control{padding-right:44px}.pw-toggle{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:1rem;line-height:1;transition:color .2s;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--primary)}.profile-msg{border-radius:10px;align-items:center;gap:8px;margin:0 24px;padding:10px 14px;font-size:.85rem;font-weight:600;display:flex}.profile-msg:before{flex-shrink:0;font-family:bootstrap-icons;font-size:1rem}.profile-msg-success{color:#15803d;background:#dcfce7}.profile-msg-success:before{content:""}.profile-msg-danger{color:#b91c1c;background:#fee2e2}.profile-msg-danger:before{content:""}@media print{body{background:#fff;height:auto;display:block}.app-wrapper{box-shadow:none;border:none;border-radius:0;display:block}.sidebar,.btn,input,select,.pagination-controls{display:none!important}.main-panel{height:auto;padding:0;overflow:visible}.tab-content#pills-tabContent{padding:0;overflow:visible}.card{page-break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important}}
