:root{--primary-color:#6366f1;--primary-hover:#4f46e5;--secondary-color:#10b981;--bg-color:#0f172a;--bg-surface:#1e293b;--bg-surface-hover:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--danger-color:#ef4444;--danger-hover:#dc2626;--border-color:#334155;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--border-radius-sm:.375rem;--border-radius-md:.5rem;--border-radius-lg:1rem;--font-family:"Inter", system-ui, Avenir, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);min-height:100vh;line-height:1.5}a{color:var(--primary-color);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-hover)}button{cursor:pointer;border:none;outline:none;font-family:inherit}.btn{border-radius:var(--border-radius-md);justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary-color);color:#fff;box-shadow:0 4px 14px #6366f163}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.btn-danger{color:var(--danger-color);border:1px solid var(--danger-color);background-color:#0000}.btn-danger:hover{background-color:var(--danger-color);color:#fff}.input-group{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.input-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.input-field{background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--border-radius-md);color:var(--text-primary);padding:.75rem 1rem;font-size:1rem;transition:all .2s}.input-field:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #6366f133}.card{background-color:var(--bg-surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-color);padding:1.5rem}.table-container{width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid var(--border-color);padding:1rem}th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}tr:hover td{background-color:#ffffff05}.glass{-webkit-backdrop-filter:blur(10px);background:#1e293bb3;border:1px solid #ffffff1a}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background-color:var(--bg-surface);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);padding:2rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h2{font-size:1.5rem;font-weight:600}.close-btn{color:var(--text-secondary);border-radius:var(--border-radius-sm);background:0 0;padding:.25rem;font-size:1.5rem}.close-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.app-container{min-height:100vh;display:flex}.sidebar{background-color:var(--bg-surface);border-right:1px solid var(--border-color);flex-direction:column;width:260px;padding:1.5rem 1rem;display:flex}.sidebar-logo{color:var(--primary-color);align-items:center;gap:.75rem;margin-bottom:2rem;padding:0 1rem;font-size:1.5rem;font-weight:700;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:.5rem;display:flex}.nav-item{border-radius:var(--border-radius-md);color:var(--text-secondary);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{color:var(--text-primary);background-color:#ffffff0d}.nav-item.active{color:var(--primary-color);border-left:3px solid var(--primary-color);background-color:#6366f11a}.main-content{flex-direction:column;flex:1;gap:2rem;padding:2rem;display:flex;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;display:flex}.page-title{font-size:1.875rem;font-weight:700}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;display:grid}.stat-card{border-radius:var(--border-radius-lg);background:linear-gradient(145deg, var(--bg-surface), #1e293b66);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);align-items:center;gap:1.5rem;padding:1.5rem;transition:transform .2s;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{width:48px;height:48px;color:var(--primary-color);background-color:#6366f11a;border-radius:12px;justify-content:center;align-items:center;display:flex}.stat-details h3{color:var(--text-secondary);font-size:.875rem;font-weight:500}.stat-details p{color:var(--text-primary);font-size:1.5rem;font-weight:700}.badge{text-transform:uppercase;border-radius:9999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{color:var(--secondary-color);background-color:#10b9811a}.badge-primary{color:var(--primary-color);background-color:#6366f11a}.loading-spinner{border:3px solid #ffffff1a;border-top:3px solid var(--primary-color);border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast-container{z-index:100;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:2rem;right:2rem}.toast{border-radius:var(--border-radius-md);background-color:var(--bg-surface);color:#fff;box-shadow:var(--shadow-lg);border-left:4px solid var(--primary-color);align-items:center;gap:.75rem;padding:1rem 1.5rem;animation:.3s forwards slideIn;display:flex}.toast.error{border-left-color:var(--danger-color)}.toast.success{border-left-color:var(--secondary-color)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-grid .full-width{grid-column:1/-1}textarea.input-field{resize:vertical;min-height:100px}
