:root {--ssn-colour-text: #111318;;
--ssn-colour-text-soft: #33383f;;
--ssn-colour-muted: #697078;;
--ssn-colour-icon: #4f555c;;
--ssn-colour-background: #f4f5f6;;
--ssn-colour-surface: rgba(255, 255, 255, .76);;
--ssn-colour-surface-strong: rgba(255, 255, 255, .92);;
--ssn-colour-card-bg: rgba(255,255,255,.88);;
--ssn-colour-line: rgba(31, 35, 41, .105);;
--ssn-border: var(--ssn-colour-line);;
--ssn-border-strong: rgba(31,35,41,.18);;
--ssn-text: var(--ssn-colour-text);;
--ssn-muted: var(--ssn-colour-muted);;
--ssn-surface: var(--ssn-colour-surface);;
--ssn-surface-soft: var(--ssn-colour-surface-strong);;
--ssn-colour-badge: #555b62;;
--ssn-radius-panel: 24px;;
--ssn-radius-pill: 999px;;
--ssn-shadow-panel: 0 24px 74px rgba(31, 36, 44, .10);;
--ssn-shadow-soft: 0 12px 34px rgba(31, 36, 44, .075);;
--ssn-topbar-height: 68px;;
--ssn-page-padding-x: 38px;;
--ssn-page-padding-bottom: 22px;;
    --ssn-actionbar-safe-space: 92px;;
--ssn-panel-width: 380px;;
--ssn-transition-fast: .18s ease;;
--ssn-colour-control-bg: rgba(255,255,255,.82);;
--ssn-colour-control-bg-hover: rgba(17,19,24,.04);;
--ssn-colour-row-selected-bg: rgba(17,19,24,.055);;
--ssn-colour-row-selected-border: rgba(31,35,41,.16);;
--ssn-colour-pill-neutral-bg: rgba(17,19,24,.055);;
--ssn-colour-control-bg-strong: rgba(255,255,255,.92);;
--ssn-colour-control-border: var(--ssn-colour-line);;
--ssn-colour-control-text: var(--ssn-colour-text);;
--ssn-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;;
--ssn-font-size-base: 15px;;
--ssn-font-size-small: 13px;;
--ssn-font-size-label: 12px;;
--ssn-font-size-title: 16px;;
--ssn-font-weight-normal: 520;;
--ssn-font-weight-strong: 720;;
--ssn-font-weight-label: 760;;
--ssn-line-height-base: 1.35;;
--ssn-space-xs: 6px;;
--ssn-space-sm: 10px;;
--ssn-space-md: 14px;;
--ssn-space-lg: 18px;;
--ssn-space-xl: 24px;;
--ssn-radius-control: 16px;;
--ssn-radius-row: 14px;;
--ssn-radius-search-open: 18px;;
--ssn-colour-accent: #111318;;
--ssn-colour-accent-soft: rgba(17,19,24,.055);;
--ssn-colour-button-secondary-bg: var(--ssn-colour-control-bg);;
--ssn-colour-button-secondary-bg-hover: var(--ssn-colour-control-bg-hover);;
--ssn-colour-button-secondary-bg-active: rgba(17,19,24,.07);;
--ssn-colour-button-secondary-border: var(--ssn-colour-control-border);;
--ssn-colour-button-secondary-text: var(--ssn-colour-control-text);;
--ssn-colour-button-primary-bg: var(--ssn-colour-text);;
--ssn-colour-button-primary-text: var(--ssn-colour-surface-strong);;
--ssn-colour-attention: #b7791f;;
--ssn-colour-attention-soft: rgba(183,121,31,.14);;
--ssn-colour-attention-border: rgba(183,121,31,.38);;
--ssn-control-icon-size: 34px;;
--ssn-control-icon-font-size: 28px;;
--ssn-journey-line: rgba(31,35,41,.16);;
--ssn-journey-dot-border: rgba(31,35,41,.42);;
--ssn-journey-dot-complete: var(--ssn-colour-text);;
--ssn-journey-active-bg: rgba(17,19,24,.045);;
--ssn-journey-stage-bg: transparent;;
--ssn-journey-stage-bg-hover: rgba(17,19,24,.035);;
--ssn-journey-stage-bg-active: rgba(17,19,24,.055);;
--ssn-journey-text: var(--ssn-colour-text);;
--ssn-journey-text-muted: var(--ssn-colour-muted);;
}html.ssn-navigator-active,
body.ssn-navigator-active {
    margin-top: 0;
    padding-top: 0;
    overflow: hidden;
}body.ssn-navigator-active #wpadminbar,
body.ssn-navigator-active .elementor-location-header,
body.ssn-navigator-active header.site-header,
body.ssn-navigator-active .site-header,
body.ssn-navigator-active [data-ssn-hidden-floating="1"] {
    display: none;
    visibility: hidden;
    pointer-events: none;
}.ssn-login-message {
    padding: 24px;
    border: 1px solid #d8dde5;
    border-radius: var(--ssn-radius-control);
    background: #fff;
    color: var(--ssn-colour-text);
}.ssn-shell {position: fixed;;
inset: 0;;
z-index: 2147483000;;
width: 100vw;;
height: 100vh;;
overflow: hidden;;
color: var(--ssn-colour-text);;
background:
        radial-gradient(circle at 50% 48%, rgba(255,255,255,.98) 0 26%, rgba(249,250,251,.94) 42%, rgba(243,245,247,.96) 70%, #eef0f2 100%),
        repeating-radial-gradient(circle at 50% 48%, rgba(38,43,50,.024) 0 1px, transparent 1px 118px),
        linear-gradient(180deg, #fbfbfb, var(--ssn-colour-background));;
font-family: var(--ssn-font-family);;
font-size: var(--ssn-font-size-base);;
line-height: var(--ssn-line-height-base);;
}.ssn-shell:before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,.34), transparent 22%, transparent 78%, rgba(255,255,255,.34));
}.ssn-shell * {
    box-sizing: border-box;
}.ssn-shell a,
.ssn-shell button {
    color: var(--ssn-colour-text);
}.ssn-shell svg {
    display: block;
}.ssn-shell button,
.ssn-shell input,
.ssn-shell select,
.ssn-shell textarea {
    font: inherit;
}.ssn-shell button {
    appearance: none;
    -webkit-appearance: none;
}.ssn-shell .ssn-search,
.ssn-shell .ssn-icon-button,
.ssn-shell .ssn-card-menu {
    background-color: transparent;
    background-image: none;
}.ssn-topbar {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 20;
    height: var(--ssn-topbar-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 10px var(--ssn-page-padding-x);
    border-bottom: 1px solid rgba(31,35,41,.07);
    background: rgba(246,247,248,.82);
    backdrop-filter: blur(28px) saturate(145%);
}.ssn-brand {
    display: inline-flex;
    align-items: center;
    gap: var(--ssn-space-md);
    font-size: calc(var(--ssn-font-size-base) + 2px);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .2em;
    text-transform: uppercase;
    white-space: nowrap;
}.ssn-brand small {
    margin-left: 8px;
    padding: 8px 11px;
    border-radius: 10px;
    background: rgba(31,35,41,.055);
    color: var(--ssn-colour-badge);
    font-size: var(--ssn-font-size-label);
    letter-spacing: 0;
    text-transform: none;
    font-weight: var(--ssn-font-weight-normal);
}.ssn-site-icon,
.ssn-fallback-icon {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    object-fit: cover;
    filter: grayscale(1) saturate(0) contrast(.85);
    opacity: .86;
}.ssn-fallback-icon {
    display: grid;
    place-items: center;
    color: #fff;
    background: #626870;
}.ssn-shell .ssn-search {position: absolute;;
left: 50%;;
top: 50%;;
transform: translate(-50%,-50%);;
width: min(430px, 38vw);;
height: 48px;;
border: 1px solid var(--ssn-colour-line);;
border-radius: 24px;;
background: var(--ssn-colour-control-bg);;
background-image: none;;
box-shadow: 0 10px 28px rgba(31,36,44,.055);;
display: flex;;
align-items: center;;
gap: var(--ssn-space-md);;
padding: 0 18px;;
color: var(--ssn-colour-muted);;
font-size: var(--ssn-font-size-base);;
text-align: left;;
cursor: pointer;;
backdrop-filter: blur(24px);;
overflow: hidden;;
flex-wrap: nowrap;;
transition: width var(--ssn-transition-fast), border-radius var(--ssn-transition-fast), box-shadow var(--ssn-transition-fast), background var(--ssn-transition-fast), border-color var(--ssn-transition-fast);;
}.ssn-shell .ssn-search-icon {width: 22px;;
height: 22px;;
color: rgba(79,85,92,.82);;
display: inline-grid;;
place-items: center;;
flex: 0 0 auto;;
}.ssn-shell .ssn-search kbd {margin-left: auto;;
border: 1px solid var(--ssn-colour-line);;
border-radius: 10px;;
background: #f1f2f3;;
padding: 0 10px;;
font-size: var(--ssn-font-size-small);;
color: var(--ssn-colour-muted);;
font-family: inherit;;
flex: 0 0 auto;;
display: inline-flex;;
align-items: center;;
justify-content: center;;
min-width: 50px;;
height: 30px;;
white-space: nowrap;;
line-height: 1;;
}.ssn-top-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--ssn-space-lg);
}.ssn-shell .ssn-icon-button {
    position: relative;
    width: 46px;
    height: 46px;
    border: 0;
    background: transparent;
    background-image: none;
    border-radius: var(--ssn-radius-pill);
    cursor: pointer;
    display: grid;
    place-items: center;
    color: var(--ssn-colour-icon);
    box-shadow: none;
}.ssn-shell .ssn-icon-button em {
    position: absolute;
    top: 1px;
    right: 0;
    display: grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-badge);
    color: #fff;
    font-size: var(--ssn-font-size-label);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
}.ssn-greeting {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    font-weight: 610;
    white-space: nowrap;
}.ssn-main {
    position: relative;
    z-index: 3;
    height: 100vh;
    padding: calc(var(--ssn-topbar-height) + 12px) var(--ssn-page-padding-x) var(--ssn-page-padding-bottom);
    display: grid;
    grid-template-rows: minmax(0, 1fr) 78px;
    gap: var(--ssn-space-lg);
}.ssn-grid {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(300px, var(--ssn-panel-width)) minmax(520px, 1fr) minmax(300px, var(--ssn-panel-width));
    gap: clamp(22px, 3.2vw, 58px);
    align-items: center;
}.ssn-home-mission-control,
.ssn-agenda-card {
    height: 560px;
    display: flex;
    flex-direction: column;
}.ssn-home-mission-control {
    overflow: hidden;
}.ssn-agenda-card {overflow: hidden;;
display: flex;;
flex-direction: column;;
height: 560px;;
}.ssn-agenda-list {min-height: 0;;
overflow-y: auto;;
overscroll-behavior: contain;;
scrollbar-width: thin;;
padding: 6px 0 0;;
flex: 1;;
scrollbar-color: transparent transparent;;
}.ssn-home-mission-control .ssn-view-all,
.ssn-agenda-card .ssn-view-all {
    margin-top: auto;
}.ssn-card {
    background: var(--ssn-colour-surface);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
    backdrop-filter: blur(28px);
}.ssn-card h2 {
    color: var(--ssn-colour-text);
    margin: 0;
    padding: var(--ssn-space-xl) var(--ssn-space-xl) var(--ssn-space-lg);
    font-size: var(--ssn-font-size-small);
    letter-spacing: .22em;
    text-transform: uppercase;
    font-weight: var(--ssn-font-weight-label);
}.ssn-signal-row {
    display: grid;
    grid-template-columns: 42px 1fr 18px;
    align-items: center;
    gap: var(--ssn-space-md);
    min-height: 74px;
    padding: var(--ssn-space-md) var(--ssn-space-lg);
    border-top: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    text-decoration: none;
}.ssn-signal-row:hover,
.ssn-agenda-row:hover,
.ssn-actionbar a:hover {
    background: var(--ssn-colour-control-bg-hover);
}.ssn-signal-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--ssn-radius-row);
    display: grid;
    place-items: center;
    background: transparent;
    color: var(--ssn-colour-icon);
    border: 1px solid var(--ssn-colour-line);
}.ssn-currency-glyph {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    font-size: 21px;
    line-height: 1;
    font-weight: var(--ssn-font-weight-strong);
    color: currentColor;
}.ssn-signal-copy strong {
    display: block;
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-signal-copy small {
    display: block;
    color: var(--ssn-colour-muted);
    margin-top: 4px;
    line-height: 1.3;
    font-size: var(--ssn-font-size-small);
}.ssn-chevron,
.ssn-agenda-row em {
    color: #858c94;
    font-style: normal;
}.ssn-chevron {
    font-size: 26px;
}.ssn-view-all {
    margin: var(--ssn-space-lg) var(--ssn-space-lg) var(--ssn-space-lg);
    height: 56px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--ssn-space-sm);
    color: var(--ssn-colour-text);
    text-decoration: none;
    font-weight: var(--ssn-font-weight-normal);
    background: rgba(255,255,255,.5);
}.ssn-hub {
    min-height: min(50vw, 620px);
    display: grid;
    place-items: center;
}.ssn-orbit {
    position: relative;
    width: min(44vw, 635px);
    min-width: 500px;
    aspect-ratio: 1;
    border-radius: var(--ssn-radius-pill);
    background:
        radial-gradient(circle at center, rgba(255,255,255,.70) 0 25%, rgba(255,255,255,.34) 26% 28%, transparent 29%),
        repeating-radial-gradient(circle at center, transparent 0 118px, rgba(46,51,58,.052) 119px 120px, transparent 121px 224px);
}.ssn-orbit:before {
    content: "";
    position: absolute;
    inset: 16%;
    border: 18px solid rgba(32,36,43,.032);
    border-radius: inherit;
}.ssn-orbit:after {
    content: "";
    position: absolute;
    inset: 3%;
    border: 1px solid rgba(32,36,43,.055);
    border-radius: inherit;
}.ssn-centre-logo {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: 160px;
    height: 160px;
    border-radius: var(--ssn-radius-pill);
    display: grid;
    place-items: center;
    background: linear-gradient(145deg,#ffffff,#eceef1);
    box-shadow: 0 24px 68px rgba(23,29,38,.12), inset 0 1px 0 rgba(255,255,255,.92), inset 0 -1px 0 rgba(20,24,31,.08);
    z-index: 4;
}.ssn-centre-logo img,
.ssn-centre-logo .ssn-fallback-icon {
    width: 78px;
    height: 78px;
    border-radius: 22px;
    background: transparent;
}.ssn-spoke {
    position: absolute;
    z-index: 5;
    width: 112px;
    height: 112px;
    margin: -56px 0 0 -56px;
    display: grid;
    justify-items: center;
    align-content: center;
    gap: var(--ssn-space-sm);
    border-radius: var(--ssn-radius-pill);
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(238,240,242,.86));
    border: 1px solid rgba(20,24,31,.075);
    box-shadow: 0 18px 44px rgba(33,39,50,.105), inset 0 1px 0 rgba(255,255,255,.92);
    color: var(--ssn-colour-text);
    text-decoration: none;
    transition: transform var(--ssn-transition-fast), box-shadow var(--ssn-transition-fast), background var(--ssn-transition-fast);
}.ssn-spoke:hover {
    transform: translateY(-5px) scale(1.025);
    box-shadow: 0 28px 70px rgba(33,39,50,.16), inset 0 1px 0 rgba(255,255,255,.94);
    background: #fff;
}.ssn-spoke strong {
    color: var(--ssn-colour-text);
    font-size: calc(var(--ssn-font-size-base) - 1px);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-spoke-projects { left: 50%; top: 12%; }.ssn-spoke-lms { left: 82%; top: 32%; }.ssn-spoke-reports { left: 82%; top: 68%; }.ssn-spoke-accounts { left: 50%; top: 88%; }.ssn-spoke-bookings { left: 18%; top: 68%; }.ssn-spoke-build, .ssn-spoke-knowledge { left: 18%; top: 32%; }.ssn-agenda-header {display: flex;;
align-items: center;;
justify-content: space-between;;
border-bottom: 1px solid var(--ssn-colour-line);;
}.ssn-agenda-header h2 {
    color: var(--ssn-colour-text);
    padding-right: 0;
}.ssn-shell .ssn-card-menu {
    width: 44px;
    height: 44px;
    margin-right: 12px;
    border: 0;
    background: transparent;
    background-image: none;
    border-radius: var(--ssn-radius-pill);
    display: grid;
    place-items: center;
    cursor: pointer;
}.ssn-shell .ssn-card-menu span,
.ssn-shell .ssn-card-menu span:before,
.ssn-shell .ssn-card-menu span:after {
    display: block;
    width: 4px;
    height: 4px;
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-icon);
    content: "";
}.ssn-shell .ssn-card-menu span:before { transform: translateY(-8px); }.ssn-shell .ssn-card-menu span:after { transform: translateY(4px); }.ssn-smart-primary {
    padding: 32px 24px 26px;
    border-bottom: 1px solid var(--ssn-colour-line);
}.ssn-smart-primary small {
    display: block;
    margin-bottom: 10px;
    font-size: 16px;
    color: var(--ssn-colour-text);
}.ssn-smart-primary strong {
    display: block;
    font-size: clamp(38px, 4vw, 55px);
    letter-spacing: -.05em;
    line-height: 1;
    font-weight: var(--ssn-font-weight-label);
}.ssn-smart-primary span {
    display: block;
    margin-top: 10px;
    color: var(--ssn-colour-muted);
    font-size: calc(var(--ssn-font-size-base) + 2px);
}.ssn-smart-list {
    padding: 14px 20px 0;
}.ssn-agenda-row {display: grid;;
grid-template-columns: 78px 1fr 18px;;
align-items: center;;
gap: var(--ssn-space-md);;
min-height: 74px;;
color: var(--ssn-colour-text);;
text-decoration: none;;
border-bottom: 1px solid var(--ssn-colour-line);;
padding: var(--ssn-space-md) var(--ssn-space-lg);;
border-top: 1px solid var(--ssn-colour-line);;
}.ssn-agenda-row strong {
    font-size: 16px;
}.ssn-agenda-row em {
    font-size: 24px;
}.ssn-panel-link {
    margin-right: 20px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    text-decoration: none;
}.ssn-panel-link:hover {
    color: var(--ssn-colour-text);
}.ssn-agenda-row:first-child {
    border-top: 0;
}.ssn-agenda-time {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .02em;
}.ssn-agenda-copy strong {
    display: block;
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-agenda-copy small {
    display: block;
    color: var(--ssn-colour-muted);
    margin-top: 4px;
    line-height: 1.3;
    font-size: var(--ssn-font-size-small);
}.ssn-actionbar {
    width: min(900px, 78vw);
    min-height: 66px;
    margin: 0 auto;
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: center;
    gap: 0;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 30px;
    background: var(--ssn-colour-control-bg);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(24px);
}.ssn-actionbar a {
    min-height: 44px;
    padding: 0 30px;
    border-left: 1px solid var(--ssn-colour-line);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ssn-space-sm);
    color: var(--ssn-colour-text);
    text-decoration: none;
    font-weight: var(--ssn-font-weight-normal);
    white-space: nowrap;
    min-width: 0;
}.ssn-actionbar a:first-child {
    border-left: 0;
}.ssn-actionbar a:hover {
    border-radius: var(--ssn-radius-control);
}.ssn-shell.ssn-command-open .ssn-search {outline: none;;
z-index: 22;;
width: min(780px, calc(100vw - 80px));;
border-radius: var(--ssn-radius-search-open) var(--ssn-radius-search-open) 0 0;;
border-color: rgba(31,35,41,.15);;
background: rgba(255,255,255,.95);;
box-shadow: 0 24px 70px rgba(31,36,44,.12);;
filter: none;;
border-bottom-color: transparent;;
}.ssn-ui-icon {
    width: 23px;
    height: 23px;
    color: var(--ssn-colour-icon);
    display: inline-grid;
    place-items: center;
}.ssn-spoke .ssn-ui-icon {
    width: 39px;
    height: 39px;
}.ssn-actionbar .ssn-ui-icon {
    width: 30px;
    height: 30px;
    border-radius: var(--ssn-radius-pill);
    color: var(--ssn-colour-icon);
}.ssn-ui-icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.85;
    stroke-linecap: round;
    stroke-linejoin: round;
}.ssn-actionbar .ssn-ui-icon svg,
.ssn-signal-icon svg {
    width: 22px;
    height: 22px;
}
.ssn-signal-icon svg {
    stroke: currentColor;
    fill: none;
    stroke-width: 1.85;
    stroke-linecap: round;
    stroke-linejoin: round;
}@media (max-width: 1240px) {:root {
        --ssn-page-padding-x: 22px;
    }.ssn-brand span {
        display: none;
    }.ssn-shell .ssn-search {
        width: min(460px, 46vw);
    }.ssn-main {
        padding-top: calc(var(--ssn-topbar-height) + 14px);
        display: block;
        overflow: auto;
    }.ssn-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }.ssn-orbit {
        width: min(92vw, 620px);
        min-width: 0;
    }.ssn-agenda-card {
    display: flex;
    flex-direction: column;
    height: 560px;
}.ssn-agenda-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--ssn-colour-line);
}.ssn-panel-link {
    margin-right: 20px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    text-decoration: none;
}.ssn-panel-link:hover {
    color: var(--ssn-colour-text);
}.ssn-agenda-list {
    padding: 6px 0 0;
    flex: 1;
}.ssn-agenda-row {
    display: grid;
    grid-template-columns: 78px 1fr 18px;
    align-items: center;
    gap: var(--ssn-space-md);
    min-height: 74px;
    padding: var(--ssn-space-md) var(--ssn-space-lg);
    border-top: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    text-decoration: none;
}.ssn-agenda-row:first-child {
    border-top: 0;
}.ssn-agenda-time {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .02em;
}.ssn-agenda-copy strong {
    display: block;
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-agenda-copy small {
    display: block;
    color: var(--ssn-colour-muted);
    margin-top: 4px;
    line-height: 1.3;
    font-size: var(--ssn-font-size-small);
}.ssn-actionbar {
        width: 100%;
        overflow-x: auto;
        justify-content: flex-start;
        border-radius: 22px;
        margin-top: 22px;
    }.ssn-settings-grid {
        grid-template-columns: 1fr;
    }.ssn-settings-nav,
    .ssn-settings-centre,
    .ssn-settings-preview {
        height: auto;
    }}.ssn-shell .ssn-search input {width: 100%;;
min-width: 0;;
border: 0;;
outline: 0;;
background: transparent;;
color: var(--ssn-colour-text);;
font-size: var(--ssn-font-size-base);;
flex: 1 1 auto;;
height: 100%;;
font-weight: var(--ssn-font-weight-normal);;
}.ssn-shell .ssn-search input::placeholder {
    color: var(--ssn-colour-muted);
}.ssn-command-clear {
    display: none;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: var(--ssn-radius-pill);
    background: rgba(31,35,41,.055);
    color: var(--ssn-colour-muted);
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
}.ssn-command-panel {position: fixed;;
left: 50%;;
top: calc(var(--ssn-topbar-height) + 16px);;
z-index: 18;;
width: min(780px, calc(100vw - 80px));;
max-height: calc(100vh - var(--ssn-topbar-height) - 100px);;
transform: translateX(-50%) translateY(-8px);;
opacity: 0;;
pointer-events: none;;
transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast);;
}.ssn-command-inner {overflow: hidden;;
border: 1px solid var(--ssn-colour-line);;
border-radius: 0 0 22px 22px;;
background: rgba(255,255,255,.94);;
box-shadow: 0 34px 90px rgba(31,36,44,.16);;
backdrop-filter: blur(32px) saturate(150%);;
}.ssn-shell.ssn-command-open:after {
    content: "";
    position: fixed;
    inset: var(--ssn-topbar-height) 0 0;
    z-index: 12;
    background: rgba(242,244,247,.54);
    backdrop-filter: blur(8px);
    pointer-events: none;
}.ssn-shell.ssn-command-open .ssn-search kbd {display: none;;
}.ssn-shell.ssn-command-open .ssn-command-clear {display: grid;;
place-items: center;;
flex: 0 0 auto;;
}.ssn-shell.ssn-command-open .ssn-command-panel {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}.ssn-shell.ssn-command-open .ssn-main,
.ssn-shell.ssn-command-open .ssn-top-actions,
.ssn-shell.ssn-command-open .ssn-brand {
    filter: blur(1.5px);
}.ssn-command-tabs {display: flex;;
gap: var(--ssn-space-sm);;
padding: var(--ssn-space-md) var(--ssn-space-lg);;
border-bottom: 1px solid var(--ssn-colour-line);;
overflow-x: auto;;
padding-top: var(--ssn-space-sm);;
}.ssn-command-tabs button {min-height: 36px;;
padding: 0 15px;;
border: 1px solid var(--ssn-colour-line);;
border-radius: var(--ssn-radius-pill);;
background: rgba(255,255,255,.74);;
color: var(--ssn-colour-text);;
display: inline-flex;;
align-items: center;;
gap: var(--ssn-space-sm);;
cursor: pointer;;
font-weight: var(--ssn-font-weight-strong);;
font-size: var(--ssn-font-size-small);;
white-space: nowrap;;
}.ssn-command-tabs button.is-active {background: var(--ssn-colour-accent);;
color: #fff;;
border-color: var(--ssn-colour-accent);;
}.ssn-command-tabs span {
    min-width: 26px;
    height: 22px;
    padding: 0 7px;
    border-radius: var(--ssn-radius-pill);
    background: rgba(31,35,41,.07);
    color: inherit;
    display: grid;
    place-items: center;
    font-size: var(--ssn-font-size-label);
}.ssn-command-body {display: block;;
grid-template-columns: minmax(0, 1fr) 250px;;
min-height: 0;;
max-height: calc(100vh - 214px);;
}.ssn-command-results {overflow-y: auto;;
padding: 18px 18px 10px;;
max-height: calc(100vh - 214px);;
scrollbar-width: thin;;
scrollbar-color: rgba(31,35,41,.22) transparent;;
}.ssn-command-side {border-left: 1px solid var(--ssn-colour-line);;
padding: 16px 18px;;
overflow-y: auto;;
background: rgba(249,250,251,.58);;
display: none;;
}.ssn-command-side h3,
.ssn-command-group h3 {
    margin: 0;
    color: var(--ssn-colour-text-soft);
    font-size: var(--ssn-font-size-label);
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: var(--ssn-font-weight-label);
}.ssn-command-side h3:not(:first-child) {
    margin-top: 22px;
}.ssn-command-side a {
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: var(--ssn-space-sm);
    color: var(--ssn-colour-text);
    text-decoration: none;
    font-weight: 640;
    border-radius: var(--ssn-radius-row);
    padding: 7px 8px;
}.ssn-command-side a:hover {
    background: var(--ssn-colour-control-bg-hover);
}.ssn-command-side a span {
    width: 22px;
    height: 22px;
    color: var(--ssn-colour-icon);
}.ssn-command-side svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
}.ssn-command-group {margin-bottom: 20px;;
}.ssn-command-group > div:first-child {display: flex;;
justify-content: space-between;;
align-items: center;;
margin-bottom: var(--ssn-space-sm);;
margin: 0 0 9px;;
padding: 0 2px;;
}.ssn-command-group > div:first-child a {color: var(--ssn-colour-muted);;
text-decoration: none;;
font-size: var(--ssn-font-size-small);;
font-weight: var(--ssn-font-weight-normal);;
opacity: 0;;
pointer-events: none;;
transition: opacity var(--ssn-transition-fast);;
}.ssn-command-result {min-height: 58px;;
display: grid;;
grid-template-columns: 34px minmax(0, 1fr) auto 16px;;
align-items: center;;
gap: var(--ssn-space-md);;
padding: 10px 4px;;
border: 1px solid var(--ssn-colour-line);;
border-bottom: 0;;
background: transparent;;
color: var(--ssn-colour-text);;
text-decoration: none;;
border-left: 0;;
border-right: 0;;
border-radius: 0;;
}.ssn-command-result:first-of-type {border-radius: 14px 14px 0 0;;
border-top: 1px solid var(--ssn-colour-line);;
}.ssn-command-result:last-child {
    border-bottom: 1px solid var(--ssn-colour-line);
    border-radius: 0 0 14px 14px;
}.ssn-command-result:hover,
.ssn-command-result.is-active {background: rgba(17,19,24,.035);;
}.ssn-command-result-icon {width: 28px;;
height: 28px;;
border: 1px solid var(--ssn-colour-line);;
border-radius: 9px;;
display: grid;;
place-items: center;;
color: var(--ssn-colour-icon);;
font-size: var(--ssn-font-size-label);;
font-weight: var(--ssn-font-weight-strong);;
background: rgba(17,19,24,.035);;
border-color: rgba(31,35,41,.08);;
}.ssn-command-result-copy strong {display: block;;
color: var(--ssn-colour-text);;
font-size: var(--ssn-font-size-base);;
font-weight: var(--ssn-font-weight-strong);;
overflow: hidden;;
text-overflow: ellipsis;;
white-space: nowrap;;
}.ssn-command-result-copy small {display: block;;
margin-top: 3px;;
color: var(--ssn-colour-muted);;
font-size: var(--ssn-font-size-small);;
line-height: 1.25;;
overflow: hidden;;
text-overflow: ellipsis;;
white-space: nowrap;;
}.ssn-command-result em {max-width: 118px;;
padding: 5px 9px;;
border-radius: 999px;;
background: transparent;;
color: var(--ssn-colour-muted);;
font-size: var(--ssn-font-size-label);;
font-style: normal;;
font-weight: var(--ssn-font-weight-normal);;
text-transform: capitalize;;
white-space: nowrap;;
overflow: hidden;;
text-overflow: ellipsis;;
padding-right: 0;;
}.ssn-command-result b {
    color: var(--ssn-colour-muted);
    font-size: 24px;
    font-weight: 400;
}.ssn-command-empty {
    min-height: 220px;
    display: grid;
    place-content: center;
    text-align: center;
    color: var(--ssn-colour-muted);
}.ssn-command-empty strong {
    display: block;
    margin-bottom: 8px;
    color: var(--ssn-colour-text);
}.ssn-command-footer {min-height: 46px;;
padding: 0 18px;;
border-top: 1px solid var(--ssn-colour-line);;
display: flex;;
align-items: center;;
gap: 22px;;
color: var(--ssn-colour-muted);;
font-size: var(--ssn-font-size-label);;
font-weight: 620;;
position: relative;;
.ssn-command-account-project {
    appearance: none;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface);
    color: var(--ssn-colour-text);
    border-radius: 999px;
    min-height: 30px;
    padding: 0 12px;
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    cursor: pointer;
    white-space: nowrap;
    margin-left: auto;
}.ssn-command-account-project:hover,
.ssn-command-account-project:focus-visible {
    border-color: var(--ssn-colour-text);
    outline: none;
}.ssn-command-account-project[hidden] {
    display: none;
}.ssn-command-account-project + .ssn-command-scope {
    margin-left: 0;
}
}.ssn-command-footer a {
    margin-left: auto;
    color: var(--ssn-colour-text);
    text-decoration: none;
}@media (max-width: 900px) {.ssn-shell.ssn-command-open .ssn-search,
    .ssn-command-panel {width: calc(100vw - 28px);;
}.ssn-command-body {
        grid-template-columns: 1fr;
    }.ssn-command-side {
        display: none;
    }.ssn-command-footer {
        gap: var(--ssn-space-sm);
        flex-wrap: wrap;
        padding: 8px 14px;
    }.ssn-command-scope {
        width: 100%;
        margin-left: 0;
    }}.ssn-command-group h3 {
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .14em;
}.ssn-command-result-copy {
    min-width: 0;
}.ssn-command-actions {
    padding-bottom: var(--ssn-space-xs);
}.ssn-command-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ssn-space-sm);
}.ssn-command-action-row a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 0 15px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: rgba(255,255,255,.72);
    color: var(--ssn-colour-text);
    text-decoration: none;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-command-action-row a:hover {
    background: var(--ssn-colour-control-bg-hover);
}.ssn-command-action-row span {
    font-size: 18px;
    line-height: 1;
    color: var(--ssn-colour-icon);
}.ssn-command-clear,
.ssn-shell.ssn-command-open .ssn-command-clear {
    width: var(--ssn-control-icon-size);
    height: var(--ssn-control-icon-size);
    min-width: var(--ssn-control-icon-size);
    padding: 0;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    place-items: center;
    font-size: 20px;
    line-height: 1;
    text-align: center;
    appearance: none;
}.ssn-command-clear:hover,
.ssn-command-clear:focus {
    background: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}.ssn-command-scope-tabs {
    display: flex;
    gap: var(--ssn-space-sm);
    padding: var(--ssn-space-md) var(--ssn-space-lg) 0;
    border-bottom: 0;
    overflow-x: auto;
}.ssn-command-scope-tabs button {
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    font-family: var(--ssn-font-family);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    white-space: nowrap;
    cursor: pointer;
}.ssn-command-scope-tabs button.is-active {
    background: var(--ssn-colour-accent);
    border-color: var(--ssn-colour-accent);
    color: #fff;
}.ssn-command-result[data-scope="renewal"] em,
.ssn-command-result-icon[data-type="renewal"] {
    color: var(--ssn-colour-text);
}.ssn-search-icon svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.85;
    stroke-linecap: round;
    stroke-linejoin: round;
}.ssn-command-scope-tabs,
.ssn-command-tabs {
    display: none;
}.ssn-command-group:hover > div:first-child a,
.ssn-command-group:focus-within > div:first-child a {
    opacity: 1;
    pointer-events: auto;
}.ssn-command-scope {
    margin-left: auto;
    position: relative;
}.ssn-command-scope-trigger {min-height: 32px;;
border: 1px solid transparent;;
border-radius: var(--ssn-radius-pill);;
background: var(--ssn-colour-control-bg);;
color: var(--ssn-colour-control-text);;
padding: 0 10px;;
display: inline-flex;;
align-items: center;;
gap: 5px;;
cursor: pointer;;
font-size: var(--ssn-font-size-label);;
font-weight: var(--ssn-font-weight-normal);;
border-color: var(--ssn-colour-control-border);;
box-shadow: none;;
}.ssn-command-scope-trigger strong,
.ssn-command-scope-trigger b {color: var(--ssn-colour-control-text);;
font-weight: var(--ssn-font-weight-strong);;
}.ssn-command-scope-trigger:hover,
.ssn-shell.ssn-scope-open .ssn-command-scope-trigger {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
}.ssn-command-scope-menu {
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    width: 176px;
    padding: 7px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: rgba(255,255,255,.96);
    box-shadow: var(--ssn-shadow-soft);
    backdrop-filter: blur(22px) saturate(145%);
    display: none;
    z-index: 30;
}.ssn-shell.ssn-scope-open .ssn-command-scope-menu {
    display: block;
}.ssn-command-scope-menu button {
    width: 100%;
    min-height: 34px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--ssn-colour-text);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 10px;
    cursor: pointer;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
    text-align: left;
}.ssn-command-scope-menu button:hover,
.ssn-command-scope-menu button.is-active {
    background: var(--ssn-colour-control-bg-hover);
}.ssn-agenda-card:hover .ssn-agenda-list,
.ssn-agenda-card:focus-within .ssn-agenda-list {
    scrollbar-color: rgba(31,35,41,.24) transparent;
}.ssn-agenda-list::-webkit-scrollbar {
    width: 8px;
}.ssn-agenda-list::-webkit-scrollbar-track {
    background: transparent;
}.ssn-agenda-list::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 999px;
}.ssn-agenda-card:hover .ssn-agenda-list::-webkit-scrollbar-thumb,
.ssn-agenda-card:focus-within .ssn-agenda-list::-webkit-scrollbar-thumb {
    background: rgba(31,35,41,.24);
}.ssn-command-scope-trigger:hover,
.ssn-command-scope-trigger:focus,
.ssn-shell.ssn-scope-open .ssn-command-scope-trigger {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-control-border);
    color: var(--ssn-colour-control-text);
    outline: none;
}.ssn-command-scope-menu button.is-active {
    background: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-control-text);
}.ssn-command-scope-menu button:hover,
.ssn-command-scope-menu button:focus {
    background: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-control-text);
    outline: none;
}.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger,
.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger:hover,
.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger:focus,
.ssn-shell.ssn-scope-open [data-ssn-filter] .ssn-command-scope-trigger {
    background-color: var(--ssn-colour-control-bg);
    background-image: none;
    border-color: var(--ssn-colour-control-border);
    color: var(--ssn-colour-control-text);
    box-shadow: none;
}.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger:hover,
.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger:focus,
.ssn-shell.ssn-scope-open [data-ssn-filter] .ssn-command-scope-trigger {
    background-color: var(--ssn-colour-control-bg-hover);
}.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger strong,
.ssn-shell [data-ssn-filter] .ssn-command-scope-trigger b {
    color: var(--ssn-colour-control-text);
}.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button,
.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button.is-active,
.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button:hover,
.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button:focus {
    background-image: none;
    box-shadow: none;
}.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button.is-active,
.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button:hover,
.ssn-shell [data-ssn-filter] .ssn-command-scope-menu button:focus {
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-control-text);
}.ssn-entry-shell {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 28px;
    color: var(--ssn-colour-text);
    background:
        radial-gradient(circle at 50% 38%, rgba(255,255,255,.98) 0 22%, rgba(246,248,250,.96) 48%, #eef1f4 100%),
        linear-gradient(180deg, #fbfbfb, var(--ssn-colour-background));
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}.ssn-entry-card {
    width: min(440px, 94vw);
    padding: 38px 34px 30px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: rgba(255,255,255,.84);
    box-shadow: 0 18px 52px rgba(31,36,44,.075);
    backdrop-filter: blur(22px);
}.ssn-entry-brand,
.ssn-entry-copy,
.ssn-entry-foot {
    text-align: center;
}.ssn-entry-brand {
    display: grid;
    place-items: center;
    gap: 12px;
    margin-bottom: 26px;
    text-transform: uppercase;
    letter-spacing: .36em;
}.ssn-entry-brand strong {
    font-size: calc(var(--ssn-font-size-base) + 2px);
}.ssn-entry-icon-wrap {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin-bottom: 2px;
    border-radius: var(--ssn-radius-control);
    background: rgba(17,19,24,.045);
}.ssn-entry-site-icon {display: block;;
width: 42px;;
height: 42px;;
object-fit: contain;;
border-radius: var(--ssn-radius-row);;
filter: grayscale(1) saturate(0) contrast(.85);;
opacity: .86;;
}.ssn-entry-mark {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: var(--ssn-radius-row);
    background: rgba(17,19,24,.07);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: 0;
}.ssn-entry-copy h1 {
    margin: 0 0 8px;
    font-size: 30px;
    letter-spacing: -.04em;
}.ssn-entry-copy p {
    margin: 0 0 26px;
    color: var(--ssn-colour-muted);
}.ssn-entry-form {
    display: grid;
    gap: var(--ssn-space-md);
}.ssn-entry-form label {
    display: grid;
    gap: 7px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .11em;
    text-transform: uppercase;
}.ssn-entry-form input {
    width: 100%;
    height: 48px;
    padding: 0 15px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg-strong);
    color: var(--ssn-colour-text);
    font: inherit;
    outline: none;
}.ssn-entry-form input:focus {
    border-color: rgba(17,19,24,.26);
    box-shadow: 0 0 0 4px rgba(17,19,24,.045);
}.ssn-entry-form button,
.ssn-lock-card button {
    height: 48px;
    border: 1px solid rgba(17,19,24,.88);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-text);
    color: #fff;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
    transition: transform var(--ssn-transition-fast), box-shadow var(--ssn-transition-fast), background-color var(--ssn-transition-fast), border-color var(--ssn-transition-fast);
}.ssn-entry-form button:hover,
.ssn-lock-card button:hover {
    background: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    box-shadow: 0 8px 20px rgba(17,19,24,.12);
    transform: translateY(-1px);
}.ssn-entry-form button:active,
.ssn-lock-card button:active {
    background: rgba(17,19,24,.86);
    border-color: rgba(17,19,24,.86);
    box-shadow: none;
    transform: translateY(0);
}.ssn-entry-form button:focus-visible,
.ssn-lock-card button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(17,19,24,.09);
}.ssn-entry-version {
    display: block;
    margin: -2px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
    text-align: center;
}.ssn-entry-shell.is-loading .ssn-entry-form button {
    opacity: .72;
    cursor: wait;
}.ssn-entry-error {
    min-height: 18px;
    margin: 0;
    color: #8a1f1f;
    font-size: var(--ssn-font-size-small);
    text-align: center;
}.ssn-entry-foot {
    margin-top: 20px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}.ssn-launch,
.ssn-lock {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 45%, rgba(255,255,255,.98), rgba(244,246,248,.96) 58%, #eef0f2 100%);
    transition: opacity var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}.ssn-launch[aria-hidden="true"],
.ssn-lock[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell[data-ssn-version] .ssn-launch[aria-hidden="true"] {
    display: none;
}
.ssn-shell.ssn-is-launching .ssn-launch[aria-hidden="false"] {
    display: grid;
}
.ssn-launch-inner,
.ssn-lock-card {
    width: min(440px, 92vw);
    padding: 34px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-surface-strong);
    box-shadow: var(--ssn-shadow-panel);
    text-align: center;
    backdrop-filter: blur(24px);
}.ssn-launch-logo,
.ssn-lock-logo {
    display: inline-grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin-bottom: 16px;
    border-radius: 22px;
    background: rgba(17,19,24,.055);
}.ssn-launch-logo img,
.ssn-lock-logo img {
    width: 46px;
    height: 46px;
    object-fit: contain;
}.ssn-launch h2,
.ssn-lock h2 {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .42em;
    font-size: 18px;
}.ssn-launch small {
    display: inline-block;
    margin: 14px 0 24px;
    padding: 5px 10px;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.055);
    color: var(--ssn-colour-muted);
}.ssn-launch strong {
    display: block;
    margin-bottom: 6px;
    font-size: 22px;
    letter-spacing: -.03em;
}.ssn-launch p,
.ssn-lock p {
    margin: 0 0 22px;
    color: var(--ssn-colour-muted);
}.ssn-launch-steps {
    display: grid;
    gap: 9px;
    margin: 0 auto 24px;
    max-width: 290px;
    color: var(--ssn-colour-muted);
    text-align: left;
}.ssn-launch-steps span:before {
    content: "○";
    margin-right: 10px;
}.ssn-launch-steps .is-done:before {
    content: "✓";
}.ssn-launch-bar {
    height: 7px;
    overflow: hidden;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.08);
}.ssn-launch-bar i {
    display: block;
    width: 42%;
    height: 100%;
    border-radius: inherit;
    background: rgba(17,19,24,.68);
    transition: width .8s ease;
}.ssn-launch.is-ready .ssn-launch-bar i {
    width: 100%;
}.ssn-launch em {
    display: block;
    margin-top: 18px;
    color: var(--ssn-colour-muted);
    font-style: normal;
}.ssn-lock {
    background: rgba(244,246,248,.88);
    backdrop-filter: blur(22px);
}.ssn-shell.ssn-locked .ssn-main,
.ssn-shell.ssn-locked .ssn-topbar,
.ssn-shell.ssn-locked .ssn-command-panel {
    filter: blur(14px);
    pointer-events: none;
}.ssn-lock-card form {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}.ssn-lock-card label {
    display: grid;
    gap: 7px;
    text-align: left;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .11em;
    text-transform: uppercase;
}.ssn-lock-card input {
    height: 48px;
    padding: 0 15px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg-strong);
    color: var(--ssn-colour-text);
    font: inherit;
}.ssn-lock-card small {
    min-height: 18px;
    color: #8a1f1f;
}.ssn-lock-card a {
    display: inline-block;
    margin-top: 15px;
    color: var(--ssn-colour-muted);
    text-decoration: none;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-update-notice {
    position: fixed;
    top: calc(var(--ssn-topbar-height) + 14px);
    right: var(--ssn-page-padding-x);
    z-index: 32;
    display: none;
    align-items: center;
    gap: 12px;
    max-width: min(430px, calc(100vw - 48px));
    padding: 12px 12px 12px 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 20px;
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-text);
    box-shadow: var(--ssn-shadow-soft);
    backdrop-filter: blur(22px) saturate(135%);
}.ssn-update-notice.is-visible {
    display: flex;
}.ssn-update-notice div {
    display: grid;
    gap: 2px;
    min-width: 0;
}.ssn-update-notice strong {
    font-size: calc(var(--ssn-font-size-base) - 1px);
    line-height: 1.2;
}.ssn-update-notice small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    line-height: 1.25;
}.ssn-update-notice button {
    min-height: 36px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-control-text);
    cursor: pointer;
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: 750;
    box-shadow: none;
    transition: background-color var(--ssn-transition-fast), transform var(--ssn-transition-fast), border-color var(--ssn-transition-fast);
}.ssn-update-notice button:hover,
.ssn-update-notice button:focus {
    background: var(--ssn-colour-control-bg-hover);
    border-color: rgba(17,19,24,.18);
    transform: translateY(-1px);
}.ssn-update-notice [data-ssn-update-action] {
    padding: 0 15px;
}.ssn-update-dismiss {
    width: 36px;
    padding: 0;
    color: var(--ssn-colour-muted);
}.ssn-settings-grid {
    display: none;
    height: 100%;
    grid-template-columns: minmax(300px, var(--ssn-panel-width)) minmax(520px, 1fr) minmax(300px, var(--ssn-panel-width));
    gap: clamp(22px, 3.2vw, 38px);
    align-items: stretch;
}.ssn-shell.ssn-settings-open [data-ssn-home-grid] {
    display: none;
}.ssn-shell.ssn-settings-open .ssn-settings-grid {
    display: grid;
}.ssn-settings-nav,
.ssn-settings-centre,
.ssn-settings-preview {
    height: min(650px, calc(100vh - var(--ssn-topbar-height) - 116px));
}.ssn-settings-nav {
    padding: 0 16px 18px;
    display: flex;
    flex-direction: column;
}.ssn-settings-nav h2,
.ssn-settings-preview h2 {
    padding-left: 10px;
    padding-right: 10px;
}.ssn-settings-nav button {
    width: 100%;
    min-height: 74px;
    margin-bottom: 8px;
    padding: 12px 14px;
    border: 1px solid transparent;
    border-radius: var(--ssn-radius-control);
    background: transparent;
    color: var(--ssn-colour-text);
    cursor: pointer;
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 10px 14px;
    text-align: left;
    align-items: center;
    box-shadow: none;
}.ssn-settings-nav button:hover,
.ssn-settings-nav button.is-active {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
}.ssn-settings-nav button:hover strong,
.ssn-settings-nav button.is-active strong {
    color: var(--ssn-colour-text);
}.ssn-settings-nav button:hover small,
.ssn-settings-nav button.is-active small {
    color: var(--ssn-colour-muted);
}.ssn-settings-nav button:hover .ssn-ui-icon,
.ssn-settings-nav button.is-active .ssn-ui-icon {
    color: var(--ssn-colour-icon);
}.ssn-settings-nav button .ssn-ui-icon {
    grid-row: span 2;
    width: 30px;
    height: 30px;
}.ssn-settings-nav button strong {
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-settings-nav button small,
.ssn-settings-admin-note,
.ssn-settings-title p,
.ssn-setting-row small,
.ssn-setting-readonly small,
.ssn-preview-note small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}.ssn-settings-admin-note {
    margin-top: auto;
    padding: 16px 12px 0;
    border-top: 1px solid var(--ssn-colour-line);
}.ssn-settings-centre {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}.ssn-settings-title {
    min-height: 114px;
    padding: calc(var(--ssn-space-xl) + 4px) 30px var(--ssn-space-xl);
    border-bottom: 1px solid var(--ssn-colour-line);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ssn-space-lg);
}.ssn-settings-title h1 {
    margin: 0 0 8px;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .32em;
    line-height: 1.2;
    text-transform: uppercase;
}.ssn-settings-title p {
    margin: 0;
}.ssn-settings-title button {
    width: 38px;
    height: 38px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-control-text);
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}.ssn-settings-title button:hover,
.ssn-settings-title button:focus {
    background: var(--ssn-colour-control-bg-hover);
    outline: none;
}.ssn-settings-panel {
    display: none;
    overflow-y: auto;
    padding: var(--ssn-space-xl) 30px 30px;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}.ssn-settings-centre:hover .ssn-settings-panel,
.ssn-settings-centre:focus-within .ssn-settings-panel {
    scrollbar-color: rgba(31,35,41,.24) transparent;
}.ssn-settings-panel.is-active {
    display: block;
}.ssn-setting-row,
.ssn-setting-readonly {
    display: grid;
    gap: var(--ssn-space-md);
    padding: var(--ssn-space-xl) 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}.ssn-setting-row > span,
.ssn-setting-readonly {
    color: var(--ssn-colour-text);
}.ssn-setting-row strong,
.ssn-setting-readonly strong,
.ssn-preview-card strong,
.ssn-preview-note strong {
    display: block;
    margin-bottom: 4px;
    font-weight: var(--ssn-font-weight-strong);
}.ssn-setting-row output {
    justify-self: end;
    min-width: 48px;
    padding: 6px 10px;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.055);
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    text-align: center;
}.ssn-setting-row input[type="range"] {
    width: 100%;
    accent-color: var(--ssn-colour-text);
}.ssn-segment {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    overflow: hidden;
    background: var(--ssn-colour-control-bg);
}.ssn-segment.ssn-segment-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}.ssn-segment.ssn-segment-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}.ssn-segment button {
    min-height: 46px;
    border: 0;
    border-left: 1px solid var(--ssn-colour-line);
    background: transparent;
    color: var(--ssn-colour-text);
    cursor: pointer;
    font-weight: var(--ssn-font-weight-normal);
}.ssn-segment button:first-child {
    border-left: 0;
}.ssn-segment button:hover,
.ssn-segment button.is-active {
    background: var(--ssn-colour-control-bg-hover);
}.ssn-settings-preview {
    padding: 0 22px 22px;
    display: flex;
    flex-direction: column;
    gap: var(--ssn-space-lg);
}.ssn-preview-card,
.ssn-preview-note {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: rgba(255,255,255,.58);
    padding: var(--ssn-space-xl);
}.ssn-preview-card small,
.ssn-preview-card span,
.ssn-preview-card em {
    display: block;
    color: var(--ssn-colour-muted);
    font-style: normal;
}.ssn-preview-card strong {
    font-size: var(--ssn-font-size-title);
}.ssn-preview-card em {
    margin-top: 14px;
    width: max-content;
    padding: 5px 9px;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.055);
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
}.ssn-preview-card div {
    height: 8px;
    margin-top: 16px;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.08);
    overflow: hidden;
}.ssn-preview-card i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--ssn-colour-text);
}.ssn-shell .ssn-settings-preview .ssn-settings-reset {
    margin-top: auto;
    min-height: 48px;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    cursor: pointer;
    font-weight: var(--ssn-font-weight-strong);
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    transition: background-color var(--ssn-transition-fast), border-color var(--ssn-transition-fast), transform var(--ssn-transition-fast);
}.ssn-shell .ssn-settings-preview .ssn-settings-reset:hover,
.ssn-shell .ssn-settings-preview .ssn-settings-reset:focus {
    background: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-button-secondary-text);
    outline: none;
    box-shadow: none;
    transform: translateY(-1px);
}.ssn-shell .ssn-settings-preview .ssn-settings-reset:active {
    background: var(--ssn-colour-button-secondary-bg-active);
    color: var(--ssn-colour-button-secondary-text);
    transform: translateY(0);
}.ssn-shell.ssn-reduced-motion,
.ssn-shell.ssn-reduced-motion * {
    transition-duration: .01ms;
    animation-duration: .01ms;
}
/* v1.03.12 Projects Workspace */
.ssn-projects-grid {
    position: absolute;
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 124px;
    display: grid;
    grid-template-columns: minmax(260px, 322px) minmax(520px, 1fr) minmax(300px, 366px);
    gap: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell.ssn-projects-open [data-ssn-home-grid],
.ssn-shell.ssn-projects-open [data-ssn-settings-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-projects-open .ssn-projects-grid {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-project-nav,
.ssn-project-centre,
.ssn-project-overview {
    min-height: 0;
    overflow: hidden;
}
.ssn-project-nav {
    padding: var(--ssn-project-pane-pad-top, 28px) 24px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ssn-project-pane-heading,
.ssn-project-nav h2,
.ssn-project-nav h3,
.ssn-project-overview-head h2 {
    margin: 0;
    padding: 0;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: .26em;
    font-size: var(--ssn-font-size-label);
    line-height: 1.2;
    font-weight: var(--ssn-font-weight-label);
    color: var(--ssn-colour-text);
}
.ssn-project-nav h2 {
    padding: 0;
    margin-bottom: 14px;
}
.ssn-project-nav h3 {
    margin: 14px 0 6px;
    color: var(--ssn-colour-text);
}
.ssn-project-nav h2 + h3 {
    margin-top: 0;
}
.ssn-project-nav button {
    width: 100%;
    min-height: 48px;
    border: 1px solid transparent;
    border-radius: var(--ssn-radius-row);
    background: transparent;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    cursor: pointer;
    text-align: left;
    transition: background-color var(--ssn-transition-fast), border-color var(--ssn-transition-fast), transform var(--ssn-transition-fast);
}
.ssn-project-nav button:hover,
.ssn-project-nav button:focus,
.ssn-project-nav button.is-active {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    outline: none;
}
.ssn-project-nav button.is-active {
    box-shadow: inset 3px 0 0 var(--ssn-colour-text);
}
.ssn-project-nav button .ssn-ui-icon {
    width: 23px;
    height: 23px;
    color: var(--ssn-colour-icon);
}
.ssn-project-nav button strong,
.ssn-project-nav button small {
    display: block;
}
.ssn-project-nav button strong {
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-nav button small {
    margin-top: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-nav button em {
    min-width: 30px;
    padding: 4px 8px;
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-accent-soft);
    color: var(--ssn-colour-text);
    font-style: normal;
    text-align: center;
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-live {
    margin-top: auto;
    padding: 10px 10px 0;
    border-top: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-live span {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 8px;
    border-radius: 50%;
    background: var(--ssn-colour-text);
    opacity: .42;
}
.ssn-project-centre {
    padding: 0;
    display: flex;
    flex-direction: column;
}
.ssn-project-titlebar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: var(--ssn-project-pane-pad-top, 28px) 24px 16px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-project-titlebar > div:first-child {
    display: grid;
    gap: 6px;
}
.ssn-project-titlebar h1 {
    margin: 0;
    padding: 0;
    max-width: 100%;
    color: var(--ssn-colour-text);
    font-size: clamp(20px, 2.2vw, 28px);
    line-height: 1.08;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: -0.02em;
    text-transform: none;
    overflow-wrap: anywhere;
}
.ssn-project-titlebar p {
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-titlebar > div:last-child {
    display: flex;
    align-items: center;
    gap: 10px;
}
.ssn-project-action,
.ssn-project-titlebar button {
    min-height: 46px;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 20px;
    text-decoration: none;
    font-weight: var(--ssn-font-weight-strong);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-project-titlebar button {
    width: 46px;
    padding: 0;
    cursor: pointer;
}
.ssn-project-titlebar button svg {
    width: 20px;
    height: 20px;
}
.ssn-project-kpis {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    padding: 18px 24px 16px;
}
.ssn-project-kpis div {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.58);
    min-height: 86px;
    padding: 14px;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr;
    align-items: end;
}
.ssn-project-kpis small {
    grid-column: 1 / -1;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-kpis strong {
    font-size: 25px;
    line-height: 1;
}
.ssn-project-kpis svg {
    width: 22px;
    height: 22px;
    color: var(--ssn-colour-icon);
}
.ssn-project-tools {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    padding: 0 24px 16px;
}
.ssn-project-focus-strip {
    grid-column: 1 / -1;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.ssn-project-focus-strip button {
    border: 1px solid transparent;
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg-hover);
    min-height: 38px;
    padding: 0 16px;
    cursor: pointer;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-focus-strip button.is-active {
    background: var(--ssn-colour-text);
    color: var(--ssn-colour-surface-strong);
}
.ssn-project-search {
    min-height: 42px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
}
.ssn-project-search svg {
    width: 18px;
    height: 18px;
    color: var(--ssn-colour-muted);
}
.ssn-project-search input {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ssn-colour-text);
}
.ssn-project-tools select {
    min-height: 42px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 14px;
}
.ssn-project-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding: 0 24px var(--ssn-actionbar-safe-space, 92px);
    scrollbar-width: none;
}
.ssn-project-list:hover,
.ssn-project-list:focus-within {
    scrollbar-width: thin;
}
.ssn-project-row {
    min-height: 96px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.62);
    margin-bottom: 12px;
    padding: 12px 16px;
    display: grid;
    grid-template-columns: 54px minmax(190px, 1fr) minmax(110px, .55fr) minmax(100px, .45fr) minmax(110px, .45fr) 18px;
    gap: 14px;
    align-items: center;
    text-decoration: none;
    color: var(--ssn-colour-text);
    transition: background-color var(--ssn-transition-fast), transform var(--ssn-transition-fast), border-color var(--ssn-transition-fast);
}
.ssn-project-row:hover,
.ssn-project-row:focus,
.ssn-project-row.is-active {
    background: rgba(255,255,255,.88);
    border-color: rgba(17,19,24,.18);
    outline: none;
    transform: translateY(-1px);
}
.ssn-project-row.is-hidden {
    display: none;
}
.ssn-project-row-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--ssn-radius-row);
    display: grid;
    place-items: center;
    background: var(--ssn-colour-accent-soft);
    color: var(--ssn-colour-icon);
}
.ssn-project-row-icon svg {
    width: 27px;
    height: 27px;
}
.ssn-project-row strong,
.ssn-project-row small,
.ssn-project-row em {
    display: block;
}
.ssn-project-row small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-row em {
    width: max-content;
    padding: 5px 9px;
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-accent-soft);
    color: var(--ssn-colour-text);
    font-style: normal;
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-list-footer {
    padding: 0 24px 20px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-overview {
    position: relative;
    padding: var(--ssn-project-pane-pad-top, 28px) 24px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ssn-project-overview-head {
    display: flex;
    align-items: flex-start;
    min-height: auto;
    padding: 0 44px 0 0;
}
.ssn-project-overview-head button {
    position: absolute;
    top: calc(var(--ssn-project-pane-pad-top, 28px) - 4px);
    right: 20px;
    width: 38px;
    height: 38px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    cursor: pointer;
}
.ssn-project-selected {
    display: grid;
    gap: 7px;
    padding-top: 4px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-project-selected small,
.ssn-project-next-action small {
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-selected strong {
    font-size: 20px;
    line-height: 1.12;
}
.ssn-project-selected span {
    color: var(--ssn-colour-muted);
}
.ssn-project-account-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.ssn-project-account-line code {
    font-family: inherit;
    color: var(--ssn-colour-muted);
    background: var(--ssn-colour-surface-soft);
    border: 1px solid var(--ssn-colour-line-soft);
    border-radius: var(--ssn-radius-pill);
    padding: 4px 8px;
    font-size: var(--ssn-font-size-small);
    white-space: nowrap;
}
.ssn-project-selected em {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-style: normal;
}
.ssn-project-selected b,
.ssn-project-selected i {
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-surface-soft);
    padding: 5px 9px;
    font-style: normal;
    font-size: var(--ssn-font-size-small);
}
.ssn-project-selected i {
    color: var(--ssn-colour-muted);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-next-action {
    display: grid;
    gap: 10px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-project-next-action strong {
    line-height: 1.28;
}
.ssn-project-next-action button,
.ssn-project-actions a,
.ssn-project-actions button {
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    border-radius: var(--ssn-radius-control);
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    text-decoration: none;
    cursor: pointer;
}
.ssn-project-next-action button:hover,
.ssn-project-next-action button:focus,
.ssn-project-actions button:hover,
.ssn-project-actions button:focus {
    background: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-button-secondary-text);
    outline: none;
}
.ssn-project-actions a:hover,
.ssn-project-actions a:focus {
    background: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
    border-color: var(--ssn-colour-button-secondary-border);
    outline: none;
}
.ssn-project-actions {
    margin-top: auto;
    display: grid;
    gap: 10px;
}
.ssn-project-actions a {
    background: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-project-facts {
    margin: 0;
    display: grid;
    gap: 10px;
}
.ssn-project-facts div {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 12px;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-project-facts dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-facts dd {
    margin: 0;
    text-align: right;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-recent {
    margin-top: 8px;
    color: var(--ssn-colour-muted);
}
.ssn-project-recent h3 {
    margin: 0 0 8px;
    color: var(--ssn-colour-text);
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: var(--ssn-font-size-label);
}
.ssn-empty-state {
    margin-top: 40px;
    text-align: center;
    color: var(--ssn-colour-muted);
}
.ssn-empty-state strong,
.ssn-empty-state small {
    display: block;
}

.ssn-build-plan-shell {
    display: grid;
    gap: 18px;
}
.ssn-workspace-tabs {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: -4px 0 2px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-workspace-tabs button {
    min-height: 42px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    background-color: transparent;
    background-image: none;
    color: var(--ssn-colour-muted);
    padding: 0;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-workspace-tabs button.is-active {
    color: var(--ssn-colour-text);
    border-bottom-color: var(--ssn-colour-text);
}
.ssn-build-plan-note {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-muted);
}
.ssn-build-plan-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-md);
}
.ssn-build-plan-head h2 {
    margin: 0;
    font-size: var(--ssn-font-size-title);
}
.ssn-build-plan-actions {
    display: flex;
    gap: 10px;
}
.ssn-build-plan-actions button {
    min-height: 38px;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    padding: 0 14px;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-build-plan-actions button:last-child {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-build-plan-list {
    display: grid;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-build-plan-row {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 140px 120px 80px 24px;
    gap: 16px;
    align-items: center;
    min-height: 72px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-build-plan-row:first-child {
    min-height: 40px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
}
.ssn-build-plan-row strong { display: block; }
.ssn-build-plan-row small { color: var(--ssn-colour-muted); }
.ssn-build-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ssn-colour-muted);
}
.ssn-build-status::before {
    content: '';
    width: 12px;
    height: 12px;
    border-radius: 999px;
    border: 2px solid var(--ssn-journey-dot-border);
    background: var(--ssn-colour-surface);
}
.ssn-build-status.is-done::before,
.ssn-build-status.is-active::before {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
}
.ssn-build-owner {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}

@media (max-width: 1100px) {
    .ssn-projects-grid { grid-template-columns: 1fr; overflow: auto; }
    .ssn-project-nav, .ssn-project-overview { display: none; }
    .ssn-project-kpis { grid-template-columns: repeat(2, 1fr); }
    .ssn-project-row { grid-template-columns: 48px 1fr 18px; }
    .ssn-project-row > span:not(.ssn-project-row-icon):not(.ssn-project-row-main) { display: none; }
}

/* v1.03.12 stable Projects workspace alignment */
.ssn-projects-grid .ssn-card {
    --ssn-project-pane-pad-top: 28px;
}



/* v1.03.12 Projects centre simplification */
.ssn-project-centre-minimal {
    padding: 0;
}
.ssn-project-centre-minimal .ssn-project-list {
    padding-top: 24px;
}
.ssn-project-centre-minimal .ssn-project-row:first-child {
    margin-top: 0;
}


.ssn-hub.is-queue-open {
    align-items: stretch;
}
.ssn-hub.is-queue-open .ssn-orbit {
    display: none;
}

/* v1.03.15 Focus queue workspace sizing and calm scrollbars */
.ssn-hub.is-queue-open {
    width: 100%;
    min-height: 560px;
    align-items: stretch;
}
.ssn-shell .ssn-launch[aria-hidden="true"] {
    display: none;
}


/* v1.03.19 shared icon control alignment
   Queue back controls now consume the same visual dimensions as Focus pane icons. */
.ssn-shell {
    --ssn-icon-control-size: 42px;
    --ssn-icon-control-radius: var(--ssn-radius-row);
}

/* v1.03.20 Project detail workspace layer */
.ssn-project-detail-grid {
    position: absolute;
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 124px;
    display: grid;
    grid-template-columns: minmax(260px, 322px) minmax(560px, 1fr) minmax(300px, 366px);
    gap: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell.ssn-project-detail-open [data-ssn-home-grid],
.ssn-shell.ssn-project-detail-open [data-ssn-projects-workspace],
.ssn-shell.ssn-project-detail-open [data-ssn-settings-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-project-detail-open .ssn-project-detail-grid {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-project-detail-actions,
.ssn-project-detail-centre,
.ssn-project-detail-summary {
    min-height: 0;
    overflow: hidden;
}
.ssn-project-detail-actions,
.ssn-project-detail-summary {
    padding: 22px;
}
.ssn-project-detail-centre {
    display: flex;
    flex-direction: column;
    padding: 0;
}
.ssn-project-detail-nav-head {
    display: flex;
    align-items: center;
    gap: var(--ssn-space-md);
    margin-bottom: 22px;
}
.ssn-project-detail-nav-head h2,
.ssn-project-detail-summary h2 {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .26em;
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    color: var(--ssn-colour-text);
}
.ssn-project-action-stack,
.ssn-project-stage-nav {
    overflow: auto;
    max-height: calc(100% - 70px);
    scrollbar-width: none;
}
.ssn-project-action-stack::-webkit-scrollbar,
.ssn-project-stage-nav::-webkit-scrollbar { width: 0; height: 0; }
.ssn-project-action-stack:hover,
.ssn-project-action-stack:focus-within,
.ssn-project-stage-nav:hover,
.ssn-project-stage-nav:focus-within { scrollbar-width: thin; }
.ssn-project-action-stack:hover::-webkit-scrollbar,
.ssn-project-action-stack:focus-within::-webkit-scrollbar,
.ssn-project-stage-nav:hover::-webkit-scrollbar,
.ssn-project-stage-nav:focus-within::-webkit-scrollbar { width: 8px; }
.ssn-project-action-stack:hover::-webkit-scrollbar-thumb,
.ssn-project-action-stack:focus-within::-webkit-scrollbar-thumb,
.ssn-project-stage-nav:hover::-webkit-scrollbar-thumb,
.ssn-project-stage-nav:focus-within::-webkit-scrollbar-thumb { background: rgba(31,35,41,.28); border-radius: 999px; }
.ssn-project-action-stack button,
.ssn-project-milestone-list button {
    width: 100%;
    display: grid;
    grid-template-columns: 16px 1fr;
    gap: 4px 12px;
    align-items: start;
    text-align: left;
    border: 1px solid transparent;
    border-radius: var(--ssn-radius-row);
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    padding: 13px 12px;
    margin-bottom: 6px;
    box-shadow: none;
    cursor: pointer;
    font: inherit;
}
.ssn-project-action-stack button span,
.ssn-project-milestone-list button span {
    grid-row: span 2;
    width: 12px;
    height: 12px;
    margin-top: 4px;
    border-radius: 999px;
    border: 2px solid var(--ssn-colour-line-strong, var(--ssn-colour-line));
    background: var(--ssn-colour-surface);
}
.ssn-project-action-stack button strong,
.ssn-project-milestone-list button strong {
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-project-action-stack button small,
.ssn-project-milestone-list button small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-action-stack button:hover,
.ssn-project-action-stack button:focus,
.ssn-project-action-stack button.is-active,
.ssn-project-milestone-list button:hover,
.ssn-project-milestone-list button:focus,
.ssn-project-milestone-list button.is-active {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    outline: none;
}
.ssn-project-action-stack button.is-active span,
.ssn-project-milestone-list button.is-active span {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
}


.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav {
    position: relative;
    padding: 6px 0 6px 4px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav::-webkit-scrollbar { width: 0; height: 0; }
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav:hover,
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav:focus-within { scrollbar-width: thin; }
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav:hover::-webkit-scrollbar,
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav:focus-within::-webkit-scrollbar { width: 8px; }
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav:hover::-webkit-scrollbar-thumb,
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav:focus-within::-webkit-scrollbar-thumb { background: rgba(31,35,41,.28); border-radius: 999px; }
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 24px;
    bottom: 24px;
    width: 1px;
    background: var(--ssn-journey-line);
    pointer-events: none;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section {
    position: relative;
    padding: 2px 0 8px;
    border: 0;
    min-width: 0;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: grid;
    align-items: start;
    border: 1px solid transparent;
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-journey-stage-bg);
    background-color: var(--ssn-journey-stage-bg);
    background-image: none;
    color: var(--ssn-journey-text);
    box-shadow: none;
    cursor: pointer;
    text-align: left;
    font: inherit;
    line-height: var(--ssn-line-height-base);
    white-space: normal;
    transition: background-color var(--ssn-transition-fast), border-color var(--ssn-transition-fast), box-shadow var(--ssn-transition-fast);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle {
    min-height: 42px;
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    gap: 10px;
    padding: 8px 8px 8px 0;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle::before {
    content: '';
    width: 14px;
    height: 14px;
    justify-self: center;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 2px solid var(--ssn-journey-dot-border);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-colour-surface-strong);
    background-image: none;
    box-shadow: 0 0 0 4px rgba(255,255,255,.86);
    color: var(--ssn-colour-surface-strong);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle span,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button strong,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button small {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    color: inherit;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle span {
    align-self: center;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle em {
    width: 8px;
    height: 8px;
    align-self: center;
    justify-self: center;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    opacity: .58;
    transition: transform var(--ssn-transition-fast);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle:hover,
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-toggle:focus,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button:hover,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button:focus {
    outline: none;
    background: var(--ssn-journey-stage-bg-hover);
    background-color: var(--ssn-journey-stage-bg-hover);
    background-image: none;
    border-color: var(--ssn-colour-line);
    color: var(--ssn-journey-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section.is-open .ssn-project-stage-toggle,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-active {
    background: var(--ssn-journey-stage-bg-active);
    background-color: var(--ssn-journey-stage-bg-active);
    background-image: none;
    border-color: var(--ssn-colour-line);
    color: var(--ssn-journey-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section.is-open .ssn-project-stage-toggle em { transform: rotate(45deg); }
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section.is-current .ssn-project-stage-toggle { font-weight: 800; }
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section.is-current .ssn-project-stage-toggle::before {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section.is-complete .ssn-project-stage-toggle::before {
    content: '✓';
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    color: var(--ssn-colour-surface-strong);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list {
    display: none;
    position: relative;
    margin: 2px 0 0 15px;
    padding: 0 0 4px 18px;
    border-left: 1px solid var(--ssn-journey-line);
    max-width: calc(100% - 15px);
    overflow: visible;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-stage-nav section.is-open .ssn-project-milestone-list { display: block; }
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button {
    min-height: 48px;
    grid-template-columns: 16px minmax(0, 1fr);
    column-gap: 10px;
    margin: 0 0 4px;
    padding: 10px 9px 10px 0;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button span {
    width: 11px;
    height: 11px;
    margin-top: 4px;
    justify-self: center;
    border-radius: 999px;
    border: 1.5px solid var(--ssn-journey-dot-border);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-colour-surface-strong);
    background-image: none;
    color: var(--ssn-colour-surface-strong);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button strong {
    display: block;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button small {
    display: block;
    margin-top: 3px;
    color: var(--ssn-journey-text-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button:hover small,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button:focus small,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-active small {
    color: var(--ssn-journey-text-muted);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-active span {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete span {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete span::after {
    content: '';
    display: block;
    width: 5px;
    height: 3px;
    border-left: 1.5px solid var(--ssn-colour-surface-strong);
    border-bottom: 1.5px solid var(--ssn-colour-surface-strong);
    transform: translate(2px, 2px) rotate(-45deg);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-future {
    opacity: .72;
}

.ssn-project-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ssn-space-lg);
    padding: 24px 28px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-project-detail-header small,
.ssn-project-detail-header p,
.ssn-workspace-intro span {
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-detail-header h1 {
    margin: 8px 0 8px;
    font-size: clamp(26px, 3vw, 36px);
    letter-spacing: -.04em;
    line-height: 1.05;
}
.ssn-project-detail-header strong {
    white-space: nowrap;
    font-size: var(--ssn-font-size-title);
}
.ssn-project-detail-panel {
    display: none;
    min-height: 0;
    overflow: auto;
    padding: 24px 28px;
    scrollbar-width: none;
}
.ssn-project-detail-panel.is-active { display: block; }
.ssn-project-detail-panel::-webkit-scrollbar { width: 0; height: 0; }
.ssn-project-detail-panel:hover,
.ssn-project-detail-panel:focus-within { scrollbar-width: thin; }
.ssn-project-detail-panel:hover::-webkit-scrollbar,
.ssn-project-detail-panel:focus-within::-webkit-scrollbar { width: 8px; }
.ssn-project-detail-panel:hover::-webkit-scrollbar-thumb,
.ssn-project-detail-panel:focus-within::-webkit-scrollbar-thumb { background: rgba(31,35,41,.28); border-radius: 999px; }
.ssn-workspace-intro {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--ssn-space-md);
    margin-bottom: 18px;
}
.ssn-workspace-intro h2 {
    margin: 0;
    font-size: var(--ssn-font-size-title);
}
.ssn-proposal-builder-shell {
    display: grid;
    gap: 14px;
}
.ssn-proposal-builder-shell label {
    display: grid;
    gap: 7px;
}
.ssn-proposal-builder-shell label span {
    display: flex;
    justify-content: space-between;
    text-transform: uppercase;
    letter-spacing: .24em;
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
}
.ssn-proposal-builder-shell label em {
    color: var(--ssn-colour-muted);
    font-style: normal;
}
.ssn-proposal-builder-shell textarea {
    min-height: 76px;
    resize: vertical;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    color: var(--ssn-colour-text);
    padding: 12px 14px;
    font: inherit;
    box-shadow: none;
}
.ssn-proposal-builder-shell textarea:focus {
    outline: none;
    border-color: var(--ssn-colour-text);
}
.ssn-proposal-live-preview {
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    padding: 18px;
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
}
.ssn-proposal-live-preview > div,
.ssn-proposal-live-preview > section { grid-column: 1; }
.ssn-proposal-live-preview > aside { grid-column: 2; grid-row: 1 / span 4; border-left: 1px solid var(--ssn-colour-line); padding-left: 18px; }
.ssn-proposal-live-preview small {
    display: block;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
}
.ssn-proposal-live-preview strong,
.ssn-proposal-live-preview b {
    display: block;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-proposal-live-preview p { margin: 0; color: var(--ssn-colour-text); }
.ssn-proposal-builder-shell footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.ssn-proposal-builder-shell footer button,
.ssn-project-next-action button {
    min-height: 44px;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
    box-shadow: none;
}
.ssn-proposal-builder-shell footer button:last-child:not(:disabled) {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-proposal-builder-shell footer button:disabled {
    opacity: .52;
    cursor: not-allowed;
}
.ssn-build-plan-shell {
    display: grid;
    gap: 18px;
}
.ssn-workspace-tabs {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: -4px 0 2px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-workspace-tabs button {
    min-height: 42px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    background-color: transparent;
    background-image: none;
    color: var(--ssn-colour-muted);
    padding: 0;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-workspace-tabs button.is-active {
    color: var(--ssn-colour-text);
    border-bottom-color: var(--ssn-colour-text);
}
.ssn-build-plan-note {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-muted);
}
.ssn-build-plan-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-md);
}
.ssn-build-plan-head h2 {
    margin: 0;
    font-size: var(--ssn-font-size-title);
}
.ssn-build-plan-actions {
    display: flex;
    gap: 10px;
}
.ssn-build-plan-actions button {
    min-height: 38px;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    padding: 0 14px;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-build-plan-actions button:last-child {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-build-plan-list {
    display: grid;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-build-plan-row {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 140px 120px 80px 24px;
    gap: 16px;
    align-items: center;
    min-height: 72px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-build-plan-row:first-child {
    min-height: 40px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
}
.ssn-build-plan-row strong { display: block; }
.ssn-build-plan-row small { color: var(--ssn-colour-muted); }
.ssn-build-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ssn-colour-muted);
}
.ssn-build-status::before {
    content: '';
    width: 12px;
    height: 12px;
    border-radius: 999px;
    border: 2px solid var(--ssn-journey-dot-border);
    background: var(--ssn-colour-surface);
}
.ssn-build-status.is-done::before,
.ssn-build-status.is-active::before {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
}
.ssn-build-owner {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}

@media (max-width: 1100px) {
    .ssn-project-detail-grid { grid-template-columns: 1fr; overflow: auto; }
    .ssn-proposal-live-preview { grid-template-columns: 1fr; }
    .ssn-proposal-live-preview > aside { grid-column: 1; grid-row: auto; border-left: 0; border-top: 1px solid var(--ssn-colour-line); padding-left: 0; padding-top: 14px; }
}

/* v1.03.24 selected milestone navigation */
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-current:not(.is-selected) {
    background: transparent;
    background-color: transparent;
    border-color: transparent;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-current span {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-selected {
    background: var(--ssn-journey-stage-bg-active);
    background-color: var(--ssn-journey-stage-bg-active);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-journey-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-selected span {
    box-shadow: 0 0 0 4px rgba(31,35,41,.07);
}
.ssn-selected-milestone-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-md);
    padding: 14px 28px;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-colour-surface-strong);
}
.ssn-selected-milestone-bar small {
    display: block;
    margin-bottom: 2px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ssn-selected-milestone-bar strong {
    display: block;
    color: var(--ssn-colour-text);
}
.ssn-selected-milestone-bar button,
.ssn-shell .ssn-selected-milestone-bar button {
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    background-image: none;
    color: var(--ssn-colour-text);
    border-radius: var(--ssn-radius-control);
    padding: 10px 16px;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-selected-milestone-bar button:hover,
.ssn-selected-milestone-bar button:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
}


/* v1.03.29 Project right rail contained card forensic rebuild
   Owner: .ssn-project-detail-summary
   This replaces the previous stacked-card rail with one contained card surface.
   All control colours use existing Navigator tokens. */
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 0;
    height: 100%;
    padding: 22px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    box-sizing: border-box;
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    background-image: none;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(28px);
}
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card::-webkit-scrollbar {
    width: 0;
    height: 0;
}
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card:hover,
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card:focus-within {
    scrollbar-width: thin;
}
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card:hover::-webkit-scrollbar,
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card:focus-within::-webkit-scrollbar {
    width: 8px;
}
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card:hover::-webkit-scrollbar-thumb,
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card:focus-within::-webkit-scrollbar-thumb {
    background: rgba(31,35,41,.28);
    border-radius: 999px;
}
.ssn-shell .ssn-project-detail-summary .ssn-rail-section,
.ssn-shell .ssn-project-detail-summary section {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0 0 16px;
    border: 0;
    border-bottom: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    background-image: none;
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-rail-section + .ssn-rail-section,
.ssn-shell .ssn-project-detail-summary section + section {
    padding-top: 16px;
}
.ssn-shell .ssn-project-detail-summary .ssn-rail-section:last-child,
.ssn-shell .ssn-project-detail-summary section:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.ssn-shell .ssn-project-detail-summary h2,
.ssn-shell .ssn-project-detail-summary .ssn-project-next-action small {
    display: block;
    margin: 0;
    padding: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .24em;
    line-height: 1.15;
    text-align: left;
    text-transform: uppercase;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-next-action strong {
    display: block;
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.28;
    overflow-wrap: anywhere;
    text-align: left;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-next-action button {
    width: 100%;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--ssn-colour-button-primary-bg);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-next-action button:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-next-action button:focus {
    border-color: var(--ssn-colour-button-primary-bg-hover);
    background: var(--ssn-colour-button-primary-bg-hover);
    background-color: var(--ssn-colour-button-primary-bg-hover);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact {
    display: grid;
    gap: 8px;
    margin: 0;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact div {
    display: grid;
    grid-template-columns: minmax(92px, 1fr) minmax(0, 1.12fr);
    align-items: baseline;
    gap: 10px;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact dt,
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact dd {
    line-height: 1.25;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
    text-align: left;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact dd {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    overflow-wrap: anywhere;
    text-align: right;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links {
    gap: 8px;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 12px;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 34px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    background-image: none;
    color: var(--ssn-colour-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:last-child {
    border-bottom: 0;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button span {
    min-width: 0;
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button strong {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
    white-space: nowrap;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button em {
    color: var(--ssn-colour-muted);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
    text-align: right;
}

/* v1.03.34 Payment records workspace */
.ssn-payment-workspace {
    display: flex;
    flex-direction: column;
    gap: var(--ssn-space-md);
    padding: var(--ssn-space-xl);
}
.ssn-payment-workspace-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-lg);
}
.ssn-payment-workspace-head h2 {
    margin: 0;
    font-size: var(--ssn-font-size-title);
    letter-spacing: .2em;
    text-transform: uppercase;
}
.ssn-payment-workspace-head p {
    margin: var(--ssn-space-xs) 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-payment-workspace-head button,
.ssn-payment-form-card button,
.ssn-payment-form-card input,
.ssn-payment-form-card select,
.ssn-payment-form-card textarea {
    border: 1px solid var(--ssn-colour-control-border);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    border-radius: var(--ssn-radius-control);
}
.ssn-payment-workspace-head button {
    min-height: 38px;
    padding: 0 var(--ssn-space-md);
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-payment-workspace-head button:hover,
.ssn-payment-workspace-head button:focus,
.ssn-payment-form-card button[type="button"]:hover,
.ssn-payment-form-card button[type="button"]:focus {
    background: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-button-secondary-text);
}
.ssn-payment-summary-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ssn-space-sm);
}
.ssn-payment-summary-strip > div {
    min-height: 68px;
    padding: var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-surface-strong);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--ssn-space-xs);
}
.ssn-payment-summary-strip small,
.ssn-payment-remittance small,
.ssn-payment-remittance p,
.ssn-remittance-side span,
.ssn-payment-form-card label span,
.ssn-payment-form-card p {
    color: var(--ssn-colour-muted);
}
.ssn-payment-summary-strip strong,
.ssn-payment-remittance strong,
.ssn-payment-form-card h3 {
    color: var(--ssn-colour-text);
}
.ssn-payment-records {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-payment-remittance {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--ssn-space-md);
    min-height: 84px;
    padding: var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-surface-strong);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-remittance-icon {
    width: var(--ssn-control-icon-size);
    height: var(--ssn-control-icon-size);
    border-radius: var(--ssn-radius-control);
    border: 1px solid var(--ssn-colour-control-border);
    background: var(--ssn-colour-control-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-remittance-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.ssn-remittance-main p {
    margin: 0;
    font-size: var(--ssn-font-size-small);
    overflow-wrap: anywhere;
}
.ssn-remittance-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    text-align: right;
    white-space: nowrap;
}
.ssn-remittance-side strong {
    font-size: 1.25rem;
    line-height: 1;
}
.ssn-payment-form-card[hidden] {
    display: none;
}
.ssn-payment-form-card {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-surface-strong);
    padding: var(--ssn-space-lg);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-payment-form-card form {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-payment-form-card header,
.ssn-payment-form-card footer,
.ssn-payment-mode-row,
.ssn-payment-form-grid {
    display: flex;
    gap: var(--ssn-space-sm);
}
.ssn-payment-form-card header {
    justify-content: space-between;
    align-items: center;
}
.ssn-payment-form-card h3 {
    margin: 0;
    font-size: var(--ssn-font-size-title);
}
.ssn-payment-form-card header button {
    width: var(--ssn-control-icon-size);
    height: var(--ssn-control-icon-size);
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ssn-payment-mode-row label {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--ssn-space-xs);
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg);
    cursor: pointer;
}
.ssn-payment-form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ssn-payment-form-card label {
    display: flex;
    flex-direction: column;
    gap: var(--ssn-space-xs);
    min-width: 0;
}
.ssn-payment-form-card input,
.ssn-payment-form-card select,
.ssn-payment-form-card textarea {
    width: 100%;
    min-height: 40px;
    padding: 0 var(--ssn-space-sm);
}
.ssn-payment-form-card textarea {
    padding-top: var(--ssn-space-sm);
    resize: vertical;
}
.ssn-payment-note-field {
    grid-column: 1 / -1;
}
.ssn-payment-form-card footer {
    justify-content: flex-end;
}
.ssn-payment-form-card footer button {
    min-height: 40px;
    padding: 0 var(--ssn-space-md);
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-payment-form-card footer button[type="submit"] {
    background: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
    border-color: var(--ssn-colour-button-primary-bg);
}
.ssn-payment-form-card form.is-saving {
    opacity: .72;
    pointer-events: none;
}

/* v1.03.35 workspace header actions */
.ssn-selected-milestone-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-lg);
    padding: var(--ssn-space-md) var(--ssn-space-xl);
    border-top: 1px solid var(--ssn-colour-line);
    border-bottom: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface);
}
.ssn-selected-milestone-toolbar small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-selected-milestone-toolbar strong {
    display: block;
    margin-top: 3px;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-body);
}
.ssn-selected-milestone-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--ssn-space-sm);
    flex-wrap: wrap;
}
.ssn-selected-milestone-actions button {
    min-height: 38px;
    padding: 0 var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-selected-milestone-actions button:hover,
.ssn-selected-milestone-actions button:focus {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-button-secondary-text);
    border-color: var(--ssn-colour-control-border);
}
.ssn-selected-milestone-actions [data-ssn-complete-selected-milestone] {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-selected-milestone-actions [data-ssn-complete-selected-milestone]:hover,
.ssn-selected-milestone-actions [data-ssn-complete-selected-milestone]:focus {
    background: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    background-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    color: var(--ssn-colour-button-primary-text);
}
.ssn-selected-milestone-actions button[hidden] {
    display: none;
}
.ssn-payment-workspace-head {
    align-items: flex-start;
}
.ssn-payment-workspace-head button {
    display: none;
}

/* v1.03.36 Project workspace header and payment stream refinement */
.ssn-project-detail-header-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
    gap: var(--ssn-space-sm);
    min-width: 180px;
    align-self: stretch;
}
.ssn-project-detail-header-actions > strong {
    white-space: nowrap;
    font-size: var(--ssn-font-size-title);
    line-height: 1;
}
.ssn-project-detail-header-actions button {
    min-height: 34px;
    padding: 0 var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
    cursor: pointer;
}
.ssn-project-detail-header-actions button:hover,
.ssn-project-detail-header-actions button:focus {
    outline: none;
    border-color: var(--ssn-colour-control-border);
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
}
.ssn-project-detail-header-actions [data-ssn-complete-selected-milestone] {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-project-detail-header-actions [data-ssn-complete-selected-milestone]:hover,
.ssn-project-detail-header-actions [data-ssn-complete-selected-milestone]:focus {
    background: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    background-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    border-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    color: var(--ssn-colour-button-primary-text);
}
.ssn-project-detail-header-actions button[hidden] {
    display: none;
}
.ssn-selected-milestone-toolbar {
    display: none;
}
.ssn-payment-workspace {
    padding: 0;
    gap: var(--ssn-space-md);
}
.ssn-payment-summary-strip,
.ssn-payment-workspace-head {
    display: none;
}
.ssn-payment-records {
    gap: var(--ssn-space-md);
}
.ssn-payment-remittance {
    min-height: 72px;
    padding: var(--ssn-space-md) var(--ssn-space-lg);
}
.ssn-payment-form-card {
    margin-top: var(--ssn-space-md);
}


/* v1.03.38 milestone rehydrate and header alignment */
.ssn-project-detail-header > div:first-child {
    min-width: 0;
}
.ssn-project-detail-header p {
    margin-top: 0;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete span,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete.is-selected span,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete.is-active span {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete span::after,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete.is-selected span::after,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button.is-complete.is-active span::after {
    content: '';
    display: block;
    width: 5px;
    height: 3px;
    border-left: 1.5px solid var(--ssn-colour-surface-strong);
    border-bottom: 1.5px solid var(--ssn-colour-surface-strong);
    transform: rotate(-45deg) translateY(-.5px);
}

/* v1.03.45 Stage waypoint and proposal workspace rebuild */
.ssn-proposal-builder-shell-redesigned {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: var(--ssn-space-lg);
    align-items: start;
}
.ssn-proposal-builder-shell-redesigned .ssn-proposal-live-preview {
    min-height: 420px;
}
.ssn-proposal-editor-panel {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-panel);
    background-color: var(--ssn-colour-panel);
}
.ssn-proposal-save-status {
    min-height: 18px;
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-project-detail-header-actions [data-ssn-proposal-confirm]:not(:disabled) {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-project-detail-header-actions [data-ssn-proposal-confirm]:disabled {
    opacity: .52;
    cursor: not-allowed;
}
.ssn-project-detail-header-actions [data-ssn-proposal-confirm]:not(:disabled):hover,
.ssn-project-detail-header-actions [data-ssn-proposal-confirm]:not(:disabled):focus {
    background: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    background-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    border-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    color: var(--ssn-colour-button-primary-text);
}
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button strong,
.ssn-shell .ssn-project-detail-actions .ssn-project-milestone-list button small {
    overflow-wrap: anywhere;
}
@media (max-width: 1120px) {
    .ssn-proposal-builder-shell-redesigned { grid-template-columns: 1fr; }
}

/* v1.03.46 activity foundation */
.ssn-actionbar {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    width: min(1060px, 82vw);
}
.ssn-actionbar a,
.ssn-actionbar button {
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-left: 1px solid var(--ssn-colour-line);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ssn-space-sm);
    color: var(--ssn-colour-text);
    text-decoration: none;
    font: inherit;
    font-weight: var(--ssn-font-weight-normal);
    white-space: nowrap;
    min-width: 0;
    background: transparent;
    cursor: pointer;
}
.ssn-actionbar a:first-child,
.ssn-actionbar button:first-child { border-left: 0; }
.ssn-actionbar a:hover,
.ssn-actionbar button:hover,
.ssn-actionbar a:focus,
.ssn-actionbar button:focus {
    background: var(--ssn-colour-control-bg-hover);
    border-radius: var(--ssn-radius-control);
    color: var(--ssn-colour-text);
}
.ssn-project-only-action { display: none; }
.ssn-shell.ssn-project-detail-open .ssn-project-only-action { display: inline-flex; }
.ssn-project-lost-action { color: #8f1f1f; }

.ssn-activity-timeline-panel {
    position: absolute;
    top: 0;
    right: calc(var(--ssn-panel-width) + clamp(22px, 3.2vw, 58px));
    width: min(430px, 34vw);
    height: 100%;
    background: var(--ssn-colour-surface);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: 0 28px 80px rgba(31,36,44,.16);
    backdrop-filter: blur(28px);
    display: flex;
    flex-direction: column;
    z-index: 12;
    transform: translateX(24px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
    overflow: hidden;
}
[data-ssn-project-detail-workspace] .ssn-activity-timeline-panel[aria-hidden="false"] {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}
.ssn-activity-timeline-panel header,
.ssn-activity-composer header,
.ssn-lost-composer header {
    padding: 22px 24px;
    border-bottom: 1px solid var(--ssn-colour-line);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.ssn-activity-timeline-panel h2,
.ssn-activity-composer h2,
.ssn-lost-composer h2 {
    margin: 0;
    font-size: 22px;
    letter-spacing: normal;
    text-transform: none;
    padding: 0;
}
.ssn-activity-timeline-panel p,
.ssn-activity-composer p,
.ssn-lost-composer p {
    margin: 6px 0 0;
    color: var(--ssn-colour-muted);
}
.ssn-activity-timeline-panel header button,
.ssn-activity-composer header button,
.ssn-lost-composer header button {
    width: 36px;
    height: 36px;
    border-radius: var(--ssn-radius-row);
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    display: grid;
    place-items: center;
    cursor: pointer;
}
.ssn-activity-tools {
    padding: 16px 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-activity-tools select,
.ssn-activity-tools input,
.ssn-activity-next-grid input,
.ssn-activity-note textarea {
    width: 100%;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.72);
    color: var(--ssn-colour-text);
    font: inherit;
    padding: 12px 14px;
    box-sizing: border-box;
}
.ssn-activity-feed {
    padding: 18px 22px 24px;
    overflow-y: auto;
    min-height: 0;
    flex: 1;
    scrollbar-color: transparent transparent;
}
.ssn-activity-feed:hover,
.ssn-activity-feed:focus-within { scrollbar-color: rgba(31,35,41,.35) transparent; }
.ssn-activity-feed h3 {
    margin: 4px 0 12px;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-activity-item {
    position: relative;
    display: grid;
    grid-template-columns: 38px 1fr auto;
    gap: 12px;
    padding: 0 0 22px;
    margin: 0 0 4px;
    border-bottom: 1px solid rgba(31,35,41,.08);
}
.ssn-activity-item > span {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--ssn-colour-line);
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.7);
}
.ssn-activity-item strong { display: block; margin-bottom: 4px; }
.ssn-activity-item p { margin: 0 0 6px; color: var(--ssn-colour-text); }
.ssn-activity-item small { display: block; color: var(--ssn-colour-muted); line-height: 1.35; }
.ssn-activity-item time { color: var(--ssn-colour-muted); font-size: 12px; }
.ssn-activity-item em {
    grid-column: 2 / 4;
    color: var(--ssn-colour-text);
    font-style: normal;
    font-size: 12px;
    background: rgba(31,35,41,.055);
    border-radius: 999px;
    padding: 4px 8px;
    width: fit-content;
}

.ssn-activity-modal,
.ssn-lost-modal {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: grid;
    place-items: center;
    background: rgba(17,19,24,.24);
    backdrop-filter: blur(10px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease;
}
.ssn-activity-modal[aria-hidden="false"],
.ssn-lost-modal[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
}
.ssn-activity-composer,
.ssn-lost-composer {
    width: min(760px, calc(100vw - 80px));
    max-height: min(760px, calc(100vh - 120px));
    overflow-y: auto;
    background: var(--ssn-colour-surface-strong);
    border: 1px solid var(--ssn-colour-line);
    border-radius: 24px;
    box-shadow: 0 28px 90px rgba(17,19,24,.22);
}
.ssn-activity-type-grid,
.ssn-lost-reasons {
    border: 0;
    margin: 0;
    padding: 22px 24px 10px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.ssn-activity-type-grid legend,
.ssn-lost-reasons legend {
    grid-column: 1 / -1;
    font-weight: var(--ssn-font-weight-strong);
    margin-bottom: 2px;
}
.ssn-activity-type-grid label,
.ssn-lost-reasons label {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    padding: 12px 14px;
    display: flex;
    gap: 10px;
    align-items: center;
    cursor: pointer;
    background: rgba(255,255,255,.58);
}
.ssn-activity-note,
.ssn-activity-next-grid,
.ssn-activity-toggle {
    display: block;
    padding: 10px 24px;
}
.ssn-activity-note span,
.ssn-activity-next-grid span,
.ssn-activity-toggle span {
    display: block;
    margin-bottom: 8px;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-activity-note em,
.ssn-activity-next-grid em { color: var(--ssn-colour-muted); font-style: normal; font-weight: var(--ssn-font-weight-normal); }
.ssn-activity-note textarea { min-height: 120px; resize: vertical; }
.ssn-activity-next-grid {
    display: grid;
    grid-template-columns: 1.4fr .9fr;
    gap: 12px;
}
.ssn-activity-toggle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.ssn-activity-toggle span { margin: 0; }
.ssn-activity-error { color: #8f1f1f; padding: 0 24px; min-height: 18px; }
.ssn-activity-composer footer,
.ssn-lost-composer footer {
    padding: 18px 24px 24px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-activity-composer footer button,
.ssn-lost-composer footer button {
    min-height: 44px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 20px;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-activity-composer footer button[type="submit"],
.ssn-lost-composer footer button[type="submit"] {
    background: var(--ssn-colour-text);
    color: var(--ssn-colour-surface-strong);
    border-color: var(--ssn-colour-text);
}
.ssn-lost-composer footer button[type="submit"] { background: #321516; border-color: #321516; }
.ssn-actionbar { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ssn-shell.ssn-project-detail-open .ssn-actionbar { grid-template-columns: repeat(7, minmax(0, 1fr)); width: min(1060px, 82vw); }

/* v1.03.48 activity control hardening */
.ssn-activity-source-grid {
    border: 0;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.ssn-activity-source-grid legend {
    grid-column: 1 / -1;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 4px;
    color: var(--ssn-colour-text);
}
.ssn-activity-source-grid label {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 12px;
    background: rgba(255,255,255,.86);
    color: var(--ssn-colour-text);
}
.ssn-activity-client-name {
    display: grid;
    gap: 8px;
}
.ssn-activity-client-name[hidden] { display: none; }
.ssn-activity-client-name span {
    font-size: 13px;
    font-weight: 700;
    color: var(--ssn-colour-text);
}
.ssn-activity-client-name em {
    font-style: normal;
    font-weight: 500;
    color: var(--ssn-colour-muted);
}
.ssn-activity-client-name input {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 12px;
    background: rgba(255,255,255,.9);
    padding: 0 12px;
    color: var(--ssn-colour-text);
}
.ssn-activity-item { position: relative; }
.ssn-activity-item-actions {
    grid-column: 2 / -1;
    display: flex;
    gap: 8px;
    margin-top: 8px;
}
.ssn-activity-item-menu {
    appearance: none;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: rgba(255,255,255,.76);
    color: var(--ssn-colour-muted);
    min-height: 28px;
    padding: 0 10px;
    font-size: 12px;
    font-weight: 700;
}
.ssn-activity-item-menu:hover,
.ssn-activity-item-menu:focus-visible {
    color: var(--ssn-colour-text);
    background: rgba(255,255,255,.95);
}
.ssn-activity-item-menu.is-danger:hover,
.ssn-activity-item-menu.is-danger:focus-visible {
    color: #8a1f1f;
    border-color: rgba(138,31,31,.25);
}


/* v1.03.48 activity control hardening */
.ssn-close-control,
.ssn-shell .ssn-close-control,
.ssn-shell .ssn-command-clear.ssn-close-control {
    display: inline-grid;
    place-items: center;
    width: var(--ssn-control-icon-size);
    height: var(--ssn-control-icon-size);
    min-width: var(--ssn-control-icon-size);
    padding: 0;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    appearance: none;
    cursor: pointer;
    font-size: 22px;
    font-weight: 500;
    line-height: 1;
    text-align: center;
}
.ssn-close-control:hover,
.ssn-close-control:focus-visible,
.ssn-shell .ssn-command-clear.ssn-close-control:hover,
.ssn-shell .ssn-command-clear.ssn-close-control:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-lock-version {
    display: block;
    margin-top: 12px;
    color: var(--ssn-colour-muted);
    text-align: center;
    font-size: 12px;
    font-weight: 700;
}
.ssn-activity-composer > header {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 12px;
}
.ssn-activity-source-toggle {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(74px, 1fr));
    gap: 4px;
    padding: 4px;
    margin: 0;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
}
.ssn-activity-source-toggle legend { display: none; }
.ssn-activity-source-toggle label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: var(--ssn-radius-pill);
    cursor: pointer;
    color: var(--ssn-colour-muted);
    font-size: 12px;
    font-weight: 800;
}
.ssn-activity-source-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.ssn-activity-source-toggle input:checked + span {
    color: var(--ssn-colour-text);
}
.ssn-activity-source-toggle label:has(input:checked) {
    background: var(--ssn-colour-surface);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-activity-client-name {
    margin: 12px 24px 0;
}
.ssn-activity-item-actions {
    gap: 8px;
}
.ssn-activity-item-menu,
.ssn-shell .ssn-activity-item-menu {
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    min-height: 30px;
    padding: 0 12px;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.ssn-activity-item-menu:hover,
.ssn-activity-item-menu:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-activity-item-menu.is-danger,
.ssn-shell .ssn-activity-item-menu.is-danger {
    background: rgba(138,31,31,.035);
    border-color: rgba(138,31,31,.18);
    color: #8a1f1f;
}
.ssn-activity-item-menu.is-danger:hover,
.ssn-activity-item-menu.is-danger:focus-visible {
    background: rgba(138,31,31,.08);
    border-color: rgba(138,31,31,.28);
    color: #741919;
}

.ssn-shell .ssn-search .ssn-command-clear.ssn-close-control { display: none; }
.ssn-shell.ssn-command-open .ssn-search .ssn-command-clear.ssn-close-control { display: inline-grid; }

/* v1.03.49 Session lock and activity rail placement */
.ssn-lock-card .ssn-lock-version,
.ssn-shell .ssn-lock-card .ssn-lock-version {
    color: var(--ssn-colour-muted);
    min-height: 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.ssn-shell .ssn-activity-timeline-panel {
    top: 0;
    right: 0;
    width: clamp(300px, 25vw, 366px);
    max-width: 366px;
    height: 100%;
    transform: translateX(18px);
    box-shadow: var(--ssn-shadow-panel);
    z-index: 14;
}
.ssn-shell [data-ssn-project-detail-workspace].is-activity-open > .ssn-project-detail-summary {
    pointer-events: none;
}

.ssn-shell .ssn-activity-item-menu,
.ssn-shell .ssn-activity-item-menu.ssn-button-secondary {
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-activity-item-menu:hover,
.ssn-shell .ssn-activity-item-menu:focus-visible,
.ssn-shell .ssn-activity-item-menu.ssn-button-secondary:hover,
.ssn-shell .ssn-activity-item-menu.ssn-button-secondary:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-activity-item-menu.is-danger,
.ssn-shell .ssn-activity-item-menu.ssn-button-danger-quiet {
    border-color: rgba(138,31,31,.18);
    background: transparent;
    background-color: transparent;
    color: #8a1f1f;
    box-shadow: none;
}
.ssn-shell .ssn-activity-item-menu.is-danger:hover,
.ssn-shell .ssn-activity-item-menu.is-danger:focus-visible,
.ssn-shell .ssn-activity-item-menu.ssn-button-danger-quiet:hover,
.ssn-shell .ssn-activity-item-menu.ssn-button-danger-quiet:focus-visible {
    border-color: rgba(138,31,31,.26);
    background: rgba(138,31,31,.055);
    background-color: rgba(138,31,31,.055);
    color: #741919;
    outline: none;
}

/* v1.03.53 smart bar and shared orbital hub
   One source of truth: Home and More use .ssn-orbit, .ssn-spoke and .ssn-centre-logo. */
.ssn-shell .ssn-actionbar {
    width: min(900px, 78vw);
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.ssn-shell .ssn-actionbar .ssn-smart-action {
    display: none;
}
.ssn-shell:not(.ssn-projects-open):not(.ssn-project-detail-open):not(.ssn-settings-open):not(.ssn-reports-open) .ssn-actionbar .ssn-smart-action[data-ssn-context~="home"],
.ssn-shell.ssn-projects-open .ssn-actionbar .ssn-smart-action[data-ssn-context~="projects"],
.ssn-shell.ssn-project-detail-open .ssn-actionbar .ssn-smart-action[data-ssn-context~="project"],
.ssn-shell.ssn-settings-open .ssn-actionbar .ssn-smart-action[data-ssn-context~="settings"],
.ssn-shell.ssn-reports-open .ssn-actionbar .ssn-smart-action[data-ssn-context~="reports"] {
    display: inline-flex;
}
.ssn-shell.ssn-project-detail-open .ssn-actionbar {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ssn-shell .ssn-actionbar .ssn-smart-action:first-child {
    border-left: 0;
}
.ssn-shell .ssn-actionbar .ssn-action-home[aria-current="page"],
.ssn-shell .ssn-more-action[aria-expanded="true"] {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-radius: var(--ssn-radius-control);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-more-hub[hidden] {
    display: none;
}
.ssn-shell .ssn-more-hub {
    position: static;
    z-index: 1;
    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: min(50vw, 620px);
    aspect-ratio: auto;
    display: none;
    place-items: center;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    transition: none;
}
.ssn-shell.ssn-more-open .ssn-more-hub {
    display: grid;
}
.ssn-shell .ssn-more-replaced-centre {
    display: none;
}
.ssn-shell .ssn-more-orbit,
.ssn-shell.ssn-more-open .ssn-more-orbit {
    width: min(44vw, 635px);
    min-width: 500px;
    max-width: none;
    aspect-ratio: 1;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.70) 0 25%, rgba(255,255,255,.34) 26% 28%, transparent 29%),
        repeating-radial-gradient(circle at center, transparent 0 118px, rgba(46,51,58,.052) 119px 120px, transparent 121px 224px);
    background-color: transparent;
}
.ssn-shell .ssn-more-orbit .ssn-spoke,
.ssn-shell .ssn-more-orbit button.ssn-spoke {
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(238,240,242,.86));
    background-color: var(--ssn-colour-surface);
    border: 1px solid rgba(20,24,31,.075);
    color: var(--ssn-colour-text);
    box-shadow: 0 18px 44px rgba(33,39,50,.105), inset 0 1px 0 rgba(255,255,255,.92);
    font: inherit;
    cursor: pointer;
}
.ssn-shell .ssn-more-orbit .ssn-spoke:hover,
.ssn-shell .ssn-more-orbit button.ssn-spoke:hover,
.ssn-shell .ssn-more-orbit .ssn-spoke:focus-visible,
.ssn-shell .ssn-more-orbit button.ssn-spoke:focus-visible {
    background: #fff;
    background-color: #fff;
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-more-spoke-settings { left: 50%; top: 12%; }
.ssn-more-spoke-health { left: 50%; top: 88%; }
.ssn-more-spoke-refresh { left: 82%; top: 50%; }
.ssn-more-spoke-logout { left: 18%; top: 50%; }
.ssn-more-spoke-lost { left: 50%; top: 88%; }
.ssn-shell:not(.ssn-project-detail-open) .ssn-more-spoke-lost {
    display: none;
}
.ssn-shell.ssn-settings-open .ssn-more-spoke-refresh,
.ssn-shell.ssn-settings-open .ssn-more-spoke-logout,
.ssn-shell.ssn-projects-open .ssn-more-spoke-refresh,
.ssn-shell.ssn-projects-open .ssn-more-spoke-logout,
.ssn-shell.ssn-project-detail-open .ssn-more-spoke-refresh,
.ssn-shell.ssn-project-detail-open .ssn-more-spoke-logout {
    top: 50%;
}
.ssn-shell.ssn-more-open:not(.ssn-projects-open):not(.ssn-project-detail-open):not(.ssn-settings-open) .ssn-hub > .ssn-orbit,
.ssn-shell.ssn-more-open.ssn-projects-open [data-ssn-projects-workspace] .ssn-projects-centre,
.ssn-shell.ssn-more-open.ssn-project-detail-open [data-ssn-project-detail-workspace] .ssn-project-detail-workspace,
.ssn-shell.ssn-more-open.ssn-projects-open [data-ssn-projects-workspace] .ssn-project-centre,
.ssn-shell.ssn-more-open.ssn-project-detail-open [data-ssn-project-detail-workspace] .ssn-project-detail-centre,
.ssn-shell.ssn-more-open.ssn-settings-open [data-ssn-settings-workspace] .ssn-settings-centre {
    opacity: 1;
    pointer-events: auto;
}
.ssn-shell .ssn-activity-timeline-panel h2 {
    color: var(--ssn-colour-text);
    margin: 0;
    padding: 0;
    font-size: var(--ssn-font-size-small);
    letter-spacing: .22em;
    text-transform: uppercase;
    font-weight: var(--ssn-font-weight-label);
}
.ssn-agenda-row {
    grid-template-columns: 58px 1fr 18px;
}
.ssn-agenda-time {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    line-height: 1.15;
    white-space: nowrap;
}
.ssn-agenda-time small {
    display: block;
    margin-top: 3px;
    color: var(--ssn-colour-muted);
    font: inherit;
    letter-spacing: inherit;
}

/* v1.03.53 responsive smart action bar rebuild
   Owner block: one-row, content-led smart bar using shell action context. */
.ssn-shell .ssn-actionbar {
    width: fit-content;
    max-width: calc(100vw - 96px);
    min-height: 66px;
    display: inline-flex;
    grid-template-columns: none;
    align-items: center;
    justify-content: center;
    gap: 0;
    justify-self: center;
    overflow: hidden;
}
.ssn-shell .ssn-actionbar .ssn-smart-action {
    display: none;
    flex: 0 0 auto;
    min-width: 150px;
    max-width: 190px;
    padding-left: 24px;
    padding-right: 24px;
    white-space: nowrap;
}
.ssn-shell[data-ssn-action-context="home"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="home"],
.ssn-shell[data-ssn-action-context="projects"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="projects"],
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="project"],
.ssn-shell[data-ssn-action-context="settings"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="settings"] {
    display: inline-flex;
}
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action {
    min-width: 150px;
}
.ssn-shell .ssn-actionbar .ssn-smart-action:first-child,
.ssn-shell .ssn-actionbar .ssn-smart-action[style*="display: none"] + .ssn-smart-action {
    border-left: 0;
}
.ssn-shell .ssn-actionbar .ssn-smart-action[data-ssn-context~="project"]:first-of-type {
    border-left: 0;
}
.ssn-shell .ssn-actionbar .ssn-smart-action:not([data-ssn-context~="project"]) + .ssn-smart-action[data-ssn-log-activity] {
    border-left: 1px solid var(--ssn-colour-line);
}
@media (max-width: 1100px) {
    .ssn-shell .ssn-actionbar .ssn-smart-action {
        min-width: 128px;
        padding-left: 18px;
        padding-right: 18px;
    }
}
@media (max-width: 820px) {
    .ssn-shell .ssn-actionbar {
        max-width: calc(100vw - 32px);
    }
    .ssn-shell .ssn-actionbar .ssn-smart-action {
        min-width: 0;
        padding-left: 14px;
        padding-right: 14px;
    }
}

/* v1.03.54 smart action bar and right rail token consolidation
   Owner block: content-led bar width and shared key/value rail rows. */
.ssn-shell .ssn-actionbar {
    width: auto;
    inline-size: max-content;
    max-inline-size: calc(100vw - 96px);
    min-inline-size: 0;
    min-height: 66px;
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    display: inline-flex;
    grid-template-columns: none;
    align-items: center;
    justify-content: center;
    gap: 0;
    justify-self: center;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
}
.ssn-shell .ssn-actionbar .ssn-smart-action {
    display: none;
    flex: 0 0 auto;
    min-width: 142px;
    max-width: 178px;
    min-height: 44px;
    padding: 0 22px;
    border-left: 1px solid var(--ssn-colour-line);
    white-space: nowrap;
}
.ssn-shell[data-ssn-action-context="home"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="home"],
.ssn-shell[data-ssn-action-context="projects"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="projects"],
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="project"],
.ssn-shell[data-ssn-action-context="settings"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="settings"] {
    display: inline-flex;
}
.ssn-shell .ssn-actionbar .ssn-smart-action:first-child {
    border-left: 0;
}
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar {
    inline-size: max-content;
    max-inline-size: min(720px, calc(100vw - 96px));
}
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action {
    min-width: 132px;
    max-width: 160px;
    padding-left: 18px;
    padding-right: 18px;
}
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action[data-ssn-log-activity] {
    min-width: 142px;
}
.ssn-shell .ssn-actionbar .ssn-smart-action:hover,
.ssn-shell .ssn-actionbar .ssn-smart-action:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
    border-radius: var(--ssn-radius-control);
}
.ssn-shell .ssn-actionbar .ssn-smart-action[style*="display: none"] + .ssn-smart-action,
.ssn-shell .ssn-actionbar .ssn-smart-action:not([style]) + .ssn-smart-action {
    border-left-color: var(--ssn-colour-line);
}

.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 12px;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 34px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    background-image: none;
    color: var(--ssn-colour-text);
    font: inherit;
    text-align: left;
    box-shadow: none;
    cursor: pointer;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button span {
    min-width: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.25;
    white-space: nowrap;
    text-align: right;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button em {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
    text-align: right;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:last-child {
    border-bottom: 0;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
@media (max-width: 1100px) {
    .ssn-shell .ssn-actionbar .ssn-smart-action {
        min-width: 124px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action {
        min-width: 118px;
    }
}
@media (max-width: 820px) {
    .ssn-shell .ssn-actionbar {
        max-inline-size: calc(100vw - 32px);
        padding-left: var(--ssn-space-sm);
        padding-right: var(--ssn-space-sm);
    }
    .ssn-shell .ssn-actionbar .ssn-smart-action {
        min-width: 0;
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* v1.03.56 Home focus and revenue rail consolidation */
.ssn-shell .ssn-home-mission-control {
    display: flex;
    flex-direction: column;
}
 .ssn-shell .ssn-home-mission-control .ssn-revenue-tile {
    margin: auto var(--ssn-space-lg) 0;
    width: calc(100% - (var(--ssn-space-lg) * 2));
    min-height: 74px;
    padding: var(--ssn-space-sm) 0 0;
    display: grid;
    gap: 3px;
    align-content: end;
    text-align: left;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    font: inherit;
    cursor: pointer;
    box-shadow: none;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-tile:hover,
.ssn-shell .ssn-home-mission-control .ssn-revenue-tile:focus-visible {
    background: transparent;
    background-color: transparent;
    outline: none;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-tile span:not(.ssn-revenue-dots) {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-tile strong {
    color: var(--ssn-colour-text);
    font-size: 22px;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.1;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-tile small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-dots {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    margin-top: 6px;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-dots i {
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: var(--ssn-colour-line-strong);
    opacity: .55;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-dots i.is-active {
    width: 14px;
    opacity: 1;
    background: var(--ssn-colour-text);
}
.ssn-shell .ssn-agenda-card .ssn-view-all {
    display: none;
}
.ssn-shell .ssn-agenda-workspace[aria-hidden="true"] {
    display: none;
}
.ssn-shell .ssn-agenda-workspace {
    display: none;
    min-height: min(62vh, 640px);
    padding: 0;
    overflow: hidden;
}
.ssn-shell.ssn-agenda-open .ssn-grid > .ssn-hub {
    display: none;
}
.ssn-shell.ssn-agenda-open .ssn-agenda-workspace {
    display: block;
}
.ssn-shell .ssn-agenda-workspace .ssn-workspace-head {
    min-height: 78px;
    padding: var(--ssn-space-lg) var(--ssn-space-xl);
    display: flex;
    align-items: center;
    gap: var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-agenda-workspace .ssn-workspace-head h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    letter-spacing: .22em;
    text-transform: uppercase;
    font-weight: var(--ssn-font-weight-label);
}
.ssn-shell .ssn-agenda-workspace .ssn-workspace-head p {
    margin: 4px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-shell .ssn-agenda-full-list {
    padding: var(--ssn-space-md) var(--ssn-space-xl) var(--ssn-space-xl);
    display: grid;
    gap: 0;
    max-height: calc(min(62vh, 640px) - 80px);
    overflow: auto;
}
.ssn-shell .ssn-agenda-full-row {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 18px;
    align-items: center;
    gap: var(--ssn-space-md);
    min-height: 72px;
    padding: 0;
    border-bottom: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    text-decoration: none;
}
.ssn-shell .ssn-agenda-full-row:hover,
.ssn-shell .ssn-agenda-full-row:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    outline: none;
}
.ssn-shell .ssn-agenda-full-row strong {
    display: block;
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-agenda-full-row small,
.ssn-shell .ssn-agenda-full-row em {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-style: normal;
}
.ssn-shell .ssn-actionbar {
    inline-size: auto;
    width: auto;
    max-inline-size: calc(100vw - 96px);
    padding: var(--ssn-space-sm);
}
.ssn-shell .ssn-actionbar .ssn-smart-action {
    min-width: 132px;
    max-width: 168px;
}
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action {
    min-width: 124px;
    max-width: 148px;
    padding-left: 16px;
    padding-right: 16px;
}
.ssn-shell[data-ssn-action-context="project"] .ssn-actionbar .ssn-smart-action[data-ssn-log-activity] {
    min-width: 132px;
}
.ssn-shell .ssn-agenda-workspace {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: stretch;
}
.ssn-focus-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--ssn-space-sm);
}
.ssn-focus-row-actions a {
    color: var(--ssn-colour-text);
}
@media (max-width: 980px) {
    .ssn-focus-row-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}
.ssn-shell .ssn-focus-row-actions {
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-focus-quick-action {
    background: transparent;
    background-color: transparent;
    border: 0;
    border-radius: 0;
    color: var(--ssn-colour-text);
    padding: 0;
    min-height: 0;
    box-shadow: none;
    line-height: 1.2;
}
.ssn-shell .ssn-focus-quick-action::after {
    content: " ›";
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-focus-quick-action:hover,
.ssn-shell .ssn-focus-quick-action:focus-visible {
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: none;
}
.ssn-shell .ssn-focus-row-actions a {
    color: var(--ssn-colour-muted);
    font-weight: var(--ssn-font-weight-normal);
}
.ssn-shell .ssn-focus-row-actions a:hover,
.ssn-shell .ssn-focus-row-actions a:focus-visible {
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-focus-context {
    display: grid;
    gap: 4px;
    padding: var(--ssn-space-md) 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-focus-context strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-focus-context span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-shell .ssn-focus-row-main strong,
.ssn-shell .ssn-focus-row-next em,
.ssn-shell .ssn-focus-row-value b {
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-focus-row-value {
    justify-self: end;
    text-align: right;
    min-width: 72px;
}
.ssn-shell .ssn-focus-row-actions {
    justify-self: end;
    min-width: 150px;
    gap: var(--ssn-space-sm);
    white-space: nowrap;
}
.ssn-shell .ssn-focus-context {
    padding: var(--ssn-space-sm) 0 var(--ssn-space-md);
}
.ssn-shell .ssn-focus-row-value {
    justify-self: end;
    text-align: right;
    min-width: 74px;
    max-width: 74px;
    overflow: hidden;
}
.ssn-shell .ssn-focus-row-value small {
    margin-top: 0;
}
.ssn-shell .ssn-focus-row-value b {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-shell .ssn-focus-row-actions {
    justify-self: end;
    min-width: 138px;
    max-width: 138px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    white-space: nowrap;
}
.ssn-shell .ssn-focus-quick-action,
.ssn-shell .ssn-focus-row-actions a {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-tile {
    margin: auto var(--ssn-space-lg) 0;
    width: calc(100% - (var(--ssn-space-lg) * 2));
    min-height: 74px;
    padding: var(--ssn-space-sm) 0 0;
    display: grid;
    gap: 8px;
    align-content: end;
    text-align: left;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    box-shadow: none;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-title {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    align-items: end;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-period {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-period small {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-period strong {
    color: var(--ssn-colour-text);
    font-size: 14px;
    line-height: 1.1;
    font-weight: var(--ssn-font-weight-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-shell .ssn-home-mission-control .ssn-revenue-dots {
    display: none;
}
.ssn-shell .ssn-focus-context {
    padding: var(--ssn-space-sm) 0;
}


/* v1.03.64 Focus Rail Optimisation
   UIX-only pass. Keeps Focus data and revenue calculations unchanged. */
.ssn-shell .ssn-home-mission-control {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ssn-shell .ssn-home-mission-control .ssn-signal-row {
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    gap: var(--ssn-space-sm);
    min-height: 62px;
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    padding-left: calc(var(--ssn-space-sm) + 2px);
}

.ssn-shell .ssn-home-mission-control .ssn-signal-icon {
    width: 24px;
    height: 24px;
    min-width: 24px;
    border: 0;
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    box-shadow: none;
    color: var(--ssn-colour-icon);
}

.ssn-shell .ssn-home-mission-control .ssn-signal-icon svg {
    width: 18px;
    height: 18px;
}

.ssn-shell .ssn-home-mission-control .ssn-signal-copy {
    min-width: 0;
}

.ssn-shell .ssn-home-mission-control .ssn-signal-copy strong {
    display: block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: var(--ssn-font-size-base);
    line-height: 1.18;
}

.ssn-shell .ssn-home-mission-control .ssn-signal-copy small {
    display: block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 4px;
}

.ssn-shell .ssn-home-mission-control .ssn-chevron {
    justify-self: end;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-tile {
    margin: var(--ssn-space-lg) var(--ssn-space-lg) var(--ssn-space-lg);
    width: calc(100% - (var(--ssn-space-lg) * 2));
    min-height: 0;
    padding: var(--ssn-space-md) 0 0;
    display: grid;
    gap: var(--ssn-space-sm);
    align-content: start;
    text-align: left;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    box-shadow: none;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-title {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
    line-height: 1.2;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ssn-space-sm);
    align-items: start;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-period {
    display: flex;
    flex-direction: column-reverse;
    gap: 3px;
    min-width: 0;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-period strong {
    color: var(--ssn-colour-text);
    font-size: clamp(15px, 1.08vw, 18px);
    line-height: 1.08;
    font-weight: var(--ssn-font-weight-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-period small {
    color: var(--ssn-colour-muted);
    font-size: 9px;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ssn-shell .ssn-home-mission-control .ssn-revenue-dots {
    display: none;
}

/* v1.03.65 Training Settings Foundation */
.ssn-settings-preview-panel {
    display: none;
    height: 100%;
    flex-direction: column;
    gap: var(--ssn-space-lg);
}
.ssn-settings-preview-panel.is-active {
    display: flex;
}
.ssn-training-foundation {
    display: grid;
    gap: var(--ssn-space-xl);
}
.ssn-training-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ssn-space-md);
}
.ssn-training-summary-grid > div {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    padding: var(--ssn-space-lg);
}
.ssn-training-summary-grid small,
.ssn-training-course-row small p,
.ssn-training-control-stack span {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}
.ssn-training-summary-grid strong {
    display: block;
    margin-top: 6px;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-title);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-training-course-list {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-shell .ssn-training-course-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 70px 84px 92px auto;
    align-items: center;
    gap: var(--ssn-space-md);
    min-height: 68px;
    padding: var(--ssn-space-md) var(--ssn-space-lg);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    background-image: none;
    color: var(--ssn-colour-text);
}
.ssn-training-course-row strong {
    display: block;
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-training-status {
    justify-self: end;
    padding: 5px 9px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-pill-neutral-bg);
    background-color: var(--ssn-colour-pill-neutral-bg);
    background-image: none;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-training-control-stack {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-training-control-stack label {
    display: grid;
    gap: 8px;
    padding: var(--ssn-space-md) 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-training-control-stack input[type="range"] {
    width: 100%;
    accent-color: var(--ssn-colour-text);
}
.ssn-training-control-stack button {
    min-height: 38px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-control-text);
    font-weight: var(--ssn-font-weight-strong);
}

/* v1.03.66 Settings architecture */
.ssn-settings-domain-panel {
    display: none;
    min-height: 100%;
}
.ssn-settings-domain-panel.is-active {
    display: flex;
    flex-direction: column;
}
.ssn-settings-wheel-panel {
    min-height: calc(100% - 114px);
    padding: 0;
    overflow: hidden;
    display: none;
    place-items: center;
}
.ssn-settings-wheel-panel.is-active {
    display: grid;
}
.ssn-settings-orbit {
    width: min(36vw, 520px);
    min-width: 430px;
}
.ssn-settings-orbit .ssn-spoke {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    cursor: pointer;
}
.ssn-spoke-settings-training { left: 50%; top: 12%; }
.ssn-spoke-settings-bookings { left: 82%; top: 32%; }
.ssn-spoke-settings-commercial { left: 82%; top: 68%; }
.ssn-spoke-settings-system { left: 50%; top: 88%; }
.ssn-spoke-settings-emails { left: 18%; top: 68%; }
.ssn-spoke-settings-lms { left: 18%; top: 32%; }
.ssn-settings-architecture .ssn-settings-title .ssn-close-control {
    display: grid;
    place-items: center;
}


/* v1.03.67 Settings wheel token recovery
   Settings wheel uses the shared orbital hub language. The card shell only returns
   after a concrete settings domain is selected. */
.ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-centre {
    background: transparent;
    background-color: transparent;
    border-color: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-title {
    display: none;
}
.ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-wheel-panel {
    min-height: 100%;
    padding: 0;
}
.ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-orbit {
    width: min(44vw, 635px);
    min-width: 500px;
}
.ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-nav {
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    border-color: var(--ssn-colour-line);
    box-shadow: var(--ssn-shadow-card);
}
.ssn-shell .ssn-settings-orbit .ssn-spoke,
.ssn-shell .ssn-settings-orbit button.ssn-spoke {
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(238,240,242,.86));
    background-color: var(--ssn-colour-surface);
    border: 1px solid rgba(20,24,31,.075);
    color: var(--ssn-colour-text);
    box-shadow: 0 18px 44px rgba(33,39,50,.105), inset 0 1px 0 rgba(255,255,255,.92);
}
.ssn-shell .ssn-settings-orbit .ssn-spoke.is-active,
.ssn-shell .ssn-settings-orbit .ssn-spoke:hover,
.ssn-shell .ssn-settings-orbit .ssn-spoke:focus-visible,
.ssn-shell .ssn-settings-orbit button.ssn-spoke.is-active,
.ssn-shell .ssn-settings-orbit button.ssn-spoke:hover,
.ssn-shell .ssn-settings-orbit button.ssn-spoke:focus-visible {
    background: #fff;
    background-color: #fff;
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-settings-orbit .ssn-spoke .ssn-ui-icon,
.ssn-shell .ssn-settings-orbit button.ssn-spoke .ssn-ui-icon {
    color: var(--ssn-colour-icon);
}
.ssn-shell .ssn-settings-orbit .ssn-spoke strong,
.ssn-shell .ssn-settings-orbit button.ssn-spoke strong {
    color: var(--ssn-colour-text);
}


/* v1.03.68 Settings wheel boot-safe orbital recovery
   Keep all orbital hubs hidden until Navigator has completed its boot. This removes
   the oversized raw circle flash without introducing a second wheel or override layer. */
.ssn-shell.ssn-is-booting .ssn-orbit {
    opacity: 0;
    visibility: hidden;
}
.ssn-shell.ssn-is-booting .ssn-settings-grid,
.ssn-shell.ssn-is-booting .ssn-more-hub {
    pointer-events: none;
}
.ssn-shell.ssn-ready .ssn-orbit {
    opacity: 1;
    visibility: visible;
}
.ssn-shell .ssn-settings-orbit,
.ssn-shell .ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-orbit {
    background:
        radial-gradient(circle at center, rgba(255,255,255,.70) 0 25%, rgba(255,255,255,.34) 26% 28%, transparent 29%),
        repeating-radial-gradient(circle at center, transparent 0 118px, rgba(46,51,58,.052) 119px 120px, transparent 121px 224px);
    background-color: transparent;
    overflow: visible;
}
.ssn-settings-grid.ssn-settings-wheel-mode .ssn-settings-centre {
    overflow: visible;
}

/* v1.04.52a permanent refresh flash guard
   Orbital wheels are hidden at markup level using data-ssn-boot-orbit inline boot styles.
   This CSS is the second line of defence only. Do not create a new orbit, wheel or radial hub
   without the boot marker and the JS reveal step, otherwise Safari can paint a raw black circle
   before the full token stylesheet has settled. */
.ssn-shell.ssn-is-booting [data-ssn-boot-orbit] {
    opacity: 0;
    visibility: hidden;
}
.ssn-shell.ssn-ready [data-ssn-boot-orbit] {
    opacity: 1;
    visibility: visible;
}


/* v1.03.69 Training courses foundation */
.ssn-settings-nav button strong em {
    float: right;
    min-width: 26px;
    color: var(--ssn-colour-muted);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
    text-align: right;
}
.ssn-settings-nav .ssn-currency-glyph {
    display: inline-grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: currentColor;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
}
.ssn-training-foundation {
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-training-course-row {
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    transition: background-color var(--ssn-transition-fast), border-color var(--ssn-transition-fast), box-shadow var(--ssn-transition-fast);
}
.ssn-shell .ssn-training-course-row:hover {
    border-color: var(--ssn-colour-row-selected-border);
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    background-image: none;
}
.ssn-shell .ssn-training-course-row.is-active {
    border-color: var(--ssn-colour-row-selected-border);
    background: var(--ssn-colour-row-selected-bg);
    background-color: var(--ssn-colour-row-selected-bg);
    background-image: none;
}
.ssn-shell .ssn-training-course-row:focus-visible {
    outline: 2px solid var(--ssn-colour-row-selected-border);
    outline-offset: 2px;
}
.ssn-training-course-control {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-training-course-control > small,
.ssn-training-course-control > span,
.ssn-training-course-control dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-training-course-control > strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-title);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.1;
}
.ssn-training-course-control dl {
    display: grid;
    gap: 0;
    margin: var(--ssn-space-md) 0 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-training-course-control dl div {
    display: flex;
    justify-content: space-between;
    gap: var(--ssn-space-md);
    padding: 10px 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-training-course-control dd {
    margin: 0;
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
    text-align: right;
}


/* v1.03.70 Training token recovery */
.ssn-shell .ssn-settings-panel[data-ssn-settings-panel="training-courses"] .ssn-training-course-row,
.ssn-shell .ssn-settings-panel[data-ssn-settings-panel="training-courses"] .ssn-training-status {
    background-image: none;
}
.ssn-shell .ssn-settings-panel[data-ssn-settings-panel="training-courses"] .ssn-training-course-row.is-active .ssn-training-status {
    background: var(--ssn-colour-pill-neutral-bg);
    background-color: var(--ssn-colour-pill-neutral-bg);
    border-color: var(--ssn-colour-control-border);
    color: var(--ssn-colour-muted);
}

/* v1.03.71 Training course controls foundation */
.ssn-course-control-form {
    display: grid;
    gap: var(--ssn-space-sm);
    margin-top: var(--ssn-space-md);
    padding-top: var(--ssn-space-md);
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-course-control-form label {
    display: grid;
    gap: 6px;
}
.ssn-course-control-form label > span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-course-control-form input,
.ssn-shell .ssn-course-control-form select {
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    box-shadow: none;
}
.ssn-shell .ssn-course-control-form input:focus,
.ssn-shell .ssn-course-control-form select:focus {
    border-color: var(--ssn-colour-row-selected-border);
    outline: 2px solid var(--ssn-colour-row-selected-bg);
    outline-offset: 1px;
}
.ssn-settings-preview-panel[data-ssn-settings-preview-panel="training-courses"] .ssn-preview-note {
    margin-top: auto;
}

/* v1.03.72 Training course autosave controls */
.ssn-training-course-control {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-course-control-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ssn-space-sm);
    padding-bottom: var(--ssn-space-sm);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-course-control-heading h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-title);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .08em;
    text-transform: none;
}
.ssn-course-control-heading [data-course-save-state] {
    flex: 0 0 auto;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.4;
}
.ssn-course-control-heading [data-course-save-state][data-state="unsaved-changes"] {
    color: var(--ssn-colour-text);
}
.ssn-course-control-heading [data-course-save-state][data-state="could-not-save"] {
    color: var(--ssn-colour-danger-text);
}
.ssn-course-control-form {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}
.ssn-course-control-form label {
    grid-template-columns: minmax(86px, 0.82fr) minmax(0, 1.18fr);
    align-items: center;
    column-gap: var(--ssn-space-sm);
    padding: 4px 0;
}
.ssn-course-control-form label > span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-course-control-form input,
.ssn-shell .ssn-course-control-form select {
    min-height: 34px;
    padding: 7px 10px;
}
.ssn-course-save-note {
    margin-top: auto;
}

/* v1.03.73 Core autosave status */
.ssn-autosave-status {
    position: absolute;
    right: clamp(18px, 2.4vw, 34px);
    bottom: clamp(18px, 2.2vw, 30px);
    z-index: 24;
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--ssn-colour-panel-bg);
    background-color: var(--ssn-colour-panel-bg);
    border: 1px solid var(--ssn-colour-line);
    box-shadow: var(--ssn-shadow-soft);
    color: var(--ssn-colour-muted);
    pointer-events: auto;
}
.ssn-autosave-glyph {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: currentColor;
    background-color: currentColor;
    display: block;
}
.ssn-autosave-status[data-state="saved"] {
    color: var(--ssn-colour-muted);
}
.ssn-autosave-status[data-state="dirty"] {
    color: var(--ssn-colour-text);
}
.ssn-autosave-status[data-state="saving"] {
    color: var(--ssn-colour-text);
}
.ssn-autosave-status[data-state="saving"] .ssn-autosave-glyph {
    background: transparent;
    background-color: transparent;
    border: 2px solid currentColor;
    border-top-color: transparent;
    animation: ssn-autosave-spin .8s linear infinite;
}
.ssn-autosave-status[data-state="error"] {
    color: var(--ssn-colour-danger-text);
    border-color: var(--ssn-colour-danger-border);
}
.ssn-autosave-status[data-state="error"] .ssn-autosave-glyph {
    width: 3px;
    height: 10px;
    border-radius: 999px;
}
@keyframes ssn-autosave-spin {
    to { transform: rotate(360deg); }
}
.ssn-shell .ssn-focus-row-actions {
    display: none;
}

/* v1.04.02 Booking Preview Dropdown Token Fix */
.ssn-booking-preview-panel {
    height: 100%;
}
.ssn-booking-live-preview {
    min-height: 100%;
    display: grid;
    place-items: center;
    padding: var(--ssn-space-xl);
}
.ssn-booking-public-card {
    width: min(100%, 620px);
    border: 1px solid var(--ssn-colour-line);
    border-radius: calc(var(--ssn-radius-card) - 4px);
    background: rgba(255,255,255,.74);
    box-shadow: var(--ssn-shadow-soft);
    padding: clamp(22px, 3vw, 34px);
    display: grid;
    gap: var(--ssn-space-xl);
}
.ssn-booking-public-head {
    display: grid;
    gap: 8px;
    text-align: center;
}
.ssn-booking-public-head small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .24em;
    text-transform: uppercase;
}
.ssn-booking-public-head strong {
    color: var(--ssn-colour-text);
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.08;
}
.ssn-booking-public-head span {
    color: var(--ssn-colour-muted);
    line-height: 1.45;
}
.ssn-booking-type-grid,
.ssn-booking-slot-grid {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-booking-type-grid button,
.ssn-booking-slot-grid button {
    min-height: 62px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    cursor: default;
    text-align: left;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
}
.ssn-booking-type-grid button {
    display: grid;
    grid-template-columns: 34px 1fr;
    align-items: center;
    gap: 10px 14px;
    padding: 12px 14px;
}
.ssn-booking-type-grid button.is-active,
.ssn-booking-slot-grid button:hover {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
}
.ssn-booking-type-grid .ssn-ui-icon {
    grid-row: span 2;
    color: var(--ssn-colour-icon);
}
.ssn-booking-type-grid strong,
.ssn-booking-timezone-stack strong,
.ssn-booking-sync-list strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-type-grid small,
.ssn-booking-timezone-stack span,
.ssn-booking-sync-list small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-booking-timezone-stack,
.ssn-booking-sync-list,
.ssn-booking-route-map {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-booking-timezone-stack > div,
.ssn-booking-sync-list > div,
.ssn-booking-route-map > div,
.ssn-booking-message-preview {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    padding: 14px 16px;
}
.ssn-booking-timezone-stack > div.is-active {
    background: var(--ssn-colour-control-bg-hover);
}
.ssn-booking-slot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ssn-booking-slot-grid button {
    display: grid;
    place-items: center;
    text-align: center;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-message-preview,
.ssn-booking-route-map > div {
    color: var(--ssn-colour-text);
    line-height: 1.55;
}
.ssn-booking-control-panel h2 {
    margin-bottom: var(--ssn-space-md);
}
.ssn-booking-control-stack {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-booking-control-stack label {
    display: grid;
    gap: 8px;
}
.ssn-booking-control-stack label span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-control-stack input,
.ssn-booking-control-stack select {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 6px 10px;
    box-shadow: none;
}


.ssn-booking-location-select {
    display: grid;
    gap: 8px;
    margin-top: var(--ssn-space-sm);
}
.ssn-booking-location-select span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-location-select select {
    width: 100%;
    min-height: 52px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 14px;
    box-shadow: none;
    outline: none;
    appearance: auto;
    -webkit-appearance: menulist;
}
.ssn-booking-location-select select:hover,
.ssn-booking-location-select select:focus,
.ssn-booking-type-grid button:hover,
.ssn-booking-slot-grid button:hover,
.ssn-booking-type-grid button:focus,
.ssn-booking-slot-grid button:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}


/* v1.04.03 Booking Timezone Selector Foundation */
.ssn-booking-timezone-select {
    display: grid;
    gap: 8px;
    margin-top: var(--ssn-space-xs);
}
.ssn-booking-timezone-select span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-timezone-select select {
    width: 100%;
    min-height: 52px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 14px;
    box-shadow: none;
    outline: none;
    appearance: auto;
    -webkit-appearance: menulist;
}
.ssn-booking-timezone-select select:hover,
.ssn-booking-timezone-select select:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-conversion-note {
    display: grid;
    gap: 6px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    padding: 14px 16px;
}
.ssn-booking-conversion-note strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-conversion-note span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.45;
}
.ssn-booking-converted-slots button {
    cursor: default;
}

/* v1.04.04 Booking Location-First Experience */
.ssn-booking-location-flow {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-booking-location-head {
    display: grid;
    gap: 5px;
}
.ssn-booking-location-head strong,
.ssn-booking-selected-note strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-location-head span,
.ssn-booking-selected-note span,
.ssn-booking-other-country span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.45;
}
.ssn-booking-country-grid,
.ssn-booking-region-list {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-booking-country-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ssn-booking-region-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ssn-booking-country-grid button,
.ssn-booking-region-list button {
    min-height: 46px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
    font-weight: var(--ssn-font-weight-strong);
    text-align: center;
}
.ssn-booking-country-grid button:hover,
.ssn-booking-region-list button:hover,
.ssn-booking-country-grid button:focus,
.ssn-booking-region-list button:focus,
.ssn-booking-country-grid button.is-active,
.ssn-booking-region-list button.is-active {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-other-country {
    display: grid;
    gap: 8px;
}
.ssn-booking-other-country select {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 12px;
    box-shadow: none;
    outline: none;
    appearance: auto;
    -webkit-appearance: menulist;
}
.ssn-booking-other-country select:hover,
.ssn-booking-other-country select:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-selected-note {
    display: grid;
    gap: 6px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    padding: 14px 16px;
}
@media (max-width: 720px) {
    .ssn-booking-country-grid,
    .ssn-booking-region-list {
        grid-template-columns: 1fr;
    }
}

/* v1.04.05 Booking single-decision flow */
.ssn-booking-step {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-booking-choice-list {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-booking-choice-list button {
    min-height: 48px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--ssn-space-sm);
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 14px;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
    text-align: left;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-choice-list button span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-booking-choice-list button em {
    color: var(--ssn-colour-muted);
    font-style: normal;
    font-size: 18px;
    line-height: 1;
}
.ssn-booking-choice-list button:hover,
.ssn-booking-choice-list button:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-back {
    justify-self: start;
    min-height: 34px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    padding: 0 12px;
    font-weight: var(--ssn-font-weight-strong);
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
}
.ssn-booking-back:hover,
.ssn-booking-back:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}

/* v1.04.06 Booking task-first experience */
.ssn-booking-appointment-card {
    max-width: 560px;
    gap: var(--ssn-space-lg);
}
.ssn-booking-hero-head {
    text-align: left;
}
.ssn-booking-compact-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ssn-space-sm);
}
.ssn-booking-compact-meta > div {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    padding: 12px 14px;
    display: grid;
    gap: 4px;
}
.ssn-booking-compact-meta span,
.ssn-booking-timezone-panel label span,
.ssn-booking-date-strip button span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-compact-meta strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-link-control {
    justify-self: start;
    min-height: 34px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 13px;
    font-weight: var(--ssn-font-weight-strong);
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
}
.ssn-booking-link-control:hover,
.ssn-booking-link-control:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-timezone-panel {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: rgba(255,255,255,.86);
    background-color: rgba(255,255,255,.86);
    padding: var(--ssn-space-md);
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-booking-timezone-panel label {
    display: grid;
    gap: 6px;
}
.ssn-booking-timezone-panel select {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 12px;
    box-shadow: none;
    outline: none;
    appearance: auto;
    -webkit-appearance: menulist;
}
.ssn-booking-timezone-panel select:hover,
.ssn-booking-timezone-panel select:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-date-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--ssn-space-sm);
}
.ssn-booking-date-strip button {
    min-height: 64px;
    display: grid;
    gap: 4px;
    place-items: center;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 8px;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
}
.ssn-booking-date-strip button strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-date-strip button:hover,
.ssn-booking-date-strip button:focus,
.ssn-booking-date-strip button.is-active {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-times-head {
    padding: 0;
    border: 0;
    background: transparent;
    background-color: transparent;
}
@media (max-width: 720px) {
    .ssn-booking-compact-meta,
    .ssn-booking-date-strip {
        grid-template-columns: 1fr;
    }
}

/* v1.04.07 booking timezone card selector */
.ssn-booking-timezone-card {
    width: 100%;
    min-height: 58px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 12px 14px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    text-align: left;
    gap: 4px 12px;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
}
.ssn-booking-timezone-card span {
    grid-column: 1 / -1;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-timezone-card strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-timezone-card em {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-timezone-card:hover,
.ssn-booking-timezone-card:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line-strong, var(--ssn-colour-line));
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-timezone-screen {
    display: grid;
    gap: var(--ssn-space-sm);
}
.ssn-booking-timezone-screen strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-booking-timezone-screen > span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-booking-choice-stack {
    display: grid;
    gap: 8px;
}
.ssn-booking-choice-stack button,
.ssn-booking-done-control,
.ssn-booking-back-control {
    min-height: 42px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 14px;
    font-weight: var(--ssn-font-weight-strong);
    text-align: left;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    cursor: default;
}
.ssn-booking-choice-stack button:hover,
.ssn-booking-choice-stack button:focus,
.ssn-booking-done-control:hover,
.ssn-booking-done-control:focus,
.ssn-booking-back-control:hover,
.ssn-booking-back-control:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    outline: none;
    box-shadow: none;
}
.ssn-booking-back-control {
    width: max-content;
    min-height: 34px;
    border-radius: 999px;
}
.ssn-booking-done-control {
    width: max-content;
    text-align: center;
}
.ssn-booking-timezone-panel select {
    min-height: 42px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 12px;
    box-shadow: none;
}


/* v1.04.08 Booking selector and token hardening */
.ssn-shell .ssn-booking-timezone-panel[hidden],
.ssn-booking-timezone-panel[hidden] {
    display: none;
}
.ssn-shell .ssn-booking-timezone-card,
.ssn-shell .ssn-booking-timezone-card[aria-expanded="true"],
.ssn-shell .ssn-booking-back-control,
.ssn-shell .ssn-booking-done-control {
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    border-color: var(--ssn-colour-control-border);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-booking-timezone-card:hover,
.ssn-shell .ssn-booking-timezone-card:focus,
.ssn-shell .ssn-booking-timezone-card[aria-expanded="true"]:hover,
.ssn-shell .ssn-booking-timezone-card[aria-expanded="true"]:focus,
.ssn-shell .ssn-booking-back-control:hover,
.ssn-shell .ssn-booking-back-control:focus,
.ssn-shell .ssn-booking-done-control:hover,
.ssn-shell .ssn-booking-done-control:focus {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    box-shadow: none;
}
.ssn-shell .ssn-booking-timezone-card em {
    color: var(--ssn-colour-muted);
}

/* v1.04.12 Notification Engine */
.ssn-notification-panel {
    position: fixed;
    top: calc(var(--ssn-topbar-height) + 18px);
    right: 32px;
    width: min(390px, calc(100vw - 48px));
    max-height: calc(100vh - var(--ssn-topbar-height) - 48px);
    display: flex;
    flex-direction: column;
    background: var(--ssn-colour-surface-strong);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    z-index: 90;
    opacity: 0;
    transform: translateY(-8px) scale(.98);
    pointer-events: none;
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast);
    overflow: hidden;
}
.ssn-notifications-open .ssn-notification-panel,
.ssn-notification-panel[aria-hidden="false"] {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}
.ssn-notification-panel > header {
    display: flex;
    justify-content: space-between;
    gap: var(--ssn-space-md);
    align-items: flex-start;
    padding: 22px 22px 18px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-notification-panel h2 {
    margin: 0 0 4px;
    font-size: 13px;
    letter-spacing: .32em;
    text-transform: uppercase;
}
.ssn-notification-panel p { margin: 0; color: var(--ssn-colour-muted); font-size: var(--ssn-font-size-small); }
.ssn-notification-feed { overflow: auto; padding: 14px; }
.ssn-notification-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--ssn-space-sm) var(--ssn-space-md);
    padding: 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg);
    margin-bottom: 10px;
}
.ssn-notification-copy strong { display: block; margin: 0 0 4px; }
.ssn-notification-copy p { margin: 0 0 6px; color: var(--ssn-colour-text); }
.ssn-notification-copy small { color: var(--ssn-colour-muted); line-height: 1.35; }
.ssn-notification-side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.ssn-notification-side span { color: var(--ssn-colour-text); font-weight: var(--ssn-font-weight-strong); }
.ssn-notification-item footer { grid-column: 1 / -1; display: flex; gap: 8px; justify-content: flex-end; }
.ssn-notification-item button {
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    padding: 8px 12px;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-notification-item button:hover,
.ssn-notification-item button:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-row-selected-border);
}
.ssn-activity-item-clean {
    grid-template-columns: minmax(0, 1fr) auto;
}
.ssn-activity-item-clean > div { min-width: 0; }
.ssn-activity-item-clean > span { display: none; }

/* v1.04.13 activity edit and core date picker */
.ssn-activity-feed {
    padding-left: 18px;
    padding-right: 18px;
}
.ssn-activity-item-clean {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    padding: 14px 0 18px;
    cursor: pointer;
}
.ssn-activity-item-clean:hover,
.ssn-activity-item-clean:focus-within {
    background: var(--ssn-colour-row-hover);
    border-radius: 16px;
    padding-left: 12px;
    padding-right: 12px;
}
.ssn-activity-item-clean p {
    max-width: none;
    white-space: pre-wrap;
    line-height: 1.45;
}
.ssn-activity-item-clean time {
    white-space: nowrap;
    padding-left: 10px;
}
.ssn-activity-item-actions {
    grid-column: 1 / -1;
}
.ssn-date-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    margin: 0;
}
.ssn-date-input-row input {
    min-width: 0;
}
.ssn-date-picker-trigger,
.ssn-core-date-picker button {
    appearance: none;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    min-height: 42px;
    padding: 0 14px;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-date-picker-trigger:hover,
.ssn-date-picker-trigger:focus-visible,
.ssn-core-date-picker button:hover,
.ssn-core-date-picker button:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-row-selected-border);
}
.ssn-core-date-picker {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .75fr) auto auto;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg);
}
.ssn-core-date-picker[hidden] { display: none; }
.ssn-core-date-picker input {
    min-height: 40px;
    padding: 0 10px;
}


/* v1.04.14 activity rail/date picker hardening */
.ssn-shell input[type="radio"],
.ssn-shell input[type="checkbox"] {
    accent-color: var(--ssn-colour-text);
}
.ssn-activity-feed {
    padding-left: 16px;
    padding-right: 16px;
}
.ssn-activity-item-clean {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 14px 0 18px;
}
.ssn-activity-item-clean:hover,
.ssn-activity-item-clean:focus-within {
    padding-left: 12px;
    padding-right: 12px;
}
.ssn-activity-main {
    width: 100%;
    min-width: 0;
}
.ssn-activity-meta-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
}
.ssn-activity-item-clean p {
    width: 100%;
    max-width: none;
    margin-top: 8px;
}
.ssn-activity-item-clean time {
    padding-left: 0;
    flex: 0 0 auto;
}
.ssn-activity-item-clean em {
    display: inline-flex;
    margin-top: 8px;
}
.ssn-activity-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.ssn-date-input-row {
    grid-template-columns: minmax(0, 1fr) 44px;
}
.ssn-date-picker-trigger,
.ssn-shell .ssn-date-picker-trigger,
.ssn-core-date-picker button,
.ssn-shell .ssn-core-date-picker button {
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-line);
}
.ssn-date-picker-trigger:hover,
.ssn-date-picker-trigger:focus-visible,
.ssn-core-date-picker button:hover,
.ssn-core-date-picker button:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-row-selected-border);
}
.ssn-date-picker-icon {
    width: 44px;
    min-width: 44px;
    height: 42px;
    padding: 0;
    display: grid;
    place-items: center;
}
.ssn-date-picker-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.ssn-core-date-picker {
    grid-template-columns: minmax(140px, 1.15fr) minmax(92px, .75fr);
}
.ssn-core-date-picker button {
    min-height: 38px;
}
@media (min-width: 720px) {
    .ssn-core-date-picker {
        grid-template-columns: minmax(140px, 1.15fr) minmax(92px, .75fr) auto auto;
    }
}

/* v1.04.15 Pulse centre and action completion */
.ssn-top-actions [data-ssn-notification-toggle] .ssn-ui-icon svg {
    stroke: currentColor;
    fill: none;
}
.ssn-notification-panel {
    width: min(420px, calc(100vw - 48px));
}
.ssn-notification-panel > header {
    align-items: center;
    flex-wrap: wrap;
}
.ssn-notification-panel > header > div {
    min-width: 0;
    flex: 1 1 100%;
}
.ssn-pulse-tabs {
    display: flex;
    gap: 6px;
    padding: 4px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
}
.ssn-pulse-tabs button,
.ssn-shell .ssn-pulse-tabs button {
    appearance: none;
    border: 0;
    border-radius: var(--ssn-radius-pill);
    background: transparent;
    color: var(--ssn-colour-muted);
    padding: 7px 12px;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-pulse-tabs button.is-active,
.ssn-shell .ssn-pulse-tabs button.is-active {
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-text);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-notification-feed {
    padding: 16px;
}
.ssn-notification-item.ssn-pulse-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 18px;
    background: var(--ssn-colour-surface-strong);
    box-shadow: none;
    cursor: pointer;
    transition: background var(--ssn-transition-fast), border-color var(--ssn-transition-fast), transform var(--ssn-transition-fast);
}
.ssn-notification-item.ssn-pulse-card:hover,
.ssn-notification-item.ssn-pulse-card:focus-visible {
    background: var(--ssn-colour-row-hover);
    border-color: var(--ssn-colour-row-selected-border);
    outline: none;
    transform: translateY(-1px);
}
.ssn-notification-copy strong {
    font-size: 14px;
    line-height: 1.25;
}
.ssn-notification-copy p {
    font-size: 12px;
    color: var(--ssn-colour-muted);
}
.ssn-notification-side {
    align-items: flex-end;
    gap: 10px;
}
.ssn-notification-side span {
    font-size: 12px;
}
.ssn-pulse-complete,
.ssn-pulse-dismiss,
.ssn-shell .ssn-pulse-complete,
.ssn-shell .ssn-pulse-dismiss {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    padding: 0;
}
.ssn-pulse-complete span {
    display: block;
    font-weight: var(--ssn-font-weight-strong);
    transform: translateY(-1px);
}
.ssn-pulse-complete:hover,
.ssn-pulse-complete:focus-visible,
.ssn-pulse-dismiss:hover,
.ssn-pulse-dismiss:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-row-selected-border);
}
.ssn-notification-item footer,
.ssn-notification-item [data-ssn-notification-open] {
    display: none;
}

/* Keep activity timeline aligned while scrolling. No hover indentation. */
.ssn-activity-feed,
.ssn-shell .ssn-activity-feed {
    padding-left: 18px;
    padding-right: 18px;
    scrollbar-gutter: stable;
}
.ssn-activity-item-clean,
.ssn-shell .ssn-activity-item-clean,
.ssn-activity-item-clean:hover,
.ssn-activity-item-clean:focus-within {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
    background: transparent;
}
.ssn-activity-main,
.ssn-activity-item-actions {
    width: 100%;
}

/* Extra token hardening for activity composer controls */
.ssn-shell .ssn-activity-type-grid input[type="radio"],
.ssn-shell .ssn-activity-source-toggle input[type="radio"],
.ssn-shell .ssn-activity-toggle input[type="checkbox"] {
    accent-color: var(--ssn-colour-text);
}
.ssn-shell .ssn-date-picker-icon,
.ssn-shell .ssn-date-picker-icon:hover,
.ssn-shell .ssn-date-picker-icon:focus-visible {
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
}

/* v1.04.16 Pulse tab logic and premium due-date picker */
.ssn-pulse-tabs[hidden],
.ssn-pulse-tabs button[hidden] {
    display: none;
}
.ssn-pulse-tabs button {
    min-width: 0;
}
.ssn-pulse-clear-all,
.ssn-shell .ssn-pulse-clear-all {
    appearance: none;
    width: calc(100% - 2px);
    min-height: 38px;
    margin: 0 0 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-pulse-clear-all:hover,
.ssn-pulse-clear-all:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-row-selected-border);
    outline: none;
}
.ssn-premium-date-picker,
.ssn-shell .ssn-premium-date-picker {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 18px;
    background: var(--ssn-colour-surface-strong);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-premium-date-picker[hidden] {
    display: none;
}
.ssn-date-picker-quick,
.ssn-date-picker-custom {
    display: grid;
    gap: 8px;
}
.ssn-date-picker-quick {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ssn-date-picker-custom {
    grid-template-columns: minmax(0, 1fr) minmax(88px, .65fr) auto auto;
    align-items: center;
}
.ssn-date-picker-quick button,
.ssn-date-picker-custom button,
.ssn-shell .ssn-date-picker-quick button,
.ssn-shell .ssn-date-picker-custom button {
    min-height: 38px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    padding: 0 12px;
}
.ssn-date-picker-quick button:hover,
.ssn-date-picker-quick button:focus-visible,
.ssn-date-picker-custom button:hover,
.ssn-date-picker-custom button:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-colour-row-selected-border);
    outline: none;
}
.ssn-date-picker-custom input,
.ssn-shell .ssn-date-picker-custom input {
    min-height: 38px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 0 12px;
}
.ssn-activity-composer footer button,
.ssn-shell .ssn-activity-composer footer button {
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-line);
}
.ssn-activity-composer footer button[type="submit"],
.ssn-shell .ssn-activity-composer footer button[type="submit"] {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
    border-color: var(--ssn-colour-button-primary-bg);
}
@media (max-width: 720px) {
    .ssn-date-picker-quick,
    .ssn-date-picker-custom {
        grid-template-columns: 1fr;
    }
}

/* v1.04.17 Pulse rail overlay and date picker position fix */
.ssn-notification-panel,
.ssn-shell .ssn-notification-panel {
    top: calc(var(--ssn-topbar-height) + 28px);
    right: 32px;
    bottom: 124px;
    width: min(366px, calc(100vw - 64px));
    height: auto;
    max-height: none;
    border-radius: var(--ssn-radius-panel);
    transform: translateX(10px) scale(.985);
}
.ssn-notifications-open .ssn-notification-panel,
.ssn-notification-panel[aria-hidden="false"] {
    transform: translateX(0) scale(1);
}
.ssn-notification-panel .ssn-notification-feed {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    scrollbar-gutter: stable;
}
.ssn-notification-panel > header {
    flex: 0 0 auto;
}
.ssn-date-input-row {
    position: relative;
}
.ssn-date-input-row + input + .ssn-premium-date-picker,
.ssn-date-input-row + input + .ssn-core-date-picker,
.ssn-activity-next-grid .ssn-premium-date-picker,
.ssn-activity-next-grid .ssn-core-date-picker {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: min(360px, calc(100vw - 64px));
    z-index: 120;
    margin: 0;
}
.ssn-activity-next-grid label:has(.ssn-date-input-row) {
    position: relative;
}
@media (max-width: 980px) {
    .ssn-notification-panel,
    .ssn-shell .ssn-notification-panel {
        right: 18px;
        left: 18px;
        width: auto;
    }
}

/* v1.04.18 Shell Unification + Booking Training Foundation */
.ssn-home-shell-rail {
    height: min(640px, calc(100vh - 220px));
}
.ssn-home-rail-link {
    width: 100%;
    min-height: 52px;
    border: 1px solid transparent;
    border-radius: var(--ssn-radius-row);
    background: transparent;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    color: var(--ssn-colour-text);
    text-decoration: none;
}
.ssn-home-rail-link:hover,
.ssn-home-rail-link.is-active {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
}
.ssn-home-rail-link strong,
.ssn-home-rail-link small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-home-rail-link small,
.ssn-home-rail-link em,
.ssn-home-rail-link b {
    color: var(--ssn-colour-muted);
    font-style: normal;
    font-size: var(--ssn-font-size-label);
}
.ssn-home-shell-mini {
    margin-top: auto;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    padding: 12px;
    background: var(--ssn-colour-control-bg);
}
.ssn-home-shell-mini small,
.ssn-home-shell-mini strong {
    display: block;
}
.ssn-home-shell-mini small { color: var(--ssn-colour-muted); }
.ssn-home-shell-mini strong { margin-top: 4px; }
.ssn-home-shell-agenda { padding: 0 8px 12px; }
.ssn-shell.ssn-bookings-open [data-ssn-home-grid],
.ssn-shell.ssn-bookings-open [data-ssn-settings-workspace],
.ssn-shell.ssn-bookings-open [data-ssn-projects-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-bookings-grid {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
}
.ssn-shell.ssn-bookings-open .ssn-bookings-grid {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-booking-list {
    min-height: 0;
    overflow: auto;
    padding: 10px 12px;
}
.ssn-booking-drawer {
    position: fixed;
    top: calc(var(--ssn-topbar-height) + 28px);
    right: 32px;
    bottom: 124px;
    z-index: 35;
    width: min(420px, calc(100vw - 64px));
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(16px);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-booking-drawer[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
}
.ssn-booking-form {
    display: grid;
    gap: 14px;
    padding-top: 18px;
}
.ssn-booking-form label {
    display: grid;
    gap: 7px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    text-transform: uppercase;
    letter-spacing: .12em;
}
.ssn-booking-form input,
.ssn-booking-form select {
    width: 100%;
    height: 44px;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg-strong);
    color: var(--ssn-colour-text);
    padding: 0 12px;
    text-transform: none;
    letter-spacing: 0;
}
.ssn-booking-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}
.ssn-booking-form button[type="submit"] {
    height: 46px;
    border: 1px solid var(--ssn-colour-text);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
    cursor: pointer;
}
.ssn-booking-form p {
    min-height: 18px;
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-shell[data-ssn-action-context="bookings"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="bookings"] {
    display: inline-flex;
}


/* v1.04.19 Home Content Restore + Expanded Rail Layout */
.ssn-shell .ssn-home-mission-control,
.ssn-shell .ssn-agenda-card {
    height: min(640px, calc(100vh - 220px));
}
.ssn-shell .ssn-home-mission-control {
    justify-content: flex-start;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-list {
    padding: 6px 0 0;
}
.ssn-shell .ssn-focus-row-account em,
.ssn-shell .ssn-focus-row-date b {
    display: block;
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-focus-row-date {
    justify-self: end;
    text-align: right;
}
.ssn-shell.ssn-bookings-open .ssn-bookings-grid {
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 138px;
}
.ssn-shell.ssn-bookings-open .ssn-project-centre-minimal {
    min-height: 0;
}
.ssn-bookings-grid .ssn-project-centre-minimal {
    overflow: hidden;
}
.ssn-bookings-grid .ssn-booking-list {
    flex: 1 1 auto;
    min-height: 0;
}
.ssn-booking-drawer {
    bottom: 138px;
}
.ssn-booking-form-empty {
    min-height: auto;
    padding: 14px;
}

/* v1.04.22a Recovery: safe core creation pane foundation from v1.04.21 */
.ssn-shell.ssn-bookings-open .ssn-bookings-grid {
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 138px;
    grid-template-columns: minmax(250px, 0.78fr) minmax(520px, 2.2fr) minmax(300px, 1fr);
}
.ssn-shell[data-ssn-action-context="bookings"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="bookings"] {
    display: inline-flex;
}
.ssn-booking-drawer {
    width: min(420px, calc(100vw - 64px));
    max-height: calc(100vh - var(--ssn-topbar-height) - 166px);
    overflow: auto;
    box-shadow: var(--ssn-shadow-card);
}
.ssn-shell.ssn-booking-drawer-open .ssn-booking-drawer {
    z-index: 55;
}
.ssn-create-pane-form {
    gap: 16px;
}
.ssn-create-pane-step {
    display: grid;
    gap: 10px;
}
.ssn-create-pane-step > small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .14em;
    text-transform: uppercase;
}
.ssn-create-choice-row,
.ssn-create-project-picker {
    display: grid;
    gap: 8px;
}
.ssn-create-choice-row {
    grid-template-columns: 1fr;
}
.ssn-create-choice-row button,
.ssn-create-project-picker button {
    width: 100%;
    min-height: 56px;
    display: grid;
    gap: 3px;
    align-items: center;
    text-align: left;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    padding: 10px 12px;
    cursor: pointer;
}
.ssn-create-choice-row button {
    grid-template-columns: 34px 1fr;
    grid-template-areas: "icon title" "icon meta";
}
.ssn-create-choice-row .ssn-ui-icon { grid-area: icon; }
.ssn-create-choice-row strong { grid-area: title; }
.ssn-create-choice-row small { grid-area: meta; }
.ssn-create-choice-row button[disabled] {
    opacity: .52;
    cursor: not-allowed;
}
.ssn-create-choice-row button.is-active,
.ssn-create-project-picker button.is-active,
.ssn-create-choice-row button:not([disabled]):hover,
.ssn-create-project-picker button:hover {
    border-color: var(--ssn-colour-control-border-strong);
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
}
.ssn-create-project-picker {
    max-height: 260px;
    overflow: auto;
    padding-right: 2px;
}
.ssn-create-project-picker button strong,
.ssn-create-project-picker button span,
.ssn-create-project-picker button small {
    overflow-wrap: anywhere;
}
.ssn-create-project-picker button small {
    color: var(--ssn-colour-muted);
}


/* v1.04.23 Right Rail Architecture Pass
   Bookings is a dashboard and must keep the same Home action bar.
   Creation panes slide over the right side and do not replace the permanent context rail. */
.ssn-shell[data-ssn-action-context="bookings"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="bookings"] {
    display: inline-flex;
}
.ssn-shell[data-ssn-action-context="bookings"] .ssn-actionbar {
    inline-size: max-content;
    max-inline-size: calc(100vw - 96px);
}
.ssn-shell[data-ssn-action-context="bookings"] .ssn-actionbar .ssn-smart-action {
    min-width: 142px;
    max-width: 178px;
}
.ssn-shell.ssn-bookings-open .ssn-bookings-grid {
    padding-bottom: 0;
}
.ssn-shell.ssn-booking-drawer-open .ssn-booking-drawer {
    right: 32px;
    bottom: 138px;
    z-index: 65;
}
@media (max-width: 1100px) {
    .ssn-shell[data-ssn-action-context="bookings"] .ssn-actionbar .ssn-smart-action {
        min-width: 128px;
        padding-left: 18px;
        padding-right: 18px;
    }
}


/* v1.04.24 Right Pane Host Unification
   One temporary pane may sit over the permanent context rail. Pulse and Create use the same rail footprint. */
.ssn-shell {
    --ssn-right-pane-host-top: calc(var(--ssn-topbar-height) + 28px);
    --ssn-right-pane-host-right: 32px;
    --ssn-right-pane-host-bottom: 138px;
    --ssn-right-pane-host-width: min(366px, calc(100vw - 64px));
}
.ssn-shell .ssn-notification-panel,
.ssn-shell .ssn-booking-drawer {
    position: fixed;
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    bottom: var(--ssn-right-pane-host-bottom);
    left: auto;
    width: var(--ssn-right-pane-host-width);
    height: auto;
    max-height: none;
    min-height: 0;
    z-index: 70;
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-card);
    overflow: hidden;
    transform: translateX(16px) scale(.99);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell .ssn-notification-panel[aria-hidden="false"],
.ssn-shell .ssn-booking-drawer[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell .ssn-notification-panel[aria-hidden="true"],
.ssn-shell .ssn-booking-drawer[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell .ssn-notification-panel {
    display: flex;
    flex-direction: column;
    padding: 24px;
}
.ssn-shell .ssn-booking-drawer {
    display: flex;
    flex-direction: column;
    padding: 24px;
}
.ssn-shell .ssn-notification-panel > header,
.ssn-shell .ssn-booking-drawer > .ssn-project-overview-head {
    flex: 0 0 auto;
}
.ssn-shell .ssn-notification-feed,
.ssn-shell .ssn-booking-form {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
}
.ssn-shell.ssn-bookings-open .ssn-bookings-grid,
.ssn-shell.ssn-projects-open .ssn-projects-grid {
    grid-template-columns: minmax(260px, 322px) minmax(520px, 1fr) var(--ssn-right-pane-host-width);
}
@media (max-width: 980px) {
    .ssn-shell {
        --ssn-right-pane-host-right: 18px;
        --ssn-right-pane-host-width: calc(100vw - 36px);
    }
}

/* v1.04.25 Right Pane Host forensic hardening
   Pulse and Create are now treated as temporary modes of the permanent right rail.
   They use the same shell rail footprint, opacity, surface and scroll ownership. */
.ssn-shell {
    --ssn-right-pane-host-top: calc(var(--ssn-topbar-height) + 12px + ((100vh - var(--ssn-topbar-height) - 12px - var(--ssn-page-padding-bottom) - 78px - var(--ssn-space-lg) - min(640px, calc(100vh - 220px))) / 2));
    --ssn-right-pane-host-right: var(--ssn-page-padding-x);
    --ssn-right-pane-host-bottom: auto;
    --ssn-right-pane-host-height: min(640px, calc(100vh - 220px));
    --ssn-right-pane-host-width: min(var(--ssn-panel-width), calc(100vw - (var(--ssn-page-padding-x) * 2)));
}
.ssn-shell .ssn-notification-panel,
.ssn-shell .ssn-booking-drawer {
    position: fixed;
    box-sizing: border-box;
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    bottom: auto;
    left: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    min-width: 0;
    min-height: 0;
    z-index: 80;
    display: flex;
    flex-direction: column;
    padding: 22px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: rgba(255,255,255,.975);
    background-color: rgba(255,255,255,.975);
    color: var(--ssn-colour-text);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(24px) saturate(120%);
    overflow: hidden;
    transform: translateX(14px) scale(.992);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell .ssn-notification-panel[aria-hidden="false"],
.ssn-shell .ssn-booking-drawer[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell .ssn-notification-panel[aria-hidden="true"],
.ssn-shell .ssn-booking-drawer[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell .ssn-notification-panel > header,
.ssn-shell .ssn-booking-drawer > .ssn-project-overview-head {
    flex: 0 0 auto;
    min-height: 0;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-notification-feed,
.ssn-shell .ssn-booking-form {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 14px 2px 0 0;
}
.ssn-shell .ssn-booking-drawer .ssn-create-pane-form,
.ssn-shell .ssn-booking-drawer .ssn-booking-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.ssn-shell .ssn-notification-panel::before,
.ssn-shell .ssn-booking-drawer::before {
    content: none;
}
@media (max-width: 980px) {
    .ssn-shell {
        --ssn-right-pane-host-right: 18px;
        --ssn-right-pane-host-width: calc(100vw - 36px);
        --ssn-right-pane-host-top: calc(var(--ssn-topbar-height) + 18px);
        --ssn-right-pane-host-height: calc(100vh - var(--ssn-topbar-height) - 156px);
    }
}

/* v1.04.26 Booking creation flow owner: project-first creation state */
.ssn-shell .ssn-create-pane-step.is-disabled {
    opacity: .52;
}
.ssn-shell .ssn-create-pane-step.is-disabled label,
.ssn-shell .ssn-create-pane-step.is-disabled input,
.ssn-shell .ssn-create-pane-step.is-disabled select {
    pointer-events: none;
}
.ssn-shell .ssn-create-project-picker [data-ssn-create-project-option] small + small {
    margin-top: 2px;
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-create-project-picker [data-ssn-create-project-option].is-active {
    background: var(--ssn-colour-surface-strong);
    border-color: var(--ssn-colour-text);
}

/* v1.04.28 Premium Project Title Editor */
.ssn-project-title-row {
    display: flex;
    align-items: baseline;
    gap: var(--ssn-space-sm);
    min-width: 0;
}
.ssn-project-title-row h1 {
    min-width: 0;
    border-radius: 14px;
    padding: 2px 6px 3px;
    margin-left: -6px;
    cursor: pointer;
    transition: background-color .16s ease, box-shadow .16s ease, color .16s ease;
}
.ssn-project-title-row h1:hover,
.ssn-project-title-row h1:focus {
    outline: none;
    background: var(--ssn-colour-surface-soft);
    background-color: var(--ssn-colour-surface-soft);
    box-shadow: inset 0 0 0 1px var(--ssn-colour-line);
}
.ssn-project-title-row h1.is-editing {
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    box-shadow: inset 0 0 0 1px var(--ssn-colour-text);
    cursor: text;
}
.ssn-project-title-row h1.is-saving {
    opacity: .72;
}
.ssn-title-edit-hint {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(2px);
    transition: opacity .16s ease, transform .16s ease;
    white-space: nowrap;
}
.ssn-project-title-row:hover .ssn-title-edit-hint,
.ssn-project-title-row:focus-within .ssn-title-edit-hint {
    opacity: 1;
    transform: translateY(0);
}
.ssn-project-title-message {
    min-height: 16px;
    margin: 4px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-course-picker-pane[aria-hidden="true"] {
    display: none;
}
.ssn-course-picker-form p {
    margin: 0 0 var(--ssn-space-sm);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}
.ssn-course-picker-list button {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    text-align: left;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    color: var(--ssn-colour-text);
    border-radius: 14px;
    padding: 12px 14px;
    display: grid;
    gap: 3px;
    cursor: pointer;
}
.ssn-course-picker-list button:hover,
.ssn-course-picker-list button:focus,
.ssn-course-picker-list button.is-active {
    outline: none;
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-colour-surface-strong);
}
.ssn-course-picker-list button.is-saving {
    opacity: .72;
    pointer-events: none;
}
.ssn-course-picker-list button strong {
    font-size: 14px;
}
.ssn-course-picker-list button span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}


/* v1.04.29 Course Picker UIX Hardening
   Course title editing uses the right pane host and core token controls only. */
.ssn-project-title-row {
    align-items: center;
    gap: 8px;
}
.ssn-project-title-row h1,
.ssn-project-title-row h1:hover,
.ssn-project-title-row h1:focus {
    color: var(--ssn-colour-heading, var(--ssn-colour-text));
}
.ssn-project-title-row h1:hover,
.ssn-project-title-row h1:focus {
    background: var(--ssn-colour-surface-soft);
    background-color: var(--ssn-colour-surface-soft);
    box-shadow: inset 0 0 0 1px var(--ssn-colour-line);
}
.ssn-title-edit-hint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: var(--ssn-radius-pill);
    border: 1px solid transparent;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-muted);
    font-size: 0;
    opacity: 0;
    transform: none;
    transition: opacity .16s ease, background-color .16s ease, border-color .16s ease;
}
.ssn-title-edit-hint::before {
    content: '›';
    font-size: 18px;
    line-height: 1;
    font-weight: 700;
}
.ssn-project-title-row:hover .ssn-title-edit-hint,
.ssn-project-title-row:focus-within .ssn-title-edit-hint {
    opacity: .62;
    background: var(--ssn-colour-surface-soft);
    background-color: var(--ssn-colour-surface-soft);
    border-color: var(--ssn-colour-line);
}
.ssn-shell .ssn-course-picker-pane > .ssn-project-overview-head,
.ssn-shell .ssn-booking-drawer > .ssn-project-overview-head.ssn-course-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-course-picker-pane > .ssn-project-overview-head h2,
.ssn-shell .ssn-booking-drawer > .ssn-project-overview-head.ssn-course-picker-head h2 {
    margin: 0;
}
.ssn-shell .ssn-course-picker-pane .ssn-close-control,
.ssn-shell .ssn-booking-drawer .ssn-course-picker-head .ssn-close-control {
    position: static;
    flex: 0 0 auto;
}
.ssn-course-picker-form {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding-top: 14px;
}
.ssn-course-picker-form .ssn-course-picker-step {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0;
    border: 0;
    background: transparent;
    background-color: transparent;
}
.ssn-course-picker-form p:not([data-ssn-course-pane-message]),
.ssn-course-picker-form .ssn-course-picker-step > small {
    display: none;
}
.ssn-course-picker-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 0 2px 4px 0;
}
.ssn-course-picker-list button,
.ssn-course-picker-list button:hover,
.ssn-course-picker-list button:focus,
.ssn-course-picker-list button.is-active {
    color: var(--ssn-colour-text);
}
.ssn-course-picker-list button:hover,
.ssn-course-picker-list button:focus {
    outline: none;
    border-color: var(--ssn-colour-line-strong, var(--ssn-colour-line));
    background: var(--ssn-colour-surface-soft);
    background-color: var(--ssn-colour-surface-soft);
    box-shadow: inset 0 0 0 1px var(--ssn-colour-line);
}
.ssn-course-picker-list button.is-active {
    border-color: var(--ssn-colour-text);
    background: var(--ssn-colour-surface-soft);
    background-color: var(--ssn-colour-surface-soft);
    box-shadow: inset 0 0 0 1px var(--ssn-colour-text);
}
.ssn-course-picker-list button span {
    color: var(--ssn-colour-muted);
}

/* v1.04.30 Core Card Frame Source of Truth
   The project detail frame is now the shared source for left rail, centre workspace,
   right rail and all temporary right-pane modes. Do not create local card sizing. */
.ssn-shell {
    --ssn-app-card-top: calc(var(--ssn-topbar-height) + 28px);
    --ssn-app-card-right: 32px;
    --ssn-app-card-bottom: 124px;
    --ssn-app-card-left: 32px;
    --ssn-app-card-gap: 24px;
    --ssn-app-left-width: 322px;
    --ssn-app-right-width: 366px;
    --ssn-app-right-pane-width: min(var(--ssn-app-right-width), calc(100vw - (var(--ssn-app-card-left) + var(--ssn-app-card-right))));
    --ssn-app-card-height: calc(100vh - var(--ssn-app-card-top) - var(--ssn-app-card-bottom));
    --ssn-right-pane-host-top: var(--ssn-app-card-top);
    --ssn-right-pane-host-right: var(--ssn-app-card-right);
    --ssn-right-pane-host-height: var(--ssn-app-card-height);
    --ssn-right-pane-host-width: var(--ssn-app-right-pane-width);
}

.ssn-shell .ssn-projects-grid,
.ssn-shell .ssn-bookings-grid,
.ssn-shell .ssn-project-detail-grid {
    inset: var(--ssn-app-card-top) var(--ssn-app-card-right) var(--ssn-app-card-bottom) var(--ssn-app-card-left);
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    gap: var(--ssn-app-card-gap);
}

.ssn-shell [data-ssn-home-grid].ssn-grid {
    height: var(--ssn-app-card-height);
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    gap: var(--ssn-app-card-gap);
    align-items: stretch;
}
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    height: 100%;
    min-height: 0;
}
.ssn-shell [data-ssn-home-grid] .ssn-hub {
    align-self: center;
}

.ssn-shell .ssn-project-nav,
.ssn-shell .ssn-project-centre,
.ssn-shell .ssn-project-overview,
.ssn-shell .ssn-project-detail-actions,
.ssn-shell .ssn-project-detail-centre,
.ssn-shell .ssn-project-detail-summary,
.ssn-shell .ssn-settings-nav,
.ssn-shell .ssn-settings-centre,
.ssn-shell .ssn-settings-preview {
    min-height: 0;
}

.ssn-shell .ssn-notification-panel,
.ssn-shell .ssn-booking-drawer {
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    bottom: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
}

.ssn-shell .ssn-notification-panel > header,
.ssn-shell .ssn-booking-drawer > .ssn-project-overview-head {
    flex: 0 0 auto;
}
.ssn-shell .ssn-notification-feed,
.ssn-shell .ssn-booking-drawer .ssn-create-pane-form,
.ssn-shell .ssn-booking-drawer .ssn-booking-form,
.ssn-shell .ssn-course-picker-form,
.ssn-shell .ssn-course-picker-form .ssn-course-picker-step {
    flex: 1 1 auto;
    min-height: 0;
}
.ssn-shell .ssn-course-picker-list {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: none;
    overflow-y: auto;
    padding: 0 6px 22px 0;
}

@media (max-width: 980px) {
    .ssn-shell {
        --ssn-app-card-top: calc(var(--ssn-topbar-height) + 18px);
        --ssn-app-card-right: 18px;
        --ssn-app-card-left: 18px;
        --ssn-app-card-bottom: 118px;
        --ssn-app-right-pane-width: calc(100vw - 36px);
    }
}

/* v1.04.31 Proposal Builder Live Preview Architecture */
.ssn-shell .ssn-project-detail-header-actions [data-ssn-detail-value] {
    cursor: pointer;
    border-radius: var(--ssn-radius-pill);
    padding: 4px 8px;
}
.ssn-shell .ssn-project-detail-header-actions [data-ssn-detail-value]:hover,
.ssn-shell .ssn-project-detail-header-actions [data-ssn-detail-value]:focus-visible {
    background: var(--ssn-colour-control-hover);
    background-color: var(--ssn-colour-control-hover);
}
.ssn-proposal-document-stage {
    min-height: 100%;
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: 20px 24px 34px;
}
.ssn-proposal-document-preview {
    width: min(760px, 100%);
    min-height: 520px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 28px;
    padding: 34px 38px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-panel);
    background-color: var(--ssn-colour-panel);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-proposal-document-preview header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: start;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-document-preview small,
.ssn-proposal-right-editor span,
.ssn-proposal-right-editor h2 {
    letter-spacing: .24em;
    text-transform: uppercase;
}
.ssn-proposal-document-preview small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 8px;
}
.ssn-proposal-document-preview strong,
.ssn-proposal-document-preview b {
    display: block;
    color: var(--ssn-colour-text);
    font-size: 16px;
    line-height: 1.35;
}
.ssn-proposal-document-preview aside {
    min-width: 150px;
    padding-left: 28px;
    border-left: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-document-preview aside button {
    display: block;
    width: 100%;
    padding: 4px 0;
    border: 0;
    border-radius: var(--ssn-radius-control);
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    text-align: left;
    cursor: pointer;
}
.ssn-proposal-document-preview aside button:hover,
.ssn-proposal-document-preview aside button:focus-visible {
    background: var(--ssn-colour-control-hover);
    background-color: var(--ssn-colour-control-hover);
}
.ssn-proposal-document-preview aside strong {
    font-size: 20px;
}
.ssn-proposal-document-preview section {
    display: grid;
    gap: 8px;
}
.ssn-proposal-document-preview section p {
    margin: 0;
    color: var(--ssn-colour-text);
    line-height: 1.6;
    white-space: pre-wrap;
}
.ssn-shell .ssn-project-detail-summary.is-proposal-editor-active > .ssn-rail-section:not(.ssn-proposal-right-editor) {
    display: none;
}
.ssn-proposal-right-editor {
    display: flex;
    flex-direction: column;
    gap: 14px;
    height: 100%;
    min-height: 0;
    padding: 0;
    border-bottom: 0;
}
.ssn-proposal-right-editor[hidden] {
    display: none;
}
.ssn-proposal-right-editor h2 {
    margin: 0 0 4px;
    color: var(--ssn-colour-text);
    font-size: 12px;
    font-weight: 900;
}
.ssn-proposal-right-editor label {
    display: grid;
    gap: 7px;
}
.ssn-proposal-right-editor label span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 900;
}
.ssn-proposal-right-editor label em {
    float: right;
    font-style: normal;
    letter-spacing: .18em;
}
.ssn-proposal-right-editor input,
.ssn-proposal-right-editor textarea {
    width: 100%;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    font: inherit;
    outline: none;
}
.ssn-proposal-right-editor input {
    min-height: 44px;
    padding: 0 13px;
    font-weight: 800;
}
.ssn-proposal-right-editor textarea {
    min-height: 104px;
    resize: vertical;
    padding: 12px 13px;
    line-height: 1.45;
}
.ssn-proposal-right-editor input:focus,
.ssn-proposal-right-editor textarea:focus {
    border-color: var(--ssn-colour-control-border);
    box-shadow: 0 0 0 3px rgba(17,19,24,.06);
}
.ssn-proposal-right-editor footer {
    margin-top: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-right-editor footer button {
    min-height: 42px;
    border-radius: var(--ssn-radius-control);
    border: 1px solid var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    font-weight: 900;
    cursor: pointer;
}
.ssn-proposal-right-editor footer button[data-ssn-proposal-confirm]:not(:disabled) {
    border-color: var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-proposal-right-editor footer button:disabled {
    opacity: .48;
    cursor: not-allowed;
}
.ssn-proposal-save-status {
    min-height: 17px;
}

/* v1.04.32 Proposal Document Engine Preview */
.ssn-proposal-document-stage {
    align-items: flex-start;
    padding: 34px 24px 52px;
    overflow: auto;
}
.ssn-proposal-document-preview {
    width: min(760px, 100%);
    min-height: 980px;
    gap: 20px;
    padding: 44px 48px 54px;
    border-radius: 0;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .08);
    background: #fff;
    background-color: #fff;
}
.ssn-proposal-document-header {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-document-brand {
    display: grid;
    gap: 8px;
    align-content: start;
}
.ssn-proposal-document-brand [data-ssn-proposal-logo] {
    width: 54px;
    height: 54px;
    display: inline-grid;
    place-items: center;
    border-radius: 14px;
    background: var(--ssn-colour-control-bg);
    overflow: hidden;
}
.ssn-proposal-document-brand [data-ssn-proposal-logo] img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.ssn-proposal-document-brand [data-ssn-proposal-logo] span {
    color: var(--ssn-colour-text);
    font-weight: 900;
}
.ssn-proposal-document-brand strong {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.3;
}
.ssn-proposal-document-title small,
.ssn-proposal-document-preview section small {
    color: var(--ssn-colour-brand);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .28em;
    text-transform: uppercase;
}
.ssn-proposal-document-title h2 {
    margin: 8px 0 0;
    color: var(--ssn-colour-text);
    font-size: 18px;
    line-height: 1.25;
}
.ssn-proposal-document-intro p,
.ssn-proposal-document-reference p,
.ssn-proposal-document-preview section p,
.ssn-proposal-document-terms div,
.ssn-proposal-document-terms p,
.ssn-proposal-document-terms li {
    color: var(--ssn-colour-text);
    font-size: 13px;
    line-height: 1.65;
}
.ssn-proposal-document-preview section {
    display: grid;
    gap: 8px;
    padding: 0;
}
.ssn-proposal-document-preview section + section {
    margin-top: 4px;
}
.ssn-proposal-document-reference {
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-document-investment {
    margin-top: 10px;
    padding: 18px 20px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-panel-muted);
    background-color: var(--ssn-colour-panel-muted);
}
.ssn-proposal-document-investment button {
    width: 100%;
    margin: 0;
    padding: 6px 0 0;
    border: 0;
    border-radius: var(--ssn-radius-control);
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    text-align: left;
    cursor: pointer;
}
.ssn-proposal-document-investment button:hover,
.ssn-proposal-document-investment button:focus-visible {
    background: var(--ssn-colour-control-hover);
    background-color: var(--ssn-colour-control-hover);
}
.ssn-proposal-document-investment strong {
    font-size: 24px;
}
.ssn-proposal-document-terms {
    padding-top: 16px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-document-terms div > *:first-child { margin-top: 0; }
.ssn-proposal-document-terms div > *:last-child { margin-bottom: 0; }
.ssn-proposal-document-acceptance {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-proposal-document-acceptance div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 24px;
}
.ssn-proposal-document-acceptance div span {
    min-height: 42px;
    padding-top: 8px;
    border-top: 1px solid var(--ssn-colour-line-strong, var(--ssn-colour-line));
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
}


/* v1.04.33 Proposal Preview Workspace Width Fix + Button Token Hardening */
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="build-proposal"] {
    padding: 0;
    overflow: hidden;
}
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="build-proposal"].is-active {
    display: flex;
    min-height: 0;
}
.ssn-shell .ssn-proposal-document-stage {
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 28px 32px 44px;
    overflow: auto;
    scrollbar-width: thin;
}
.ssn-shell .ssn-proposal-document-preview {
    width: min(100%, 1040px);
    max-width: none;
    min-height: 980px;
    margin: 0 auto;
    box-sizing: border-box;
}
.ssn-shell .ssn-proposal-document-preview.ssn-proposal-live-preview {
    grid-template-columns: minmax(0, 1fr);
}
.ssn-shell .ssn-proposal-builder-shell footer button,
.ssn-shell .ssn-proposal-builder-shell footer button[type="button"],
.ssn-shell .ssn-proposal-builder-shell footer button:not(:disabled) {
    border: 1px solid var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
}
.ssn-shell .ssn-proposal-builder-shell footer button:hover,
.ssn-shell .ssn-proposal-builder-shell footer button:focus-visible {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-proposal-builder-shell footer button:active {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg-active);
    background-color: var(--ssn-colour-button-secondary-bg-active);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
}
.ssn-shell .ssn-proposal-builder-shell footer button:last-child:not(:disabled) {
    border-color: var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
}
.ssn-shell .ssn-proposal-builder-shell footer button:last-child:not(:disabled):hover,
.ssn-shell .ssn-proposal-builder-shell footer button:last-child:not(:disabled):focus-visible,
.ssn-shell .ssn-proposal-builder-shell footer button:last-child:not(:disabled):active {
    border-color: var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
}
.ssn-shell .ssn-proposal-builder-shell footer button:disabled,
.ssn-shell .ssn-proposal-builder-shell footer button[disabled] {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    opacity: .52;
}

@media (max-width: 1180px) {
    .ssn-shell .ssn-proposal-document-stage {
        padding: 22px 22px 38px;
    }
    .ssn-shell .ssn-proposal-document-preview {
        width: 100%;
        padding: 34px 36px 48px;
    }
}

/* v1.04.37 Proposal PDF + button forensic hardening */
.ssn-shell .ssn-proposal-right-editor footer button,
.ssn-shell .ssn-proposal-right-editor footer button[type="button"],
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary[type="button"] {
    -webkit-appearance: none;
    appearance: none;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-proposal-right-editor footer button:hover,
.ssn-shell .ssn-proposal-right-editor footer button:focus-visible,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:hover,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:focus-visible {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-proposal-right-editor footer button:active,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:active {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg-active);
    background-color: var(--ssn-colour-button-secondary-bg-active);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-confirm]:not(:disabled) {
    border-color: var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
}
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-confirm]:not(:disabled):hover,
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-confirm]:not(:disabled):focus-visible,
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-confirm]:not(:disabled):active {
    border-color: var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
}

/* v1.04.38 Proposal button token forensic hardening */
.ssn-shell .ssn-proposal-right-editor footer button.ssn-button-secondary,
.ssn-shell .ssn-proposal-right-editor footer button.ssn-button-secondary:hover,
.ssn-shell .ssn-proposal-right-editor footer button.ssn-button-secondary:focus,
.ssn-shell .ssn-proposal-right-editor footer button.ssn-button-secondary:focus-visible,
.ssn-shell .ssn-proposal-right-editor footer button.ssn-button-secondary:active,
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-save],
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:hover,
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:focus,
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:focus-visible,
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:active {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    text-shadow: none;
}
.ssn-shell .ssn-proposal-right-editor footer button[data-ssn-proposal-save] {
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
}

/* v1.04.39 Proposal action token lock
   Source of truth: proposal actions must never inherit accent, cyan or pink hover colours. */
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save],
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save]:hover,
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save]:focus,
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save]:focus-visible,
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save]:active,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:hover,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:focus,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:focus-visible,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:active {
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    border-color: var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    text-shadow: none;
    filter: none;
}
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save]:hover,
.ssn-shell .ssn-proposal-right-editor footer [data-ssn-proposal-save]:focus-visible,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:hover,
.ssn-shell .ssn-proposal-right-editor footer .ssn-button-secondary:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
}

/* v1.04.40 Button token parity hard lock */
.ssn-shell button[data-ssn-proposal-save],
.ssn-shell button[data-ssn-proposal-save]:hover,
.ssn-shell button[data-ssn-proposal-save]:focus,
.ssn-shell button[data-ssn-proposal-save]:focus-visible,
.ssn-shell button[data-ssn-proposal-save]:active,
.ssn-shell .ssn-button-secondary,
.ssn-shell .ssn-button-secondary:hover,
.ssn-shell .ssn-button-secondary:focus,
.ssn-shell .ssn-button-secondary:focus-visible,
.ssn-shell .ssn-button-secondary:active {
    border-color: var(--ssn-colour-button-secondary-border);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    filter: none;
    text-shadow: none;
}

/* v1.04.42 Forensic proposal action hard lock
   Last writer wins. Save Draft must never inherit Elementor/theme accent hover colours. */
body .ssn-shell .ssn-project-detail-summary .ssn-proposal-right-editor footer button[data-ssn-proposal-save],
body .ssn-shell .ssn-project-detail-summary .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:hover,
body .ssn-shell .ssn-project-detail-summary .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:focus,
body .ssn-shell .ssn-project-detail-summary .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:focus-visible,
body .ssn-shell .ssn-project-detail-summary .ssn-proposal-right-editor footer button[data-ssn-proposal-save]:active {
    -webkit-appearance: none;
    appearance: none;
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
    filter: none;
    text-shadow: none;
}

/* v1.04.47 Participant Manifest + Delivery Paperwork Foundation */
.ssn-participant-workspace,
.ssn-delivery-workspace,
.ssn-paperwork-workspace,
.ssn-feedback-workspace {
    display: grid;
    gap: 16px;
    min-height: 100%;
}

.ssn-participant-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.ssn-participant-head h2 {
    margin: 0;
    font-size: 20px;
}

.ssn-participant-head p {
    margin: 4px 0 0;
    color: var(--ssn-colour-muted);
    font-size: 13px;
}

.ssn-participant-head > span {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    text-align: right;
}

.ssn-participant-stats,
.ssn-paperwork-grid,
.ssn-qr-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.ssn-participant-stats article,
.ssn-paperwork-grid button,
.ssn-qr-grid article,
.ssn-participant-actions section,
.ssn-participant-list,
.ssn-delivery-register,
.ssn-delivery-online-note {
    background: var(--ssn-surface-soft);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-md);
    padding: 14px;
    color: var(--ssn-text);
}

.ssn-participant-stats small,
.ssn-qr-grid small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    margin-bottom: 5px;
}

.ssn-participant-stats strong {
    font-size: 20px;
}

.ssn-participant-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ssn-participant-actions h3 {
    margin: 0 0 10px;
    font-size: 14px;
}

.ssn-participant-actions label {
    display: grid;
    gap: 6px;
    margin-bottom: 10px;
    color: var(--ssn-colour-muted);
    font-size: 12px;
}

.ssn-participant-actions input,
.ssn-participant-actions textarea,
.ssn-qr-grid input {
    width: 100%;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-sm);
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-text);
    padding: 10px 11px;
    font: inherit;
}

.ssn-existing-participant-list {
    display: grid;
    gap: 8px;
    max-height: 190px;
    overflow: auto;
    margin-bottom: 10px;
}

.ssn-existing-participant-list label {
    display: flex;
    align-items: center;
    grid-template-columns: none;
    gap: 10px;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-sm);
    background: var(--ssn-colour-surface-strong);
}

.ssn-existing-participant-list strong,
.ssn-existing-participant-list small {
    display: block;
}

.ssn-participant-list,
.ssn-delivery-register {
    display: grid;
    gap: 8px;
}

.ssn-participant-row,
.ssn-delivery-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}

.ssn-delivery-row {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
}

.ssn-participant-row:last-child,
.ssn-delivery-row:last-child {
    border-bottom: 0;
}

.ssn-participant-row strong,
.ssn-delivery-row strong {
    display: block;
}

.ssn-participant-row small,
.ssn-delivery-row small,
.ssn-delivery-online-note {
    color: var(--ssn-colour-muted);
    font-size: 12px;
}

.ssn-paperwork-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ssn-paperwork-grid button {
    text-align: left;
    appearance: none;
    cursor: pointer;
}

.ssn-paperwork-grid button:disabled {
    opacity: .58;
    cursor: not-allowed;
}

.ssn-paperwork-grid strong,
.ssn-paperwork-grid small {
    display: block;
}

.ssn-paperwork-grid small {
    margin-top: 5px;
    color: var(--ssn-colour-muted);
}

.ssn-qr-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ssn-qr-placeholder {
    display: grid;
    place-items: center;
    width: 120px;
    height: 120px;
    border: 1px dashed var(--ssn-border-strong, var(--ssn-border));
    border-radius: var(--ssn-radius-md);
    color: var(--ssn-colour-muted);
    margin-bottom: 12px;
}

@media (max-width: 1100px) {
    .ssn-participant-actions,
    .ssn-participant-stats,
    .ssn-paperwork-grid,
    .ssn-qr-grid { grid-template-columns: 1fr; }
    .ssn-delivery-row { grid-template-columns: minmax(0, 1fr); }
}

/* v1.04.48 Participant workspace structure pass */
.ssn-participant-workspace-report {
    gap: 22px;
    padding: 8px 10px 18px;
}

.ssn-participant-workspace-report .ssn-participant-message {
    min-height: 18px;
    color: var(--ssn-muted, #6b7280);
    font-size: 12px;
    letter-spacing: .02em;
}

.ssn-participant-report-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ssn-participant-register {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.ssn-participant-register .ssn-participant-row {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    background: rgba(255, 255, 255, .74);
    box-shadow: 0 16px 36px rgba(15, 23, 42, .05);
    padding: 16px 18px;
}

.ssn-participant-actions-hidden {
    display: none;
}

.ssn-participant-header-add {
    border: 1px solid rgba(15, 23, 42, .10);
    background: rgba(255, 255, 255, .82);
    color: var(--ssn-ink, #111827);
    border-radius: 999px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.ssn-participant-header-add:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
}

/* v1.04.49 Participant workspace compression and header action row */
.ssn-shell .ssn-project-detail-header-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 8px;
    min-width: 280px;
}
.ssn-shell .ssn-project-detail-header-actions > strong {
    flex: 0 0 100%;
    width: 100%;
    text-align: right;
    margin-bottom: 4px;
}
.ssn-shell .ssn-project-detail-header-actions .ssn-participant-header-add {
    order: 10;
}
.ssn-shell .ssn-project-detail-header-actions [data-ssn-complete-selected-milestone] {
    order: 20;
}
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="add-participants"] {
    padding-top: 12px;
    padding-left: 22px;
    padding-right: 22px;
}
.ssn-shell .ssn-participant-workspace-report {
    gap: 14px;
    padding: 0 0 14px;
}
.ssn-shell .ssn-participant-workspace-report .ssn-participant-message:empty {
    display: none;
}
.ssn-shell .ssn-participant-report-stats {
    gap: 8px;
}
.ssn-shell .ssn-participant-report-stats article {
    padding: 10px 12px;
}
.ssn-shell .ssn-participant-register {
    gap: 8px;
}
.ssn-shell .ssn-participant-register .ssn-participant-row {
    padding: 12px 14px;
    border-radius: 15px;
}


/* v1.04.50 Add Participants rail foundation */
.ssn-participant-add-panel,
.ssn-shell .ssn-participant-add-panel {
    position: fixed;
    top: calc(var(--ssn-topbar-height) + 28px);
    right: 32px;
    bottom: 124px;
    width: min(366px, calc(100vw - 64px));
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-panel, 28px);
    background: var(--ssn-colour-card, rgba(255,255,255,.96));
    box-shadow: var(--ssn-shadow-panel, 0 24px 70px rgba(15,23,42,.16));
    z-index: 80;
    display: flex;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
    transform: translateX(10px) scale(.985);
    transition: opacity .18s ease, transform .18s ease;
    overflow: hidden;
}
.ssn-participants-add-open .ssn-participant-add-panel,
.ssn-participant-add-panel[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-participant-add-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
}
.ssn-participant-add-panel h2,
.ssn-participant-add-panel h3,
.ssn-participant-add-panel p {
    margin: 0;
}
.ssn-participant-add-panel h2 {
    font-size: 18px;
    letter-spacing: -.02em;
}
.ssn-participant-add-panel p,
.ssn-participant-import-note {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    line-height: 1.45;
}
.ssn-participant-add-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 16px 18px 20px;
    display: grid;
    align-content: start;
    gap: 16px;
}
.ssn-participant-add-section {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
    border-radius: 18px;
    background: var(--ssn-colour-control-bg, rgba(255,255,255,.68));
}
.ssn-participant-add-section h3 {
    font-size: 13px;
}
.ssn-participant-search-shell {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: 999px;
    background: var(--ssn-colour-card, #fff);
    padding: 9px 12px;
}
.ssn-participant-search-shell input,
.ssn-participant-add-section textarea {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--ssn-colour-text, #111827);
    font: inherit;
}
.ssn-participant-add-section textarea {
    min-height: 150px;
    resize: vertical;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: 14px;
    background: var(--ssn-colour-card, #fff);
    padding: 11px 12px;
}
.ssn-participant-search-results {
    display: grid;
    gap: 8px;
}
.ssn-participant-search-result {
    appearance: none;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
    border-radius: 14px;
    background: var(--ssn-colour-card, #fff);
    color: var(--ssn-colour-text, #111827);
    text-align: left;
    padding: 10px 11px;
    cursor: pointer;
}
.ssn-participant-search-result:hover,
.ssn-participant-search-result:focus-visible {
    background: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
}
.ssn-participant-search-result strong,
.ssn-participant-search-result small {
    display: block;
}
.ssn-participant-search-result small {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    margin-top: 2px;
}
@media (max-width: 980px) {
    .ssn-participant-add-panel,
    .ssn-shell .ssn-participant-add-panel {
        left: 18px;
        right: 18px;
        width: auto;
    }
}

/* v1.04.51 Account Participant Finder */
.ssn-participant-add-panel .ssn-empty-state .ssn-participant-create-placeholder {
    margin-top: 12px;
    width: 100%;
    justify-content: center;
}
.ssn-participant-search-result[disabled] {
    opacity: .6;
    cursor: wait;
}


/* v1.04.51a Participant rail token hardening
   Source of truth: account participant search results are neutral action rows.
   They must never inherit theme, Elementor, browser, cyan, blue or pink button states. */
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result,
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result:visited {
    appearance: none;
    -webkit-appearance: none;
    background: var(--ssn-colour-card, #fff);
    background-color: var(--ssn-colour-card, #fff);
    background-image: none;
    border-color: var(--ssn-colour-line, rgba(15,23,42,.08));
    color: var(--ssn-colour-text, #111827);
    box-shadow: none;
}
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result:hover,
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result:focus,
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result:focus-visible,
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result:active {
    background: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
    background-color: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
    background-image: none;
    border-color: var(--ssn-colour-control-border-hover, rgba(15,23,42,.14));
    color: var(--ssn-colour-text, #111827);
    box-shadow: var(--ssn-shadow-focus, 0 0 0 3px rgba(17,19,24,.08));
}
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result strong {
    color: var(--ssn-colour-text, #111827);
}
.ssn-shell .ssn-participant-add-panel button.ssn-participant-search-result small {
    color: var(--ssn-colour-muted, #6b7280);
}

/* v1.04.53 Participant Register Actions */
.ssn-participant-row {
    grid-template-columns: minmax(0, 1fr) auto 34px;
}

.ssn-participant-person {
    min-width: 0;
}

.ssn-participant-status-chip,
.ssn-participant-status-spacer {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
}

.ssn-participant-status-spacer {
    visibility: hidden;
    min-width: 1px;
    padding-inline: 0;
    border-color: transparent;
}

.ssn-shell .ssn-participant-row-action,
.ssn-shell button.ssn-participant-row-action {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    padding: 0;
    border: 0;
    border-radius: var(--ssn-radius-sm);
    background: transparent;
    background-color: transparent;
    box-shadow: none;
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
    transition: color .16s ease, background-color .16s ease, transform .16s ease;
}



.ssn-participant-row-icon svg {
    width: 15px;
    height: 15px;
    display: block;
    fill: currentColor;
    pointer-events: none;
}

.ssn-shell .ssn-participant-row-action:hover,
.ssn-shell .ssn-participant-row-action:focus-visible,
.ssn-shell button.ssn-participant-row-action:hover,
.ssn-shell button.ssn-participant-row-action:focus-visible {
    background: var(--ssn-surface-soft);
    background-color: var(--ssn-surface-soft);
    color: var(--ssn-text);
    outline: none;
}

.ssn-participant-row-action:active {
    transform: translateY(1px);
}

.ssn-participant-row-action:disabled,
.ssn-participant-row-action[aria-disabled="true"] {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
}


.ssn-toast {
    position: fixed;
    right: 28px;
    bottom: 96px;
    z-index: 999999;
    max-width: min(360px, calc(100vw - 40px));
    padding: 12px 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-md);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-surface);
    box-shadow: var(--ssn-shadow-soft);
    color: var(--ssn-text);
    font-size: 13px;
    line-height: 1.35;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}

.ssn-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.ssn-toast[data-tone="warning"] {
    border-color: var(--ssn-border-strong, var(--ssn-border));
}

/* v1.04.55 Key Contact rail */
.ssn-summary-contact-button,
.ssn-shell .ssn-summary-contact-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-ink, #111827);
    padding: 0;
    margin: 0;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    text-align: right;
}
.ssn-summary-contact-button:hover,
.ssn-summary-contact-button:focus-visible {
    text-decoration: underline;
    outline: none;
}
.ssn-key-contact-panel,
.ssn-shell .ssn-key-contact-panel {
    position: fixed;
    top: calc(var(--ssn-topbar-height) + 28px);
    right: 32px;
    bottom: 124px;
    width: min(366px, calc(100vw - 64px));
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-panel, 28px);
    background: var(--ssn-colour-card, rgba(255,255,255,.96));
    box-shadow: var(--ssn-shadow-panel, 0 24px 70px rgba(15,23,42,.16));
    z-index: 82;
    display: flex;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
    transform: translateX(10px) scale(.985);
    transition: opacity .18s ease, transform .18s ease;
    overflow: hidden;
}
.ssn-key-contact-open .ssn-key-contact-panel,
.ssn-key-contact-panel[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-key-contact-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
}
.ssn-key-contact-panel h2,
.ssn-key-contact-panel p {
    margin: 0;
}
.ssn-key-contact-panel h2 {
    font-size: 18px;
    letter-spacing: -.02em;
}
.ssn-key-contact-panel p,
.ssn-key-contact-note {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    line-height: 1.45;
}
.ssn-key-contact-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 16px 18px 20px;
    display: grid;
    align-content: start;
    gap: 14px;
}
.ssn-key-contact-card,
.ssn-key-contact-facts,
.ssn-key-contact-actions {
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
    border-radius: 18px;
    background: var(--ssn-colour-control-bg, rgba(255,255,255,.68));
    padding: 14px;
}
.ssn-key-contact-card {
    display: grid;
    gap: 4px;
}
.ssn-key-contact-card small {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 10px;
    color: var(--ssn-colour-muted, #6b7280);
}
.ssn-key-contact-card strong {
    font-size: 18px;
    letter-spacing: -.02em;
}
.ssn-key-contact-card span {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
}
.ssn-key-contact-facts {
    display: grid;
    gap: 12px;
    margin: 0;
}
.ssn-key-contact-facts div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid rgba(15,23,42,.06);
    padding-bottom: 10px;
}
.ssn-key-contact-facts div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.ssn-key-contact-facts dt {
    color: var(--ssn-colour-muted, #6b7280);
}
.ssn-key-contact-facts dd {
    margin: 0;
    font-weight: 700;
    text-align: right;
    word-break: break-word;
}
.ssn-key-contact-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.ssn-key-contact-actions .ssn-button-secondary,
.ssn-shell .ssn-key-contact-actions .ssn-button-secondary {
    width: 100%;
    min-height: 36px;
}
.ssn-key-contact-actions a[aria-disabled="true"] {
    opacity: .45;
    pointer-events: none;
}

/* v1.04.55a Key Contact data polish */
.ssn-key-contact-panel > header h2[data-ssn-key-contact-name],
.ssn-shell .ssn-key-contact-panel > header h2[data-ssn-key-contact-name] {
    max-width: 250px;
    overflow-wrap: anywhere;
}
.ssn-key-contact-facts,
.ssn-shell .ssn-key-contact-facts {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
    gap: 8px;
}
.ssn-key-contact-facts div,
.ssn-shell .ssn-key-contact-facts div {
    display: grid;
    grid-template-columns: minmax(80px, 1fr) minmax(0, 1.3fr);
    align-items: baseline;
    gap: 10px;
    border: 0;
    padding: 0;
}
.ssn-key-contact-facts dt,
.ssn-shell .ssn-key-contact-facts dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
}
.ssn-key-contact-facts dd,
.ssn-shell .ssn-key-contact-facts dd {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    text-align: right;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:last-child {
    border: 0;
    padding: 0;
    min-height: 28px;
    background: transparent;
    background-color: transparent;
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:focus-visible {
    background: transparent;
    background-color: transparent;
    text-decoration: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:hover strong,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:focus-visible strong,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:hover em,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:focus-visible em {
    color: var(--ssn-colour-text);
}

/* v1.04.55b Key contact source hardening + rail rhythm */
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links,
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact {
    gap: 8px;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button:last-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: baseline;
    column-gap: 10px;
    width: 100%;
    min-height: 20px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button span,
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-normal);
    text-align: left;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button strong,
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button em,
.ssn-shell .ssn-project-detail-summary .ssn-project-facts-compact dd {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    text-align: right;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-quick-links button em {
    font-style: normal;
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-key-contact-panel .ssn-key-contact-body {
    gap: 16px;
}
.ssn-shell .ssn-key-contact-panel .ssn-key-contact-note {
    margin: 0;
}


/* v1.04.55c Key Contact rail scope + summary spacing hardening */
.ssn-right-rail .ssn-quick-links,
.ssn-project-summary,
.ssn-commercial-summary {
    display: grid;
    gap: 10px;
}
.ssn-right-rail .ssn-quick-links .ssn-right-row,
.ssn-right-rail .ssn-quick-links div,
.ssn-right-rail .ssn-project-summary div,
.ssn-right-rail .ssn-commercial-summary div {
    border: 0;
}
.ssn-key-contact-panel dl > div {
    border: 0;
}

/* v1.04.56 Delivery workspace foundation */
.ssn-shell .ssn-key-contact-facts dd[data-ssn-key-contact-email] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    word-break: normal;
}

.ssn-delivery-workspace {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 10px 18px 22px;
    min-height: 0;
}

.ssn-delivery-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 0 2px 2px;
}

.ssn-delivery-head h2 {
    margin: 0;
    font-size: 18px;
    letter-spacing: -.02em;
}

.ssn-delivery-head p {
    margin: 4px 0 0;
    color: var(--ssn-colour-muted, var(--ssn-muted));
    font-size: 12px;
    line-height: 1.45;
}

.ssn-delivery-head > span {
    color: var(--ssn-colour-muted, var(--ssn-muted));
    font-size: 12px;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.ssn-delivery-register,
.ssn-shell .ssn-delivery-register {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border: 0;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.ssn-delivery-register-head,
.ssn-delivery-register-row {
    display: grid;
    grid-template-columns: minmax(190px, 1.8fr) repeat(5, minmax(92px, .75fr)) 36px;
    align-items: center;
    gap: 10px;
}

.ssn-delivery-register.is-classroom-only .ssn-delivery-register-head,
.ssn-delivery-register.is-classroom-only .ssn-delivery-register-row {
    grid-template-columns: minmax(220px, 1.9fr) repeat(4, minmax(100px, .8fr)) 36px;
}

.ssn-delivery-register-head {
    padding: 0 14px;
    color: var(--ssn-colour-muted, var(--ssn-muted));
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ssn-delivery-register-row,
.ssn-shell .ssn-delivery-register-row {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    background: rgba(255,255,255,.74);
    box-shadow: 0 16px 36px rgba(15,23,42,.05);
    padding: 14px;
}

.ssn-delivery-person strong {
    display: block;
    color: var(--ssn-colour-text, var(--ssn-text));
    font-size: 13px;
    line-height: 1.25;
}

.ssn-delivery-person small {
    display: block;
    color: var(--ssn-colour-muted, var(--ssn-muted));
    font-size: 11px;
    margin-top: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ssn-delivery-pill {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: 28px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 999px;
    background: rgba(255,255,255,.62);
    color: var(--ssn-colour-text, var(--ssn-text));
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ssn-delivery-pill.is-locked {
    color: var(--ssn-colour-muted, var(--ssn-muted));
    background: rgba(248,250,252,.76);
}

.ssn-delivery-pill.is-ready,
.ssn-delivery-pill.is-pending {
    background: rgba(255,255,255,.78);
}

.ssn-delivery-pill.is-complete {
    background: rgba(255,255,255,.86);
}

@media (max-width: 1180px) {
    .ssn-delivery-register-head { display: none; }
    .ssn-delivery-register-head,
    .ssn-delivery-register-row,
    .ssn-delivery-register.is-classroom-only .ssn-delivery-register-head,
    .ssn-delivery-register.is-classroom-only .ssn-delivery-register-row {
        grid-template-columns: 1fr;
        align-items: start;
    }
}

/* v1.04.57 Delivery Register Controls */
.ssn-delivery-action-pill,
.ssn-shell .ssn-delivery-action-pill {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid rgba(15,23,42,.08);
    background: rgba(255,255,255,.62);
    color: var(--ssn-colour-text, var(--ssn-text));
    font-family: inherit;
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
}

.ssn-delivery-action-pill:hover,
.ssn-delivery-action-pill:focus-visible,
.ssn-shell .ssn-delivery-action-pill:hover,
.ssn-shell .ssn-delivery-action-pill:focus-visible {
    border-color: rgba(15,23,42,.16);
    background: rgba(255,255,255,.86);
    color: var(--ssn-colour-text, var(--ssn-text));
    outline: none;
    box-shadow: 0 8px 22px rgba(15,23,42,.08);
}

.ssn-delivery-action-pill:disabled,
.ssn-shell .ssn-delivery-action-pill:disabled {
    cursor: wait;
    opacity: .64;
    background: rgba(248,250,252,.76);
}


/* v1.04.58b Delivery type selector polish */
.ssn-delivery-head-minimal,
.ssn-shell .ssn-delivery-head-minimal {
    justify-content: flex-end;
    padding: 0 2px 0;
    min-height: 18px;
}
.ssn-delivery-head-minimal p[hidden],
.ssn-shell .ssn-delivery-head-minimal p[hidden] {
    display: none;
}
.ssn-summary-inline-button,
.ssn-shell .ssn-summary-inline-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-ink, #111827);
    padding: 0;
    margin: 0;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    text-align: right;
    max-width: 100%;
}
.ssn-summary-inline-button:hover,
.ssn-summary-inline-button:focus-visible {
    text-decoration: underline;
    outline: none;
}
.ssn-summary-inline-button:disabled {
    cursor: default;
    opacity: .65;
    text-decoration: none;
}



/* v1.04.59 Reports Online Progress Workspace */
.ssn-reports-grid {
    position: absolute;
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 124px;
    display: grid;
    grid-template-columns: minmax(260px, 322px) minmax(520px, 1fr) minmax(300px, 366px);
    gap: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell.ssn-reports-open [data-ssn-home-grid],
.ssn-shell.ssn-reports-open [data-ssn-settings-workspace],
.ssn-shell.ssn-reports-open [data-ssn-projects-workspace],
.ssn-shell.ssn-reports-open [data-ssn-bookings-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-reports-open .ssn-reports-grid {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-reports-nav,
.ssn-reports-centre,
.ssn-reports-control {
    min-height: 0;
    overflow: hidden;
}
.ssn-reports-centre {
    position: relative;
    padding: 26px;
    overflow: hidden;
}
.ssn-reports-subwheel {
    height: 100%;
    min-height: 420px;
    display: grid;
    place-items: center;
}
.ssn-reports-subwheel[aria-hidden="true"],
.ssn-online-report[aria-hidden="true"] {
    display: none;
}
.ssn-reports-orbit {
    position: relative;
    width: min(520px, 72vh);
    height: min(520px, 72vh);
    border-radius: 50%;
    border: 1px solid var(--ssn-colour-line);
    background: radial-gradient(circle, rgba(255,255,255,.9), rgba(255,255,255,.35));
    box-shadow: inset 0 0 0 86px rgba(17,19,24,.025), var(--ssn-shadow-soft);
}
.ssn-reports-spoke {
    position: absolute;
    width: 142px;
    min-height: 122px;
    border-radius: 50%;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg-strong);
    box-shadow: var(--ssn-shadow-soft);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    text-align: center;
    cursor: pointer;
}
.ssn-reports-spoke:hover,
.ssn-reports-spoke:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    transform: translateY(-1px);
}
.ssn-reports-spoke[disabled] {
    cursor: default;
    opacity: .56;
}
.ssn-reports-spoke strong { font-weight: var(--ssn-font-weight-strong); }
.ssn-reports-spoke small { color: var(--ssn-colour-muted); font-size: var(--ssn-font-size-small); }
.ssn-reports-spoke-online { left: 50%; top: 10%; transform: translate(-50%, 0); }
.ssn-reports-spoke-certificates { right: 8%; bottom: 20%; }
.ssn-reports-spoke-feedback { left: 8%; bottom: 20%; }
.ssn-online-report {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 0;
}
.ssn-report-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.ssn-report-header h2,
.ssn-online-project-card h3,
.ssn-reports-control h2 {
    margin: 0;
}
.ssn-report-header p,
.ssn-online-project-card p,
.ssn-report-control-card p {
    margin: 5px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-report-summary-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}
.ssn-report-summary-strip span {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.62);
    padding: 12px 14px;
}
.ssn-report-summary-strip small,
.ssn-report-summary-strip strong {
    display: block;
}
.ssn-report-summary-strip small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
}
.ssn-report-summary-strip strong {
    margin-top: 4px;
    font-size: 20px;
}
.ssn-online-report-list {
    overflow: auto;
    padding-right: 6px;
    display: grid;
    gap: 14px;
}
.ssn-online-project-card {
    border: 1px solid var(--ssn-colour-line);
    border-radius: 20px;
    background: rgba(255,255,255,.62);
    padding: 16px;
}
.ssn-online-project-card > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.ssn-online-project-card > header small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-online-project-card > header a {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-control-bg);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    white-space: nowrap;
}
.ssn-online-project-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 13px 0;
}
.ssn-online-project-summary span,
.ssn-online-progress-cell em {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-pill-neutral-bg);
    padding: 5px 9px;
    font-size: var(--ssn-font-size-label);
    color: var(--ssn-colour-muted);
    font-style: normal;
}
.ssn-online-report-table {
    display: grid;
    gap: 8px;
}
.ssn-online-report-head,
.ssn-online-report-row {
    display: grid;
    grid-template-columns: minmax(150px, 1.2fr) minmax(120px, .9fr) minmax(150px, 1.1fr) minmax(120px, .8fr);
    gap: 14px;
    align-items: center;
}
.ssn-online-report-head {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ssn-online-report-row {
    min-height: 54px;
    padding: 10px 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.78);
}
.ssn-online-report-row strong,
.ssn-online-report-row small,
.ssn-online-progress-cell b,
.ssn-online-progress-cell em {
    display: block;
}
.ssn-online-report-row small {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    margin-top: 2px;
}
.ssn-online-progress-cell {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ssn-online-progress-cell b {
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-reports-control {
    padding: 26px 22px;
}
.ssn-report-control-card {
    border: 1px solid var(--ssn-colour-line);
    border-radius: 18px;
    background: rgba(255,255,255,.62);
    padding: 16px;
    margin: 18px 0;
}
.ssn-shell.ssn-more-open.ssn-reports-open [data-ssn-reports-workspace] .ssn-reports-centre {
    opacity: .18;
    pointer-events: none;
}
@media (max-width: 1100px) {
    .ssn-reports-grid { grid-template-columns: 1fr; overflow: auto; }
    .ssn-reports-control { display: none; }
    .ssn-online-report-head { display: none; }
    .ssn-online-report-row { grid-template-columns: 1fr; }
    .ssn-report-summary-strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
}


/* v1.04.59a Reports Wheel Token + Action Bar Restore
   Reports uses the shared orbital hub tokens. Core owns the reports shell; module reports contribute entries only. */
.ssn-shell.ssn-reports-open .ssn-reports-centre:has(.ssn-reports-subwheel:not([aria-hidden="true"])) {
    background: transparent;
    background-color: transparent;
    border-color: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.ssn-shell .ssn-reports-orbit.ssn-orbit {
    width: min(44vw, 635px);
    min-width: 500px;
    height: auto;
    aspect-ratio: 1;
    border: 0;
    border-radius: var(--ssn-radius-pill);
    background:
        radial-gradient(circle at center, rgba(255,255,255,.70) 0 25%, rgba(255,255,255,.34) 26% 28%, transparent 29%),
        repeating-radial-gradient(circle at center, transparent 0 118px, rgba(46,51,58,.052) 119px 120px, transparent 121px 224px);
    box-shadow: none;
}
.ssn-shell .ssn-reports-orbit.ssn-orbit:before,
.ssn-shell .ssn-reports-orbit.ssn-orbit:after {
    display: block;
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke {
    width: 112px;
    height: 112px;
    min-height: 112px;
    margin: -56px 0 0 -56px;
    border-radius: var(--ssn-radius-pill);
    background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(238,240,242,.86));
    background-color: var(--ssn-colour-surface);
    border: 1px solid rgba(20,24,31,.075);
    box-shadow: 0 18px 44px rgba(33,39,50,.105), inset 0 1px 0 rgba(255,255,255,.92);
    color: var(--ssn-colour-text);
    gap: var(--ssn-space-sm);
    padding: 0;
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke:hover,
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke:focus-visible,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke:hover,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke:focus-visible {
    background: #fff;
    background-color: #fff;
    color: var(--ssn-colour-text);
    transform: translateY(-5px) scale(1.025);
    box-shadow: 0 28px 70px rgba(33,39,50,.16), inset 0 1px 0 rgba(255,255,255,.94);
    outline: none;
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke[disabled],
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke[disabled] {
    opacity: .46;
    background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(238,240,242,.62));
    background-color: var(--ssn-colour-surface);
    color: var(--ssn-colour-muted);
    cursor: default;
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke[disabled]:hover,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke[disabled]:hover {
    transform: none;
    box-shadow: 0 18px 44px rgba(33,39,50,.105), inset 0 1px 0 rgba(255,255,255,.92);
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke .ssn-ui-icon,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke .ssn-ui-icon {
    color: var(--ssn-colour-icon);
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke strong,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke strong {
    color: var(--ssn-colour-text);
    font-size: calc(var(--ssn-font-size-base) - 1px);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-reports-orbit .ssn-reports-spoke small,
.ssn-shell .ssn-reports-orbit button.ssn-reports-spoke small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-reports-spoke-online { left: 50%; top: 12%; transform: none; }
.ssn-reports-spoke-certificates { left: 82%; top: 68%; right: auto; bottom: auto; }
.ssn-reports-spoke-feedback { left: 18%; top: 68%; right: auto; bottom: auto; }
.ssn-shell.ssn-reports-open .ssn-actionbar {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 40;
}

/* v1.04.59b Reports Action Bar + Collapsed Online Projects */
.ssn-online-project-card {
    padding: 0;
    overflow: hidden;
}
.ssn-online-project-card > header {
    align-items: stretch;
    padding: 14px;
}
.ssn-online-project-toggle {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 16px;
    min-width: 0;
    flex: 1;
    padding: 0;
    text-align: left;
    cursor: pointer;
}
.ssn-online-project-toggle:hover,
.ssn-online-project-toggle:focus-visible {
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-online-project-toggle strong,
.ssn-online-project-toggle small,
.ssn-online-project-toggle em,
.ssn-online-project-counts b {
    display: block;
}
.ssn-online-project-toggle strong {
    font-size: 20px;
    line-height: 1.1;
    font-weight: var(--ssn-font-weight-strong);
    margin: 4px 0;
}
.ssn-online-project-toggle em,
.ssn-online-project-counts small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-style: normal;
}
.ssn-online-project-counts {
    text-align: right;
    min-width: 190px;
}
.ssn-online-project-counts b {
    font-size: 14px;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-online-project-chevron {
    width: 26px;
    height: 26px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    display: inline-grid;
    place-items: center;
    color: var(--ssn-colour-muted);
    transform: rotate(90deg);
    transition: transform .18s ease, background-color .18s ease;
}
.ssn-online-project-card.is-collapsed .ssn-online-project-chevron {
    transform: rotate(0deg);
}
.ssn-online-project-card:not(.is-collapsed) .ssn-online-project-chevron,
.ssn-online-project-toggle:hover .ssn-online-project-chevron,
.ssn-online-project-toggle:focus-visible .ssn-online-project-chevron {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
}
.ssn-online-project-body {
    padding: 0 14px 14px;
}
.ssn-online-project-card.is-collapsed .ssn-online-project-body {
    display: none;
}
.ssn-shell.ssn-reports-open .ssn-actionbar {
    width: min(760px, 74vw);
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.ssn-shell.ssn-reports-open .ssn-actionbar .ssn-smart-action[data-ssn-context~="reports"] {
    display: inline-flex;
}
@media (max-width: 1100px) {
    .ssn-online-project-toggle { grid-template-columns: minmax(0, 1fr) auto; }
    .ssn-online-project-counts { grid-column: 1 / -1; text-align: left; min-width: 0; }
}


/* v1.04.59c Reports Collapsed Project Token Hardening
   Online Progress project rows are neutral cards. No local accent fill is allowed and no browser/theme button state may colour the row. */
.ssn-shell.ssn-reports-open .ssn-online-project-card,
.ssn-shell.ssn-reports-open .ssn-online-project-card > header {
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    border-color: var(--ssn-colour-line);
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle,
.ssn-shell.ssn-reports-open button.ssn-online-project-toggle,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:hover,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:focus,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:focus-visible,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:active,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle[aria-expanded="true"] {
    background: transparent;
    background-color: transparent;
    background-image: none;
    border-color: transparent;
    box-shadow: none;
    color: var(--ssn-colour-text);
    outline: none;
    -webkit-tap-highlight-color: transparent;
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle *,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:hover *,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:focus *,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:focus-visible *,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:active *,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle[aria-expanded="true"] * {
    background: transparent;
    background-color: transparent;
    background-image: none;
}
.ssn-shell.ssn-reports-open .ssn-online-project-card:not(.is-collapsed) {
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-shell.ssn-reports-open .ssn-online-project-card:not(.is-collapsed) > header {
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:hover .ssn-online-project-chevron,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:focus-visible .ssn-online-project-chevron,
.ssn-shell.ssn-reports-open .ssn-online-project-card:not(.is-collapsed) .ssn-online-project-chevron {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
}
.ssn-shell[data-ssn-action-context="reports"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="reports"] {
    display: inline-flex;
}
.ssn-shell[data-ssn-action-context="reports"] .ssn-actionbar {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* v1.04.59d Reports Card Interaction + Typography Hardening
   Online Progress project cards are neutral report rows. Card expansion is handled by JS;
   CSS must not introduce accent fills, heavy local headings or browser text-selection colour. */
.ssn-shell.ssn-reports-open .ssn-actionbar .ssn-smart-action[data-ssn-context~="reports"],
.ssn-shell[data-ssn-action-context="reports"] .ssn-actionbar .ssn-smart-action[data-ssn-context~="reports"] {
    display: inline-flex;
}
.ssn-shell.ssn-reports-open .ssn-actionbar,
.ssn-shell[data-ssn-action-context="reports"] .ssn-actionbar {
    width: auto;
    inline-size: max-content;
    max-inline-size: calc(100vw - 96px);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.ssn-shell.ssn-reports-open .ssn-online-project-card {
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    box-shadow: none;
}
.ssn-shell.ssn-reports-open .ssn-online-project-card > header {
    background: transparent;
    background-color: transparent;
    border: 0;
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle,
.ssn-shell.ssn-reports-open button.ssn-online-project-toggle {
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    background-color: transparent;
    background-image: none;
    border: 0;
    box-shadow: none;
    color: var(--ssn-colour-text);
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle::selection,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle *::selection {
    background: transparent;
    color: inherit;
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle strong {
    font-size: var(--ssn-font-size-title);
    line-height: var(--ssn-line-height-base);
    font-weight: var(--ssn-font-weight-normal);
    letter-spacing: 0;
    color: var(--ssn-colour-text);
}
.ssn-shell.ssn-reports-open .ssn-online-project-card:not(.is-collapsed) {
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-colour-surface-strong);
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-shell.ssn-reports-open .ssn-online-project-body[aria-hidden="false"] {
    display: block;
}
.ssn-shell.ssn-reports-open .ssn-online-project-card.is-collapsed .ssn-online-project-body,
.ssn-shell.ssn-reports-open .ssn-online-project-body[aria-hidden="true"] {
    display: none;
}
.ssn-shell.ssn-reports-open .ssn-online-project-chevron {
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:hover .ssn-online-project-chevron,
.ssn-shell.ssn-reports-open .ssn-online-project-toggle:focus-visible .ssn-online-project-chevron,
.ssn-shell.ssn-reports-open .ssn-online-project-card:not(.is-collapsed) .ssn-online-project-chevron {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
}


/* v1.04.59f Reports expander forensic fix
   Expanded project bodies must not be kept hidden by earlier CSS, browser state, or module row styles. */
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-expanded {
    height: auto;
    min-height: 0;
    overflow: visible;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-expanded [data-ssn-online-project-body],
.ssn-shell.ssn-reports-open [data-ssn-online-project-body][aria-hidden="false"] {
    display: block;
    visibility: visible;
    opacity: 1;
    max-height: none;
    overflow: visible;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-collapsed [data-ssn-online-project-body],
.ssn-shell.ssn-reports-open [data-ssn-online-project-body][hidden],
.ssn-shell.ssn-reports-open [data-ssn-online-project-body][aria-hidden="true"] {
    display: none;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-expanded .ssn-online-project-chevron {
    transform: rotate(90deg);
}
.ssn-shell.ssn-reports-open .ssn-online-project-toggle strong {
    font-weight: var(--ssn-font-weight-normal);
    font-size: var(--ssn-font-size-body);
}


/* v1.04.59g Reports accordion flow fix
   Online Progress project expansion must behave like a true accordion. Expanded rows stay in normal document flow so following project cards move down. */
.ssn-shell.ssn-reports-open .ssn-online-report-list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    overflow-y: auto;
    overflow-x: hidden;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card] {
    display: block;
    position: relative;
    height: auto;
    min-height: 0;
    overflow: hidden;
    z-index: 0;
    flex: 0 0 auto;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card] > header {
    position: relative;
    display: flex;
    float: none;
    z-index: 1;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-body] {
    position: static;
    float: none;
    inset: auto;
    transform: none;
    width: auto;
    min-height: 0;
    clear: both;
    box-sizing: border-box;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-expanded {
    overflow: visible;
    z-index: 1;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-expanded [data-ssn-online-project-body] {
    display: block;
    margin-top: 0;
    padding: 0 14px 14px;
    visibility: visible;
    opacity: 1;
    max-height: none;
}
.ssn-shell.ssn-reports-open [data-ssn-online-project-card].is-collapsed [data-ssn-online-project-body] {
    display: none;
}
.ssn-shell.ssn-reports-open .ssn-online-report-table {
    position: static;
    display: grid;
    gap: 8px;
}
.ssn-shell.ssn-reports-open .ssn-online-report-row,
.ssn-shell.ssn-reports-open .ssn-online-report-head {
    position: static;
    float: none;
}

/* v1.04.60 Feedback QR foundation */
.ssn-qr-card {
    display: grid;
    gap: 10px;
}

.ssn-qr-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: calc(var(--ssn-radius-md) - 4px);
}

.ssn-qr-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ssn-qr-actions .ssn-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-text);
    text-decoration: none;
    font: inherit;
    font-size: 12px;
    font-weight: var(--ssn-font-weight-medium, 600);
}

.ssn-qr-actions .ssn-button-secondary:hover,
.ssn-qr-actions .ssn-button-secondary:focus-visible {
    background: var(--ssn-surface-soft);
    border-color: var(--ssn-border-strong, var(--ssn-border));
}

.ssn-qr-card.is-locked .ssn-qr-placeholder {
    opacity: .62;
}


/* v1.04.60a Paperwork token hardening */
.ssn-shell .ssn-paperwork-grid button,
.ssn-shell .ssn-qr-actions .ssn-button-secondary,
.ssn-shell .ssn-qr-actions button.ssn-button-secondary,
.ssn-shell .ssn-qr-actions a.ssn-button-secondary {
    -webkit-appearance: none;
    appearance: none;
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    background-image: none;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-paperwork-grid button:hover,
.ssn-shell .ssn-paperwork-grid button:focus-visible,
.ssn-shell .ssn-qr-actions .ssn-button-secondary:hover,
.ssn-shell .ssn-qr-actions .ssn-button-secondary:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    border-color: var(--ssn-border-strong);
    color: var(--ssn-colour-button-secondary-text);
}
.ssn-shell .ssn-paperwork-grid button:active,
.ssn-shell .ssn-qr-actions .ssn-button-secondary:active {
    background: var(--ssn-colour-button-secondary-bg-active);
    background-color: var(--ssn-colour-button-secondary-bg-active);
    color: var(--ssn-colour-button-secondary-text);
}
.ssn-shell .ssn-paperwork-grid button:disabled,
.ssn-shell .ssn-paperwork-grid button[aria-disabled="true"] {
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    border-color: var(--ssn-colour-control-border);
    color: var(--ssn-colour-muted);
    opacity: .58;
    cursor: not-allowed;
}
.ssn-shell .ssn-paperwork-grid button strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-label);
}
.ssn-shell .ssn-paperwork-grid button small {
    color: var(--ssn-colour-muted);
}


/* v1.04.61 QR Codes sharing centre
   QR cards are Training-module sharing controls and must use core card/button tokens only. URLs stay in data attributes, not visible text fields. */
.ssn-shell .ssn-qr-workspace .ssn-qr-head h2 {
    letter-spacing: var(--ssn-letter-wide, .28em);
    text-transform: uppercase;
}
.ssn-shell .ssn-qr-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.ssn-shell .ssn-qr-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--ssn-colour-card-border, var(--ssn-border));
    border-radius: var(--ssn-radius-card, 18px);
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    background-color: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    box-shadow: var(--ssn-shadow-card, none);
}
.ssn-shell .ssn-qr-card header {
    display: grid;
    gap: 3px;
}
.ssn-shell .ssn-qr-card h3 {
    margin: 0;
    font-size: var(--ssn-font-size-body);
    line-height: 1.25;
    font-weight: var(--ssn-font-weight-label, 650);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-qr-card p {
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small, 12px);
    line-height: 1.35;
}
.ssn-shell .ssn-qr-placeholder {
    width: 152px;
    height: 152px;
    display: grid;
    place-items: center;
    border: 1px solid var(--ssn-colour-control-border, var(--ssn-border));
    border-radius: var(--ssn-radius-md, 14px);
    background: var(--ssn-colour-surface-strong, #fff);
    background-color: var(--ssn-colour-surface-strong, #fff);
    overflow: hidden;
}
.ssn-shell .ssn-qr-placeholder img {
    width: 140px;
    height: 140px;
    object-fit: contain;
    border-radius: 0;
}
.ssn-shell .ssn-qr-card input[data-ssn-feedback-url],
.ssn-shell .ssn-qr-card input[data-ssn-evaluation-url] {
    display: none;
}
.ssn-shell .ssn-qr-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ssn-shell .ssn-qr-card.is-locked {
    opacity: .72;
}
@media (max-width: 900px) {
    .ssn-shell .ssn-qr-grid { grid-template-columns: 1fr; }
}

/* v1.04.62 secure refresh, continue spoke and QR availability rules */
.ssn-spoke-continue {
    left: 50%;
    top: 64%;
    width: 98px;
    height: 98px;
    margin: -49px 0 0 -49px;
    border: 1px solid var(--ssn-colour-line);
    background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(238,240,242,.9));
    z-index: 6;
    color: var(--ssn-colour-text);
}
.ssn-spoke-continue[hidden] { display: none; }
.ssn-spoke-continue small {
    display: block;
    max-width: 92px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--ssn-colour-muted);
    font-size: calc(var(--ssn-font-size-base) - 4px);
    font-weight: var(--ssn-font-weight-regular);
}
.ssn-qr-card.is-locked .ssn-qr-placeholder,
.ssn-qr-card.is-locked .ssn-qr-actions {
    opacity: .42;
    pointer-events: none;
}
.ssn-qr-card.is-locked::after {
    content: attr(data-ssn-lock-label);
    display: inline-flex;
    margin-top: var(--ssn-space-sm);
    padding: 6px 10px;
    border-radius: var(--ssn-radius-pill);
    border: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-muted);
    font-size: calc(var(--ssn-font-size-base) - 3px);
}

/* v1.04.64 secure session guard */
.ssn-shell.ssn-session-ended { pointer-events: none; filter: blur(1px); }

/* v1.04.64a Continue prompt: keep the centre hub icon permanent. */
.ssn-continue-prompt {
    position: fixed;
    left: 50%;
    bottom: 104px;
    z-index: 999998;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: min(520px, calc(100vw - 40px));
    padding: 14px 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-lg, 24px);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-surface);
    box-shadow: var(--ssn-shadow-soft);
    color: var(--ssn-text);
    opacity: 0;
    transform: translate(-50%, 10px);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}
.ssn-continue-prompt.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
}
.ssn-continue-prompt strong {
    display: block;
    font-size: 13px;
    font-weight: var(--ssn-font-weight-strong, 650);
    color: var(--ssn-text);
}
.ssn-continue-prompt small {
    display: block;
    margin-top: 3px;
    max-width: 260px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 12px;
    color: var(--ssn-colour-muted);
}
.ssn-continue-prompt-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.ssn-continue-prompt button {
    appearance: none;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill, 999px);
    background: var(--ssn-colour-surface-strong);
    background-color: var(--ssn-surface);
    color: var(--ssn-text);
    min-height: 34px;
    padding: 0 14px;
    font: inherit;
    font-size: 12px;
    font-weight: var(--ssn-font-weight-strong, 650);
    cursor: pointer;
}
.ssn-continue-prompt button:hover {
    background: var(--ssn-surface-soft, #f8fafc);
    background-color: var(--ssn-surface-soft, #f8fafc);
}
@media (max-width: 640px) {
    .ssn-continue-prompt {
        align-items: stretch;
        flex-direction: column;
        bottom: 82px;
    }
    .ssn-continue-prompt-actions,
    .ssn-continue-prompt button { width: 100%; }
    .ssn-continue-prompt button { justify-content: center; }
}

/* v1.04.65 update install overlay */
.ssn-update-ignore{border:1px solid var(--ssn-colour-line);background:var(--ssn-colour-control-bg);color:var(--ssn-colour-muted);border-radius:999px;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer}.ssn-update-progress-overlay{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;background:rgba(246,247,248,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.ssn-update-progress-card{width:min(360px,calc(100vw - 40px));border:1px solid var(--ssn-colour-line);background:var(--ssn-colour-surface-strong);border-radius:28px;padding:24px;box-shadow:var(--ssn-shadow-panel);display:grid;gap:10px;text-align:center}.ssn-update-progress-card strong{font-size:16px;color:var(--ssn-colour-text)}.ssn-update-progress-card small{color:var(--ssn-colour-muted)}.ssn-update-progress-bar{height:8px;border-radius:999px;background:var(--ssn-colour-pill-neutral-bg);overflow:hidden}.ssn-update-progress-bar i{display:block;width:42%;height:100%;border-radius:inherit;background:var(--ssn-colour-button-primary-bg);animation:ssnUpdateProgress 1.6s ease-in-out infinite}@keyframes ssnUpdateProgress{0%{transform:translateX(-120%)}100%{transform:translateX(260%)}}

/* v1.04.65b Payment audit summary */
.ssn-payment-audit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-md);
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-text);
}
.ssn-payment-audit strong {
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-payment-audit small,
.ssn-payment-audit span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-payment-audit div {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--ssn-space-xs);
}

/* v1.04.65c Feedback QR rail and quick link editor */
.ssn-qr-rail-panel,
.ssn-quick-link-panel {
  position: fixed;
  top: var(--ssn-shell-top, 128px);
  right: 28px;
  width: min(360px, calc(100vw - 48px));
  max-height: calc(100vh - 170px);
  overflow: auto;
  z-index: 70;
  background: var(--ssn-card-bg, #fff);
  border: 1px solid var(--ssn-border, rgba(17,24,39,.1));
  border-radius: var(--ssn-card-radius, 22px);
  box-shadow: var(--ssn-elevation-rail, 0 24px 80px rgba(15,23,42,.12));
  padding: 18px;
  transition: opacity .18s ease, transform .18s ease;
}
.ssn-qr-rail-panel[aria-hidden="true"],
.ssn-quick-link-panel[aria-hidden="true"] { opacity: 0; pointer-events: none; transform: translateX(14px); }
.ssn-qr-rail-panel header,
.ssn-quick-link-panel header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:16px; }
.ssn-qr-rail-panel h2,
.ssn-quick-link-panel h2 { margin:0; font-size:16px; font-weight:650; color:var(--ssn-text-strong,#111827); }
.ssn-qr-rail-panel p,
.ssn-quick-link-panel p { margin:2px 0 0; font-size:13px; color:var(--ssn-text-muted,#667085); }
.ssn-qr-rail-body { display:grid; gap:14px; }
.ssn-feedback-status-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:14px; margin-top:18px; }
.ssn-feedback-status-card { border:1px solid var(--ssn-border,#e5e7eb); border-radius:18px; background:var(--ssn-surface,#fff); padding:16px; display:grid; gap:8px; }
.ssn-feedback-status-card small { color:var(--ssn-text-muted,#667085); font-size:12px; }
.ssn-feedback-status-card strong { color:var(--ssn-text-strong,#111827); font-size:16px; font-weight:650; }
.ssn-feedback-status-card p { margin:0; color:var(--ssn-text-muted,#667085); font-size:13px; line-height:1.4; }
.ssn-quick-link-form { display:grid; gap:14px; }
.ssn-quick-link-form label { display:grid; gap:6px; color:var(--ssn-text-muted,#667085); font-size:12px; font-weight:650; }
.ssn-quick-link-form input { border:1px solid var(--ssn-border,#e5e7eb); border-radius:14px; padding:11px 12px; font:inherit; color:var(--ssn-text-strong,#111827); background:var(--ssn-input-bg,#fff); }
.ssn-quick-link-form footer { display:flex; gap:8px; align-items:center; justify-content:flex-end; }
.ssn-quick-link-form footer button,
.ssn-quick-link-form footer a { min-height:36px; }
.ssn-quick-link-message { min-height:16px; font-size:12px; color:var(--ssn-text-muted,#667085); }
.ssn-feedback-participant-options { display:grid; gap:8px; margin-top:8px; }
.ssn-feedback-participant-none { border:0; background:transparent; color:var(--ssn-muted,#667085); padding:8px 4px; text-align:left; font:inherit; font-weight:600; }
@media (max-width: 760px){ .ssn-feedback-status-grid{grid-template-columns:1fr}.ssn-qr-rail-panel,.ssn-quick-link-panel{right:14px;left:14px;width:auto;top:96px;} }


/* v1.04.65d Quick Link Viewer + Rail Unification */
.ssn-shell .ssn-qr-rail-panel,
.ssn-shell .ssn-quick-link-panel,
.ssn-shell .ssn-proposal-right-editor {
    position: fixed;
    top: calc(var(--ssn-topbar-height) + 28px);
    right: 32px;
    bottom: 124px;
    width: min(366px, calc(100vw - 64px));
    max-height: none;
    overflow: hidden;
    z-index: 82;
    display: flex;
    flex-direction: column;
    padding: 0;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-panel, 28px);
    background: var(--ssn-colour-card, rgba(255,255,255,.96));
    background-color: var(--ssn-colour-card, rgba(255,255,255,.96));
    box-shadow: var(--ssn-shadow-panel, 0 24px 70px rgba(15,23,42,.16));
    opacity: 0;
    pointer-events: none;
    transform: translateX(10px) scale(.985);
    transition: opacity .18s ease, transform .18s ease;
}
.ssn-shell .ssn-qr-rail-panel[aria-hidden="false"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="false"],
.ssn-shell .ssn-proposal-right-editor[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell .ssn-qr-rail-panel > header,
.ssn-shell .ssn-quick-link-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
    margin: 0;
}
.ssn-shell .ssn-qr-rail-panel h2,
.ssn-shell .ssn-quick-link-panel h2 {
    margin: 0;
    color: var(--ssn-colour-ink, #111827);
    font-size: 18px;
    font-weight: var(--ssn-font-weight-strong, 700);
    letter-spacing: -.02em;
}
.ssn-shell .ssn-qr-rail-panel p,
.ssn-shell .ssn-quick-link-panel p {
    margin: 2px 0 0;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    line-height: 1.45;
}
.ssn-shell .ssn-qr-rail-body,
.ssn-shell .ssn-quick-link-form {
    overflow-y: auto;
    overflow-x: hidden;
    padding: 16px;
}
.ssn-shell .ssn-quick-link-form {
    display: grid;
    gap: 14px;
}
.ssn-shell .ssn-quick-link-form button.ssn-button-primary,
.ssn-shell .ssn-quick-link-form button.ssn-button-primary:hover,
.ssn-shell .ssn-quick-link-form button.ssn-button-primary:focus,
.ssn-shell .ssn-quick-link-form button.ssn-button-primary:focus-visible,
.ssn-shell .ssn-quick-link-form button.ssn-button-primary:active {
    appearance: none;
    border: 1px solid var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
    filter: none;
}
.ssn-linked-document-viewer {
    height: 100%;
    min-height: 420px;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 14px;
    padding: 28px;
}
.ssn-linked-document-viewer > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.ssn-linked-document-viewer small {
    display: block;
    margin-bottom: 5px;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 11px;
    font-weight: var(--ssn-font-weight-strong, 700);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-linked-document-viewer h2 {
    margin: 0;
    color: var(--ssn-colour-ink, #111827);
    font-size: 22px;
    letter-spacing: -.03em;
}
.ssn-linked-document-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.ssn-linked-document-viewer iframe {
    width: 100%;
    height: 100%;
    min-height: 520px;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-panel, 22px);
    background: var(--ssn-colour-surface, #fff);
}
@media (max-width: 760px) {
    .ssn-shell .ssn-qr-rail-panel,
    .ssn-shell .ssn-quick-link-panel,
.ssn-shell .ssn-proposal-right-editor {
        inset: 96px 14px 86px 14px;
        width: auto;
    }
    .ssn-linked-document-viewer { padding: 18px; }
}

/* v1.04.65e Centre workspace overlay + compact QR rail */
.ssn-project-detail-centre {
    position: relative;
}
.ssn-workspace-overlay {
    position: absolute;
    inset: 0;
    z-index: 90;
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: var(--ssn-colour-card, rgba(255,255,255,.98));
    background-color: var(--ssn-colour-card, rgba(255,255,255,.98));
    box-shadow: inset 0 0 0 1px var(--ssn-colour-line, rgba(15,23,42,.08));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(6px) scale(.992);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    overflow: hidden;
}
.ssn-workspace-overlay[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.ssn-workspace-overlay iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: inherit;
    background: var(--ssn-colour-surface, #fff);
}
.ssn-workspace-overlay-toolbar {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: 999px;
    background: color-mix(in srgb, var(--ssn-colour-card, #fff) 92%, transparent);
    box-shadow: var(--ssn-shadow-soft, 0 14px 34px rgba(15,23,42,.10));
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.ssn-workspace-overlay-toolbar .ssn-button-secondary,
.ssn-workspace-overlay-toolbar a.ssn-button-secondary,
.ssn-workspace-overlay-toolbar button.ssn-button-secondary {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border-color: var(--ssn-colour-line, rgba(15,23,42,.10));
    background: var(--ssn-colour-surface, #fff);
    color: var(--ssn-colour-ink, #111827);
    text-decoration: none;
    font-size: 12px;
    font-weight: var(--ssn-font-weight-strong, 700);
}
.ssn-project-detail-centre.is-workspace-overlay-open > .ssn-project-detail-header,
.ssn-project-detail-centre.is-workspace-overlay-open > .ssn-project-detail-panel {
    filter: blur(8px);
    opacity: .38;
}
.ssn-linked-document-viewer > header { display: none; }
.ssn-linked-document-viewer { padding: 0; gap: 0; }
.ssn-linked-document-viewer iframe { border: 0; border-radius: inherit; min-height: 100%; }

.ssn-shell .ssn-qr-rail-panel > header { padding: 14px 16px 10px; }
.ssn-shell .ssn-qr-rail-panel p { display: none; }
.ssn-shell .ssn-qr-rail-body { padding: 12px 14px 14px; gap: 10px; overflow: hidden; }
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card {
    padding: 12px;
    gap: 9px;
    border-radius: 18px;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card header { margin: 0; }
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card h3 {
    margin: 0;
    font-size: 14px;
    line-height: 1.15;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-placeholder {
    min-height: 0;
    padding: 6px;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-placeholder img {
    width: 136px;
    height: 136px;
    display: block;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-actions {
    gap: 8px;
    margin: 0;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-actions .ssn-button-secondary {
    min-height: 34px;
    padding: 0 12px;
    font-size: 12px;
}
@media (max-width: 760px) {
    .ssn-workspace-overlay-toolbar { left: 14px; right: 14px; justify-content: flex-end; }
}

/* v1.04.65g Online report drilldown controls */
.ssn-report-summary-strip button {
    appearance: none;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.62);
    color: var(--ssn-colour-ink);
    padding: 12px 14px;
    text-align: left;
    font: inherit;
    cursor: pointer;
}
.ssn-report-summary-strip button:hover,
.ssn-report-summary-strip button:focus-visible,
.ssn-report-summary-strip button.is-active {
    background: var(--ssn-colour-surface-soft);
    border-color: var(--ssn-colour-line-strong);
    color: var(--ssn-colour-ink);
    outline: none;
}
.ssn-report-summary-strip button small,
.ssn-report-summary-strip button strong { display: block; }
.ssn-online-report.is-filtered [data-ssn-online-project-card].is-filter-hidden,
.ssn-online-report.is-filtered [data-ssn-online-row-status].is-filter-hidden { display: none; }
.ssn-online-report.is-filtered [data-ssn-online-project-card].has-filter-match [data-ssn-online-project-body] {
    display: grid;
    max-height: none;
    opacity: 1;
    visibility: visible;
}
.ssn-online-report.is-filtered [data-ssn-online-project-card].has-filter-match .ssn-online-project-chevron { transform: rotate(90deg); }

/* v1.04.65h Delivery participant flexibility */
.ssn-delivery-remove-action,
.ssn-shell .ssn-delivery-remove-action {
    justify-self: end;
    align-self: center;
}

.ssn-delivery-register-head > span:last-child {
    min-width: 28px;
}

/* v1.04.67 New Project Rail Controller Recovery
   Owner block: new project/account rail must use explicit core Navigator tokens only.
   Do not use legacy alias tokens such as --ssn-soft, --ssn-ink, cyan or pink hard-coded fills. */
.ssn-new-project-rail {
    position: fixed;
    top: calc(var(--ssn-topbar-height, 72px) + 16px);
    right: 18px;
    bottom: calc(var(--ssn-actionbar-safe-space, 92px) + 14px);
    z-index: 99990;
    width: min(430px, calc(100vw - 36px));
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 28px;
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-text);
    box-shadow: var(--ssn-shadow-panel);
    transform: translateX(18px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}
.ssn-new-project-rail[aria-hidden="false"] {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
}
.ssn-new-project-rail > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-new-project-rail > header small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}
.ssn-new-project-rail > header h2 {
    margin: 2px 0 0;
    font-size: 22px;
    line-height: 1.15;
}
.ssn-new-project-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
    overflow: auto;
    padding-right: 2px;
}
.ssn-new-project-step {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 22px;
    background: var(--ssn-colour-card-bg, rgba(255,255,255,.88));
}
.ssn-new-project-step > span {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-muted);
    font-size: 12px;
    font-weight: 800;
}
.ssn-new-project-step h3 {
    margin: 0 0 10px;
    font-size: 15px;
    line-height: 1.2;
}
.ssn-choice-grid {
    display: grid;
    gap: 8px;
}
.ssn-choice-grid label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 2px;
    align-items: start;
    padding: 10px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 16px;
    background: var(--ssn-colour-surface-strong);
    cursor: pointer;
}
.ssn-choice-grid input { margin-top: 3px; }
.ssn-choice-grid strong { font-size: 13px; line-height: 1.2; }
.ssn-choice-grid small { grid-column: 2; color: var(--ssn-colour-muted); font-size: 12px; line-height: 1.35; }
.ssn-field-label {
    display: grid;
    gap: 6px;
    color: var(--ssn-colour-muted);
    font-size: 12px;
    font-weight: 700;
}
.ssn-field-label input,
.ssn-field-label select {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 14px;
    background: var(--ssn-colour-surface-strong);
    color: var(--ssn-colour-text);
    padding: 8px 11px;
    font: inherit;
    font-size: 14px;
    outline: none;
    box-shadow: none;
}
.ssn-field-label input:focus,
.ssn-field-label select:focus {
    border-color: var(--ssn-colour-text);
}
.ssn-two-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.ssn-form-note {
    display: block;
    margin-top: 8px;
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.35;
}
.ssn-new-project-form footer {
    position: sticky;
    bottom: 0;
    display: grid;
    gap: 10px;
    padding-top: 12px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), var(--ssn-colour-surface-strong) 22%);
}
.ssn-new-project-form footer p {
    min-height: 18px;
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: 13px;
}
.ssn-new-project-form .ssn-button-primary {
    width: 100%;
    justify-content: center;
}
@media (max-width: 720px) {
    .ssn-new-project-rail {
        left: 12px;
        right: 12px;
        width: auto;
    }
    .ssn-two-fields { grid-template-columns: 1fr; }
}


/* v1.04.67 primary token guard for temporary rails */
.ssn-shell .ssn-new-project-form .ssn-button-primary,
.ssn-shell .ssn-new-project-form .ssn-button-primary:hover,
.ssn-shell .ssn-new-project-form .ssn-button-primary:focus,
.ssn-shell .ssn-new-project-form .ssn-button-primary:focus-visible,
.ssn-shell .ssn-new-project-form .ssn-button-primary:active {
    width: 100%;
    justify-content: center;
    border: 1px solid var(--ssn-colour-button-primary-bg);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
}
.ssn-shell .ssn-new-project-rail > header h2,
.ssn-shell .ssn-new-project-step h3 {
    color: var(--ssn-colour-text);
}

/* v1.04.69 Key Person Relationship + Existing Contact Card Integration */
.ssn-shell .ssn-key-contact-change {
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-card, 18px);
    background: var(--ssn-colour-card-bg, #fff);
    padding: 14px;
    display: grid;
    gap: 10px;
}
.ssn-shell .ssn-key-contact-change h3 {
    margin: 0;
    color: var(--ssn-colour-text, #111827);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.01em;
}
.ssn-shell .ssn-key-contact-message {
    margin: 0;
    min-height: 16px;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
}
.ssn-shell .ssn-summary-contact-button {
    color: var(--ssn-colour-text, #111827);
    background: transparent;
    background-color: transparent;
    border-color: transparent;
}

/* v1.04.72 Feedback Pulse Rail + Signature Pad Recovery */
.ssn-feedback-viewer-panel {
  position: absolute;
  top: 24px;
  right: 24px;
  bottom: 24px;
  width: min(360px, calc(100% - 48px));
  border: 1px solid var(--ssn-colour-line);
  border-radius: var(--ssn-radius-xl);
  background: var(--ssn-colour-card-bg);
  color: var(--ssn-colour-text);
  box-shadow: var(--ssn-shadow-rail);
  z-index: 60;
  padding: 18px;
  display: none;
  overflow: auto;
}
.ssn-feedback-viewer-panel.is-open,
.ssn-feedback-viewer-panel[aria-hidden="false"] { display: block; }
.ssn-feedback-viewer-panel header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-feedback-viewer-panel h2 {
  margin: 0;
  font-size: var(--ssn-font-size-lg);
  line-height: 1.2;
  color: var(--ssn-colour-text);
}
.ssn-feedback-viewer-panel p {
  margin: 4px 0 0;
  color: var(--ssn-colour-muted);
  font-size: var(--ssn-font-size-sm);
}
.ssn-feedback-view-body { padding-top: 14px; }
.ssn-feedback-view-list,
.ssn-feedback-audit dl {
  margin: 0;
  display: grid;
  gap: 10px;
}
.ssn-feedback-view-list div,
.ssn-feedback-audit dl div {
  border: 1px solid var(--ssn-colour-line);
  border-radius: var(--ssn-radius-md);
  background: var(--ssn-colour-surface);
  padding: 10px 12px;
}
.ssn-feedback-view-list dt,
.ssn-feedback-audit dt {
  margin: 0 0 4px;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ssn-colour-muted);
  font-weight: 700;
}
.ssn-feedback-view-list dd,
.ssn-feedback-audit dd {
  margin: 0;
  color: var(--ssn-colour-text);
  font-weight: 700;
  white-space: pre-wrap;
}
.ssn-feedback-audit {
  margin-top: 14px;
  border-top: 1px solid var(--ssn-colour-line);
  padding-top: 12px;
}
.ssn-feedback-audit summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--ssn-colour-text);
}
.ssn-public-context span + span::before { content: " · "; color: var(--ssn-colour-muted); }
.ssn-public-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid var(--ssn-colour-line);
  border-radius: var(--ssn-radius-md);
  padding: 12px;
  background: var(--ssn-colour-surface);
}
.ssn-public-check input { margin-top: 3px; }
.ssn-public-signature {
  min-height: 90px;
  border-style: dashed;
}


/* v1.04.71 Feedback viewer must use the shared Pulse card language. */
.ssn-feedback-viewer-panel .ssn-pulse-card,
.ssn-feedback-view-card,
.ssn-feedback-audit {
  background: var(--ssn-colour-card-bg, #fff);
  border: 1px solid var(--ssn-colour-line, rgba(17,24,39,.10));
  border-radius: var(--ssn-radius-card, 18px);
  box-shadow: var(--ssn-shadow-card, 0 18px 45px rgba(15,23,42,.08));
  padding: 14px;
}
.ssn-feedback-viewer-panel .ssn-feedback-view-list div {
  border: 0;
  border-bottom: 1px solid var(--ssn-colour-line, rgba(17,24,39,.10));
  padding: 10px 0;
}
.ssn-feedback-viewer-panel .ssn-feedback-view-list div:last-child { border-bottom: 0; }
.ssn-feedback-viewer-panel .ssn-feedback-audit {
  margin-top: 12px;
}
.ssn-feedback-viewer-panel .ssn-feedback-audit summary {
  cursor: pointer;
  color: var(--ssn-colour-text-muted, #6b7280);
  font-weight: 700;
}


/* v1.04.72 Feedback viewer uses the shared Pulse right-rail language. */
.ssn-shell .ssn-feedback-viewer-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: none;
  border: 0;
  border-left: 1px solid var(--ssn-colour-line, rgba(17,24,39,.10));
  border-radius: var(--ssn-radius-panel, 28px);
  background: var(--ssn-colour-card-bg, #fff);
  background-color: var(--ssn-colour-card-bg, #fff);
  color: var(--ssn-colour-text, #111827);
  box-shadow: var(--ssn-shadow-rail, 0 24px 80px rgba(15,23,42,.08));
  opacity: 1;
  z-index: 120;
  padding: 18px;
}
.ssn-shell .ssn-feedback-viewer-panel .ssn-pulse-card,
.ssn-shell .ssn-feedback-view-card,
.ssn-shell .ssn-feedback-audit {
  background: var(--ssn-colour-card-bg, #fff);
  background-color: var(--ssn-colour-card-bg, #fff);
}
.ssn-shell .ssn-feedback-view-signature img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid var(--ssn-colour-line, rgba(17,24,39,.10));
  border-radius: var(--ssn-radius-md, 14px);
  background: #fff;
}


/* v1.04.73 Feedback rail dimensions + token recovery */
.ssn-shell .ssn-feedback-viewer-panel {
  position: absolute;
  top: 24px;
  right: 24px;
  bottom: 24px;
  width: min(360px, calc(100% - 48px));
  max-width: 360px;
  border: 1px solid var(--ssn-colour-line, rgba(17,24,39,.10));
  border-radius: var(--ssn-radius-xl, 28px);
  background: var(--ssn-colour-card-bg, #fff);
  background-color: var(--ssn-colour-card-bg, #fff);
  box-shadow: var(--ssn-shadow-rail, 0 24px 80px rgba(15,23,42,.08));
  padding: 18px;
  overflow: auto;
  opacity: 1;
}
.ssn-shell .ssn-feedback-viewer-panel[aria-hidden="true"] { display: none; }
.ssn-shell .ssn-feedback-viewer-panel.is-open,
.ssn-shell .ssn-feedback-viewer-panel[aria-hidden="false"] { display: block; }


/* v1.04.74 Feedback public polish + lock rail recovery */
.ssn-shell.ssn-locked [data-ssn-qr-rail-panel],
.ssn-shell.ssn-locked [data-ssn-feedback-viewer-panel],
.ssn-shell.ssn-locked [data-ssn-participant-rail],
.ssn-shell.ssn-locked [data-ssn-booking-drawer],
.ssn-shell.ssn-locked [data-ssn-new-project-rail],
.ssn-shell.ssn-locked [data-ssn-pulse-panel],
.ssn-shell.ssn-locked [data-ssn-activity-panel],
.ssn-shell.ssn-locked [data-ssn-quick-link-panel] {
  display: none;
}
.ssn-shell .ssn-feedback-viewer-panel {
  left: auto;
  right: 24px;
  width: 360px;
  max-width: calc(100vw - 48px);
  min-width: 0;
  background: var(--ssn-colour-card-bg, #fff);
  background-color: var(--ssn-colour-card-bg, #fff);
}
.ssn-shell .ssn-feedback-viewer-panel .ssn-feedback-view-body {
  padding-top: 14px;
}

/* v1.04.75 Feedback scale + eManual handoff polish */
.ssn-shell.ssn-locked [data-ssn-feedback-viewer-panel],
.ssn-shell.ssn-locked [data-ssn-qr-rail-panel] {
  display: none;
}
.ssn-feedback-viewer-panel,
.ssn-feedback-viewer-panel.is-open {
  background: var(--ssn-colour-card-bg, #fff);
  background-color: var(--ssn-colour-card-bg, #fff);
}

/* v1.04.76 Feedback submit + duplicate detection recovery
   Public feedback form owns its own PHP-rendered CSS. Navigator shell remains token-led. */


/* v1.04.80 Project Remove + Refresh Loading Recovery */
.ssn-shell:not([data-ssn-action-context="project"]) .ssn-more-spoke-remove,
.ssn-actionbar:not([data-ssn-action-context="project"]) ~ .ssn-more-hub .ssn-more-spoke-remove {
    display: none;
}
.ssn-shell[data-ssn-action-context="project"] .ssn-more-spoke-remove {
    display: flex;
}
.ssn-refresh-status {
    position: fixed;
    inset: 0 auto auto 0;
    width: 100%;
    height: 3px;
    z-index: 999999;
    background: transparent;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}
.ssn-refresh-status span {
    display: block;
    width: 38%;
    height: 3px;
    border-radius: 999px;
    background: var(--ssn-colour-text, #111827);
    animation: ssn-refresh-bar 1.1s ease-in-out infinite;
}
.ssn-refresh-status strong {
    position: fixed;
    right: 18px;
    bottom: 18px;
    padding: 9px 12px;
    border-radius: 999px;
    background: var(--ssn-colour-card-bg, #fff);
    border: 1px solid var(--ssn-colour-line, rgba(17,24,39,.12));
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    font-weight: 700;
    box-shadow: var(--ssn-shadow-card, 0 14px 40px rgba(15,23,42,.10));
}
.ssn-shell.ssn-is-refreshing .ssn-refresh-status,
.ssn-shell.ssn-is-booting .ssn-refresh-status {
    opacity: 1;
    visibility: visible;
}
.ssn-shell.ssn-is-booting .ssn-refresh-status strong::after {
    content: 'Loading Navigator…';
}
.ssn-shell.ssn-is-booting .ssn-refresh-status strong { font-size: 0; }
.ssn-shell.ssn-is-booting .ssn-refresh-status strong::after { font-size: 12px; }
.ssn-shell.ssn-is-refreshing [data-ssn-boot-orbit],
.ssn-shell.ssn-is-booting [data-ssn-boot-orbit] {
    opacity: 0;
    visibility: hidden;
}
@keyframes ssn-refresh-bar {
    0% { transform: translateX(-42%); }
    50% { transform: translateX(142%); }
    100% { transform: translateX(262%); }
}


/* v1.04.81 Project more polish + feedback slider centring */
.ssn-more-spoke-remove { display: none; }
.ssn-feedback-viewer-panel,
.ssn-feedback-viewer-panel.is-open { background: var(--ssn-colour-card-bg, #fff); background-color: var(--ssn-colour-card-bg, #fff); }
.ssn-shell.ssn-is-booting .ssn-hub,
.ssn-shell.ssn-is-booting .ssn-more-hub,
.ssn-shell.ssn-is-booting .ssn-settings-grid,
.ssn-shell.ssn-is-booting [data-ssn-project-detail-workspace],
.ssn-shell.ssn-is-refreshing .ssn-hub,
.ssn-shell.ssn-is-refreshing .ssn-more-hub,
.ssn-shell.ssn-is-refreshing .ssn-settings-grid,
.ssn-shell.ssn-is-refreshing [data-ssn-project-detail-workspace] {
    opacity: 0;
    visibility: hidden;
}
.ssn-shell.ssn-is-booting .ssn-refresh-status,
.ssn-shell.ssn-is-refreshing .ssn-refresh-status {
    opacity: 1;
    visibility: visible;
}

/* v1.04.82 Pulse footer project actions + slider pill polish */
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card {
    padding-bottom: 88px;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: auto -22px -88px;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    position: sticky;
    bottom: -88px;
    z-index: 4;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button {
    min-height: 56px;
    border: 0;
    border-radius: 0;
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
    box-shadow: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button + button {
    border-left: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button:first-child {
    border-bottom-left-radius: var(--ssn-radius-panel);
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button:last-child {
    border-bottom-right-radius: var(--ssn-radius-panel);
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-more-spoke-lost { display: none; }
/* v1.04.82 footer edge alignment correction */
.ssn-shell .ssn-project-detail-grid > .ssn-project-detail-summary.ssn-card { padding-bottom: 22px; }
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer { margin: auto -22px -22px; bottom: -22px; }

/* v1.04.83 Health Check Foundation + Refresh Diagnostics */
.ssn-shell .ssn-health-panel {
    position: fixed;
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    bottom: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    z-index: 84;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-panel, 28px);
    background: var(--ssn-colour-card, rgba(255,255,255,.96));
    background-color: var(--ssn-colour-card, rgba(255,255,255,.96));
    box-shadow: var(--ssn-shadow-panel, 0 24px 70px rgba(15,23,42,.16));
    opacity: 0;
    pointer-events: none;
    transform: translateX(10px) scale(.985);
    transition: opacity .18s ease, transform .18s ease;
}
.ssn-shell .ssn-health-panel[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell .ssn-health-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
}
.ssn-shell .ssn-health-panel h2 {
    margin: 0;
    color: var(--ssn-colour-ink, #111827);
    font-size: 18px;
    font-weight: var(--ssn-font-weight-strong, 700);
    letter-spacing: -.02em;
}
.ssn-shell .ssn-health-panel p {
    margin: 2px 0 0;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    line-height: 1.45;
}
.ssn-health-body {
    display: grid;
    gap: 10px;
    overflow: auto;
    padding: 14px;
    flex: 1 1 auto;
    min-height: 0;
}
.ssn-health-intro,
.ssn-health-summary,
.ssn-health-note {
    display: grid;
    gap: 10px;
}
.ssn-health-summary > small,
.ssn-health-intro > small,
.ssn-health-note > small { color: var(--ssn-colour-muted, #6b7280); line-height: 1.45; }
.ssn-health-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.ssn-health-metrics span {
    display: grid;
    gap: 2px;
    padding: 10px;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
    border-radius: var(--ssn-radius-card, 16px);
    background: var(--ssn-colour-surface, rgba(248,250,252,.72));
}
.ssn-health-metrics b { color: var(--ssn-colour-ink, #111827); font-size: 18px; }
.ssn-health-metrics small { color: var(--ssn-colour-muted, #6b7280); font-size: 11px; }
.ssn-health-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-left: 4px solid var(--ssn-colour-line, rgba(15,23,42,.12));
}
.ssn-health-check div { display: grid; gap: 3px; min-width: 0; }
.ssn-health-check small { color: var(--ssn-colour-muted, #6b7280); line-height: 1.35; }
.ssn-health-check em {
    font-style: normal;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    color: var(--ssn-colour-muted, #6b7280);
}
.ssn-health-check.is-ok { border-left-color: var(--ssn-colour-line-strong, rgba(15,23,42,.22)); }
.ssn-health-check.is-warning,
.ssn-health-check.is-notice { border-left-color: var(--ssn-colour-button-primary-bg, #111827); }
.ssn-health-removed summary {
    cursor: pointer;
    font-weight: 750;
    color: var(--ssn-colour-ink, #111827);
}
.ssn-health-row {
    padding: 10px 0 0;
    border-top: 1px solid var(--ssn-colour-line, rgba(15,23,42,.08));
    margin-top: 10px;
}
.ssn-health-row span { display: grid; gap: 2px; }
.ssn-health-row small { color: var(--ssn-colour-muted, #6b7280); }
.ssn-shell.ssn-locked [data-ssn-health-panel] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(14px);
}
@media (max-width: 760px) {
    .ssn-shell .ssn-health-panel {
        right: 14px;
        left: 14px;
        width: auto;
        top: calc(var(--ssn-topbar-height) + 18px);
        height: calc(100vh - var(--ssn-topbar-height) - 156px);
        bottom: auto;
    }
}


/* v1.04.84 Health Check wheel placement recovery */
.ssn-shell .ssn-more-orbit .ssn-more-spoke-health {
    left: 50%;
    top: 88%;
}
.ssn-shell .ssn-more-orbit .ssn-more-spoke-health .ssn-ui-icon {
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-more-orbit .ssn-more-spoke-health:hover .ssn-ui-icon,
.ssn-shell .ssn-more-orbit .ssn-more-spoke-health:focus-visible .ssn-ui-icon {
    color: var(--ssn-colour-text);
}

/* v1.04.88 Health Safe Formatter + Right Rail Alignment Recovery */
.ssn-shell .ssn-health-panel,
.ssn-shell .ssn-notification-panel,
.ssn-shell .ssn-booking-drawer {
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    max-height: var(--ssn-right-pane-host-height);
}
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    align-self: stretch;
}


/* v1.04.89 Health Workspace + Home Rail Alignment */
.ssn-shell [data-ssn-home-grid].ssn-grid {
    position: absolute;
    inset: var(--ssn-app-card-top) var(--ssn-app-card-right) var(--ssn-app-card-bottom) var(--ssn-app-card-left);
    height: auto;
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    gap: var(--ssn-app-card-gap);
    align-items: stretch;
}
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    height: 100%;
    min-height: 0;
    align-self: stretch;
}
.ssn-health-workspace {
    grid-column: 2;
    grid-row: 1;
    display: none;
    min-height: 0;
    overflow: hidden;
    flex-direction: column;
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
}
.ssn-shell.ssn-health-open [data-ssn-home-grid] .ssn-hub {
    display: none;
}
.ssn-shell.ssn-health-open [data-ssn-health-workspace] {
    display: flex;
}
.ssn-health-workspace-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-health-workspace-head > div:nth-child(2) { min-width: 0; flex: 1; }
.ssn-health-workspace-head h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -.03em;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-health-workspace-head p {
    margin: 5px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-health-workspace-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--ssn-radius-card);
    display: grid;
    place-items: center;
    background: var(--ssn-colour-control-bg);
    border: 1px solid var(--ssn-colour-line);
    overflow: hidden;
}
.ssn-health-workspace-icon img,
.ssn-health-workspace-icon .ssn-site-icon { width: 28px; height: 28px; object-fit: contain; }
.ssn-health-workspace .ssn-health-body {
    padding: 18px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    overflow: auto;
    min-height: 0;
}
.ssn-health-centre-card {
    display: grid;
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    background-color: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    color: var(--ssn-colour-text);
}
.ssn-health-summary,
.ssn-health-removed,
.ssn-health-note,
.ssn-health-intro { grid-column: 1 / -1; }
.ssn-health-check { min-height: 86px; }
.ssn-health-workspace .ssn-health-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ssn-health-panel { display: none; }
.ssn-shell.ssn-locked [data-ssn-health-workspace] { display: none; }
@media (max-width: 900px) {
    .ssn-health-workspace .ssn-health-body,
    .ssn-health-workspace .ssn-health-metrics { grid-template-columns: 1fr; }
}


/* v1.04.90 Action Bar Placement Recovery */
.ssn-shell .ssn-actionbar {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: calc(20px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    z-index: 60;
    margin: 0;
    width: min(900px, calc(100vw - 48px));
}
.ssn-shell.ssn-command-open .ssn-actionbar,
.ssn-shell.ssn-locked .ssn-actionbar {
    pointer-events: none;
}
.ssn-shell.ssn-locked .ssn-actionbar {
    opacity: 0;
}
.ssn-shell [data-ssn-home-grid].ssn-grid {
    padding-bottom: var(--ssn-actionbar-safe-space, 92px);
}
@media (max-width: 760px) {
    .ssn-shell .ssn-actionbar {
        width: calc(100vw - 28px);
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        overflow-x: auto;
    }
}


/* v1.04.91 Health Exceptions Only UI */
.ssn-health-workspace .ssn-health-body {
    grid-template-columns: 1fr 1fr;
    align-content: start;
}
.ssn-health-success,
.ssn-health-alert-summary {
    grid-column: 1 / -1;
    min-height: 180px;
    align-content: center;
    justify-items: center;
    text-align: center;
}
.ssn-health-success strong,
.ssn-health-alert-summary strong {
    font-size: 28px;
    letter-spacing: -.03em;
}
.ssn-health-success small,
.ssn-health-alert-summary small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-body);
}
.ssn-health-alert-summary {
    min-height: 120px;
}
.ssn-health-workspace .ssn-health-check.is-ok {
    display: none;
}

/* v1.04.92 System Workspace UX Redesign */
.ssn-health-workspace-head h2 {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 24px;
}
.ssn-health-workspace-head p {
    max-width: 420px;
}
.ssn-health-workspace .ssn-health-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px;
}
.ssn-system-state {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 170px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    background-color: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    text-align: center;
    color: var(--ssn-colour-text);
}
.ssn-system-state strong {
    font-size: clamp(26px, 3.2vw, 38px);
    line-height: 1.05;
    letter-spacing: -.04em;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-system-state small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-body);
}
.ssn-system-issue-list {
    display: grid;
    gap: 0;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    overflow: hidden;
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
}
.ssn-system-issue-row {
    width: 100%;
    appearance: none;
    border: 0;
    border-bottom: 1px solid var(--ssn-colour-line);
    background: transparent;
    color: var(--ssn-colour-text);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    text-align: left;
    cursor: pointer;
}
.ssn-system-issue-row:last-child { border-bottom: 0; }
.ssn-system-issue-row span { display: grid; gap: 4px; min-width: 0; }
.ssn-system-issue-row strong {
    font-size: 16px;
    line-height: 1.2;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-system-issue-row small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}
.ssn-system-issue-row em {
    min-width: 34px;
    height: 34px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    display: grid;
    place-items: center;
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
    color: var(--ssn-colour-text);
    background: var(--ssn-colour-control-bg);
}
.ssn-system-issue-row.is-selected,
.ssn-system-issue-row:hover {
    background: var(--ssn-colour-control-bg);
}
.ssn-system-detail {
    display: grid;
    gap: 10px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    padding: 16px;
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
}
.ssn-system-detail[hidden] { display: none; }
.ssn-system-detail header { display: grid; gap: 4px; }
.ssn-system-detail header strong { font-size: 18px; }
.ssn-system-detail header small { color: var(--ssn-colour-muted); }
.ssn-system-detail-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    border-top: 1px solid var(--ssn-colour-line);
    padding-top: 12px;
}
.ssn-system-detail-row span { display: grid; gap: 3px; min-width: 0; }
.ssn-system-detail-row small { color: var(--ssn-colour-muted); }
.ssn-system-detail-row div { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.ssn-health-centre-card,
.ssn-health-check,
.ssn-health-alert-summary,
.ssn-health-success,
.ssn-health-removed { display: none; }
@media (max-width: 900px) {
    .ssn-system-detail-row { align-items: stretch; flex-direction: column; }
    .ssn-system-detail-row div { justify-content: stretch; }
    .ssn-system-detail-row .ssn-button-secondary { flex: 1; }
}


/* v1.04.93 System Token Enforcement + Docs Guardrail Recovery
   System rows must never use local highlight/accent fills. */
.ssn-shell .ssn-health-workspace .ssn-health-workspace-head {
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-health-workspace .ssn-health-body {
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    background-color: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
}
.ssn-shell .ssn-health-workspace .ssn-system-issue-list {
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    background-color: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    border-color: var(--ssn-colour-line);
    box-shadow: none;
}
.ssn-shell .ssn-health-workspace button.ssn-system-issue-row,
.ssn-shell .ssn-health-workspace .ssn-system-issue-row {
    background: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    background-color: var(--ssn-colour-card-bg, var(--ssn-colour-surface));
    color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-line);
    box-shadow: none;
}
.ssn-shell .ssn-health-workspace button.ssn-system-issue-row:hover,
.ssn-shell .ssn-health-workspace button.ssn-system-issue-row:focus-visible,
.ssn-shell .ssn-health-workspace button.ssn-system-issue-row.is-selected,
.ssn-shell .ssn-health-workspace .ssn-system-issue-row:hover,
.ssn-shell .ssn-health-workspace .ssn-system-issue-row:focus-visible,
.ssn-shell .ssn-health-workspace .ssn-system-issue-row.is-selected {
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-health-workspace .ssn-system-issue-row em {
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-line);
}

/* v1.05.02 Workspace ownership recovery
   Bookings must never inherit the Projects visible state.
   Projects and Bookings are separate shell workspaces even when they share layout tokens. */
.ssn-bookings-grid {
    position: absolute;
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 124px;
    display: grid;
    grid-template-columns: minmax(260px, 322px) minmax(520px, 1fr) minmax(300px, 366px);
    gap: 24px;
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell.ssn-projects-open [data-ssn-bookings-workspace],
.ssn-shell.ssn-projects-open .ssn-bookings-grid {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
}
.ssn-shell.ssn-bookings-open [data-ssn-projects-workspace],
.ssn-shell.ssn-bookings-open .ssn-projects-grid {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
}
.ssn-shell.ssn-bookings-open [data-ssn-bookings-workspace],
.ssn-shell.ssn-bookings-open .ssn-bookings-grid {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* v1.05.03 CSS token hardening and boot asset profiler */
.ssn-system-profiler {
    margin-top: 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-card-bg);
    box-shadow: var(--ssn-shadow-card);
    overflow: hidden;
}
.ssn-system-profiler summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
}
.ssn-system-profiler summary::-webkit-details-marker { display: none; }
.ssn-system-profiler summary span {
    display: grid;
    gap: 3px;
}
.ssn-system-profiler summary strong {
    color: var(--ssn-colour-text);
    font-size: 13px;
    font-weight: 800;
}
.ssn-system-profiler summary small {
    color: var(--ssn-colour-muted);
    font-size: 12px;
}
.ssn-system-profiler summary em {
    min-width: 0;
    border-radius: var(--ssn-radius-pill);
    border: 1px solid var(--ssn-colour-control-border);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    padding: 5px 9px;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    white-space: nowrap;
}
.ssn-system-profiler-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-line);
}
.ssn-system-profiler-grid span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 13px;
    background: var(--ssn-colour-surface);
}
.ssn-system-profiler-grid strong {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
}
.ssn-system-profiler-grid em {
    color: var(--ssn-colour-text);
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
}

/* v1.05.09 Load Waterfall + Update Notice Foundation */
.ssn-system-waterfall .ssn-system-profiler-grid span {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-start;
}
.ssn-system-waterfall .ssn-system-profiler-grid span em {
    font-size: 13px;
}
.ssn-system-profiler-grid span small {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: var(--ssn-font-weight-medium, 600);
    line-height: 1.35;
}
.ssn-system-resource-list {
    display: grid;
    gap: 1px;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-line);
}
.ssn-system-resource-list > strong,
.ssn-system-resource-list > span {
    background: var(--ssn-colour-surface);
    padding: 10px 13px;
}
.ssn-system-resource-list > strong {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ssn-system-resource-list > span {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}
.ssn-system-resource-list em {
    color: var(--ssn-colour-text);
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
}
.ssn-system-resource-list small {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

/* v1.05.11 Debug Report Export + Server Boot Trace */
.ssn-system-debug-export {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-card-bg);
    box-shadow: var(--ssn-shadow-card);
}
.ssn-system-debug-export span {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.ssn-system-debug-export strong {
    color: var(--ssn-colour-text);
    font-size: 13px;
    font-weight: 800;
}
.ssn-system-debug-export small {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.35;
}
.ssn-system-debug-export .ssn-button-secondary {
    white-space: nowrap;
}

/* v1.05.11 Server Forensic Diagnostics: no visual token changes. */


/* v1.05.17 Black Circle Boot Artifact Guard
   All orbital hubs must be hidden from the first paint until Navigator removes the
   boot marker. This covers Settings as well as Home, More and Reports so Safari
   cannot paint a raw circular hub during refresh. The refresh indicator also uses
   neutral tokens instead of the ink token so it never appears as a black pill or
   circle while the shell is loading. */
.ssn-shell.ssn-is-booting .ssn-orbit,
.ssn-shell.ssn-is-refreshing .ssn-orbit,
.ssn-shell.ssn-is-booting .ssn-settings-orbit,
.ssn-shell.ssn-is-refreshing .ssn-settings-orbit,
.ssn-shell.ssn-is-booting .ssn-reports-orbit,
.ssn-shell.ssn-is-refreshing .ssn-reports-orbit {
    opacity: 0;
    visibility: hidden;
}
.ssn-shell.ssn-ready .ssn-orbit,
.ssn-shell.ssn-ready [data-ssn-boot-orbit] {
    opacity: 1;
    visibility: visible;
}
.ssn-shell .ssn-refresh-status span {
    background: var(--ssn-colour-line);
    opacity: .9;
}
.ssn-shell .ssn-refresh-status strong {
    color: var(--ssn-colour-muted);
    background: var(--ssn-colour-card-bg);
}


/* v1.05.24 Pulse Boot Token Lock
   The Pulse control sits in the fixed topbar and can paint before the shell has
   completed token settling in Safari. During boot/refresh it is held in a
   neutral hidden state, then revealed only when the shell is ready. This avoids
   cyan/pink fallback circles without duplicating the Pulse component. */
.ssn-shell.ssn-is-booting .ssn-top-actions,
.ssn-shell.ssn-is-refreshing .ssn-top-actions {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-is-booting .ssn-icon-button[data-ssn-notification-toggle],
.ssn-shell.ssn-is-refreshing .ssn-icon-button[data-ssn-notification-toggle] {
    background: transparent;
    background-color: transparent;
    background-image: none;
    box-shadow: none;
    color: var(--ssn-colour-icon);
}
.ssn-shell.ssn-is-booting [data-ssn-notification-count],
.ssn-shell.ssn-is-refreshing [data-ssn-notification-count] {
    opacity: 0;
    visibility: hidden;
}
.ssn-shell.ssn-ready .ssn-top-actions {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* v1.05.25 Wheel Pseudo Paint Kill
   The remaining Safari boot artefact is the orbital wheel painting as a raw black
   circle before the final token state has settled. The wheel is now removed from
   first paint at the component boundary, including pseudo-elements, and released
   only after the shell has reached the ready state. */
.ssn-shell.ssn-is-booting [data-ssn-boot-orbit],
.ssn-shell.ssn-is-refreshing [data-ssn-boot-orbit],
.ssn-shell.ssn-is-booting .ssn-orbit,
.ssn-shell.ssn-is-refreshing .ssn-orbit {
    display: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    background: transparent;
    background-color: transparent;
    background-image: none;
    box-shadow: none;
}
.ssn-shell.ssn-is-booting [data-ssn-boot-orbit]::before,
.ssn-shell.ssn-is-booting [data-ssn-boot-orbit]::after,
.ssn-shell.ssn-is-refreshing [data-ssn-boot-orbit]::before,
.ssn-shell.ssn-is-refreshing [data-ssn-boot-orbit]::after,
.ssn-shell.ssn-is-booting .ssn-orbit::before,
.ssn-shell.ssn-is-booting .ssn-orbit::after,
.ssn-shell.ssn-is-refreshing .ssn-orbit::before,
.ssn-shell.ssn-is-refreshing .ssn-orbit::after {
    content: none;
    display: none;
    background: transparent;
    background-color: transparent;
    background-image: none;
    border-color: transparent;
    box-shadow: none;
}
.ssn-shell.ssn-ready [data-ssn-boot-orbit],
.ssn-shell.ssn-ready .ssn-orbit {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* v1.05.27 First Paint SVG Hardening
   The black semi-circle is caused by raw inline SVG icons painting before Navigator CSS wins the cascade in Safari.
   SVGs now carry intrinsic dimensions and neutral stroke/fill attributes at markup level; this CSS is only a non-invasive second line of defence. */
.ssn-shell svg[aria-hidden="true"] {
    max-width: 24px;
    max-height: 24px;
    overflow: visible;
}
.ssn-shell .ssn-ui-icon svg[aria-hidden="true"],
.ssn-shell .ssn-date-picker-icon svg[aria-hidden="true"] {
    fill: none;
    stroke: currentColor;
}


/* v1.05.28 App Boot Screen + Styled First Paint
   The Navigator route now gets assets before shortcode rendering and a tiny first-paint boot screen in the head.
   Raw app markup is hidden only while ssn-is-booting, then the normal shell and debug controls are released by ssn-ready. */
.ssn-first-paint-loader {
    position: fixed;
    inset: 0;
    z-index: 2147482500;
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 28px;
    background: radial-gradient(circle at 50% 42%, rgba(255,255,255,.98), rgba(246,248,249,.96) 58%, #eef1f4 100%);
    color: var(--ssn-colour-text);
    text-align: center;
    box-sizing: border-box;
    transition: opacity var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-first-paint-card {
    width: min(430px, 92vw);
    padding: 34px 32px 30px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-surface-strong);
    box-shadow: var(--ssn-shadow-panel);
    box-sizing: border-box;
    backdrop-filter: blur(24px);
}
.ssn-first-paint-logo {
    display: inline-grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin: 0 auto 16px;
    border-radius: 22px;
    background: rgba(17,19,24,.055);
}
.ssn-first-paint-logo img {
    width: 46px;
    height: 46px;
    object-fit: contain;
}
.ssn-first-paint-card h1 {
    margin: 0;
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: .38em;
    text-transform: uppercase;
}
.ssn-first-paint-card small {
    display: inline-block;
    margin: 14px 0 18px;
    padding: 5px 10px;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.055);
    color: var(--ssn-colour-muted);
}
.ssn-first-paint-card strong {
    display: block;
    margin-bottom: 8px;
    font-size: 22px;
    letter-spacing: -.03em;
}
.ssn-first-paint-card p {
    margin: 0 0 22px;
    color: var(--ssn-colour-muted);
}
.ssn-first-paint-bar {
    height: 7px;
    overflow: hidden;
    border-radius: var(--ssn-radius-pill);
    background: rgba(17,19,24,.08);
}
.ssn-first-paint-bar i {
    display: block;
    width: 48%;
    height: 100%;
    border-radius: inherit;
    background: rgba(17,19,24,.68);
}
.ssn-shell.ssn-ready .ssn-first-paint-loader {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}


/* v1.05.30 Overlay visibility and core public range control recovery */
.ssn-shell .ssn-notification-panel[aria-hidden="true"],
.ssn-shell .ssn-qr-rail-panel[aria-hidden="true"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="true"],
.ssn-shell .ssn-feedback-viewer-panel[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell .ssn-notification-panel[aria-hidden="false"],
.ssn-shell .ssn-qr-rail-panel[aria-hidden="false"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="false"],
.ssn-shell .ssn-feedback-viewer-panel[aria-hidden="false"] {
    visibility: visible;
}
.ssn-public-field--rating .ssn-scale-slider,
.ssn-public-field--nps .ssn-scale-slider,
.ssn-scale-slider--range {
    margin-top: 12px;
}
.ssn-scale-slider--range .ssn-scale-slider-row [data-ssn-scale-pill] {
    min-width: 0;
}

/* v1.05.31 right rail and QR token forensic recovery */
.ssn-shell .ssn-project-detail-summary:not(.is-proposal-editor-active) .ssn-proposal-right-editor{display:none;}
.ssn-shell .ssn-project-detail-summary .ssn-proposal-right-editor[hidden]{display:none;}

/* v1.05.40 Project title single-line guard */
.ssn-shell .ssn-project-title-row {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.ssn-shell .ssn-project-title-row h1 {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* v1.05.41 Secure evaluation QR handoff + full project title recovery */
.ssn-shell .ssn-project-detail-header {
    flex-wrap: wrap;
}
.ssn-shell .ssn-project-detail-header > div:first-child {
    flex: 1 1 100%;
    max-width: 100%;
}
.ssn-shell .ssn-project-title-row {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.ssn-shell .ssn-project-title-row h1 {
    display: block;
    width: 100%;
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
    font-size: clamp(24px, 2.2vw, 32px);
}
.ssn-shell .ssn-project-detail-header-actions {
    flex: 1 1 100%;
    min-width: 0;
    align-items: center;
    justify-content: flex-end;
}

/* v1.05.42 Live evaluation QR generator + compact project header recovery */
.ssn-shell .ssn-project-detail-header {
    flex-wrap: nowrap;
    align-items: flex-start;
    padding: 24px 28px 18px;
    min-height: 0;
}
.ssn-shell .ssn-project-detail-header > div:first-child {
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
}
.ssn-shell .ssn-project-detail-header-actions {
    flex: 0 0 auto;
    align-self: flex-start;
    padding-top: 18px;
}
.ssn-shell .ssn-project-title-row {
    max-width: 100%;
    min-width: 0;
}
.ssn-shell .ssn-project-title-row h1 {
    display: block;
    width: auto;
    max-width: min(100%, 620px);
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
    font-size: clamp(24px, 2.15vw, 32px);
    line-height: 1.05;
}
.ssn-shell .ssn-qr-card.is-loading .ssn-qr-placeholder {
    opacity: .56;
}
.ssn-shell .ssn-qr-card.is-loading .ssn-qr-placeholder::after {
    content: 'Generating fresh secure QR…';
    display: block;
    margin-top: 10px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    text-align: center;
}

/* v1.05.43: secure course evaluation QR must be generated live, not rendered from stale project payload. */
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-live .ssn-qr-live-note {
    display: block;
    margin: 2px 0 8px;
    color: var(--ssn-muted, #6b7280);
    font-size: 12px;
    line-height: 1.35;
}
.ssn-shell .ssn-qr-card.is-loading [data-ssn-generate-evaluation-qr] {
    opacity: .72;
    cursor: wait;
}

/* v1.05.46 Evaluation Engine Reset */
.ssn-shell .ssn-qr-url-field {
    display: grid;
    gap: 6px;
    margin: 8px 0 10px;
}
.ssn-shell .ssn-qr-url-field span {
    font-size: 11px;
    font-weight: 700;
    color: var(--ssn-muted, #6b7280);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.ssn-shell .ssn-qr-url-field input {
    width: 100%;
    border: 1px solid var(--ssn-border, #e5e7eb);
    border-radius: 12px;
    padding: 9px 10px;
    font-size: 12px;
    color: var(--ssn-text, #111827);
    background: var(--ssn-surface, #fff);
}
.ssn-shell .ssn-evaluation-debug {
    display: grid;
    gap: 6px;
    margin: 8px 0 10px;
    padding: 10px;
    border: 1px solid var(--ssn-border, #e5e7eb);
    border-radius: 14px;
    background: var(--ssn-soft-surface, #f9fafb);
    font-size: 11px;
}
.ssn-shell .ssn-evaluation-debug > strong {
    font-size: 12px;
}
.ssn-shell .ssn-evaluation-debug div {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
}
.ssn-shell .ssn-evaluation-debug span {
    color: var(--ssn-muted, #6b7280);
}
.ssn-shell .ssn-evaluation-debug code {
    white-space: normal;
    word-break: break-word;
    color: var(--ssn-text, #111827);
    font-family: inherit;
}

/* v1.05.47 QR rail compact actions + evaluation debug visibility */
.ssn-shell .ssn-qr-rail-body {
    display: grid;
    gap: 10px;
    overflow: auto;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-compact {
    display: grid;
    gap: 10px;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-row {
    display: grid;
    grid-template-columns: 136px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-row .ssn-qr-placeholder {
    width: 136px;
    min-height: 136px;
    margin: 0;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-row .ssn-qr-actions {
    display: grid;
    align-content: start;
    gap: 8px;
    width: 100%;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-row .ssn-qr-actions .ssn-button-secondary {
    width: 100%;
    justify-content: center;
}
.ssn-shell .ssn-qr-url-field {
    margin: 2px 0 0;
}
.ssn-shell .ssn-qr-url-field input[data-ssn-evaluation-url] {
    display: block;
    min-height: 38px;
    line-height: 18px;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}
.ssn-shell .ssn-qr-rail-panel .ssn-qr-card-live .ssn-qr-live-note {
    margin: 0;
}
.ssn-shell .ssn-evaluation-debug[hidden] {
    display: none;
}
@media (max-width: 420px) {
    .ssn-shell .ssn-qr-rail-panel .ssn-qr-card-row {
        grid-template-columns: 1fr;
    }
    .ssn-shell .ssn-qr-rail-panel .ssn-qr-card-row .ssn-qr-placeholder {
        width: 100%;
    }
}


/* v1.05.52 protected internal account footer actions */
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer.ssn-project-action-footer-test-reset {
    grid-template-columns: 1fr;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer.ssn-project-action-footer-test-reset button[data-ssn-test-data-reset] {
    width: 100%;
    border-left: 0;
    border-bottom-left-radius: var(--ssn-radius-panel);
    border-bottom-right-radius: var(--ssn-radius-panel);
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[hidden] {
    display: none;
}

/* v1.05.57 Delivery workflow simplification */
.ssn-delivery-result-actions,
.ssn-shell .ssn-delivery-result-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.ssn-delivery-result-actions .ssn-delivery-pill,
.ssn-shell .ssn-delivery-result-actions .ssn-delivery-pill {
    padding-left: 9px;
    padding-right: 9px;
}

/* v1.05.58 Delivery result cycle control */
.ssn-delivery-result-cycle,
.ssn-shell .ssn-delivery-result-cycle {
    min-width: 86px;
    justify-content: center;
    cursor: pointer;
}
.ssn-delivery-result-cycle.is-referred,
.ssn-shell .ssn-delivery-result-cycle.is-referred {
    color: var(--ssn-colour-text, var(--ssn-text));
    background: rgba(255,255,255,.78);
    border-color: rgba(15,23,42,.12);
}
.ssn-delivery-result-cycle:disabled,
.ssn-shell .ssn-delivery-result-cycle:disabled {
    cursor: default;
    opacity: .72;
}

/* v1.05.59 Delivery register scan-state polish */
.ssn-delivery-register-head > span,
.ssn-shell .ssn-delivery-register-head > span {
    text-align: center;
}
.ssn-delivery-register-head > span:first-child,
.ssn-shell .ssn-delivery-register-head > span:first-child {
    text-align: left;
}
.ssn-delivery-status,
.ssn-shell .ssn-delivery-status {
    justify-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    max-width: 100%;
    padding: 0 4px;
    color: var(--ssn-colour-text, var(--ssn-text));
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.ssn-delivery-status.is-pending,
.ssn-shell .ssn-delivery-status.is-pending,
.ssn-delivery-status.is-locked,
.ssn-shell .ssn-delivery-status.is-locked {
    color: var(--ssn-colour-muted, var(--ssn-muted));
}
.ssn-delivery-status-action,
.ssn-shell .ssn-delivery-status-action {
    appearance: none;
    -webkit-appearance: none;
    font-family: inherit;
    cursor: pointer;
}
.ssn-delivery-status-action:hover,
.ssn-delivery-status-action:focus-visible,
.ssn-shell .ssn-delivery-status-action:hover,
.ssn-shell .ssn-delivery-status-action:focus-visible {
    color: var(--ssn-colour-text, var(--ssn-text));
    outline: none;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ssn-delivery-result-cycle.is-pending-choice,
.ssn-shell .ssn-delivery-result-cycle.is-pending-choice {
    background: var(--ssn-colour-text, var(--ssn-text));
    border-color: var(--ssn-colour-text, var(--ssn-text));
    color: var(--ssn-colour-surface, #fff);
    box-shadow: 0 10px 24px rgba(15,23,42,.14);
}
.ssn-delivery-result-cycle.is-complete,
.ssn-shell .ssn-delivery-result-cycle.is-complete {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}
.ssn-delivery-result-cycle.is-referred,
.ssn-shell .ssn-delivery-result-cycle.is-referred {
    background: rgba(15,23,42,.06);
    border-color: rgba(15,23,42,.12);
    box-shadow: none;
}
.ssn-delivery-remove-placeholder,
.ssn-shell .ssn-delivery-remove-placeholder {
    width: 28px;
    height: 28px;
    justify-self: end;
}

/* v1.05.75 Certificate render parity hardening
   The More wheel must keep Settings available in every Navigator context.
   Certificate field placement is resolved through the course-owned template
   before any LearnDash/template fallback, so editor and issued previews use the
   same saved field data. */
.ssn-shell .ssn-more-orbit .ssn-more-spoke-settings {
    display: grid;
}

/* v1.06.04 Participant row meta parity */
.ssn-shell .ssn-delivery-person small,
.ssn-shell .ssn-delivery-status,
.ssn-shell .ssn-delivery-action-pill,
.ssn-shell .ssn-participant-person small,
.ssn-shell .ssn-participant-status-chip {
    font-size: 12px;
}

/* v1.06.11 Online Reports UIX: readable learner rows fed by the shared LearnDash progress service. */
.ssn-online-learner-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}
.ssn-online-learner-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(170px, .85fr);
    align-items: center;
    gap: 14px;
    min-height: 58px;
    padding: 11px 13px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: rgba(255,255,255,.78);
}
.ssn-online-learner-row strong,
.ssn-online-learner-row small,
.ssn-online-learner-progress em,
.ssn-online-learner-progress b {
    display: block;
}
.ssn-online-learner-row strong {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-online-learner-row small {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.35;
}
.ssn-online-learner-progress {
    display: grid;
    justify-items: end;
    gap: 2px;
    text-align: right;
}
.ssn-online-learner-progress em {
    font-style: normal;
    font-size: var(--ssn-font-size-label);
    color: var(--ssn-colour-muted);
}
.ssn-online-learner-progress b {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-online-progress-cell small {
    display: block;
    width: 100%;
    margin-top: 4px;
}
@media (max-width: 760px) {
    .ssn-online-learner-row { grid-template-columns: 1fr; }
    .ssn-online-learner-progress { justify-items: start; text-align: left; }
}

/* v1.06.13 Training Course LearnDash Mapping UIX */
.ssn-course-control-input-stack {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.ssn-course-control-input-stack small {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.3;
}
.ssn-course-control-stacked select {
    min-width: 0;
}

/* v1.06.14 Course Paperwork Pack UI + Download Flow */
.ssn-paperwork-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.ssn-paperwork-hero small,
.ssn-paperwork-pack-strip span:last-child,
.ssn-paperwork-doc-grid small,
.ssn-paperwork-checks strong {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .28em;
    text-transform: uppercase;
}
.ssn-paperwork-hero h2 {
    margin: 8px 0 0;
    font-size: 24px;
    letter-spacing: -.04em;
}
.ssn-paperwork-hero > span {
    min-width: 72px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    padding: 8px 13px;
    background: var(--ssn-surface-soft);
    color: var(--ssn-text);
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}
.ssn-paperwork-pack-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-lg);
    background: var(--ssn-surface-soft);
    padding: 16px 18px;
}
.ssn-paperwork-pack-strip span:first-child {
    font-size: 15px;
    font-weight: 850;
}
.ssn-paperwork-pack-strip span:last-child {
    letter-spacing: .04em;
    text-transform: none;
    font-weight: 700;
}
.ssn-paperwork-doc-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.ssn-paperwork-doc-grid article {
    min-height: 82px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-lg);
    background: var(--ssn-surface);
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.ssn-paperwork-doc-grid strong {
    display: block;
    font-size: 22px;
    letter-spacing: -.04em;
}
.ssn-paperwork-checks {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-lg);
    background: var(--ssn-surface-soft);
    padding: 14px 16px;
}
.ssn-paperwork-checks p {
    margin: 8px 0 0;
    color: var(--ssn-colour-muted);
    font-size: 12px;
}
.ssn-paperwork-actions {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: 10px;
    margin-top: auto;
}
.ssn-paperwork-actions button {
    min-width: 210px;
    text-align: left;
}
.ssn-paperwork-actions button strong,
.ssn-paperwork-actions button small {
    display: block;
}
.ssn-paperwork-actions button small {
    margin-top: 4px;
    font-size: 11px;
    opacity: .72;
}
@media (max-width: 900px) {
    .ssn-paperwork-doc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ssn-paperwork-actions { flex-direction: column; }
    .ssn-paperwork-actions button { width: 100%; }
}

/* v1.06.16 Paperwork Tokens + Evidence Counts */
.ssn-shell .ssn-paperwork-actions .ssn-button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 48px;
    border: 1px solid var(--ssn-colour-button-primary-bg);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
}
.ssn-shell .ssn-paperwork-actions .ssn-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 48px;
    border: 1px solid var(--ssn-colour-button-secondary-border);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    color: var(--ssn-colour-button-secondary-text);
    box-shadow: none;
}
.ssn-shell .ssn-paperwork-actions .ssn-button-primary:hover,
.ssn-shell .ssn-paperwork-actions .ssn-button-primary:focus-visible:hover:focus-visible {
    filter: brightness(.96);
    outline: none;
}
.ssn-shell .ssn-paperwork-actions .ssn-button-secondary:hover,
.ssn-shell .ssn-paperwork-actions .ssn-button-secondary:focus-visible:hover:focus-visible {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}


/* v1.06.19 Context Aware Paperwork Pack */
.ssn-shell .ssn-paperwork-doc-grid article[hidden] {
    display: none;
}
.ssn-shell .ssn-paperwork-doc-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

/* v1.06.20 Paperwork PDF Generation Lock */

/* v1.06.33 Delivery hold workspace */
.ssn-delivery-hold-workspace{display:grid;gap:16px;min-height:100%;}
.ssn-delivery-hold-form,.ssn-delivery-date-form{display:grid;gap:14px;border:1px solid var(--ssn-colour-line);background:var(--ssn-colour-card-bg);border-radius:18px;padding:16px;}
.ssn-delivery-hold-form label,.ssn-delivery-date-form label{display:grid;gap:8px;color:var(--ssn-colour-text);font-weight:700;}
.ssn-delivery-hold-form label span,.ssn-delivery-date-form label span{font-size:12px;color:var(--ssn-colour-muted);text-transform:uppercase;letter-spacing:.04em;}
.ssn-delivery-hold-form select,.ssn-delivery-hold-form textarea,.ssn-delivery-date-form input{width:100%;border:1px solid var(--ssn-colour-line);border-radius:14px;background:var(--ssn-colour-surface-strong);color:var(--ssn-colour-text);padding:11px 12px;font:inherit;}

/* v1.06.34 Delivery hold right-card action + state badge */
.ssn-shell .ssn-project-state-badge{display:inline-flex;align-items:center;border:1px solid var(--ssn-colour-line);background:var(--ssn-colour-surface-strong);color:var(--ssn-colour-text);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;}
.ssn-shell .ssn-project-state-badge[hidden]{display:none;}
.ssn-shell .ssn-project-action-footer{grid-template-columns:repeat(3,minmax(0,1fr));}
.ssn-shell .ssn-project-action-footer [data-ssn-pause-project]{background:var(--ssn-colour-card-bg);color:var(--ssn-colour-text);border:1px solid var(--ssn-colour-line);}
.ssn-shell .ssn-project-action-footer [data-ssn-pause-project]:hover{background:var(--ssn-colour-surface-strong);}

/* v1.06.35 On Hold search badge + inline right rail footer lock */
.ssn-shell .ssn-command-result-copy strong{display:flex;align-items:center;gap:8px;min-width:0;}
.ssn-shell .ssn-command-state-badge{display:inline-flex;align-items:center;border:1px solid var(--ssn-colour-line);background:var(--ssn-colour-surface-strong);color:var(--ssn-colour-text);border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;line-height:1;}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer{grid-template-columns:repeat(3,minmax(0,1fr));}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[hidden]{display:none;}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project]{background:var(--ssn-colour-card-bg);background-color:var(--ssn-colour-card-bg);color:var(--ssn-colour-text);border-left:0;}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project]:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project]:focus-visible{background:var(--ssn-colour-control-bg-hover);background-color:var(--ssn-colour-control-bg-hover);color:var(--ssn-colour-text);}


/* v1.06.36 Pause project + proposal preview position lock */
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button{min-width:0;width:100%;}
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="build-proposal"]{position:relative;min-height:0;height:calc(100% - 0px);}
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="build-proposal"].is-active{display:flex;align-items:stretch;}
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="build-proposal"] .ssn-proposal-document-stage{padding-top:28px;align-items:flex-start;scroll-padding-top:28px;}
.ssn-shell .ssn-project-detail-panel[data-ssn-detail-panel="build-proposal"] .ssn-proposal-document-preview{margin-top:0;}


/* v1.06.37 Proposal skip and participant remove parity */
.ssn-proposal-skip-box {
    display: grid;
    gap: var(--ssn-space-2, 8px);
    padding: var(--ssn-space-3, 12px) 0;
    border-top: 1px solid var(--ssn-border, rgba(15, 23, 42, 0.10));
    border-bottom: 1px solid var(--ssn-border, rgba(15, 23, 42, 0.10));
}
.ssn-proposal-skip-box label {
    display: flex;
    align-items: flex-start;
    gap: var(--ssn-space-2, 8px);
    margin: 0;
    font-size: 12px;
}
.ssn-proposal-skip-box input { margin-top: 3px; }
.ssn-proposal-skip-box strong { display: block; font-size: 12px; }
.ssn-proposal-skip-box small { display: block; color: var(--ssn-muted, #64748b); line-height: 1.35; }
.ssn-project-action-footer { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* v1.06.38 proposal action row and generic pause polish */
.ssn-proposal-action-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;}
.ssn-proposal-action-row button{width:100%;min-height:38px;}
.ssn-proposal-skip-box{margin-top:10px;}
.ssn-delivery-hold-form .ssn-button-primary{background:var(--ssn-colour-button-primary-bg);border-color:var(--ssn-colour-button-primary-bg);color:var(--ssn-colour-button-primary-text);}


/* v1.06.39 proposal action source lock */
.ssn-proposal-skip-box{display:none;}
.ssn-shell .ssn-proposal-action-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0;}
.ssn-shell .ssn-proposal-action-row button{min-width:0;width:100%;min-height:38px;}

/* v1.06.40 Participant evidence delete + commercial estimate edit */
.ssn-shell .ssn-proposal-action-row{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0;
    margin:12px 0 0;
    border:1px solid var(--ssn-colour-line);
    border-radius:0;
    overflow:hidden;
    background:var(--ssn-colour-card-bg);
}
.ssn-shell .ssn-proposal-action-row button{
    min-width:0;
    width:100%;
    min-height:42px;
    border:0;
    border-right:1px solid var(--ssn-colour-line);
    border-radius:0;
    background:var(--ssn-colour-card-bg);
    color:var(--ssn-colour-text);
    font:inherit;
    font-weight:800;
    box-shadow:none;
}
.ssn-shell .ssn-proposal-action-row button:last-child{border-right:0;}
.ssn-shell .ssn-proposal-action-row button:hover,
.ssn-shell .ssn-proposal-action-row button:focus-visible{background:var(--ssn-colour-control-bg-hover);color:var(--ssn-colour-text);}
.ssn-shell .ssn-proposal-action-row button:disabled{opacity:.45;cursor:not-allowed;}
.ssn-shell [data-ssn-estimate-edit]{justify-content:flex-end;text-align:right;font-weight:900;}


/* v1.06.41 project actions and navigation lock */
.ssn-shell .ssn-summary-inline-button[data-ssn-paid-view]{justify-content:flex-end;text-align:right;font-weight:900;}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project].is-active{
    background:var(--ssn-colour-attention-soft);
    background-color:var(--ssn-colour-attention-soft);
    color:var(--ssn-colour-text);
    border-color:var(--ssn-colour-attention-border);
    box-shadow:inset 0 3px 0 var(--ssn-colour-attention);
    font-weight:900;
}
.ssn-payment-record-actions{display:flex;gap:6px;margin-top:8px;}
.ssn-payment-record-actions button{border:1px solid var(--ssn-colour-line);background:var(--ssn-colour-card-bg);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;color:var(--ssn-colour-text);}
.ssn-payment-record-actions button:hover,.ssn-payment-record-actions button:focus-visible{background:var(--ssn-colour-control-bg-hover);}

/* v1.06.42 Navigation & Commercial Source Lock */
.ssn-shell .ssn-activity-timeline-panel{
    position:fixed;
    top:calc(var(--ssn-topbar-height) + 28px);
    right:32px;
    bottom:124px;
    width:min(366px, calc(100vw - 64px));
    z-index:83;
    display:flex;
    flex-direction:column;
    border:1px solid var(--ssn-colour-line);
    border-radius:var(--ssn-radius-panel);
    background:var(--ssn-colour-card-bg);
    background-color:var(--ssn-colour-card-bg);
    box-shadow:var(--ssn-shadow-panel);
    opacity:0;
    pointer-events:none;
    transform:translateX(10px) scale(.985);
    transition:opacity .18s ease, transform .18s ease;
    overflow:hidden;
}
.ssn-shell .ssn-activity-timeline-panel[aria-hidden="false"]{opacity:1;pointer-events:auto;transform:translateX(0) scale(1);}
.ssn-shell .ssn-activity-timeline-panel > header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 18px 14px;border-bottom:1px solid var(--ssn-colour-line);}
.ssn-shell .ssn-activity-timeline-panel h2{margin:0;font-size:18px;font-weight:var(--ssn-font-weight-strong);color:var(--ssn-colour-text);}
.ssn-shell .ssn-activity-timeline-panel p{margin:2px 0 0;color:var(--ssn-colour-muted);font-size:12px;line-height:1.45;}
.ssn-shell .ssn-activity-tools{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px;border-bottom:1px solid var(--ssn-colour-line);}
.ssn-shell .ssn-activity-tools input,.ssn-shell .ssn-activity-tools select{min-width:0;border:1px solid var(--ssn-colour-control-border);border-radius:14px;background:var(--ssn-colour-control-bg);color:var(--ssn-colour-text);padding:10px 11px;font:inherit;font-size:12px;}
.ssn-shell .ssn-activity-feed{flex:1;overflow:auto;padding:14px;display:grid;gap:10px;align-content:start;}
.ssn-payment-record-note small{display:block;margin-top:8px;color:var(--ssn-colour-muted);font-size:11px;}

/* v1.06.43 Unified Rail Geometry + Attention Token Lock
   Shared temporary rails replace the right project card exactly. */
.ssn-shell .ssn-activity-timeline-panel,
.ssn-shell .ssn-qr-rail-panel,
.ssn-shell .ssn-quick-link-panel,
.ssn-shell .ssn-proposal-right-editor {
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    bottom: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    transform: translateX(24px);
    transition: opacity .2s ease, transform .2s ease;
}
.ssn-shell .ssn-activity-timeline-panel[aria-hidden="false"],
.ssn-shell .ssn-qr-rail-panel[aria-hidden="false"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="false"],
.ssn-shell .ssn-proposal-right-editor[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}
.ssn-shell .ssn-activity-timeline-panel[aria-hidden="true"],
.ssn-shell .ssn-qr-rail-panel[aria-hidden="true"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="true"],
.ssn-shell .ssn-proposal-right-editor[aria-hidden="true"] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(24px);
}
.ssn-shell .ssn-command-state-badge {
    border-color: var(--ssn-colour-attention-border);
    background: var(--ssn-colour-attention-soft);
    background-color: var(--ssn-colour-attention-soft);
    color: var(--ssn-colour-text);
    box-shadow: inset 0 2px 0 var(--ssn-colour-attention);
}
@media (max-width: 760px) {
    .ssn-shell .ssn-activity-timeline-panel,
    .ssn-shell .ssn-qr-rail-panel,
    .ssn-shell .ssn-quick-link-panel,
.ssn-shell .ssn-proposal-right-editor {
        top: 96px;
        right: 14px;
        left: 14px;
        width: auto;
        height: calc(100vh - 118px);
        max-width: none;
        max-height: none;
    }
}

/* v1.06.44 Right Rail Overlay Geometry Lock
   Temporary rails read live right-card geometry set by JS. No viewport guesswork. */
.ssn-shell .ssn-activity-timeline-panel,
.ssn-shell .ssn-qr-rail-panel,
.ssn-shell .ssn-quick-link-panel,
.ssn-shell .ssn-proposal-right-editor {
    position: fixed;
    box-sizing: border-box;
    top: var(--ssn-right-pane-host-top);
    right: var(--ssn-right-pane-host-right);
    bottom: auto;
    left: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    min-width: 0;
    min-height: 0;
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    margin: 0;
    border-radius: var(--ssn-radius-panel);
    transform-origin: center right;
}
.ssn-shell .ssn-activity-timeline-panel[aria-hidden="false"],
.ssn-shell .ssn-qr-rail-panel[aria-hidden="false"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="false"],
.ssn-shell .ssn-proposal-right-editor[aria-hidden="false"] {
    transform: translateX(0) scale(1);
}
.ssn-shell .ssn-activity-timeline-panel[aria-hidden="true"],
.ssn-shell .ssn-qr-rail-panel[aria-hidden="true"],
.ssn-shell .ssn-quick-link-panel[aria-hidden="true"],
.ssn-shell .ssn-proposal-right-editor[aria-hidden="true"] {
    transform: translateX(18px) scale(.992);
}


/* v1.06.45 Single Right Rail Shell Lock
   Activity, QR and quick-link tools now share one measured shell. Geometry is
   inline-applied by the right rail controller so legacy feature CSS cannot drift. */
.ssn-shell .ssn-right-rail-shell,
.ssn-shell .ssn-activity-timeline-panel.ssn-right-rail-shell,
.ssn-shell .ssn-qr-rail-panel.ssn-right-rail-shell,
.ssn-shell .ssn-quick-link-panel.ssn-right-rail-shell,
.ssn-shell .ssn-proposal-right-editor.ssn-right-rail-shell {
    position: fixed;
    box-sizing: border-box;
    right: auto;
    bottom: auto;
    margin: 0;
    min-width: 0;
    min-height: 0;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
    z-index: 84;
    transform-origin: center right;
    transition: opacity .2s ease, transform .2s ease;
}
.ssn-shell .ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell .ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(18px) scale(.992);
}
@media (max-width: 760px) {
    .ssn-shell .ssn-right-rail-shell,
    .ssn-shell .ssn-activity-timeline-panel.ssn-right-rail-shell,
    .ssn-shell .ssn-qr-rail-panel.ssn-right-rail-shell,
    .ssn-shell .ssn-quick-link-panel.ssn-right-rail-shell,
.ssn-shell .ssn-proposal-right-editor.ssn-right-rail-shell {
        left: 14px;
        right: 14px;
        top: 96px;
        width: auto;
        max-width: none;
        height: calc(100vh - 118px);
        max-height: none;
    }
}


/* v1.06.46 True Single Right Rail Shell Lock
   Activity, QR and link tools use the same right-card replacement shell.
   Geometry is owned by .ssn-right-rail-shell only. Feature classes may style
   inner content, but must not position the shell. */
html body .ssn-shell .ssn-right-rail-shell {
    position: fixed;
    box-sizing: border-box;
    top: var(--ssn-right-pane-host-top);
    left: var(--ssn-right-pane-host-left);
    right: auto;
    bottom: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    min-width: 0;
    min-height: 0;
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-card-bg);
    background-color: var(--ssn-colour-card-bg);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
    z-index: 84;
    opacity: 0;
    pointer-events: none;
    transform: translateX(18px) scale(.992);
    transform-origin: center right;
    transition: opacity .2s ease, transform .2s ease;
}
html body .ssn-shell .ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
html body .ssn-shell .ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(18px) scale(.992);
}
html body .ssn-shell .ssn-right-rail-shell > header {
    flex: 0 0 auto;
}
html body .ssn-shell .ssn-right-rail-shell .ssn-activity-feed,
html body .ssn-shell .ssn-right-rail-shell .ssn-qr-rail-body,
html body .ssn-shell .ssn-right-rail-shell .ssn-quick-link-form {
    min-height: 0;
}
@media (max-width: 760px) {
    html body .ssn-shell .ssn-right-rail-shell {
        top: 96px;
        left: 14px;
        right: 14px;
        width: auto;
        max-width: none;
        height: calc(100vh - 118px);
        max-height: none;
    }
}

/* v1.06.48 Rail Close + Paused Footer Label Lock
   Activity is hoisted to the root Navigator shell so it uses the same viewport
   geometry path as QR, payments and project links. This final shell rule is the
   only allowed position layer for temporary right-pane tools. */
html body .ssn-shell > .ssn-right-rail-shell,
html body .ssn-shell > .ssn-activity-timeline-panel.ssn-right-rail-shell,
html body .ssn-shell > .ssn-qr-rail-panel.ssn-right-rail-shell,
html body .ssn-shell > .ssn-quick-link-panel.ssn-right-rail-shell,
html body .ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell {
    position: fixed;
    top: var(--ssn-right-pane-host-top);
    left: var(--ssn-right-pane-host-left);
    right: auto;
    bottom: auto;
    width: var(--ssn-right-pane-host-width);
    height: var(--ssn-right-pane-host-height);
    min-width: 0;
    min-height: 0;
    max-width: var(--ssn-right-pane-host-width);
    max-height: var(--ssn-right-pane-host-height);
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 84;
}
html body .ssn-shell > .ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
html body .ssn-shell > .ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(18px) scale(.992);
}


/* v1.06.48 Rail close + paused footer label lock */
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project].is-active,
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project].is-active:hover,
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project].is-active:focus-visible{
    background:var(--ssn-colour-attention-soft);
    background-color:var(--ssn-colour-attention-soft);
    color:var(--ssn-colour-text);
    box-shadow:inset 0 3px 0 var(--ssn-colour-attention);
    font-weight:900;
}

/* v1.06.51 Key person safe email and proposal action lock */
.ssn-key-contact-result {
    appearance: none;
    width: 100%;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-control, 14px);
    background: var(--ssn-colour-card, #fff);
    color: var(--ssn-colour-text, #111827);
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
}
.ssn-key-contact-result:hover,
.ssn-key-contact-result:focus-visible {
    background: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
    outline: none;
}
.ssn-key-contact-result strong,
.ssn-key-contact-result small {
    display: block;
}
.ssn-key-contact-result small {
    margin-top: 2px;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-key-contact-email-update,
.ssn-key-contact-create-card {
    display: grid;
    gap: 10px;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-card, 16px);
    background: var(--ssn-colour-card, #fff);
    padding: 12px;
}
.ssn-key-contact-email-update label,
.ssn-key-contact-create-card label {
    display: grid;
    gap: 5px;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ssn-colour-muted, #6b7280);
}
.ssn-key-contact-email-update input,
.ssn-key-contact-create-card input {
    width: 100%;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-control, 14px);
    background: var(--ssn-colour-card, #fff);
    color: var(--ssn-colour-text, #111827);
    padding: 10px 11px;
    font: inherit;
    letter-spacing: normal;
    text-transform: none;
}
.ssn-key-contact-create-card > strong,
.ssn-key-contact-create-card > small {
    display: block;
}
.ssn-key-contact-create-card > small {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
}
.ssn-proposal-right-editor footer {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    padding-top: 0;
}
.ssn-proposal-right-editor footer button {
    min-height: 48px;
    border-radius: 0;
    border: 0;
    border-right: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    background: transparent;
    color: var(--ssn-colour-text, #111827);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
}
.ssn-proposal-right-editor footer button:last-child { border-right: 0; }
.ssn-proposal-right-editor footer button:hover,
.ssn-proposal-right-editor footer button:focus-visible {
    background: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
    outline: none;
}
.ssn-proposal-right-editor footer button[data-ssn-proposal-confirm]:not(:disabled) {
    border-color: var(--ssn-colour-line, rgba(15,23,42,.10));
    background: transparent;
    color: var(--ssn-colour-text, #111827);
}
.ssn-proposal-right-editor footer button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

/* v1.06.52 Key Person Create + Refresh Wiring Lock
   Key person search results are neutral Navigator rows. They must not inherit
   browser/theme selected cyan or secondary accent styling. */
.ssn-shell .ssn-key-contact-change .ssn-participant-search-results {
    overflow: visible;
}
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result,
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result:hover,
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result:focus,
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result:focus-visible,
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result:active {
    display: block;
    width: 100%;
    border: 1px solid var(--ssn-colour-line, rgba(15,23,42,.10));
    border-radius: var(--ssn-radius-control, 14px);
    background: var(--ssn-colour-card, #fff);
    background-color: var(--ssn-colour-card, #fff);
    background-image: none;
    color: var(--ssn-colour-text, #111827);
    box-shadow: none;
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
    outline: none;
    user-select: none;
}
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result:hover,
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result:focus-visible {
    background: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
    background-color: var(--ssn-colour-control-bg-hover, rgba(15,23,42,.04));
}
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result strong,
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-shell .ssn-key-contact-change .ssn-key-contact-result small {
    margin-top: 3px;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    font-weight: 600;
}
.ssn-shell .ssn-key-contact-empty {
    margin-bottom: 0;
}
.ssn-shell .ssn-key-contact-create-card {
    margin-top: 4px;
}
.ssn-shell .ssn-key-contact-change .ssn-button-secondary {
    width: 100%;
    min-height: 40px;
}


/* v1.06.58 True Shared Right Pane Host Lock
   One visible temporary rail surface. Feature code supplies content only. */
.ssn-shell {
    --ssn-shared-pane-bg: var(--ssn-colour-surface-strong, #fff);
}
.ssn-shell > .ssn-right-rail-shell,
.ssn-shell > .ssn-notification-panel.ssn-right-rail-shell,
.ssn-shell > .ssn-activity-timeline-panel.ssn-right-rail-shell,
.ssn-shell > .ssn-qr-rail-panel.ssn-right-rail-shell,
.ssn-shell > .ssn-quick-link-panel.ssn-right-rail-shell,
.ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell {
    position: fixed;
    top: var(--ssn-right-pane-host-top, calc(var(--ssn-topbar-height) + 28px));
    left: var(--ssn-right-pane-host-left, auto);
    right: var(--ssn-right-pane-host-right, var(--ssn-page-padding-x, 32px));
    bottom: auto;
    width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    max-width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    max-height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-shared-pane-bg);
    background-color: var(--ssn-shared-pane-bg);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
    z-index: 84;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(14px) scale(.995);
    transform-origin: center right;
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
}
.ssn-shell > .ssn-right-rail-shell[aria-hidden="false"],
.ssn-shell > .ssn-notification-panel.ssn-right-rail-shell[aria-hidden="false"],
.ssn-shell > .ssn-activity-timeline-panel.ssn-right-rail-shell[aria-hidden="false"],
.ssn-shell > .ssn-qr-rail-panel.ssn-right-rail-shell[aria-hidden="false"],
.ssn-shell > .ssn-quick-link-panel.ssn-right-rail-shell[aria-hidden="false"],
.ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell > .ssn-right-rail-shell[aria-hidden="true"],
.ssn-shell > .ssn-notification-panel.ssn-right-rail-shell[aria-hidden="true"],
.ssn-shell > .ssn-activity-timeline-panel.ssn-right-rail-shell[aria-hidden="true"],
.ssn-shell > .ssn-qr-rail-panel.ssn-right-rail-shell[aria-hidden="true"],
.ssn-shell > .ssn-quick-link-panel.ssn-right-rail-shell[aria-hidden="true"],
.ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell[aria-hidden="true"],
.ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell[hidden] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(14px) scale(.995);
}
.ssn-shell .ssn-right-rail-shell > header,
.ssn-shell .ssn-right-rail-shell .ssn-shared-pane-header,
.ssn-shell .ssn-proposal-right-editor .ssn-proposal-editor-head {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 52px 14px 18px;
    border-bottom: 1px solid var(--ssn-colour-line);
    background: var(--ssn-shared-pane-bg);
}
.ssn-shell .ssn-right-rail-shell > header > div,
.ssn-shell .ssn-right-rail-shell .ssn-shared-pane-header > div,
.ssn-shell .ssn-proposal-right-editor .ssn-proposal-editor-head > div {
    min-width: 0;
}
.ssn-shell .ssn-right-rail-shell > header h2,
.ssn-shell .ssn-right-rail-shell .ssn-shared-pane-header h2,
.ssn-shell .ssn-proposal-right-editor .ssn-proposal-editor-head h2,
.ssn-shell .ssn-project-detail-summary .ssn-rail-section h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ssn-shell .ssn-right-rail-shell > header p,
.ssn-shell .ssn-right-rail-shell .ssn-shared-pane-header p,
.ssn-shell .ssn-proposal-right-editor .ssn-proposal-editor-head p {
    margin: 4px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}
.ssn-shell .ssn-right-rail-shell .ssn-close-control,
.ssn-shell .ssn-proposal-right-editor .ssn-close-control {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
}
.ssn-shell .ssn-notification-feed,
.ssn-shell .ssn-activity-feed,
.ssn-shell .ssn-qr-rail-body,
.ssn-shell .ssn-quick-link-form {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
}
.ssn-shell .ssn-pulse-tabs[hidden] {
    display: none;
}
.ssn-shell .ssn-pulse-tabs {
    flex: 0 0 auto;
    margin: 12px 0 0;
}
.ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell {
    padding: 0;
    gap: 0;
    background: var(--ssn-shared-pane-bg);
    background-color: var(--ssn-shared-pane-bg);
}
.ssn-shell .ssn-proposal-right-editor > label,
.ssn-shell .ssn-proposal-right-editor > .ssn-proposal-save-status {
    display: block;
    margin-left: 18px;
    margin-right: 18px;
}
.ssn-shell .ssn-proposal-right-editor > label:first-of-type {
    margin-top: 14px;
}
.ssn-shell .ssn-proposal-right-editor label span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-shell .ssn-proposal-right-editor label em {
    font-style: normal;
    letter-spacing: .16em;
}
.ssn-shell .ssn-proposal-right-editor input,
.ssn-shell .ssn-proposal-right-editor textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-control);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-text);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    padding: 10px 12px;
    outline: none;
}
.ssn-shell .ssn-proposal-right-editor textarea {
    min-height: 72px;
    max-height: 120px;
    resize: vertical;
}
.ssn-shell .ssn-proposal-right-editor input:focus,
.ssn-shell .ssn-proposal-right-editor textarea:focus {
    border-color: var(--ssn-colour-text-soft);
    background: var(--ssn-colour-surface-strong);
}
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-action-row,
.ssn-shell .ssn-project-detail-summary > .ssn-project-action-footer {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: auto 0 0;
    padding: 0;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-shared-pane-bg);
}
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-project-action-row {
    display: none;
}
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-action-row button,
.ssn-shell .ssn-project-detail-summary > .ssn-project-action-footer button {
    min-width: 0;
    width: 100%;
    min-height: 54px;
    border: 0;
    border-left: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: var(--ssn-shared-pane-bg);
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: 0;
    text-transform: none;
    box-shadow: none;
}
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-action-row button:first-child,
.ssn-shell .ssn-project-detail-summary > .ssn-project-action-footer button:first-child {
    border-left: 0;
}
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-action-row button:hover,
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-action-row button:focus-visible,
.ssn-shell .ssn-project-detail-summary > .ssn-project-action-footer button:hover,
.ssn-shell .ssn-project-detail-summary > .ssn-project-action-footer button:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-proposal-right-editor footer.ssn-proposal-action-row button:disabled {
    opacity: .42;
    cursor: not-allowed;
}
@media (max-width: 760px) {
    .ssn-shell > .ssn-right-rail-shell,
    .ssn-shell > .ssn-notification-panel.ssn-right-rail-shell,
    .ssn-shell > .ssn-activity-timeline-panel.ssn-right-rail-shell,
    .ssn-shell > .ssn-qr-rail-panel.ssn-right-rail-shell,
    .ssn-shell > .ssn-quick-link-panel.ssn-right-rail-shell,
    .ssn-shell > .ssn-proposal-right-editor.ssn-right-rail-shell {
        top: 96px;
        left: 14px;
        right: 14px;
        width: auto;
        max-width: none;
        height: calc(100vh - 118px);
        max-height: none;
    }
}


/* v1.06.63 Navigation Pane Close Lock
   Shared/key person panes close on Navigator surface changes.
*/

/* v1.06.62 Project ID Toast + Key Person Primary Token Lock
   Key person creation must consume the core primary button token. No feature, theme or accent colour owns this action. */
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary,
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary:hover,
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary:focus,
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary:focus-visible,
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary:active {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    border-radius: var(--ssn-radius-control, 14px);
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    background-image: none;
    color: var(--ssn-colour-button-primary-text);
    box-shadow: none;
    font: inherit;
    font-weight: var(--ssn-font-weight-strong, 700);
    cursor: pointer;
}
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary:hover,
.ssn-shell .ssn-key-contact-create-card button.ssn-button-primary:focus-visible {
    border-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    background: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    background-color: var(--ssn-colour-button-primary-bg-hover, var(--ssn-colour-button-primary-bg));
    color: var(--ssn-colour-button-primary-text);
}
.ssn-shell [data-ssn-copy-project-id] {
    cursor: pointer;
}
.ssn-shell [data-ssn-copy-project-id]:hover,
.ssn-shell [data-ssn-copy-project-id]:focus-visible {
    color: var(--ssn-colour-text);
    text-decoration: underline;
    text-underline-offset: 3px;
}


/* v1.06.65 Online Evidence Source Lock */
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-right-rail-shell],
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-online-completion-panel] {
  position: fixed;
  top: var(--ssn-right-pane-host-top, 0);
  left: var(--ssn-right-pane-host-left, auto);
  right: auto;
  bottom: auto;
  width: var(--ssn-right-pane-host-width, 360px);
  max-width: var(--ssn-right-pane-host-width, 360px);
  height: var(--ssn-right-pane-host-height, 520px);
  max-height: var(--ssn-right-pane-host-height, 520px);
  overflow: auto;
  padding: 18px;
  border: 1px solid var(--ssn-colour-line);
  border-radius: var(--ssn-radius-panel, 28px);
  background: var(--ssn-shared-pane-bg, #fff);
  background-color: var(--ssn-shared-pane-bg, #fff);
  color: var(--ssn-colour-text);
  box-shadow: var(--ssn-shadow-rail);
  z-index: 140;
}
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-right-rail-shell] header,
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-online-completion-panel] header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-right-rail-shell] h2,
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-online-completion-panel] h2 {
  margin: 0;
  font-size: var(--ssn-rail-heading-size, 11px);
  line-height: 1.2;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--ssn-colour-text);
}
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-right-rail-shell] p,
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-online-completion-panel] p {
  margin: 5px 0 0;
  color: var(--ssn-colour-muted);
  font-size: var(--ssn-font-size-sm);
}
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-right-rail-shell][aria-hidden="true"],
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-online-completion-panel][aria-hidden="true"] { display: none; }
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-right-rail-shell][aria-hidden="false"],
.ssn-shell .ssn-feedback-viewer-panel[data-ssn-online-completion-panel][aria-hidden="false"] { display: block; }

.ssn-shell .ssn-online-assessment-list {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-online-assessment-list h3 {
  margin: 0 0 10px;
  font-size: var(--ssn-rail-heading-size, 11px);
  line-height: 1.2;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-online-assessment-card {
  padding: 12px 0;
  border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-online-assessment-card:first-of-type {
  border-top: 0;
}
.ssn-shell .ssn-online-assessment-card > strong {
  display: block;
  margin-bottom: 8px;
  color: var(--ssn-colour-text);
  font-size: var(--ssn-font-size-sm);
}

/* v1.07.07 Search Contact Shared Pane Lock */
.ssn-shell .ssn-contact-card-panel .ssn-contact-card-form {
    display: grid;
    gap: 14px;
    padding: 18px;
}
.ssn-shell .ssn-contact-card-panel label {
    display: grid;
    gap: 7px;
    margin: 0;
}
.ssn-shell .ssn-contact-card-panel label span,
.ssn-shell .ssn-contact-card-meta small {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-shell .ssn-contact-card-panel input {
    width: 100%;
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 14px;
    padding: 12px 14px;
    background: var(--ssn-colour-card-bg, #fff);
    color: var(--ssn-colour-text, #111827);
    font: inherit;
}
.ssn-shell .ssn-contact-card-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.ssn-shell .ssn-contact-card-meta div {
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 14px;
    padding: 12px;
    background: var(--ssn-colour-soft-bg, #f8fafc);
}
.ssn-shell .ssn-contact-card-note {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    line-height: 1.45;
    margin: 0;
}


/* v1.07.09 Contact card shared right pane lock */
.ssn-shell > .ssn-contact-card-panel.ssn-right-rail-shell {
    position: fixed;
    top: var(--ssn-right-pane-host-top, calc(var(--ssn-topbar-height, 76px) + 28px));
    left: var(--ssn-right-pane-host-left, auto);
    right: var(--ssn-right-pane-host-right, var(--ssn-page-padding-x, 32px));
    bottom: auto;
    width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    max-width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    max-height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    background: var(--ssn-shared-pane-bg, #fff);
    background-color: var(--ssn-shared-pane-bg, #fff);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
    z-index: 84;
}
.ssn-shell > .ssn-contact-card-panel.ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell > .ssn-contact-card-panel.ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(14px) scale(.995);
}
.ssn-shell .ssn-contact-card-panel .ssn-button-primary {
    background: var(--ssn-button-primary-bg, var(--ssn-colour-text, #111827));
    color: var(--ssn-button-primary-text, #fff);
    border-color: var(--ssn-button-primary-border, transparent);
}

/* v1.07.12 Shared Certificate Pane + Renewal Participant History */
.ssn-shell > .ssn-certificate-preview-panel.ssn-right-rail-shell {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 0;
    background: var(--ssn-shared-pane-bg, #fff);
    background-color: var(--ssn-shared-pane-bg, #fff);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    overflow: hidden;
    z-index: 86;
}
.ssn-shell > .ssn-certificate-preview-panel.ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(14px) scale(.995);
}
.ssn-shell > .ssn-certificate-preview-panel.ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
.ssn-shell > .ssn-certificate-preview-panel header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell > .ssn-certificate-preview-panel h2 {
    margin: 0;
    font-size: var(--ssn-rail-heading-size, 11px);
    line-height: 1.2;
    letter-spacing: .34em;
    text-transform: uppercase;
    color: var(--ssn-colour-text);
}
.ssn-shell > .ssn-certificate-preview-panel p {
    margin: 5px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-sm);
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-body {
    min-height: 0;
    overflow: auto;
    padding: 16px;
    border: 0;
    border-radius: 0;
    background: var(--ssn-colour-control-bg, #f8fafc);
    display: flex;
    justify-content: center;
    align-items: flex-start;
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-body .ssn-certificate-pane-fit {
    position: relative;
    flex: 0 0 auto;
    display: block;
    overflow: hidden;
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-body .ssn-certificate-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 595.2755905512px;
    max-width: none;
    min-width: 0;
    transform-origin: top left;
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-body .ssn-certificate-canvas [data-certificate-field] {
    overflow-wrap: normal;
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-footer {
    padding: 14px 18px 18px;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-shared-pane-bg, #fff);
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-footer .ssn-button-primary {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-shell > .ssn-certificate-preview-panel .ssn-certificate-preview-footer .ssn-button-primary strong {
    color: inherit;
}
.ssn-shell .ssn-renewal-history {
    display: grid;
    gap: 14px;
    padding: 28px 24px;
}
.ssn-shell .ssn-renewal-history[hidden] {
    display: none;
}
.ssn-shell .ssn-renewal-history header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}
.ssn-shell .ssn-renewal-history header span {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .34em;
    text-transform: uppercase;
}
.ssn-shell .ssn-renewal-history header h3 {
    margin: 6px 0 0;
    color: var(--ssn-colour-text);
    font-size: 22px;
    line-height: 1.15;
}
.ssn-shell .ssn-renewal-history header small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-sm);
    font-weight: 700;
    white-space: nowrap;
}
.ssn-shell .ssn-renewal-history-list {
    display: grid;
    gap: 10px;
}
.ssn-shell .ssn-renewal-participant-row.ssn-participant-row {
    grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(100px, auto));
    align-items: center;
}

.ssn-shell [data-ssn-summary-row="participants"].is-clickable {
    cursor: pointer;
}
.ssn-shell [data-ssn-summary-row="participants"].is-clickable dd {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ssn-shell .ssn-enquiry-participant-empty .ssn-button-secondary {
    margin-top: 14px;
}

/* v1.07.16: enquiry participant source of truth */
.ssn-shell .ssn-renewal-history[data-ssn-enquiry-participant-mode="current"] .ssn-enquiry-participant-row.ssn-participant-row,
.ssn-shell .ssn-renewal-history[data-ssn-enquiry-participant-mode="empty"] .ssn-enquiry-participant-row.ssn-participant-row {
    grid-template-columns: minmax(220px, 1fr) auto auto;
}
.ssn-shell .ssn-renewal-history[data-ssn-enquiry-participant-mode="history"] .ssn-enquiry-participant-row.ssn-participant-row {
    grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(100px, auto)) auto;
}


.ssn-shell .ssn-training-renewal-panel .ssn-renewal-primary,
.ssn-shell .ssn-training-renewal-panel .ssn-renewal-primary:hover,
.ssn-shell .ssn-training-renewal-panel .ssn-renewal-primary:focus,
.ssn-shell .ssn-training-renewal-panel .ssn-renewal-primary:focus-visible,
.ssn-shell .ssn-training-renewal-panel .ssn-renewal-primary:active {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}

/* v1.07.21 Renewal pane UX polish */
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-header {
    padding: 22px 54px 18px 22px;
}
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-header small {
    display: block;
    margin: 0 0 6px;
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-header h2 {
    font-size: 15px;
    letter-spacing: .14em;
}
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 20px 22px;
    scrollbar-gutter: stable;
}
.ssn-shell .ssn-training-renewal-copy {
    margin: 0 0 16px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.45;
}
.ssn-shell .ssn-training-renewal-list {
    display: grid;
    gap: 10px;
}
.ssn-shell .ssn-training-renewal-row,
.ssn-shell .ssn-training-renewal-success {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-surface-soft);
}
.ssn-shell .ssn-training-renewal-row > span,
.ssn-shell .ssn-training-renewal-success > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: var(--ssn-colour-surface-strong);
    border: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-text);
    font-size: 12px;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
}
.ssn-shell .ssn-training-renewal-row.is-pending > span {
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-training-renewal-row strong,
.ssn-shell .ssn-training-renewal-success strong {
    display: block;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.25;
}
.ssn-shell .ssn-training-renewal-row small,
.ssn-shell .ssn-training-renewal-success small {
    display: block;
    margin-top: 3px;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.35;
}
.ssn-shell .ssn-training-renewal-success {
    margin-bottom: 14px;
    background: var(--ssn-colour-surface-strong);
}
.ssn-shell .ssn-training-renewal-status {
    min-height: 18px;
    margin: 14px 0 0;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.35;
}
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-footer {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(104px, .72fr);
    gap: 10px;
    padding: 14px 16px 16px;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-shared-pane-bg);
}
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-footer button {
    min-height: 42px;
    width: 100%;
    justify-content: center;
}
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-footer .ssn-button-primary[aria-busy="true"] {
    opacity: .74;
    cursor: wait;
}

/* v1.08.00 Knowledge Wheel Workspace Foundation */
.ssn-shell.ssn-knowledge-open .ssn-grid,
.ssn-shell.ssn-knowledge-open .ssn-projects-workspace,
.ssn-shell.ssn-knowledge-open .ssn-bookings-workspace,
.ssn-shell.ssn-knowledge-open .ssn-reports-workspace,
.ssn-shell.ssn-knowledge-open .ssn-project-detail-workspace,
.ssn-shell.ssn-knowledge-open .ssn-settings-workspace {
    display: none;
}
.ssn-knowledge-shell {
    display: none;
    grid-template-columns: 272px minmax(0, 1fr) 304px;
    gap: var(--ssn-space-5, 24px);
    width: 100%;
    min-height: calc(100vh - 210px);
}
.ssn-shell.ssn-knowledge-open .ssn-knowledge-shell {
    display: grid;
}
.ssn-knowledge-rail,
.ssn-knowledge-centre,
.ssn-knowledge-inspector {
    background: var(--ssn-colour-surface, #fff);
}
.ssn-knowledge-rail,
.ssn-knowledge-inspector {
    padding: var(--ssn-space-5, 24px);
}
.ssn-knowledge-centre {
    padding: var(--ssn-space-6, 32px);
}
.ssn-knowledge-rail-head h2,
.ssn-knowledge-inspector h2,
.ssn-knowledge-section-head h2 {
    margin: 0;
}
.ssn-knowledge-rail-head small,
.ssn-knowledge-head small,
.ssn-knowledge-inspector > small,
.ssn-knowledge-section-head small {
    display: block;
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
}
.ssn-knowledge-spaces {
    display: grid;
    gap: 8px;
    margin-top: var(--ssn-space-5, 24px);
}
.ssn-knowledge-space {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    border: 1px solid transparent;
    border-radius: 16px;
    background: transparent;
    color: var(--ssn-colour-text, #111827);
    padding: 10px 12px;
    text-align: left;
    cursor: pointer;
}
.ssn-knowledge-space:hover,
.ssn-knowledge-space.is-active {
    border-color: var(--ssn-colour-border, #e5e7eb);
    background: var(--ssn-colour-soft, #f7f8fa);
}
.ssn-knowledge-space strong,
.ssn-knowledge-space small {
    display: block;
}
.ssn-knowledge-space small {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 12px;
    line-height: 1.35;
}
.ssn-knowledge-space em {
    min-width: 28px;
    border-radius: 999px;
    background: var(--ssn-colour-soft, #f7f8fa);
    color: var(--ssn-colour-muted, #6b7280);
    font-style: normal;
    font-weight: 800;
    text-align: center;
    padding: 4px 8px;
}
.ssn-knowledge-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.ssn-knowledge-head h1 {
    margin: 14px 0 10px;
    font-size: clamp(30px, 4vw, 44px);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-knowledge-head p {
    max-width: 720px;
    margin: 0;
    color: var(--ssn-colour-muted, #6b7280);
    line-height: 1.55;
}
.ssn-knowledge-search-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-top: 28px;
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 18px;
    padding: 10px 12px;
    background: var(--ssn-colour-soft, #f7f8fa);
}
.ssn-knowledge-search-row input {
    width: 100%;
    border: 0;
    background: transparent;
    font: inherit;
    outline: 0;
}
.ssn-knowledge-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 26px 0;
}
.ssn-knowledge-stats span {
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 18px;
    padding: 16px;
    background: var(--ssn-colour-surface, #fff);
}
.ssn-knowledge-stats small,
.ssn-knowledge-stats strong {
    display: block;
}
.ssn-knowledge-stats small {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-knowledge-stats strong {
    margin-top: 10px;
    font-size: 26px;
}
.ssn-knowledge-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.ssn-knowledge-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.ssn-knowledge-doc-card {
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 20px;
    padding: 18px;
    background: var(--ssn-colour-surface, #fff);
}
.ssn-knowledge-doc-card small {
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-knowledge-doc-card h3 {
    margin: 12px 0 8px;
}
.ssn-knowledge-doc-card p,
.ssn-knowledge-empty-note small,
.ssn-knowledge-inspector p {
    color: var(--ssn-colour-muted, #6b7280);
    line-height: 1.5;
}
.ssn-knowledge-doc-card span {
    display: inline-flex;
    margin-top: 12px;
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 800;
}
.ssn-knowledge-empty-note {
    margin-top: 18px;
    border: 1px dashed var(--ssn-colour-border, #e5e7eb);
    border-radius: 18px;
    padding: 18px;
    text-align: center;
}
.ssn-knowledge-empty-note strong,
.ssn-knowledge-empty-note small {
    display: block;
}
.ssn-knowledge-inspector dl {
    margin: 24px 0;
}
.ssn-knowledge-inspector dl div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid var(--ssn-colour-border, #e5e7eb);
    padding: 10px 0;
}
.ssn-knowledge-inspector dt {
    color: var(--ssn-colour-muted, #6b7280);
}
.ssn-knowledge-inspector dd {
    margin: 0;
    font-weight: 800;
    text-align: right;
}
.ssn-knowledge-inspector section {
    border-top: 1px solid var(--ssn-colour-border, #e5e7eb);
    padding-top: 18px;
    margin-top: 18px;
}
@media (max-width: 1100px) {
    .ssn-knowledge-shell { grid-template-columns: 1fr; }
    .ssn-knowledge-card-grid,
    .ssn-knowledge-stats { grid-template-columns: 1fr; }
}

/* v1.08.01 Knowledge workspace recovery
   Knowledge must behave like a shell workspace, not as inline Home content. */
.ssn-knowledge-shell {
    position: absolute;
    inset: calc(var(--ssn-topbar-height) + 28px) 32px 124px;
    display: grid;
    grid-template-columns: minmax(260px, 322px) minmax(520px, 1fr) minmax(300px, 366px);
    gap: 24px;
    min-height: 0;
    width: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity var(--ssn-transition-fast), transform var(--ssn-transition-fast), visibility var(--ssn-transition-fast);
    z-index: 24;
}
.ssn-shell.ssn-knowledge-open [data-ssn-home-grid],
.ssn-shell.ssn-knowledge-open [data-ssn-projects-workspace],
.ssn-shell.ssn-knowledge-open [data-ssn-bookings-workspace],
.ssn-shell.ssn-knowledge-open [data-ssn-reports-workspace],
.ssn-shell.ssn-knowledge-open [data-ssn-project-detail-workspace],
.ssn-shell.ssn-knowledge-open [data-ssn-settings-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
}
.ssn-shell.ssn-knowledge-open .ssn-knowledge-shell {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-knowledge-rail,
.ssn-knowledge-centre,
.ssn-knowledge-inspector {
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-surface);
    box-shadow: var(--ssn-shadow-panel);
}
.ssn-knowledge-rail,
.ssn-knowledge-inspector {
    padding: 22px;
}
.ssn-knowledge-centre {
    padding: 28px;
    overflow-y: auto;
}
.ssn-knowledge-rail-head h2,
.ssn-knowledge-inspector h2,
.ssn-knowledge-section-head h2 {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .26em;
    line-height: 1.25;
    margin: 0;
    text-transform: uppercase;
}
.ssn-knowledge-rail-head small,
.ssn-knowledge-head small,
.ssn-knowledge-inspector > small,
.ssn-knowledge-section-head small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-meta);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-knowledge-spaces {
    display: grid;
    gap: 8px;
    margin-top: 22px;
}
.ssn-shell .ssn-knowledge-space {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    border: 1px solid transparent;
    border-radius: 16px;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    padding: 9px 11px;
    text-align: left;
    cursor: pointer;
    font: inherit;
}
.ssn-shell .ssn-knowledge-space:hover,
.ssn-shell .ssn-knowledge-space:focus-visible,
.ssn-shell .ssn-knowledge-space.is-active {
    border-color: var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    outline: none;
}
.ssn-knowledge-space strong,
.ssn-knowledge-space small {
    display: block;
}
.ssn-knowledge-space strong {
    font-size: 14px;
}
.ssn-knowledge-space small {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.35;
}
.ssn-knowledge-space em {
    min-width: 28px;
    border-radius: 999px;
    background: var(--ssn-colour-soft);
    color: var(--ssn-colour-muted);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
    text-align: center;
    padding: 4px 8px;
}
.ssn-knowledge-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.ssn-knowledge-head h1 {
    margin: 14px 0 10px;
    color: var(--ssn-colour-text);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: var(--ssn-font-weight-heading);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-knowledge-head p {
    max-width: 720px;
    margin: 0;
    color: var(--ssn-colour-muted);
    line-height: 1.55;
}
.ssn-shell .ssn-knowledge-new-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ssn-colour-button-primary-bg);
    border-radius: 999px;
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    min-height: 40px;
    padding: 0 16px;
    cursor: pointer;
}
.ssn-shell .ssn-knowledge-new-button:hover,
.ssn-shell .ssn-knowledge-new-button:focus-visible {
    background: var(--ssn-colour-button-primary-bg-hover);
    background-color: var(--ssn-colour-button-primary-bg-hover);
    border-color: var(--ssn-colour-button-primary-bg-hover);
    outline: none;
}
.ssn-knowledge-search-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-top: 28px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 18px;
    padding: 10px 12px;
    background: var(--ssn-colour-soft);
}
.ssn-knowledge-search-row input {
    width: 100%;
    border: 0;
    background: transparent;
    font: inherit;
    outline: 0;
}
.ssn-knowledge-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.ssn-knowledge-stats span {
    border: 1px solid var(--ssn-colour-line);
    border-radius: 18px;
    padding: 16px;
    background: var(--ssn-colour-surface);
}
.ssn-knowledge-stats small,
.ssn-knowledge-stats strong {
    display: block;
}
.ssn-knowledge-stats small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-meta);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-knowledge-stats strong {
    margin-top: 10px;
    font-size: 26px;
}
.ssn-knowledge-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.ssn-knowledge-doc-card {
    border: 1px solid var(--ssn-colour-line);
    border-radius: 20px;
    padding: 18px;
    background: var(--ssn-colour-surface);
}
.ssn-knowledge-doc-card h3 {
    margin: 12px 0 8px;
    color: var(--ssn-colour-text);
}
.ssn-knowledge-doc-card p,
.ssn-knowledge-empty-note small,
.ssn-knowledge-inspector p {
    color: var(--ssn-colour-muted);
    line-height: 1.5;
}
.ssn-knowledge-doc-card span {
    display: inline-flex;
    margin-top: 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-knowledge-empty-note {
    margin-top: 18px;
    border: 1px dashed var(--ssn-colour-line);
    border-radius: 18px;
    padding: 18px;
    text-align: center;
}
.ssn-knowledge-empty-note strong,
.ssn-knowledge-empty-note small {
    display: block;
}
.ssn-knowledge-inspector dl {
    margin: 24px 0;
}
.ssn-knowledge-inspector dl div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid var(--ssn-colour-line);
    padding: 10px 0;
}
.ssn-knowledge-inspector dt {
    color: var(--ssn-colour-muted);
}
.ssn-knowledge-inspector dd {
    margin: 0;
    font-weight: var(--ssn-font-weight-strong);
    text-align: right;
}
.ssn-knowledge-inspector section {
    border-top: 1px solid var(--ssn-colour-line);
    padding-top: 18px;
    margin-top: 18px;
}
@media (max-width: 1100px) {
    .ssn-knowledge-shell { grid-template-columns: 1fr; overflow-y: auto; }
    .ssn-knowledge-card-grid,
    .ssn-knowledge-stats { grid-template-columns: 1fr; }
}


/* v1.08.02 Knowledge wheel and workspace alignment
   Knowledge stays a first-class wheel module and uses the shared module workspace.
   This pass only corrects placement, spacing and pane fit. */
.ssn-shell [data-ssn-home-grid] .ssn-hub {
    overflow: visible;
}
.ssn-shell [data-ssn-home-grid] .ssn-orbit {
    transform: translateY(6px);
}
.ssn-shell .ssn-spoke-knowledge {
    left: 18%;
    top: 32%;
}
.ssn-knowledge-shell {
    grid-template-columns: minmax(260px, 300px) minmax(560px, 1fr) minmax(300px, 330px);
    gap: 22px;
}
.ssn-knowledge-rail,
.ssn-knowledge-inspector {
    padding: 20px;
}
.ssn-knowledge-centre {
    padding: 26px;
}
.ssn-knowledge-head {
    display: block;
}
.ssn-knowledge-head h1 {
    margin: 10px 0 8px;
    font-size: clamp(28px, 3.2vw, 38px);
    letter-spacing: .16em;
}
.ssn-knowledge-head p {
    max-width: 680px;
}
.ssn-knowledge-space {
    min-width: 0;
}
.ssn-knowledge-space span:not(.ssn-ui-icon) {
    min-width: 0;
}
.ssn-knowledge-space strong,
.ssn-knowledge-space small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-knowledge-search-row {
    margin-top: 24px;
}
.ssn-knowledge-stats {
    margin: 22px 0;
}
.ssn-knowledge-doc-card {
    padding: 16px;
}
.ssn-knowledge-card-grid {
    gap: 12px;
}
.ssn-knowledge-inspector h3 {
    color: var(--ssn-colour-heading);
    font-size: 24px;
    line-height: 1.15;
    margin: 0 0 10px;
}
@media (max-width: 1300px) {
    .ssn-knowledge-shell {
        grid-template-columns: minmax(240px, 280px) minmax(500px, 1fr) minmax(280px, 320px);
        gap: 18px;
        inset-left: 28px;
        inset-right: 28px;
    }
    .ssn-knowledge-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* v1.08.03 Knowledge header token lock
   One pane title per Knowledge pane, using the shared Navigator pane heading rhythm. */
.ssn-knowledge-rail-head h2,
.ssn-knowledge-head h1,
.ssn-knowledge-inspector > h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-pane-heading-size);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.15;
}
.ssn-knowledge-rail-head {
    gap: 0;
    padding-bottom: var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-knowledge-head {
    padding-bottom: var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-knowledge-head h1 {
    font-size: var(--ssn-pane-heading-size);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
}
.ssn-knowledge-head p {
    margin: 8px 0 0;
    max-width: 760px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-knowledge-inspector > h2 {
    padding-bottom: var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
    margin-bottom: var(--ssn-space-md);
}
.ssn-knowledge-inspector > small,
.ssn-knowledge-head > div > small,
.ssn-knowledge-rail-head small {
    display: none;
}

/* v1.08.04 Knowledge document builder foundation
   The builder lives inside the existing Knowledge right pane and keeps the module on one workspace. */
.ssn-knowledge-doc-card {
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.ssn-knowledge-doc-card:hover,
.ssn-knowledge-doc-card:focus-visible,
.ssn-knowledge-doc-card.is-active {
    border-color: var(--ssn-colour-control-border-active, var(--ssn-colour-text));
    box-shadow: var(--ssn-shadow-soft);
    transform: translateY(-1px);
    outline: none;
}
.ssn-knowledge-builder {
    display: grid;
    gap: 14px;
    margin-top: var(--ssn-space-md);
}
.ssn-knowledge-builder[hidden],
.ssn-knowledge-inspector-view[hidden] {
    display: none;
}
.ssn-knowledge-builder label {
    display: grid;
    gap: 7px;
}
.ssn-knowledge-builder label span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-meta);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ssn-knowledge-builder input,
.ssn-knowledge-builder textarea,
.ssn-knowledge-builder select {
    width: 100%;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 14px;
    background: var(--ssn-colour-surface);
    color: var(--ssn-colour-text);
    font: inherit;
    padding: 11px 12px;
    outline: 0;
}
.ssn-knowledge-builder textarea {
    resize: vertical;
}
.ssn-knowledge-builder input:focus,
.ssn-knowledge-builder textarea:focus,
.ssn-knowledge-builder select:focus {
    border-color: var(--ssn-colour-control-border-active, var(--ssn-colour-text));
    box-shadow: 0 0 0 4px var(--ssn-colour-control-ring, rgba(17, 19, 24, .06));
}
.ssn-knowledge-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.ssn-knowledge-form-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}
.ssn-shell .ssn-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-surface);
    color: var(--ssn-colour-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    padding: 0 16px;
    cursor: pointer;
}
.ssn-shell .ssn-btn-secondary:hover,
.ssn-shell .ssn-btn-secondary:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    outline: none;
}
.ssn-knowledge-form-message {
    min-height: 18px;
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}

/* v1.08.05 Knowledge wheel boot + canvas builder foundation
   Knowledge opens from first paint through delegated wheel binding. The document builder now belongs to the centre canvas while the right pane owns block tools. */
.ssn-knowledge-canvas-builder {
    margin-top: var(--ssn-space-md);
    border: 1px solid var(--ssn-colour-line);
    border-radius: 20px;
    background: var(--ssn-colour-surface);
    padding: 22px;
}
.ssn-knowledge-canvas-builder[hidden] {
    display: none;
}
.ssn-knowledge-canvas-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid var(--ssn-colour-line);
    padding-bottom: var(--ssn-space-md);
    margin-bottom: var(--ssn-space-md);
}
.ssn-knowledge-canvas-head h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-pane-heading-size);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    line-height: 1.15;
    text-transform: var(--ssn-pane-heading-transform);
}
.ssn-knowledge-canvas-head p {
    margin: 8px 0 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.5;
}
.ssn-knowledge-canvas-builder textarea[name="content"] {
    min-height: 260px;
}
.ssn-knowledge-block-library {
    border-top: 1px solid var(--ssn-colour-line);
    margin-top: var(--ssn-space-md);
    padding-top: var(--ssn-space-md);
}
.ssn-knowledge-block-library h3 {
    margin: 0 0 8px;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-pane-heading-size);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    line-height: 1.15;
    text-transform: var(--ssn-pane-heading-transform);
}
.ssn-knowledge-block-library p {
    margin: 0 0 14px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.5;
}
.ssn-knowledge-block-library button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 14px;
    background: var(--ssn-colour-surface);
    color: var(--ssn-colour-text);
    font: inherit;
    font-weight: var(--ssn-font-weight-strong);
    margin-bottom: 9px;
    padding: 0 13px;
    cursor: pointer;
    text-align: left;
}
.ssn-knowledge-block-library button:hover,
.ssn-knowledge-block-library button:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-control-border-active, var(--ssn-colour-text));
    outline: none;
}

/* v1.09.00 Editor Engine Foundation */
.ssn-knowledge-editor-form {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    gap: 18px;
}
.ssn-knowledge-editor {
    position: relative;
    width: min(820px, 100%);
    min-height: 520px;
    margin: 0 auto;
    padding: 42px 54px;
    border: 1px solid var(--ssn-colour-line, #e5e7eb);
    border-radius: 22px;
    background: var(--ssn-colour-surface, #fff);
    box-shadow: var(--ssn-shadow-soft, 0 18px 42px rgba(15,23,42,.06));
}
.ssn-knowledge-editor-title {
    min-height: 54px;
    margin-bottom: 22px;
    color: var(--ssn-colour-text, #111827);
    font-size: clamp(30px, 3vw, 44px);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.08;
    outline: 0;
}
.ssn-knowledge-editor-body {
    min-height: 340px;
    color: var(--ssn-colour-text, #111827);
    font-size: 16px;
    line-height: 1.7;
    outline: 0;
}
.ssn-knowledge-editor-title:empty:before,
.ssn-knowledge-editor-body:empty:before {
    content: attr(data-placeholder);
    color: var(--ssn-colour-muted, #9ca3af);
}
.ssn-knowledge-editor-block {
    position: relative;
    margin: 12px 0;
}
.ssn-knowledge-editor-block h2,
.ssn-knowledge-editor-block p,
.ssn-knowledge-editor-block .ssn-knowledge-callout,
.ssn-knowledge-editor-block span,
.ssn-knowledge-editor-block th,
.ssn-knowledge-editor-block td {
    outline: 0;
}
.ssn-knowledge-editor-block h2 {
    margin: 22px 0 8px;
    font-size: 26px;
    line-height: 1.18;
}
.ssn-knowledge-editor-block p {
    margin: 0;
}
.ssn-knowledge-editor-block hr {
    border: 0;
    border-top: 1px solid var(--ssn-colour-line, #e5e7eb);
    margin: 24px 0;
}
.ssn-knowledge-callout {
    border: 1px solid var(--ssn-colour-line, #e5e7eb);
    border-radius: 16px;
    background: var(--ssn-colour-soft, #f8fafc);
    padding: 14px 16px;
}
.ssn-knowledge-editor-block label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 8px 0;
}
.ssn-knowledge-editor-block table {
    width: 100%;
    border-collapse: collapse;
    margin: 12px 0;
}
.ssn-knowledge-editor-block th,
.ssn-knowledge-editor-block td {
    border: 1px solid var(--ssn-colour-line, #e5e7eb);
    padding: 10px 12px;
    text-align: left;
}
.ssn-knowledge-slash-palette {
    position: absolute;
    z-index: 20;
    display: grid;
    gap: 6px;
    width: 220px;
    border: 1px solid var(--ssn-colour-line, #e5e7eb);
    border-radius: 16px;
    background: var(--ssn-colour-surface, #fff);
    box-shadow: var(--ssn-shadow-panel, 0 18px 44px rgba(15,23,42,.12));
    padding: 8px;
}
.ssn-knowledge-slash-palette[hidden] { display: none; }
.ssn-knowledge-slash-palette button,
.ssn-knowledge-block-library button {
    width: 100%;
    border: 1px solid var(--ssn-colour-line, #e5e7eb);
    border-radius: 12px;
    background: var(--ssn-colour-surface, #fff);
    color: var(--ssn-colour-text, #111827);
    font: inherit;
    font-weight: 700;
    text-align: left;
    padding: 10px 12px;
    cursor: pointer;
}
.ssn-knowledge-slash-palette button:hover,
.ssn-knowledge-slash-palette button:focus-visible,
.ssn-knowledge-block-library button:hover,
.ssn-knowledge-block-library button:focus-visible {
    background: var(--ssn-colour-soft, #f8fafc);
    outline: 0;
}
.ssn-knowledge-properties {
    width: min(820px, 100%);
    margin: 0 auto;
}
.ssn-knowledge-block-library p strong {
    font-weight: 900;
}

/* v1.09.01 Knowledge Boot Fix + Document Shell + Checklist Block */
.ssn-knowledge-editor {
    padding-top: 72px;
    padding-bottom: 58px;
    overflow: hidden;
}
.ssn-knowledge-document-logo {
    position: absolute;
    top: 28px;
    right: 32px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--ssn-colour-soft, #f8fafc);
}
.ssn-knowledge-document-logo img {
    max-width: 28px;
    max-height: 28px;
    display: block;
}
.ssn-knowledge-document-footer {
    position: absolute;
    left: 54px;
    right: 54px;
    bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--ssn-colour-line, #e5e7eb);
    color: var(--ssn-colour-muted, #6b7280);
    font-size: 11px;
    line-height: 1.3;
}
.ssn-knowledge-checklist {
    display: grid;
    gap: 10px;
    margin: 12px 0;
}
.ssn-knowledge-check-item {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    min-height: 24px;
}
.ssn-knowledge-check-box {
    width: 14px;
    height: 14px;
    margin-top: 5px;
    border: 1.5px solid var(--ssn-colour-muted, #9ca3af);
    border-radius: 4px;
    background: var(--ssn-colour-surface, #fff);
}
.ssn-knowledge-check-item span[contenteditable="true"] {
    min-width: 0;
    line-height: 1.55;
    outline: none;
}
.ssn-knowledge-editor-block-checklist label {
    display: none;
}
.ssn-spoke-knowledge {
    pointer-events: auto;
    z-index: 9;
}


/* v1.10.17 Renewal shared pane + command search ordering lock */
.ssn-shell > .ssn-training-renewal-panel.ssn-right-rail-shell,
.ssn-shell > .ssn-training-renewal-panel.ssn-right-rail-shell[aria-hidden="false"] {
    background: var(--ssn-shared-pane-bg, #fff);
    background-color: var(--ssn-shared-pane-bg, #fff);
    opacity: 1;
}
.ssn-shell > .ssn-training-renewal-panel.ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
}
.ssn-shell .ssn-training-renewal-panel,
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-header,
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-body,
.ssn-shell .ssn-training-renewal-panel .ssn-shared-pane-footer {
    background: var(--ssn-shared-pane-bg, #fff);
    background-color: var(--ssn-shared-pane-bg, #fff);
}
.ssn-shell .ssn-training-renewal-panel .ssn-button-primary {
    background: var(--ssn-colour-button-primary-bg);
    background-color: var(--ssn-colour-button-primary-bg);
    border-color: var(--ssn-colour-button-primary-bg);
    color: var(--ssn-colour-button-primary-text);
}
.ssn-shell .ssn-command-completed-group {
    margin: 12px 0 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-command-completed-group > summary {
    cursor: pointer;
    padding: 12px 16px;
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ssn-shell .ssn-command-completed-group .ssn-command-group {
    margin-top: 0;
}


/* v1.10.19 Renewal delivery details and focus replacement lock */
.ssn-shell .ssn-hub.is-queue-open .ssn-orbit,
.ssn-shell .ssn-hub.is-queue-open [data-ssn-boot-orbit] {
    display: none !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}
.ssn-summary-date-form {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
}
.ssn-summary-date-form input[type="date"] {
    min-width: 132px;
    max-width: 148px;
}
.ssn-summary-date-form .ssn-button-secondary {
    min-height: 30px;
    padding: 0 10px;
}

/* v1.10.26 Shared Calm Date Row Lock */
.ssn-project-facts .ssn-summary-date-editable-row,
.ssn-project-facts [data-ssn-summary-row="date"],
.ssn-project-facts [data-ssn-summary-row="renewal-date"],
.ssn-project-facts [data-ssn-summary-row="certificate-valid-until"] {
    border-radius: 10px;
    margin: 0 -6px;
    padding: 3px 6px;
    transition: background-color .16s ease, color .16s ease;
}
.ssn-project-facts .ssn-summary-date-editable-row:hover,
.ssn-project-facts [data-ssn-summary-row="date"]:hover,
.ssn-project-facts [data-ssn-summary-row="renewal-date"]:hover,
.ssn-project-facts [data-ssn-summary-row="certificate-valid-until"]:hover {
    background: rgba(17, 24, 39, .045);
}
.ssn-summary-date-form[hidden],
.ssn-shell .ssn-summary-date-form[hidden] {
    display: none;
}
.ssn-summary-date-form:not([hidden]),
.ssn-shell .ssn-summary-date-form:not([hidden]) {
    display: flex;
}
.ssn-summary-date-form--inline input[type="date"],
.ssn-shell .ssn-summary-date-form--inline input[type="date"] {
    border: 1px solid var(--ssn-colour-border, #e5e7eb);
    border-radius: 8px;
    background: var(--ssn-colour-card, #fff);
    min-height: 30px;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 800;
}
.ssn-summary-inline-button,
.ssn-shell .ssn-summary-inline-button {
    border-radius: 8px;
    padding: 2px 4px;
}
.ssn-summary-inline-button:hover,
.ssn-summary-inline-button:focus-visible {
    text-decoration: none;
}

/* v1.10.27 Workspace Shell Unification
   Home now uses the same calm three-pane shell sizing as Project detail. */
.ssn-shell [data-ssn-home-grid].ssn-grid {
    position: absolute;
    inset: var(--ssn-app-card-top) var(--ssn-app-card-right) var(--ssn-app-card-bottom) var(--ssn-app-card-left);
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    gap: var(--ssn-app-card-gap);
    align-items: stretch;
}
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-hub,
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    height: 100%;
    min-height: 0;
    align-self: stretch;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
}
.ssn-shell [data-ssn-home-grid] .ssn-hub {
    grid-column: 2;
    grid-row: 1;
    overflow: hidden;
}
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control {
    grid-column: 1;
    grid-row: 1;
    overflow: hidden auto;
}
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    grid-column: 3;
    grid-row: 1;
    overflow: hidden auto;
}


/* v1.10.28 Workspace Shell Audit & Consolidation
   Audit result: Project detail already owned the correct shell geometry. Home still
   inherited a centre card treatment from the temporary queue layer, so the wheel
   looked boxed and the rails could fall back to older fixed heights. This lock
   keeps the shared three-pane frame and lets the wheel sit directly on the page. */
.ssn-shell [data-ssn-home-grid].ssn-grid {
    position: absolute;
    inset: var(--ssn-app-card-top) var(--ssn-app-card-right) var(--ssn-app-card-bottom) var(--ssn-app-card-left);
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    grid-template-rows: minmax(0, 1fr);
    gap: var(--ssn-app-card-gap);
    align-items: stretch;
}
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    height: var(--ssn-app-card-height);
    min-height: 0;
    align-self: stretch;
    overflow: hidden;
}
.ssn-shell [data-ssn-home-grid] .ssn-hub {
    grid-column: 2;
    grid-row: 1;
    height: var(--ssn-app-card-height);
    min-height: 0;
    align-self: stretch;
    overflow: visible;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    background-color: transparent;
}
.ssn-shell [data-ssn-home-grid] .ssn-hub:not(.is-queue-open) {
    border: 0;
    box-shadow: none;
    background: transparent;
    background-color: transparent;
}
.ssn-shell [data-ssn-home-grid] .ssn-hub.is-queue-open {
    overflow: hidden;
}
.ssn-shell [data-ssn-home-grid] .ssn-orbit {
    align-self: center;
    justify-self: center;
}


/* v2.02.01 Navigator OS Runtime Owner Lock
   Spaces use the shared Navigator pane shell. Do not create separate Space pane geometry,
   do not patch legacy route handlers, and do not add hash routes to Home wheel spokes. */
.ssn-shell .ssn-orbit button.ssn-spoke,
.ssn-shell .ssn-space-spoke {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    cursor: pointer;
    padding: 0;
    color: var(--ssn-colour-text);
}
.ssn-space-spoke-relationships { left: 50%; top: 12%; }
.ssn-space-spoke-operations { left: 82%; top: 32%; }
.ssn-space-spoke-create { left: 82%; top: 68%; }
.ssn-space-spoke-insights { left: 18%; top: 68%; }
.ssn-space-spoke-knowledge { left: 18%; top: 32%; }
.ssn-shell.ssn-spaces-open [data-ssn-home-grid],
.ssn-shell.ssn-spaces-open [data-ssn-settings-workspace],
.ssn-shell.ssn-spaces-open [data-ssn-reports-workspace],
.ssn-shell.ssn-spaces-open [data-ssn-knowledge-workspace],
.ssn-shell.ssn-spaces-open [data-ssn-projects-workspace],
.ssn-shell.ssn-spaces-open [data-ssn-bookings-workspace],
.ssn-shell.ssn-spaces-open [data-ssn-project-detail-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell .ssn-spaces-grid {
    inset: var(--ssn-app-card-top) var(--ssn-app-card-right) var(--ssn-app-card-bottom) var(--ssn-app-card-left);
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    gap: var(--ssn-app-card-gap);
}
.ssn-shell.ssn-spaces-open .ssn-spaces-grid {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-space-nav p,
.ssn-space-centre p,
.ssn-space-overview p {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.45;
    margin: 0 0 14px;
}
.ssn-space-centre {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    padding: 32px;
}
.ssn-space-centre > small {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .22em;
    text-transform: uppercase;
}
.ssn-space-centre h2 {
    margin: 0;
    color: var(--ssn-colour-primary);
    font-size: clamp(32px, 4vw, 54px);
    line-height: 1;
}
.ssn-space-foundation-card {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-lg);
    background: var(--ssn-colour-surface-soft);
    padding: 18px;
    display: grid;
    gap: 6px;
}
.ssn-space-foundation-card small { color: var(--ssn-colour-muted); line-height: 1.45; }
.ssn-space-overview dl { margin: 18px 0 0; display: grid; gap: 0; }
.ssn-space-overview dl div { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--ssn-colour-line); padding: 13px 0; }
.ssn-space-overview dt { color: var(--ssn-colour-muted); font-size: var(--ssn-font-size-small); }
.ssn-space-overview dd { margin: 0; color: var(--ssn-colour-text); font-weight: var(--ssn-font-weight-strong); text-align: right; }

/* v2.02.01 Navigator OS Runtime Owner Lock */
.ssn-shell:not(.ssn-insights-open) [data-ssn-reports-workspace][aria-hidden="true"]{display:none;}


/* v2.02.02 Core UI Foundation Lock
   UI ownership: tokens -> shared components -> content. Future Spaces must compose these
   primitives and must not introduce bespoke pane, button, card, heading or wheel styling. */
:root {
    --ssn-colour-primary: var(--ssn-colour-text);
    --ssn-colour-primary-soft: var(--ssn-colour-control-bg-hover);
    --ssn-colour-pane-bg: var(--ssn-colour-surface);
    --ssn-colour-card-surface: var(--ssn-colour-surface);
    --ssn-colour-card-surface-hover: var(--ssn-colour-control-bg-hover);
    --ssn-radius-lg: var(--ssn-radius-panel);
    --ssn-radius-md: var(--ssn-radius-control);
    --ssn-radius-sm: var(--ssn-radius-row);
    --ssn-radius-full: var(--ssn-radius-pill);
    --ssn-shadow-card: var(--ssn-shadow-panel);
    --ssn-shadow-hover: var(--ssn-shadow-soft);
    --ssn-transition-ui: var(--ssn-transition-fast);
    --ssn-pane-heading-size: var(--ssn-font-size-small);
    --ssn-pane-heading-letter-spacing: .22em;
    --ssn-pane-heading-transform: uppercase;
    --ssn-pane-heading-weight: var(--ssn-font-weight-label);
    --ssn-meta-size: var(--ssn-font-size-small);
    --ssn-label-size: var(--ssn-font-size-label);
    --ssn-button-primary-bg: var(--ssn-colour-button-primary-bg);
    --ssn-button-primary-border: var(--ssn-colour-button-primary-bg);
    --ssn-button-primary-text: var(--ssn-colour-button-primary-text);
    --ssn-colour-button-primary-border: var(--ssn-colour-button-primary-bg);
    --ssn-colour-button-primary-bg-hover: var(--ssn-colour-text-soft);
    --ssn-colour-button-ghost-bg: transparent;
    --ssn-colour-button-ghost-bg-hover: var(--ssn-colour-control-bg-hover);
    --ssn-colour-button-ghost-border: transparent;
    --ssn-colour-button-ghost-text: var(--ssn-colour-text);
}

/* Shared pane contract */
.ssn-shell .ssn-card,
.ssn-shell .ssn-project-nav,
.ssn-shell .ssn-project-workspace,
.ssn-shell .ssn-project-overview,
.ssn-shell .ssn-reports-nav,
.ssn-shell .ssn-reports-centre,
.ssn-shell .ssn-reports-control,
.ssn-shell .ssn-knowledge-nav,
.ssn-shell .ssn-knowledge-centre,
.ssn-shell .ssn-knowledge-overview,
.ssn-shell .ssn-space-nav,
.ssn-shell .ssn-space-centre,
.ssn-shell .ssn-space-overview,
.ssn-shell .ssn-settings-panel,
.ssn-shell .ssn-pulse-panel,
.ssn-shell .ssn-activity-panel,
.ssn-shell .ssn-feedback-panel,
.ssn-shell .ssn-qr-panel,
.ssn-shell [data-ssn-shared-pane] {
    background: var(--ssn-colour-pane-bg);
    background-color: var(--ssn-colour-pane-bg);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(28px);
}

/* Shared card contract */
.ssn-shell .ssn-signal-row,
.ssn-shell .ssn-agenda-row,
.ssn-shell .ssn-space-foundation-card,
.ssn-shell .ssn-summary-card,
.ssn-shell .ssn-workspace-card,
.ssn-shell .ssn-report-card,
.ssn-shell .ssn-online-project-card,
.ssn-shell .ssn-knowledge-card,
.ssn-shell [data-ssn-shared-card] {
    border-color: var(--ssn-colour-line);
    border-radius: var(--ssn-radius-row);
    background: transparent;
    color: var(--ssn-colour-text);
    transition: background var(--ssn-transition-ui), border-color var(--ssn-transition-ui), transform var(--ssn-transition-ui), box-shadow var(--ssn-transition-ui), opacity var(--ssn-transition-ui);
}
.ssn-shell .ssn-signal-row:hover,
.ssn-shell .ssn-agenda-row:hover,
.ssn-shell .ssn-space-foundation-card:hover,
.ssn-shell .ssn-summary-card:hover,
.ssn-shell .ssn-workspace-card:hover,
.ssn-shell .ssn-report-card:hover,
.ssn-shell .ssn-online-project-card:hover,
.ssn-shell .ssn-knowledge-card:hover,
.ssn-shell [data-ssn-shared-card]:hover {
    background: var(--ssn-colour-card-surface-hover);
}

/* Shared typography contract */
.ssn-shell h1,
.ssn-shell h2,
.ssn-shell h3,
.ssn-shell .ssn-pane-heading,
.ssn-shell .ssn-project-pane-heading,
.ssn-shell .ssn-space-centre > small,
.ssn-shell .ssn-card h2,
.ssn-shell .ssn-reports-control h2,
.ssn-shell [data-ssn-heading] {
    color: var(--ssn-colour-text);
    font-family: var(--ssn-font-family);
    font-weight: var(--ssn-pane-heading-weight);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
}
.ssn-shell small,
.ssn-shell .ssn-meta,
.ssn-shell [data-ssn-meta] {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-meta-size);
}
.ssn-shell label,
.ssn-shell .ssn-label,
.ssn-shell [data-ssn-label] {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-label-size);
    font-weight: var(--ssn-font-weight-label);
}

/* Shared button contract */
.ssn-shell .ssn-button,
.ssn-shell .ssn-button-primary,
.ssn-shell .ssn-button-secondary,
.ssn-shell .ssn-button-ghost,
.ssn-shell .ssn-smart-action,
.ssn-shell .ssn-view-all,
.ssn-shell .ssn-command-tabs button,
.ssn-shell .ssn-online-project-toggle,
.ssn-shell button[data-ssn-button] {
    border-radius: var(--ssn-radius-pill);
    box-shadow: none;
    transition: background var(--ssn-transition-ui), border-color var(--ssn-transition-ui), color var(--ssn-transition-ui), transform var(--ssn-transition-ui), opacity var(--ssn-transition-ui);
}
.ssn-shell .ssn-button-primary,
.ssn-shell .ssn-smart-action.is-primary,
.ssn-shell button[data-ssn-button="primary"] {
    background: var(--ssn-button-primary-bg);
    background-color: var(--ssn-button-primary-bg);
    border-color: var(--ssn-button-primary-border);
    color: var(--ssn-button-primary-text);
}
.ssn-shell .ssn-button-primary:hover,
.ssn-shell .ssn-smart-action.is-primary:hover,
.ssn-shell button[data-ssn-button="primary"]:hover {
    background: var(--ssn-colour-button-primary-bg-hover);
    background-color: var(--ssn-colour-button-primary-bg-hover);
    border-color: var(--ssn-colour-button-primary-bg-hover);
    color: var(--ssn-button-primary-text);
}
.ssn-shell .ssn-button-secondary,
.ssn-shell .ssn-view-all,
.ssn-shell button[data-ssn-button="secondary"] {
    background: var(--ssn-colour-button-secondary-bg);
    background-color: var(--ssn-colour-button-secondary-bg);
    border-color: var(--ssn-colour-button-secondary-border);
    color: var(--ssn-colour-button-secondary-text);
}
.ssn-shell .ssn-button-secondary:hover,
.ssn-shell .ssn-view-all:hover,
.ssn-shell button[data-ssn-button="secondary"]:hover {
    background: var(--ssn-colour-button-secondary-bg-hover);
    background-color: var(--ssn-colour-button-secondary-bg-hover);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-button-ghost,
.ssn-shell button[data-ssn-button="ghost"] {
    background: var(--ssn-colour-button-ghost-bg);
    background-color: var(--ssn-colour-button-ghost-bg);
    border-color: var(--ssn-colour-button-ghost-border);
    color: var(--ssn-colour-button-ghost-text);
}
.ssn-shell .ssn-button-ghost:hover,
.ssn-shell button[data-ssn-button="ghost"]:hover {
    background: var(--ssn-colour-button-ghost-bg-hover);
    background-color: var(--ssn-colour-button-ghost-bg-hover);
}

/* Wheel now consumes shared tokens only. No wheel-specific blue, accent or bespoke button surfaces. */
.ssn-shell .ssn-orbit button.ssn-spoke,
.ssn-shell .ssn-spoke,
.ssn-shell .ssn-space-spoke,
.ssn-shell .ssn-reports-spoke {
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    background-image: none;
    border: 1px solid var(--ssn-colour-control-border);
    border-radius: var(--ssn-radius-pill);
    box-shadow: var(--ssn-shadow-soft);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-orbit button.ssn-spoke:hover,
.ssn-shell .ssn-spoke:hover,
.ssn-shell .ssn-space-spoke:hover,
.ssn-shell .ssn-reports-spoke:hover,
.ssn-shell .ssn-orbit button.ssn-spoke:focus-visible,
.ssn-shell .ssn-spoke:focus-visible,
.ssn-shell .ssn-space-spoke:focus-visible,
.ssn-shell .ssn-reports-spoke:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    background-image: none;
    border-color: var(--ssn-colour-row-selected-border);
    box-shadow: var(--ssn-shadow-soft);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-spoke *,
.ssn-shell .ssn-space-spoke *,
.ssn-shell .ssn-reports-spoke * {
    color: inherit;
}

/* Shared animation contract */
.ssn-shell [data-ssn-home-grid],
.ssn-shell .ssn-spaces-grid,
.ssn-shell [data-ssn-projects-workspace],
.ssn-shell [data-ssn-project-detail-workspace],
.ssn-shell [data-ssn-knowledge-workspace],
.ssn-shell [data-ssn-settings-workspace],
.ssn-shell [data-ssn-reports-workspace],
.ssn-shell .ssn-command-panel,
.ssn-shell .ssn-notification-panel {
    transition: opacity var(--ssn-transition-ui), visibility var(--ssn-transition-ui), transform var(--ssn-transition-ui);
}

/* Reports is migration content only. It must not draw a top-level runtime surface. */
.ssn-shell:not(.ssn-insights-open) [data-ssn-reports-workspace],
.ssn-shell.ssn-reports-open [data-ssn-reports-workspace][aria-hidden="true"] {
    display: none;
}

/* v2.02.04 Relationships Workspace Shell Lock
   Explorer text and centre workspace content must use the shared shell, card and typography contracts. */
.ssn-shell .ssn-space-nav button,
.ssn-shell .ssn-space-nav button > span:last-child {
    min-width: 0;
}
.ssn-shell .ssn-space-nav button strong,
.ssn-shell .ssn-space-nav button small {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.28;
}
.ssn-shell .ssn-space-nav button small {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ssn-shell .ssn-space-workspace-shell {
    min-width: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--ssn-space-lg);
}
.ssn-shell .ssn-space-workspace-header {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-workspace-header p {
    max-width: 760px;
}
.ssn-shell .ssn-space-workspace-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card {
    min-height: 118px;
    align-content: start;
}
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card strong,
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card small {
    overflow-wrap: anywhere;
}
@media (max-width: 1180px) {
    .ssn-shell .ssn-space-workspace-grid {
        grid-template-columns: 1fr;
    }
}

/* v2.02.06 Relationships View Refinement Lock
   The centre pane now uses the same compact heading contract as the left and right panes.
   Live preview rows use the shared card component and existing boot payload only. */
.ssn-shell .ssn-space-centre {
    justify-content: flex-start;
    align-items: stretch;
    padding: var(--ssn-space-xl);
    gap: var(--ssn-space-lg);
}
.ssn-shell .ssn-space-workspace-shell {
    justify-content: flex-start;
    height: 100%;
}
.ssn-shell .ssn-space-workspace-header {
    align-content: start;
    gap: var(--ssn-space-sm);
    padding: 0 0 var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-workspace-header small,
.ssn-shell .ssn-space-workspace-header [data-ssn-space-eyebrow] {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-pane-heading-weight);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
}
.ssn-shell .ssn-space-workspace-header h2,
.ssn-shell .ssn-space-centre .ssn-space-workspace-header h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-large);
    line-height: 1.2;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
}
.ssn-shell .ssn-space-workspace-header p {
    margin: 0;
    max-width: 760px;
}
.ssn-shell .ssn-space-workspace-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
}
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card {
    min-height: 0;
    padding: var(--ssn-space-md);
    text-decoration: none;
    display: grid;
    gap: var(--ssn-space-xs);
    align-content: start;
}
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card span[data-ssn-meta] {
    display: block;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    line-height: 1.25;
    letter-spacing: 0;
    text-transform: none;
}
.ssn-shell .ssn-space-workspace-grid .ssn-space-foundation-card small {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.4;
}
@media (max-width: 1180px) {
    .ssn-shell .ssn-space-workspace-grid {
        grid-template-columns: 1fr;
    }
}


/* v2.02.06 Relationships View Refinement Lock
   Shared Index Bar: data-driven horizontal index for list views such as Organisations.
   The centre pane title is now the primary heading; descriptions are carried in the right pane. */
.ssn-shell .ssn-space-workspace-header [data-ssn-space-eyebrow]:empty,
.ssn-shell .ssn-space-workspace-header [data-ssn-space-description]:empty {
    display: none;
}
.ssn-shell .ssn-index-bar {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ssn-space-sm);
    padding: 0 0 var(--ssn-space-sm);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-index-bar-item {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
    padding: var(--ssn-space-xs) 0;
    cursor: pointer;
    transition: color var(--ssn-transition-fast), opacity var(--ssn-transition-fast);
}
.ssn-shell .ssn-index-bar-item:hover,
.ssn-shell .ssn-index-bar-item.is-active {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-space-nav button strong {
    overflow-wrap: anywhere;
}

/* v2.02.07 Relationships Active Workspace Rail Lock
   The centre pane owns scrolling, the page shell stays still, and the right rail
   becomes contextual to either the active view or selected card. */
.ssn-shell .ssn-spaces-grid {
    overflow: hidden;
    min-height: 0;
}
.ssn-shell .ssn-space-nav,
.ssn-shell .ssn-space-centre,
.ssn-shell .ssn-space-overview {
    min-height: 0;
    overflow: hidden;
}
.ssn-shell .ssn-space-centre {
    padding: var(--ssn-space-lg);
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-workspace-shell {
    min-height: 0;
    height: 100%;
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-workspace-header {
    flex: 0 0 auto;
    padding: 0 0 var(--ssn-space-sm);
    gap: var(--ssn-space-xs);
}
.ssn-shell .ssn-space-workspace-header h2,
.ssn-shell .ssn-space-centre .ssn-space-workspace-header h2 {
    font-size: var(--ssn-font-size-base);
    line-height: 1.15;
}
.ssn-shell .ssn-space-workspace-grid {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
    padding-right: var(--ssn-space-xs);
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}
.ssn-shell .ssn-space-workspace-grid:hover,
.ssn-shell .ssn-space-workspace-grid:focus-within {
    scrollbar-color: var(--ssn-colour-line-strong, var(--ssn-colour-line)) transparent;
}
.ssn-shell .ssn-space-workspace-grid::-webkit-scrollbar {
    width: 8px;
}
.ssn-shell .ssn-space-workspace-grid::-webkit-scrollbar-track {
    background: transparent;
}
.ssn-shell .ssn-space-workspace-grid::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: var(--ssn-radius-pill);
}
.ssn-shell .ssn-space-workspace-grid:hover::-webkit-scrollbar-thumb,
.ssn-shell .ssn-space-workspace-grid:focus-within::-webkit-scrollbar-thumb {
    background: var(--ssn-colour-line-strong, var(--ssn-colour-line));
}
.ssn-shell .ssn-workspace-card[data-ssn-relationship-card] {
    cursor: pointer;
}
.ssn-shell .ssn-workspace-card[data-ssn-relationship-card].is-selected {
    border-color: var(--ssn-colour-row-selected-border);
    background: var(--ssn-colour-control-bg-hover);
}
.ssn-shell .ssn-relationship-rail-selection {
    margin-top: var(--ssn-space-lg);
    padding-top: var(--ssn-space-md);
    border-top: 1px solid var(--ssn-colour-line);
    display: grid;
    gap: var(--ssn-space-xs);
}
.ssn-shell .ssn-relationship-rail-selection strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    line-height: 1.25;
}
.ssn-shell .ssn-relationship-rail-selection small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.4;
}
.ssn-shell .ssn-relationship-rail-selection .ssn-button {
    justify-self: start;
    margin-top: var(--ssn-space-sm);
    text-decoration: none;
}

/* v2.02.08 Pane Header Typography Alignment Lock
   One heading contract for left, centre and right panes. Pane headers align at the
   same top rhythm and consume the shared typography tokens only. */
.ssn-shell .ssn-space-nav,
.ssn-shell .ssn-space-centre,
.ssn-shell .ssn-space-overview {
    padding-top: var(--ssn-project-pane-pad-top, 28px);
}
.ssn-shell .ssn-space-workspace-header {
    padding-top: 0;
    margin-top: 0;
}
.ssn-shell .ssn-space-nav h2,
.ssn-shell .ssn-space-overview h2,
.ssn-shell .ssn-space-workspace-header h2,
.ssn-shell .ssn-space-centre .ssn-space-workspace-header h2,
.ssn-shell [data-ssn-space-title],
.ssn-shell [data-ssn-rail-heading] {
    margin: 0;
    padding: 0;
    color: var(--ssn-colour-text);
    font-family: var(--ssn-font-family);
    font-size: var(--ssn-pane-heading-size);
    line-height: 1.2;
    font-weight: var(--ssn-pane-heading-weight);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
    text-align: left;
}
.ssn-shell .ssn-space-nav h2 {
    margin-bottom: var(--ssn-space-md);
}
.ssn-shell .ssn-space-overview h2 {
    margin-bottom: var(--ssn-space-lg);
}
.ssn-shell .ssn-space-workspace-header {
    border-bottom: 1px solid var(--ssn-colour-line);
    padding-bottom: var(--ssn-space-md);
}
.ssn-shell .ssn-space-workspace-grid {
    padding-top: 0;
}

/* v2.02.09 Explorer Interaction Polish Lock
   Space explorer interaction uses shared hover/selection tokens without text inversion.
   Titles and meta stay readable on the light Navigator pane surface. */
.ssn-shell .ssn-space-nav button,
.ssn-shell .ssn-space-nav button:hover,
.ssn-shell .ssn-space-nav button:focus,
.ssn-shell .ssn-space-nav button:focus-visible,
.ssn-shell .ssn-space-nav button.is-active,
.ssn-shell .ssn-space-nav button.is-active:hover,
.ssn-shell .ssn-space-nav button.is-active:focus {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-space-nav button strong,
.ssn-shell .ssn-space-nav button:hover strong,
.ssn-shell .ssn-space-nav button:focus strong,
.ssn-shell .ssn-space-nav button:focus-visible strong,
.ssn-shell .ssn-space-nav button.is-active strong,
.ssn-shell .ssn-space-nav button.is-active:hover strong,
.ssn-shell .ssn-space-nav button.is-active:focus strong {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-space-nav button small,
.ssn-shell .ssn-space-nav button:hover small,
.ssn-shell .ssn-space-nav button:focus small,
.ssn-shell .ssn-space-nav button:focus-visible small,
.ssn-shell .ssn-space-nav button.is-active small,
.ssn-shell .ssn-space-nav button.is-active:hover small,
.ssn-shell .ssn-space-nav button.is-active:focus small {
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-space-nav button .ssn-ui-icon,
.ssn-shell .ssn-space-nav button:hover .ssn-ui-icon,
.ssn-shell .ssn-space-nav button:focus .ssn-ui-icon,
.ssn-shell .ssn-space-nav button:focus-visible .ssn-ui-icon,
.ssn-shell .ssn-space-nav button.is-active .ssn-ui-icon,
.ssn-shell .ssn-space-nav button.is-active:hover .ssn-ui-icon,
.ssn-shell .ssn-space-nav button.is-active:focus .ssn-ui-icon {
    color: var(--ssn-colour-icon);
}
.ssn-shell .ssn-space-nav button {
    width: 100%;
}


/* v2.02.10 Relationship Record Open Lock
   Relationship cards open records inside the existing shared workspace shell.
   This adds no new shell, router, pane, button or card system. */
.ssn-shell .ssn-relationship-record {
    grid-column: 1 / -1;
    display: grid;
    gap: var(--ssn-space-md);
    align-content: start;
}
.ssn-shell .ssn-relationship-back {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    justify-self: start;
    padding: 0;
    cursor: pointer;
    transition: color var(--ssn-transition-fast);
}
.ssn-shell .ssn-relationship-back:hover,
.ssn-shell .ssn-relationship-back:focus {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-relationship-record-hero {
    gap: var(--ssn-space-sm);
}
.ssn-shell .ssn-relationship-record-hero .ssn-button {
    justify-self: start;
    margin-top: var(--ssn-space-xs);
}
.ssn-shell .ssn-relationship-record-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ssn-space-sm);
}
.ssn-shell .ssn-relationship-record-fact {
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-card);
    background: var(--ssn-colour-surface);
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    display: grid;
    gap: var(--ssn-space-xs);
}
.ssn-shell .ssn-relationship-record-fact span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-shell .ssn-relationship-record-fact strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    line-height: 1.25;
}
@media (max-width: 1180px) {
    .ssn-shell .ssn-relationship-record-grid {
        grid-template-columns: 1fr;
    }
}


/* v2.02.14 Project Header Scope and Context Rail Rules Lock
   The shared Space typography contract must not leak into the original Project Workspace.
   Project titles own their own readable title style even when opened from Relationships or Operations. */
.ssn-shell.ssn-project-detail-open .ssn-project-titlebar h1,
.ssn-shell.ssn-project-detail-open .ssn-project-detail-header h1 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-family: var(--ssn-font-family);
    font-size: clamp(20px, 1.65vw, 28px);
    line-height: 1.12;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: -0.02em;
    text-transform: none;
    overflow-wrap: anywhere;
}
.ssn-shell.ssn-project-detail-open .ssn-project-titlebar {
    align-items: flex-start;
}
.ssn-shell.ssn-project-detail-open .ssn-project-titlebar p,
.ssn-shell.ssn-project-detail-open .ssn-project-detail-header p,
.ssn-shell.ssn-project-detail-open .ssn-project-detail-header small {
    letter-spacing: 0;
    text-transform: none;
}
.ssn-shell.ssn-project-detail-open .ssn-project-pane-heading,
.ssn-shell.ssn-project-detail-open .ssn-project-nav h2,
.ssn-shell.ssn-project-detail-open .ssn-project-nav h3,
.ssn-shell.ssn-project-detail-open .ssn-project-overview-head h2 {
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
}

/* v2.02.15 Operations Explorer Data Lock
   Project detail titles are owned by the project workspace, not Space pane typography. */
.ssn-shell.ssn-project-detail-open [data-ssn-detail-title],
.ssn-shell.ssn-project-detail-open .ssn-project-detail-header [data-ssn-detail-title],
.ssn-shell.ssn-project-detail-open .ssn-project-title-row [data-ssn-detail-title] {
    margin: 8px 0 8px;
    padding: 0;
    max-width: min(100%, 760px);
    color: var(--ssn-colour-text);
    font-family: var(--ssn-font-family);
    font-size: clamp(20px, 1.65vw, 28px);
    line-height: 1.12;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: -0.02em;
    text-transform: none;
    word-spacing: normal;
    overflow-wrap: anywhere;
}
.ssn-shell.ssn-project-detail-open .ssn-project-title-row {
    align-items: center;
    gap: var(--ssn-space-sm);
}

/* v2.03.01 Universal Workspace Framework + solid spoke hover lock
   The wheel remains token-owned, but hover states must not show transparent
   spoke surfaces or alpha blending over the orbit. */
.ssn-shell .ssn-orbit button.ssn-spoke,
.ssn-shell .ssn-spoke,
.ssn-shell .ssn-space-spoke,
.ssn-shell .ssn-reports-spoke,
.ssn-shell .ssn-more-orbit .ssn-spoke,
.ssn-shell .ssn-settings-orbit .ssn-spoke {
    opacity: 1;
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    background-image: none;
}
.ssn-shell .ssn-orbit button.ssn-spoke:hover,
.ssn-shell .ssn-spoke:hover,
.ssn-shell .ssn-space-spoke:hover,
.ssn-shell .ssn-reports-spoke:hover,
.ssn-shell .ssn-more-orbit .ssn-spoke:hover,
.ssn-shell .ssn-settings-orbit .ssn-spoke:hover,
.ssn-shell .ssn-orbit button.ssn-spoke:focus-visible,
.ssn-shell .ssn-spoke:focus-visible,
.ssn-shell .ssn-space-spoke:focus-visible,
.ssn-shell .ssn-reports-spoke:focus-visible,
.ssn-shell .ssn-more-orbit .ssn-spoke:focus-visible,
.ssn-shell .ssn-settings-orbit .ssn-spoke:focus-visible {
    opacity: 1;
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    background-image: none;
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-spoke *,
.ssn-shell .ssn-space-spoke *,
.ssn-shell .ssn-reports-spoke * {
    opacity: 1;
}

.ssn-shell .ssn-universal-workspace {
    grid-column: 1 / -1;
    display: grid;
    gap: var(--ssn-space-md);
    align-content: start;
    min-width: 0;
}
.ssn-shell .ssn-universal-workspace-hero {
    gap: var(--ssn-space-xs);
}
.ssn-shell .ssn-universal-workspace-hero strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-large);
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
}
.ssn-shell .ssn-universal-workspace-hero .ssn-button {
    justify-self: start;
    margin-top: var(--ssn-space-sm);
    text-decoration: none;
}
.ssn-shell .ssn-universal-workspace-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ssn-space-sm);
    border-bottom: 1px solid var(--ssn-colour-line);
    padding-bottom: var(--ssn-space-sm);
}
.ssn-shell .ssn-universal-workspace-tab {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-universal-workspace-tab.is-active {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-universal-workspace-section {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-universal-workspace-section header {
    display: grid;
    gap: var(--ssn-space-xs);
}
.ssn-shell .ssn-universal-workspace-section header strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    line-height: 1.25;
}


/* v2.03.02 Context Rail Action Mode Lock
   Card selection keeps the user in the current View. The right rail becomes the
   action surface and can open the full Project Workspace only when requested. */
.ssn-shell .ssn-context-rail-actions {
    display: grid;
    gap: var(--ssn-space-sm);
    margin-top: var(--ssn-space-md);
}
.ssn-shell .ssn-context-rail-actions[hidden] {
    display: none;
}
.ssn-shell .ssn-context-rail-actions .ssn-button,
.ssn-shell .ssn-context-rail-actions button.ssn-button,
.ssn-shell .ssn-context-rail-actions a.ssn-button {
    width: 100%;
    justify-content: center;
    min-height: 38px;
    text-decoration: none;
}
.ssn-shell .ssn-context-rail-actions .ssn-button-ghost {
    background: transparent;
    border: 1px solid var(--ssn-colour-line);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-actions .ssn-button-ghost:hover,
.ssn-shell .ssn-context-rail-actions .ssn-button-ghost:focus-visible {
    background: var(--ssn-colour-hover);
    color: var(--ssn-colour-text);
}

/* v2.03.03 Context Rail Action Cockpit Lock
   The right rail is an action cockpit. Selected cards show compact context,
   useful facts, a rail-contained activity overlay and bottom actions. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail] h2 {
    margin-bottom: var(--ssn-space-sm);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail] > p {
    margin-top: 0;
    margin-bottom: var(--ssn-space-md);
    line-height: 1.35;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode > dl {
    display: none;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-rail-description] {
    margin-bottom: var(--ssn-space-md);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-relationship-rail-selection {
    margin-top: 0;
    padding-top: var(--ssn-space-md);
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-relationship-rail-selection [data-ssn-meta],
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-relationship-rail-selection [data-ssn-relationship-selection-title],
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-relationship-rail-selection [data-ssn-relationship-selection-meta] {
    display: none;
}
.ssn-shell .ssn-context-rail-details {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-details[hidden] {
    display: none;
}
.ssn-shell .ssn-context-rail-details div {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
    gap: var(--ssn-space-sm);
    padding: var(--ssn-space-sm) 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-details div:last-child {
    border-bottom: 0;
}
.ssn-shell .ssn-context-rail-details dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.3;
}
.ssn-shell .ssn-context-rail-details dd {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.3;
    text-align: right;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions {
    margin-top: auto;
    padding-top: var(--ssn-space-md);
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-activity {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: var(--ssn-space-md);
    padding: var(--ssn-project-pane-pad-top, 28px) var(--ssn-space-lg) var(--ssn-space-lg);
    background: var(--ssn-colour-surface);
    border-radius: inherit;
    box-shadow: var(--ssn-shadow-soft);
}
.ssn-shell .ssn-context-rail-activity[hidden] {
    display: none;
}
.ssn-shell .ssn-context-rail-activity header {
    display: grid;
    gap: var(--ssn-space-sm);
    padding-bottom: var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-back {
    justify-self: start;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
    padding: 0;
}
.ssn-shell .ssn-context-rail-activity h2 {
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-pane-heading-size);
    font-weight: var(--ssn-pane-heading-weight);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
}
.ssn-shell .ssn-context-rail-activity p {
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.4;
}
.ssn-shell .ssn-context-rail-activity-feed {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    display: grid;
    gap: var(--ssn-space-sm);
    align-content: start;
    scrollbar-width: thin;
}
.ssn-shell .ssn-context-rail-activity-item,
.ssn-shell .ssn-context-rail-empty {
    display: grid;
    gap: var(--ssn-space-xs);
    padding: var(--ssn-space-sm) 0;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-activity-item strong,
.ssn-shell .ssn-context-rail-empty strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
}
.ssn-shell .ssn-context-rail-activity-item small,
.ssn-shell .ssn-context-rail-empty small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.4;
}

/* v2.03.04 Card Date Logic and Renewal Rules Lock
   Queue cards share one scan pattern: status/type left, date/deadline right,
   title below, then account and next action meta. Activity overlay is a real
   opaque rail surface, not a transparent layer over action controls. */
.ssn-shell .ssn-workspace-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ssn-space-sm);
    min-width: 0;
}
.ssn-shell .ssn-workspace-card-top [data-ssn-meta] {
    min-width: 0;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-workspace-card-top time {
    flex: 0 0 auto;
    max-width: 46%;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.25;
    text-align: right;
    white-space: normal;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode h2 {
    margin-bottom: var(--ssn-space-xs);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode > p {
    margin-bottom: var(--ssn-space-sm);
}
.ssn-shell .ssn-context-rail-activity {
    background: var(--ssn-colour-pane-bg);
    background-color: var(--ssn-colour-pane-bg);
    opacity: 1;
    backdrop-filter: none;
    border: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-activity * {
    opacity: 1;
}
.ssn-shell .ssn-context-rail-activity-open .ssn-context-rail-actions {
    pointer-events: none;
}

/* v2.04.00 Workflow Intelligence Engine
   View Modes live in the shared workspace header. Pipeline and Renewals render
   grouped work queues from Next Action Date, not record/deadline dates. */
.ssn-shell .ssn-space-workspace-header {
    position: relative;
}
.ssn-shell .ssn-view-mode-bar {
    position: absolute;
    top: 0;
    right: 0;
    display: inline-flex;
    align-items: center;
    gap: var(--ssn-space-xs);
    padding: var(--ssn-space-2xs, 2px);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-pane-bg);
}
.ssn-shell .ssn-view-mode-item {
    appearance: none;
    border: 0;
    border-radius: var(--ssn-radius-pill);
    background: transparent;
    color: var(--ssn-colour-muted);
    cursor: pointer;
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1;
    padding: var(--ssn-space-xs) var(--ssn-space-sm);
    transition: background var(--ssn-transition-fast), color var(--ssn-transition-fast);
}
.ssn-shell .ssn-view-mode-item:hover,
.ssn-shell .ssn-view-mode-item.is-active {
    background: var(--ssn-colour-soft-bg);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-workflow-queue-group {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--ssn-space-md);
    padding-top: var(--ssn-space-sm);
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-workflow-queue-group:first-child,
.ssn-shell .ssn-index-bar + .ssn-workflow-queue-group {
    border-top: 0;
    padding-top: 0;
}
.ssn-shell .ssn-workflow-queue-group > header {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-sm);
    min-width: 0;
}
.ssn-shell .ssn-workflow-queue-group > header strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: var(--ssn-letter-spacing-meta, .04em);
    text-transform: uppercase;
}
.ssn-shell .ssn-workflow-queue-group > header small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
@media (max-width: 980px) {
    .ssn-shell .ssn-view-mode-bar {
        position: static;
        margin-top: var(--ssn-space-sm);
        width: max-content;
        max-width: 100%;
        flex-wrap: wrap;
    }
}


/* v2.05.01 Action Cockpit Polish
   Context Rail is an action cockpit. Activity must be a solid rail pane, and
   action controls use the same calm three-button footer pattern as the Project rail. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode {
    isolation: isolate;
    background: var(--ssn-colour-pane-bg, #ffffff);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode h2 {
    margin-bottom: 6px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode > p {
    margin-top: 0;
    margin-bottom: var(--ssn-space-md);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode > dl,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-space-summary],
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-view-summary],
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-workspace-status] {
    display: none;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-relationship-rail-selection {
    padding-top: 0;
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: auto;
    padding-top: 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions[hidden] {
    display: none;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button {
    width: 100%;
    min-height: 48px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ssn-colour-text);
    box-shadow: none;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button + .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button + button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button + a.ssn-button {
    border-left: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button:hover,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button:focus-visible {
    background: var(--ssn-colour-hover);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-activity {
    position: absolute;
    inset: 0;
    z-index: 20;
    background: #ffffff;
    background-color: #ffffff;
    opacity: 1;
    mix-blend-mode: normal;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid var(--ssn-colour-line);
    border-radius: inherit;
    box-shadow: var(--ssn-shadow-soft);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-activity::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: #ffffff;
}
.ssn-shell .ssn-context-rail-activity[hidden] {
    display: none !important;
}
.ssn-shell .ssn-context-rail-activity-open .ssn-context-rail-actions {
    opacity: 1;
    pointer-events: none;
}

/* v2.05.02 Action Cockpit Architecture Lock
   The Context Rail dock behaves like an integrated OS control strip. Activity
   slides over the rail as a solid sheet and splits human comms from system log. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-relationship-rail-selection {
    flex: 1 1 auto;
    min-height: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details {
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions {
    flex: 0 0 auto;
    margin-left: calc(var(--ssn-space-lg) * -1);
    margin-right: calc(var(--ssn-space-lg) * -1);
    margin-bottom: calc(var(--ssn-space-lg) * -1);
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-pane-bg, #ffffff);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 0 var(--ssn-space-sm);
    border-radius: 0;
    text-align: center;
    transition: background var(--ssn-transition-fast), box-shadow var(--ssn-transition-fast), transform var(--ssn-transition-fast);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button:hover,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button:focus-visible {
    background: var(--ssn-colour-control-bg-hover, var(--ssn-colour-soft-bg));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.ssn-shell .ssn-context-rail-activity {
    transform: translateX(0);
    background: var(--ssn-colour-pane-bg, #ffffff) !important;
    background-color: var(--ssn-colour-pane-bg, #ffffff) !important;
    opacity: 1 !important;
    border: 1px solid var(--ssn-colour-line);
    transition: transform var(--ssn-transition-base, .22s ease), opacity var(--ssn-transition-fast);
}
.ssn-shell .ssn-context-rail-activity[hidden] {
    display: none !important;
}
.ssn-shell .ssn-context-rail-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin-top: var(--ssn-space-xs);
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-pill);
    background: var(--ssn-colour-soft-bg);
    overflow: hidden;
}
.ssn-shell .ssn-context-rail-tabs button {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-muted);
    cursor: pointer;
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    min-height: 34px;
    padding: 0 var(--ssn-space-sm);
    transition: background var(--ssn-transition-fast), color var(--ssn-transition-fast);
}
.ssn-shell .ssn-context-rail-tabs button + button {
    border-left: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-tabs button.is-active,
.ssn-shell .ssn-context-rail-tabs button:hover,
.ssn-shell .ssn-context-rail-tabs button:focus-visible {
    background: var(--ssn-colour-pane-bg, #ffffff);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-tabs span {
    color: var(--ssn-colour-muted);
    font-weight: var(--ssn-font-weight-regular, 500);
}

/* v2.05.03 Unified Action Cockpit Lock
   Cockpit facts use quiet spacing instead of stacked dividers. The dock is a
   full-width integrated control strip and the activity sheet uses one compact
   Back / Comms / System row while reading the shared project activity source. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details {
    display: grid;
    gap: var(--ssn-space-sm);
    border-top: 0;
    border-bottom: 0;
    padding: var(--ssn-space-xs) 0 var(--ssn-space-sm);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details div {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1fr);
    align-items: start;
    gap: var(--ssn-space-sm);
    padding: 0;
    border-bottom: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details dd {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.35;
    text-align: right;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions {
    border-top: 0;
    padding-top: 0;
    gap: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button {
    min-height: 54px;
    border-top: 1px solid var(--ssn-colour-line);
    border-left: 0;
    padding: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button + .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button + button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button + a.ssn-button {
    border-left: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-context-rail-activity {
    display: flex;
    flex-direction: column;
    gap: var(--ssn-space-md);
    padding: var(--ssn-space-lg);
    background: var(--ssn-colour-pane-bg, #ffffff) !important;
    box-shadow: none;
}
.ssn-shell .ssn-context-rail-activity[hidden] {
    display: none !important;
}
.ssn-shell .ssn-context-rail-activity-top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--ssn-space-sm);
    min-height: 36px;
}
.ssn-shell .ssn-context-rail-activity-top .ssn-context-rail-back {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-muted);
    cursor: pointer;
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    padding: 0;
    white-space: nowrap;
}
.ssn-shell .ssn-context-rail-activity-top .ssn-context-rail-back:hover,
.ssn-shell .ssn-context-rail-activity-top .ssn-context-rail-back:focus-visible {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-activity-top .ssn-context-rail-tabs {
    margin-top: 0;
    min-width: 0;
}
.ssn-shell .ssn-context-rail-activity-feed {
    display: grid;
    gap: var(--ssn-space-md);
    overflow: auto;
    min-height: 0;
    padding-right: var(--ssn-space-xs);
}
.ssn-shell .ssn-context-rail-activity-item {
    display: grid;
    gap: 3px;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
}
.ssn-shell .ssn-context-rail-activity-item time {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.2;
}
.ssn-shell .ssn-context-rail-activity-item strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    line-height: 1.25;
}
.ssn-shell .ssn-context-rail-activity-item small,
.ssn-shell .ssn-context-rail-empty small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.4;
}
.ssn-shell .ssn-context-rail-empty {
    display: grid;
    gap: var(--ssn-space-xs);
    padding-top: var(--ssn-space-sm);
}

/* v2.05.04 Unified Activity Engine & Decision Cockpit Lock
   The Action Cockpit and full Project footer share one segmented dock pattern.
   Activity tabs are quiet text controls and the cockpit reads the canonical
   project activity source before reporting empty comms or system logs. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-rail-description] {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.35;
    margin-bottom: var(--ssn-space-lg);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details {
    gap: var(--ssn-space-sm);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details div[data-ssn-fact-row="health"] dd[data-ssn-health="overdue"],
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details div[data-ssn-fact-row="health"][data-ssn-fact-value*="overdue"] dd {
    color: var(--ssn-colour-danger-text);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details div[data-ssn-fact-row="health"][data-ssn-fact-value*="attention"] dd,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details div[data-ssn-fact-row="health"][data-ssn-fact-value*="due"] dd,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details div[data-ssn-fact-row="priority"][data-ssn-fact-value*="high"] dd {
    color: var(--ssn-colour-attention);
}
.ssn-shell .ssn-context-rail-activity-top {
    grid-template-columns: auto minmax(0, 1fr);
    border-bottom: 1px solid var(--ssn-colour-line);
    padding-bottom: var(--ssn-space-sm);
}
.ssn-shell .ssn-context-rail-tabs {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--ssn-space-md);
    border: 0;
    border-radius: 0;
    background: transparent;
    margin: 0;
    overflow: visible;
}
.ssn-shell .ssn-context-rail-tabs button {
    appearance: none;
    position: relative;
    border: 0;
    border-radius: 0;
    background: transparent;
    min-height: 30px;
    padding: 0;
    color: var(--ssn-colour-muted);
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    cursor: pointer;
}
.ssn-shell .ssn-context-rail-tabs button + button {
    border-left: 0;
}
.ssn-shell .ssn-context-rail-tabs button::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: transparent;
}
.ssn-shell .ssn-context-rail-tabs button.is-active,
.ssn-shell .ssn-context-rail-tabs button:hover,
.ssn-shell .ssn-context-rail-tabs button:focus-visible {
    background: transparent;
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-tabs button.is-active::after {
    background: var(--ssn-colour-text);
}
.ssn-shell .ssn-context-rail-tabs span {
    color: var(--ssn-colour-muted);
    font-weight: var(--ssn-font-weight-normal);
}
.ssn-shell .ssn-context-rail-activity-feed {
    gap: var(--ssn-space-lg);
}
.ssn-shell .ssn-context-rail-activity-item {
    gap: 4px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions,
.ssn-shell .ssn-project-action-footer {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    align-items: stretch;
    background: var(--ssn-colour-pane-bg, #ffffff);
    border-top: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button,
.ssn-shell .ssn-project-action-footer button {
    min-width: 0;
    width: 100%;
    min-height: 54px;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    box-shadow: none;
    font: inherit;
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-strong);
    text-align: center;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 var(--ssn-space-sm);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button + .ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-button + button.ssn-button,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions a.ssn-button + a.ssn-button,
.ssn-shell .ssn-project-action-footer button + button {
    border-left: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button:hover,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-button:focus-visible,
.ssn-shell .ssn-project-action-footer button:hover,
.ssn-shell .ssn-project-action-footer button:focus-visible {
    background: var(--ssn-colour-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-pause-project],
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-remove-project-link],
.ssn-shell .ssn-project-detail-summary .ssn-project-action-footer button[data-ssn-mark-lost] {
    border-top: 1px solid var(--ssn-colour-line);
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
}

/* v2.05.07 Home Workflow Mission Control Lock
   Home left pane is Mission Control: grouped workflow queues, not a stats panel. */
.ssn-shell .ssn-home-mission-control {
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-home-mission-control > h2 {
    margin-bottom: var(--ssn-space-xs);
}
.ssn-shell .ssn-focus-section {
    display: grid;
    gap: 2px;
    margin: 0;
}
.ssn-shell .ssn-focus-section + .ssn-focus-section {
    margin-top: var(--ssn-space-md);
}
.ssn-shell .ssn-focus-section > h3 {
    margin: 0 var(--ssn-space-md) 4px;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-xs);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: var(--ssn-letter-spacing-wide);
    text-transform: uppercase;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row {
    min-height: 54px;
}

/* v2.05.08 Home Shell Mission Control Pass
   Home panes behave as Navigator OS surfaces: left is attention, centre is wheel/queue,
   right is agenda. Rows are queue launchers, not stacked cards. */
.ssn-shell .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-home-mission-control,
.ssn-shell [data-ssn-home-grid] .ssn-agenda-card {
    padding: var(--ssn-space-lg) 0;
}
.ssn-shell .ssn-home-mission-control > h2,
.ssn-shell .ssn-agenda-card .ssn-agenda-header {
    padding-left: var(--ssn-space-lg);
    padding-right: var(--ssn-space-lg);
}
.ssn-shell .ssn-home-mission-control > h2 {
    margin: 0 0 var(--ssn-space-md);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ssn-shell .ssn-focus-section {
    gap: 0;
}
.ssn-shell .ssn-focus-section + .ssn-focus-section {
    margin-top: var(--ssn-space-lg);
    padding-top: var(--ssn-space-md);
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-focus-section > h3 {
    margin: 0 0 6px;
    padding: 0 var(--ssn-space-lg);
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row {
    margin: 0;
    min-height: 46px;
    padding: 8px var(--ssn-space-lg);
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row:hover,
.ssn-shell .ssn-home-mission-control .ssn-signal-row:focus-visible,
.ssn-shell .ssn-home-mission-control .ssn-signal-row.is-active {
    background: var(--ssn-colour-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row strong {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row small,
.ssn-shell .ssn-home-mission-control .ssn-signal-row .ssn-chevron {
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-home-mission-control .ssn-signal-icon {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--ssn-colour-icon);
}
.ssn-shell .ssn-agenda-card .ssn-agenda-list {
    padding-left: 0;
    padding-right: 0;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row {
    margin: 0;
    padding-left: var(--ssn-space-lg);
    padding-right: var(--ssn-space-lg);
    border-radius: 0;
    border: 0;
    background: transparent;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row:hover,
.ssn-shell .ssn-agenda-card .ssn-agenda-row:focus-visible {
    background: var(--ssn-colour-hover);
    outline: none;
}
.ssn-shell.ssn-agenda-open [data-ssn-home-grid] .ssn-agenda-workspace {
    display: flex;
    grid-column: 2;
    grid-row: 1;
    height: 100%;
    min-height: 0;
    align-self: stretch;
    flex-direction: column;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-panel);
    background: var(--ssn-colour-surface);
    box-shadow: var(--ssn-shadow-panel);
}
.ssn-shell.ssn-agenda-open [data-ssn-home-grid] > .ssn-hub {
    display: none;
}
.ssn-shell .ssn-agenda-workspace .ssn-agenda-full-list {
    min-height: 0;
    overflow: hidden auto;
}

/* v2.06.00 Navigator Shell Unification
   One rail language across Home and Spaces. Home is a launch surface, not a separate UI system. */
.ssn-shell .ssn-home-mission-control,
.ssn-shell .ssn-space-nav,
.ssn-shell .ssn-agenda-card,
.ssn-shell .ssn-space-overview {
    --ssn-rail-pad-x: var(--ssn-space-lg);
}
.ssn-shell .ssn-home-mission-control,
.ssn-shell .ssn-space-nav {
    padding: var(--ssn-space-lg) 0;
}
.ssn-shell .ssn-home-mission-control > h2,
.ssn-shell .ssn-space-nav h2,
.ssn-shell .ssn-agenda-card .ssn-agenda-header h2,
.ssn-shell .ssn-space-overview h2 {
    padding: 0 var(--ssn-rail-pad-x);
    margin: 0 0 var(--ssn-space-lg);
    font-size: var(--ssn-font-size-small);
    font-weight: var(--ssn-pane-heading-weight);
    letter-spacing: var(--ssn-pane-heading-letter-spacing);
    text-transform: var(--ssn-pane-heading-transform);
    line-height: 1.3;
}
.ssn-shell .ssn-space-nav p {
    margin: calc(-1 * var(--ssn-space-sm)) var(--ssn-rail-pad-x) var(--ssn-space-lg);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.45;
}
.ssn-shell .ssn-focus-section,
.ssn-shell .ssn-space-nav-group {
    display: block;
}
.ssn-shell .ssn-focus-section + .ssn-focus-section,
.ssn-shell .ssn-space-nav h3:not(:first-child) {
    border-top: 1px solid var(--ssn-colour-line);
    margin-top: var(--ssn-space-md);
    padding-top: var(--ssn-space-md);
}
.ssn-shell .ssn-focus-section > h3,
.ssn-shell .ssn-space-nav h3 {
    margin: 0 0 6px;
    padding: 0 var(--ssn-rail-pad-x);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .22em;
    text-transform: uppercase;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row,
.ssn-shell .ssn-space-nav button {
    width: 100%;
    min-height: 52px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--ssn-space-sm);
    margin: 0;
    padding: 8px var(--ssn-rail-pad-x);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--ssn-colour-text);
    text-align: left;
    text-decoration: none;
}
.ssn-shell .ssn-space-nav button {
    font: inherit;
    cursor: pointer;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-row:hover,
.ssn-shell .ssn-home-mission-control .ssn-signal-row:focus-visible,
.ssn-shell .ssn-home-mission-control .ssn-signal-row.is-active,
.ssn-shell .ssn-space-nav button:hover,
.ssn-shell .ssn-space-nav button:focus-visible,
.ssn-shell .ssn-space-nav button.is-active {
    background: var(--ssn-colour-hover);
    color: var(--ssn-colour-text);
    outline: none;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-icon,
.ssn-shell .ssn-space-nav button .ssn-ui-icon {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--ssn-colour-icon);
}
.ssn-shell .ssn-home-mission-control .ssn-signal-copy,
.ssn-shell .ssn-space-nav button > span:last-child {
    min-width: 0;
    display: block;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-copy strong,
.ssn-shell .ssn-space-nav button strong {
    display: block;
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.25;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-copy small,
.ssn-shell .ssn-space-nav button small {
    display: block;
    margin-top: 3px;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.28;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    -webkit-line-clamp: unset;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-home-mission-control .ssn-chevron {
    align-self: center;
    color: var(--ssn-colour-muted);
}
.ssn-shell .ssn-agenda-card {
    padding: var(--ssn-space-lg) 0;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-md);
    padding: 0 var(--ssn-rail-pad-x) var(--ssn-space-md);
    margin: 0;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-header h2 {
    padding: 0;
    margin: 0;
}
.ssn-shell .ssn-agenda-group {
    margin: 0;
    padding: 0;
}
.ssn-shell .ssn-agenda-group + .ssn-agenda-group {
    border-top: 1px solid var(--ssn-colour-line);
    margin-top: var(--ssn-space-sm);
    padding-top: var(--ssn-space-sm);
}
.ssn-shell .ssn-agenda-group h3 {
    margin: 0 0 4px;
    padding: 0 var(--ssn-rail-pad-x);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) 14px;
    align-items: center;
    gap: var(--ssn-space-sm);
    min-height: 58px;
    margin: 0;
    padding: 8px var(--ssn-rail-pad-x);
    border: 0;
    border-radius: 0;
    background: transparent;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row:hover,
.ssn-shell .ssn-agenda-card .ssn-agenda-row:focus-visible {
    background: var(--ssn-colour-hover);
    outline: none;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-copy strong,
.ssn-shell .ssn-agenda-card .ssn-agenda-copy small {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-agenda-workspace .ssn-workspace-head {
    align-items: center;
}
.ssn-shell .ssn-agenda-workspace .ssn-agenda-group {
    padding: 0 var(--ssn-space-xl) var(--ssn-space-md);
}
.ssn-shell .ssn-agenda-workspace .ssn-agenda-group h3 {
    margin: var(--ssn-space-md) 0 var(--ssn-space-sm);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ssn-shell .ssn-space-overview dl > div:has([data-ssn-space-summary]),
.ssn-shell .ssn-space-overview dl > div:has([data-ssn-view-summary]),
.ssn-shell .ssn-space-overview dl > div:has([data-ssn-workspace-status]) {
    display: none;
}


/* v2.06.01 Home Queue & Shell Unification Repair */
.ssn-shell .ssn-home-mission-control,
.ssn-shell .ssn-project-nav,
.ssn-shell [data-ssn-space-panel] {
    min-width: 0;
}
.ssn-shell .ssn-signal-row,
.ssn-shell .ssn-home-mission-control .ssn-signal-row,
.ssn-shell .ssn-project-nav button,
.ssn-shell [data-ssn-space-view] {
    min-width: 0;
    white-space: normal;
    overflow: visible;
}
.ssn-shell .ssn-signal-copy,
.ssn-shell .ssn-signal-copy strong,
.ssn-shell .ssn-signal-copy small,
.ssn-shell .ssn-project-nav button span,
.ssn-shell .ssn-project-nav button strong,
.ssn-shell [data-ssn-space-view] span,
.ssn-shell [data-ssn-space-view] strong {
    min-width: 0;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row,
.ssn-shell .ssn-agenda-full-row {
    align-items: start;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row .ssn-agenda-copy,
.ssn-shell .ssn-agenda-full-row span:not(.ssn-agenda-time) {
    min-width: 0;
    white-space: normal;
    overflow: visible;
}
.ssn-shell .ssn-agenda-time {
    line-height: 1.15;
    white-space: normal;
}
.ssn-shell .ssn-agenda-time small {
    display: block;
    margin-top: 2px;
}


/* v2.06.02 Home Queue Repair: agenda rows keep time/date in their own lane so Tomorrow cannot overlap copy. */
.ssn-shell .ssn-agenda-card .ssn-agenda-row,
.ssn-shell .ssn-agenda-full-row {
    display: grid;
    grid-template-columns: minmax(58px, 72px) minmax(0, 1fr) 14px;
    column-gap: var(--ssn-space-sm);
    align-items: start;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row .ssn-agenda-time,
.ssn-shell .ssn-agenda-full-row .ssn-agenda-time {
    width: auto;
    min-width: 0;
    max-width: 72px;
    overflow-wrap: normal;
    word-break: normal;
    white-space: normal;
    flex: none;
}
.ssn-shell .ssn-agenda-card .ssn-agenda-row .ssn-agenda-copy,
.ssn-shell .ssn-agenda-full-row span:not(.ssn-agenda-time) {
    min-width: 0;
    overflow: visible;
}


/* v2.06.05 Router Priority, Shared View Mode and Typography Repair
   One shared rail/workspace typography language across Home, Relationships and Operations. */
.ssn-shell .ssn-home-mission-control,
.ssn-shell .ssn-space-nav,
.ssn-shell .ssn-agenda-card,
.ssn-shell .ssn-space-centre,
.ssn-shell .ssn-space-overview {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-space-nav {
    overflow: hidden auto;
    scrollbar-gutter: stable;
}
.ssn-shell .ssn-space-workspace-header h2,
.ssn-shell .ssn-space-centre .ssn-space-workspace-header h2 {
    margin: 0;
    padding: 0;
}
.ssn-shell .ssn-space-workspace-header {
    min-height: 48px;
    padding: var(--ssn-space-lg) var(--ssn-space-lg) var(--ssn-space-md);
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-workspace-header.has-view-modes {
    padding-right: min(56%, 360px);
}
.ssn-shell .ssn-space-nav p,
.ssn-shell .ssn-space-workspace-header p,
.ssn-shell .ssn-space-overview p,
.ssn-shell .ssn-home-mission-control .ssn-signal-copy small,
.ssn-shell .ssn-space-nav button small,
.ssn-shell .ssn-workspace-card small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-focus-section > h3,
.ssn-shell .ssn-space-nav h3,
.ssn-shell .ssn-workflow-queue-group > header strong {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .22em;
    text-transform: uppercase;
}
.ssn-shell .ssn-home-mission-control .ssn-signal-copy strong,
.ssn-shell .ssn-space-nav button strong,
.ssn-shell .ssn-workspace-card strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.25;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-view-mode-bar {
    z-index: 3;
    flex-wrap: wrap;
    max-width: calc(100% - var(--ssn-space-lg) * 2);
}
.ssn-shell .ssn-workspace-view-mode-row {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    padding: 0 0 var(--ssn-space-sm);
}
.ssn-shell .ssn-workspace-view-mode-row .ssn-view-mode-bar {
    position: static;
    max-width: 100%;
}
.ssn-shell .ssn-space-workspace-header > .ssn-view-mode-bar {
    position: absolute;
    top: var(--ssn-space-md);
    right: var(--ssn-space-lg);
}
@media (max-width: 1180px) {
    .ssn-shell .ssn-space-workspace-header.has-view-modes { padding-right: var(--ssn-space-lg); }
    .ssn-shell .ssn-space-workspace-header > .ssn-view-mode-bar { display: none; }
    .ssn-shell .ssn-workspace-view-mode-row { justify-content: flex-start; }
}
.ssn-shell .ssn-shared-back-control {
    grid-row: 1 / span 3;
    grid-column: 1;
    align-self: start;
    width: 36px;
    height: 36px;
    border-radius: var(--ssn-radius-control);
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-pane-bg);
    color: var(--ssn-colour-text);
    font-size: 24px;
    line-height: 1;
}
.ssn-shell .ssn-home-shared-queue-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.ssn-shell .ssn-home-shared-queue-card em {
    display: block;
    margin-top: var(--ssn-space-sm);
    color: var(--ssn-colour-text);
    font-style: normal;
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell .ssn-home-shared-queue-card.is-selected,
.ssn-shell .ssn-home-shared-queue-card:focus-visible {
    outline: 2px solid var(--ssn-colour-focus);
    outline-offset: 2px;
}

/* v2.07.02 Home Queue Engine Removal
   Home Mission Control docks the real shared Spaces Workspace into the centre
   hub. The private Home queue renderer is no longer displayed. */
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    height: 100%;
    min-height: 0;
    opacity: 1;
    visibility: visible;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked[aria-hidden="false"] {
    display: grid;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked .ssn-space-nav,
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked .ssn-space-overview {
    display: none;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked .ssn-space-centre {
    grid-column: 1;
    min-width: 0;
    height: 100%;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked .ssn-space-workspace-shell {
    height: 100%;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-docked .ssn-space-workspace-header {
    position: relative;
    padding-left: 64px;
}
.ssn-home-shared-workspace-back {
    position: absolute;
    left: 16px;
    top: 18px;
}
.ssn-shell .ssn-hub.is-queue-open > [data-ssn-spaces-workspace].ssn-home-workspace-docked {
    pointer-events: auto;
}


/* v2.07.02 Home Queue Engine Removal
   Home queues now use the normal Spaces grid and shared centre workspace.
   The shared workspace is never docked inside the wheel hub. */
.ssn-shell.ssn-home-workspace-open [data-ssn-home-grid] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active {
    display: grid;
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    width: auto;
    height: auto;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-nav,
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-overview {
    display: flex;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-centre {
    grid-column: auto;
    min-width: 0;
    height: auto;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-workspace-header {
    position: relative;
    padding-left: 64px;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-signal-row,
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel a[href^="#"] {
    width: 100%;
    text-align: left;
}
.ssn-shell [data-ssn-workspace-cards] [data-ssn-workspace-view-mode-row] {
    display: none;
}

/* v2.07.04 Hash Route Removal and Home Event Lock */
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-workspace-header {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    column-gap: var(--ssn-space-md);
    align-items: start;
    padding-left: var(--ssn-space-lg);
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-workspace-header .ssn-workspace-title-block {
    grid-column: 2;
    min-width: 0;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-workspace-header > .ssn-view-mode-bar {
    grid-column: 3;
    position: static;
    align-self: start;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-shared-workspace-back {
    position: static;
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    justify-self: start;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel {
    gap: 0;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--ssn-space-sm);
    width: 100%;
    min-height: 56px;
    padding: var(--ssn-space-sm) var(--ssn-space-md);
    border: 0;
    border-radius: var(--ssn-radius-card);
    background: transparent;
    color: var(--ssn-colour-text);
    text-align: left;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row.is-active,
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row:hover {
    background: var(--ssn-colour-subtle-bg);
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row span {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row strong,
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row small {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-home-space-panel .ssn-home-mission-row em {
    color: var(--ssn-colour-muted);
    font-style: normal;
}

/* v2.07.08 Runtime Consolidation
   One shared queue renderer owns centre workspace rows for every Space. */
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    align-items: start;
    gap: var(--ssn-space-md);
    min-width: 0;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card {
    position: relative;
    min-height: 0;
    height: auto;
    padding: var(--ssn-space-md);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ssn-space-xs);
    align-content: start;
    overflow: hidden;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card strong,
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card small,
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card [data-ssn-meta],
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card time {
    position: static;
    display: block;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card .ssn-workspace-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ssn-space-sm);
    min-width: 0;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card .ssn-workspace-card-top time {
    flex: 0 0 auto;
    max-width: 44%;
    text-align: right;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card.is-empty {
    grid-column: 1 / -1;
    max-width: 420px;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-group {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ssn-space-md);
    align-items: start;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-group > header {
    grid-column: 1 / -1;
}
@media (max-width: 1180px) {
    .ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer],
    .ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-group {
        grid-template-columns: 1fr;
    }
}


/* v2.07.11 Runtime State Separation Lock
   Home Mission Control keeps its own left rail fixed. Only the centre
   workspace and right context rail change when a Home queue opens. */
.ssn-shell.ssn-home-workspace-open [data-ssn-home-grid] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-home-grid] > .ssn-hub,
.ssn-shell.ssn-home-workspace-open [data-ssn-home-grid] > .ssn-agenda-card,
.ssn-shell.ssn-home-workspace-open [data-ssn-home-grid] > [data-ssn-agenda-workspace] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active {
    position: absolute;
    inset: calc(var(--ssn-topbar-height) + 12px) var(--ssn-page-padding-x) calc(var(--ssn-page-padding-bottom) + 78px + var(--ssn-space-lg)) var(--ssn-page-padding-x);
    display: grid;
    grid-template-columns: minmax(300px, var(--ssn-panel-width)) minmax(520px, 1fr) minmax(300px, var(--ssn-panel-width));
    gap: clamp(22px, 3.2vw, 58px);
    align-items: center;
    width: auto;
    height: auto;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    transform: none;
    z-index: 5;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-nav {
    display: none;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-centre {
    grid-column: 2;
    height: 100%;
    min-height: 0;
    pointer-events: auto;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-overview {
    grid-column: 3;
    height: 100%;
    min-height: 0;
    pointer-events: auto;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-workspace-shell {
    height: 100%;
    min-height: 0;
}
.ssn-shell.ssn-home-workspace-open .ssn-home-mission-control .ssn-signal-row.is-active {
    background: var(--ssn-colour-subtle-bg);
}


/* v2.07.11 Mission Control Context Header Lock
   The left rail keeps a consistent Mission Control title while the active Space is shown as compact context. */
.ssn-shell .ssn-space-nav .ssn-space-nav-context {
    margin: calc(-1 * var(--ssn-space-sm)) var(--ssn-rail-pad-x) var(--ssn-space-md);
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.25;
}
.ssn-shell .ssn-space-nav .ssn-space-nav-context span {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-surface-soft);
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .08em;
    text-transform: uppercase;
}


/* v2.07.13 Rail Zero Count Visibility Lock
   Only the active Space panel is visible. The centre title and filters share one row. */
.ssn-shell [data-ssn-space-panel][hidden] {
    display: none;
}
.ssn-shell .ssn-space-nav .ssn-space-nav-context {
    margin: 0 var(--ssn-rail-pad-x) var(--ssn-space-md);
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-label);
    font-weight: var(--ssn-font-weight-label);
    letter-spacing: .22em;
    text-transform: uppercase;
    line-height: 1.2;
}
.ssn-shell .ssn-space-nav .ssn-space-nav-context span {
    display: block;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}
.ssn-shell .ssn-space-workspace-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-md);
}
.ssn-shell .ssn-space-workspace-header.has-view-modes {
    padding-right: var(--ssn-space-lg);
}
.ssn-shell .ssn-space-workspace-header h2,
.ssn-shell .ssn-space-centre .ssn-space-workspace-header h2 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1 1 auto;
    min-width: 0;
}
.ssn-shell .ssn-space-workspace-header > .ssn-view-mode-bar {
    position: static;
    margin-left: auto;
    flex: 0 0 auto;
    max-width: none;
    flex-wrap: nowrap;
}

/* v2.07.16 Create Dock Primary and Rail Open Lock
   Bottom dock is now a calm, centred plus button that expands into
   current-space creation options. Search remains owned by the header. */
.ssn-shell .ssn-actionbar.ssn-create-dock {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    z-index: 60;
    width: auto;
    max-width: calc(100vw - 48px);
    min-height: 58px;
    margin: 0;
    padding: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    overflow: visible;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(24px);
}
.ssn-shell .ssn-create-dock-toggle,
.ssn-shell .ssn-create-dock-option {
    border: 0;
    outline: 0;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    font: inherit;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}
.ssn-shell .ssn-create-dock-toggle {
    width: 46px;
    height: 46px;
    min-width: 46px;
    min-height: 46px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    color: var(--ssn-colour-surface);
    border: 1px solid var(--ssn-colour-text);
    box-shadow: 0 14px 34px rgba(31,35,41,.22);
    line-height: 1;
}

.ssn-shell .ssn-create-dock-option[data-ssn-dock-side="left"] {
    order: 10;
}
.ssn-shell .ssn-create-dock-toggle {
    order: 20;
}
.ssn-shell .ssn-create-dock-option[data-ssn-dock-side="right"] {
    order: 30;
}

.ssn-shell .ssn-create-dock-toggle span {
    display: block;
    font-size: 30px;
    line-height: 1;
    font-weight: 300;
    transform: translateY(-1px);
    transition: transform .18s ease;
}
.ssn-shell.ssn-create-dock-open .ssn-create-dock-toggle span {
    transform: translateY(-1px) rotate(45deg);
}
.ssn-shell .ssn-create-dock-option {
    display: none;
    min-height: 42px;
    min-width: 104px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid transparent;
    color: var(--ssn-colour-muted);
    opacity: 0;
    transform: translateY(6px) scale(.96);
    transition: opacity .18s ease, transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.ssn-shell.ssn-create-dock-open .ssn-create-dock-option {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.ssn-shell.ssn-create-dock-open[data-ssn-current-space="home"] .ssn-create-dock-option[data-ssn-dock-space~="home"],
.ssn-shell.ssn-create-dock-open[data-ssn-current-space="relationships"] .ssn-create-dock-option[data-ssn-dock-space~="relationships"],
.ssn-shell.ssn-create-dock-open[data-ssn-current-space="operations"] .ssn-create-dock-option[data-ssn-dock-space~="operations"],
.ssn-shell.ssn-create-dock-open[data-ssn-current-space="knowledge"] .ssn-create-dock-option[data-ssn-dock-space~="knowledge"],
.ssn-shell.ssn-create-dock-open[data-ssn-action-context="projects"] .ssn-create-dock-option[data-ssn-dock-space~="projects"],
.ssn-shell.ssn-create-dock-open[data-ssn-action-context="project"] .ssn-create-dock-option[data-ssn-dock-space~="project"],
.ssn-shell.ssn-create-dock-open[data-ssn-action-context="bookings"] .ssn-create-dock-option[data-ssn-dock-space~="bookings"],
.ssn-shell.ssn-create-dock-open[data-ssn-action-context="settings"] .ssn-create-dock-option[data-ssn-dock-space~="settings"] {
    display: inline-flex;
}
.ssn-shell .ssn-create-dock-option:hover,
.ssn-shell .ssn-create-dock-option:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-create-dock-toggle:hover,
.ssn-shell .ssn-create-dock-toggle:focus-visible {
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-text);
    color: var(--ssn-colour-surface);
    transform: translateY(-1px);
}
.ssn-shell.ssn-command-open .ssn-create-dock,
.ssn-shell.ssn-locked .ssn-create-dock {
    pointer-events: none;
}
.ssn-shell.ssn-locked .ssn-create-dock {
    opacity: 0;
}
@media (max-width: 760px) {
    .ssn-shell .ssn-actionbar.ssn-create-dock {
        bottom: calc(14px + env(safe-area-inset-bottom, 0px));
        max-width: calc(100vw - 28px);
        overflow-x: auto;
        justify-content: flex-start;
    }
    .ssn-shell .ssn-create-dock-option {
        min-width: 92px;
        padding-left: 14px;
        padding-right: 14px;
    }
}


/* v2.07.19 Create Dock Balance and Brand Hover Lock
   The brand remains the permanent Home anchor without colour fading. The
   Create Dock keeps the centre toggle mathematically centred by using an
   equal number of options either side for each context. */
.ssn-shell .ssn-brand,
.ssn-shell .ssn-brand-home {
    border: 0;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    background-color: transparent;
    padding: 0;
    cursor: pointer;
    text-align: left;
}
.ssn-shell .ssn-brand-home:hover,
.ssn-shell .ssn-brand-home:focus-visible {
    opacity: 1;
    outline: 0;
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-radius: 14px;
}
.ssn-shell .ssn-brand-home:focus-visible {
    box-shadow: 0 0 0 3px var(--ssn-colour-focus-soft, rgba(17, 24, 39, .12));
    border-radius: 14px;
}
.ssn-shell.ssn-project-detail-open [data-ssn-spaces-workspace],
.ssn-shell.ssn-project-detail-open [data-ssn-spaces-workspace].ssn-home-workspace-active,
.ssn-shell.ssn-project-detail-open [data-ssn-spaces-workspace].ssn-home-workspace-docked {
    display: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active {
    inset: var(--ssn-app-card-top) var(--ssn-app-card-right) var(--ssn-app-card-bottom) var(--ssn-app-card-left);
    grid-template-columns: minmax(260px, var(--ssn-app-left-width)) minmax(520px, 1fr) var(--ssn-app-right-pane-width);
    gap: var(--ssn-app-card-gap);
    align-items: stretch;
    width: auto;
    height: auto;
    transform: none;
}
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-centre,
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-overview,
.ssn-shell.ssn-home-workspace-open [data-ssn-spaces-workspace].ssn-home-workspace-active .ssn-space-workspace-shell {
    height: 100%;
    min-height: 0;
}

/* v2.08.01 Relationship State Engine Foundation
   The bottom dock is now a state-driven Action Engine. The centre create
   token remains fixed; context actions are resolved by current Space. */
.ssn-shell .ssn-actionbar.ssn-action-engine {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    z-index: 60;
    width: auto;
    max-width: calc(100vw - 48px);
    min-height: 58px;
    margin: 0;
    padding: 7px;
    display: grid;
    grid-template-columns: minmax(112px, auto) minmax(112px, auto) 46px minmax(112px, auto) minmax(112px, auto);
    align-items: center;
    justify-content: center;
    gap: 8px;
    overflow: visible;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(24px);
}
.ssn-shell .ssn-action-engine-button,
.ssn-shell .ssn-action-engine-primary {
    border: 0;
    outline: 0;
    font: inherit;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}
.ssn-shell .ssn-action-engine-button {
    display: none;
    min-height: 42px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-muted);
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.ssn-shell .ssn-action-engine-button:hover,
.ssn-shell .ssn-action-engine-button:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-action-engine-primary {
    grid-column: 3;
    width: 46px;
    height: 46px;
    min-width: 46px;
    min-height: 46px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    color: var(--ssn-colour-surface);
    border: 1px solid var(--ssn-colour-text);
    box-shadow: 0 14px 34px rgba(31,35,41,.22);
    line-height: 1;
}
.ssn-shell .ssn-action-engine-primary span {
    display: block;
    font-size: 30px;
    line-height: 1;
    font-weight: 300;
    transform: translateY(-1px);
}
.ssn-shell .ssn-action-engine-primary:hover,
.ssn-shell .ssn-action-engine-primary:focus-visible {
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-text);
    color: var(--ssn-colour-surface);
    transform: translateY(-1px);
}
.ssn-shell .ssn-action-engine-button[data-ssn-action-slot="left-1"] { grid-column: 1; }
.ssn-shell .ssn-action-engine-button[data-ssn-action-slot="left-2"] { grid-column: 2; }
.ssn-shell .ssn-action-engine-button[data-ssn-action-slot="right-1"] { grid-column: 4; }
.ssn-shell .ssn-action-engine-button[data-ssn-action-slot="right-2"] { grid-column: 5; color: var(--ssn-colour-text); }
.ssn-shell[data-ssn-current-space="home"] .ssn-action-engine-button[data-ssn-action-space="home"],
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-space="relationships"],
.ssn-shell[data-ssn-current-space="operations"] .ssn-action-engine-button[data-ssn-action-space="operations"] {
    display: inline-flex;
}
.ssn-shell.ssn-command-open .ssn-action-engine,
.ssn-shell.ssn-locked .ssn-action-engine {
    pointer-events: none;
    opacity: .5;
}
@media (max-width: 760px) {
    .ssn-shell .ssn-actionbar.ssn-action-engine {
        grid-template-columns: 1fr 1fr 46px 1fr 1fr;
        max-width: calc(100vw - 18px);
        gap: 5px;
        padding: 6px;
    }
    .ssn-shell .ssn-action-engine-button {
        min-width: 0;
        padding: 0 10px;
        font-size: 12px;
    }
}


/* v2.08.01 Relationship State Engine Foundation
   Home is Mission Control, not an action surface. Relationships only owns
   account/contact entry. Project and operational actions begin inside stateful
   project workspaces. */
.ssn-shell[data-ssn-current-space="home"] .ssn-actionbar.ssn-action-engine {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-actionbar.ssn-action-engine {
    grid-template-columns: minmax(136px, auto) minmax(136px, auto);
    min-height: 56px;
    padding: 7px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-primary,
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="right-1"],
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="right-2"] {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="left-1"] { grid-column: 1; }
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="left-2"] { grid-column: 2; }
.ssn-shell .ssn-os-queue-card[data-ssn-record-type="qualification"] {
    min-height: 94px;
    align-items: flex-start;
}
.ssn-shell .ssn-os-queue-card[data-ssn-record-type="qualification"] strong {
    font-size: 15px;
    letter-spacing: .01em;
}
.ssn-shell .ssn-os-queue-card[data-ssn-record-type="qualification"] small {
    line-height: 1.55;
    white-space: normal;
}

/* v2.08.03 Relationship Pane and Opportunity Card Lock
   Navigation spaces use the full available height. Workspace/project screens keep
   their bottom action surface. Relationships is a three-action relationship entry
   surface, not a five-slot workflow dock. */
.ssn-shell[data-ssn-current-space="relationships"] .ssn-actionbar.ssn-action-engine {
    grid-template-columns: minmax(136px, auto) minmax(136px, auto) minmax(136px, auto);
    min-height: 56px;
    padding: 7px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="left-3"] {
    grid-column: 3;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-primary,
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="right-1"],
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-slot="right-2"] {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-space="relationships"] {
    display: inline-flex;
}
.ssn-shell[data-ssn-current-space="home"] [data-ssn-home-grid].ssn-grid {
    bottom: max(24px, env(safe-area-inset-bottom, 0px));
}
.ssn-shell[data-ssn-current-space="home"] [data-ssn-home-grid] .ssn-hub {
    align-self: center;
    justify-self: center;
}
.ssn-shell[data-ssn-current-space="relationships"] [data-ssn-spaces-workspace].ssn-home-workspace-active {
    bottom: max(24px, env(safe-area-inset-bottom, 0px));
}
.ssn-shell[data-ssn-current-space="relationships"] [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] {
    min-height: 108px;
    padding: 16px 18px;
    overflow: hidden;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] .ssn-workspace-card-top {
    margin-bottom: 3px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] [data-ssn-meta],
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] time {
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ssn-colour-muted);
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] strong {
    font-size: 16px;
    line-height: 1.25;
    margin-bottom: 2px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] small {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.45;
    color: var(--ssn-colour-muted);
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-new-project-rail[data-ssn-create-mode="contact"] [data-ssn-project-basics] {
    display: none;
}


/* v2.08.03 Relationship Pane and Opportunity Card Lock */
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell {
    top: var(--ssn-right-pane-host-top, calc(var(--ssn-topbar-height) + 28px));
    right: var(--ssn-right-pane-host-right, var(--ssn-page-padding-x, 32px));
    bottom: auto;
    width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    max-width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    max-height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    padding: 0;
    gap: 0;
    z-index: 84;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell > header {
    padding: 18px 18px 14px;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form {
    padding: 14px 18px 18px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] .ssn-workspace-card-top {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-os-queue-card[data-ssn-record-type="qualification"] strong {
    margin-top: 0;
}

/* v2.08.04 Relationship Directory Index Lock */
.ssn-workspace-card-top span[data-ssn-meta]:empty {
    display: none;
}
.ssn-os-queue-card[data-ssn-record-type="organisation"],
.ssn-os-queue-card[data-ssn-record-type="person"] {
    min-height: 58px;
}
.ssn-os-queue-card[data-ssn-record-type="organisation"] .ssn-workspace-card-top,
.ssn-os-queue-card[data-ssn-record-type="person"] .ssn-workspace-card-top {
    margin-bottom: 0;
}


/* v2.08.05 Relationship Directory Data Source Lock */
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="organisation"],
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="person"] {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
}
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="organisation"] .ssn-workspace-card-top,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="person"] .ssn-workspace-card-top {
    display: block;
}
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="organisation"] strong,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="person"] strong {
    display: block;
    margin: 0 0 3px;
    line-height: 1.25;
}
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="organisation"] small,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card[data-ssn-record-type="person"] small {
    display: block;
    line-height: 1.35;
}

/* v2.08.08 Relationship Directory Header Index and Tesla Inspector Lock */
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    min-height: 0;
    padding: 14px 16px;
    align-content: center;
}
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row .ssn-workspace-card-top {
    display: none;
}
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row strong {
    margin: 0;
    line-height: 1.25;
}
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row small {
    margin: 0;
    line-height: 1.35;
}
.ssn-relationship-inspector {
    display: grid;
    gap: var(--ssn-space-md);
}
.ssn-relationship-inspector-section {
    display: grid;
    gap: var(--ssn-space-sm);
    padding-top: var(--ssn-space-sm);
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-relationship-inspector-section:first-child {
    padding-top: 0;
    border-top: 0;
}
.ssn-relationship-inspector-section header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ssn-space-sm);
}
.ssn-relationship-inspector-section header strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-base);
}
.ssn-relationship-inspector-section header span {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-relationship-inspector-section dl {
    display: grid;
    gap: 0;
    margin: 0;
}
.ssn-relationship-inspector-section dl div {
    display: flex;
    justify-content: space-between;
    gap: var(--ssn-space-sm);
    padding: 8px 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-relationship-inspector-section dl div:first-child { border-top: 0; }
.ssn-relationship-inspector-section dt {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}
.ssn-relationship-inspector-section dd {
    margin: 0;
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
    text-align: right;
}
.ssn-relationship-inspector-projects {
    display: grid;
    gap: 8px;
}
.ssn-relationship-inspector-section.is-collapsed .ssn-relationship-inspector-projects {
    display: none;
}
.ssn-relationship-inspector-project {
    display: grid;
    gap: 2px;
    padding: 10px 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-relationship-inspector-project:first-child { border-top: 0; }
.ssn-relationship-inspector-project strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
}
.ssn-relationship-inspector-project small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
}

/* v2.08.07 Relationship Directory Card and Inspector UX Lock
   Directory rows are compact, readable list rows. The right pane is an inspector,
   not a table, so facts wrap naturally and never squeeze into tiny columns. */
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 5px;
    min-height: 64px;
    padding: 13px 16px;
    align-content: center;
    border-radius: 14px;
    overflow: visible;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row + .ssn-workspace-card.ssn-directory-row,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row + .ssn-workspace-card.ssn-directory-row {
    margin-top: 8px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row .ssn-workspace-card-top,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row .ssn-workspace-card-top {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row strong,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row strong {
    display: block;
    margin: 0;
    line-height: 1.25;
    font-size: 14px;
    letter-spacing: 0;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row small,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row small {
    display: block;
    margin: 0;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--ssn-colour-muted);
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-foundation-card.ssn-directory-row::before,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-foundation-card.ssn-directory-row::before {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-centre .ssn-space-foundation-card.ssn-directory-row,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-centre .ssn-space-foundation-card.ssn-directory-row {
    transform: none;
}
.ssn-relationship-inspector {
    display: grid;
    gap: 18px;
}
.ssn-relationship-inspector-section {
    display: grid;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-relationship-inspector-section:first-child {
    padding-top: 0;
    border-top: 0;
}
.ssn-relationship-inspector-section header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.ssn-relationship-inspector-section header strong {
    font-size: 13px;
    line-height: 1.2;
}
.ssn-relationship-inspector-section dl {
    display: grid;
    gap: 8px;
    margin: 0;
}
.ssn-relationship-detail-row,
.ssn-relationship-inspector-section dl div {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    padding: 0;
    border-top: 0;
}
.ssn-relationship-inspector-section dt {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.2;
}
.ssn-relationship-inspector-section dd {
    margin: 0;
    color: var(--ssn-colour-text);
    font-weight: 650;
    line-height: 1.35;
    text-align: left;
    overflow-wrap: anywhere;
    word-break: normal;
}
.ssn-relationship-inspector .ssn-button {
    justify-self: start;
}
.ssn-relationship-inspector-project {
    display: grid;
    gap: 3px;
    padding: 9px 0;
    border-top: 1px solid var(--ssn-colour-line);
}


/* v2.08.08 Relationship Directory Header Index and Tesla Inspector Lock
   Directory index lives in the centre header and the right pane becomes a calm
   infotainment-style inspector with cards, metrics and full-width project rows. */
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-header,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-header [data-ssn-space-title],
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-header [data-ssn-space-title] {
    grid-column: 1;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-header .ssn-index-bar,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-header .ssn-index-bar {
    grid-column: 2;
    justify-self: end;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 9px;
    padding: 0;
    border-bottom: 0;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-header .ssn-index-bar::-webkit-scrollbar,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-header .ssn-index-bar::-webkit-scrollbar {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-grid > .ssn-index-bar,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-grid > .ssn-index-bar {
    display: none;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-index-bar-item,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-index-bar-item {
    padding: 3px 0;
    min-width: 0;
    font-size: 12px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-grid,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-grid {
    gap: 10px;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row {
    min-height: 66px;
    padding: 15px 18px;
    gap: 4px;
    border-radius: 18px;
    box-shadow: inset 0 0 0 1px rgba(17,24,39,.035);
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row + .ssn-workspace-card.ssn-directory-row,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row + .ssn-workspace-card.ssn-directory-row {
    margin-top: 0;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row strong,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row strong {
    font-size: 14px;
    font-weight: 760;
}
.ssn-shell[data-ssn-current-space="relationships"] .ssn-workspace-card.ssn-directory-row small,
.ssn-shell [data-ssn-space-current="relationships"] .ssn-workspace-card.ssn-directory-row small {
    font-size: 12px;
}
.ssn-shell .ssn-tesla-inspector {
    display: grid;
    gap: 14px;
}
.ssn-shell .ssn-relationship-inspector-hero,
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-section {
    border: 1px solid var(--ssn-colour-line);
    border-radius: 22px;
    padding: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(248,249,250,.62));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.74);
}
.ssn-shell .ssn-relationship-inspector-hero {
    display: grid;
    gap: 8px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-relationship-inspector-hero > span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.ssn-shell .ssn-relationship-inspector-hero > strong {
    color: var(--ssn-colour-text);
    font-size: 18px;
    line-height: 1.15;
    letter-spacing: -.01em;
}
.ssn-shell .ssn-relationship-inspector-hero > small {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-relationship-inspector-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 6px;
}
.ssn-shell .ssn-relationship-inspector-metric {
    display: grid;
    place-items: center;
    gap: 2px;
    min-height: 54px;
    border-radius: 16px;
    background: var(--ssn-colour-control-bg);
    border: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-relationship-inspector-metric strong {
    font-size: 18px;
    line-height: 1;
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-relationship-inspector-metric small {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-section {
    padding-top: 16px;
    gap: 12px;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-section header strong {
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-section header span {
    min-width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    border: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-detail-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 9px 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-detail-row:first-child {
    border-top: 0;
    padding-top: 0;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-detail-row span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-detail-row strong {
    color: var(--ssn-colour-text);
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-projects {
    gap: 8px;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-project {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 16px;
    background: var(--ssn-colour-surface);
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-project strong {
    font-size: 12px;
    line-height: 1.25;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-project small {
    display: block;
    margin-top: 2px;
    font-size: 11px;
}
.ssn-shell .ssn-tesla-inspector .ssn-relationship-inspector-project span {
    flex: 0 0 auto;
    max-width: 92px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border-radius: 999px;
    padding: 5px 8px;
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 750;
}
.ssn-shell .ssn-tesla-inspector .ssn-button {
    width: 100%;
    justify-content: center;
    border-radius: 999px;
}
@media (max-width: 1180px) {
    .ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-header,
    .ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-header {
        grid-template-columns: 1fr;
    }
    .ssn-shell[data-ssn-current-space="relationships"] .ssn-space-workspace-header .ssn-index-bar,
    .ssn-shell [data-ssn-space-current="relationships"] .ssn-space-workspace-header .ssn-index-bar {
        grid-column: 1;
        justify-self: stretch;
        justify-content: flex-start;
    }
}

/* v2.08.09 Relationship Inspector Stacked Rail Lock */
.ssn-shell .ssn-relationship-inspector-stacked {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 12px;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-top {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 2px 0 14px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-top span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-top strong {
    color: var(--ssn-colour-text);
    font-size: 20px;
    line-height: 1.12;
    letter-spacing: -.02em;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-top small {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-panel,
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 20px;
    background: rgba(255,255,255,.62);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-panel header,
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-group header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-panel header strong,
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-group header strong {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-group header span {
    min-width: 24px;
    height: 24px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-row {
    display: grid;
    grid-template-columns: minmax(82px, .42fr) minmax(0, 1fr);
    gap: 12px;
    padding: 9px 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-row:nth-of-type(1) {
    border-top: 0;
    padding-top: 0;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-row span {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    line-height: 1.35;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-inspector-row strong {
    color: var(--ssn-colour-text);
    font-size: 12px;
    line-height: 1.35;
    font-weight: 760;
    overflow-wrap: anywhere;
    text-align: right;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-button {
    width: 100%;
    justify-content: center;
    border-radius: 999px;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-group-body {
    display: grid;
    gap: 8px;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-radius: 15px;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface);
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-row strong {
    display: block;
    font-size: 12px;
    line-height: 1.3;
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-row small {
    display: block;
    margin-top: 2px;
    color: var(--ssn-colour-muted);
    font-size: 11px;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-row span {
    flex: 0 0 auto;
    max-width: 94px;
    border-radius: 999px;
    padding: 5px 8px;
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-empty-state {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.4;
    padding: 4px 0 2px;
}
.ssn-shell .ssn-relationship-inspector-stacked .ssn-relationship-project-group.is-collapsed {
    opacity: .92;
}


/* v2.08.10 Relationship Inspector One Column Lock
   Relationship record inspectors must not inherit the older two-column context rail grid.
   The right rail is a single, calm vertical inspector: header, details, actions, projects. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details {
    display: block;
    border: 0;
    padding: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details > .ssn-relationship-inspector-stacked {
    display: flex;
    grid-template-columns: none;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    min-width: 0;
    padding-bottom: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-top,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-panel,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-group {
    display: flex;
    grid-template-columns: none;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-top {
    gap: 6px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-top span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-top strong {
    color: var(--ssn-colour-text);
    font-size: 21px;
    line-height: 1.12;
    letter-spacing: -.02em;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-top small {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-panel,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-group {
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 20px;
    background: rgba(255,255,255,.64);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-panel header,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-group header {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0;
    border: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-panel header strong,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-group header strong {
    color: var(--ssn-colour-text);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
    overflow-wrap: normal;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-group header span {
    display: inline-grid;
    place-items: center;
    min-width: 24px;
    height: 24px;
    border-radius: 999px;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-row {
    display: flex;
    grid-template-columns: none;
    flex-direction: column;
    gap: 4px;
    padding: 10px 0 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-row:nth-of-type(1) {
    padding-top: 0;
    border-top: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-row span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .1em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-row strong {
    color: var(--ssn-colour-text);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.35;
    text-align: left;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-button {
    width: 100%;
    min-height: 42px;
    justify-content: center;
    border-radius: 999px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-group-body {
    display: grid;
    grid-template-columns: none;
    gap: 8px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-row {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 15px;
    background: var(--ssn-colour-surface);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-copy {
    display: block;
    min-width: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-row strong {
    display: block;
    font-size: 12px;
    line-height: 1.3;
    color: var(--ssn-colour-text);
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-row small {
    display: block;
    margin-top: 2px;
    color: var(--ssn-colour-muted);
    font-size: 11px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-project-row > span {
    flex: 0 0 auto;
    max-width: 96px;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-empty-state {
    color: var(--ssn-colour-muted);
    font-size: 12px;
    line-height: 1.45;
    padding: 2px 0 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions:empty,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions[hidden] {
    display: none;
}

/* v2.08.11 Relationship Inspector Plain Rail Lock
   The Relationships right pane is the inspector surface. Selected record content must
   sit directly in the rail with quiet section dividers, not inside nested cards. */
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-rail-heading] {
    margin-bottom: 8px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode [data-ssn-rail-description] {
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details > .ssn-relationship-inspector-plain {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    min-width: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-panel,
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-project-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    min-width: 0;
    padding: 16px 0;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-panel:first-child {
    border-top: 0;
    padding-top: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0;
    border: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain header strong {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-project-group header span {
    min-width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    border: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: 800;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 0;
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-row:nth-of-type(1) {
    border-top: 0;
    padding-top: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-row span {
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-row strong {
    color: var(--ssn-colour-text);
    font-size: 13px;
    font-weight: 760;
    line-height: 1.35;
    text-align: left;
    overflow-wrap: anywhere;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-button {
    width: 100%;
    min-height: 40px;
    justify-content: center;
    border-radius: 999px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-inspector-actions {
    gap: 12px;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-project-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border: 0;
    border-top: 1px solid var(--ssn-colour-line);
    border-radius: 0;
    background: transparent;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-project-row:first-child {
    border-top: 0;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-project-row strong {
    font-size: 13px;
    line-height: 1.3;
}
.ssn-shell .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-details.ssn-relationship-record-details .ssn-relationship-inspector-plain .ssn-relationship-project-row > span {
    max-width: 100px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    color: var(--ssn-colour-muted);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}


/* v2.08.13 Mission Control & Action Engine Separation
   Operations Mission Control is a selection surface, not a work surface.
   Relationships keeps its creation dock. Project workspaces keep their own
   context Action Engine. */
.ssn-shell[data-ssn-current-space="operations"] .ssn-actionbar.ssn-action-engine {
    display: none;
}
.ssn-shell[data-ssn-current-space="operations"] [data-ssn-spaces-workspace].ssn-home-workspace-active {
    bottom: max(24px, env(safe-area-inset-bottom, 0px));
}
.ssn-shell .ssn-brand-home,
.ssn-shell .ssn-brand-home span,
.ssn-shell .ssn-brand-home small,
.ssn-shell .ssn-brand-home .ssn-site-icon,
.ssn-shell .ssn-brand-home .ssn-fallback-icon {
    opacity: 1;
}
.ssn-shell .ssn-brand-home,
.ssn-shell .ssn-brand-home:hover,
.ssn-shell .ssn-brand-home:focus-visible {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-brand-home:hover span,
.ssn-shell .ssn-brand-home:focus-visible span {
    color: var(--ssn-colour-text);
}
.ssn-shell .ssn-brand-home:hover small,
.ssn-shell .ssn-brand-home:focus-visible small {
    color: var(--ssn-colour-badge);
}

/* v2.08.14 Shared Workspace Card Engine
   One shared card renderer now owns project rows across Operations and future Spaces. */
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-workspace-card {
    border-radius: 16px;
    border: 1px solid var(--ssn-colour-line);
    background: rgba(255,255,255,.72);
    box-shadow: none;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-workspace-card:hover,
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-workspace-card.is-selected {
    background: rgba(255,255,255,.9);
    border-color: rgba(20,24,31,.18);
    transform: none;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-card-layout-project {
    min-height: 108px;
    padding: 16px 18px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    align-content: start;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    min-width: 0;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-header strong {
    display: block;
    min-width: 0;
    margin: 0;
    color: var(--ssn-colour-text);
    font-size: 15px;
    line-height: 1.28;
    letter-spacing: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-header time {
    flex: 0 0 auto;
    max-width: 34%;
    color: var(--ssn-colour-muted);
    font-size: 12px;
    font-weight: var(--ssn-font-weight-strong);
    line-height: 1.3;
    text-align: right;
    white-space: normal;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-meta {
    margin: 0;
    color: var(--ssn-colour-muted);
    font-size: 13px;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-next {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    align-items: baseline;
    padding-top: 4px;
    border-top: 1px solid rgba(20,24,31,.06);
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-next span {
    color: var(--ssn-colour-muted);
    font-size: 11px;
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ssn-shell [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-shared-card-next b {
    min-width: 0;
    color: var(--ssn-colour-text);
    font-size: 13px;
    line-height: 1.35;
    font-weight: var(--ssn-font-weight-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ssn-shell[data-ssn-current-space="operations"] [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}
.ssn-shell[data-ssn-current-space="operations"] [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-group {
    grid-template-columns: minmax(0, 1fr);
}
.ssn-shell[data-ssn-current-space="operations"] [data-ssn-workspace-cards][data-ssn-shared-queue-renderer] .ssn-os-queue-card + .ssn-os-queue-card {
    margin-top: 0;
}

/* v2.08.18 Project Workspace Action Engine Foundation
   Navigation spaces find work. Project workspaces do work. The bottom engine
   becomes dynamic only when an individual project is open. */
.ssn-shell[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
    display: grid;
    grid-template-columns: minmax(126px, auto) minmax(126px, auto) 46px minmax(126px, auto) minmax(126px, auto);
    align-items: center;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] {
    display: inline-flex;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button.is-empty {
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-slot="right-2"] {
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong);
}
.ssn-shell[data-ssn-current-space="project"] [data-ssn-project-detail-workspace] {
    bottom: calc(104px + env(safe-area-inset-bottom, 0px));
}
.ssn-shell[data-ssn-current-space="project"] [data-ssn-complete-selected-milestone] {
    display: none !important;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-project-detail-header-actions {
    align-items: center;
}

/* v2.08.20 Operations Continue Resolver Lock
   Operations Mission Control uses the right rail as a decision panel.
   The Continue action is the only primary route into work and must use core tokens. */
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions {
    display: block;
    margin-top: auto;
    padding-top: var(--ssn-space-md);
    background: transparent;
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-operations-continue-button,
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-operations-continue-button {
    width: 100%;
    min-height: 48px;
    border-radius: var(--ssn-radius-pill);
    border: 1px solid var(--ssn-button-primary-border);
    background: var(--ssn-button-primary-bg);
    background-color: var(--ssn-button-primary-bg);
    color: var(--ssn-button-primary-text);
    box-shadow: var(--ssn-shadow-soft);
    padding: 0 var(--ssn-space-lg);
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-operations-continue-button:hover,
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-operations-continue-button:focus-visible {
    background: var(--ssn-button-primary-bg);
    background-color: var(--ssn-button-primary-bg);
    color: var(--ssn-button-primary-text);
    filter: brightness(0.96);
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-operations-last-comms {
    display: grid;
    gap: 4px;
    margin-top: var(--ssn-space-md);
    padding-top: var(--ssn-space-md);
    border-top: 1px solid var(--ssn-colour-line);
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-operations-last-comms header span {
    display: block;
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-xs);
    font-weight: var(--ssn-font-weight-strong);
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-operations-last-comms time,
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-operations-last-comms small {
    color: var(--ssn-colour-muted);
    font-size: var(--ssn-font-size-small);
    line-height: 1.4;
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-operations-last-comms strong {
    color: var(--ssn-colour-text);
    font-size: var(--ssn-font-size-small);
    line-height: 1.35;
}

/* v2.08.21 Project Action Row Lock
   Project actions expose two milestone-led dynamic actions on the left while
   Log Activity and Next Action stay fixed on the right. The centre + remains
   the expansion point for secondary actions. */
.ssn-shell[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
    align-items: center;
    justify-items: center;
    gap: 8px;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button {
    height: 42px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-align: center;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    line-height: 1;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-primary {
    align-self: center;
    justify-self: center;
}
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-slot="right-1"],
.ssn-shell[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-slot="right-2"] {
    color: var(--ssn-colour-text);
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions {
    margin-top: auto;
    padding: 0;
    margin-left: calc(var(--ssn-space-lg) * -1);
    margin-right: calc(var(--ssn-space-lg) * -1);
    margin-bottom: calc(var(--ssn-space-lg) * -1);
}
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions .ssn-operations-continue-button,
.ssn-shell [data-ssn-spaces-workspace][data-ssn-space-current="operations"] .ssn-space-overview[data-ssn-relationship-rail].is-action-mode .ssn-context-rail-actions button.ssn-operations-continue-button {
    min-height: 54px;
    border-radius: 0 0 var(--ssn-radius-lg) var(--ssn-radius-lg);
    box-shadow: none;
}


/* v2.08.22 Action Engine Consolidation
   The action engine has one owner at a time. Relationships owns creation only;
   project workspaces own the dynamic project action row; mission control spaces
   do not render a dock. */
.ssn-shell .ssn-actionbar.ssn-action-engine[hidden],
.ssn-shell .ssn-action-engine-button[hidden],
.ssn-shell .ssn-action-engine-primary[hidden] {
    display: none !important;
}
.ssn-shell.ssn-project-detail-open .ssn-actionbar.ssn-action-engine {
    display: grid !important;
    grid-template-columns: minmax(132px, auto) minmax(132px, auto) 46px minmax(132px, auto) minmax(132px, auto);
    align-items: center;
    justify-items: center;
    gap: 8px;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button:not([data-ssn-action-space="project"]) {
    display: none !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"]:not([hidden]) {
    display: inline-flex !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-primary:not([hidden]) {
    display: inline-grid !important;
}
.ssn-shell:not(.ssn-project-detail-open)[data-ssn-current-space="relationships"] .ssn-actionbar.ssn-action-engine {
    display: grid;
    grid-template-columns: minmax(136px, auto) minmax(136px, auto) minmax(136px, auto);
}
.ssn-shell:not(.ssn-project-detail-open)[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-space="relationships"]:not([hidden]) {
    display: inline-flex !important;
}
.ssn-shell:not(.ssn-project-detail-open)[data-ssn-current-space="relationships"] .ssn-action-engine-button[data-ssn-action-space="project"],
.ssn-shell:not(.ssn-project-detail-open)[data-ssn-current-space="relationships"] .ssn-action-engine-primary {
    display: none !important;
}
.ssn-shell:not(.ssn-project-detail-open):not([data-ssn-current-space="relationships"]) .ssn-actionbar.ssn-action-engine {
    display: none !important;
}
.ssn-shell .ssn-project-legacy-danger-footer,
.ssn-shell .ssn-project-action-footer.ssn-project-legacy-danger-footer {
    display: none !important;
}

/* v2.08.27 Floating Centre Action Button & Dock Polish
   Final Action Engine dock geometry owner.
   The project dock is one shallow control strip: two dynamic left actions,
   a larger centre + action, then fixed Log Activity and Next Action.
   Do not add stage-specific dock geometry elsewhere. */
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: calc(22px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    width: min(648px, calc(100vw - 48px));
    height: 54px;
    min-height: 54px;
    max-height: 54px;
    padding: 6px 10px;
    display: grid !important;
    grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) 62px minmax(120px, 1fr) minmax(120px, 1fr);
    align-items: center;
    justify-items: stretch;
    column-gap: 4px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: 999px;
    background: var(--ssn-colour-control-bg);
    background-color: var(--ssn-colour-control-bg);
    box-shadow: var(--ssn-shadow-panel);
    backdrop-filter: blur(24px);
    overflow: visible;
    z-index: 60;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] {
    height: 40px;
    min-height: 40px;
    max-height: 40px;
    width: 100%;
    min-width: 0;
    padding: 0 12px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    align-self: center;
    justify-self: stretch;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-muted);
    font-size: 13px;
    font-weight: var(--ssn-font-weight-medium, 500);
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    transform: none;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"]:hover,
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"]:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    border-color: var(--ssn-colour-line);
    color: var(--ssn-colour-text);
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] span {
    display: block;
    width: 100%;
    min-width: 0;
    height: auto;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1;
    white-space: nowrap;
    transform: none;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="left-1"] { grid-column: 1; }
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="left-2"] { grid-column: 2; }
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="right-1"] { grid-column: 4; color: var(--ssn-colour-text); }
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="right-2"] {
    grid-column: 5;
    color: var(--ssn-colour-text);
    font-weight: var(--ssn-font-weight-strong, 700);
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]) {
    grid-column: 3;
    width: 58px;
    height: 58px;
    min-width: 58px;
    min-height: 58px;
    max-width: 58px;
    max-height: 58px;
    margin: 0;
    padding: 0;
    align-self: center;
    justify-self: center;
    display: inline-grid !important;
    place-items: center;
    border-radius: 999px;
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    border: 1px solid var(--ssn-colour-text);
    color: var(--ssn-colour-surface);
    box-shadow: 0 16px 36px rgba(31,35,41,.24);
    line-height: 1;
    transform: none;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]):hover,
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]):focus-visible {
    background: var(--ssn-colour-text);
    background-color: var(--ssn-colour-text);
    border-color: var(--ssn-colour-text);
    color: var(--ssn-colour-surface);
    filter: brightness(.96);
    transform: none;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary span {
    display: block;
    font-size: 31px;
    font-weight: 300;
    line-height: 1;
    transform: translateY(-1px);
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button:not([data-ssn-action-space="project"]) {
    display: none !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button.is-empty,
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[aria-hidden="true"] {
    visibility: hidden;
    pointer-events: none;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"].ssn-create-dock-open .ssn-action-engine-primary span {
    transform: rotate(45deg) translateY(-1px);
}
@media (max-width: 760px) {
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
        width: calc(100vw - 18px);
        height: 52px;
        min-height: 52px;
        max-height: 52px;
        padding: 6px 7px;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 56px minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 3px;
    }
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] {
        height: 38px;
        min-height: 38px;
        max-height: 38px;
        padding: 0 7px;
        font-size: 12px;
    }
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]) {
        width: 54px;
        height: 54px;
        min-width: 54px;
        min-height: 54px;
        max-width: 54px;
        max-height: 54px;
    }
}


/* v2.08.28 Action Row Centre Polish & Link Decoration Lock
   Final polish over the project action strip after the shared geometry lock.
   The + is visually part of the dock, not clipped below it. Links inside Navigator
   use component styling only and never browser underline defaults. */
.ssn-shell a,
.ssn-shell a:visited,
.ssn-shell a:hover,
.ssn-shell a:focus {
    text-decoration: none;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
    bottom: calc(32px + env(safe-area-inset-bottom, 0px));
    width: min(690px, calc(100vw - 56px));
    height: 56px;
    min-height: 56px;
    max-height: 56px;
    padding: 7px 12px;
    grid-template-columns: minmax(132px, 1fr) minmax(132px, 1fr) 66px minmax(132px, 1fr) minmax(132px, 1fr);
    column-gap: 6px;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] {
    height: 42px;
    min-height: 42px;
    max-height: 42px;
    padding: 0 14px;
    line-height: 1;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] span {
    line-height: 1;
    text-decoration: none;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]) {
    width: 62px;
    height: 62px;
    min-width: 62px;
    min-height: 62px;
    max-width: 62px;
    max-height: 62px;
    align-self: center;
    justify-self: center;
    transform: translateY(0);
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]):hover,
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]):focus-visible {
    transform: translateY(0);
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary span {
    font-size: 32px;
    line-height: 1;
    transform: translateY(-1px);
}
.ssn-command-panel a,
.ssn-command-panel a:visited,
.ssn-command-panel a:hover,
.ssn-command-panel a:focus,
.ssn-command-panel .ssn-command-result-title,
.ssn-command-panel .ssn-command-result-meta {
    text-decoration: none;
}
@media (max-width: 760px) {
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
        bottom: calc(28px + env(safe-area-inset-bottom, 0px));
        width: calc(100vw - 22px);
        height: 54px;
        min-height: 54px;
        max-height: 54px;
        padding: 6px 8px;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 58px minmax(0, 1fr) minmax(0, 1fr);
    }
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]) {
        width: 56px;
        height: 56px;
        min-width: 56px;
        min-height: 56px;
        max-width: 56px;
        max-height: 56px;
    }
}


/* v2.08.29 Action Row Geometry & Command Return Lock
   The centre + is now absolutely anchored to the exact centre of the dock.
   It no longer participates in grid flow, which prevents legacy grid rules
   from dropping it below the strip. Cmd+K close now preserves the active
   project workspace rather than allowing the project Escape handler to run. */
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
    bottom: calc(30px + env(safe-area-inset-bottom, 0px)) !important;
    width: min(690px, calc(100vw - 56px)) !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    padding: 7px 12px !important;
    grid-template-columns: minmax(132px, 1fr) minmax(132px, 1fr) 74px minmax(132px, 1fr) minmax(132px, 1fr) !important;
    align-items: center !important;
    justify-items: stretch !important;
    overflow: visible !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]) {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    grid-column: auto !important;
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    min-height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
    margin: 0 !important;
    transform: translate(-50%, -50%) !important;
    z-index: 3 !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]):hover,
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]):focus-visible {
    transform: translate(-50%, -50%) !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"].ssn-create-dock-open .ssn-action-engine-primary:not([hidden]) {
    transform: translate(-50%, -50%) !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"].ssn-create-dock-open .ssn-action-engine-primary span {
    transform: rotate(45deg) translateY(-1px) !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] {
    align-self: center !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
.ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-button[data-ssn-action-space="project"] span {
    display: block !important;
    line-height: 1 !important;
}
@media (max-width: 760px) {
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-actionbar.ssn-action-engine {
        bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 66px minmax(0, 1fr) minmax(0, 1fr) !important;
    }
    .ssn-shell.ssn-project-detail-open[data-ssn-current-space="project"] .ssn-action-engine-primary:not([hidden]) {
        width: 56px !important;
        height: 56px !important;
        min-width: 56px !important;
        min-height: 56px !important;
        max-width: 56px !important;
        max-height: 56px !important;
    }
}

/* v2.08.30 Project Action Bar Event Resolver Lock
   Project action buttons are event-driven, not hash-route driven. The centre +
   opens the project overflow menu above the dock and never changes screen.
   Geometry applies whenever a project workspace is open, even if a stale space
   attribute is present during transitions. */
.ssn-shell.ssn-project-detail-open .ssn-actionbar.ssn-action-engine {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: calc(30px + env(safe-area-inset-bottom, 0px)) !important;
    transform: translateX(-50%) !important;
    width: min(690px, calc(100vw - 56px)) !important;
    height: 56px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    padding: 7px 12px !important;
    display: grid !important;
    grid-template-columns: minmax(132px, 1fr) minmax(132px, 1fr) 74px minmax(132px, 1fr) minmax(132px, 1fr) !important;
    align-items: center !important;
    justify-items: stretch !important;
    column-gap: 6px !important;
    overflow: visible !important;
    border: 1px solid var(--ssn-colour-line) !important;
    border-radius: 999px !important;
    background: var(--ssn-colour-control-bg) !important;
    background-color: var(--ssn-colour-control-bg) !important;
    box-shadow: var(--ssn-shadow-panel) !important;
    backdrop-filter: blur(24px) !important;
    z-index: 80 !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    justify-self: stretch !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 14px !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    background: transparent !important;
    background-color: transparent !important;
    color: var(--ssn-colour-muted) !important;
    font-size: 13px !important;
    font-weight: var(--ssn-font-weight-medium, 500) !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"] span {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    text-decoration: none !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"]:hover,
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"]:focus-visible {
    background: var(--ssn-colour-control-bg-hover) !important;
    background-color: var(--ssn-colour-control-bg-hover) !important;
    border-color: var(--ssn-colour-line) !important;
    color: var(--ssn-colour-text) !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="left-1"] { grid-column: 1 !important; }
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="left-2"] { grid-column: 2 !important; }
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="right-1"] { grid-column: 4 !important; color: var(--ssn-colour-text) !important; }
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="right-2"] { grid-column: 5 !important; color: var(--ssn-colour-text) !important; font-weight: var(--ssn-font-weight-strong, 700) !important; }
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button:not([data-ssn-action-space="project"]) {
    display: none !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button.is-empty,
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[aria-hidden="true"] {
    visibility: hidden !important;
    pointer-events: none !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-primary:not([hidden]) {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    grid-column: auto !important;
    width: 62px !important;
    height: 62px !important;
    min-width: 62px !important;
    min-height: 62px !important;
    max-width: 62px !important;
    max-height: 62px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(-50%, -50%) !important;
    z-index: 5 !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    background: var(--ssn-colour-text) !important;
    background-color: var(--ssn-colour-text) !important;
    border: 1px solid var(--ssn-colour-text) !important;
    color: var(--ssn-colour-surface) !important;
    box-shadow: 0 16px 36px rgba(31,35,41,.24) !important;
    line-height: 1 !important;
    cursor: pointer !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-primary:not([hidden]):hover,
.ssn-shell.ssn-project-detail-open .ssn-action-engine-primary:not([hidden]):focus-visible {
    transform: translate(-50%, -50%) !important;
    filter: brightness(.96) !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-primary span {
    display: block !important;
    font-size: 32px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    transform: translateY(-1px) !important;
    transition: transform .18s ease !important;
}
.ssn-shell.ssn-project-detail-open.ssn-project-action-menu-open .ssn-action-engine-primary span,
.ssn-shell.ssn-project-detail-open.ssn-create-dock-open .ssn-action-engine-primary span {
    transform: rotate(45deg) translateY(-1px) !important;
}
.ssn-shell .ssn-project-action-menu {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 14px);
    transform: translateX(-50%) translateY(6px) scale(.98);
    width: min(320px, calc(100vw - 48px));
    padding: 8px;
    display: grid;
    gap: 4px;
    border: 1px solid var(--ssn-colour-line);
    border-radius: var(--ssn-radius-lg, 24px);
    background: var(--ssn-colour-surface);
    background-color: var(--ssn-colour-surface);
    box-shadow: var(--ssn-shadow-panel);
    opacity: 0;
    pointer-events: none;
    z-index: 90;
}
.ssn-shell .ssn-project-action-menu[hidden] {
    display: none !important;
}
.ssn-shell.ssn-project-detail-open.ssn-project-action-menu-open .ssn-project-action-menu:not([hidden]) {
    display: grid !important;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0) scale(1);
}
.ssn-shell .ssn-project-action-menu button {
    min-height: 40px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 0;
    border-radius: 999px;
    background: transparent;
    background-color: transparent;
    color: var(--ssn-colour-text);
    font: inherit;
    font-size: 13px;
    font-weight: var(--ssn-font-weight-medium, 500);
    text-align: left;
    cursor: pointer;
}
.ssn-shell .ssn-project-action-menu button:hover,
.ssn-shell .ssn-project-action-menu button:focus-visible {
    background: var(--ssn-colour-control-bg-hover);
    background-color: var(--ssn-colour-control-bg-hover);
    outline: 0;
}
@media (max-width: 760px) {
    .ssn-shell.ssn-project-detail-open .ssn-actionbar.ssn-action-engine {
        bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important;
        width: calc(100vw - 22px) !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 66px minmax(0, 1fr) minmax(0, 1fr) !important;
        padding: 6px 8px !important;
    }
    .ssn-shell.ssn-project-detail-open .ssn-action-engine-primary:not([hidden]) {
        width: 58px !important;
        height: 58px !important;
        min-width: 58px !important;
        min-height: 58px !important;
        max-width: 58px !important;
        max-height: 58px !important;
    }
}

/* v2.08.32 Enquiry Qualify Next Action Sheet Lock
   Qualify belongs to the far-right project progression button. The decision
   appears as a compact action sheet above the dock, not as a workspace panel. */
.ssn-project-detail-workspace .ssn-qualify-modal,
.ssn-shell .ssn-qualify-modal {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: calc(104px + env(safe-area-inset-bottom, 0px)) !important;
    transform: translateX(-50%) translateY(10px) scale(.98) !important;
    width: min(480px, calc(100vw - 48px)) !important;
    max-width: min(480px, calc(100vw - 48px)) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 120 !important;
}
.ssn-project-detail-workspace .ssn-qualify-modal[aria-hidden="true"],
.ssn-shell .ssn-qualify-modal[aria-hidden="true"] {
    display: none !important;
}
.ssn-project-detail-workspace .ssn-qualify-modal[aria-hidden="false"],
.ssn-shell .ssn-qualify-modal[aria-hidden="false"] {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) scale(1) !important;
}
.ssn-project-detail-workspace .ssn-qualify-composer,
.ssn-shell .ssn-qualify-composer {
    width: 100% !important;
    padding: 16px !important;
    display: grid !important;
    gap: 12px !important;
    border: 1px solid var(--ssn-colour-line) !important;
    border-radius: var(--ssn-radius-xl, 28px) !important;
    background: var(--ssn-colour-surface) !important;
    background-color: var(--ssn-colour-surface) !important;
    box-shadow: var(--ssn-shadow-panel) !important;
    backdrop-filter: blur(24px) !important;
}
.ssn-project-detail-workspace .ssn-qualify-composer header,
.ssn-shell .ssn-qualify-composer header {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 12px !important;
    align-items: start !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid var(--ssn-colour-line) !important;
}
.ssn-project-detail-workspace .ssn-qualify-composer h2,
.ssn-shell .ssn-qualify-composer h2 {
    margin: 0 !important;
    color: var(--ssn-colour-text) !important;
    font-size: 16px !important;
    line-height: 1.15 !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
}
.ssn-project-detail-workspace .ssn-qualify-composer header p,
.ssn-shell .ssn-qualify-composer header p {
    margin: 7px 0 0 !important;
    color: var(--ssn-colour-muted) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}
.ssn-project-detail-workspace .ssn-qualify-summary,
.ssn-shell .ssn-qualify-summary {
    display: grid !important;
    gap: 2px !important;
    padding: 0 !important;
    color: var(--ssn-colour-muted) !important;
}
.ssn-project-detail-workspace .ssn-qualify-summary strong,
.ssn-shell .ssn-qualify-summary strong {
    color: var(--ssn-colour-text) !important;
    font-weight: var(--ssn-font-weight-strong, 700) !important;
}
.ssn-project-detail-workspace .ssn-qualify-options,
.ssn-shell .ssn-qualify-options {
    display: grid !important;
    gap: 8px !important;
}
.ssn-project-detail-workspace .ssn-qualify-options button,
.ssn-shell .ssn-qualify-options button,
.ssn-project-detail-workspace .ssn-qualify-composer footer button,
.ssn-shell .ssn-qualify-composer footer button {
    min-height: 46px !important;
    width: 100% !important;
    padding: 0 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    border-radius: 999px !important;
    font: inherit !important;
    font-size: 13px !important;
    cursor: pointer !important;
    text-align: left !important;
}
.ssn-project-detail-workspace .ssn-qualify-options button small,
.ssn-shell .ssn-qualify-options button small {
    display: none !important;
}
.ssn-project-detail-workspace .ssn-qualify-options .ssn-button-primary,
.ssn-shell .ssn-qualify-options .ssn-button-primary {
    background: var(--ssn-colour-text) !important;
    background-color: var(--ssn-colour-text) !important;
    border: 1px solid var(--ssn-colour-text) !important;
    color: var(--ssn-colour-surface) !important;
}
.ssn-project-detail-workspace .ssn-qualify-options .ssn-button-secondary,
.ssn-shell .ssn-qualify-options .ssn-button-secondary,
.ssn-project-detail-workspace .ssn-qualify-composer footer button,
.ssn-shell .ssn-qualify-composer footer button {
    background: var(--ssn-colour-control-bg) !important;
    background-color: var(--ssn-colour-control-bg) !important;
    border: 1px solid var(--ssn-colour-line) !important;
    color: var(--ssn-colour-text) !important;
}
.ssn-project-detail-workspace .ssn-qualify-composer footer,
.ssn-shell .ssn-qualify-composer footer {
    padding: 0 !important;
    border: 0 !important;
    display: block !important;
}
.ssn-shell.ssn-project-detail-open .ssn-action-engine-button[data-ssn-action-space="project"][data-ssn-action-slot="right-2"] span {
    font-weight: var(--ssn-font-weight-strong, 700) !important;
}

/* v2.08.34 New Project Account Contact Prefill Lock
   Create rail content uses the whole card width. Step markers are calm badges, not layout columns. */
.ssn-shell .ssn-new-project-step {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}
.ssn-shell .ssn-new-project-step > span {
    position: absolute;
    top: 12px;
    left: 12px;
}
.ssn-shell .ssn-new-project-step > div {
    min-width: 0;
    width: 100%;
}
.ssn-shell .ssn-new-project-step h3 {
    padding-left: 38px;
    min-height: 28px;
    display: flex;
    align-items: center;
}

/* v2.08.35 New Project Account Group Leader Resolver Lock
   The create rail keeps the form body scrollable while the commit action is owned by the rail footer. */
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form {
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 0;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer {
    margin: 0 -18px -18px;
    padding: 10px 0 0;
    border-top: 1px solid var(--ssn-colour-line);
    background: var(--ssn-colour-surface-strong);
    border-radius: 0 0 28px 28px;
    overflow: hidden;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer p {
    padding: 0 18px;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:hover,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:focus,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:focus-visible,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:active {
    min-height: 46px;
    border-radius: 0 0 28px 28px;
    margin: 0;
}


/* v2.08.36 New Project Drawer Footer Recovery Lock */
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell {
    overflow: hidden;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell > header {
    flex: 0 0 auto;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form {
    flex: 1 1 auto;
    height: auto;
    max-height: none;
    overflow-y: auto;
    padding: 14px 18px 0;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin: 12px -18px 0;
    padding: 10px 0 0;
    flex: 0 0 auto;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:hover,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:focus,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:focus-visible,
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell .ssn-new-project-form footer .ssn-button-primary:active {
    border-radius: 0 0 28px 28px;
}

/* v2.08.42 New Project Digital Delivery Field Lock
   Digital project creation does not expose training delivery controls. */
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell[data-ssn-create-mode="digital"] [data-ssn-delivery-type-field] {
    display: none;
}
.ssn-shell > .ssn-new-project-rail.ssn-right-rail-shell[data-ssn-create-mode="digital"] [data-ssn-value-delivery-row] {
    grid-template-columns: minmax(0, 1fr);
}

/* v2.08.43 Project Create Commit Flow Lock: no visual changes. */
/* v2.08.44 Proposal Skip Milestone Commit Lock: business logic only. */

/* v2.08.45 Proposal-stage overflow menu adds Skip Proposal only while Proposed. */

/* v2.08.46 Digital Project Journey Resolver Lock
   Project overflow menu is a solid Navigator surface, not a blurred glass panel. */
.ssn-shell .ssn-project-action-menu {
    background: #fff;
    background-color: #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.ssn-shell .ssn-project-action-menu button[hidden] {
    display: none !important;
}

/* v2.08.48 Project Journey Renderer Rebuild Lock */
.ssn-shell .ssn-project-detail-actions .ssn-journey-action-hidden,
.ssn-shell .ssn-project-detail-actions .ssn-journey-stage-hidden {
    display: none !important;
}


/* v2.08.49 Project summary row visibility lock
   Shared grid/flex rules must not override the semantic hidden state. */
.ssn-shell .ssn-project-facts [hidden],
.ssn-shell .ssn-project-facts .ssn-row-hidden,
.ssn-shell .ssn-project-detail-actions [hidden],
.ssn-shell .ssn-project-detail-actions .ssn-journey-action-hidden,
.ssn-shell .ssn-project-stage-nav section[hidden],
.ssn-shell .ssn-project-stage-nav section.ssn-journey-stage-hidden {
    display: none !important;
}
.ssn-shell .ssn-project-action-menu {
    background: #fff !important;
    background-color: #fff !important;
}


/* v2.08.50 Account Training Location Foundation Lock */
.ssn-shell .ssn-training-location-body{flex:1 1 auto;min-height:0;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px;}
.ssn-shell .ssn-training-location-list{display:flex;flex-direction:column;gap:8px;}
.ssn-shell .ssn-training-location-option{width:100%;border:1px solid var(--ssn-colour-line);border-radius:14px;background:var(--ssn-colour-card-bg);padding:12px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;color:var(--ssn-colour-text);}
.ssn-shell .ssn-training-location-option strong{font-size:13px;}
.ssn-shell .ssn-training-location-option small{grid-column:1/2;color:var(--ssn-colour-muted);line-height:1.35;}
.ssn-shell .ssn-training-location-option span{grid-column:2;grid-row:1/3;align-self:center;font-size:11px;font-weight:700;color:var(--ssn-colour-muted);}
.ssn-shell .ssn-training-location-option:hover,.ssn-shell .ssn-training-location-option.is-selected{background:var(--ssn-colour-surface-strong);}
.ssn-shell .ssn-training-location-form{display:flex;flex-direction:column;gap:10px;padding-top:4px;}
.ssn-shell .ssn-training-location-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--ssn-colour-muted);}
.ssn-shell .ssn-training-location-form input,.ssn-shell .ssn-training-location-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--ssn-colour-line);border-radius:11px;background:var(--ssn-colour-card-bg);padding:10px 11px;color:var(--ssn-colour-text);font:inherit;}
.ssn-shell .ssn-training-location-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ssn-shell .ssn-training-location-footer{flex:0 0 auto;border-top:1px solid var(--ssn-colour-line);padding:0;}
.ssn-shell .ssn-training-location-footer button{width:100%;min-height:50px;border-radius:0 0 var(--ssn-radius-panel) var(--ssn-radius-panel);border:0;}
.ssn-shell .ssn-training-location-message{min-height:18px;margin:0;font-size:12px;color:var(--ssn-colour-muted);}
@media(max-width:520px){.ssn-shell .ssn-training-location-form-grid{grid-template-columns:1fr;}}


/* v2.08.51 Right Inspector Location Editor Lock
   The shared right rail owns all location editor geometry. The location module
   styles content only and uses a fully opaque inspector surface. */
html body .ssn-shell > .ssn-training-location-panel.ssn-right-rail-shell {
    position: fixed;
    top: var(--ssn-right-pane-host-top, calc(var(--ssn-topbar-height, 76px) + 28px));
    left: var(--ssn-right-pane-host-left, auto);
    right: auto;
    bottom: auto;
    width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    max-width: var(--ssn-right-pane-host-width, min(366px, calc(100vw - 64px)));
    max-height: var(--ssn-right-pane-host-height, calc(100vh - 220px));
    background: #fff;
    background-color: #fff;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(14px) scale(.995);
}
html body .ssn-shell > .ssn-training-location-panel.ssn-right-rail-shell[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}
html body .ssn-shell > .ssn-training-location-panel.ssn-right-rail-shell[aria-hidden="true"] {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(14px) scale(.995);
}
.ssn-shell .ssn-training-location-panel > header,
.ssn-shell .ssn-training-location-panel .ssn-training-location-body,
.ssn-shell .ssn-training-location-panel .ssn-training-location-footer,
.ssn-shell .ssn-training-location-panel .ssn-training-location-option,
.ssn-shell .ssn-training-location-panel .ssn-training-location-form input,
.ssn-shell .ssn-training-location-panel .ssn-training-location-form textarea {
    background-color: #fff;
}
@media (max-width: 760px) {
    html body .ssn-shell > .ssn-training-location-panel.ssn-right-rail-shell {
        top: 96px;
        left: 14px;
        right: 14px;
        width: auto;
        max-width: none;
        height: calc(100vh - 118px);
        max-height: none;
    }
}


/* v2.08.52 Training Location Selection Commit Lock */
.ssn-training-location-panel.is-saving {
    cursor: progress;
}
.ssn-training-location-panel.is-saving .ssn-training-location-option:not(:disabled),
.ssn-training-location-panel.is-saving .ssn-training-location-add-toggle {
    pointer-events: none;
}
