:root{--bg-base: #0a0c10;--bg-surface: #111318;--bg-elevated: #181b22;--bg-card: #1c2029;--bg-hover: #222633;--border: #2a2f3d;--border-light: #333a4d;--accent: #00e5ff;--accent-dim: rgba(0, 229, 255, .12);--accent-glow: 0 0 20px rgba(0, 229, 255, .25);--green: #00e676;--green-dim: rgba(0, 230, 118, .12);--red: #ff5252;--red-dim: rgba(255, 82, 82, .12);--yellow: #ffd740;--yellow-dim: rgba(255, 215, 64, .12);--purple: #e040fb;--purple-dim: rgba(224, 64, 251, .12);--text-primary: #e8eaf0;--text-secondary:#8892a4;--text-muted: #555e72;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 2px 8px rgba(0,0,0,.4);--shadow-md: 0 4px 20px rgba(0,0,0,.5);--shadow-lg: 0 8px 40px rgba(0,0,0,.6);--sidebar-width: 240px;--topbar-height: 60px;--font-heading: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "Space Mono", monospace;--transition: all .18s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2;color:var(--text-primary)}a{color:var(--accent);text-decoration:none;transition:var(--transition)}a:hover{color:var(--text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:var(--transition)}.card:hover{border-color:var(--border-light)}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.card__title{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--text-primary)}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;position:relative;overflow:hidden;transition:var(--transition)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.stat-card.accent:before{background:var(--accent);box-shadow:var(--accent-glow)}.stat-card.green:before{background:var(--green)}.stat-card.red:before{background:var(--red)}.stat-card.yellow:before{background:var(--yellow)}.stat-card.purple:before{background:var(--purple)}.stat-card__icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:14px}.stat-card__icon.accent{background:var(--accent-dim);color:var(--accent)}.stat-card__icon.green{background:var(--green-dim);color:var(--green)}.stat-card__icon.red{background:var(--red-dim);color:var(--red)}.stat-card__icon.yellow{background:var(--yellow-dim);color:var(--yellow)}.stat-card__icon.purple{background:var(--purple-dim);color:var(--purple)}.stat-card__value{font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:4px}.stat-card__label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.stat-card__trend{font-size:11px;font-family:var(--font-mono);margin-top:8px}.stat-card__trend.up{color:var(--green)}.stat-card__trend.down{color:var(--red)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-md);font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:var(--transition);white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#000;font-weight:600}.btn-primary:hover:not(:disabled){background:#3ef;box-shadow:var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-light)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid rgba(255,82,82,.2)}.btn-danger:hover:not(:disabled){background:#ff525233}.btn-success{background:var(--green-dim);color:var(--green);border:1px solid rgba(0,230,118,.2)}.btn-success:hover:not(:disabled){background:#00e67633}.btn-sm{padding:6px 14px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.btn-icon{padding:8px;border-radius:var(--radius-sm)}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.form-control{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:14px;padding:10px 14px;outline:none;transition:var(--transition)}.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.form-control::placeholder{color:var(--text-muted)}.form-control.is-invalid{border-color:var(--red)}textarea.form-control{resize:vertical;min-height:100px}select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238892a4' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.form-error{font-size:12px;color:var(--red);margin-top:4px;display:flex;align-items:center;gap:4px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.badge:before{content:"";width:6px;height:6px;border-radius:50%;display:inline-block}.badge-success{background:var(--green-dim);color:var(--green)}.badge-success:before{background:var(--green)}.badge-danger{background:var(--red-dim);color:var(--red)}.badge-danger:before{background:var(--red)}.badge-warning{background:var(--yellow-dim);color:var(--yellow)}.badge-warning:before{background:var(--yellow)}.badge-info{background:var(--accent-dim);color:var(--accent)}.badge-info:before{background:var(--accent)}.badge-purple{background:var(--purple-dim);color:var(--purple)}.badge-purple:before{background:var(--purple)}.badge-default{background:var(--bg-elevated);color:var(--text-secondary)}.badge-default:before{background:var(--text-muted)}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:10px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:14px 16px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border);vertical-align:middle}.data-table tr:hover td{background:var(--bg-hover)}.data-table tr:last-child td{border-bottom:none}.page-header{margin-bottom:28px}.page-header h1{font-size:24px;font-weight:600;margin-bottom:4px}.page-header p{color:var(--text-secondary);font-size:14px}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1200px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.divider{height:1px;background:var(--border);margin:24px 0}.empty-state{text-align:center;padding:60px 24px;color:var(--text-muted)}.empty-state .icon{font-size:48px;margin-bottom:16px;opacity:.4}.empty-state h3{font-size:16px;color:var(--text-secondary);margin-bottom:8px}.empty-state p{font-size:13px}.loading-overlay{position:fixed;inset:0;background:#0a0c10cc;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tab-nav{display:flex;gap:4px;background:var(--bg-elevated);border-radius:var(--radius-md);padding:4px;margin-bottom:24px;border:1px solid var(--border)}.tab-nav .tab-btn{flex:1;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;border:none;background:transparent;transition:var(--transition);text-align:center}.tab-nav .tab-btn.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tab-nav .tab-btn:hover:not(.active){color:var(--text-primary)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:20px}.pagination button{min-width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:var(--transition)}.pagination button:hover{border-color:var(--accent);color:var(--accent)}.pagination button.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-size:12px;color:var(--text-muted);margin:0 8px}.alert{padding:12px 16px;border-radius:var(--radius-md);font-size:13px;display:flex;align-items:flex-start;gap:10px;margin-bottom:16px}.alert .material-icons{font-size:18px;margin-top:1px;flex-shrink:0}.alert-info{background:var(--accent-dim);border:1px solid rgba(0,229,255,.2);color:var(--accent)}.alert-success{background:var(--green-dim);border:1px solid rgba(0,230,118,.2);color:var(--green)}.alert-danger{background:var(--red-dim);border:1px solid rgba(255,82,82,.2);color:var(--red)}.alert-warning{background:var(--yellow-dim);border:1px solid rgba(255,215,64,.2);color:var(--yellow)}.text-accent{color:var(--accent)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-yellow{color:var(--yellow)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.font-mono{font-family:var(--font-mono)}.font-heading{font-family:var(--font-heading)}.flex{display:flex}.flex-center{display:flex;align-items:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.w-full{width:100%}.mt-auto{margin-top:auto}.mb-0{margin-bottom:0}.toast-container .ngx-toastr{background:var(--bg-card)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important;color:var(--text-primary)!important;font-family:var(--font-body)!important}.toast-container .ngx-toastr.toast-success{border-left:3px solid var(--green)!important}.toast-container .ngx-toastr.toast-error{border-left:3px solid var(--red)!important}.toast-container .ngx-toastr.toast-info{border-left:3px solid var(--accent)!important}.toast-container .ngx-toastr.toast-warning{border-left:3px solid var(--yellow)!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .3s ease forwards}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}
