.trend-chart{background-color:var(--card-bg-color);border-radius:8px;padding:16px;box-shadow:0 1px 3px var(--shadow-color)}.trend-chart.compact{padding:12px}.trend-chart .chart-title{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-color)}.trend-chart.compact .chart-title{font-size:12px;margin-bottom:8px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.trend-chart .chart-wrapper{position:relative}.trend-chart .no-data-placeholder{display:flex;align-items:center;justify-content:center;background-color:var(--background-color);border-radius:6px;color:var(--text-muted);font-size:13px;font-style:italic}.dark-mode .trend-chart{background-color:var(--card-bg-color)}.dark-mode .trend-chart .no-data-placeholder{background-color:#ffffff0d}@media (max-width: 768px){.trend-chart{padding:12px}.trend-chart .chart-title{font-size:13px}}.metrics-panel{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-color)}.metrics-panel-header{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;gap:8px;margin-bottom:16px;font:inherit;width:100%;text-align:left}.metrics-panel-header:hover .metrics-panel-title{color:var(--primary-color)}.metrics-panel-toggle{font-size:14px;color:var(--text-muted);transition:transform .2s ease;display:inline-block}.metrics-panel-title{margin:0;font-size:16px;font-weight:600;color:var(--text-color);transition:color .2s ease}.metrics-panel-content{animation:slideDown .25s ease-out;overflow:hidden}.metrics-panel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.metrics-panel-loading,.metrics-panel-empty{display:flex;align-items:center;justify-content:center;padding:40px 20px;background-color:var(--background-color);border-radius:8px;color:var(--text-muted);font-size:14px;font-style:italic}@media (max-width: 1024px){.metrics-panel-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.metrics-panel-grid{grid-template-columns:1fr}.metrics-panel{margin-top:16px;padding-top:16px}}.health-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:#fff;cursor:pointer;border:none;padding:0;line-height:1;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}.health-badge:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.health-badge:focus-visible{outline:2px solid #6e49cb;outline-offset:2px}.health-badge--sm{width:40px;height:40px;font-size:16px}.health-badge--md{width:36px;height:36px;font-size:14px}.health-badge--lg{width:48px;height:48px;font-size:18px}.health-badge--healthy{background-color:#28a745}.health-badge--warning{background-color:#ffc107;color:#333}.health-badge--critical{background-color:#dc3545}.dark-mode .health-badge--healthy{background-color:#4caf50}.dark-mode .health-badge--warning{background-color:#ffca28;color:#222}.dark-mode .health-badge--critical{background-color:#f44336}@keyframes healthBadgeFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.health-badge{animation:healthBadgeFadeIn .3s ease-out}.portfolio-health{margin-top:16px;padding:16px;border:1px solid #e9ecef;border-radius:8px;background:#fff}.portfolio-health__title{margin:0 0 12px;font-size:16px;font-weight:600}.portfolio-health__content{display:flex;align-items:center;gap:24px}.portfolio-health__badge-area{display:flex;flex-direction:column;align-items:center;gap:4px}.portfolio-health__avg-label{font-size:12px;color:#888}.portfolio-health__chart-area{display:flex;align-items:center;gap:16px;flex:1}.portfolio-health__chart{width:100px;height:100px;position:relative}.portfolio-health__legend{display:flex;flex-direction:column;gap:6px;font-size:13px}.portfolio-health__legend-item{display:flex;align-items:center;gap:6px}.portfolio-health__legend-color{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}@media (max-width: 600px){.portfolio-health__content{flex-direction:column;gap:12px}.portfolio-health__chart-area{flex-direction:column}.portfolio-health__chart{width:80px;height:80px}}.dark-mode .portfolio-health{background:#1e1e1e;border-color:#444}.dark-mode .portfolio-health__title{color:#e0e0e0}.dark-mode .portfolio-health__avg-label{color:#999}.dark-mode .portfolio-health__legend{color:#ccc}.failure-summary-panel{margin-top:16px}.failure-summary-empty{text-align:center;padding:16px;color:#28a745;font-weight:500}.failure-summary-panel.dark .failure-summary-empty{color:#3fb950}.failure-summary-list{display:flex;flex-direction:column;gap:6px}.failure-summary-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border:1px solid #dc354533;border-radius:6px;background:#dc354508;cursor:pointer;text-align:left;width:100%;font:inherit;transition:background .15s,border-color .15s}.failure-summary-item:hover{background:#dc354515;border-color:#dc354566}.failure-summary-panel.dark .failure-summary-item{background:#f8514912;border-color:#f8514933;color:#c9d1d9}.failure-summary-panel.dark .failure-summary-item:hover{background:#f8514922;border-color:#f8514966}.failure-summary-project-name{font-weight:600;font-size:14px;color:#dc3545;min-width:0;flex-shrink:0}.failure-summary-panel.dark .failure-summary-project-name{color:#f85149}.failure-summary-jobs{display:flex;align-items:center;gap:8px;font-size:12px;color:#666;text-align:right;flex-shrink:1;min-width:0}.failure-summary-panel.dark .failure-summary-jobs{color:#8b949e}.failure-count{white-space:nowrap;font-weight:500;color:#dc3545}.failure-summary-panel.dark .failure-count{color:#f85149}.failure-job-names{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.metric-alert{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;cursor:help;white-space:nowrap}.metric-alert.compact{padding:2px 6px;font-size:10px}.metric-alert .alert-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;font-size:10px;font-weight:700}.metric-alert.compact .alert-icon{width:12px;height:12px;font-size:9px}.metric-alert .alert-label{text-transform:uppercase;letter-spacing:.3px}.metric-alert.warning{background-color:#ffc10726;color:#856404;border:1px solid rgba(255,193,7,.3)}.metric-alert.warning .alert-icon{background-color:#ffc107;color:#856404}.metric-alert.danger{background-color:#dc354526;color:#721c24;border:1px solid rgba(220,53,69,.3)}.metric-alert.danger .alert-icon{background-color:#dc3545;color:#fff}.dark-mode .metric-alert.warning{background-color:#ffc10733;color:#ffc107;border-color:#ffc10766}.dark-mode .metric-alert.danger{background-color:#dc354533;color:#f44336;border-color:#dc354566}.metric-alerts{display:inline-flex;gap:6px;flex-wrap:wrap}@media (max-width: 768px){.metric-alert{padding:2px 6px;font-size:10px}.metric-alert .alert-icon{width:12px;height:12px;font-size:9px}.metric-alert .alert-label{display:none}}.health-breakdown{padding:8px 0;font-size:13px}.health-breakdown__header{display:grid;grid-template-columns:140px 60px 100px 1fr;gap:8px;padding:4px 8px;font-weight:600;color:#666;border-bottom:1px solid #eee;margin-bottom:4px}.health-breakdown__row{display:grid;grid-template-columns:140px 60px 100px 1fr;gap:8px;padding:6px 8px;align-items:center;border-radius:4px;transition:background-color .15s ease}.health-breakdown__row:hover{background-color:#00000008}.health-breakdown__row--low{background-color:#dc35450d}.health-breakdown__row--low:hover{background-color:#dc35451a}.health-breakdown__name{font-weight:500}.health-breakdown__weight{color:#888;text-align:center}.health-breakdown__value{font-family:monospace;font-size:12px}.health-breakdown__score-cell{display:flex;align-items:center;gap:8px}.health-breakdown__bar-bg{flex:1;height:8px;background-color:#e9ecef;border-radius:4px;overflow:hidden}.health-breakdown__bar{height:100%;border-radius:4px;transition:width .4s ease-out}.health-breakdown__bar--healthy{background-color:#28a745}.health-breakdown__bar--warning{background-color:#ffc107}.health-breakdown__bar--critical{background-color:#dc3545}.health-breakdown__score-value{min-width:28px;text-align:right;font-weight:600;font-family:monospace}.dark-mode .health-breakdown__header{color:#aaa;border-bottom-color:#444}.dark-mode .health-breakdown__row:hover{background-color:#ffffff0d}.dark-mode .health-breakdown__row--low{background-color:#f443361a}.dark-mode .health-breakdown__row--low:hover{background-color:#f4433626}.dark-mode .health-breakdown__weight{color:#999}.dark-mode .health-breakdown__bar-bg{background-color:#333}.dark-mode .health-breakdown__bar--healthy{background-color:#4caf50}.dark-mode .health-breakdown__bar--warning{background-color:#ffca28}.dark-mode .health-breakdown__bar--critical{background-color:#f44336}@media (max-width: 600px){.health-breakdown__header,.health-breakdown__row{grid-template-columns:100px 50px 80px 1fr;gap:4px;font-size:12px}}@keyframes healthBreakdownSlideIn{0%{opacity:0;max-height:0}to{opacity:1;max-height:300px}}.health-breakdown{animation:healthBreakdownSlideIn .3s ease-out;overflow:hidden}.table-view-container{margin-top:20px}.projects-table{width:100%;border-collapse:collapse;box-shadow:0 2px 4px var(--shadow-color);border-radius:8px;overflow:hidden}.projects-table thead{background-color:var(--primary-color);color:#fff}.projects-table th,.projects-table td{padding:12px 15px;text-align:left}.projects-table tbody tr{background-color:var(--card-bg-color);border-bottom:1px solid var(--border-color);transition:background-color .2s}.projects-table tbody tr:last-child{border-bottom:none}.projects-table tbody tr:hover{background-color:var(--background-color)}.project-row{cursor:pointer;transition:background-color .2s,outline .2s}.project-row.keyboard-selected{background-color:#6e49cb14;outline:2px solid var(--primary-color);outline-offset:-2px}.dark-mode .project-row.keyboard-selected{background-color:#9d7fe81f}.project-row.keyboard-selected td:first-child{position:relative}.project-row.success .status-indicator{background-color:var(--success-color)}.project-row.warning .status-indicator{background-color:var(--warning-color)}.project-row.failed .status-indicator{background-color:var(--danger-color)}.project-row.no-pipeline .status-indicator,.project-row.inactive .status-indicator{background-color:var(--inactive-color)}.status-indicator{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.project-name-link{color:var(--text-color);text-decoration:none;position:relative}.project-name-link:hover{color:var(--primary-color);text-decoration:underline}.table-alerts{margin-left:10px;vertical-align:middle}.table-alerts .metric-alert{margin-right:4px}.expand-btn{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:16px;padding:4px 8px;transition:transform .2s}.expand-btn:hover{background-color:#6e49cb1a}.project-row.expanded .expand-btn{transform:rotate(180deg)}.project-details{background-color:#f8f9fa}.project-details td{padding:0}.details-content{padding:15px}.metrics-bar{display:flex;justify-content:space-around;margin-bottom:15px;padding:10px;background-color:var(--card-bg-color);border-radius:6px;box-shadow:0 1px 3px var(--shadow-color)}.metric{text-align:center}.metric-label{font-size:14px;color:var(--text-muted);margin-bottom:5px}.metric-value{font-size:18px;font-weight:500;color:var(--primary-color)}.mr-section,.failed-jobs-section,.commits-section{margin-top:15px}.mr-section h3,.failed-jobs-section h3,.commits-section h3{font-size:16px;margin-bottom:10px;color:var(--primary-color);padding-bottom:5px;border-bottom:1px solid var(--border-color)}.mr-table{width:100%;border-collapse:collapse;margin-top:10px}.mr-table th,.mr-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-color)}.mr-table th{font-weight:500;color:var(--text-color);background-color:var(--background-color)}.failed-jobs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:10px}.job-item{padding:10px;border-radius:4px;background-color:var(--background-color)}.job-item.failed{background-color:#dc35451a}.job-header{display:flex;justify-content:space-between;margin-bottom:8px}.job-name{font-weight:500}.job-stage{font-size:12px;padding:2px 6px;background-color:var(--border-color);border-radius:3px}.job-details{display:flex;justify-content:space-between;align-items:center}.job-reason{color:var(--danger-color);font-size:13px}.job-link{display:inline-block;padding:4px 8px;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:3px;font-size:12px}.commits-list{margin-top:10px}.commit-item{padding:10px;margin-bottom:8px;border-left:3px solid var(--secondary-color);background-color:var(--card-bg-color)}.commit-header{display:flex;justify-content:space-between;margin-bottom:5px}.commit-id{font-family:monospace;font-weight:500;color:var(--primary-color)}.commit-date{font-size:12px;color:var(--text-muted)}.commit-message{font-size:14px}.no-data,.loading-indicator{padding:15px;text-align:center;color:var(--text-muted);font-style:italic}@media (max-width: 768px){.failed-jobs-list{grid-template-columns:1fr}.projects-table{font-size:14px}.projects-table th,.projects-table td{padding:8px}}.project-group{margin-bottom:30px}.group-header{padding:10px 15px;margin-bottom:15px;border-radius:6px;font-size:18px}.failed-group .group-header{background-color:#dc35451a;color:var(--danger-color);border-left:4px solid var(--danger-color)}.warning-group .group-header{background-color:#ffc1071a;color:var(--warning-color);border-left:4px solid var(--warning-color)}.no-pipeline-group .group-header,.inactive-group .group-header{background-color:#6c757d1a;color:var(--inactive-color);border-left:4px solid var(--inactive-color)}.success-group .group-header{background-color:#28a7451a;color:var(--success-color);border-left:4px solid var(--success-color)}.project-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.project-card{background-color:var(--card-bg-color);border-radius:8px;padding:15px;border-left:4px solid var(--secondary-color);box-shadow:0 2px 4px var(--shadow-color);transition:transform .2s,box-shadow .2s,border-color .2s,outline .2s}.project-card:hover{transform:translateY(-3px);box-shadow:0 4px 8px var(--shadow-color)}.project-card.keyboard-selected{outline:2px solid var(--primary-color);outline-offset:2px;box-shadow:0 0 0 4px #6e49cb26,0 4px 8px var(--shadow-color)}.dark-mode .project-card.keyboard-selected{box-shadow:0 0 0 4px #9d7fe833,0 4px 8px var(--shadow-color)}.project-card.failed{border-left-color:var(--danger-color)}.project-card.warning{border-left-color:var(--warning-color)}.project-card.no-pipeline,.project-card.inactive{border-left-color:var(--inactive-color)}.project-card.success{border-left-color:var(--success-color)}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.project-header-actions{display:flex;align-items:center;gap:8px}.project-card .metric-alerts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.project-header h3{margin:0;font-size:18px}.project-name-link{color:var(--text-color);text-decoration:none;position:relative;display:inline-block}.project-name-link:hover{color:var(--primary-color)}.project-name-link:hover:after{content:"→";position:absolute;margin-left:5px;font-size:90%}.gitlab-link{color:var(--primary-color);text-decoration:none;font-size:14px;display:flex;align-items:center;justify-content:center;background-color:#6e49cb1a;width:32px;height:32px;border-radius:50%;transition:background-color .2s}.gitlab-link:hover{background-color:#6e49cb33}.gitlab-icon{font-size:16px}.project-metrics{display:grid;gap:15px}.metric-section{background:var(--background-color);border-radius:6px;padding:10px 15px;margin-bottom:5px}.metric-section h4{margin-top:0;margin-bottom:10px;color:var(--primary-color);font-size:14px;border-bottom:1px solid var(--border-color);padding-bottom:5px}.metric-item{display:flex;align-items:center;margin-bottom:6px}.metric-label{font-weight:500;width:120px}.metric-value{font-weight:500}.metric-value.success{color:var(--success-color)}.metric-value.warning{color:var(--warning-color)}.metric-value.danger{color:var(--danger-color)}.metric-value a{text-decoration:none;margin-left:5px}.recent-commits{font-size:13px}.commit-item{border-left:3px solid var(--secondary-color);padding-left:8px;margin-bottom:8px}.commit-header{display:flex;justify-content:space-between;margin-bottom:3px}.commit-id{font-family:monospace;font-weight:700;color:var(--primary-color)}.commit-date{color:var(--text-muted);font-size:12px}.commit-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-data{color:var(--text-muted);font-style:italic}.failed-jobs{margin-top:8px;margin-bottom:15px}.failed-jobs-summary{cursor:pointer;font-weight:500;color:var(--danger-color);margin-left:120px;padding:3px 8px;border-radius:4px;background-color:#dc35451a;display:inline-block}.failed-jobs-list{margin-top:8px;margin-left:120px;border-left:2px solid var(--danger-color);padding-left:10px}.job-item{margin-bottom:8px;padding:8px;border-radius:4px;background-color:#dc35450d}.job-header{display:flex;justify-content:space-between;margin-bottom:5px}.job-name{font-weight:600}.job-stage{color:var(--text-muted);font-size:12px;padding:2px 6px;border-radius:3px;background-color:var(--border-color)}.job-details{display:flex;justify-content:space-between;align-items:center;font-size:13px}.job-reason{color:var(--danger-color)}.job-link{display:inline-block;padding:2px 6px;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:3px;font-size:12px}.job-link:hover{background-color:#5a3da8}.test-details,.mr-details{font-size:14px;color:var(--text-muted);margin-left:5px}.project-card.compact{padding:10px 12px}.project-card.compact .project-header h3{font-size:16px}.project-card.compact .metric-section{padding:6px 10px;margin-bottom:3px}.project-card.compact .metric-section h4{font-size:12px;margin-bottom:6px}.project-card.compact .metric-item{margin-bottom:4px;font-size:13px}.project-card.compact .metric-label{width:100px;font-size:12px}.project-card.compact .metric-value{font-size:13px}.project-card.compact .test-details,.project-card.compact .mr-details{font-size:12px}@media (max-width: 768px){.project-cards{grid-template-columns:1fr}}.comparison-view{padding:0 0 40px}.comparison-header{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 0;margin-bottom:24px;border-bottom:1px solid var(--border-color, #e0e0e0)}.comparison-header__back{background:none;border:1px solid var(--border-color, #ccc);border-radius:6px;padding:6px 14px;cursor:pointer;font-size:14px;color:var(--text-color, #333);transition:background-color .2s}.comparison-header__back:hover{background-color:var(--hover-bg, rgba(0, 0, 0, .05))}.comparison-header__title{margin:0;font-size:20px;flex:1}.comparison-header__projects{display:flex;flex-wrap:wrap;gap:8px}.comparison-header__project-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:16px;background:var(--card-bg-color, #f5f5f5);border:1px solid var(--border-color, #ddd);font-size:13px}.comparison-header__swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.comparison-header__remove{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:0 2px;color:var(--text-secondary, #888);border-radius:50%;transition:color .2s}.comparison-header__remove:hover{color:var(--danger-color, #dc3545)}.comparison-view__warnings{margin-bottom:16px}.comparison-view__warning{padding:8px 12px;margin-bottom:6px;border-radius:6px;background:#ffc1071f;border-left:3px solid #ffc107;font-size:13px;color:var(--text-color, #333)}.comparison-view__error{text-align:center;padding:40px;color:var(--text-secondary, #666)}.comparison-view__error button{margin-top:12px;padding:8px 20px;border-radius:6px;border:1px solid var(--border-color, #ccc);background:var(--card-bg-color, #fff);cursor:pointer}.comparison-charts{margin-bottom:32px}.comparison-charts__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;color:var(--text-secondary, #666)}.comparison-charts__spinner{width:32px;height:32px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--primary-color, #6e49cb);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.comparison-charts__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.comparison-charts__panel{background:var(--card-bg-color, #fff);border-radius:8px;padding:16px;box-shadow:0 1px 3px var(--shadow-color, rgba(0, 0, 0, .1))}.comparison-charts__title{margin:0 0 8px;font-size:14px;font-weight:700;color:var(--text-color, #333)}.comparison-table{margin-bottom:32px}.comparison-table__title{margin:0 0 12px;font-size:18px}.comparison-table__wrapper{overflow-x:auto}.comparison-table__table{width:100%;border-collapse:collapse;font-size:14px}.comparison-table__table th,.comparison-table__table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-color, #e0e0e0)}.comparison-table__table th{font-weight:600;background:var(--card-bg-color, #f8f8f8);white-space:nowrap}.comparison-table__swatch,.comparison-deployments__swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.comparison-table__label{font-weight:500;color:var(--text-secondary, #555)}.comparison-table__cell--best{background-color:#28a7451a;font-weight:600;color:var(--success-color, #28a745)}.comparison-table__cell--worst{background-color:#dc354514;color:var(--danger-color, #dc3545)}.comparison-deployments{margin-bottom:32px}.comparison-deployments__title{margin:0 0 12px;font-size:18px}.comparison-deployments__empty{color:var(--text-secondary, #666);font-style:italic}.comparison-deployments__wrapper{overflow-x:auto}.comparison-deployments__table{width:100%;border-collapse:collapse;font-size:14px}.comparison-deployments__table th,.comparison-deployments__table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-color, #e0e0e0)}.comparison-deployments__table th{font-weight:600;background:var(--card-bg-color, #f8f8f8);white-space:nowrap}.comparison-deployments__env{font-weight:600;letter-spacing:.5px}.comparison-deployments__cell--loading{text-align:center}.comparison-deployments__cell--empty{color:var(--text-secondary, #999);text-align:center}.comparison-deployments__version{font-weight:500;font-family:monospace}.comparison-deployments__timestamp{font-size:11px;color:var(--text-secondary, #888);margin-top:2px}.comparison-deployments__status--success .comparison-deployments__version{color:var(--success-color, #28a745)}.comparison-deployments__status--failed .comparison-deployments__version{color:var(--danger-color, #dc3545)}.comparison-deployments__status--running .comparison-deployments__version{color:var(--warning-color, #ffc107)}.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.1);border-top-color:var(--primary-color, #6e49cb);border-radius:50%;animation:spin .8s linear infinite}.comparison-action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 24px;background:var(--card-bg-color, #fff);border-top:1px solid var(--border-color, #ddd);box-shadow:0 -2px 8px #0000001a;z-index:100;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.comparison-action-bar__count{font-size:14px;font-weight:500;color:var(--text-color, #333)}.comparison-action-bar__compare-btn{padding:8px 20px;border:none;border-radius:6px;background:var(--primary-color, #6e49cb);color:#fff;font-weight:600;cursor:pointer;transition:opacity .2s}.comparison-action-bar__compare-btn:disabled{opacity:.5;cursor:not-allowed}.comparison-action-bar__compare-btn:hover:not(:disabled){opacity:.9}.comparison-action-bar__clear-btn{padding:8px 16px;border:1px solid var(--border-color, #ccc);border-radius:6px;background:transparent;cursor:pointer;font-size:13px;color:var(--text-color, #333)}.comparison-action-bar__clear-btn:hover{background-color:var(--hover-bg, rgba(0, 0, 0, .05))}.compact-mode-toggle{padding:6px 14px;border:1px solid var(--border-color, #ccc);border-radius:6px;background:transparent;cursor:pointer;font-size:13px;color:var(--text-color, #333);transition:background-color .2s,border-color .2s}.compact-mode-toggle.active{background-color:var(--primary-color, #6e49cb);color:#fff;border-color:var(--primary-color, #6e49cb)}.compact-mode-toggle:hover{border-color:var(--primary-color, #6e49cb)}.comparison-select-toggle{padding:6px 14px;border:1px solid var(--border-color, #ccc);border-radius:6px;background:transparent;cursor:pointer;font-size:13px;color:var(--text-color, #333);transition:background-color .2s,border-color .2s}.comparison-select-toggle.active{background-color:var(--primary-color, #6e49cb);color:#fff;border-color:var(--primary-color, #6e49cb)}.comparison-checkbox{position:absolute;top:8px;left:8px;z-index:2}.comparison-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color, #6e49cb)}.project-card.comparison-selected{box-shadow:0 0 0 2px var(--primary-color, #6e49cb)}.project-row.comparison-selected{background-color:#6e49cb0f}.comparison-max-warning{font-size:12px;color:var(--warning-color, #e67e22);margin-left:8px}@media (max-width: 900px){.comparison-charts__grid{grid-template-columns:1fr}.comparison-header{flex-direction:column;align-items:flex-start}.comparison-action-bar{flex-wrap:wrap;gap:8px}.comparison-table__wrapper,.comparison-deployments__wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.comparison-table__table,.comparison-deployments__table{min-width:500px}}@media (max-width: 480px){.comparison-header__projects{flex-direction:column;gap:4px}.comparison-charts__panel{padding:10px}}.dark-mode .comparison-header__back{color:#e0e0e0;border-color:#555}.dark-mode .comparison-header__back:hover{background-color:#ffffff14}.dark-mode .comparison-header__project-tag{background:#2a2a2a;border-color:#444;color:#e0e0e0}.dark-mode .comparison-header__remove:hover{color:#ff6b6b}.dark-mode .comparison-charts__panel{background:#1e1e1e;box-shadow:0 1px 3px #0000004d}.dark-mode .comparison-charts__title{color:#e0e0e0}.dark-mode .comparison-charts__spinner{border-color:#ffffff1a;border-top-color:#9d7fe8}.dark-mode .comparison-table__table th{background:#252525;color:#e0e0e0;border-bottom-color:#444}.dark-mode .comparison-table__table td{color:#ccc;border-bottom-color:#333}.dark-mode .comparison-table__cell--best{background-color:#2ecc7126;color:#2ecc71}.dark-mode .comparison-table__cell--worst{background-color:#ff6b6b1f;color:#ff6b6b}.dark-mode .comparison-deployments__table th{background:#252525;color:#e0e0e0;border-bottom-color:#444}.dark-mode .comparison-deployments__table td{color:#ccc;border-bottom-color:#333}.dark-mode .comparison-deployments__status--success .comparison-deployments__version{color:#2ecc71}.dark-mode .comparison-deployments__status--failed .comparison-deployments__version{color:#ff6b6b}.dark-mode .comparison-action-bar{background:#1e1e1e;border-top-color:#444;box-shadow:0 -2px 8px #0006}.dark-mode .comparison-action-bar__count{color:#e0e0e0}.dark-mode .comparison-action-bar__compare-btn{background:#9d7fe8}.dark-mode .comparison-action-bar__clear-btn,.dark-mode .compact-mode-toggle{color:#ccc;border-color:#555}.dark-mode .compact-mode-toggle.active{background-color:#9d7fe8;border-color:#9d7fe8;color:#fff}.dark-mode .comparison-select-toggle{color:#ccc;border-color:#555}.dark-mode .comparison-select-toggle.active{background-color:#9d7fe8;border-color:#9d7fe8;color:#fff}.dark-mode .comparison-view__warning{background:#ffc10714;color:#e0e0e0}.dark-mode .project-row.comparison-selected{background-color:#9d7fe81a}.dark-mode .project-card.comparison-selected{box-shadow:0 0 0 2px #9d7fe8}.dark-mode .spinner-sm{border-color:#ffffff1a;border-top-color:#9d7fe8}.dark-mode .comparison-checkbox input[type=checkbox]{accent-color:#9d7fe8}.source-manager{display:flex;flex-direction:column;gap:16px}.source-section{display:flex;flex-direction:column;gap:8px}.source-label{font-weight:500;font-size:14px;color:var(--text-color);margin-bottom:0}.source-input-row{display:flex;gap:8px}.source-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background-color:var(--card-bg-color);color:var(--text-color);min-width:0}.source-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #6e49cb33}.source-input:disabled{opacity:.6;cursor:not-allowed}.source-add-btn{padding:8px 16px;background-color:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s}.source-add-btn:hover:not(:disabled){background-color:#5a3da8}.source-add-btn:disabled{opacity:.6;cursor:not-allowed}.source-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:32px;padding:4px 0}.source-empty{font-size:13px;color:var(--text-muted);font-style:italic;padding:4px 0}.source-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 12px;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:20px;font-size:13px;max-width:280px}.source-chip.group{border-left:3px solid var(--primary-color)}.source-chip.project{border-left:3px solid var(--secondary-color)}.source-chip.error{border-color:var(--danger-color);background-color:#dc35451a}.source-chip.loading{opacity:.7}.chip-content{display:flex;align-items:center;gap:4px;overflow:hidden}.chip-name{font-weight:500;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-id{font-size:11px;color:var(--text-muted);flex-shrink:0}.chip-loading{color:var(--text-muted);font-style:italic}.chip-error{color:var(--danger-color)}.chip-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin:0;background:transparent;border:none;border-radius:50%;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;transition:all .2s;flex-shrink:0}.chip-remove:hover:not(:disabled){background-color:var(--danger-color);color:#fff}.chip-remove:disabled{opacity:.5;cursor:not-allowed}.dark-mode .source-chip{background-color:var(--card-bg-color)}.dark-mode .source-chip.error{background-color:#f4433626}@media (max-width: 480px){.source-input-row{flex-direction:column}.source-add-btn{width:100%}.source-chip{max-width:100%}}.config-selector{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.config-selector-row{display:flex;flex-direction:column;gap:8px}.config-selector-label{font-weight:500;font-size:14px;color:var(--text-color)}.config-selector-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.config-selector-dropdown-wrapper{position:relative;flex:1;min-width:200px}.config-selector-dropdown{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background-color:var(--card-bg-color);color:var(--text-color);cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.config-selector-dropdown:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #6e49cb33}.config-selector-dropdown:disabled{opacity:.6;cursor:not-allowed}.config-unsaved-indicator{position:absolute;right:28px;top:50%;transform:translateY(-50%);color:var(--warning-color);font-size:12px;pointer-events:none}.config-action-btn{padding:8px 14px;border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s,border-color .2s;background-color:var(--card-bg-color);color:var(--text-color)}.config-action-btn:hover:not(:disabled){border-color:var(--primary-color);background-color:var(--background-color)}.config-action-btn:disabled{opacity:.6;cursor:not-allowed}.config-save-btn{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.config-save-btn:hover:not(:disabled){opacity:.9;background-color:var(--primary-color);border-color:var(--primary-color)}.config-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.dark-mode .config-modal-overlay{background-color:#000000b3}.config-modal{background-color:var(--card-bg-color);border-radius:12px;box-shadow:0 8px 32px var(--shadow-color);width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.config-modal-sm{max-width:420px}.config-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.config-modal-header h3{margin:0;font-size:18px;color:var(--text-color)}.config-modal-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1}.config-modal-close:hover{color:var(--text-color)}.config-modal-body{padding:20px;overflow-y:auto;flex:1}.config-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border-color)}.config-form-group{display:flex;flex-direction:column;gap:6px}.config-form-group label{font-size:14px;font-weight:500;color:var(--text-color)}.config-name-input{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background-color:var(--card-bg-color);color:var(--text-color);width:100%;box-sizing:border-box}.config-name-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #6e49cb33}.config-form-error{font-size:12px;color:var(--danger-color)}.config-btn{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .2s}.config-btn:disabled{opacity:.6;cursor:not-allowed}.config-btn-primary{background-color:var(--primary-color);color:#fff}.config-btn-primary:hover:not(:disabled){opacity:.9}.config-btn-secondary{background-color:transparent;color:var(--text-color);border:1px solid var(--border-color)}.config-btn-secondary:hover:not(:disabled){background-color:var(--background-color)}.config-btn-danger{background-color:var(--danger-color);color:#fff}.config-btn-danger:hover:not(:disabled){opacity:.9}.config-btn-sm{padding:4px 10px;font-size:12px}.config-list{list-style:none;margin:0;padding:0}.config-list-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border-color);gap:12px}.config-list-item:last-child{border-bottom:none}.config-list-info{flex:1;min-width:0}.config-list-name{font-weight:500;font-size:14px;color:var(--text-color);display:flex;align-items:center;gap:6px}.config-list-name .config-active-badge{font-size:10px;padding:1px 6px;border-radius:10px;background-color:var(--primary-color);color:#fff;font-weight:600}.config-list-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.config-list-actions{display:flex;gap:6px;flex-shrink:0}.config-rename-input{padding:4px 8px;border:1px solid var(--primary-color);border-radius:4px;font-size:14px;background-color:var(--card-bg-color);color:var(--text-color);width:100%;max-width:200px}.config-rename-input:focus{outline:none;box-shadow:0 0 0 2px #6e49cb4d}.config-import-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.config-import-section h4{margin:0 0 8px;font-size:14px;color:var(--text-color)}.config-import-input{display:none}.config-import-label{display:inline-block;padding:8px 16px;background-color:var(--card-bg-color);border:1px dashed var(--border-color);border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-muted);transition:border-color .2s,color .2s}.config-import-label:hover{border-color:var(--primary-color);color:var(--text-color)}.config-import-error{margin-top:8px;font-size:12px;color:var(--danger-color)}.config-import-success{margin-top:8px;font-size:12px;color:var(--success-color)}.config-export-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);margin-top:4px}.config-export-checkbox input[type=checkbox]{margin:0}.config-export-warning{color:var(--warning-color);font-size:11px;margin-left:4px}.config-list-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:14px}.project-metrics-trends{margin-top:24px}.project-metrics-trends h3{margin:0 0 16px;font-size:18px;font-weight:600;color:var(--text-color)}.trends-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.trends-loading,.trends-empty,.trends-error{display:flex;align-items:center;justify-content:center;padding:60px 20px;background-color:var(--card-bg-color);border-radius:8px;color:var(--text-muted);font-size:14px}.trends-loading{font-style:italic}.trends-error{color:var(--danger-color)}.trends-grid>.trend-chart:last-child:nth-child(3),.trends-grid>.trend-chart:only-child{grid-column:span 2}@media (max-width: 768px){.trends-grid{grid-template-columns:1fr}.trends-grid>.trend-chart:last-child:nth-child(3),.trends-grid>.trend-chart:only-child{grid-column:span 1}}.job-log-viewer{margin-top:8px;border-radius:6px;overflow:hidden;background:#1e1e1e;color:#d4d4d4;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.5}.job-log-viewer.dark{background:#0d1117;color:#c9d1d9}.log-toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#2d2d2d;border-bottom:1px solid #444}.job-log-viewer.dark .log-toolbar{background:#161b22;border-bottom-color:#30363d}.log-search{flex:1;padding:4px 8px;border:1px solid #555;border-radius:4px;background:#1e1e1e;color:#d4d4d4;font-size:12px;font-family:inherit;min-width:0}.job-log-viewer.dark .log-search{background:#0d1117;border-color:#30363d;color:#c9d1d9}.log-search::placeholder{color:#888}.log-copy-btn,.log-show-more-btn,.log-retry-btn{padding:4px 10px;border:1px solid #555;border-radius:4px;background:#333;color:#d4d4d4;cursor:pointer;font-size:11px;white-space:nowrap}.log-copy-btn:hover,.log-show-more-btn:hover,.log-retry-btn:hover{background:#444}.job-log-viewer.dark .log-copy-btn,.job-log-viewer.dark .log-show-more-btn,.job-log-viewer.dark .log-retry-btn{background:#21262d;border-color:#30363d;color:#c9d1d9}.job-log-viewer.dark .log-copy-btn:hover,.job-log-viewer.dark .log-show-more-btn:hover,.job-log-viewer.dark .log-retry-btn:hover{background:#30363d}.log-container{max-height:300px;overflow-y:auto;padding:4px 0}.log-line{display:flex;padding:0 10px;min-height:20px}.log-line:hover{background:#ffffff0d}.log-line-number{min-width:48px;text-align:right;padding-right:12px;color:#666;-webkit-user-select:none;user-select:none;flex-shrink:0}.job-log-viewer.dark .log-line-number{color:#484f58}.log-line-text{white-space:pre-wrap;word-break:break-all;flex:1}.log-level-error{background:#dc354526;color:#f48771}.log-level-error .log-line-text{color:#f48771}.job-log-viewer.dark .log-level-error{background:#f8514926}.job-log-viewer.dark .log-level-error .log-line-text{color:#ff7b72}.log-level-warning{background:#ffc1071a}.log-level-warning .log-line-text{color:#cca700}.job-log-viewer.dark .log-level-warning{background:#d299221a}.job-log-viewer.dark .log-level-warning .log-line-text{color:#e3b341}.log-level-info .log-line-text{color:#4fc1ff}.job-log-viewer.dark .log-level-info .log-line-text{color:#58a6ff}.log-loading{display:flex;align-items:center;gap:8px;padding:16px;color:#888}.log-spinner{display:inline-block;width:14px;height:14px;border:2px solid #555;border-top-color:#aaa;border-radius:50%;animation:log-spin .6s linear infinite}@keyframes log-spin{to{transform:rotate(360deg)}}.log-error{display:flex;align-items:center;gap:8px;padding:12px 16px;color:#f48771}.log-footer{padding:6px 10px;border-top:1px solid #444;background:#2d2d2d}.job-log-viewer.dark .log-footer{border-top-color:#30363d;background:#161b22}.log-gitlab-link{color:#58a6ff;text-decoration:none;font-size:11px}.log-gitlab-link:hover{text-decoration:underline}.job-log-toggle{background:none;border:1px solid #666;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:11px;color:#333;margin-right:6px;transition:background .15s}.job-log-toggle:hover{background:#0000000d}.dark .job-log-toggle{color:#c9d1d9;border-color:#484f58}.dark .job-log-toggle:hover{background:#ffffff0d}.log-container::-webkit-scrollbar{width:8px}.log-container::-webkit-scrollbar-track{background:transparent}.log-container::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.log-container::-webkit-scrollbar-thumb:hover{background:#777}.job-log-viewer.dark .log-container::-webkit-scrollbar-thumb{background:#30363d}.job-log-viewer.dark .log-container::-webkit-scrollbar-thumb:hover{background:#484f58}.environment-matrix{width:100%;overflow-x:auto}.environment-matrix__drift-summary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:.9rem;font-weight:500}.dark-mode .environment-matrix__drift-summary{background:#ffc10726;border-color:#ffc10766;color:#ffc107}.environment-matrix__drift-icon{font-size:1.2rem;font-weight:600}.environment-matrix__drift-text{flex:1}.environment-matrix--empty{text-align:center;padding:2rem;color:#666}.dark-mode .environment-matrix--empty{color:#aaa}.environment-matrix__table{width:100%;border-collapse:collapse;font-size:.9rem}.environment-matrix__header{padding:.75rem 1rem;text-align:center;font-weight:600;background:#f8f9fa;border-bottom:2px solid #dee2e6;white-space:nowrap}.environment-matrix__header--project{text-align:left;min-width:200px}.dark-mode .environment-matrix__header{background:#2d2d2d;border-color:#444;color:#e0e0e0}.environment-matrix__row{border-bottom:1px solid #dee2e6}.environment-matrix__row:hover{background:#f8f9fa}.environment-matrix__row--drift{background:#ffc1070d;border-left:3px solid #ffc107}.environment-matrix__row--drift:hover{background:#ffc1071a}.dark-mode .environment-matrix__row{border-color:#444}.dark-mode .environment-matrix__row:hover{background:#2a2a2a}.dark-mode .environment-matrix__row--drift{background:#ffc10714;border-left-color:#ffc10799}.dark-mode .environment-matrix__row--drift:hover{background:#ffc1071f}.environment-matrix__cell{padding:.75rem 1rem;vertical-align:middle}.environment-matrix__cell--project{display:flex;align-items:center;gap:.5rem}.environment-matrix__project-link{color:#6e49cb;text-decoration:none;font-weight:500}.environment-matrix__project-link:hover{text-decoration:underline}.dark-mode .environment-matrix__project-link{color:#9d7fe8}.environment-matrix__error-indicator{color:#dc3545;cursor:help}.environment-matrix__drift-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .4rem;background:#ffc107;color:#333;border-radius:4px;font-size:1rem;font-weight:600;cursor:help;transition:background-color .15s ease}.environment-matrix__drift-badge:hover{background:#ffcd39}.dark-mode .environment-matrix__drift-badge{background:#ffc107e6;color:#1a1a1a}.dark-mode .environment-matrix__drift-badge:hover{background:#ffc107}.deployment-cell{padding:.5rem;text-align:center;cursor:pointer;transition:background-color .15s ease;vertical-align:middle}.deployment-cell:hover{background:#6e49cb1a}.deployment-cell--expanded{background:#6e49cb26}.dark-mode .deployment-cell:hover{background:#9d7fe826}.dark-mode .deployment-cell--expanded{background:#9d7fe833}.deployment-cell__content{display:flex;align-items:center;justify-content:center;gap:.5rem}.deployment-cell__indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.deployment-cell__indicator--success{background:#28a745}.deployment-cell__indicator--failed{background:#dc3545}.deployment-cell__indicator--running{background:#007bff;animation:pulse 1.5s ease-in-out infinite}.deployment-cell__indicator--pending{background:#6c757d}.deployment-cell__indicator--canceled{background:#fd7e14}.deployment-cell__indicator--unknown{background:#6c757d}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.deployment-cell__version{font-family:Monaco,Menlo,monospace;font-size:.85rem;color:#333}.dark-mode .deployment-cell__version{color:#e0e0e0}.deployment-cell--empty{color:#aaa}.deployment-cell__placeholder{color:#ccc}.dark-mode .deployment-cell__placeholder{color:#555}.deployment-cell--loading{pointer-events:none}.deployment-cell__spinner{display:flex;justify-content:center;align-items:center}.spinner{width:16px;height:16px;border:2px solid #ddd;border-top-color:#6e49cb;border-radius:50%;animation:spin .8s linear infinite}.dark-mode .spinner{border-color:#444;border-top-color:#9d7fe8}@keyframes spin{to{transform:rotate(360deg)}}.environment-matrix__details-row{background:#f8f9fa}.dark-mode .environment-matrix__details-row{background:#2a2a2a}.deployment-details{padding:1rem 1.5rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.deployment-details__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #dee2e6}.dark-mode .deployment-details__header{border-color:#444}.deployment-details__title{margin:0;font-size:1rem;font-weight:600;color:#333}.dark-mode .deployment-details__title{color:#e0e0e0}.deployment-details__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;line-height:1}.deployment-details__close:hover{color:#333}.dark-mode .deployment-details__close{color:#aaa}.dark-mode .deployment-details__close:hover{color:#fff}.deployment-details__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 2rem}.deployment-details__row{display:flex;gap:.5rem}.deployment-details__label{color:#666;font-size:.85rem;min-width:70px}.dark-mode .deployment-details__label{color:#999}.deployment-details__version{font-family:Monaco,Menlo,monospace;font-weight:600;font-size:1rem;color:#333}.dark-mode .deployment-details__version{color:#e0e0e0}.deployment-details__status{font-weight:500;padding:.15rem .5rem;border-radius:4px;font-size:.85rem}.deployment-details__status--success{color:#28a745;background:#28a7451a}.deployment-details__status--failed{color:#dc3545;background:#dc35451a}.deployment-details__status--running{color:#007bff;background:#007bff1a}.deployment-details__status--pending{color:#6c757d;background:#6c757d1a}.deployment-details__status--canceled{color:#fd7e14;background:#fd7e141a}.deployment-details__timestamp-relative{color:#999;font-size:.8rem}.deployment-details__branch{font-family:Monaco,Menlo,monospace;font-size:.85rem;color:#555}.dark-mode .deployment-details__branch{color:#bbb}.deployment-details__links{margin-top:1rem;display:flex;gap:.75rem}.deployment-details__link{color:#6e49cb;text-decoration:none}.deployment-details__link:hover{text-decoration:underline}.dark-mode .deployment-details__link{color:#9d7fe8}.deployment-details__link--button{padding:.4rem .8rem;background:#6e49cb;color:#fff;border-radius:4px;font-size:.85rem}.deployment-details__link--button:hover{background:#5a3aa8;text-decoration:none}.dark-mode .deployment-details__link--button{background:#7c5cc9}.dark-mode .deployment-details__link--button:hover{background:#9d7fe8}.deployment-details__jira-key{font-family:Monaco,Menlo,monospace;font-size:.9rem}.timeline-entry{display:flex;gap:1rem;padding:.75rem 1rem;border-left:3px solid transparent;border-radius:6px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative;margin-bottom:2px}.timeline-entry:hover{background:#6e49cb0f}.timeline-entry--expanded{background:#6e49cb14;border-left-color:#6e49cb}.timeline-entry--rollback{border-left-color:#fd7e14;background:#fd7e140d}.timeline-entry--rollback:hover{background:#fd7e141a}.dark-mode .timeline-entry:hover{background:#9d7fe81a}.dark-mode .timeline-entry--expanded{background:#9d7fe826;border-left-color:#9d7fe8}.dark-mode .timeline-entry--rollback{border-left-color:#ff9800;background:#ff980014}.dark-mode .timeline-entry--rollback:hover{background:#ff98001f}.timeline-entry:focus-visible{outline:2px solid #6e49cb;outline-offset:2px}.dark-mode .timeline-entry:focus-visible{outline-color:#9d7fe8}.timeline-entry__time{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:50px;flex-shrink:0}.timeline-entry__clock{font-size:.8rem;color:#666;font-family:Monaco,Menlo,monospace}.dark-mode .timeline-entry__clock{color:#999}.timeline-entry__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.timeline-entry__dot--success{background:#28a745}.timeline-entry__dot--failed{background:#dc3545}.timeline-entry__dot--rollback{background:#fd7e14}.timeline-entry__dot--other{background:#6c757d}.dark-mode .timeline-entry__dot--success{background:#4caf50}.dark-mode .timeline-entry__dot--failed{background:#f44336}.dark-mode .timeline-entry__dot--rollback{background:#ff9800}.timeline-entry__content{flex:1;min-width:0}.timeline-entry__main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.timeline-entry__project{font-weight:600;color:#333;font-size:.9rem}.dark-mode .timeline-entry__project{color:#e0e0e0}.timeline-entry__version{font-family:Monaco,Menlo,monospace;font-size:.85rem;color:#555;display:flex;align-items:center;gap:.25rem}.dark-mode .timeline-entry__version{color:#bbb}.timeline-entry__rollback-icon{font-size:.9rem}.timeline-entry__env-badge{padding:.1rem .5rem;border-radius:10px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.timeline-entry__env-badge--dev{background:#28a74526;color:#28a745}.timeline-entry__env-badge--sit{background:#007bff26;color:#007bff}.timeline-entry__env-badge--uat{background:#ffc10733;color:#e6a800}.timeline-entry__env-badge--prod{background:#dc354526;color:#dc3545}.dark-mode .timeline-entry__env-badge--dev{background:#4caf5033;color:#4caf50}.dark-mode .timeline-entry__env-badge--sit{background:#2196f333;color:#42a5f5}.dark-mode .timeline-entry__env-badge--uat{background:#ffca2833;color:#ffca28}.dark-mode .timeline-entry__env-badge--prod{background:#f4433633;color:#f44336}.timeline-entry__branch{font-family:Monaco,Menlo,monospace;font-size:.8rem;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.dark-mode .timeline-entry__branch{color:#777}.timeline-entry__rollback-note{font-size:.8rem;color:#e67e00;margin-top:.25rem;font-style:italic}.dark-mode .timeline-entry__rollback-note{color:#ff9800}.timeline-entry__meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.timeline-entry__jira{font-family:Monaco,Menlo,monospace;font-size:.8rem;color:#6e49cb;text-decoration:none}.timeline-entry__jira:hover{text-decoration:underline}.dark-mode .timeline-entry__jira{color:#9d7fe8}.timeline-entry__status{font-size:.75rem;font-weight:500;padding:.1rem .4rem;border-radius:4px}.timeline-entry__status--success{color:#28a745;background:#28a7451a}.timeline-entry__status--failed{color:#dc3545;background:#dc35451a}.timeline-entry__status--rollback{color:#fd7e14;background:#fd7e141a}.timeline-entry__status--other{color:#6c757d;background:#6c757d1a}.timeline-entry__details{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee;animation:timelineSlideDown .25s ease-out;overflow:hidden}.dark-mode .timeline-entry__details{border-top-color:#444}@keyframes timelineSlideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.timeline-entry__detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem 1.5rem}.timeline-entry__detail-row{display:flex;gap:.5rem}.timeline-entry__detail-label{font-size:.8rem;color:#888;min-width:60px}.dark-mode .timeline-entry__detail-label{color:#777}.timeline-entry__detail-value{font-size:.85rem;color:#333}.dark-mode .timeline-entry__detail-value{color:#ddd}.timeline-entry__detail-mono{font-family:Monaco,Menlo,monospace;font-size:.8rem}.timeline-entry__relative-time{color:#999;font-size:.8rem}.timeline-entry__detail-links{display:flex;gap:.75rem;margin-top:.75rem}.timeline-entry__detail-link{font-size:.85rem;color:#6e49cb;text-decoration:none}.timeline-entry__detail-link:hover{text-decoration:underline}.dark-mode .timeline-entry__detail-link{color:#9d7fe8}.timeline-day{margin-bottom:1.5rem}.timeline-day__header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;padding:0 .5rem}.timeline-day__line{flex:1;height:1px;background:#dee2e6}.dark-mode .timeline-day__line{background:#444}.timeline-day__label{font-size:.85rem;font-weight:600;color:#555;white-space:nowrap}.dark-mode .timeline-day__label{color:#aaa}.timeline-day__entries{position:relative;padding-left:.5rem}.timeline-day__entries:before{content:"";position:absolute;left:calc(1rem + 54px);top:0;bottom:0;width:2px;background:#e0e0e0}.dark-mode .timeline-day__entries:before{background:#444}.timeline-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1rem}.dark-mode .timeline-filters{background:#2d2d2d}.timeline-filters__group{display:flex;align-items:center;gap:.35rem}.timeline-filters__label{font-size:.8rem;font-weight:600;color:#555}.dark-mode .timeline-filters__label{color:#aaa}.timeline-filters__select{font-size:.85rem;padding:.3rem .5rem;border:1px solid #ccc;border-radius:4px;background:#fff;color:#333;min-width:100px}.dark-mode .timeline-filters__select{background:#1e1e1e;border-color:#555;color:#e0e0e0}.timeline-filters__date-input{font-size:.85rem;padding:.3rem .5rem;border:1px solid #ccc;border-radius:4px;background:#fff;color:#333}.dark-mode .timeline-filters__date-input{background:#1e1e1e;border-color:#555;color:#e0e0e0;color-scheme:dark}.timeline-filters__checkbox-group{display:flex;gap:.5rem;align-items:center}.timeline-filters__checkbox-label{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:#555;cursor:pointer}.dark-mode .timeline-filters__checkbox-label{color:#bbb}.timeline-filters__count{font-size:.8rem;color:#888;margin-left:auto}.timeline-filters__clear{font-size:.8rem;padding:.25rem .5rem;border:1px solid #ccc;border-radius:4px;background:#fff;color:#666;cursor:pointer;transition:background-color .15s}.timeline-filters__clear:hover{background:#eee}.dark-mode .timeline-filters__clear{background:#333;border-color:#555;color:#ccc}.dark-mode .timeline-filters__clear:hover{background:#444}.deployment-timeline{max-height:70vh;overflow-y:auto;padding:.5rem}.deployment-timeline__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 .5rem}.deployment-timeline__title{font-size:1.1rem;font-weight:600;color:#333;margin:0}.dark-mode .deployment-timeline__title{color:#e0e0e0}.deployment-timeline__count{font-size:.85rem;color:#888}.deployment-timeline__loading{display:flex;justify-content:center;align-items:center;padding:3rem 1rem;color:#666;font-size:.9rem}.dark-mode .deployment-timeline__loading{color:#aaa}.deployment-timeline__empty{text-align:center;padding:3rem 1rem;color:#888}.dark-mode .deployment-timeline__empty{color:#777}.deployment-timeline__empty-icon{font-size:2rem;margin-bottom:.5rem}.deployment-timeline__empty-text{font-size:.9rem;margin:.25rem 0}.deployment-timeline__error{text-align:center;padding:2rem 1rem;color:#dc3545}.deployment-timeline__load-more{display:block;margin:1rem auto;padding:.5rem 1.5rem;border:1px solid #ccc;border-radius:6px;background:#fff;color:#555;cursor:pointer;font-size:.85rem;transition:background-color .15s}.deployment-timeline__load-more:hover{background:#eee}.dark-mode .deployment-timeline__load-more{background:#2d2d2d;border-color:#555;color:#ccc}.dark-mode .deployment-timeline__load-more:hover{background:#3d3d3d}.environment-view__tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:2px solid #dee2e6}.dark-mode .environment-view__tabs{border-bottom-color:#444}.environment-view__tab{padding:.5rem 1.25rem;border:none;background:none;font-size:.9rem;font-weight:500;color:#666;cursor:pointer;position:relative;transition:color .15s}.environment-view__tab:hover{color:#333}.environment-view__tab--active{color:#6e49cb}.environment-view__tab--active:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:#6e49cb}.dark-mode .environment-view__tab{color:#888}.dark-mode .environment-view__tab:hover{color:#ccc}.dark-mode .environment-view__tab--active{color:#9d7fe8}.dark-mode .environment-view__tab--active:after{background:#9d7fe8}.environment-view__export-btn{margin-left:auto;padding:4px 12px;font-size:.8rem;font-weight:500;background:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:background .15s;white-space:nowrap;align-self:center}.environment-view__export-btn:hover:not(:disabled){background:#e0e0e0}.environment-view__export-btn:disabled{opacity:.5;cursor:not-allowed}.dark-mode .environment-view__export-btn{background:#2d2d2d;border-color:#555;color:#e0e0e0}.dark-mode .environment-view__export-btn:hover:not(:disabled){background:#3a3a3a}.refresh-status-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;font-size:13px;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg-color);gap:12px;flex-wrap:wrap}.refresh-status-left{display:flex;align-items:center;gap:6px}.manual-refresh-btn{font-size:14px;padding:3px 6px}.data-age-text{white-space:nowrap}.data-age-none{color:var(--text-muted)}.data-age-fresh{color:var(--success-color)}.data-age-aging{color:var(--warning-color)}.data-age-stale{color:var(--danger-color);font-weight:600}.refresh-status-center{display:flex;align-items:center;gap:6px}.refresh-loading-indicator{display:flex;align-items:center;gap:6px;color:var(--primary-color);font-weight:500}.refresh-pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary-color);animation:pulse-dot 1.2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.refresh-offline-indicator{color:var(--danger-color);font-weight:600}.refresh-rate-limited-indicator{color:var(--warning-color);font-weight:600}.refresh-status-right{display:flex;align-items:center;gap:8px}.refresh-countdown{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.refresh-interval-select{padding:3px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--card-bg-color);color:var(--text-color);font-size:12px;cursor:pointer}.refresh-interval-select:focus{outline:2px solid var(--primary-color);outline-offset:1px}.dark-mode .refresh-status-bar{background:var(--card-bg-color);border-color:var(--border-color)}.dark-mode .refresh-interval-select{background:var(--card-bg-color);color:var(--text-color);border-color:var(--border-color)}.dark-mode .refresh-interval-select option{background:var(--card-bg-color);color:var(--text-color)}.dark-mode .refresh-pulse-dot{background:var(--primary-color)}.dark-mode .data-age-fresh{color:var(--success-color)}.dark-mode .data-age-aging{color:var(--warning-color)}.dark-mode .data-age-stale{color:var(--danger-color)}.stale-data-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;margin-bottom:16px;border-radius:8px;background:#fff3cd;border:1px solid #ffc107;color:#856404;gap:12px;flex-wrap:wrap}.dark-mode .stale-data-banner{background:#3d3200;border-color:#665600;color:#ffca28}.stale-data-message{flex:1;font-size:14px;font-weight:500}.stale-data-actions{display:flex;align-items:center;gap:8px}.stale-data-btn{padding:5px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:opacity .2s}.stale-data-btn:hover{opacity:.85}.stale-data-refresh-btn{background:var(--primary-color);color:#fff}.stale-data-auto-btn{background:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.stale-data-dismiss-btn{background:none;border:none;font-size:18px;cursor:pointer;color:inherit;padding:0 4px;line-height:1;opacity:.6}.stale-data-dismiss-btn:hover{opacity:1}.shortcuts-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#00000080;display:flex;align-items:center;justify-content:center;animation:shortcuts-fade-in .15s ease}@keyframes shortcuts-fade-in{0%{opacity:0}to{opacity:1}}.shortcuts-overlay{background:var(--card-bg-color);color:var(--text-color);border-radius:12px;box-shadow:0 8px 32px var(--shadow-color);width:90%;max-width:560px;max-height:80vh;overflow-y:auto;outline:none;animation:shortcuts-slide-up .2s ease}@keyframes shortcuts-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.shortcuts-overlay__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px;border-bottom:1px solid var(--border-color)}.shortcuts-overlay__header h2{margin:0;font-size:18px;font-weight:600}.shortcuts-overlay__close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);padding:4px 8px;border-radius:4px;line-height:1;transition:background .15s,color .15s}.shortcuts-overlay__close:hover{background:var(--background-color);color:var(--text-color)}.shortcuts-overlay__body{padding:16px 24px 24px;display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 480px){.shortcuts-overlay__body{grid-template-columns:1fr 1fr 1fr}}.shortcuts-overlay__group-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 10px;font-weight:600}.shortcuts-overlay__list{margin:0;padding:0}.shortcuts-overlay__item{display:flex;align-items:center;gap:10px;padding:5px 0}.shortcuts-overlay__item dt{flex-shrink:0}.shortcuts-overlay__item dd{margin:0;font-size:13px;color:var(--text-color)}.shortcuts-overlay kbd{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;font-family:inherit;font-size:12px;font-weight:600;line-height:1;color:var(--text-color);background:var(--background-color);border:1px solid var(--border-color);border-radius:5px;box-shadow:0 1px 0 var(--border-color)}.dark-mode .shortcuts-overlay-backdrop{background:#000000a6}.dark-mode .shortcuts-overlay kbd{background:#ffffff14;border-color:#ffffff26;box-shadow:0 1px #ffffff1a}.dark-mode .shortcuts-overlay__close:hover{background:#ffffff14}.readiness-view{padding:1rem}.readiness-view--empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary, #6c757d)}.readiness-view__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.readiness-view__title{margin:0;font-size:1.5rem;font-weight:600}.readiness-view__refresh-btn{padding:.5rem 1rem;border:1px solid var(--border-color, #dee2e6);border-radius:4px;background:var(--bg-secondary, #f8f9fa);cursor:pointer;font-size:.875rem;transition:background-color .2s}.readiness-view__refresh-btn:hover:not(:disabled){background:var(--bg-hover, #e9ecef)}.readiness-view__refresh-btn:disabled{opacity:.6;cursor:not-allowed}.readiness-filter{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;padding:1rem;background:var(--bg-secondary, #f8f9fa);border-radius:8px}.readiness-filter__group{display:flex;flex-direction:column;gap:.25rem;min-width:150px}.readiness-filter__label{font-size:.75rem;font-weight:500;text-transform:uppercase;color:var(--text-secondary, #6c757d)}.readiness-filter__select{padding:.5rem;border:1px solid var(--border-color, #dee2e6);border-radius:4px;background:var(--bg-primary, #fff);font-size:.875rem;cursor:pointer}.readiness-filter__select:focus{outline:none;border-color:var(--primary-color, #6e49cb);box-shadow:0 0 0 2px #6e49cb33}.readiness-view__summary{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.readiness-summary-badge{padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.readiness-summary-badge--ready{background:#28a74526;color:#28a745}.readiness-summary-badge--pending{background:#ffc10726;color:#d39e00}.readiness-summary-badge--failed{background:#dc354526;color:#dc3545}.readiness-summary-badge--not-deployed{background:#6c757d26;color:#6c757d}.readiness-view__loading,.readiness-view__error,.readiness-view__no-results{text-align:center;padding:2rem;color:var(--text-secondary, #6c757d)}.readiness-view__error{background:#dc35451a;border-radius:8px;color:#dc3545}.readiness-view__error button{margin-top:.5rem;padding:.375rem .75rem;border:1px solid #dc3545;border-radius:4px;background:transparent;color:#dc3545;cursor:pointer}.readiness-view__error button:hover{background:#dc3545;color:#fff}.readiness-table{width:100%;border-collapse:collapse;font-size:.875rem}.readiness-table th{text-align:left;padding:.75rem;background:var(--bg-secondary, #f8f9fa);border-bottom:2px solid var(--border-color, #dee2e6);font-weight:600;color:var(--text-secondary, #6c757d);text-transform:uppercase;font-size:.75rem}.readiness-table th:last-child{width:40px}.readiness-row{cursor:pointer;transition:background-color .15s}.readiness-row:hover,.readiness-row--expanded{background:var(--bg-hover, #f8f9fa)}.readiness-row td{padding:.75rem;border-bottom:1px solid var(--border-color, #dee2e6);vertical-align:middle}.readiness-row__project-name{font-weight:500}.readiness-row__version code{padding:.125rem .375rem;background:var(--bg-secondary, #f8f9fa);border-radius:4px;font-size:.8125rem}.environment-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.environment-badge--dev{background:#e3f2fd;color:#1565c0}.environment-badge--sit{background:#e8f5e9;color:#2e7d32}.environment-badge--uat{background:#fff3e0;color:#ef6c00}.environment-badge--prod{background:#fce4ec;color:#c2185b}.readiness-status{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;border-radius:4px;font-size:.8125rem;font-weight:500}.readiness-status--ready{background:#28a74526;color:#28a745}.readiness-status--pending{background:#ffc10726;color:#d39e00}.readiness-status--failed{background:#dc354526;color:#dc3545}.readiness-status--not-deployed{background:#6c757d26;color:#6c757d}.readiness-status__icon{font-size:.875rem}.readiness-row__signoff-info{display:flex;flex-direction:column;gap:.125rem}.readiness-row__signoff-author{font-weight:500;color:var(--primary-color, #6e49cb)}.readiness-row__signoff-time{font-size:.75rem;color:var(--text-secondary, #6c757d)}.readiness-row__signoff-pending{color:var(--text-secondary, #6c757d)}.test-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.test-badge--passed{background:#28a74526;color:#28a745}.test-badge--failed{background:#dc354526;color:#dc3545}.test-badge--none{background:#6c757d26;color:#6c757d}.readiness-row__expand-btn{padding:.25rem .5rem;border:none;background:transparent;cursor:pointer;font-size:.75rem;color:var(--text-secondary, #6c757d);transition:color .15s}.readiness-row__expand-btn:hover{color:var(--primary-color, #6e49cb)}.readiness-details-row td{padding:0;background:var(--bg-secondary, #f8f9fa)}.readiness-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;padding:1.5rem;border-top:2px solid var(--primary-color, #6e49cb)}.readiness-details__section{min-width:0}.readiness-details__section--blockers{grid-column:1 / -1}.readiness-details__section-title{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--text-secondary, #6c757d);text-transform:uppercase}.readiness-details__list{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:.875rem}.readiness-details__list dt{font-weight:500;color:var(--text-secondary, #6c757d)}.readiness-details__list dd{margin:0;word-break:break-word}.readiness-details__link{color:var(--primary-color, #6e49cb);text-decoration:none}.readiness-details__link:hover{text-decoration:underline}.readiness-details__empty{margin:0;color:var(--text-secondary, #6c757d);font-style:italic}.readiness-details__help-text{margin:.5rem 0 0;font-size:.8125rem;color:var(--text-secondary, #6c757d)}.readiness-details__help-text code{display:inline-block;margin-top:.25rem;padding:.25rem .5rem;background:var(--bg-primary, #fff);border-radius:4px;font-size:.75rem}.readiness-details__mr-title{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deployment-status{display:inline-block;padding:.125rem .375rem;border-radius:4px;font-size:.75rem;text-transform:capitalize}.deployment-status--success{background:#28a74526;color:#28a745}.deployment-status--failed{background:#dc354526;color:#dc3545}.deployment-status--running{background:#007bff26;color:#007bff}.deployment-status--pending{background:#ffc10726;color:#d39e00}.deployment-status--canceled{background:#6c757d26;color:#6c757d}.signoff-valid{color:#28a745}.signoff-invalid{color:#dc3545}.test-status--passed{color:#28a745}.test-status--failed{color:#dc3545}.readiness-details__blockers{margin:0;padding-left:1.25rem}.readiness-details__blocker{color:#dc3545;margin-bottom:.25rem}.dark-mode .readiness-filter,.dark-mode .readiness-view__summary,.dark-mode .readiness-table th{background:var(--bg-secondary, #2d2d2d)}.dark-mode .readiness-row:hover,.dark-mode .readiness-row--expanded{background:var(--bg-hover, #383838)}.dark-mode .readiness-details-row td,.dark-mode .readiness-details{background:var(--bg-secondary, #2d2d2d)}.dark-mode .readiness-row__version code,.dark-mode .readiness-details__help-text code{background:var(--bg-primary, #1e1e1e)}.dark-mode .environment-badge--dev{background:#2196f333}.dark-mode .environment-badge--sit{background:#4caf5033}.dark-mode .environment-badge--uat{background:#ff980033}.dark-mode .environment-badge--prod{background:#f4433633}@media (max-width: 768px){.readiness-filter{flex-direction:column}.readiness-filter__group{min-width:100%}.readiness-table{display:block;overflow-x:auto}.readiness-details{grid-template-columns:1fr}.readiness-view__summary{justify-content:center}}.notification-bell{position:relative;display:inline-flex;align-items:center}.notification-bell-btn{background:none;border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;cursor:pointer;font-size:16px;color:var(--text-color);transition:all .2s;display:flex;align-items:center;justify-content:center;position:relative}.notification-bell-btn:hover{background-color:var(--border-color)}.notification-badge{position:absolute;top:-4px;right:-4px;background-color:var(--danger-color);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.notification-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:360px;max-height:420px;background:var(--card-bg-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 16px var(--shadow-color);z-index:1000;display:flex;flex-direction:column;overflow:hidden}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border-color);font-size:13px;font-weight:600;color:var(--text-color)}.notification-mark-all-btn{background:none;border:none;color:var(--primary-color);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:4px}.notification-mark-all-btn:hover{background-color:var(--border-color)}.notification-list{overflow-y:auto;flex:1;max-height:360px}.notification-item{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s;align-items:flex-start}.notification-item:hover{background-color:var(--border-color)}.notification-item:last-child{border-bottom:none}.notification-item.unread{background-color:#6e49cb0f}.dark-mode .notification-item.unread{background-color:#9d7fe81a}.notification-icon{font-size:18px;flex-shrink:0;width:24px;text-align:center}.notification-content{flex:1;min-width:0}.notification-content-message{font-size:13px;color:var(--text-color);line-height:1.4;margin:0}.notification-content-project{font-weight:600}.notification-content-time{font-size:11px;color:var(--text-muted);margin-top:2px}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 14px;color:var(--text-muted);font-size:13px}.notification-empty-icon{font-size:28px;margin-bottom:8px;opacity:.5}.notification-settings{background:var(--card-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin-bottom:16px}.notification-settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.notification-settings-title{font-size:14px;font-weight:600;color:var(--text-color);display:flex;align-items:center;gap:6px}.notification-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-color)}.notification-toggle-row:last-child{border-bottom:none}.notification-toggle-label{font-size:13px;color:var(--text-color)}.notification-toggle-switch{position:relative;width:40px;height:22px;background-color:var(--border-color);border-radius:11px;cursor:pointer;transition:background .2s;border:none;padding:0}.notification-toggle-switch.active{background-color:var(--success-color)}.notification-toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.notification-toggle-switch.active:after{transform:translate(18px)}.notification-permission-status{font-size:12px;padding:6px 10px;border-radius:6px;margin-top:8px}.notification-permission-granted{background-color:#28a7451a;color:var(--success-color)}.notification-permission-denied{background-color:#dc35451a;color:var(--danger-color)}.notification-permission-default{background-color:#ffc1071a;color:var(--warning-color)}.dark-mode .notification-permission-granted{background-color:#4caf5026}.dark-mode .notification-permission-denied{background-color:#f4433626}.dark-mode .notification-permission-default{background-color:#ffca2826}.notification-rule-list{margin-top:12px}.notification-rule-count{font-size:12px;color:var(--text-muted);margin-bottom:8px}.notification-rule-item{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--border-color);border-radius:6px;margin-bottom:6px;font-size:13px}.notification-rule-item-info{flex:1;min-width:0}.notification-rule-item-name{font-weight:500;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-rule-item-type{font-size:11px;color:var(--text-muted)}.notification-rule-item-actions{display:flex;gap:4px;flex-shrink:0}.notification-rule-item-actions button{background:none;border:1px solid var(--border-color);border-radius:4px;padding:3px 8px;font-size:11px;cursor:pointer;color:var(--text-muted);transition:all .15s}.notification-rule-item-actions button:hover{background-color:var(--border-color);color:var(--text-color)}.notification-rule-item-actions button.danger:hover{background-color:#dc35451a;color:var(--danger-color);border-color:var(--danger-color)}.notification-add-btn{display:block;width:100%;padding:8px;margin-top:8px;background:none;border:1px dashed var(--border-color);border-radius:6px;color:var(--primary-color);font-size:13px;cursor:pointer;transition:all .15s}.notification-add-btn:hover{background-color:var(--border-color)}.notification-add-btn:disabled{opacity:.5;cursor:not-allowed}.notification-rule-form{border:1px solid var(--border-color);border-radius:6px;padding:12px;margin-top:8px;background:var(--card-bg-color)}.notification-form-field{margin-bottom:10px}.notification-form-field label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:4px}.notification-form-field select,.notification-form-field input[type=text],.notification-form-field input[type=number]{width:100%;padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;font-size:13px;background:var(--card-bg-color);color:var(--text-color);box-sizing:border-box}.notification-scope-radios{display:flex;gap:12px;margin-bottom:6px}.notification-radio-label{font-size:13px;color:var(--text-color);display:flex;align-items:center;gap:4px;cursor:pointer}.notification-project-list{max-height:120px;overflow-y:auto;border:1px solid var(--border-color);border-radius:4px;padding:6px}.notification-project-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-color);padding:2px 0;cursor:pointer}.notification-hint{font-size:11px;color:var(--text-muted);font-style:italic}.notification-form-errors{margin-bottom:8px}.notification-form-error{font-size:12px;color:var(--danger-color);margin:2px 0}.notification-form-actions{display:flex;gap:8px;justify-content:flex-end}.notification-form-actions button{padding:6px 14px;font-size:13px;border-radius:4px;cursor:pointer}.notification-form-actions button[type=submit]{background-color:var(--primary-color);color:#fff;border:none}.notification-form-actions button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.notification-not-supported{font-size:13px;color:var(--text-muted);font-style:italic;padding:12px;text-align:center}.dark-mode .notification-toggle-switch{background-color:#3a3a5a}.dark-mode .notification-toggle-switch:after{background:#ddd}.dark-mode .notification-rule-form select,.dark-mode .notification-rule-form input[type=text],.dark-mode .notification-rule-form input[type=number]{background:var(--background-color);border-color:var(--border-color);color:var(--text-color)}.dark-mode .notification-rule-item-actions button.danger:hover{background-color:#f4433626}.mr-board{padding:1rem}.mr-board__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.mr-board__header h2{margin:0;font-size:1.25rem}.mr-board__count{font-size:.85rem;color:#6c757d;margin-left:.5rem}.mr-board__columns{display:flex;gap:.75rem;overflow-x:auto;min-height:300px}.mr-board__loading{text-align:center;padding:3rem 1rem;color:#6c757d}.mr-board__error{text-align:center;padding:2rem;color:#dc3545}.mr-board__error button{margin-top:.75rem;padding:.5rem 1rem;border:1px solid #dc3545;background:transparent;color:#dc3545;border-radius:4px;cursor:pointer}.mr-board__empty{text-align:center;padding:3rem 1rem;color:#6c757d}.mr-board-filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.mr-board-filters__group{display:flex;flex-direction:column;gap:.25rem}.mr-board-filters__label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:#6c757d;font-weight:600}.mr-board-filters__select,.mr-board-filters__input{padding:.4rem .6rem;border:1px solid #ced4da;border-radius:4px;font-size:.85rem;background:#fff;min-width:140px}.mr-board-filters__toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.85rem;-webkit-user-select:none;user-select:none}.mr-board-filters__toggle input[type=checkbox]{cursor:pointer}.mr-board-filters__count{font-size:.8rem;color:#6c757d;margin-left:auto;white-space:nowrap}.mr-board-filters__username-prompt{font-size:.75rem;color:#6c757d;font-style:italic}.mr-board-column{flex:1;min-width:240px;max-width:320px;background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;border:1px solid #e9ecef}.mr-board-column__header{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-bottom:2px solid transparent;font-weight:600;font-size:.85rem}.mr-board-column__icon{font-size:1rem}.mr-board-column__title{flex:1}.mr-board-column__badge{background:#6c757d;color:#fff;border-radius:10px;padding:.1rem .5rem;font-size:.75rem;font-weight:600}.mr-board-column__list{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.5rem;max-height:600px}.mr-board-column__empty{text-align:center;padding:2rem .5rem;color:#adb5bd;font-size:.8rem;font-style:italic}.mr-col-passing .mr-board-column__header{border-bottom-color:#28a745}.mr-col-passing .mr-board-column__badge{background:#28a745}.mr-col-failing .mr-board-column__header{border-bottom-color:#dc3545}.mr-col-failing .mr-board-column__badge{background:#dc3545}.mr-col-running .mr-board-column__header{border-bottom-color:#007bff}.mr-col-running .mr-board-column__badge{background:#007bff}.mr-col-draft .mr-board-column__header{border-bottom-color:#6c757d}.mr-col-draft .mr-board-column__badge{background:#6c757d}.mr-col-no-pipeline .mr-board-column__header{border-bottom-color:#adb5bd}.mr-col-no-pipeline .mr-board-column__badge{background:#adb5bd}.mr-card{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:.6rem .75rem;cursor:pointer;transition:box-shadow .15s,border-color .15s;border-left:3px solid transparent}.mr-card:hover{box-shadow:0 2px 6px #0000001a;border-color:#c0c6cc}.mr-card--passing{border-left-color:#28a745}.mr-card--failing{border-left-color:#dc3545}.mr-card--running{border-left-color:#007bff}.mr-card--draft{border-left-color:#6c757d}.mr-card--no-pipeline{border-left-color:#adb5bd}.mr-card__project{font-size:.7rem;color:#6c757d;margin-bottom:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-card__title{font-size:.85rem;font-weight:600;margin-bottom:.3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-card__title a{color:inherit;text-decoration:none}.mr-card__title a:hover{text-decoration:underline}.mr-card__meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.75rem;color:#6c757d}.mr-card__author{display:flex;align-items:center;gap:.25rem}.mr-card__avatar{width:18px;height:18px;border-radius:50%;background:#6e49cb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;flex-shrink:0}.mr-card__branches{font-size:.7rem;color:#868e96;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-card__branches code{background:#f1f3f5;padding:.1rem .3rem;border-radius:3px;font-size:.65rem}.mr-card__failed-jobs{display:flex;flex-direction:column;gap:.25rem;margin-top:.3rem}.mr-card__failed-badge{display:inline-block;background:#dc3545;color:#fff;font-size:14px;font-weight:600;padding:.25rem .5rem;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:fit-content;cursor:default;transition:background .15s}.mr-card__failed-badge:hover{background:#c82333}.mr-card__failed-badge--more{background:#bd2130;font-size:13px}.mr-card__commit{font-size:.7rem;color:#868e96;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.2rem}.mr-card__age{font-size:.7rem;color:#adb5bd}.mr-card-details{background:#fff;border:1px solid #e0e3e6;border-radius:8px;padding:1.25rem;margin:.5rem 0;box-shadow:0 2px 8px #00000014}.mr-card-details__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.mr-card-details__title{font-size:1.1rem;font-weight:600;margin:0}.mr-card-details__title a{color:#333;text-decoration:none}.mr-card-details__title a:hover{text-decoration:underline}.mr-card-details__close{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem;color:#6c757d;line-height:1}.mr-card-details__close:hover{color:#333}.mr-card-details__info{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;font-size:.85rem;color:#6c757d}.mr-card-details__description{margin-bottom:1rem;font-size:.85rem;color:#495057;max-height:100px;overflow:hidden;border-left:3px solid #e9ecef;padding-left:.75rem}.mr-card-details__section{margin-bottom:1rem}.mr-card-details__section h4{margin:0 0 .5rem;font-size:.85rem;color:#495057}.mr-card-details__commits{list-style:none;padding:0;margin:0}.mr-card-details__commits li{padding:.3rem 0;font-size:.8rem;border-bottom:1px solid #f1f3f5;display:flex;gap:.5rem}.mr-card-details__commits li:last-child{border-bottom:none}.mr-card-details__commit-sha{font-family:monospace;font-size:.75rem;color:#6e49cb;flex-shrink:0}.mr-card-details__commit-msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-card-details__pipeline-jobs{list-style:none;padding:0;margin:0}.mr-card-details__pipeline-jobs li{padding:.25rem 0;font-size:.8rem;display:flex;align-items:center;gap:.4rem}.mr-card-details__job-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mr-card-details__job-status--success{background:#28a745}.mr-card-details__job-status--failed{background:#dc3545}.mr-card-details__job-status--running{background:#007bff}.mr-card-details__job-status--pending{background:#ffc107}.mr-card-details__job-status--canceled{background:#6c757d}.mr-card-details__job-failure{font-size:.75rem;color:#dc3545}.mr-card-details__links{display:flex;gap:.75rem;flex-wrap:wrap}.mr-card-details__links a{font-size:.8rem;color:#6e49cb;text-decoration:none}.mr-card-details__links a:hover{text-decoration:underline}.dark-mode .mr-board-filters{background:#1e2128;border-color:#343a40}.dark-mode .mr-board-filters__label{color:#adb5bd}.dark-mode .mr-board-filters__select,.dark-mode .mr-board-filters__input{background:#2a2e35;border-color:#495057;color:#e9ecef}.dark-mode .mr-board-filters__count{color:#adb5bd}.dark-mode .mr-board-column{background:#1e2128;border-color:#343a40}.dark-mode .mr-board-column__empty{color:#6c757d}.dark-mode .mr-card{background:#2a2e35;border-color:#343a40}.dark-mode .mr-card:hover{box-shadow:0 2px 6px #0000004d;border-color:#495057}.dark-mode .mr-card__project{color:#adb5bd}.dark-mode .mr-card__title{color:#e9ecef}.dark-mode .mr-card__meta{color:#adb5bd}.dark-mode .mr-card__branches code{background:#343a40;color:#ced4da}.dark-mode .mr-card__commit{color:#868e96}.dark-mode .mr-card__age{color:#6c757d}.dark-mode .mr-card-details{background:#2a2e35;border-color:#343a40}.dark-mode .mr-card-details__title a{color:#e9ecef}.dark-mode .mr-card-details__close{color:#adb5bd}.dark-mode .mr-card-details__close:hover{color:#e9ecef}.dark-mode .mr-card-details__info{color:#adb5bd}.dark-mode .mr-card-details__description{color:#ced4da;border-left-color:#495057}.dark-mode .mr-card-details__section h4{color:#ced4da}.dark-mode .mr-card-details__commits li{border-bottom-color:#343a40}.dark-mode .mr-card-details__commit-sha{color:#9d7fe8}.dark-mode .mr-card-details__commit-msg{color:#ced4da}.dark-mode .mr-card-details__links a{color:#9d7fe8}.dark-mode .mr-board__loading,.dark-mode .mr-board__empty{color:#adb5bd}.dark-mode .mr-board__error{color:#f44336}.dark-mode .mr-card__failed-badge{background:#f44336}.dark-mode .mr-card__failed-badge:hover,.dark-mode .mr-card__failed-badge--more{background:#e53935}.dark-mode .mr-card-details__job-failure{color:#f44336}.dark-mode .mr-card-details__pipeline-jobs li a{color:#9d7fe8}.dark-mode .mr-board-column__header{color:#e9ecef}.dark-mode .mr-board__count{color:#adb5bd}.dark-mode .mr-card__title a{color:#e9ecef}@media (max-width: 1199px){.mr-board__columns{flex-wrap:wrap}.mr-board-column{min-width:calc(33% - .5rem);max-width:none}}@media (max-width: 767px){.mr-board__columns{flex-direction:column}.mr-board-column{min-width:100%;max-width:100%}.mr-board-column__list{max-height:300px}.mr-board-filters{flex-direction:column}.mr-board-filters__count{margin-left:0}}.export-dialog__overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background:#0006;display:flex;align-items:center;justify-content:center;padding:20px}.export-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:480px;width:100%;padding:24px;animation:export-dialog-in .15s ease-out}@keyframes export-dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.export-dialog__title{margin:0 0 4px;font-size:18px;font-weight:600}.export-dialog__subtitle{margin:0 0 16px;font-size:13px;color:#666}.export-dialog__options{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.export-dialog__checkbox{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:8px 10px;border-radius:6px;transition:background .12s}.export-dialog__checkbox:hover{background:#f5f5f5}.export-dialog__checkbox input[type=checkbox]{margin-top:3px;flex-shrink:0;width:16px;height:16px;cursor:pointer}.export-dialog__checkbox input[type=checkbox]:disabled{cursor:not-allowed}.export-dialog__label{display:flex;flex-direction:column;gap:2px}.export-dialog__label strong{font-size:13px;font-weight:600}.export-dialog__label small{font-size:11px;color:#888}.export-dialog__actions{display:flex;justify-content:flex-end;gap:10px}.export-dialog__btn{padding:8px 18px;font-size:13px;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:background .12s;display:inline-flex;align-items:center;gap:6px}.export-dialog__btn:disabled{opacity:.6;cursor:not-allowed}.export-dialog__btn--cancel{background:#f0f0f0;color:#333}.export-dialog__btn--cancel:hover:not(:disabled){background:#e0e0e0}.export-dialog__btn--export{background:#3b82f6;color:#fff}.export-dialog__btn--export:hover:not(:disabled){background:#2563eb}.export-dialog__spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:export-spin .6s linear infinite}@keyframes export-spin{to{transform:rotate(360deg)}}.export-dialog--dark{background:#1e1e1e;color:#e0e0e0}.export-dialog--dark .export-dialog__subtitle{color:#999}.export-dialog--dark .export-dialog__checkbox:hover{background:#2a2a2a}.export-dialog--dark .export-dialog__label small{color:#777}.export-dialog--dark .export-dialog__btn--cancel{background:#333;color:#ccc}.export-dialog--dark .export-dialog__btn--cancel:hover:not(:disabled){background:#444}.export-button{position:relative;display:inline-block}.export-button__trigger{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:500;background:#f0f0f0;border:1px solid #ccc;border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.export-button__trigger:hover:not(:disabled){background:#e0e0e0;border-color:#999}.export-button__trigger:disabled{opacity:.5;cursor:not-allowed}.export-button__dropdown{position:absolute;top:100%;right:0;z-index:1000;margin-top:4px;min-width:220px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 16px #0000001f;overflow:hidden}.export-button__option{display:block;width:100%;padding:10px 14px;font-size:13px;text-align:left;background:transparent;border:none;cursor:pointer;transition:background .12s}.export-button__option:hover:not(:disabled){background:#f5f5f5}.export-button__option:disabled{opacity:.4;cursor:not-allowed}.export-button__divider{height:1px;background:#eee;margin:2px 0}.export-button--dark .export-button__trigger{background:#2d2d2d;border-color:#555;color:#e0e0e0}.export-button--dark .export-button__trigger:hover:not(:disabled){background:#3a3a3a;border-color:#777}.export-button--dark .export-button__dropdown{background:#2d2d2d;border-color:#444;box-shadow:0 4px 16px #0006}.export-button--dark .export-button__option{color:#e0e0e0}.export-button--dark .export-button__option:hover:not(:disabled){background:#3a3a3a}.export-button--dark .export-button__divider{background:#444}:root{--primary-color: #6e49cb;--secondary-color: #fca326;--success-color: #28a745;--warning-color: #ffc107;--danger-color: #dc3545;--inactive-color: #6c757d;--background-color: #f8f9fa;--card-bg-color: #fff;--text-color: #333;--text-muted: #666;--border-color: #e0e0e0;--shadow-color: rgba(0, 0, 0, .1)}body.dark-mode,.container.dark-mode{--primary-color: #9d7fe8;--secondary-color: #fca326;--success-color: #4caf50;--warning-color: #ffca28;--danger-color: #f44336;--inactive-color: #9e9e9e;--background-color: #1a1a2e;--card-bg-color: #16213e;--text-color: #e0e0e0;--text-muted: #aaa;--border-color: #2d3a5a;--shadow-color: rgba(0, 0, 0, .3)}body.dark-mode{background-color:var(--background-color);color:var(--text-color)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;margin:0;padding:0;background-color:var(--background-color);color:var(--text-color)}.container{max-width:1200px;margin:0 auto;padding:20px}header{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--border-color);margin-bottom:20px;flex-wrap:wrap;gap:10px}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.last-updated{font-size:12px;color:var(--text-muted);padding:0 8px}.icon-btn{background:none;border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;cursor:pointer;font-size:16px;color:var(--text-color);transition:all .2s;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background-color:var(--border-color)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.refresh-btn{font-size:18px}.theme-btn{font-size:14px}.shortcuts-hint-btn{font-size:12px;padding:4px 8px}.shortcuts-hint-btn kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;font-family:inherit;font-size:12px;font-weight:600;line-height:1;color:var(--text-muted);background:var(--background-color);border:1px solid var(--border-color);border-radius:3px;box-shadow:0 1px 0 var(--border-color)}.text-btn{background:none;border:none;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text-muted);transition:color .2s}.text-btn:hover{color:var(--text-color)}.text-btn.danger:hover{color:var(--danger-color)}h1{color:var(--primary-color);margin:0}button{background-color:var(--primary-color);color:#fff;border:none;padding:10px 15px;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s}button:hover{background-color:#5a3da8}button:disabled{background-color:#b8a8e0;cursor:not-allowed}.secondary-button{background-color:#f8f9fa;color:var(--primary-color);border:1px solid var(--primary-color)}.secondary-button:hover{background-color:#f0f0f0}.view-btn{background-color:#f8f9fa;color:var(--primary-color);border:1px solid var(--primary-color)}.view-btn.active{background-color:var(--primary-color);color:#fff}input,select{padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;width:100%}.settings-panel{margin-bottom:20px;overflow:hidden;transition:max-height .3s ease,opacity .3s ease,margin .3s ease;max-height:500px;opacity:1}.settings-panel.collapsed{max-height:0;opacity:0;margin-bottom:0}.settings-footer{display:flex;justify-content:flex-end;padding:0 20px 15px;background-color:var(--card-bg-color);border-radius:0 0 8px 8px;margin-top:-8px}.controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:0;background-color:var(--card-bg-color);padding:20px;border-radius:8px 8px 0 0;box-shadow:0 2px 4px var(--shadow-color)}.control-panel-multi{display:flex;flex-direction:column;gap:20px}.control-panel-multi .control-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.control-panel-multi .control-sources{border-top:1px solid var(--border-color);padding-top:16px}.control-panel-multi .control-actions{display:flex;align-items:center;gap:16px;padding-top:8px;border-top:1px solid var(--border-color)}.control-panel-multi .control-actions button{min-width:150px}.control-hint{font-size:13px;color:var(--text-muted);font-style:italic}.control-group{display:flex;flex-direction:column}label{margin-bottom:8px;font-weight:500}.success{color:var(--success-color)}.warning{color:var(--warning-color)}.danger{color:var(--danger-color)}.loading-indicator{display:flex;justify-content:center;align-items:center;margin:20px 0;font-style:italic;color:var(--primary-color)}.error-container{background-color:#f8d7da;color:#721c24;padding:10px 15px;border-radius:4px;margin-bottom:20px}.filter-bar{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-input{flex:1;min-width:200px;max-width:300px;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background-color:var(--card-bg-color);color:var(--text-color)}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #6e49cb33}.status-filters{display:flex;gap:6px;flex-wrap:wrap}.filter-chip{padding:6px 12px;border:1px solid var(--border-color);border-radius:20px;background-color:var(--card-bg-color);color:var(--text-color);font-size:13px;cursor:pointer;transition:all .2s}.filter-chip:hover{border-color:var(--primary-color)}.filter-chip.active{background-color:var(--primary-color);border-color:var(--primary-color);color:#fff}.filter-chip.success.active{background-color:var(--success-color);border-color:var(--success-color)}.filter-chip.warning.active{background-color:var(--warning-color);border-color:var(--warning-color);color:#333}.filter-chip.danger.active{background-color:var(--danger-color);border-color:var(--danger-color)}.filter-chip.inactive.active{background-color:var(--inactive-color);border-color:var(--inactive-color)}.filter-chip.needs-attention{font-weight:600}.filter-chip.needs-attention.active{background:linear-gradient(135deg,var(--danger-color),var(--warning-color));border-color:var(--danger-color);color:#fff;box-shadow:0 2px 6px #dc35454d}.summary-section{background-color:var(--card-bg-color);border-radius:8px;padding:12px 16px;margin-bottom:25px;box-shadow:0 2px 4px var(--shadow-color)}.summary-section h2{margin-top:0;margin-bottom:12px;color:var(--primary-color);font-size:18px}.summary-compact-layout{display:flex;gap:16px;align-items:center;margin-bottom:10px}.summary-stats-row{display:flex;gap:8px;flex:1}.summary-health-chart{width:80px;flex-shrink:0}.summary-layout{display:flex;gap:30px;align-items:flex-start}.summary-left{flex:1}.summary-right{width:200px;flex-shrink:0}.summary-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}.summary-card{background-color:var(--background-color);border-radius:8px;padding:12px;text-align:center;border:2px solid transparent;transition:all .2s}.summary-card.compact{padding:8px;min-width:0}.summary-card h3{margin:0 0 5px;font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase}.summary-card.compact h3{font-size:10px;margin-bottom:3px}.summary-card .metric{font-size:24px;font-weight:600;color:var(--text-color)}.summary-card.compact .metric{font-size:20px}.summary-card.clickable{cursor:pointer}.summary-card.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-color)}.summary-card.active{border-color:var(--primary-color);box-shadow:0 0 0 2px #6e49cb33}.summary-card.success{border-left:3px solid var(--success-color)}.summary-card.success .metric{color:var(--success-color)}.summary-card.success.active{border-color:var(--success-color)}.summary-card.warning{border-left:3px solid var(--warning-color)}.summary-card.warning .metric{color:var(--warning-color)}.summary-card.warning.active{border-color:var(--warning-color)}.summary-card.danger{border-left:3px solid var(--danger-color)}.summary-card.danger .metric{color:var(--danger-color)}.summary-card.danger.active{border-color:var(--danger-color)}.summary-card.inactive,.summary-card.no-pipeline{border-left:3px solid var(--inactive-color)}.summary-card.inactive .metric,.summary-card.no-pipeline .metric{color:var(--inactive-color)}.summary-card.inactive.active{border-color:var(--inactive-color)}.summary-secondary-stats{display:flex;gap:20px;flex-wrap:wrap;padding-top:8px}.summary-secondary-stats .summary-metric .metric-label{font-size:10px}.summary-secondary-stats .summary-metric .metric-value{font-size:14px}.summary-metrics{display:flex;gap:20px;flex-wrap:wrap}.summary-metric{display:flex;flex-direction:column;gap:4px}.summary-metric .metric-label{font-size:12px;color:var(--text-muted);text-transform:uppercase}.summary-metric .metric-value{font-size:18px;font-weight:600;color:var(--text-color)}.chart-container{position:relative;height:180px}.chart-container.compact{height:80px;width:80px}.chart-center-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.chart-total{display:block;font-size:28px;font-weight:700;color:var(--text-color)}.chart-label{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase}.projects-section h2{margin-bottom:15px;color:var(--text-color)}.projects-section h2 .filter-count{font-size:14px;font-weight:400;color:var(--text-muted);margin-left:8px}@media (max-width: 1024px){.summary-layout{flex-direction:column}.summary-right{width:100%;max-width:250px;margin:0 auto}.summary-cards{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.controls{grid-template-columns:1fr}header{flex-direction:column;align-items:flex-start;gap:15px}.header-actions{width:100%;justify-content:flex-start}.filter-bar{flex-direction:column;align-items:stretch}.search-input{max-width:none}.status-filters{justify-content:flex-start}.summary-cards{grid-template-columns:repeat(2,1fr)}.summary-card .metric{font-size:20px}.summary-metrics{flex-direction:column;gap:10px}}@media (max-width: 480px){.summary-cards{grid-template-columns:1fr 1fr}.summary-cards .summary-card:first-child{grid-column:span 2}.view-toggle{width:100%}.view-toggle .view-btn{flex:1}}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:40px 20px;text-align:center}.error-boundary h2{color:var(--danger-color);margin-bottom:12px}.error-boundary-message{color:var(--text-muted);max-width:600px;margin-bottom:20px;word-break:break-word}.error-boundary-retry{padding:10px 24px;background:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.error-boundary-retry:hover{opacity:.9}.loading-skeleton{background:linear-gradient(90deg,var(--border-color) 25%,var(--card-bg-color) 50%,var(--border-color) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dark-mode .shortcuts-hint-btn kbd{background:#ffffff14;border-color:#ffffff26;box-shadow:0 1px #ffffff1a}
