:root{--clr-primary:#7c3aed;--clr-primary-dark:#6d28d9;--clr-primary-light:#a78bfa;--clr-primary-gradient:linear-gradient(135deg, #7c3aed, #a78bfa);--bg-0:#0f0f23;--bg-1:#1e1c35;--bg-2:#2a2850;--bg-3:#35336b;--txt-primary:#e2e8f0;--txt-secondary:#94a3b8;--txt-muted:#64748b;--clr-success:#10b981;--clr-warning:#f59e0b;--clr-danger:#ef4444;--clr-info:#3b82f6;--bdr-default:#4c1d95;--bdr-light:#37306b;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--sh-2:0 4px 12px #7c3aed26;--sh-glow:0 0 20px #7c3aed4d;--ff-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--sidebar-width:220px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{background:var(--bg-0);min-height:100%;color:var(--txt-primary);font-family:var(--ff-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}#app{height:100%}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#4c1d95;border-radius:2px}*{scrollbar-width:thin;scrollbar-color:#4c1d95 transparent}::selection{color:#fff;background:#7c3aed4d}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-container{height:100vh}.page-header{background:var(--bg-1);border-radius:var(--r-md);border:1px solid var(--bdr-light);justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 20px;display:flex}.page-header h2{color:var(--txt-primary);letter-spacing:.3px;font-size:18px;font-weight:700}.page-header h2:before{content:"";background:var(--clr-primary-gradient);vertical-align:middle;border-radius:2px;width:3px;height:18px;margin-right:10px;display:inline-block}.search-bar{background:var(--bg-1);border-radius:var(--r-md);border:1px solid var(--bdr-light);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px;animation:.3s fadeIn;display:flex}.stat-card{background:var(--bg-1);border:1px solid var(--bdr-light);padding:20px;transition:transform .25s,box-shadow .3s;animation:.4s both fadeInUp;border-radius:var(--r-lg)!important}.stat-card:first-child{animation-delay:50ms}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:nth-child(4){animation-delay:.2s}.stat-card:hover{box-shadow:var(--sh-2), 0 8px 24px #0003;transform:translateY(-4px)}.stat-card .stat-label{color:var(--txt-secondary);margin-bottom:6px;font-size:13px}.stat-card .stat-value{color:var(--txt-primary);letter-spacing:-.5px;font-size:28px;font-weight:800}.stat-card .stat-trend{margin-top:6px;font-size:12px}.stat-card .stat-trend.up{color:var(--clr-success)}.stat-card .stat-trend.down{color:var(--clr-danger)}.admin-sidebar{background-color:var(--bg-0)}.admin-sidebar .el-menu{border-right:none}.admin-sidebar .el-menu-item,.admin-sidebar .el-sub-menu__title{color:var(--txt-secondary)}.admin-sidebar .el-menu-item.is-active{color:var(--clr-primary);border-right:2px solid var(--clr-primary);background:linear-gradient(90deg,#7c3aed26,#0000)}.admin-sidebar .el-menu-item:hover,.admin-sidebar .el-sub-menu__title:hover{background-color:var(--bg-2)}.sidebar-logo{height:60px;color:var(--txt-primary);border-bottom:1px solid var(--bdr-light);white-space:nowrap;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;overflow:hidden}.el-button--primary{background:var(--clr-primary-gradient);border-radius:var(--r-md);letter-spacing:.3px;color:#fff;border:none;min-height:36px;padding:8px 18px;font-weight:600}.el-button--primary.el-button--small{min-height:30px;padding:4px 12px;font-size:13px}.el-button--primary:hover{box-shadow:var(--sh-glow);opacity:.92}.el-button--primary:active{transform:scale(.97)}.el-button--success{background:var(--clr-success);border-color:var(--clr-success)}.el-button--danger{background:var(--clr-danger);border-color:var(--clr-danger)}.el-input__wrapper{background:var(--bg-2);border:1px solid var(--bdr-light);border-radius:var(--r-sm);box-shadow:none;transition:border-color .2s,box-shadow .2s}.el-input__wrapper.is-focus{border-color:var(--clr-primary);box-shadow:0 0 0 1px #7c3aed40}.el-input__inner{color:var(--txt-primary);caret-color:var(--clr-primary)}.el-input__inner::placeholder{color:var(--txt-muted)}.el-select .el-input__wrapper,.el-date-editor .el-input__wrapper{background:var(--bg-2)}.el-card{background:var(--bg-1);border:1px solid var(--bdr-light);border-radius:var(--r-lg);transition:box-shadow .3s;overflow:hidden}.el-card:hover{box-shadow:var(--sh-2)}.el-card__header{border-bottom:1px solid var(--bdr-light);color:var(--txt-primary);background:var(--bg-2);padding:14px 18px;font-size:15px;font-weight:600}.el-card__body{padding:16px}.el-tag--success{color:var(--clr-success);background:#10b98126;border:none;border-radius:4px}.el-tag--warning{color:var(--clr-warning);background:#f59e0b26;border:none;border-radius:4px}.el-tag--danger{color:var(--clr-danger);background:#ef444426;border:none;border-radius:4px}.el-tag--info{color:var(--clr-info);background:#3b82f626;border:none;border-radius:4px}.el-table{background:var(--bg-1);color:var(--txt-primary);border-radius:var(--r-md);border:1px solid var(--bdr-light);--el-table-border-color:var(--bdr-light);--el-table-header-bg-color:var(--bg-2);--el-table-tr-bg-color:var(--bg-1);--el-table-row-hover-bg-color:var(--bg-3);overflow:hidden}.el-table th.el-table__cell{background:var(--bg-2);color:var(--txt-secondary);font-size:13px;font-weight:600}.el-table td.el-table__cell{color:var(--txt-primary);padding:10px 0}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#2a285066}.el-table__body tr{transition:background .15s}.el-tabs{margin-bottom:16px}.el-tabs__item{color:var(--txt-secondary);font-size:14px;font-weight:500}.el-tabs__item.is-active{color:var(--clr-primary)}.el-tabs__active-bar{background:var(--clr-primary);height:2px}.el-tabs__nav-wrap:after{background:var(--bdr-light);height:1px}.el-dialog{background:var(--bg-1);border-radius:var(--r-xl);border:1px solid var(--bdr-light);box-shadow:0 20px 60px #00000080}.el-dialog__title{color:var(--txt-primary);font-size:17px;font-weight:600}.el-dialog__body{color:var(--txt-secondary);padding:16px 20px}.el-dialog__header{padding:16px 20px 0}.el-dialog__headerbtn .el-dialog__close{color:var(--txt-muted)}.el-dialog__headerbtn:hover .el-dialog__close{color:var(--txt-primary)}.el-dialog__footer{padding:10px 20px 16px}.el-message{border-left:4px solid var(--clr-primary);background:var(--bg-1);border-radius:var(--r-sm);box-shadow:var(--sh-2), 0 8px 20px #0000004d}.el-message .el-message__content{color:var(--txt-primary)}.el-pagination{--el-pagination-button-bg-color:var(--bg-1);--el-pagination-button-hover-bg-color:var(--bg-2);--el-pagination-text-color:var(--txt-secondary);padding:8px 0}.el-pagination button{background:var(--bg-2);border-radius:var(--r-sm);color:var(--txt-secondary);border:1px solid var(--bdr-light)}.el-pagination button.is-active{background:var(--clr-primary);color:#fff;border-color:var(--clr-primary)}.el-pagination .el-pager li{background:var(--bg-2);border-radius:var(--r-sm);color:var(--txt-secondary);border:1px solid var(--bdr-light);min-width:32px;margin:0 2px}.el-pagination .el-pager li.active{background:var(--clr-primary);color:#fff;border-color:var(--clr-primary)}.el-switch.is-checked .el-switch__core{background:var(--clr-primary)!important;border-color:var(--clr-primary)!important}.el-empty__description p{color:var(--txt-muted)}.el-breadcrumb{font-size:13px}.el-breadcrumb__inner{color:var(--txt-muted)!important}.el-breadcrumb__inner a:hover{color:var(--clr-primary)!important}.el-breadcrumb__separator{color:var(--txt-muted)}.el-timeline-item__timestamp{font-size:12px;color:var(--txt-muted)!important}.el-timeline-item__content{color:var(--txt-secondary);font-size:13px}.el-timeline-item__node--primary{background:var(--clr-primary)}.el-alert--info{background:#3b82f61a;border:1px solid #3b82f633}.el-alert__title{color:var(--txt-primary);font-size:13px}.el-descriptions,.el-descriptions__title{color:var(--txt-primary)}.el-descriptions__label{color:var(--txt-secondary)}.el-descriptions__body{background:var(--bg-1)}.el-descriptions__cell{background:var(--bg-2)}.el-form-item__label{color:var(--txt-secondary);font-weight:500}.el-form-item.is-error .el-input__wrapper{border-color:var(--clr-danger)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.text-success{color:var(--clr-success)}.text-warning{color:var(--clr-warning)}.text-danger{color:var(--clr-danger)}.text-info{color:var(--clr-info)}.text-muted{color:var(--txt-muted)}
