.dashboard{display:flex;flex-direction:column;gap:18px}.dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-xs)}.dashboard-summary__item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:center;min-height:94px;padding:16px 20px}.dashboard-summary__item+.dashboard-summary__item{border-left:1px solid var(--border-hairline)}.dashboard-summary__icon{display:grid;width:34px;height:34px;place-items:center;border-radius:7px;background:var(--brand-soft);color:var(--brand)}.dashboard-summary__item.is-success .dashboard-summary__icon{background:var(--success-soft);color:var(--success)}.dashboard-summary__item.is-warning .dashboard-summary__icon{background:var(--warning-soft);color:var(--warning)}.dashboard-summary__item.is-danger .dashboard-summary__icon{background:var(--danger-soft);color:var(--danger)}.dashboard-summary__item.is-neutral .dashboard-summary__icon{background:var(--neutral-soft);color:var(--text-muted)}.dashboard-summary__label,.dashboard-summary__value,.dashboard-summary__note{display:block}.dashboard-summary__label{color:var(--text-muted);font-size:12px}.dashboard-summary__value{margin-top:1px;color:var(--text-strong);font-size:23px;line-height:1.15}.dashboard-summary__note{margin-top:2px;overflow:hidden;color:var(--text-faint);font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:minmax(620px,1.65fr) minmax(340px,.72fr);gap:18px;align-items:start}.dashboard-main-stack,.dashboard-side-stack{min-width:0}.dashboard-main-stack,.dashboard-side-stack{display:flex;flex-direction:column;gap:18px}.work-panel,.focus-release{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-xs)}.work-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-height:68px;padding:16px 18px 13px;border-bottom:1px solid var(--border-hairline)}.work-panel__title{color:var(--text-strong);font-size:15px;font-weight:650}.work-panel__desc{margin-top:3px;color:var(--text-muted);font-size:12.5px}.work-panel__link{display:inline-flex;align-items:center;gap:5px;flex:none;color:var(--brand);font-size:13px;font-weight:600}.work-panel__empty{display:flex;min-height:120px;align-items:center;justify-content:center;gap:7px;color:var(--text-muted);font-size:13px}.work-panel__empty.is-error{color:var(--danger)}.focus-release{display:flex;min-height:300px;flex-direction:column;padding:24px;border-color:var(--brand-line);background:radial-gradient(circle at 92% 12%,rgb(55 112 255 / 12%),transparent 28%),linear-gradient(145deg,#fbfdff,#f6f9ff);box-shadow:0 12px 32px #214a9612}.focus-release--empty{align-items:center;justify-content:center;color:var(--text-muted);font-size:14px}.focus-release__topline{display:flex;align-items:center;justify-content:space-between;color:var(--text-muted);font-size:13.5px}.focus-release__status{padding:4px 9px;border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand);font-weight:650}.focus-release__status.is-blocked{color:var(--danger)}.focus-release__title{margin-top:16px;color:var(--text-strong);font-size:27px;font-weight:650}.focus-release__title span{color:var(--text-muted);font-family:var(--mono);font-size:14px;font-weight:500}.focus-release__meta{display:flex;gap:16px;margin-top:7px;color:var(--text-muted);font-size:13.5px}.focus-release__meta span{display:inline-flex;align-items:center;gap:5px}.focus-release__meta svg{width:12px;height:12px}.focus-release__journey{margin-top:24px;padding:16px 18px;border:1px solid rgb(219 230 255 / 82%);border-radius:10px;background:#ffffffad}.focus-release__journey .journey{grid-template-columns:repeat(10,minmax(0,1fr))}.focus-release__journey .journey__stage{font-size:12px}.focus-release__action{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:16px;border-top:1px solid var(--brand-line);color:var(--brand);font-size:13px;font-weight:650}.risk-list{padding:4px 10px 9px}.risk-row{display:grid;min-height:64px;grid-template-columns:32px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:9px 8px}.risk-row+.risk-row{border-top:1px solid var(--border-hairline)}.risk-row:hover{background:var(--surface-subtle)}.risk-row__icon{display:grid;width:30px;height:30px;place-items:center;border-radius:7px;background:var(--danger-soft);color:var(--danger)}.risk-row>div{min-width:0}.risk-row strong,.risk-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-row strong{color:var(--text-strong);font-size:13px;font-weight:600}.risk-row small{margin-top:4px;color:var(--text-muted);font-size:11.5px}.risk-row>svg{color:var(--text-faint)}.risk-panel__healthy{color:var(--success)}.risk-panel .work-panel__empty{min-height:56px}.activity-list{padding:4px 10px 9px}.activity-row{display:grid;min-height:62px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;padding:9px 8px}.activity-row+.activity-row{border-top:1px solid var(--border-hairline)}.activity-row__icon{display:grid;width:30px;height:30px;place-items:center;border-radius:7px;background:var(--neutral-soft);color:var(--text-muted)}.activity-row.is-action .activity-row__icon{background:var(--brand-soft);color:var(--brand)}.activity-row.is-alert .activity-row__icon{background:var(--danger-soft);color:var(--danger)}.activity-row.is-comment .activity-row__icon{background:var(--warning-soft);color:var(--warning)}.activity-row>div{min-width:0}.activity-row strong,.activity-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-row strong{color:var(--text-strong);font-size:13px;font-weight:600}.activity-row small{margin-top:4px;color:var(--text-faint);font-size:11.5px}.dashboard-activity-wide .activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 14px 10px}.dashboard-activity-wide .activity-row{min-height:68px;padding-inline:12px}.dashboard-activity-wide .activity-row+.activity-row{border-top:0}.dashboard-activity-wide .activity-row:nth-child(n+3){border-top:1px solid var(--border-hairline)}.dashboard-activity-wide .activity-row:nth-child(2n){border-left:1px solid var(--border-hairline)}.dashboard-activity-wide .activity-row:last-child:nth-child(odd){grid-column:1 / -1}.active-release-list{padding:0 10px 8px}.active-release-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.1fr) minmax(110px,auto) 18px;gap:18px;align-items:center;min-height:76px;padding:9px 8px}.active-release-row+.active-release-row{border-top:1px solid var(--border-hairline)}.active-release-row:hover{background:#fafbfc}.active-release-row__identity{min-width:0}.active-release-row__identity b{display:block;overflow:hidden;color:var(--text-strong);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.active-release-row__identity>span{display:block;margin-top:5px;color:var(--text-muted);font-size:12.5px}.active-release-row__stage>div{display:flex;align-items:center;gap:7px}.active-release-row__stage>div>span{color:var(--text);font-size:12.5px}.active-release-row__stage .progress{margin-top:8px}.active-release-row__delivery{display:flex;align-items:flex-end;flex-direction:column;gap:5px;color:var(--text-muted);font-size:12.5px}.active-release-row__delivery strong{color:var(--danger);font-size:12px;font-weight:600}.active-release-row>svg{color:var(--text-faint)}.task-list{padding:4px 10px 9px}.task-row{display:flex;align-items:center;gap:11px;min-height:62px;padding:9px 8px}.task-row+.task-row{border-top:1px solid var(--border-hairline)}.task-row:hover{background:#fafbfc}.task-row>svg{flex:none;color:var(--text-faint)}.task-row__priority{width:3px;height:34px;flex:none;border-radius:2px;background:var(--border-strong)}.task-row__priority.is-high{background:var(--danger)}.task-row__priority.is-medium{background:var(--warning)}.task-row__title{color:var(--text-strong);font-size:13.5px;font-weight:600}.task-row__meta{display:flex;align-items:center;gap:12px;margin-top:4px;color:var(--text-muted);font-size:12px}.task-row__meta span{display:inline-flex;align-items:center;gap:4px}.task-row__meta svg{width:11px;height:11px}.deadline-list{padding:4px 10px 9px}.deadline-list__label{padding:9px 8px 4px;color:var(--text-muted);font-size:12px;font-weight:600}.deadline-list__label.is-overdue{color:var(--danger)}.deadline-list__label.is-near{color:var(--warning)}.deadline-row{display:flex;align-items:center;gap:10px;min-height:62px;padding:9px 8px}.deadline-row.is-overdue{background:color-mix(in srgb,var(--danger-soft) 42%,transparent)}.deadline-row.is-near{background:color-mix(in srgb,var(--warning-soft) 42%,transparent)}.deadline-row+.deadline-row{border-top:1px solid var(--border-hairline)}.deadline-row:hover{background:#fafbfc}.deadline-row__icon{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:6px;background:var(--warning-soft);color:var(--warning)}.deadline-row__icon.is-overdue{background:var(--danger-soft);color:var(--danger)}.deadline-row__title{color:var(--text-strong);font-size:13px;font-weight:600}.deadline-row__meta{margin-top:3px;color:var(--text-muted);font-size:12px}.deadline-row>svg{flex:none;color:var(--text-faint)}.personal-change-list{padding:4px 10px 9px}.personal-change-row{display:flex;align-items:center;gap:10px;min-height:62px;padding:9px 8px}.personal-change-row+.personal-change-row{border-top:1px solid var(--border-hairline)}.personal-change-row:hover{background:#fafbfc}.personal-change-row__title{overflow:hidden;color:var(--text-strong);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.personal-change-row__meta{margin-top:3px;color:var(--text-muted);font-size:12px}.personal-change-row>svg{flex:none;color:var(--text-faint)}.personal-change-row .grow{min-width:0}@media(max-width:1120px){.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary__item:nth-child(3){border-top:1px solid var(--border-hairline);border-left:0}.dashboard-summary__item:nth-child(4){border-top:1px solid var(--border-hairline)}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:680px){.dashboard-summary__item{grid-template-columns:30px minmax(0,1fr);min-height:72px;padding:11px}.dashboard-summary__icon{width:30px;height:30px}.focus-release{min-height:230px}.focus-release__meta{align-items:flex-start;flex-direction:column;gap:6px}.focus-release__journey .journey{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:10px}.active-release-row{grid-template-columns:1fr auto;min-height:72px}.active-release-row__stage,.active-release-row__delivery{display:none}.dashboard-activity-wide .activity-list{grid-template-columns:1fr}.dashboard-activity-wide .activity-row:nth-child(2n){border-left:0}.dashboard-activity-wide .activity-row:last-child:nth-child(odd){grid-column:auto}.dashboard-activity-wide .activity-row+.activity-row{border-top:1px solid var(--border-hairline)}}.release-board{display:flex;flex-direction:column;gap:18px}.review-console{padding:20px 24px}.review-console__head,.review-console__footer,.review-build-banner,.review-app,.review-row-actions{display:flex;align-items:center}.review-console__head{justify-content:space-between;gap:16px}.review-console__actions{display:flex;align-items:center;gap:10px}.review-console__actions>span{color:var(--text-muted);font-size:13px}.review-console__head h3{margin:0;color:var(--text-strong);font-size:17px}.review-console__head p{margin:4px 0 0;color:var(--text-muted);font-size:14px}.review-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;border:1px solid var(--border-hairline);border-radius:var(--r-md)}.review-summary{padding:12px 14px}.review-summary+.review-summary{border-left:1px solid var(--border-hairline)}.review-summary>span,.review-summary b{display:block}.review-summary>span{color:var(--text-muted);font-size:15px}.review-summary__value{display:flex;align-items:baseline;gap:8px;margin-top:3px}.review-summary b{color:var(--text-strong);font-size:22px}.review-summary small{color:var(--text-faint);font-size:12px}.review-summary.is-brand b{color:var(--brand)}.review-summary.is-success b{color:var(--success)}.review-summary.is-warning b{color:var(--warning)}.review-summary.is-danger b{color:var(--danger)}.review-build-banner{gap:10px;margin-top:14px;padding:10px 12px;border:1px solid var(--brand-line);border-radius:var(--r-sm);background:var(--brand-soft);color:var(--brand)}.review-build-banner svg{width:17px;height:17px}.review-build-banner b,.review-build-banner span{display:block;font-size:12px}.review-build-banner span{margin-top:2px;color:var(--text-muted)}.review-table{margin-top:16px;overflow-x:auto;border:1px solid var(--border-hairline);border-radius:var(--r-md)}.review-table__row{display:grid;grid-template-columns:40px minmax(170px,1.05fr) minmax(95px,.62fr) minmax(95px,.62fr) minmax(190px,1.25fr) minmax(140px,.9fr) minmax(135px,.9fr) minmax(110px,.75fr);align-items:center;min-width:975px;min-height:48px;padding:6px 12px;border-top:1px solid var(--border-hairline);color:var(--text);font-size:14px}.review-table__row.is-head{min-height:44px;border-top:0;background:var(--surface-subtle);color:var(--text-muted);font-size:14px;font-weight:600}.review-table__row:not(.is-head):hover{background:var(--surface-subtle)}.review-app{gap:8px;min-width:0}.review-selection{display:inline-flex;align-items:center;justify-content:center}.review-selection__spacer{width:16px;height:16px}.review-app__logo,.review-app__fallback{width:28px;height:28px;flex:0 0 28px;border-radius:6px}.review-app__logo{display:block;object-fit:cover}.review-app__fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:650}.review-app b{overflow:hidden;color:var(--text-strong);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.review-app-id{color:var(--text-faint);font-family:var(--mono);font-size:14px}.review-artifact-version{color:var(--text-strong);font-size:14px;font-weight:600}.review-artifact-name{overflow:hidden;color:var(--text-muted);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.review-submitted-at{color:var(--text-muted);font-size:14px;white-space:nowrap}.review-statuses,.review-rollout-state{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.review-rollout-state small{color:var(--text-muted);font-size:12px;white-space:nowrap}.review-statuses>.badge,.review-rollout-state>.badge{font-size:14px}.review-empty-status{color:var(--text-faint);font-size:14px}.review-row-actions{justify-content:flex-start}.review-backend-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--border-hairline);border-radius:var(--r-sm);color:var(--text-muted);font-size:13px;white-space:nowrap}.review-backend-link:hover{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand)}.review-backend-link svg{width:13px;height:13px}.review-pagination{display:flex;justify-content:flex-end;margin-top:8px}.review-pagination .ant-pagination{font-size:12px}.review-pagination .ant-pagination-total-text,.review-pagination .ant-pagination-item,.review-pagination .ant-pagination-prev,.review-pagination .ant-pagination-next{min-width:26px;height:26px;line-height:24px}.review-pagination .ant-pagination-prev button,.review-pagination .ant-pagination-next button{width:26px;height:26px}.review-console__footer{justify-content:space-between;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-hairline)}.review-console__footer>div{display:grid;grid-template-columns:auto minmax(150px,1fr) auto;align-items:center;gap:10px}.review-console__footer>div>b{display:flex;min-height:32px;align-items:center;color:var(--text-strong);font-size:15px;line-height:1.4}.review-console__footer>div>span{display:flex;min-height:32px;align-items:center;color:var(--text-muted);font-size:14px;line-height:1.4}.review-console__footer .btn--primary .btn__icon,.review-console__footer .btn--primary svg{color:inherit;stroke:currentColor}.review-empty{padding:40px 24px;color:var(--text-muted);text-align:center}@media(max-width:900px){.review-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-summary:nth-child(3){border-top:1px solid var(--border-hairline);border-left:0}.review-summary:nth-child(4){border-top:1px solid var(--border-hairline)}.review-console__footer{align-items:stretch;flex-direction:column}}@media(max-width:600px){.review-console{padding:16px}.review-console__head{align-items:flex-start}.review-table{overflow-x:auto}.review-table__row{min-width:975px}.review-console__footer>div{grid-template-columns:minmax(0,1fr) auto}.review-console__footer>div>span{grid-column:1 / -1;grid-row:2}}.rollout-workspace{display:flex;flex-direction:column;gap:16px}.rollout-action-panel,.rollout-confirm-panel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.rollout-progress{padding:8px 4px 20px;border-bottom:1px solid var(--border-hairline)}.rollout-section-head,.rollout-monitoring__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.rollout-section-head h3,.rollout-action-panel h3,.rollout-confirm-panel h3,.rollout-monitoring h3{margin:0;color:var(--text-strong);font-size:15px;font-weight:650;letter-spacing:0}.rollout-section-head p,.rollout-operation__status p,.rollout-confirm-panel p,.rollout-monitoring__head p{margin:3px 0 0;color:var(--text-muted);font-size:12.5px}.rollout-track{display:grid;grid-auto-columns:minmax(96px,1fr);grid-auto-flow:column;min-width:560px;margin:20px 0 0;padding:0;list-style:none}.rollout-progress{overflow-x:auto}.rollout-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.rollout-scope__group{min-width:0;padding:12px 14px;border:1px solid var(--brand-line);border-radius:var(--r-sm);background:var(--brand-soft)}.rollout-scope__group.is-external{border-color:var(--warning-line);background:var(--warning-soft)}.rollout-scope__group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rollout-scope__group-head span,.rollout-scope__group small{color:var(--text-muted);font-size:12px}.rollout-scope__group-head strong{color:var(--text-strong);font-size:13px}.rollout-scope__group>b,.rollout-scope__group>small{display:block}.rollout-scope__group>b{overflow:hidden;margin-top:7px;color:var(--text-strong);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.rollout-scope__group>small{margin-top:4px}.rollout-step{min-width:0}.rollout-step__line{display:flex;align-items:center}.rollout-step__node{position:relative;z-index:1;display:grid;width:28px;height:28px;flex:none;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-faint);font-size:12px;font-weight:650}.rollout-step__node svg{width:14px;height:14px}.rollout-step__connector{width:100%;border-top:2px solid var(--border)}.rollout-step--done .rollout-step__node{border-color:var(--success);background:var(--success);color:#fff}.rollout-step--done .rollout-step__connector{border-color:var(--success)}.rollout-step--active .rollout-step__node{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-soft)}.rollout-step>strong,.rollout-step>span:last-child{display:block}.rollout-step>strong{margin-top:9px;color:var(--text-strong);font-size:14px}.rollout-step>span:last-child{margin-top:2px;color:var(--text-muted);font-size:12px}.rollout-step--active>strong{color:var(--brand)}.rollout-control-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr);gap:12px}.rollout-action-panel{padding:16px 18px;border-left:3px solid var(--brand);background:var(--surface-subtle)}.rollout-operation{display:flex;align-items:center;gap:18px}.rollout-operation__stage{display:flex;width:94px;flex:none;flex-direction:column;gap:2px;padding-right:18px;border-right:1px solid var(--border)}.rollout-operation__stage span{color:var(--text-muted);font-size:11.5px}.rollout-operation__stage strong{color:var(--text-strong);font-size:28px;line-height:1.1}.rollout-operation__status{display:flex;min-width:0;align-items:center;gap:10px}.rollout-operation__status>span,.rollout-confirm-panel__icon{display:grid;width:32px;height:32px;flex:none;place-items:center;border-radius:var(--r-sm)}.rollout-operation__status>span.is-locked{background:var(--warning-soft);color:var(--warning)}.rollout-operation__status>span.is-ready,.rollout-confirm-panel__icon{background:var(--brand-soft);color:var(--brand)}.rollout-operation__status svg,.rollout-confirm-panel__icon svg{width:16px;height:16px}.rollout-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.rollout-waiting{margin:8px 0 0;color:var(--warning);font-size:12px}.rollout-confirm-panel{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;gap:12px;padding:16px;border-color:var(--border-hairline);background:var(--surface-subtle)}.rollout-confirm-panel.is-ready{border-color:var(--success-line);background:var(--success-soft)}.rollout-confirm-panel.is-ready .rollout-confirm-panel__icon{background:var(--surface);color:var(--success)}.rollout-confirm-panel__eyebrow{color:var(--text-faint);font-size:11px;font-weight:650}.rollout-confirm-panel .btn,.rollout-confirm-panel>.badge{grid-column:1 / -1;justify-self:stretch;margin-top:8px}.rollout-confirm-panel>.badge{justify-self:start}.rollout-monitoring{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface)}.rollout-monitoring__head{padding:16px 20px;border-bottom:1px solid var(--border-hairline)}.rollout-monitoring__actions{display:flex;align-items:center;gap:6px}.rollout-monitoring__actions>a{text-decoration:none}.rollout-monitoring__filters{display:flex;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border-hairline);background:var(--surface-subtle)}.rollout-monitoring__filters button{display:flex;min-width:138px;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-muted);font-size:12px;text-align:left}.rollout-monitoring__filters button.is-active{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand)}.rollout-monitoring__filters button b{color:var(--text-strong);font-size:13px}.rollout-monitoring__warning{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--danger-line);background:var(--danger-soft);color:var(--danger);font-size:13px}.rollout-monitoring__warning svg{flex:0 0 auto}.rollout-monitor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.rollout-metric{min-width:0;padding:18px 20px}.rollout-metric+.rollout-metric{border-left:1px solid var(--border-hairline)}.rollout-metric__head{display:flex;min-height:52px;align-items:flex-start;justify-content:space-between;gap:16px}.rollout-metric__head>div:first-child{display:flex;flex-direction:column;gap:3px}.rollout-metric__head>div:first-child>span{color:var(--text-muted);font-size:12.5px}.rollout-metric__head strong{color:var(--text-strong);font-size:24px;line-height:1.15}.rollout-metric__meta{display:flex;align-items:flex-end;flex-direction:column;gap:3px;color:var(--text-muted);font-size:11.5px;text-align:right}.rollout-metric .chart{position:relative;margin-top:12px}.rollout-metric .chart>.row{padding-left:42px}.rollout-metric .chart__svg{overflow:visible;cursor:crosshair}.rollout-metric .chart__tooltip{position:absolute;z-index:2;display:flex;min-width:82px;flex-direction:column;gap:2px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-md);color:var(--text-muted);font-size:11px;pointer-events:none;transform:translate(-50%)}.rollout-metric .chart__tooltip b{color:var(--text-strong);font-size:12.5px}.rollout-metric__empty,.rollout-metric__aggregate{display:flex;height:132px;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--text-faint);font-size:12.5px;text-align:center}.rollout-metric__empty svg,.rollout-metric__aggregate svg{width:22px;height:22px}.rollout-metric__aggregate{height:92px;margin-top:12px;border-top:1px dashed var(--border);color:var(--text-muted)}.rollout-metric__aggregate svg{color:var(--brand)}.rollout-monitor-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--border-hairline)}.rollout-ranking{min-width:0;padding:16px 20px 20px}.rollout-ranking+.rollout-ranking{border-left:1px solid var(--border-hairline)}.rollout-ranking__title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.rollout-ranking__title strong{color:var(--text-strong);font-size:15px}.rollout-ranking__title span{color:var(--text-faint);font-size:12.5px}.rollout-ranking__table{overflow-x:auto}.rollout-ranking__row{display:grid;grid-template-columns:minmax(180px,1fr) 72px 110px;min-width:430px;align-items:center;gap:12px;min-height:46px;padding:7px 8px;border-bottom:1px solid var(--border-hairline);color:var(--text-muted);font-size:13px}.rollout-ranking__row--api{grid-template-columns:minmax(190px,1fr) 82px 70px 84px;min-width:520px}.rollout-ranking__row.is-head{min-height:32px;background:var(--surface-subtle);color:var(--text-faint);font-size:12.5px;font-weight:600}.rollout-sort{display:inline-flex;align-items:center;justify-content:flex-start;gap:3px;color:inherit;font:inherit}.rollout-sort:hover{color:var(--brand)}.rollout-sort svg{width:13px;height:13px}.rollout-ranking__row>span:first-child{min-width:0}.rollout-ranking__row b,.rollout-ranking__row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rollout-ranking__row b{color:var(--text);font-size:14px;font-weight:600}.rollout-ranking__row small{margin-top:2px;color:var(--text-faint);font-size:12px}.rollout-ranking__empty{display:grid;min-height:96px;place-items:center;color:var(--text-faint);font-size:12px}.rollout-ranking__pagination{display:flex;justify-content:flex-end;margin-top:12px}.is-spinning{animation:rollout-spin .8s linear infinite}@keyframes rollout-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.rollout-control-grid,.rollout-monitor-grid,.rollout-monitor-details,.rollout-scope{grid-template-columns:1fr}.rollout-metric+.rollout-metric,.rollout-ranking+.rollout-ranking{border-top:1px solid var(--border-hairline);border-left:0}}@media(max-width:560px){.rollout-progress,.rollout-action-panel,.rollout-confirm-panel,.rollout-metric,.rollout-monitoring__head{padding:14px}.rollout-metric__head{align-items:flex-start;flex-direction:column}.rollout-metric__meta{align-items:flex-start;text-align:left}}.release-board__toolbar{display:flex;align-items:center;gap:12px}.search.release-board__search{height:38px;max-width:360px}.release-board__toolbar .segmented button{height:32px;padding-inline:13px}.release-board__pagination{align-self:center;margin-top:6px}.release-section{display:flex;flex-direction:column;gap:10px}.release-section__head{display:flex;align-items:center;justify-content:space-between;min-height:24px}.release-section__title{font-size:13.5px;font-weight:650;color:var(--text-muted)}.release-section__count{color:var(--text-faint);font-size:12.5px}.release-overview{overflow:hidden;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-xs);transition:border-color .16s ease,box-shadow .16s ease}.release-overview:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.release-overview--focus{border-color:var(--brand-line);box-shadow:0 8px 26px #5e6ad217}.release-overview__head{display:grid;grid-template-columns:minmax(240px,1.25fr) minmax(330px,1.7fr) auto;gap:20px;align-items:center;padding:18px 20px}.release-overview__identity{min-width:0}.release-overview__eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:5px}.release-overview__version{color:var(--text-faint);font-family:var(--mono);font-size:12.5px}.release-overview__name{color:var(--text-strong);font-size:18px;font-weight:650}.release-overview__meta{display:flex;align-items:center;gap:14px;margin-top:6px;color:var(--text-muted);font-size:13px}.release-overview__meta span{display:inline-flex;align-items:center;gap:5px}.release-overview__meta svg{width:13px;height:13px}.release-overview__action{min-width:140px;text-align:right}.release-overview__action-note{margin-bottom:7px;color:var(--text-muted);font-size:12.5px}.release-overview__foot{display:flex;align-items:center;gap:18px;padding:10px 20px;border-top:1px solid var(--border-hairline);background:var(--surface-subtle);color:var(--text-muted);font-size:13px}.release-overview__foot span{display:inline-flex;align-items:center;gap:5px}.release-overview__foot .release-overview__risk{margin-left:auto;color:var(--warning);font-weight:600}.journey{display:grid;grid-template-columns:repeat(10,minmax(50px,1fr));gap:4px;min-width:0}.journey__stage{position:relative;min-width:0;padding-top:18px;color:var(--text-faint);font-size:12.5px;text-align:center}.journey__stage:before{content:"";position:absolute;top:6px;left:0;right:0;height:3px;border-radius:var(--r-pill);background:var(--border)}.journey__stage--done{color:var(--text-muted)}.journey__stage--done:before{background:var(--success)}.journey__stage--active{color:var(--brand-onsoft);font-weight:650}.journey__stage--active:before{height:5px;top:5px;background:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.journey__stage--blocked{color:var(--danger);font-weight:650}.journey__stage--blocked:before{background:var(--danger)}.release-pipeline{overflow-x:auto;padding:17px 24px 20px;border-top:1px solid var(--border-hairline);background:linear-gradient(180deg,#f8faff,#fbfcff)}.release-pipeline__head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.release-pipeline__head>div{display:flex;align-items:baseline;gap:10px}.release-pipeline__head strong{color:var(--text-strong);font-size:13px;font-weight:650}.release-pipeline__head>div>span{color:var(--text-muted);font-size:12px}.release-pipeline__current{padding:4px 9px;border:1px solid var(--brand-line);border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand);font-size:11.5px;font-weight:600}.release-pipeline__list{display:grid;grid-template-columns:repeat(5,minmax(128px,1fr));gap:12px;min-width:820px;margin:0;padding:0;list-style:none}.release-pipeline__step{position:relative;min-width:0}.release-pipeline__step button{position:relative;z-index:1;display:flex;width:100%;min-height:112px;align-items:stretch;flex-direction:column;gap:5px;padding:12px 13px;border:1px solid var(--border-hairline);border-radius:10px;background:#ffffffc7;color:var(--text-muted);font-size:12.5px;text-align:left;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.release-pipeline__step-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.release-pipeline__node{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-muted);transition:border-color .15s ease,background .15s ease,color .15s ease}.release-pipeline__node svg{width:16px;height:16px;stroke-width:2.2}.release-pipeline__state{color:var(--text-faint);font-size:10.5px;font-weight:550}.release-pipeline__label{display:block;margin-top:3px;color:var(--text-strong);font-size:13px;font-weight:650;line-height:1.35;white-space:nowrap}.release-pipeline__description{overflow:hidden;color:var(--text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.release-pipeline__connector{position:absolute;z-index:3;top:50%;right:-18px;display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--border-hairline);border-radius:50%;background:#f9fbff;color:var(--text-faint);transform:translateY(-50%)}.release-pipeline__connector svg{width:13px;height:13px}.release-pipeline__connector.is-complete{border-color:var(--brand-line);background:#edf3ff;color:var(--brand)}.release-pipeline__connector.is-blocked{border-color:var(--danger-line);background:var(--danger-soft);color:var(--danger)}.release-pipeline__step--done .release-pipeline__node{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand)}.release-pipeline__step--active button{border-color:#94b2ff;background:linear-gradient(145deg,#fff,#edf3ff);box-shadow:0 7px 18px #3370ff1f}.release-pipeline__step--active .release-pipeline__node{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 4px 10px #3370ff3d}.release-pipeline__step--active .release-pipeline__state,.release-pipeline__step--active .release-pipeline__label{color:var(--brand)}.release-pipeline__step--blocked button{border-color:var(--danger-line);background:var(--danger-soft)}.release-pipeline__step--blocked .release-pipeline__node{border-color:var(--danger);background:var(--danger);color:#fff}.release-pipeline__step button:hover{z-index:2;border-color:var(--brand-line);box-shadow:0 7px 16px #1f2d4814;transform:translateY(-2px)}.release-pipeline__step button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.build-workspace{display:flex;flex-direction:column;gap:14px}.build-console,.review-workspace{padding:20px 24px;border:1px solid var(--border-hairline);border-radius:var(--r-md);background:var(--surface)}.build-console{border-color:#dbe6ff;background:linear-gradient(135deg,#fbfdff,#f5f8ff)}.build-console--complete{padding-top:14px;padding-bottom:14px}.build-console--complete .build-console__head{align-items:center}.build-console--complete .build-console__meta{margin-top:8px}.build-console__head,.review-workspace__head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.build-console__title{color:var(--text-strong);font-size:15px;font-weight:650}.build-console__desc{margin-top:4px;color:var(--text-muted);font-size:13px}.build-execution{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:center;margin-top:18px}.build-execution--single{grid-template-columns:1fr}.build-execution__connector{height:1px;background:var(--border)}.build-step{display:flex;align-items:center;gap:12px;min-height:82px;padding:14px 16px;border:1px solid var(--border-hairline);border-radius:var(--r-md);background:#ffffffd1}.build-step.is-active{border-color:var(--brand-line);background:var(--brand-soft)}.build-step.is-done{border-color:var(--success-line);background:var(--success-soft)}.build-step.is-failed{border-color:var(--danger-line);background:var(--danger-soft)}.build-step__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border-radius:var(--r-sm);background:var(--surface);color:var(--text-muted)}.build-step.is-active .build-step__icon{color:var(--brand)}.build-step.is-done .build-step__icon{color:var(--success)}.build-step.is-failed .build-step__icon{color:var(--danger)}.build-step__icon svg{width:17px;height:17px}.build-step__eyebrow{color:var(--text-faint);font-size:11px}.build-step__title{margin-top:2px;color:var(--text-strong);font-size:14px;font-weight:650}.build-step__detail{margin-top:3px;overflow:hidden;color:var(--text-muted);font-family:var(--mono);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.build-step__link{display:inline-flex;align-items:center;gap:4px;margin-left:10px;color:var(--brand);font-family:var(--font);font-weight:600;text-decoration:none}.build-step__link:hover{text-decoration:underline}.build-step__link svg{width:12px;height:12px}.build-console__meta{display:flex;align-items:center;gap:24px;margin-top:14px;color:var(--text-muted);font-size:12px}.build-console__meta b{margin-left:5px;color:var(--text);font-family:var(--mono);font-weight:550}.build-console__error{margin-top:12px;padding:8px 10px;border:1px solid var(--danger-line);border-radius:var(--r-sm);background:var(--danger-soft);color:var(--danger);font-size:13px}.review-workspace__locked{display:flex;align-items:center;gap:12px;min-height:76px;margin-top:16px;padding:14px 16px;border:1px dashed var(--border);border-radius:var(--r-md);color:var(--text-muted)}.review-workspace__locked>svg{width:20px;height:20px;color:var(--text-faint)}.review-workspace__locked b{display:block;color:var(--text);font-size:13.5px}.review-workspace__locked span{display:block;margin-top:3px;font-size:12.5px}.review-workspace .mp-workbench{margin:16px -24px -20px;border-top:1px solid var(--border-hairline)}.review-workspace .review-gate{margin:0 -24px -20px;border-right:0;border-bottom:0;border-left:0;border-radius:0}.spin{animation:build-spin .8s linear infinite}@keyframes build-spin{to{transform:rotate(360deg)}}@media(max-width:820px){.build-console__head,.review-workspace__head{align-items:stretch;flex-direction:column}.build-execution{grid-template-columns:1fr;gap:8px}.build-execution__connector{width:1px;height:16px;margin-left:33px}.build-console__meta{align-items:flex-start;flex-direction:column;gap:7px}}.release-empty{padding:36px 20px;border:1px dashed var(--border-strong);border-radius:var(--r-lg);color:var(--text-muted);text-align:center}.overview-dashboard{display:grid;gap:14px}.overview-command{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:190px;overflow:hidden;border:1px solid #dbe4f5;border-radius:12px;background:radial-gradient(circle at 8% 8%,rgb(64 124 255 / 10%),transparent 32%),linear-gradient(135deg,#fbfdff,#f4f7ff)}.overview-command__copy{display:flex;justify-content:center;flex-direction:column;padding:24px 28px}.overview-command__eyebrow{display:flex;align-items:center;gap:10px}.overview-command__eyebrow>span:last-child{color:var(--text-muted);font-size:11.5px}.overview-command h2{margin:12px 0 0;color:var(--text-strong);font-size:23px;font-weight:720;letter-spacing:-.02em}.overview-command p{margin:6px 0 0;color:var(--text-muted);font-size:13px}.overview-command__actions{display:flex;align-items:center;gap:14px;margin-top:20px}.overview-command__actions .btn{min-width:138px;justify-content:center}.overview-command__actions>span{color:var(--text-faint);font-size:11px}.overview-progress-card{display:flex;align-items:center;gap:20px;padding:24px;border-left:1px solid rgb(219 228 245 / 85%);background:#fff9}.overview-progress-ring{display:grid;width:106px;height:106px;flex:none;place-items:center;border-radius:50%;box-shadow:0 8px 22px #3370ff1f}.overview-progress-ring>div{display:grid;width:82px;height:82px;place-content:center;border-radius:50%;background:#fff;text-align:center}.overview-progress-ring strong,.overview-progress-ring span,.overview-progress-card__copy>*{display:block}.overview-progress-ring strong{color:var(--text-strong);font-size:22px;font-weight:720}.overview-progress-ring span{margin-top:1px;color:var(--text-muted);font-size:10px}.overview-progress-card__copy>span{color:var(--text-muted);font-size:11px}.overview-progress-card__copy>strong{margin-top:5px;color:var(--text-strong);font-size:16px}.overview-progress-card__copy>small{margin-top:4px;color:var(--text-faint);font-size:10.5px}.overview-snapshot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border-hairline);border-radius:10px;background:var(--surface)}.overview-snapshot__item{display:flex;min-width:0;align-items:center;gap:11px;padding:15px 17px}.overview-snapshot__item+.overview-snapshot__item{border-left:1px solid var(--border-hairline)}.overview-snapshot__item>.overview-snapshot__icon{display:grid;width:32px;height:32px;flex:none;place-items:center;border-radius:8px;background:var(--surface-subtle);color:var(--brand)}.overview-snapshot__item>.overview-snapshot__icon svg{display:block;width:15px;height:15px}.overview-snapshot__item>div{min-width:0}.overview-snapshot__item span,.overview-snapshot__item strong,.overview-snapshot__item small{display:block}.overview-snapshot__item>div>span,.overview-snapshot__item small{overflow:hidden;color:var(--text-muted);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.overview-snapshot__item strong{margin:3px 0 2px;overflow:hidden;color:var(--text-strong);font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.overview-board{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(500px,1.22fr);gap:14px;align-items:stretch}.overview-checkpoints,.overview-rollout{min-width:0;padding:18px 20px 20px;border:1px solid var(--border-hairline);border-radius:10px;background:var(--surface)}.overview-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border-hairline)}.overview-panel-head h3{margin:0;color:var(--text-strong);font-size:14px;font-weight:650}.overview-panel-head p,.overview-panel-head>span{margin:3px 0 0;color:var(--text-muted);font-size:10.5px}.overview-checkpoints__list{display:grid}.overview-checkpoint{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;border-bottom:1px solid var(--border-hairline)}.overview-checkpoint:last-child{border-bottom:0}.overview-checkpoint>.overview-checkpoint__icon{display:grid;width:28px;height:28px;place-items:center;border-radius:7px;background:var(--surface-subtle);color:var(--text-faint)}.overview-checkpoint>.overview-checkpoint__icon svg{display:block;width:15px;height:15px}.overview-checkpoint.is-done .overview-checkpoint__icon{background:var(--success-soft);color:var(--success)}.overview-checkpoint strong,.overview-checkpoint span{display:block}.overview-checkpoint strong{color:var(--text-strong);font-size:12px;font-weight:600}.overview-checkpoint div>span{margin-top:2px;color:var(--text-muted);font-size:10.5px}.overview-rollout__track{display:grid;grid-template-columns:repeat(5,minmax(72px,1fr));min-width:440px;padding:26px 2px 4px}.overview-rollout__stop{position:relative;min-width:0;text-align:center}.overview-rollout__stop:before{position:absolute;z-index:0;top:20px;right:50%;left:-50%;height:2px;background:var(--border-hairline);content:""}.overview-rollout__stop:first-child:before{display:none}.overview-rollout__stop.is-done:before,.overview-rollout__stop.is-observing:before{background:var(--brand)}.overview-rollout__node{position:relative;z-index:1;display:grid;width:42px;height:42px;margin:0 auto;place-items:center;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--text-muted);font-size:10.5px;font-weight:650}.overview-rollout__node svg{width:17px;height:17px}.overview-rollout__stop.is-observing .overview-rollout__node{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 0 0 5px var(--brand-soft)}.overview-rollout__stop.is-done .overview-rollout__node{border-color:var(--success);background:var(--success-soft);color:var(--success)}.overview-rollout__stop>strong,.overview-rollout__stop>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-rollout__stop>strong{margin-top:9px;color:var(--text);font-size:11px;font-weight:600}.overview-rollout__stop>span{margin-top:3px;color:var(--text-muted);font-size:9.5px}.release-detail-header{position:relative;padding:20px 24px 18px;background:radial-gradient(circle at 88% 10%,rgb(79 132 255 / 9%),transparent 26%),linear-gradient(180deg,#fff,#fcfdff)}.release-detail-header__bar,.release-detail-header__main{display:flex;align-items:center;justify-content:space-between;gap:16px}.release-detail-header__back{color:var(--text-muted);font-size:13.5px}.release-detail-header__main{align-items:center;margin-top:16px}.release-detail-header__identity{display:flex;min-width:0;align-items:center;gap:14px}.release-detail-header__version{padding:7px 11px;border:1px solid var(--brand-line);border-radius:8px;background:var(--brand-soft);color:var(--brand);font-family:var(--mono);font-size:18px;font-weight:700;line-height:1}.release-detail-header__title{display:flex;min-width:0;flex-direction:column;gap:3px}.release-detail-header__title h1{overflow:hidden;color:var(--text-strong);font-size:24px;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.release-detail-header__title p{overflow:hidden;color:var(--text-muted);font-size:12.5px;text-overflow:ellipsis;white-space:nowrap}.release-detail-meta{display:flex;min-width:0;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--border-hairline);border-radius:9px;background:#ffffffd1}.release-detail-meta__icon{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:8px;background:var(--surface-subtle);color:var(--brand)}.release-detail-meta__icon svg{width:15px;height:15px}.release-detail-meta__body{min-width:0}.release-detail-meta__label{display:block;margin-bottom:3px;color:var(--text-muted);font-size:11px;font-weight:500}.release-detail-header__meta{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(260px,1.35fr) minmax(210px,1fr);gap:10px;align-items:start;margin-top:18px}.release-detail-meta__value{display:flex;min-height:22px;flex-direction:column;gap:4px;color:var(--text);font-size:14px;line-height:20px}.release-owner-list{display:flex;flex-wrap:wrap;gap:6px}.release-detail-meta__empty{color:var(--text-faint)}.release-detail-shell{overflow:hidden;border-color:#e3e8f1;box-shadow:0 8px 28px #1f2d480d}.release-detail-meta__value--editable{align-items:center;flex-direction:row;gap:7px}.release-detail-meta__edit{display:grid;width:24px;height:24px;flex:none;place-items:center;border-radius:5px;color:var(--text-muted)}.release-detail-meta__edit:hover{background:var(--brand-soft);color:var(--brand)}.release-detail-meta__edit svg{width:13px;height:13px}.release-deadline-editor{display:flex;flex-direction:column;gap:8px;padding-top:4px}.release-deadline-editor label{color:var(--text);font-size:13px;font-weight:600}.release-deadline-editor .ant-picker{width:100%}.release-deadline-editor>span{color:var(--text-muted);font-size:12.5px}.release-collaborators{margin-top:18px;padding-top:18px;border-top:1px solid var(--border-hairline)}.release-collaborators__head{display:flex;align-items:baseline;gap:10px}.release-collaborators__head strong{color:var(--text-strong);font-size:14px;font-weight:650}.release-collaborators__head span{color:var(--text-muted);font-size:12px}.release-collaborators__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:12px}.release-people-group{min-width:0}.release-people-group__list{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.release-contact{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:3px 8px 3px 4px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:12.5px;font-weight:550}.release-contact:hover{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand)}.release-contact>svg{color:var(--text-muted)}.release-contact--disabled{cursor:default;color:var(--text-muted)}.release-contact--disabled:hover{border-color:var(--border);background:var(--surface);color:var(--text-muted)}.release-people-group__empty{color:var(--text-faint);font-size:13px}.release-detail-tabs>.ant-tabs-nav{margin:0;padding:0 18px}.release-detail-tabs>.ant-tabs-nav .ant-tabs-tab{padding:15px 4px 13px;font-size:14px;font-weight:550}.release-detail-tabs__content{padding:22px}@media(max-width:980px){.release-overview__head{grid-template-columns:1fr;gap:14px}.release-overview__action{display:flex;align-items:center;justify-content:space-between;text-align:left}.overview-command{grid-template-columns:1fr}.overview-progress-card{justify-content:center;border-top:1px solid rgb(219 228 245 / 85%);border-left:0}.overview-snapshot{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-snapshot__item:nth-child(3){border-left:0}.overview-snapshot__item:nth-child(n+3){border-top:1px solid var(--border-hairline)}.overview-board{grid-template-columns:1fr}.overview-rollout{overflow-x:auto}.release-detail-header__meta{grid-template-columns:repeat(2,minmax(0,1fr))}.release-collaborators__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.release-board__toolbar,.release-overview__foot,.page-head{align-items:stretch;flex-direction:column}.release-board__search{max-width:none}.journey{grid-template-columns:repeat(5,1fr);row-gap:10px}.release-detail-header{padding:18px}.release-detail-header__main{align-items:stretch;flex-direction:column}.release-detail-header__identity{align-items:flex-start;flex-direction:column;gap:10px}.release-detail-header__meta{grid-template-columns:1fr}.release-pipeline__head{align-items:flex-start;flex-direction:column;gap:8px}.release-pipeline__head>div{align-items:flex-start;flex-direction:column;gap:3px}.release-collaborators__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.release-detail-tabs>.ant-tabs-nav{padding:0 12px}.release-detail-tabs__content{padding:14px}.overview-snapshot{grid-template-columns:1fr}.overview-snapshot__item+.overview-snapshot__item,.overview-snapshot__item:nth-child(3){border-top:1px solid var(--border-hairline);border-left:0}.overview-command__copy,.overview-progress-card{padding:20px}.overview-command__actions{align-items:stretch;flex-direction:column}.overview-command__actions .btn{width:100%}}.mp-portal-frame{width:100%;height:100%;border:0;background:#fff}.mp-workbench{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:380px}.mp-list{display:flex;flex-direction:column;padding:var(--sp-2);border-right:1px solid var(--border-hairline);background:var(--surface-subtle)}.mp-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:7px var(--sp-2);border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.mp-item:hover{background:var(--surface-hover)}.mp-item--active{background:var(--brand-soft);color:var(--brand-onsoft);font-weight:600}.mp-item--active:hover{background:var(--brand-soft)}.mp-item__glyph{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;border-radius:var(--r-sm);background:var(--neutral-soft);color:var(--text);font-size:12px;font-weight:600}.mp-item--active .mp-item__glyph{background:var(--brand);color:#fff}.mp-item__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-item__status{min-width:36px;color:var(--text-muted);font-size:11px;text-align:right}.mp-status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--neutral)}.mp-status-dot.is-submitted{background:var(--brand)}.mp-status-dot.is-approved{background:var(--success)}.mp-status-dot.is-rejected{background:var(--danger)}.mp-item--active .mp-item__status{color:inherit}.mp-browser{display:flex;flex-direction:column;padding:var(--sp-4)}.mp-browser__bar{display:flex;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-hairline)}.mp-browser__dots{display:inline-flex;gap:5px}.mp-browser__dots i{width:9px;height:9px;border-radius:var(--r-pill);background:var(--border-strong)}.mp-browser__dots i:first-child{background:#e98b8f}.mp-browser__dots i:nth-child(2){background:#e6c268}.mp-browser__dots i:nth-child(3){background:#7fc59a}.mp-browser__addr{flex:1;padding:5px var(--sp-3);border-radius:var(--r-sm);background:var(--surface-subtle);border:1px solid var(--border-hairline);color:var(--text-muted);font-family:var(--mono);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-browser__body{display:flex;flex-direction:column;flex:1;padding-top:var(--sp-4)}.mp-browser__body .mp-item__glyph{width:32px;height:32px;font-size:14px}.mp-kv{display:flex;justify-content:space-between;gap:var(--sp-4);padding:9px 0;border-bottom:1px solid var(--border-hairline);font-size:13px}.mp-kv span{color:var(--text-muted)}.mp-kv b{font-weight:600;color:var(--text-strong);text-align:right}.mp-browser__action{display:flex;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:var(--sp-4)}.mp-review-summary{margin-top:12px}.mp-review-decision{margin-top:16px}.mp-review-decision label{display:block;margin-bottom:6px;color:var(--text);font-size:12px;font-weight:600}.mp-rejection{margin-top:16px;padding:12px;border:1px solid var(--danger-line);border-radius:var(--r-sm);background:var(--danger-soft)}.mp-rejection b{color:var(--danger);font-size:12px}.mp-rejection p{margin-top:4px;color:var(--text);font-size:12px}.mp-workbench{height:clamp(1080px,calc(100dvh - 64px),1440px);min-height:0}@media(min-width:1600px){.mp-workbench{grid-template-columns:260px minmax(0,1fr)}}.mp-list{overflow-y:auto}.mp-item__logo{width:30px;height:30px;flex:none;border-radius:6px;object-fit:cover}.mp-item__identity{flex:1;min-width:0}.mp-item__identity b,.mp-item__identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-item__identity small{margin-top:1px;color:var(--text-faint);font-family:var(--mono);font-size:10px;font-weight:400}.mp-browser{min-width:0;padding:0}.mp-browser__bar{padding:12px 16px}.mp-browser__bar .mp-item__logo{width:28px;height:28px}.mp-browser__summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px 12px}.mp-browser__summary b,.mp-browser__summary span{display:block}.mp-browser__summary span{margin-top:2px;color:var(--text-muted);font-size:11px}.mp-browser__review{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}.mp-browser__review .btn--primary,.mp-browser__review .btn--primary .btn__icon,.mp-browser__review .btn--primary svg{color:#fff;stroke:currentColor}.mp-metadata-panel{margin:0 16px 16px;overflow:hidden;border:1px solid var(--border-hairline);border-radius:var(--r-sm);background:var(--surface-subtle)}.mp-app-metadata{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(180px,1.45fr) minmax(140px,1.15fr) minmax(64px,.55fr) minmax(72px,.6fr);gap:14px 22px;padding:14px 16px}.mp-metadata-item{min-width:0}.mp-metadata-label,.mp-metadata-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-metadata-label{color:var(--text-faint);font-size:11px}.mp-metadata-item b{margin-top:5px;color:var(--text);font-size:13px;font-weight:600}.mp-metadata-item b.is-mono{font-family:var(--mono);font-weight:500}.mp-portal-frame{min-height:0;flex:1}.mp-portal-viewport{position:relative;min-height:0;flex:1;margin:0 16px 16px;overflow:hidden;border:1px solid var(--border-hairline);border-radius:var(--r-sm);background:#fff}.mp-portal-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:#fff;color:var(--text-muted);text-align:center}.mp-portal-loading svg{width:24px;height:24px;color:var(--brand);animation:mp-portal-spin .8s linear infinite}.mp-portal-loading b{color:var(--text);font-size:13px}.mp-portal-loading span{font-size:11.5px}@keyframes mp-portal-spin{to{transform:rotate(360deg)}}.review-gate{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--warning-line);background:var(--warning-soft)}.review-gate b{color:var(--warning);font-size:12.5px}.review-gate span{color:var(--text-muted);font-size:12px}.review-gate.is-pass{border-color:var(--success-line);background:var(--success-soft)}.review-gate.is-pass b{color:var(--success)}@media(max-width:760px){.mp-workbench{grid-template-columns:1fr;height:auto}.mp-list{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border-hairline)}.mp-browser__summary{align-items:flex-start;flex-direction:column}.mp-app-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.mp-metadata-item:nth-child(2n){border-right:0}.mp-portal-frame,.mp-portal-viewport{height:620px;flex:none}.mp-item{width:auto;flex:none}}.notification-log__body,.release-activity{padding:4px 24px 20px}.release-completed-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 22px;border:1px solid var(--success-line);border-radius:var(--r-md);background:linear-gradient(135deg,var(--success-soft),var(--surface))}.release-completed-summary__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--success);color:#fff}.release-completed-summary__icon svg{width:22px;height:22px}.release-completed-summary span,.release-completed-summary h3,.release-completed-summary p{margin:0}.release-completed-summary>div>span{color:var(--success);font-size:12px;font-weight:650}.release-completed-summary h3{margin-top:3px;color:var(--text-strong);font-size:17px}.release-completed-summary p{margin-top:4px;color:var(--text-muted);font-size:13px}.notification-log__state{display:flex;min-height:96px;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);font-size:14px}.notification-day{display:grid;grid-template-columns:112px minmax(0,1fr);gap:20px;padding-top:18px}.notification-day+.notification-day{margin-top:8px;border-top:1px solid var(--border-hairline)}.notification-day__date{padding-top:2px;color:var(--text-muted);font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.notification-day__timeline{min-width:0}.notification-entry{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;min-height:64px;padding-bottom:16px}.notification-entry:last-child{min-height:48px;padding-bottom:0}.notification-entry:not(:last-child):before{position:absolute;top:28px;bottom:0;left:13px;width:1px;background:var(--border);content:""}.notification-entry__marker{position:relative;z-index:1;display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid var(--success-line);border-radius:50%;background:var(--surface);color:var(--success)}.notification-entry__content{min-width:0;padding:2px 0 0}.notification-entry__head,.release-activity__head{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:16px}.notification-entry__title,.release-activity__text{min-width:0;color:var(--text-strong);font-size:14.5px;font-weight:600;line-height:1.5}.notification-entry__status{display:inline-flex;flex:0 0 auto;align-items:center;gap:12px}.notification-entry__time{color:var(--text-muted);font-family:var(--mono);font-size:12.5px}.notification-entry__recipient{display:flex;min-width:0;align-items:center;gap:6px;margin-top:5px;color:var(--text-muted);font-size:13px;line-height:1.5}.notification-entry__recipient svg{flex:0 0 auto;color:var(--text-faint)}.notification-entry__recipient strong{overflow:hidden;color:var(--text);font-weight:450;text-overflow:ellipsis;white-space:nowrap}.release-activity{padding-top:10px}.release-activity__entry{display:grid;grid-template-columns:152px 32px minmax(0,1fr);gap:14px;min-height:72px;padding:14px 0;border-bottom:1px solid var(--border-hairline)}.release-activity__entry:last-child{border-bottom:0}.release-activity__date{padding-top:5px;color:var(--text-muted);font-family:var(--mono);font-size:13px}.release-activity__marker{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%}.release-activity__marker--system{background:var(--brand-soft);color:var(--brand-onsoft)}.release-activity__marker--action{background:var(--success-soft);color:var(--success)}.release-activity__marker--alert{background:var(--danger-soft);color:var(--danger)}.release-activity__marker--comment{background:var(--neutral-soft);color:var(--neutral)}.release-activity__content{min-width:0;padding-top:3px}.release-activity__meta{display:flex;align-items:center;gap:5px;margin-top:6px;color:var(--text-muted);font-size:12.5px}.record-list-toggle{display:flex;justify-content:center;padding:10px 16px 14px;border-top:1px solid var(--border-hairline)}@media(max-width:680px){.release-completed-summary{grid-template-columns:auto minmax(0,1fr)}.release-completed-summary>.badge{grid-column:2;justify-self:start}.notification-log__body,.release-activity{padding-right:16px;padding-left:16px}.notification-day{grid-template-columns:1fr;gap:10px}.notification-day__date{font-weight:600}.release-activity__entry{grid-template-columns:32px minmax(0,1fr);gap:12px}.release-activity__date{grid-column:2;grid-row:1;padding-top:0}.release-activity__marker{grid-column:1;grid-row:1 / span 2}.release-activity__content{grid-column:2}.notification-entry__head,.release-activity__head{align-items:flex-start}.notification-entry__status{align-items:flex-end;flex-direction:column;gap:5px}.notification-entry__recipient strong{white-space:normal}}.notification-center{display:flex;flex-direction:column;gap:16px}.notification-center__panel{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-sm)}.notification-center__panel>.ant-tabs>.ant-tabs-nav{margin:0;padding:0 22px}.notification-center__panel>.ant-tabs>.ant-tabs-content-holder{border-top:1px solid var(--border-hairline)}.notification-center__tab-label{display:inline-flex;align-items:center;gap:7px}.notification-tab-content{padding:24px}.notification-tab-head{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.notification-tab-head>div>strong,.notification-tab-head>div>span{display:block}.notification-tab-head>div>strong{color:var(--text-strong);font-size:15px}.notification-tab-head>div>span{margin-top:3px;color:var(--text-muted);font-size:13px}.notification-table-frame{overflow-x:auto;border:1px solid var(--border);border-radius:6px}.notification-table-frame .table{min-width:980px}.notification-table-frame .table tbody tr:hover{background:var(--surface-subtle)}.notification-table-empty{height:96px!important;color:var(--text-muted);text-align:center}.notification-recipient-cell{font-size:11.5px}.notification-template-link{display:inline-flex;align-items:center;gap:5px;padding:3px 6px;border:1px solid transparent;border-radius:4px;color:#375a5e;font-size:13px;font-weight:550;line-height:1.6;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.notification-template-link:hover{border-color:#d9e2ea;background:#f5f7fa;color:#29474a}.notification-template-link:focus-visible{outline:2px solid #375a5e;outline-offset:2px}.notification-template-link svg{color:currentColor}.notification-template-link:hover svg{color:currentColor}.notification-date-cell{font-size:11px;white-space:nowrap}.notification-pagination{display:flex;justify-content:flex-end;margin-top:16px}.notification-template-workspace{display:grid;align-items:start;grid-template-columns:280px minmax(0,1fr);gap:24px}.notification-template-list{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--surface-subtle)}.notification-template-list__head{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 14px;border-bottom:1px solid var(--border-hairline);background:var(--surface)}.notification-template-list__head strong{color:var(--text-strong);font-size:15px;font-weight:650}.notification-template-list__head span{color:var(--text-muted);font-size:13px}.notification-template-list__items{display:flex;flex-direction:column;padding:6px}.notification-template-list__item{display:grid;width:100%;min-height:64px;grid-template-columns:34px minmax(0,1fr);align-items:center;padding:9px 11px;border:0;border-radius:5px;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left}.notification-template-list__item:hover{background:var(--surface)}.notification-template-list__item.is-active{background:var(--surface);box-shadow:inset 3px 0 0 var(--brand),0 1px 2px #0f172a0d}.notification-template-list__index{display:grid;width:25px;height:25px;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-faint);font-family:var(--mono);font-size:12px}.notification-template-list__item.is-active .notification-template-list__index{border-color:var(--brand);color:var(--brand)}.notification-template-list__content{min-width:0}.notification-template-list__content strong,.notification-template-list__content small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-template-list__content strong{color:var(--text-strong);font-size:14.5px;font-weight:650;line-height:1.35}.notification-template-list__content small{margin-top:4px;color:var(--text-muted);font-size:12.5px;line-height:1.35}.notification-template-editor{min-width:0}.notification-template-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.notification-template-toolbar>div>strong,.notification-template-toolbar>div>span{display:block}.notification-template-toolbar>div>strong{color:var(--text-strong);font-size:15px}.notification-template-toolbar>div>span{margin-top:3px;color:var(--text-muted);font-size:12px}.notification-template-form{width:100%;max-width:1280px}.notification-template-form .ant-form-item{margin-bottom:20px}.notification-template-delivery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.notification-template-delivery-grid .ant-input[readonly]{color:var(--text);background:var(--surface-subtle);cursor:default}.notification-template-form .ant-form-item-label>label{color:var(--text);font-size:13.5px;font-weight:600}.notification-template-form>.ant-alert{margin-top:4px}.notification-settings__preview{width:100%;max-width:1280px}.notification-settings__preview{margin:2px 0 16px;padding:14px 16px;border:1px solid var(--border);border-radius:6px;background:var(--surface-subtle)}.notification-settings__preview>span{color:var(--text-muted);font-size:12px}.notification-settings__preview>div{display:flex;align-items:baseline;gap:8px;margin-top:8px}.notification-settings__preview b,.notification-settings__link{color:var(--brand);font-weight:500}.notification-settings__preview p{margin:6px 0 0;color:var(--text);font-size:13.5px;line-height:1.7;white-space:pre-line}.notification-settings__empty{padding:48px 20px;color:var(--text-muted);text-align:center}@media(max-width:900px){.notification-template-workspace{grid-template-columns:minmax(0,1fr);gap:20px}.notification-template-list{overflow:visible}.notification-template-list__items{overflow-x:auto;flex-direction:row;padding-bottom:6px}.notification-template-list__item{flex:0 0 236px}.notification-template-list__item.is-active{box-shadow:inset 0 -3px 0 var(--brand),0 1px 2px #0f172a0d}}@media(max-width:680px){.notification-center__panel>.ant-tabs>.ant-tabs-nav{padding:0 14px}.notification-tab-content{padding:18px}.notification-tab-head,.notification-template-toolbar{align-items:stretch;flex-direction:column}.notification-template-delivery-grid{grid-template-columns:1fr;gap:0}.notification-pagination{justify-content:flex-start;overflow-x:auto;padding-bottom:2px}}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:#eef2f7}.login-panel{width:min(100%,400px);overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-lg)}.login-brand{display:flex;align-items:center;gap:0;padding:18px 20px;border-bottom:1px solid var(--border-hairline)}.login-brand__mark{display:block;width:30px;height:30px}.login-brand strong,.login-brand span{display:block}.login-brand strong{color:var(--text-strong);font-size:15px;font-weight:650}.login-brand div>span{margin-top:1px;color:var(--text-muted);font-size:11px}.login-panel__content{padding:34px 30px 30px}.login-panel__icon{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--brand-line);border-radius:8px;background:var(--brand-soft);color:var(--brand)}.login-panel h1{margin-top:20px;font-size:22px}.login-panel p{margin:6px 0 24px;color:var(--text-muted);font-size:13px}.login-panel__error{margin:-8px 0 16px;padding:9px 11px;border:1px solid var(--danger-line);border-radius:6px;background:var(--danger-soft);color:var(--danger);font-size:12px}.login-panel footer{padding:13px 20px;border-top:1px solid var(--border-hairline);color:var(--text-faint);font-size:11px;text-align:center}.auth-loading{display:flex;align-items:center;gap:9px;color:var(--text-muted);font-size:13px}.auth-loading span{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}:root{--bg-page: #f4f6f9;--surface: #ffffff;--surface-subtle: #f8f9fb;--surface-hover: #f3f4f7;--surface-active: #eceef2;--surface-elevated: #ffffff;--border-hairline: #ecedf1;--border: #e3e5ea;--border-strong: #d1d5dd;--ring: rgba(94, 106, 210, .32);--text-strong: #101318;--text: #343a43;--text-muted: #787f8c;--text-faint: #a2a8b3;--text-disabled: #c5cad3;--text-inverse: #f6f7f9;--brand: #3370ff;--brand-hover: #2864ed;--brand-active: #245bdb;--brand-soft: #eaf1ff;--brand-line: #c9d9ff;--brand-onsoft: #245bdb;--success: #28965f;--success-soft: #e7f4ed;--success-line: #cde8d9;--warning: #c08a2e;--warning-soft: #faf1df;--warning-line: #f0e0bd;--danger: #e0454b;--danger-soft: #fcebed;--danger-line: #f6d4d6;--violet: #8162e6;--violet-soft: #f1ecfc;--violet-line: #ddd2f7;--neutral: #787f8c;--neutral-soft: #eef0f3;--neutral-line: #dde1e7;--nav-bg: #ffffff;--nav-panel: #f7f8fa;--nav-border: #e7e9ee;--nav-text: #5f6672;--nav-text-strong: #171a1f;--nav-text-muted: #9aa0aa;--nav-hover: #f3f5f8;--nav-active-bg: #edf3ff;--nav-active-ring: #d7e3ff;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--r-2xl: 14px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--shadow-xs: 0 1px 2px rgba(16, 19, 28, .05);--shadow-sm: 0 1px 2px rgba(16, 19, 28, .04), 0 1px 3px rgba(16, 19, 28, .06);--shadow-md: 0 3px 10px rgba(16, 19, 28, .06), 0 1px 3px rgba(16, 19, 28, .05);--shadow-lg: 0 10px 28px rgba(16, 19, 28, .09), 0 3px 8px rgba(16, 19, 28, .05);--shadow-xl: 0 24px 56px rgba(16, 19, 28, .16);--shadow-brand: 0 5px 16px rgba(51, 112, 255, .22);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sidebar-w: 260px;--topbar-h: 64px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{background:var(--bg-page);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}#root{isolation:isolate}h1,h2,h3,h4{color:var(--text-strong);font-weight:600;letter-spacing:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}ul,ol{list-style:none;padding:0}input,select,textarea{font:inherit;color:inherit}input::placeholder,textarea::placeholder{color:var(--text-faint)}::selection{background:var(--brand-soft);color:var(--brand-onsoft)}:focus-visible{outline:2px solid var(--ring);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:transparent;border:3px solid transparent;border-radius:var(--r-pill);background-clip:padding-box}:hover::-webkit-scrollbar-thumb{background-color:var(--border-strong);background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.stack{display:flex;flex-direction:column}.stack-4{gap:var(--sp-4)}.row{display:flex;align-items:center}.row-2{gap:var(--sp-2)}.row-3{gap:var(--sp-3)}.grow{flex:1}.right{margin-left:auto}.muted,.text-muted{color:var(--text-muted)}.text-xs{font-size:13px}.text-sm{font-size:14.5px}.strong{color:var(--text-strong);font-weight:600}.mono{font-family:var(--mono)}.tabular{font-variant-numeric:tabular-nums}.grid-2-even{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}@media(max-width:980px){.grid-2-even{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border-hairline);border-radius:var(--r-lg)}.card--pad{padding:var(--sp-5)}.card--flush{overflow:hidden}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5)}.card--flush .card__header{border-bottom:1px solid var(--border-hairline)}.card__title{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:600;color:var(--text-strong);letter-spacing:0}.card__title>svg{width:15px;height:15px;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r-sm);white-space:nowrap;background:var(--surface);color:var(--text);border:1px solid var(--border);font-size:14px;font-weight:550;letter-spacing:0;box-shadow:var(--shadow-xs);transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .08s ease}.btn svg{width:14px;height:14px}.btn__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;line-height:0}.btn__icon svg{display:block}.btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn:active{transform:translateY(.5px);box-shadow:none}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--shadow-brand)}.btn--primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn--primary:active{background:var(--brand-active)}.btn--sm{height:32px;padding:0 11px;font-size:13.5px;border-radius:var(--r-sm)}.btn--lg{height:40px;padding:0 16px;font-size:15px;border-radius:var(--r-md)}.btn--ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--brand-onsoft);font-weight:550;padding:0 8px}.btn--ghost:hover{background:var(--brand-soft);border-color:transparent}.btn--warning{border-color:var(--warning-line);background:var(--warning-soft);color:var(--warning)}.btn--warning:hover{border-color:var(--warning);background:#f7e8ca}.btn--danger{color:var(--danger);border-color:var(--danger-line);background:var(--surface)}.btn--danger:hover{background:var(--danger-soft);border-color:var(--danger-line)}.btn--danger-solid{border-color:var(--danger);background:var(--danger);color:#fff}.btn--success{border-color:var(--success);background:var(--success);color:#fff}.btn--success:hover{background:#238653;border-color:#238653}.btn--block{width:100%}.badge{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:var(--r-pill);font-size:13px;font-weight:550;line-height:1.6;white-space:nowrap;letter-spacing:0}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge--neutral{background:var(--neutral-soft);color:var(--neutral)}.badge--brand{background:var(--brand-soft);color:var(--brand-onsoft)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--purple{background:var(--violet-soft);color:var(--violet)}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:50%;background:var(--brand-soft);color:var(--brand-onsoft);font-weight:600;-webkit-user-select:none;user-select:none}.avatar--sm{width:26px;height:26px;font-size:12px}.avatar--md{width:32px;height:32px;font-size:13px}.avatar--neutral{background:var(--neutral-soft);color:var(--neutral)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{padding:8px 14px;text-align:left;background:var(--surface-subtle);color:var(--text-muted);font-size:13px;font-weight:600;letter-spacing:0;white-space:nowrap}.table td{padding:0 14px;height:46px;border-top:1px solid var(--border-hairline);vertical-align:middle}.table tbody tr{transition:background .12s ease}.table tbody tr:hover{background:var(--surface-hover)}.cell-strong{color:var(--text-strong);font-weight:600;letter-spacing:0}.control{width:100%;min-height:34px;padding:8px 11px;outline:none;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-size:14px;color:var(--text);resize:vertical;box-shadow:var(--shadow-xs)}.control:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.search{display:flex;align-items:center;gap:8px;height:34px;padding:0 11px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);min-width:250px;box-shadow:var(--shadow-xs)}.search svg{width:14px;height:14px;color:var(--text-muted);flex:0 0 auto}.search input{border:none;outline:none;background:transparent;font-size:14px;width:100%;color:var(--text)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--neutral-soft);border-radius:var(--r-md)}.segmented button{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:var(--r-sm);font-size:13.5px;font-weight:550;color:var(--text-muted);transition:.13s ease}.segmented button:hover{color:var(--text)}.segmented button.is-active{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-xs)}.segmented .cnt{font-size:10px;background:var(--border);border-radius:var(--r-pill);padding:0 6px;line-height:15px;min-width:18px;text-align:center}.segmented button.is-active .cnt{background:var(--brand-soft);color:var(--brand-onsoft)}.progress{height:6px;width:100%;background:var(--neutral-soft);border-radius:var(--r-pill);overflow:hidden}.progress--sm{height:4px}.progress__bar{height:100%;border-radius:var(--r-pill);background:var(--brand);transition:width .35s cubic-bezier(.4,0,.2,1)}.progress__bar--success{background:var(--success)}.progress__bar--gradient{background:linear-gradient(90deg,#6b76e0,#8a63e6)}.app-confirm-trigger{display:inline-flex}.app-confirm-popover{max-width:min(340px,calc(100vw - 24px))}.app-confirm-popover .ant-popover-inner{padding:16px;border:1px solid var(--border-hairline);border-radius:8px;box-shadow:var(--shadow-lg)}.app-confirm-popover .ant-popconfirm-message{align-items:flex-start;gap:10px}.app-confirm-popover .ant-popconfirm-message-icon{display:flex;flex:none;align-items:center;justify-content:center;width:28px;height:28px;margin:0;border-radius:50%}.app-confirm-popover--danger .ant-popconfirm-message-icon{background:var(--danger-soft);color:var(--danger)}.app-confirm-popover--warning .ant-popconfirm-message-icon{background:var(--warning-soft);color:var(--warning)}.app-confirm-popover--danger .ant-popconfirm-message-icon svg{color:var(--danger)}.app-confirm-popover--warning .ant-popconfirm-message-icon svg{color:var(--warning)}.app-confirm-popover .ant-popconfirm-message-text{min-width:0}.app-confirm-popover .ant-popconfirm-title{margin-top:2px;color:var(--text-strong);font-size:14px;font-weight:650;line-height:22px}.app-confirm-popover .ant-popconfirm-description{max-width:260px;margin-top:3px;color:var(--text-muted);font-size:13px;line-height:20px}.app-confirm-popover .ant-popconfirm-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.app-confirm-popover .ant-popconfirm-buttons .ant-btn{min-width:60px;margin:0;border-radius:6px}.app-confirm-popover--warning .ant-popconfirm-buttons .ant-btn-primary{border-color:var(--warning);background:var(--warning)}.app-confirm-popover--warning .ant-popconfirm-buttons .ant-btn-primary:hover{border-color:#aa7624;background:#aa7624}.app-confirm-dialog .ant-modal-content{overflow:hidden;padding:0;border:1px solid var(--border-hairline);border-radius:8px;box-shadow:var(--shadow-xl)}.app-confirm-dialog .ant-modal-header{display:none}.app-confirm-dialog .ant-modal-body{padding:20px 20px 14px}.app-confirm-dialog .ant-modal-footer{display:flex;justify-content:flex-end;gap:8px;margin:0;padding:0 20px 18px}.app-confirm-dialog .ant-modal-footer .ant-btn{min-width:68px;height:32px;margin:0;border-radius:6px;box-shadow:none}.app-confirm-dialog__content{min-width:0}.app-confirm-dialog__title{display:flex;align-items:flex-start;gap:12px}.app-confirm-dialog__title>div{min-width:0;padding-top:1px}.app-confirm-dialog__title h3{margin:0;color:var(--text-strong);font-size:15px;font-weight:650;line-height:22px;letter-spacing:0}.app-confirm-dialog__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.app-confirm-dialog--danger .app-confirm-dialog__icon{background:var(--danger-soft);color:var(--danger)}.app-confirm-dialog--warning .app-confirm-dialog__icon{background:var(--warning-soft);color:var(--warning)}.app-confirm-dialog--success .app-confirm-dialog__icon{background:var(--success-soft);color:var(--success)}.app-confirm-dialog__description{margin:5px 0 0;color:var(--text-muted);font-size:13px;line-height:20px}.app-confirm-dialog--warning .ant-modal-footer .ant-btn-primary{border-color:var(--warning);background:var(--warning)}.app-confirm-dialog--warning .ant-modal-footer .ant-btn-primary:hover{border-color:#aa7624;background:#aa7624}.app-confirm-dialog--success .ant-modal-footer .ant-btn-primary{border-color:var(--success);background:var(--success)}.app-confirm-dialog--success .ant-modal-footer .ant-btn-primary:hover{border-color:#238653;background:#238653}.app-shell{min-height:100vh;background:var(--bg-page)}.app-sider{position:sticky!important;top:0;z-index:30;height:100vh;flex:0 0 var(--sidebar-w)!important;min-width:var(--sidebar-w)!important;max-width:var(--sidebar-w)!important;width:var(--sidebar-w)!important;border-right:1px solid var(--nav-border);background:var(--nav-bg)!important}.sidebar{display:flex;height:100%;flex-direction:column;background:var(--nav-bg)}.sidebar__brand{display:flex;min-height:76px;align-items:center;gap:0;padding:14px 20px}.sidebar__logo{display:block;width:34px;height:34px;flex:none}.sidebar__name{display:block}.sidebar__brand>span:last-child{display:flex;min-width:0;height:34px;align-items:center}.sidebar__name{color:var(--nav-text-strong);font-size:17px;font-weight:650;line-height:1}.sidebar__menu{flex:1;overflow-y:auto;border-inline-end:0!important;background:transparent!important}.sidebar__menu.ant-menu .ant-menu-item-group-title{padding:18px 20px 7px;color:var(--nav-text-muted);font-size:12.5px;font-weight:600}.sidebar__menu.ant-menu .ant-menu-item{width:auto;margin-block:2px;color:var(--nav-text);font-size:15px;font-weight:500}.sidebar__menu.ant-menu .ant-menu-item .ant-menu-item-icon{color:var(--text-muted)}.sidebar__menu.ant-menu .ant-menu-item-selected{background:var(--nav-active-bg);box-shadow:inset 0 0 0 1px var(--nav-active-ring);color:var(--text-strong);font-weight:600}.sidebar__menu.ant-menu .ant-menu-item-selected .ant-menu-item-icon{color:var(--brand)}.sidebar__menu .ant-menu-title-content,.sidebar__menu .ant-menu-title-content>a{display:block;min-width:0}.main{min-width:0;background:var(--bg-page)!important}.topbar{position:sticky;top:0;z-index:40;display:flex;height:var(--topbar-h);min-height:var(--topbar-h);align-items:center;justify-content:space-between;gap:20px;padding:0 28px;border-bottom:1px solid var(--border-hairline);background:#fffffff0;backdrop-filter:saturate(170%) blur(12px);-webkit-backdrop-filter:saturate(170%) blur(12px)}.topbar__leading{display:flex;min-width:0;align-items:center;gap:8px}.topbar__menu-trigger{display:none;flex:none}.topbar__breadcrumb{min-width:0}.topbar__breadcrumb .ant-breadcrumb-link,.topbar__breadcrumb .ant-breadcrumb-separator{color:var(--text-muted)}.topbar__breadcrumb li:last-child .ant-breadcrumb-link{color:var(--text-strong);font-weight:600}.topbar-user.ant-btn{display:inline-flex;height:42px;align-items:center;gap:9px;padding:0 8px;color:var(--text-strong)}.topbar-user__avatar{flex:none;object-fit:cover}.topbar-user__name{max-width:120px;overflow:hidden;font-size:14.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.topbar-user__chevron{color:var(--text-muted)}.identity-simulation-banner{position:sticky;top:var(--topbar-h);z-index:39;display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:16px;padding:4px 28px;border-bottom:1px solid #ffd591;background:#fff7e6;color:#873800}.identity-simulation-banner>div{display:flex;min-width:0;align-items:center;gap:8px}.identity-simulation-banner svg{flex:none}.identity-simulation-banner span{font-size:14px;font-weight:650}.identity-simulation-banner small{color:#ad6800;font-size:12px}.identity-simulation-banner .ant-btn{flex:none;color:#873800}.identity-simulation-dialog{display:grid;gap:12px;padding:8px 0 2px}.identity-simulation-dialog__label{color:var(--text-strong);font-size:14px;font-weight:600}.identity-simulation-dialog p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.6}.content{padding:28px clamp(24px,2.4vw,56px) 40px;background:var(--bg-page)}.content--narrow{width:100%;max-width:1920px;margin:0 auto}.page-loading{padding:48px 0;color:var(--text-muted);font-size:14px;text-align:center}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head__title{color:var(--text-strong);font-size:24px;font-weight:650}.page-head__subtitle{margin-top:5px;color:var(--text-muted);font-size:14px}.mobile-navigation .ant-drawer-body{background:var(--nav-bg)}@media(max-width:900px){.app-sider{display:none}.topbar__menu-trigger{display:inline-flex}.content{padding:22px 18px 32px}}@media(max-width:560px){.topbar{padding:0 12px}.identity-simulation-banner{padding-inline:12px}.identity-simulation-banner small{display:none}.topbar__breadcrumb li:not(:last-child){display:none}.content{padding:16px 12px 28px}.page-head{align-items:stretch;flex-direction:column}}@media(max-width:420px){.topbar-user__name,.topbar-user__chevron{display:none}}
