@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap);.login-container{align-items:center;background:var(--light-bg);background-image:radial-gradient(circle at 2px 2px,var(--sidebar-border) 1px,#0000 0);background-size:32px 32px;display:flex;height:100vh;justify-content:center}.login-box{background:#fff;border:1px solid var(--sidebar-border);border-radius:24px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;max-width:440px;padding:48px;width:100%}.login-logo-container{display:flex;justify-content:center;margin-bottom:32px}.login-logo{filter:drop-shadow(0 4px 6px rgba(0,0,0,.05));height:96px;object-fit:contain;width:auto}.login-box h2{color:var(--dark-bg);font-size:20px;font-weight:800;letter-spacing:-.025em;margin-bottom:32px;text-align:center}.form-group input{background:var(--light-bg);border:1px solid var(--sidebar-border);border-radius:12px;font-size:15px;padding:12px 16px;text-transform:none!important;transition:all .2s}.form-group input:focus{background:#fff;box-shadow:0 0 0 4px var(--primary-soft)}.register-link{color:var(--secondary-color);font-size:14px;margin-top:24px;text-align:center}.register-link a{color:var(--primary-color);font-weight:700;margin-left:4px;text-decoration:none}.register-link a:hover{text-decoration:underline}@media (max-width:768px){.login-container{height:auto;min-height:100vh;padding:15px}.login-box{max-width:100%;padding:25px 20px;width:100%}.login-box h1{font-size:20px;margin-bottom:8px}.login-box h2{font-size:16px;margin-bottom:20px}.form-group{margin-bottom:15px}.form-group label{font-size:14px}.form-group input{font-size:16px;min-height:44px;padding:12px}.submit-btn{font-size:14px;min-height:44px;padding:12px}.register-link{font-size:14px;margin-top:15px}}.register-container{align-items:center;background:var(--light-bg);background-image:radial-gradient(circle at 2px 2px,var(--sidebar-border) 1px,#0000 0);background-size:32px 32px;display:flex;justify-content:center;min-height:100vh;padding:32px 16px}.register-box{background:#fff;border:1px solid var(--sidebar-border);border-radius:24px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;max-width:440px;padding:48px;width:100%}.register-box h2{color:var(--dark-bg);font-size:20px;font-weight:800;letter-spacing:-.025em;margin-bottom:32px;text-align:center}.form-group label{color:var(--secondary-color);font-size:13px;letter-spacing:.05em}.form-group input,.form-group select{background:var(--light-bg);border:1px solid var(--sidebar-border);border-radius:12px;font-size:15px;padding:12px 16px;text-transform:none!important;transition:all .2s}.form-group input:focus,.form-group select:focus{background:#fff;border-color:var(--primary-color);box-shadow:0 0 0 4px var(--primary-soft)}.submit-btn{background:var(--primary-color);border:none;border-radius:12px;box-shadow:0 4px 12px -2px #2563eb4d;color:#fff;cursor:pointer;font-size:15px;font-weight:700;margin-top:12px;padding:14px;transition:all .2s;width:100%}.submit-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 6px 16px -2px #2563eb66;transform:translateY(-1px)}.login-link{color:var(--secondary-color);font-size:14px;margin-top:24px;text-align:center}.login-link a{color:var(--primary-color);font-weight:700;margin-left:4px;text-decoration:none}.login-link a:hover{text-decoration:underline}@media (max-width:768px){.register-container{min-height:100vh;padding:15px}.register-box{max-width:100%;padding:25px 20px;width:100%}.register-box h1{font-size:20px;margin-bottom:8px}.register-box h2{font-size:16px;margin-bottom:20px}.form-group{margin-bottom:15px}.form-group label{font-size:14px}.form-group input,.form-group select{font-size:16px;min-height:44px;padding:12px}.submit-btn{font-size:14px;min-height:44px;padding:12px}.login-link{font-size:14px;margin-top:15px}}.sidebar{background:var(--sidebar-bg);box-shadow:1px 0 0 0 var(--sidebar-border);color:var(--sidebar-text);display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:fixed;top:0;transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .2s ease;width:250px;z-index:999}.sidebar-header{align-items:center;border-bottom:1px solid var(--sidebar-border);display:flex;justify-content:center;margin-bottom:15px;overflow:hidden;padding:16px 20px}.app-logo{filter:drop-shadow(0 4px 6px rgba(0,0,0,.05));height:160px;margin:-45px 0;object-fit:contain;width:auto}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:0 10px}.nav-section{margin:10px 0 2px}.nav-section-header{align-items:center;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;margin:0 4px;padding:10px 16px;transition:all .2s;-webkit-user-select:none;user-select:none}.nav-section-header:hover{background-color:var(--secondary-soft)}.nav-section-title{color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.section-toggle-icon{color:var(--text-secondary);font-size:10px;opacity:.6;transition:transform .3s ease}.nav-section.collapsed .section-toggle-icon{transform:rotate(-180deg)}.nav-section.collapsed .nav-section-content{margin-top:0;max-height:0;opacity:0;overflow:hidden}.nav-section-content{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:1000px;opacity:1;overflow:hidden;padding-left:8px;transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-item{align-items:center;border:1px solid #0000;border-radius:10px;color:var(--sidebar-text);display:flex;font-size:13.5px;font-weight:600;gap:12px;padding:10px 16px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.nav-item:hover{background:var(--secondary-soft);color:var(--primary-color);transform:translateX(2px)}.nav-item.active{background:var(--primary-soft);border-color:#6366f114;color:var(--primary-color);font-weight:700}.nav-icon{align-items:center;display:flex;font-size:18px;justify-content:center;opacity:.75;transition:transform .2s ease}.nav-item:hover .nav-icon{opacity:1;transform:scale(1.1)}.nav-item.active .nav-icon{opacity:1;transform:scale(1.05)}.sidebar-footer{border-top:1px solid var(--sidebar-border);margin-top:auto;padding:20px}.sidebar-role{background:var(--secondary-soft);border:1px solid var(--sidebar-border);border-radius:10px;box-shadow:inset 0 1px 2px #00000003;color:var(--text-secondary);font-size:10.5px;font-weight:700;letter-spacing:.05em;padding:8px 12px;text-align:center;text-transform:uppercase}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-track{background:#0000}.sidebar::-webkit-scrollbar-thumb{background:#0000000d;border-radius:10px}[data-theme=dark] .sidebar::-webkit-scrollbar-thumb{background:#ffffff0d}@media (max-width:768px){.hamburger-btn{align-items:center;background:var(--primary-color);border:none;border-radius:12px;box-shadow:0 4px 12px #4f46e533;color:#fff;cursor:pointer;display:flex;font-size:22px;height:45px;justify-content:center;left:15px;position:fixed;top:15px;transition:all .2s;width:45px;z-index:1000}.hamburger-btn:hover{background:var(--primary-hover);transform:scale(1.05)}.sidebar-overlay{animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#03071266;bottom:0;right:0;z-index:998}.sidebar,.sidebar-overlay{left:0;position:fixed;top:0}.sidebar{height:100vh;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:250px;z-index:999}.sidebar.open{transform:translateX(0)}.sidebar-close-btn{align-items:center;background:var(--secondary-soft);border:1px solid var(--sidebar-border);border-radius:10px;color:var(--text-primary);cursor:pointer;display:flex;font-size:16px;height:35px;justify-content:center;position:absolute;right:15px;top:15px;transition:all .2s;width:35px;z-index:1000}.sidebar-close-btn:hover{background:var(--primary-soft);color:var(--primary-color)}}@media (min-width:769px){.hamburger-btn,.sidebar-close-btn,.sidebar-overlay{display:none}}.navbar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--navbar-bg);border-bottom:1px solid var(--sidebar-border);box-shadow:0 1px 3px 0 #00000008,0 1px 2px 0 #00000005;color:var(--text-primary);padding:0;position:sticky;top:0;transition:background-color .2s ease,border-color .2s ease;z-index:100}.navbar-content{align-items:center;display:flex;justify-content:space-between;padding:14px 30px;width:100%}.navbar-left h1{color:var(--text-primary);font-size:18px;font-weight:800;letter-spacing:-.025em;margin:0}.navbar-right{align-items:center;display:flex;gap:20px}.theme-toggle-btn-nav{align-items:center;background:var(--secondary-soft);border:1px solid var(--sidebar-border);border-radius:12px;color:var(--text-primary);cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;padding:0;transition:all .25s cubic-bezier(.4,0,.2,1);width:40px}.theme-toggle-btn-nav:hover{background:var(--primary-soft);border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-1px) scale(1.05)}.user-dropdown{position:relative}.user-dropdown-btn{align-items:center;background:var(--card-bg);border:1px solid var(--sidebar-border);border-radius:12px;box-shadow:0 1px 2px #00000005;cursor:pointer;display:flex;gap:12px;padding:6px 14px;transition:all .25s ease}.user-dropdown-btn:hover{background:var(--secondary-soft);border-color:var(--primary-color);transform:translateY(-1px)}.user-avatar{align-items:center;background:linear-gradient(135deg,var(--primary-color),#818cf8);border-radius:50%;box-shadow:0 4px 10px #4f46e533;color:#fff;display:flex;font-size:14px;font-weight:800;height:34px;justify-content:center;width:34px}.user-details-dropdown{align-items:flex-start;display:flex;flex-direction:column;gap:2px}.username{color:var(--text-primary);font-size:13.5px;font-weight:700;letter-spacing:-.01em}.role{border-radius:20px;font-size:9px;font-weight:800;letter-spacing:.05em;padding:2px 8px;text-transform:uppercase}.role-superadmin{background:var(--error-soft);border:1px solid #ef44441a;color:var(--error-color)}.role-admin{border:1px solid #f59e0b1a}.role-user{background:var(--primary-soft);border:1px solid #4f46e51a;color:var(--primary-color)}.dropdown-arrow{color:var(--text-secondary);font-size:10px;transition:transform .2s}.user-dropdown-btn:hover .dropdown-arrow{color:var(--primary-color)}.dropdown-menu{animation:slideDown .2s cubic-bezier(.16,1,.3,1);background:var(--card-bg);border:1px solid var(--sidebar-border);border-radius:14px;box-shadow:0 10px 30px -10px #00000026,0 1px 5px #0000000d;min-width:200px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{background:#0000;border:none;color:var(--text-primary);font-size:13.5px;font-weight:600;gap:10px;padding:12px 18px;text-align:left;transition:all .2s;width:100%}.dropdown-item:hover{background:var(--secondary-soft);color:var(--primary-color);padding-left:20px}.logout-item,.logout-item:hover{color:var(--error-color)}.logout-item:hover{background:var(--error-soft)}.dropdown-divider{background:var(--sidebar-border);height:1px;margin:4px 0}@media (max-width:768px){.navbar-content{padding:14px 20px 14px 70px}.username{display:none}}.notifications-dropdown-wrapper,.notifications-trigger-btn{align-items:center;display:flex;position:relative}.notifications-trigger-btn{background:var(--secondary-soft);border:1px solid var(--sidebar-border);border-radius:12px;color:var(--text-primary);cursor:pointer;font-size:16px;height:40px;justify-content:center;padding:0;transition:all .25s cubic-bezier(.4,0,.2,1);width:40px}.notifications-trigger-btn:hover{background:var(--primary-soft);border-color:var(--primary-color);transform:translateY(-1px) scale(1.05)}.notifications-trigger-btn.has-unread{animation:pulse-ring 2s infinite}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 #4f46e566}70%{box-shadow:0 0 0 10px #4f46e500}to{box-shadow:0 0 0 0 #4f46e500}}.notifications-badge{align-items:center;background:var(--error-color);border:2px solid var(--navbar-bg);border-radius:10px;box-shadow:0 2px 5px #ef444466;color:#fff;display:flex;font-size:9.5px;font-weight:800;height:17px;justify-content:center;min-width:17px;padding:0 4px;position:absolute;right:-4px;top:-4px}.notifications-panel{animation:slideDownPanel .25s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--card-bg);border:1px solid var(--sidebar-border);border-radius:16px;box-shadow:0 20px 40px -15px #0003,0 1px 10px #0000000d;display:flex;flex-direction:column;overflow:hidden;position:absolute;right:0;top:calc(100% + 12px);width:360px;z-index:1000}@keyframes slideDownPanel{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notifications-panel-header{align-items:center;background:var(--secondary-soft);border-bottom:1px solid var(--sidebar-border);display:flex;justify-content:space-between;padding:16px 20px}.notifications-panel-header h3{color:var(--text-primary);font-size:14.5px;font-weight:800;margin:0}.btn-mark-all-read{background:#0000;border:none;border-radius:6px;color:var(--primary-color);cursor:pointer;font-size:12px;font-weight:700;padding:4px 8px;transition:all .2s}.btn-mark-all-read:hover{background:var(--primary-soft);text-decoration:none}.notifications-list{max-height:380px;overflow-y:auto}.notifications-empty{color:var(--text-secondary);font-size:13.5px;font-weight:600;padding:40px 20px;text-align:center}.notification-item{align-items:flex-start;border-bottom:1px solid var(--sidebar-border);cursor:pointer;display:flex;gap:12px;padding:14px 20px;position:relative;transition:all .2s ease}.notification-item:hover{background:var(--secondary-soft)}.notification-item.unread{background:#4f46e50a}.notification-item.unread:before{background:var(--primary-color);border-radius:50%;box-shadow:0 0 6px var(--primary-color);content:"";height:6px;left:8px;position:absolute;top:50%;transform:translateY(-50%);width:6px}.noti-icon{font-size:16px;margin-top:2px}.noti-content{display:flex;flex:1 1;flex-direction:column;gap:3px;padding-right:15px}.noti-title{color:var(--text-primary);font-size:13px;font-weight:750;margin:0}.noti-message{color:var(--text-secondary);font-size:12px;line-height:1.45;margin:0}.noti-time{color:#94a3b8;font-size:10px;font-weight:600;margin-top:2px}.btn-delete-noti{align-self:center;background:#0000;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;opacity:.5;padding:0 4px;transition:all .2s}.notification-item:hover .btn-delete-noti{opacity:.8}.btn-delete-noti:hover{color:var(--error-color)!important;opacity:1!important;transform:scale(1.15)}@media (max-width:768px){.notifications-panel{left:10px;max-width:none;position:fixed;right:10px;top:70px;width:auto}}.dashboard-controls{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.quick-filters{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--card-shadow);display:flex;gap:6px;padding:6px}.btn-filter{background:#0000;border:none;border-radius:10px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .25s cubic-bezier(.4,0,.2,1)}.btn-filter:hover{background:var(--secondary-soft);color:var(--primary-color)}.btn-filter.active{background:var(--primary-color);box-shadow:0 4px 12px #4f46e540;color:#fff}.dashboard-filters{align-items:flex-end;background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--card-shadow);display:flex;gap:15px;padding:10px 20px}.dashboard-filters .filter-group{display:flex;flex-direction:column;gap:6px}.dashboard-filters label{color:var(--text-secondary);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.dashboard-filters input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;color:var(--text-primary);font-size:13px;font-weight:500;outline:none;padding:8px 12px}.dashboard-filters input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.btn-refresh{background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-hover) 100%);border:none;border-radius:10px;box-shadow:0 4px 10px #4f46e533;color:#fff;height:38px;padding:8px 20px;transition:all .25s ease}.btn-refresh:hover{box-shadow:0 8px 16px #4f46e54d;transform:translateY(-1px)}.stats-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:35px}.stat-card{align-items:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:20px;box-shadow:var(--card-shadow);display:flex;gap:20px;overflow:hidden;padding:24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:before{content:"";height:100%;left:0;position:absolute;top:0;width:4px}.stat-card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-5px)}.stat-icon{align-items:center;border-radius:16px;box-shadow:inset 0 2px 4px #00000005;display:flex;font-size:24px;height:56px;justify-content:center;width:56px}.stat-card.primary:before{background:var(--primary-color)}.stat-card.primary .stat-icon{background:#4f46e514;color:var(--primary-color)}.stat-card.success:before{background:var(--success-color)}.stat-card.success .stat-icon{background:#10b98114;color:var(--success-color)}.stat-card.warning:before{background:var(--warning-color)}.stat-card.warning .stat-icon{background:#f59e0b14;color:var(--warning-color)}.stat-card.info:before{background:#06b6d4}.stat-card.info .stat-icon{background:#06b6d414;color:#06b6d4}.stat-card.danger:before{background:#ef4444}.stat-card.danger .stat-icon{background:#ef444414;color:#ef4444}.stat-details{display:flex;flex-direction:column;gap:4px}.stat-label{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:24px;font-weight:800;letter-spacing:-.03em}.dashboard-charts-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));margin-bottom:35px}.chart-section{min-height:420px}.chart-container{height:320px;margin-top:15px;width:100%}.custom-tooltip{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;box-shadow:0 10px 25px #00000014;padding:12px 16px}.custom-tooltip .label{color:var(--text-secondary);font-size:11px;font-weight:700;margin-bottom:4px;text-transform:uppercase}.custom-tooltip .value{color:var(--text-primary);font-size:14px;font-weight:800;margin:0}.dashboard-main-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:2fr 1fr}.dashboard-section{background:var(--card-bg);border:1px solid var(--card-border);border-radius:24px;box-shadow:var(--card-shadow);padding:28px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.section-header h3{color:var(--text-primary);font-size:18px;font-weight:800;letter-spacing:-.02em;margin:0}.btn-text{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--primary-color);cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:4px;padding:4px 8px;transition:all .2s}.btn-text:hover{background:var(--primary-soft);color:var(--primary-hover)}.organism-list{display:flex;flex-direction:column;gap:20px}.organism-item{align-items:center;display:flex;gap:20px}.organism-info{display:flex;flex-direction:column;gap:2px;width:160px}.organism-name{color:var(--text-primary);font-size:13px;font-weight:700}.organism-type{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.organism-bar-container{background:var(--secondary-soft);border-radius:99px;flex:1 1;height:8px;overflow:hidden}.organism-bar{background:linear-gradient(90deg,var(--primary-color) 0,#818cf8 100%);border-radius:99px;height:100%}.organism-count{color:var(--text-primary);font-size:14px;font-weight:800;text-align:right;width:40px}.recent-list{display:flex;flex-direction:column;gap:12px}.recent-item{align-items:center;border:1px solid #0000;border-radius:16px;display:flex;gap:15px;padding:12px 16px;transition:all .25s ease}.recent-item:hover{background:var(--secondary-soft);border-color:var(--card-border);transform:translateX(4px)}.recent-icon{align-items:center;background:var(--primary-soft);border-radius:12px;box-shadow:0 4px 6px -2px #4f46e51a;color:var(--primary-color);display:flex;font-size:18px;height:40px;justify-content:center;width:40px}.recent-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.recent-title{color:var(--text-primary);font-size:13px;font-weight:700}.recent-subtitle{color:var(--text-secondary);font-size:11px}.recent-status{border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.05em;padding:6px 12px;text-transform:uppercase}.recent-status.paid{background:var(--success-soft);color:var(--success-color)}.recent-status.pending{background:var(--warning-soft);color:var(--warning-color)}.no-data{color:var(--text-secondary);font-size:13px;font-style:italic;padding:30px;text-align:center}@media (max-width:1024px){.dashboard-main-grid{grid-template-columns:1fr}}@media (max-width:768px){.dashboard-filters{align-items:stretch;flex-direction:column}.organism-info{width:120px}.dashboard-charts-grid{grid-template-columns:1fr}}.modal-overlay{animation:fadeIn .2s ease-in-out}.modal-content{animation:slideUp .3s ease-out;box-shadow:0 10px 40px #0000004d;max-height:80vh;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-small{max-width:400px}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#1e293b;font-size:18px;margin:0}.modal-close{align-items:center;background:none;border:none;color:#cbd5e1;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:color .2s;width:30px}.modal-close:hover:not(:disabled){color:#1e293b}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-body,.modal-form{padding:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group input,.form-group select,.form-group textarea{border:1px solid #e2e8f0;padding:10px 12px;transition:border-color .3s}.form-group input:disabled,.form-group select:disabled{background-color:#f1f5f9;cursor:not-allowed}.form-group select{appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:20px;cursor:pointer;padding-right:40px}.disabled-input{background-color:#f1f5f9;color:#94a3b8}.form-group small{color:#94a3b8;font-size:12px}.error-message{border:1px solid #fecaca;color:#7f1d1d;margin-bottom:15px}.cupl-preview{background:#f1f5f9;border-radius:6px;margin:15px 0;padding:15px}.preview-item{border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:8px 0}.preview-item:last-child{border-bottom:none}.preview-item .label{color:#64748b;font-weight:600}.preview-item .value{color:#1e293b;word-break:break-word}.warning-text{color:#dc2626;font-weight:600;margin-top:10px;text-align:center}.modal-body p{color:#1e293b;line-height:1.5;margin:0 0 10px}.modal-actions{border-top:1px solid #e2e8f0;gap:10px;padding:20px}.btn{line-height:1.4;padding:10px 16px;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-cancel{background:#e2e8f0;color:#1e293b}.btn-cancel:hover:not(:disabled){background:#cbd5e1}.btn-save{background:#059669}.btn-save:hover:not(:disabled){background:#047857;box-shadow:0 4px 12px #0596694d;transform:translateY(-2px)}.btn-delete:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 12px #dc26264d;transform:translateY(-2px)}@media (max-width:600px){.modal-overlay{align-items:flex-end;padding:10px}.modal-content{animation:slideUpMobile .3s ease-out;border-radius:20px 20px 0 0;margin:0;max-height:90vh;width:100%}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{padding:15px 20px}.modal-body,.modal-form{padding:15px 20px 30px}.modal-actions{flex-direction:column-reverse;gap:12px;padding:15px 20px}.btn{font-size:14px;height:44px;line-height:1.4;width:100%}.preview-item{align-items:flex-start;flex-direction:column;gap:4px}.pay-amount{text-align:center}.pay-value{font-size:22px}}.file-input-wrapper{align-items:center;background:#f8f9ff;border:2px dashed #667eea;border-radius:8px;cursor:pointer;display:flex;padding:10px;position:relative;transition:all .3s}.file-input-wrapper:hover{background:#f0f2ff;border-color:#764ba2}.file-input-wrapper input[type=file]{display:none}.file-name{color:#667eea;flex:1 1;font-weight:600;padding:0 10px}.import-results{background:#f8f9fa;border-radius:6px;margin-bottom:15px;padding:15px}.import-results h4{color:#333;margin:0 0 10px}.results-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.result-item{border-radius:6px;flex-direction:column;gap:5px;padding:10px;text-align:center}.result-item.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.result-item.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.result-number{font-size:20px;font-weight:700}.success-message{background:#d4edda;border:1px solid #c3e6cb;border-radius:5px;color:#155724;font-size:14px;font-weight:600;padding:12px}.btn-pay{background:linear-gradient(135deg,#1e40af,#1e3a8a);color:#fff}.btn-pay:hover:not(:disabled){background:linear-gradient(135deg,#1e3a8a,#1e1f5c);box-shadow:0 4px 12px #1e40af4d;transform:translateY(-2px)}.pay-amount{background:#dbeafe!important;border:2px solid #2563eb!important;border-radius:6px;margin:10px 0;padding:12px!important}.pay-amount .label,.pay-value{color:#1e40af;font-weight:700}.pay-value{font-size:18px}.info-text{background:#d1fae5;border-radius:6px;color:#059669;font-weight:500;margin-top:10px;padding:10px;text-align:center}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;color:#721c24;font-size:14px;padding:12px}.pagination-container{align-items:center;background:var(--card-bg);border-top:1px solid var(--card-border);display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding:16px 20px}.pagination-info{color:var(--text-secondary);font-size:13px}.pagination-info strong{color:var(--text-primary);font-weight:700}.pagination-right{align-items:center;display:flex;flex-wrap:wrap;gap:24px}.items-per-page{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;font-weight:600;gap:10px}.pagination-select{appearance:none;background-color:var(--input-bg);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:14px;border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:600;padding:6px 30px 6px 12px;transition:all .2s}.pagination-select:hover{border-color:var(--primary-color)}.page-buttons{gap:4px}.page-buttons,.pagination-btn{align-items:center;display:flex}.pagination-btn{background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;height:32px;justify-content:center;min-width:32px;padding:0 8px;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background-color:var(--primary-soft);border-color:var(--primary-color);color:var(--primary-color)}.pagination-btn.active{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 4px 6px -1px #2563eb33;color:#fff}.pagination-btn:disabled{background-color:var(--secondary-soft);cursor:not-allowed;opacity:.4}@media (max-width:768px){.pagination-container{flex-direction:column;padding:20px;text-align:center}.pagination-right{flex-direction:column;gap:15px}}.page-header{align-items:center;display:flex;gap:20px;justify-content:space-between;margin-bottom:30px}.header-title h2{color:var(--text-primary);margin:0}.subtitle{color:var(--text-secondary);font-size:14px;margin:5px 0 0}.btn-primary{border-radius:8px;padding:12px 20px;transition:all .3s;white-space:nowrap}.btn-primary:hover{box-shadow:0 6px 20px #1e40af66}.error-banner{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;padding:15px}.filters-bar{align-items:flex-end;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;box-shadow:var(--card-shadow);display:flex;flex-wrap:wrap;gap:20px;margin-bottom:25px;padding:15px}.filter-group{flex:1 1;min-width:200px}.filter-group label{color:var(--text-primary);font-size:13px}.filter-group input,.filter-group select{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .3s}.filter-group input:focus,.filter-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.table-wrapper{border-radius:8px;box-shadow:var(--card-shadow)}.users-table{border-collapse:collapse;font-size:14px;width:100%}.users-table thead{background:var(--secondary-soft);border-bottom:2px solid var(--card-border)}.users-table th{color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.05em;padding:18px 20px;text-align:left;text-transform:uppercase}.users-table td{border-bottom:1px solid var(--card-border);color:var(--text-primary);line-height:1.6;padding:18px 20px}.users-table tr:hover{background:var(--secondary-soft)}.user-name{color:var(--text-primary);font-weight:600}.user-email{color:var(--text-secondary);font-size:13px}.role-badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.role-superadmin{background:var(--primary-soft);color:var(--primary-color)}.role-admin{background:var(--warning-soft);color:var(--warning-color)}.role-user{background:var(--success-soft);color:var(--success-color)}.profile-badge{background:var(--secondary-soft);border:1px solid var(--card-border);border-radius:6px;color:var(--text-secondary);display:inline-block;font-size:12px;font-weight:500;padding:4px 10px}.no-profile{color:#94a3b8;font-size:13px;font-style:italic}.transito-badge{align-items:center;background-color:var(--primary-soft);border:1px solid var(--primary-color);border-radius:9999px;color:var(--primary-color);display:inline-flex;font-size:12px;font-weight:600;padding:4px 10px}.no-transito{color:#94a3b8;font-size:13px;font-style:italic}.concesionario-badge{background-color:var(--secondary-soft);border:1px solid var(--secondary-color);border-radius:9999px;color:var(--secondary-color)}.concesionario-badge,.plate-mode{align-items:center;display:inline-flex;font-size:12px;font-weight:600;padding:4px 10px}.plate-mode{border-radius:6px}.plate-mode.automatico{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.plate-mode.manual{background-color:#fff7ed;border:1px solid #ffedd5;color:#9a3412}.radio-group{display:flex;flex-direction:column;gap:10px;margin-top:5px}.radio-group label{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;letter-spacing:normal!important;text-transform:none!important}.radio-group input[type=radio]{height:18px;width:18px}.vehicle-type-badge{align-items:center;border-radius:8px;display:inline-flex;font-size:12px}.vehicle-type-badge.carro{background-color:#e0f2fe;color:#0369a1}.vehicle-type-badge.moto{background-color:#fef3c7;color:#92400e}.vehicle-type-badge.otro{background-color:#f1f5f9}.btn{border-radius:5px;font-size:12px;padding:8px 12px;transition:all .3s}.btn-sm{font-size:11px;padding:6px 10px}.btn-edit{background:#ea580c;color:#fff}.btn-edit:hover{background:#c2410c}.btn-delete{background:#dc2626;color:#fff}.btn-delete:hover{background:#b91c1c}.loading,.no-data{background:var(--card-bg);border-radius:8px;color:var(--text-secondary);padding:40px;text-align:center}@media (max-width:768px){.navbar-content{padding:15px 15px 15px 60px}.navbar h1{font-size:16px}.page-header{align-items:flex-start;flex-direction:column;gap:10px}.header-title h2{font-size:20px}.btn-primary{width:100%}.filters-bar{flex-direction:column;gap:10px}.filter-group{min-width:100%}.users-table{font-size:12px}.users-table td,.users-table th{padding:8px}.action-buttons{flex-direction:column;gap:4px}.action-buttons button{font-size:12px;padding:6px 10px;width:100%}.form-group input,.form-group select{font-size:16px;padding:10px}}.tramite-types-table{border-collapse:collapse;font-size:14px;width:100%}.tramite-types-table thead{background:#f1f5f9;border-bottom:2px solid #e2e8f0}.tramite-types-table th{color:#1e293b;font-weight:600;padding:15px;text-align:left}.tramite-types-table td{border-bottom:1px solid #e2e8f0;padding:15px}.tramite-types-table tr:hover{background:#f8fafc}.type-name{color:#1e293b;font-weight:600}.type-description{color:#64748b;font-size:13px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.type-value{text-align:right}.value-badge{background:#dbeafe;border-radius:20px;color:#1e40af;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.actions{flex-wrap:wrap;gap:8px}@media (max-width:768px){.navbar-content{padding:15px 15px 15px 60px}.tramite-types-table{font-size:12px}.tramite-types-table td,.tramite-types-table th{padding:10px 8px}.type-description{font-size:12px;max-width:150px}.value-badge{font-size:11px;padding:4px 8px}.actions{flex-direction:column;gap:4px}.actions button{font-size:12px;padding:6px 8px;width:100%}}.caja-container{padding:20px;width:100%}.caja-container h1{color:#1e293b;font-size:28px;margin-bottom:30px}.balance-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.balance-card{border-radius:10px;box-shadow:0 4px 6px #0000001a;color:#fff;padding:20px}.balance-card h3{font-size:14px;letter-spacing:.5px;margin:0 0 10px;opacity:.9;text-transform:uppercase}.balance-card.total{background:linear-gradient(135deg,#1e40af,#1e3a8a)}.balance-card.income{background:linear-gradient(135deg,#059669,#a7f3d0)}.balance-card.expense{background:linear-gradient(135deg,#dc2626,#fecaca)}.balance-card.profit{background:linear-gradient(135deg,#f59e0b,#d97706)}.balance-card.portfolio{background:linear-gradient(135deg,#7c3aed,#4c1d95)}.balance-card.portfolio-pending{background:linear-gradient(135deg,#ec4899,#9d174d)}.balance-amount{font-size:28px;font-weight:700;margin:0}.caja-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}.btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#1e40af,#1e3a8a)}.btn-primary:hover{box-shadow:0 4px 12px #1e40af66;transform:translateY(-2px)}.btn-secondary{background:#f1f5f9;border:1px solid #e2e8f0;color:#1e293b}.btn-secondary:hover{background:#e2e8f0}.modal-content{border-radius:10px;box-shadow:0 10px 40px #0003;max-width:50%}.modal-content h2{color:#1e293b;margin-bottom:20px;margin-top:0}.form-group label{color:#64748b;font-size:14px}.form-group input,.form-group select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-family:inherit;font-size:14px;padding:10px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.modal-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:30px}.modal-buttons button{font-size:14px;line-height:1.5;padding:10px 20px}.caja-filters{margin-bottom:20px}.filter-select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;padding:10px 15px}.filter-select:focus{border-color:#2563eb;outline:none}.movements-table-container{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a;padding:20px}.movements-table-container h2{color:#1e293b;font-size:18px;margin-bottom:20px;margin-top:0}.movements-table{border-collapse:collapse;width:100%}.movements-table thead{background:#f1f5f9;border-bottom:2px solid #e2e8f0}.movements-table th{color:#64748b;font-size:14px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase}.movements-table td{border-bottom:1px solid #e2e8f0;color:#1e293b;font-size:14px;padding:12px}.movements-table tbody tr:hover{background:#f8fafc}.income-row{background:#05966905}.expense-row{background:#dc262605}.badge{letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.badge-ingreso{background:#059669;color:#fff}.badge-egreso{background:#dc2626;color:#fff}.amount-income{color:#059669;font-weight:600}.amount-expense{color:#dc2626;font-weight:600}.error-message{background:#fee2e2;border-left:4px solid #dc2626;border-radius:6px;color:#b91c1c;margin-bottom:20px;padding:12px 15px}@media (max-width:768px){.caja-container{max-width:100%;padding:15px}.caja-container h1{font-size:24px;margin:10px 0 20px;text-align:center}.balance-summary{gap:12px;grid-template-columns:1fr}.balance-card{padding:20px;text-align:center}.balance-amount{font-size:28px}.caja-actions{flex-direction:column;gap:10px}.btn{font-size:14px;padding:12px;width:100%}.movements-table thead{display:none}.movements-table,.movements-table tbody,.movements-table td,.movements-table tr{display:block;width:100%}.movements-table tr{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:15px;padding:10px}.movements-table td{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:10px 15px;position:relative;text-align:right}.movements-table td:last-child{border-bottom:none}.movements-table td:before{color:#64748b;content:attr(data-label);font-size:10px;font-weight:700;text-transform:uppercase}.modal-content{max-width:100%;padding:20px;width:95%}}.reports-selector{margin-bottom:40px}.reports-selector h2{color:#1e293b;margin-bottom:20px}.report-cards{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.report-card{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;box-shadow:0 2px 4px #0000000d;cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:20px;transition:all .3s}.report-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb33;transform:translateY(-2px)}.report-card.active{background:linear-gradient(135deg,#1e40af,#1e3a8a);border-color:#1e40af;color:#fff}.report-card .icon{font-size:32px}.report-card .label{font-size:13px;font-weight:600;text-align:center}.filters-section{align-items:flex-end;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{color:#1e293b;font-size:14px;font-weight:600}.filter-group select{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;min-width:180px;padding:10px 12px}.filter-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.date-range{align-items:center;display:flex;gap:10px}.date-range input{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;padding:10px 12px}.date-range span{color:#64748b;font-size:14px}.btn-export{background:linear-gradient(135deg,#059669,#047857);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.btn-export:hover{box-shadow:0 4px 12px #0596694d;transform:translateY(-2px)}.btn-export:active{transform:translateY(0)}.report-content{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a;overflow-x:auto;padding:15px;width:100%}.report-table{border-collapse:collapse;font-size:14px;width:100%}.report-table thead{background:#f1f5f9;border-bottom:2px solid #e2e8f0}.report-table th{color:#1e293b;font-weight:600;padding:15px;text-align:left}.report-table td{border-bottom:1px solid #e2e8f0;color:#475569;padding:15px}.report-table tr:hover{background:#f8fafc}.report-table tr.paid{background:#f0fdf4}.report-table tr.pending{background:#fffbeb}.report-table tr.income-row{background:#f0fdf4}.report-table tr.expense-row{background:#fef2f2}.report-table .currency{color:#1e40af;font-weight:600;text-align:right}.badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.badge.success{background:#d1fae5;color:#065f46}.badge.warning{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.action-badge{background:#dbeafe;border-radius:6px;color:#1e40af;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px}.changes{color:#64748b;font-size:12px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.totals-box{grid-gap:15px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:10px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px;padding:20px}.total-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;padding:15px}.total-item span{color:#64748b;font-weight:600}.total-item strong{font-size:18px;font-weight:700}.total-item strong.income{color:#059669}.total-item strong.expense{color:#dc2626}.total-item strong.success{color:#059669}.total-item strong.danger{color:#dc2626}.resumen-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.resumen-card{border-radius:10px;box-shadow:0 4px 6px #0000001a;color:#fff;padding:25px}.resumen-card h3{font-size:14px;letter-spacing:.5px;margin:0 0 15px;opacity:.9;text-transform:uppercase}.resumen-card.total{background:var(--primary-red)}.resumen-card.income{background:var(--primary-green)}.resumen-card.expense{background:#1a1a1a}.resumen-card.profit{background:var(--primary-yellow);color:#000}.resumen-card.payments{background:#64748b}.resumen-card .amount{font-size:28px;font-weight:700;margin:0}.error,.loading,.no-data{color:#64748b;padding:40px;text-align:center}.loading{color:#2563eb;font-size:16px}.no-data{color:#94a3b8;font-size:16px}.error{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626}@media (max-width:768px){.navbar-content{padding:15px 15px 15px 60px}.navbar h1{font-size:16px}.report-cards{gap:10px;grid-template-columns:repeat(2,1fr)}.report-card{gap:8px;padding:15px}.report-card .icon{font-size:24px}.report-card .label{font-size:12px}.filters-section{flex-direction:column}.filter-group{width:100%}.filter-group select{min-width:100%}.btn-export{width:100%}.report-content{padding:15px}.report-table{font-size:12px}.report-table td,.report-table th{padding:10px 8px}.totals-box{padding:15px}.resumen-container,.totals-box{grid-template-columns:1fr}.resumen-card{padding:20px}.resumen-card .amount{font-size:24px}}.btn-delete:hover{border-color:#f87171;color:#b91c1c}.btn-modules{background:#f0f9ff;border:1px solid #bae6fd;color:#0ea5e9}.btn-modules:hover{background:#e0f2fe;border-color:#7dd3fc;color:#0284c7}.btn-save{background:#16a34a}.btn-cancel,.btn-save{color:#fff;padding:10px 20px}.btn-cancel{background:#64748b}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:var(--card-bg);border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;color:var(--text-primary);max-width:500px;padding:30px;width:100%}.modal-large{max-height:90vh;max-width:800px;overflow-y:auto}.modal-subtitle{color:var(--text-secondary)}.form-group,.modal-subtitle{margin-bottom:20px}.form-group label{color:#1e293b;font-weight:600;margin-bottom:8px}.form-group input,.form-group textarea{border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;padding:12px;width:100%}.form-group textarea{height:100px;resize:vertical}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:30px}.modules-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:20px}.module-category-box{background:var(--secondary-soft);border:1px solid var(--card-border);border-radius:8px;padding:15px}.searchable-select-container{position:relative;width:100%}.searchable-dropdown{background:#fff;border:1px solid var(--sidebar-border);border-radius:10px;box-shadow:0 10px 15px -3px #0000001a;left:0;margin-top:4px;max-height:250px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.dropdown-item{align-items:center;border-bottom:1px solid #f1f5f9;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:background .2s}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:var(--primary-soft)}.dropdown-no-results{color:var(--secondary-color);font-size:14px;padding:16px;text-align:center}.plate-badge-sm{background:var(--secondary-soft);border-radius:6px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;padding:4px 8px}.module-category-box h4{border-bottom:1px solid var(--card-border);color:var(--text-primary);margin-bottom:12px;margin-top:0;padding-bottom:8px}.category-modules{display:flex;flex-direction:column;gap:8px}.module-checkbox-item{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;transition:background .2s}.module-checkbox-item:hover{background:var(--secondary-soft)}.module-checkbox-item input{cursor:pointer;height:18px;width:18px}.stepper-container{justify-content:space-between;padding:20px 0 40px;width:100%}.stepper-container,.stepper-item{align-items:center;display:flex;position:relative}.stepper-item{flex:1 1;flex-direction:column;z-index:1}.stepper-item:before{background:var(--card-border);content:"";height:2px;left:-50%;position:absolute;top:15px;width:100%;z-index:-1}.stepper-item:first-child:before{display:none}.step-counter{align-items:center;background:var(--card-bg);border:2px solid var(--card-border);border-radius:50%;display:flex;font-size:14px;font-weight:700;height:32px;justify-content:center;margin-bottom:8px;transition:all .3s ease;width:32px}.step-counter,.step-label{color:var(--text-secondary)}.step-label{font-size:11px;font-weight:600;letter-spacing:.5px;text-align:center;text-transform:uppercase}.stepper-item.active .step-counter{background:#2563eb;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a;color:#fff}.stepper-item.active .step-label{color:var(--text-primary)}.stepper-item.completed .step-counter{background:#10b981;border-color:#10b981;color:#fff}.stepper-item.completed:before{background:#10b981}.stepper-item.rejected .step-counter{background:#ef4444;border-color:#ef4444;color:#fff}.stepper-item.rejected .step-label{color:#ef4444}.module-icon{font-size:18px}.module-label{color:var(--text-primary);font-size:14px}.vehicle-type-badge{border-radius:20px;font-size:11px;font-weight:700;padding:4px 10px;text-transform:uppercase}.vehicle-type-badge.carro{background:#dcfce7;color:#166534}.vehicle-type-badge.moto{background:#fef9c3;color:#854d0e}.vehicle-type-badge.moto_carro{background:#ffedd5;color:#9a3412}.vehicle-type-badge.otro{background:#f1f5f9;color:#475569}.table-wrapper{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;overflow:hidden}table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}table thead{background:var(--secondary-soft)}table th{border-bottom:2px solid var(--card-border);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.05em;padding:16px 20px;text-align:left;text-transform:uppercase}table td{border-bottom:1px solid var(--card-border);color:var(--text-primary);line-height:1.5;padding:16px 15px;vertical-align:middle}table tr:last-child td{border-bottom:none}table tr:hover{background:var(--secondary-soft);transition:background .2s ease}.actions{align-items:center;display:flex;flex-wrap:nowrap;gap:6px}.btn-action{border:none;gap:5px;padding:8px 12px;transition:all .2s ease;white-space:nowrap}.btn-delete,.btn-edit,.btn-modules{border-radius:8px;font-size:11px;font-weight:700;letter-spacing:.025em;padding:6px 14px;text-transform:uppercase}.form-section{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;box-shadow:0 1px 3px 0 #0000000d;margin-bottom:16px;padding:16px 20px}.form-section-header{align-items:center;border-bottom:1px solid var(--sidebar-border);display:flex;gap:10px;margin-bottom:14px;padding-bottom:8px}.form-section-title{color:var(--text-primary);font-size:13px;font-weight:800;letter-spacing:.05em;margin:0;text-transform:uppercase}.form-section-icon{align-items:center;background:var(--primary-soft);border-radius:6px;color:var(--primary-color);display:flex;font-size:14px;height:24px;justify-content:center;width:24px}.form-grid{grid-gap:12px 20px;display:grid;gap:12px 20px;grid-template-columns:1fr 1fr}.form-group{margin-bottom:12px}.form-group label{color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.025em;margin-bottom:4px;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:8px 12px;text-transform:uppercase;transition:all .2s ease;width:100%}.form-group input[name=correo],.form-group input[type=email]{text-transform:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.welcome-page{align-items:flex-start;display:flex;justify-content:center;padding-top:40px}.welcome-card{background:#fff;border-radius:16px;box-shadow:0 10px 25px #0000000d;max-width:900px;padding:40px;text-align:center;width:100%}.welcome-header{margin-bottom:40px}.welcome-logo{height:80px;margin-bottom:20px}.welcome-header h2{color:#1e293b;font-size:28px;margin-bottom:10px}.welcome-header p{color:#64748b;font-size:16px}.available-options{text-align:left}.welcome-category-section{margin-bottom:30px}.welcome-category-section h3{border-bottom:1px solid #f1f5f9;color:#94a3b8;font-size:14px;letter-spacing:1px;margin-bottom:20px;padding-bottom:10px;text-transform:uppercase}.options-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.option-card{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:15px;padding:20px;text-decoration:none;transition:all .3s}.option-card:hover{background:#fff;border-color:red;box-shadow:0 10px 15px -3px #ff00001a;transform:translateY(-3px)}.option-icon{font-size:24px}.option-label{color:#1e293b;font-weight:600}.no-modules-alert{background:#fff1f2;border:1px solid #fecaca;border-radius:12px;color:#b91c1c;margin-top:40px;padding:20px}@media (max-width:768px){.welcome-card{padding:20px}.options-grid{grid-template-columns:1fr}}.audit-table{border-collapse:collapse;font-size:13px;width:100%}.audit-table th{background:#f1f5f9;border-bottom:2px solid #e2e8f0;color:#1e293b;font-weight:600;padding:12px 15px;text-align:left}.audit-table td{border-bottom:1px solid #e2e8f0;padding:12px 15px;vertical-align:top}.audit-table tr:hover{background:#f8fafc}.audit-date{color:#64748b;font-weight:500;white-space:nowrap}.audit-user{color:#1e293b;font-weight:600}.audit-table-name{color:#475569;font-family:monospace}.audit-id{color:#94a3b8;font-family:monospace}.audit-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:700;padding:4px 8px;text-transform:uppercase}.badge-insert{background:#dcfce7;color:#166534}.badge-update{background:#dbeafe;color:#1e40af}.badge-delete{background:#fee2e2;color:#b91c1c}.badge-other{background:#f1f5f9;color:#475569}.audit-details pre{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;color:#334155;font-size:11px;margin:0;max-height:100px;overflow-y:auto;padding:8px;white-space:pre-wrap;word-break:break-all}.no-changes{color:#94a3b8;font-style:italic}.btn-refresh{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-weight:600;gap:8px;padding:10px 18px;transition:all .2s}.btn-refresh:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-refresh:disabled{cursor:not-allowed;opacity:.6}.paid-info-container{display:inline-block;position:relative}.paid-info-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:4px;transition:transform .2s}.paid-info-btn:hover{transform:scale(1.2)}.paid-tooltip{animation:tooltipSlideUp .2s ease-out;background:#fff;border:1px solid #e2e8f0;border-radius:6px;bottom:100%;box-shadow:0 4px 12px #00000026;left:50%;margin-bottom:8px;padding:10px 12px;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1001}@keyframes tooltipSlideUp{0%{opacity:0;transform:translateX(-50%) translateY(5px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.paid-tooltip:after{border:5px solid #0000;border-top-color:#e2e8f0}.paid-tooltip:after,.paid-tooltip:before{content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.paid-tooltip:before{border:4px solid #0000;border-top-color:#fff;margin-top:1px}.tooltip-content{font-size:12px;gap:8px}.tooltip-content,.tooltip-item{display:flex;flex-direction:column}.tooltip-item{gap:2px}.tooltip-label{color:#64748b;font-weight:600}.tooltip-value{color:#1e293b}@media (max-width:768px){.paid-tooltip{bottom:auto;left:50%;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:2000}.paid-tooltip:after,.paid-tooltip:before{display:none}}.table-wrapper{overflow-x:auto}.table-summary{align-items:center;border-bottom:1px solid var(--sidebar-border);color:var(--secondary-color);display:flex;font-size:14px;justify-content:space-between;margin-bottom:20px;padding:12px 0}.table-summary p{font-weight:500;margin:0}.cupl-table{border-collapse:initial;border-spacing:0;font-size:14px;width:100%}.cupl-table thead{background-color:var(--secondary-soft)}.cupl-table th{border-bottom:2px solid var(--sidebar-border);color:var(--secondary-color);font-size:11px;font-weight:700;letter-spacing:.05em;padding:14px 12px;text-align:left;text-transform:uppercase}.cupl-table td{border-bottom:1px solid var(--sidebar-border);color:var(--sidebar-text);font-size:13px;padding:16px 12px;transition:background-color .2s}.cupl-table tr:last-child td{border-bottom:none}.cupl-table tr:hover td{background-color:var(--secondary-soft)}.checkbox-cell{padding:14px 8px!important;text-align:center!important;width:40px}.checkbox-cell input{accent-color:var(--primary-color);cursor:pointer;height:18px;width:18px}.cupl-table tr.paid td{background-color:var(--success-soft)}.cupl-table tr.expired-row td{background-color:var(--error-soft)}.plate{background:var(--primary-soft);border-radius:6px;color:var(--primary-color);font-family:Inter,sans-serif;font-weight:700;letter-spacing:.05em;padding:4px 8px}.cupl-number-text{color:var(--dark-bg);font-family:JetBrains Mono,Roboto Mono,monospace;font-weight:600}.copy-btn{align-items:center;background:#fff;border:1px solid var(--sidebar-border);border-radius:6px;color:var(--secondary-color);cursor:pointer;display:inline-flex;height:28px;justify-content:center;padding:0;transition:all .2s;width:28px}.copy-btn:hover{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 4px 6px -1px #2563eb33;color:#fff}.status{align-items:center;border-radius:9999px;display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.025em;padding:4px 10px;text-transform:uppercase}.status.paid{background-color:var(--success-soft);color:var(--success-color)}.status.pending{background-color:var(--warning-soft);color:var(--warning-color)}.status.expired{background-color:var(--error-soft);color:var(--error-color)}.status.rejected{background-color:#f1f5f9;color:#1e293b}.cupl-table tr.rejected-row{background-color:#fff1f2}.actions-container{align-items:center;display:flex;flex-wrap:nowrap;gap:6px;justify-content:flex-start;width:100%}.table-action-btn{align-items:center;border:none;border-radius:4px;box-shadow:0 1px 2px #00000026;color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.icon-symbol{display:block;font-family:Segoe UI Symbol,Arial Unicode MS,sans-serif;font-size:18px;font-weight:400;line-height:1}.btn:hover:not(:disabled){box-shadow:0 3px 8px #0003;filter:saturate(1.2) brightness(.95);transform:translateY(-1px)}.btn-preview{background-color:#475569}.btn-receipt{background-color:#7c3aed}.btn-runt{background-color:#0284c7}.btn-edit{background-color:#d97706}.btn-paid{background-color:var(--primary-green)}.btn-paid:hover{background-color:#2d9d2d;color:#fff}.btn-reject{background-color:#f8fafc;border:1px solid var(--primary-red);color:var(--primary-red)}.btn-reject:hover{background-color:var(--primary-red);color:#fff}.btn-delete{background-color:#1a1a1a}.btn-runt.loading{animation:none;background-color:#94a3b8!important;cursor:wait}.spinner-mini{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes spin{to{transform:rotate(1turn)}}.btn-paid:disabled{background-color:#cbd5e1;cursor:not-allowed;opacity:.6;transform:none}.expiration-cell{display:flex;flex-direction:column;gap:4px}.expired{color:#dc2626!important;font-weight:700}.expired-badge{background-color:#fee2e2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;display:inline-block;font-size:10px;font-weight:800;padding:2px 6px;width:fit-content}.expired-row{background-color:#fff1f2!important}.expired-row:hover{background-color:#ffe4e6!important}.permissions-note{background-color:#e7f3ff;border-left:4px solid #2196f3;border-radius:4px;color:#1976d2;font-size:12px;margin-top:10px;padding:8px}@media (max-width:768px){.table-summary{text-align:center}.cupl-table thead{display:none}.cupl-table,.cupl-table tbody,.cupl-table td,.cupl-table tr{display:block;width:100%}.cupl-table tr{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--card-shadow);margin-bottom:15px;padding:10px}.cupl-table tr.paid{border-left:5px solid var(--success-color)}.cupl-table tr:not(.paid){border-left:5px solid var(--warning-color)}.cupl-table tr.expired-row{border-left:5px solid var(--error-color)}.cupl-table tr.rejected-row{border-left:5px solid #64748b}.cupl-table td{align-items:center;border-bottom:1px solid var(--sidebar-border);color:var(--text-primary);display:flex;justify-content:space-between;min-height:48px;padding:12px 15px;position:relative;text-align:right;white-space:normal}.cupl-table td.actions-cell,.cupl-table td:last-child{border-bottom:none;justify-content:center;padding-bottom:15px;padding-top:15px;width:100%}.cupl-table td:before{color:var(--text-secondary);content:attr(data-label);font-size:10px;font-weight:700;margin-right:15px;text-align:left;text-transform:uppercase}.cupl-table td.actions-cell:before{display:none}.cupl-cell{justify-content:flex-end}.actions-container{flex-wrap:wrap;gap:12px;justify-content:center}.table-action-btn{border-radius:8px;height:42px;width:42px}.icon-symbol{font-size:20px}}.receipt-modal{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;color:#1e293b;font-family:Inter,-apple-system,sans-serif;max-width:450px;padding:30px;width:100%}.receipt-header{border-bottom:2px dashed #e2e8f0;margin-bottom:25px;padding-bottom:15px;text-align:center}.receipt-logo{height:60px;margin-bottom:10px;width:auto}.receipt-header h2{color:#1a1a1a;font-size:18px;font-weight:800;letter-spacing:.5px;margin:0}.receipt-subtitle{color:#64748b;font-size:12px;font-weight:600;margin:5px 0 0}.receipt-section{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:15px}.receipt-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-bottom:15px}.receipt-item{display:flex;flex-direction:column}.label{color:#64748b;font-size:11px;font-weight:600;margin-bottom:4px;text-transform:uppercase}.value{font-size:14px;font-weight:500}.value.highlight{color:var(--primary-red);font-family:Roboto Mono,monospace;font-weight:700}.status-success{color:var(--primary-green);font-weight:700}.small-text{color:#94a3b8;font-size:11px}.receipt-divider{background:#e2e8f0;height:1px;margin:15px 0}.receipt-total{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;margin-top:20px;padding:15px}.total-label{font-size:14px;font-weight:800}.total-amount{color:var(--primary-green);font-size:24px;font-weight:800}.receipt-footer{color:#94a3b8;font-size:11px;line-height:1.5;margin-top:25px;text-align:center}.thanks{color:#2563eb;font-size:13px;font-weight:600;margin-top:10px}.receipt-actions{display:flex;gap:10px;justify-content:center;margin-top:25px}@media print{body *{visibility:hidden}.receipt-modal,.receipt-modal *{visibility:visible}.receipt-modal{box-shadow:none;left:0;max-width:none;padding:0;position:absolute;top:0;width:100%}.no-print{display:none!important}}.batch-payment-modal{max-width:600px;width:90%}.batch-summary{grid-gap:15px;background:var(--secondary-soft);border:1px solid var(--card-border);border-radius:10px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin-bottom:20px;padding:20px}.summary-item{display:flex;flex-direction:column;gap:5px}.summary-item span{color:var(--text-secondary);font-size:12px;font-weight:600;text-transform:uppercase}.summary-item strong{color:var(--text-primary);font-size:16px}.summary-item .amount{color:var(--primary-color)}.balance-ok{color:var(--success-color)!important}.balance-error{color:var(--error-color)!important}.batch-actions{padding:20px 0;text-align:center}.instruction{color:var(--text-secondary);margin-bottom:20px}.start-batch-btn{border-radius:10px;font-size:16px;padding:15px;width:100%}.batch-progress{margin-top:10px}.progress-bar-container{background:var(--secondary-soft);border:1px solid var(--card-border);border-radius:5px;height:10px;margin-bottom:10px;overflow:hidden}.progress-bar{background:var(--primary-color);height:100%;transition:width .3s ease}.progress-bar.error{background:var(--error-color)}.progress-text{font-size:14px;font-weight:600;margin-bottom:20px;text-align:center}.results-list{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;max-height:250px;overflow-y:auto}.result-item{align-items:center;border-bottom:1px solid var(--card-border);display:flex;font-size:13px;gap:10px;padding:10px 15px}.result-item:last-child{border-bottom:none}.result-item.success{background-color:var(--success-soft)}.result-item.error{background-color:var(--error-soft)}.result-item.processing{background-color:var(--primary-soft)}.res-cupl{font-weight:700;width:120px}.res-status{align-items:center;display:flex;justify-content:center;width:24px}.res-msg{color:var(--text-secondary);flex:1 1;font-size:12px}.progress-bar.success{background:var(--success-color)}.progress-stats{display:flex;font-size:13px;font-weight:600;justify-content:space-around;margin-bottom:15px}.stat-success{color:var(--success-color)}.stat-error{color:var(--error-color)}.stat-total{color:var(--text-secondary)}.modal-footer{display:flex;justify-content:flex-end;margin-top:25px}@media (max-width:600px){.batch-summary{gap:12px;grid-template-columns:1fr;padding:15px}}.cupl-action-buttons{gap:15px;justify-content:space-between;margin-bottom:20px}.cupl-action-buttons,.cupl-left-actions{align-items:center;display:flex;flex-wrap:wrap}.cupl-left-actions{gap:10px}.select-qty-container{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:10px;display:flex;gap:8px;padding:8px 12px;transition:all .25s ease}[data-theme=dark] .select-qty-container{background:#1e293b;border-color:#334155}.select-qty-label{color:#4b5563;font-size:13px;font-weight:600}[data-theme=dark] .select-qty-label{color:#94a3b8}.select-qty-input{background-color:var(--input-bg);border:1px solid #d1d5db;border-radius:6px;color:var(--text-primary);font-size:13px;font-weight:600;outline:none;padding:5px 8px;text-align:center;width:70px}[data-theme=dark] .select-qty-input{border-color:#4b5563}.select-qty-input:focus{border-color:var(--primary-color)}.btn-qty-ok{border-radius:6px!important;font-size:12px!important;height:30px;min-height:30px!important;padding:5px 12px!important}.btn-batch-runt{background:#2563eb!important;box-shadow:0 4px 6px -1px #2563eb33;color:#fff!important}.btn-batch-runt:hover{background:#1d4ed8!important;box-shadow:0 10px 15px -3px #2563eb4d}.btn-batch-manual{background:#f59e0b!important;box-shadow:0 4px 6px -1px #f59e0b33;color:#fff!important}.btn-batch-manual:hover{background:#d97706!important;box-shadow:0 10px 15px -3px #f59e0b4d}.batch-amount-span{font-size:12px;font-weight:700;margin-left:4px;opacity:.95}.filters-container{align-items:center;display:flex;gap:15px;margin-bottom:20px;width:100%}.search-input{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;color:var(--text-primary);flex:1 1;font-size:14px;font-weight:500;min-width:200px;outline:none;padding:11px 16px;transition:all .2s ease}.search-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e526}.status-select{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:600;min-width:180px;outline:none;padding:11px 16px;transition:all .2s ease}.status-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e526}@media (max-width:768px){.cupl-action-buttons{gap:12px}.cupl-action-buttons,.cupl-left-actions{align-items:stretch;flex-direction:column}.cupl-left-actions{gap:10px}.btn-logs-api,.cupl-left-actions button{justify-content:center;width:100%!important}.select-qty-container{justify-content:space-between;padding:10px 15px;width:100%}.select-qty-input{flex:1 1;max-width:120px}.filters-container{align-items:stretch;flex-direction:column;gap:10px}.search-input,.status-select{width:100%}.stats-grid{gap:12px!important;grid-template-columns:1fr!important;margin-bottom:20px!important}.stat-card{gap:15px!important;padding:16px 20px!important}.stat-icon{border-radius:12px!important;height:48px!important;width:48px!important}.stat-icon,.stat-value{font-size:20px!important}}.profile-tabs{border-bottom:2px solid var(--border-color);display:flex;gap:1rem;margin-bottom:2rem}.tab-btn{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:1rem;margin-bottom:-2px;padding:.75rem 1.5rem;transition:all .3s}.tab-btn.active,.tab-btn:hover{color:var(--primary-color)}.tab-btn.active{border-bottom-color:var(--primary-color);font-weight:600}.password-section,.profile-section{max-width:600px}.profile-header{align-items:center;background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-sm);display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.5rem}.profile-avatar{align-items:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:50%;color:#fff;display:flex;font-size:2rem;font-weight:700;height:80px;justify-content:center;width:80px}.profile-info-header h2{color:var(--text-primary);margin:0 0 .5rem}.password-form,.profile-form{background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-sm);padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:.5rem}.form-group input{background:var(--input-bg);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1rem;padding:.75rem 1rem;transition:border-color .3s;width:100%}.form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-actions{margin-top:1.5rem}.message-banner{border-radius:8px;font-weight:500;margin-bottom:1.5rem;padding:1rem 1.5rem}.message-banner.success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.message-banner.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.metrics-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:25px}.metric-card{background:#fff;background:var(--card-bg,#fff);border-left:5px solid #cbd5e1;border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;padding:22px;transition:transform .2s,box-shadow .2s}.metric-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.metric-card.card-total{border-left-color:#4f46e5;border-left-color:var(--primary-color,#4f46e5)}.metric-card.card-success{border-left-color:#10b981}.metric-card.card-failed{border-left-color:#ef4444}.metric-label{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.metric-card h2{color:#111827;color:var(--text-primary,#111827);font-size:32px;font-weight:700;margin-bottom:0;margin-top:8px}.metric-card.card-success h2{color:#10b981}.metric-card.card-failed h2{color:#ef4444}.modal-backdrop{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:scaleUp .2s cubic-bezier(.16,1,.3,1);background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-width:600px;padding:25px;width:90%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}:root{--primary-color:#4f46e5;--primary-hover:#4338ca;--primary-soft:#f5f3ff;--secondary-color:#64748b;--secondary-hover:#475569;--secondary-soft:#f8fafc;--success-color:#10b981;--success-soft:#ecfdf5;--warning-color:#f59e0b;--warning-soft:#fffbeb;--error-color:#ef4444;--error-soft:#fef2f2;--dark-bg:#090d16;--light-bg:#f8fafc;--sidebar-bg:#fff;--sidebar-text:#334155;--sidebar-border:#e2e8f0;--card-bg:#fff;--card-border:#e2e8f0cc;--card-shadow:0 10px 30px -10px #0000000a,0 1px 3px #00000005;--card-shadow-hover:0 20px 40px -15px #4f46e514,0 1px 10px #00000005;--text-primary:#0f172a;--text-secondary:#64748b;--navbar-bg:#fffc;--input-bg:#fff;--input-border:#e2e8f0;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--primary-red:var(--error-color);--primary-yellow:var(--warning-color);--primary-green:var(--success-color)}[data-theme=dark]{--primary-color:#6366f1;--primary-hover:#818cf8;--primary-soft:#6366f11a;--secondary-color:#94a3b8;--secondary-hover:#cbd5e1;--secondary-soft:#1e293b;--success-color:#34d399;--success-soft:#34d3991a;--warning-color:#fbbf24;--warning-soft:#fbbf241a;--error-color:#f87171;--error-soft:#f871711a;--light-bg:#090d16;--dark-bg:#030712;--sidebar-bg:#0b0f19;--sidebar-text:#e2e8f0;--sidebar-border:#1e293b;--card-bg:#0b0f19;--card-border:#1e293b;--card-shadow:0 10px 30px -10px #00000080,0 1px 3px #0000004d;--card-shadow-hover:0 20px 40px -15px #6366f126,0 1px 10px #0000004d;--text-primary:#f8fafc;--text-secondary:#94a3b8;--navbar-bg:#0b0f19cc;--input-bg:#030712;--input-border:#1e293b}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}body{background-color:#f8fafc;background-color:var(--light-bg);color:#0f172a;color:var(--text-primary);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;letter-spacing:-.011em;line-height:1.5}code{font-family:JetBrains Mono,source-code-pro,Menlo,Monaco,Consolas,monospace}.btn-action,.btn-delete,.btn-edit,.btn-error,.btn-modules,.btn-primary,.btn-secondary,.btn-success,.btn-view,.btn-warning,.cancel-btn,.submit-btn,button,button.btn-action,button.btn-delete,button.btn-edit,button.btn-error,button.btn-modules,button.btn-primary,button.btn-secondary,button.btn-success,button.btn-view,button.btn-warning,button.cancel-btn,button.submit-btn{font-family:inherit!important;font-size:14px!important;line-height:1.4!important;white-space:nowrap!important}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}#root,body,html{height:100%}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#475569;background:var(--secondary-hover);border-radius:99px;opacity:.3}::-webkit-scrollbar-thumb:hover{background:#4f46e5;background:var(--primary-color)}.app-layout{background:#f8fafc;background:var(--light-bg);overflow-x:hidden;width:100%}.app-layout,.main-content{display:flex;min-height:100vh}.main-content{flex:1 1;flex-direction:column;margin-left:250px;min-width:0;width:calc(100% - 250px)}.page-content{flex:1 1;padding:30px;width:100%}.error-banner{background:#fef2f2;background:var(--error-soft);border:1px solid #ef444433;border-radius:12px;box-shadow:0 4px 12px #ef44440d;color:#ef4444;color:var(--error-color)}.error-banner,.success-banner{font-size:14px;font-weight:600;margin-bottom:20px;padding:14px 20px}.success-banner{background:#ecfdf5;background:var(--success-soft);border:1px solid #10b98133;border-radius:12px;box-shadow:0 4px 12px #10b9810d;color:#10b981;color:var(--success-color)}.info-banner{background:#f5f3ff;background:var(--primary-soft);border:1px solid #4f46e533;border-radius:12px;box-shadow:0 4px 12px #4f46e50d;color:#4f46e5;color:var(--primary-color);font-size:14px;font-weight:600;margin-bottom:20px;padding:14px 20px}@media (max-width:768px){.main-content{margin-left:0;width:100%}.app-layout{flex-direction:column}.page-content{padding:20px}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.btn-primary{align-items:center;background:var(--primary-color);border:none;border-radius:10px;box-shadow:0 4px 6px -1px #2563eb33;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:10px;justify-content:center;line-height:1.4;min-height:44px;padding:10px 24px;transition:all .2s ease}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 10px 15px -3px #2563eb4d;transform:translateY(-1px)}.btn-secondary{align-items:center;background:var(--card-bg);border:1px solid var(--sidebar-border);border-radius:10px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:10px;justify-content:center;line-height:1.4;min-height:44px;padding:10px 24px;transition:all .2s ease}.btn-secondary:hover{border-color:var(--secondary-color)}.btn-action{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-size:11px;font-weight:700;gap:6px;justify-content:center;letter-spacing:.025em;min-width:80px;padding:6px 14px;text-transform:uppercase;transition:all .2s}.btn-edit{background:#fffbeb;border:1px solid #fde68a;color:#d97706}.btn-edit:hover{background:#fef3c7;border-color:#d97706;transform:translateY(-1px)}.btn-delete{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.btn-delete:hover{background:#fee2e2;border-color:#dc2626;transform:translateY(-1px)}.btn-modules{background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb}.btn-modules:hover{background:#dbeafe;border-color:#2563eb;transform:translateY(-1px)}.btn-view{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569}.btn-view:hover{background:#e2e8f0;border-color:#475569;transform:translateY(-1px)}.btn-secondary:hover{background:var(--secondary-soft);border-color:#cbd5e1;color:var(--secondary-hover)}.btn-success{background:var(--success-color);box-shadow:0 4px 12px -2px #10b9814d;color:#fff}.btn-success:hover{background:#059669}.btn-warning{background:var(--warning-color);box-shadow:0 4px 12px -2px #f59e0b4d;color:#fff}.btn-warning:hover{background:#d97706}.btn-error{background:var(--error-color);box-shadow:0 4px 12px -2px #ef44444d;color:#fff}.btn-error:hover{background:#dc2626}.btn-primary:active,.btn-secondary:active{transform:translateY(0)}
/*# sourceMappingURL=main.a1f9589c.css.map*/