:root{--bg-base:#0b0e11;--bg-surface:#12161c;--bg-elevated:#1a1f28;--bg-overlay:#232a35;--border-default:#2a3040;--border-hover:#3d4a5c;--border-active:#94a3b8;--text-primary:#c9d1d9;--text-secondary:#7b8794;--text-muted:#4a5568;--text-bright:#e6edf3;--accent:#94a3b8;--accent-dim:#94a3b81a;--accent-glow:#94a3b833;--success-color:#4ade80;--danger-color:#f87171;--warning-color:#fbbf24;--info-color:#60a5fa;--primary-color:#94a3b8;--secondary-color:#7b8794;--dark-color:#c9d1d9;--light-color:#0d0d17;--font-mono:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",ui-monospace,monospace;--font-size-xs:.6875rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-lg:1rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--radius-sm:3px;--radius-md:6px;--radius-lg:8px}*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html,body{max-width:100vw;font-family:var(--font-mono);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}a{color:var(--accent);text-underline-offset:2px;-webkit-text-decoration:underline #94a3b866;text-decoration:underline #94a3b866;transition:all .15s}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}a.btn,a.nav-link,a.navbar-brand,a.dropdown-item{text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.container-fluid{padding-left:1.5rem;padding-right:1.5rem}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:none;transition:border-color .2s}.card:hover{border-color:var(--border-hover);box-shadow:none}.card-header{background:var(--bg-elevated);border-bottom:1px solid var(--border-default);color:var(--text-bright);font-weight:600;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;padding:.625rem 1rem}.card-body{padding:1rem}.stats-card{border-left:3px solid var(--accent)}.stats-card h2{font-variant-numeric:tabular-nums;color:var(--text-bright);font-weight:700}.stats-card h6{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.1em;font-weight:500;color:var(--text-secondary)!important}.stats-card.success{border-left-color:var(--success-color)}.stats-card.success h2{color:var(--success-color)}.stats-card.warning{border-left-color:var(--warning-color)}.stats-card.warning h2{color:var(--warning-color)}.stats-card.danger{border-left-color:var(--danger-color)}.stats-card.danger h2{color:var(--danger-color)}.btn{font-family:var(--font-mono);font-size:var(--font-size-sm);border-radius:var(--radius-sm);letter-spacing:.02em;border-width:1px;font-weight:500;transition:all .15s}.btn-primary{background:var(--accent-dim);color:var(--accent);border-color:#94a3b859}.btn-primary:hover,.btn-primary:focus{border-color:var(--accent);color:#cbd5e1;box-shadow:0 0 12px var(--accent-glow);background:#94a3b82e}.btn-success{color:var(--success-color);background:#4ade801f;border-color:#4ade8059}.btn-success:hover,.btn-success:focus{border-color:var(--success-color);color:#86efac;background:#4ade8038;box-shadow:0 0 12px #4ade8033}.btn-danger{color:var(--danger-color);background:#f871711f;border-color:#f8717159}.btn-danger:hover,.btn-danger:focus{border-color:var(--danger-color);color:#fca5a5;background:#f8717138;box-shadow:0 0 12px #f8717133}.btn-warning{color:var(--warning-color);background:#fbbf241f;border-color:#fbbf2459}.btn-warning:hover,.btn-warning:focus{border-color:var(--warning-color);color:#fde68a;background:#fbbf2438;box-shadow:0 0 12px #fbbf2433}.btn-info{color:var(--info-color);background:#60a5fa1f;border-color:#60a5fa59}.btn-info:hover,.btn-info:focus{border-color:var(--info-color);color:#93c5fd;background:#60a5fa38;box-shadow:0 0 12px #60a5fa33}.btn-secondary{background:var(--bg-elevated);border-color:var(--border-default);color:var(--text-secondary)}.btn-secondary:hover,.btn-secondary:focus{background:var(--bg-overlay);border-color:var(--border-hover);color:var(--text-primary)}.btn-outline-secondary{border-color:var(--border-default);color:var(--text-secondary);background:0 0}.btn-outline-secondary:hover,.btn-outline-secondary:focus{background:var(--bg-elevated);border-color:var(--border-hover);color:var(--text-primary)}.btn-lg{font-size:var(--font-size-base);padding:.5rem 1.25rem}.btn-sm{font-size:var(--font-size-xs);padding:.25rem .625rem}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--radius-sm)0 0 var(--radius-sm)}.btn-group .btn:last-child{border-radius:0 var(--radius-sm)var(--radius-sm)0}.btn-group .btn:only-child{border-radius:var(--radius-sm)}.badge{font-family:var(--font-mono);font-weight:500;font-size:var(--font-size-xs);letter-spacing:.06em;border-radius:var(--radius-sm);padding:.25em .6em}.badge-status{text-transform:uppercase}.badge.bg-success{border:1px solid #4ade804d;color:var(--success-color)!important;background:#4ade8026!important}.badge.bg-warning{border:1px solid #fbbf244d;color:var(--warning-color)!important;background:#fbbf2426!important}.badge.bg-danger{border:1px solid #f871714d;color:var(--danger-color)!important;background:#f8717126!important}.badge.bg-primary{border:1px solid #94a3b840;background:var(--accent-dim)!important;color:var(--accent)!important}.badge.bg-secondary{border:1px solid var(--border-default);background:var(--bg-elevated)!important;color:var(--text-secondary)!important}.badge.bg-info{border:1px solid #60a5fa4d;color:var(--info-color)!important;background:#60a5fa26!important}.table{color:var(--text-primary);font-size:var(--font-size-sm);--bs-table-bg:transparent;--bs-table-hover-bg:var(--bg-elevated);--bs-table-border-color:var(--border-default);border-color:var(--border-default);margin-bottom:0}.table thead th{background:var(--bg-elevated);color:var(--text-secondary);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border-default);white-space:nowrap;padding:.5rem .75rem}.table tbody td{vertical-align:middle;border-bottom:1px solid #2a304080;padding:.625rem .75rem}.table-hover tbody tr:hover{background:var(--bg-elevated)!important}.form-control,.form-select{font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);padding:.5rem .75rem;transition:all .15s}.form-control::placeholder{color:var(--text-muted)}.form-control:focus,.form-select:focus{background:var(--bg-base);border-color:var(--accent);color:var(--text-bright);box-shadow:0 0 0 3px var(--accent-glow)}.form-label{color:var(--text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.375rem;font-weight:600}.form-text{font-size:var(--font-size-xs);color:var(--text-muted)}.form-control[type=file]{color:var(--text-secondary)}.form-control[type=file]::file-selector-button{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-xs);margin-right:.75rem;padding:.375rem .75rem;transition:all .15s}.form-control[type=file]::file-selector-button:hover{background:var(--bg-overlay);color:var(--text-primary)}.modal-content{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary)}.modal-header{background:var(--bg-elevated);border-bottom:1px solid var(--border-default);padding:.75rem 1rem}.modal-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-bright);font-weight:600}.modal-body{padding:1.25rem 1rem}.modal-footer{background:var(--bg-elevated);border-top:1px solid var(--border-default);padding:.75rem 1rem}.modal-backdrop.show{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3}.btn-close{filter:invert()grayscale()brightness(200%);opacity:.5}.btn-close:hover{opacity:.8}.alert{font-family:var(--font-mono);font-size:var(--font-size-sm);border-radius:var(--radius-sm);border-width:1px;padding:.5rem 1rem}.alert-danger{color:var(--danger-color);background:#f8717114;border-color:#f8717140}.alert-success{color:var(--success-color);background:#4ade8014;border-color:#4ade8040}.alert-info{color:var(--info-color);background:#60a5fa14;border-color:#60a5fa40}.alert .btn-close{padding:.625rem}.spinner-border{border-color:var(--border-hover);border-right-color:#0000}.spinner-border-sm{border-width:.15em;width:.875rem;height:.875rem}.text-primary{color:var(--accent)!important}.text-success{color:var(--success-color)!important}.text-danger{color:var(--danger-color)!important}.text-warning{color:var(--warning-color)!important}.text-muted{color:var(--text-secondary)!important}.text-info{color:var(--info-color)!important}.bg-primary{background-color:var(--accent)!important}.bg-light{background-color:var(--bg-base)!important}h1,h2,h3,h4,h5,h6{color:var(--text-bright);font-weight:600}h1{font-size:var(--font-size-2xl);letter-spacing:-.02em}h2{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-base)}strong{color:var(--text-bright);font-weight:600}small{font-size:var(--font-size-xs)}.project-item{cursor:pointer;transition:all .15s}.project-item:hover{background-color:var(--bg-elevated)}.browser-preview{border:1px solid var(--border-default);border-radius:var(--radius-md);background-color:var(--bg-surface);width:100%;height:600px}::selection{color:#e2e8f0;background:#94a3b84d}
