:root{--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--bg-app:#030303;--bg-surface:#0a0a0f;--bg-card:#101018b3;--bg-sidebar:#050508;--border-color:#ffffff0f;--text-primary:#f4f4f7;--text-secondary:#94a3b8;--text-muted:#64748b;--primary:#8b5cf6;--primary-rgb:139, 92, 246;--primary-hover:#a78bfa;--primary-glow:#8b5cf61f;--accent:#2563eb;--accent-rgb:37, 99, 235;--accent-hover:#60a5fa;--success:#10b981;--success-glow:#10b9811a;--warning:#f59e0b;--warning-glow:#f59e0b1a;--danger:#ef4444;--danger-glow:#ef44441a;--info:#06b6d4;--info-glow:#06b6d41a;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 12px -2px #0000004d, 0 2px 4px -1px #0003;--shadow-lg:0 12px 24px -4px #0006, 0 4px 8px -2px #0000004d;--shadow-premium:0 20px 40px -10px #0009, inset 0 1px 0 #ffffff1a;--glass-bg:#ffffff05;--glass-border:#ffffff0d;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px}*{box-sizing:border-box;font-family:var(--font-sans);scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}body{background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}a{color:inherit;text-decoration:none}.app-container{background-color:var(--bg-app);min-height:100vh;display:flex}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;width:260px;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.brand-section{align-items:center;gap:.75rem;margin-bottom:2rem;padding:.5rem .75rem;display:flex}.brand-logo-icon{background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:var(--radius-md);color:#fff;width:38px;height:38px;box-shadow:0 0 15px rgba(var(--primary-rgb), .4);justify-content:center;align-items:center;font-size:1.25rem;font-weight:800;display:flex}.brand-name{background:linear-gradient(135deg,#fff,#a1a1aa);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;font-size:1.15rem;font-weight:800}.nav-links{flex-direction:column;flex-grow:1;gap:.35rem;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;border:1px solid #0000;align-items:center;gap:.85rem;padding:.75rem 1rem;font-size:.925rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.nav-item:hover{color:var(--text-primary);background-color:#ffffff08}.nav-item.active{color:#fff;background:linear-gradient(90deg, var(--primary-glow), transparent);border-color:rgba(var(--primary-rgb), .15);box-shadow:inset 2px 0 0 var(--primary)}.nav-icon{width:18px;height:18px;transition:transform .2s}.nav-item:hover .nav-icon{transform:translate(2px)}.app-content{flex-grow:1;width:calc(100% - 260px);max-width:1400px;margin:0 auto;padding:2rem;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.page-title{letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#94a3b8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.85rem;font-weight:800}.page-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.95rem}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-premium);padding:1.5rem;transition:border-color .25s,transform .25s}.card:hover{border-color:#ffffff1f}.gradient-card{position:relative;overflow:hidden}.gradient-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), #7c3aed);color:#fff;box-shadow:0 4px 14px 0 rgba(var(--primary-rgb), .25)}.btn-primary:hover{box-shadow:0 6px 20px 0 rgba(var(--primary-rgb), .4);background:linear-gradient(135deg, var(--primary-hover), var(--primary));transform:translateY(-1px)}.btn-secondary{color:var(--text-primary);border-color:var(--border-color);background:#ffffff0a}.btn-secondary:hover{background:#ffffff14;border-color:#ffffff26}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626;box-shadow:0 4px 12px #ef444433}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.form-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.form-input{border:1px solid var(--border-color);border-radius:var(--radius-md);color:#fff;background:#ffffff08;outline:none;width:100%;padding:.65rem .9rem;font-size:.95rem;transition:all .2s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .15);background:#ffffff0d}.form-input::placeholder{color:var(--text-muted)}.form-input[type=date]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer;opacity:.85;transition:opacity .2s}.form-input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.grid-cols-2{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.grid-cols-3{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.grid-cols-4{grid-template-columns:repeat(4,1fr);gap:1.5rem;display:grid}.badge{letter-spacing:.02em;border-radius:9999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background:var(--success-glow);color:var(--success);border:1px solid #10b98133}.badge-warning{background:var(--warning-glow);color:var(--warning);border:1px solid #f59e0b33}.badge-danger{background:var(--danger-glow);color:var(--danger);border:1px solid #ef444433}.badge-info{background:var(--info-glow);color:var(--info);border:1px solid #06b6d433}.table-container{margin-top:1rem;overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;width:100%}.custom-table th{text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-color);letter-spacing:.05em;padding:1rem;font-size:.8rem;font-weight:700}.custom-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle;padding:1rem;font-size:.925rem}.custom-table tr:last-child td{border-bottom:none}.custom-table tr:hover td{background-color:#ffffff03}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:600px;box-shadow:var(--shadow-lg);max-height:90vh;padding:2rem;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes itemAdd{0%{opacity:0;filter:blur(4px);transform:scale(.96)}to{opacity:1;filter:blur();transform:scale(1)}}.item-add-animate{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards itemAdd}@keyframes itemDelete{0%{opacity:1;filter:blur();transform:scale(1)}to{opacity:0;filter:blur(4px);transform:scale(.96)}}.item-delete-animate{pointer-events:none;animation:.25s cubic-bezier(.25,1,.5,1) forwards itemDelete}@keyframes toastIn{0%{opacity:0;transform:translateY(40px)scale(.9)}75%{opacity:.95;transform:translateY(-5px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-notification{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards toastIn}@keyframes spin{to{transform:rotate(360deg)}}@keyframes connPulse{0%{opacity:.8;transform:scale(.8)}70%{opacity:0;transform:scale(2)}to{opacity:0;transform:scale(2)}}
