*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:#eef2f7;color:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit}button{cursor:pointer}a{color:#2563eb}.ng-dropdown-panel{z-index:999!important;background-color:#fff!important}.cdk-overlay-container{z-index:999!important}.title{margin:0 0 20px;font-size:24px;font-weight:700;letter-spacing:-.03em;color:#0f172a}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header .title{margin-bottom:4px}.page-subtitle{margin:0;font-size:13px;color:#64748b}@media (max-width: 720px){.page-header{flex-direction:column;align-items:stretch}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.table-card,.table-wrapper-modern,.table-wrapper,.table-section{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:auto;box-shadow:0 4px 6px #0f172a0a,0 10px 28px #0f172a14}.table-section{padding:0}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid #eef2f7;background:#fff}.section-title{margin:0;font-size:15px;font-weight:600;color:#0f172a}.web-table-modern,.users-table,.db-table,.changes-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff}.web-table-modern thead th,.users-table thead th,.db-table thead th,.changes-table thead th,.web-table-modern th,.users-table th,.db-table th,.changes-table th{position:sticky;top:0;z-index:1;padding:12px 16px;background:#0f172a;color:#fff;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-align:left;border-bottom:2px solid #1e293b;white-space:nowrap;box-shadow:0 2px 4px #0f172a1f}.web-table-modern tbody td,.users-table tbody td,.db-table tbody td,.changes-table tbody td,.web-table-modern td,.users-table td,.db-table td,.changes-table td{padding:13px 16px;font-size:13px;color:#334155;text-align:left;vertical-align:middle;border-bottom:1px solid #eef2f7;line-height:1.45}.web-table-modern tbody tr:last-child td,.users-table tbody tr:last-child td,.db-table tbody tr:last-child td,.changes-table tbody tr:last-child td{border-bottom:none}.web-table-modern tbody tr:hover,.users-table tbody tr:hover,.db-table tbody tr:hover,.changes-table tbody tr:hover{background:#f0f4ff}.bold{font-weight:600;color:#0f172a}.url-cell{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modern-link{color:#2563eb;font-weight:500;text-decoration:none;font-size:13px}.modern-link:hover{text-decoration:underline}.actions-cell{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status-chip{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}.running-chip,.status-ok{background:#e8f9e8;color:#0d8a0d}.stopped-chip,.status-fail{background:#fdeaea;color:#c62828}.status-progress{background:#fef3c7;color:#92400e}.version-label{display:inline-block;padding:4px 10px;background:#eef4ff;color:#2a3f70;border-radius:8px;font-size:13px;font-weight:600}.btn-build,.btn-deploy,.btn-modern-small{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:none;border-radius:8px;background:linear-gradient(135deg,#0a0f24,#141e30,#243b55);color:#fff;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:0 2px 6px #0f172a2e;transition:transform .15s ease,opacity .15s ease,box-shadow .15s ease}.btn-build:hover,.btn-deploy:hover,.btn-modern-small:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 4px 10px #0f172a38}.btn-build:disabled,.btn-deploy:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.batch-btn{background:linear-gradient(135deg,#0a0f24,#141e30,#243b55);color:#fff}.batch-btn:hover{opacity:.92;transform:translateY(-1px)}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:13px;font-weight:500;color:#64748b}.filter-group select{padding:7px 12px;border-radius:8px;border:1px solid #cbd5e1;font-size:13px;background:#fff}@media (max-width: 900px){.web-table-modern thead th,.users-table thead th,.db-table thead th,.changes-table thead th,.web-table-modern th,.users-table th,.db-table th,.changes-table th,.web-table-modern tbody td,.users-table tbody td,.db-table tbody td,.changes-table tbody td,.web-table-modern td,.users-table td,.db-table td,.changes-table td{padding:11px 12px}}
