:root {
    --navy: #07111f;
    --navy-2: #0b1d33;
    --green: #123f2a;
    --green-2: #1f6b45;
    --accent: #86efac;
    --text: #e8f2ee;
    --muted: #9fb3aa;
    --card: rgba(255, 255, 255, 0.065);
    --border: rgba(255, 255, 255, 0.12);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Inter, Segoe UI, Arial, sans-serif;
    background:
        radial-gradient(circle at top left, rgba(31, 107, 69, 0.5), transparent 32%),
        linear-gradient(135deg, var(--navy), #020712 65%);
    color: var(--text);
}

.page-shell {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 270px;
    padding: 28px 22px;
    background: rgba(3, 11, 22, 0.84);
    border-right: 1px solid var(--border);
}

.brand {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 38px;
}

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--green-2), var(--accent));
    color: #03110a;
    font-weight: 900;
    display: grid;
    place-items: center;
}

.brand span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-top: 4px;
}

nav a {
    display: block;
    color: var(--muted);
    text-decoration: none;
    padding: 13px 14px;
    border-radius: 12px;
    margin-bottom: 7px;
    font-weight: 700;
}

nav a.active,
nav a:hover {
    background: rgba(134, 239, 172, 0.12);
    color: var(--accent);
}

.main {
    flex: 1;
    padding: 34px;
}

.hero-cover {
    min-height: 360px;
    border: 1px solid var(--border);
    border-radius: 28px;
    padding: 42px;
    display: grid;
    grid-template-columns: 1.5fr 0.8fr;
    gap: 32px;
    background:
        linear-gradient(120deg, rgba(7, 17, 31, 0.96), rgba(18, 63, 42, 0.75)),
        radial-gradient(circle at right, rgba(134, 239, 172, 0.25), transparent 36%);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.35);
}

.eyebrow {
    color: var(--accent);
    letter-spacing: 0.12em;
    font-size: 12px;
    font-weight: 900;
    margin: 0 0 14px;
}

h1 {
    font-size: 46px;
    line-height: 1.05;
    max-width: 880px;
    margin: 0;
}

.hero-text {
    color: var(--muted);
    max-width: 760px;
    font-size: 17px;
    line-height: 1.65;
}

.hero-actions {
    display: flex;
    gap: 14px;
    margin-top: 28px;
}

button {
    cursor: pointer;
}

button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.btn-primary,
.btn-secondary {
    border: 0;
    border-radius: 14px;
    padding: 14px 20px;
    font-weight: 900;
}

.btn-primary {
    background: linear-gradient(135deg, var(--accent), #3ddc84);
    color: #03110a;
}

.btn-secondary {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text);
    border: 1px solid var(--border);
}

.btn-primary.small {
    padding: 10px 15px;
}

.full {
    width: 100%;
    margin-top: 16px;
}

.hero-card,
.switch-card,
.content-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 24px;
    backdrop-filter: blur(12px);
    margin-top: 24px;
}

.hero-card {
    padding: 28px;
    align-self: stretch;
}

.hero-card span,
.switch-card label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.hero-card strong {
    display: block;
    font-size: 28px;
    margin-top: 12px;
}

.hero-card p {
    color: var(--muted);
}

.limit-box {
    margin-top: 36px;
}

.progress {
    height: 10px;
    background: rgba(255, 255, 255, 0.11);
    border-radius: 999px;
    overflow: hidden;
    margin: 10px 0;
}

.progress div {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), var(--green-2));
}

.switchboard-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin: 24px 0;
}

.switch-card {
    padding: 22px;
}

.switch-card select,
.switch-card input,
.modal-card input,
.modal-card select {
    width: 100%;
    background: rgba(2, 7, 18, 0.72);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 13px;
    padding: 13px;
    margin-top: 10px;
}

.switch-card p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.inline-input {
    display: flex;
    align-items: center;
    gap: 8px;
}

.content-card {
    padding: 26px;
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.section-head h2 {
    margin: 0;
    font-size: 28px;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th {
    text-align: left;
    color: var(--muted);
    font-size: 12px;
    letter-spacing: 0.06em;
    padding: 14px;
    border-bottom: 1px solid var(--border);
}

td {
    padding: 16px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.pill {
    border: 0;
    border-radius: 999px;
    padding: 8px 16px;
    font-weight: 900;
}

.pill.on {
    background: rgba(134, 239, 172, 0.18);
    color: var(--accent);
}

.pill.off {
    background: rgba(255, 255, 255, 0.11);
    color: var(--muted);
}

.empty-state {
    padding: 40px;
    text-align: center;
    color: var(--muted);
    border: 1px dashed var(--border);
    border-radius: 20px;
}

.modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(2, 7, 18, 0.76);
    place-items: center;
    z-index: 20;
}

.modal.show {
    display: grid;
}

.modal-card {
    width: 440px;
    background: #07111f;
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 28px;
    position: relative;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.5);
}

.modal-card h2 {
    margin-top: 0;
}

.modal-card label {
    display: block;
    margin-top: 14px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.modal-close {
    position: absolute;
    right: 18px;
    top: 14px;
    background: none;
    border: 0;
    color: var(--text);
    font-size: 28px;
}

.check-row {
    display: flex !important;
    gap: 10px;
    align-items: center;
}

.check-row input {
    width: auto;
}

.alert {
    padding: 14px 18px;
    border-radius: 14px;
    margin-bottom: 18px;
    font-weight: 800;
}

.alert.success {
    background: rgba(134, 239, 172, 0.14);
    color: #86efac;
    border: 1px solid rgba(134, 239, 172, 0.28);
}

.alert.error {
    background: rgba(248, 113, 113, 0.14);
    color: #fca5a5;
    border: 1px solid rgba(248, 113, 113, 0.28);
}

.company-link {
    color: #86efac;
    text-decoration: none;
}
.company-link:hover {
    text-decoration: underline;
}

.company-hero h1 {
    font-size: 42px;
}

.company-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.company-meta span {
    background: rgba(134, 239, 172, 0.12);
    border: 1px solid rgba(134, 239, 172, 0.24);
    color: #86efac;
    padding: 9px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
}

.upload-box {
    display: block;
    margin-top: 22px;
    padding: 18px;
    border: 1px dashed rgba(134, 239, 172, 0.35);
    border-radius: 16px;
    color: #86efac;
    font-weight: 800;
}

.upload-box input {
    margin-top: 12px;
    width: 100%;
}

.excel-paste {
    width: 100%;
    min-height: 180px;
    background: rgba(2, 7, 18, 0.72);
    color: #e8f2ee;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 16px;
    padding: 16px;
    font-family: monospace;
    resize: vertical;
    margin-bottom: 16px;
}

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin: 24px 0;
}

.kpi-card {
    background: rgba(255,255,255,0.065);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 22px;
    padding: 24px;
}

.kpi-card span {
    display: block;
    color: #9fb3aa;
    font-size: 13px;
    font-weight: 900;
    margin-bottom: 10px;
}

.kpi-card strong {
    display: block;
    font-size: 34px;
    color: #e8f2ee;
}

.kpi-card small {
    color: #86efac;
    font-weight: 800;
}

.parameter-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.parameter-grid label {
    color: #9fb3aa;
    font-size: 13px;
    font-weight: 900;
}

.parameter-grid select,
.parameter-grid input {
    width: 100%;
    background: rgba(2, 7, 18, 0.72);
    color: #e8f2ee;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 13px;
    padding: 13px;
    margin-top: 8px;
}

.financial-card {
    margin-top: 24px;
}

.table-actions {
    display: flex;
    gap: 8px;
}

.btn-secondary.small {
    padding: 9px 13px;
}

.finance-table-wrap {
    overflow-x: auto;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,0.09);
}

.finance-table {
    min-width: 1450px;
    width: 100%;
    border-collapse: collapse;
    background: rgba(2,7,18,0.35);
}

.finance-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #0b1d33;
    color: #86efac;
    white-space: nowrap;
    font-size: 12px;
}

.finance-table td {
    white-space: nowrap;
    font-size: 13px;
}

.finance-table td:nth-child(1) {
    color: #86efac;
    font-weight: 900;
}

.finance-table td:nth-child(2) {
    min-width: 260px;
    color: #e8f2ee;
}

.finance-table td:not(:nth-child(1)):not(:nth-child(2)) {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.total-row {
    background: rgba(134,239,172,0.11);
    font-weight: 900;
}

.total-row td {
    color: #ffffff;
}

.finance-table .year-total {
    background: rgba(134, 239, 172, 0.08);
    font-weight: 900;
}

.finance-table .grand-total {
    background: rgba(134, 239, 172, 0.18);
    color: #86efac;
    font-weight: 950;
}

.hidden {
    display: none;
}

.consolidation-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 22px;
    margin-top: 24px;
}

.portfolio-panel {
    background: rgba(255,255,255,0.065);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 24px;
    padding: 20px;
    height: fit-content;
    position: sticky;
    top: 24px;
}

.section-head.compact {
    margin-bottom: 14px;
}

.portfolio-company {
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 18px;
    padding: 16px;
    margin-bottom: 14px;
    background: rgba(2,7,18,0.35);
}

.portfolio-company.active {
    border-color: rgba(134,239,172,0.35);
}

.portfolio-company.inactive {
    opacity: 0.58;
}

.portfolio-company strong {
    display: block;
    color: #86efac;
    font-size: 15px;
}

.portfolio-company span {
    display: block;
    color: #e8f2ee;
    font-size: 13px;
    margin-top: 3px;
}

.portfolio-company small {
    display: block;
    color: #9fb3aa;
    margin-top: 4px;
}

.portfolio-company form {
    margin-top: 12px;
}

.portfolio-numbers {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 12px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.portfolio-numbers span {
    color: #9fb3aa;
    font-size: 12px;
}

.portfolio-numbers b {
    text-align: right;
    color: #e8f2ee;
}

.consolidation-layout.single {
    display: block;
    margin-top: 24px;
}

.horizontal-switchboard {
    margin-top: 22px;
    background: rgba(255,255,255,0.065);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 24px;
    padding: 20px;
}

.switchboard-strip {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.portfolio-company.horizontal {
    min-width: 260px;
    flex: 0 0 260px;
}

.portfolio-main {
    min-height: 72px;
}

.horizontal-numbers {
    grid-template-columns: 1fr auto;
}

.num-cell {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.btn-small {
    display: inline-block;
    text-decoration: none;
    padding: 10px 14px;
    border-radius: 12px;
}

.consolidation-hero {
    min-height: 260px;
    border: 1px solid var(--border);
    border-radius: 28px;
    padding: 34px;
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 26px;
    align-items: stretch;
    background:
        linear-gradient(120deg, rgba(7,17,31,.98), rgba(18,63,42,.74)),
        radial-gradient(circle at right top, rgba(134,239,172,.24), transparent 34%);
    box-shadow: 0 26px 70px rgba(0,0,0,.32);
}

.consolidation-hero h1 {
    font-size: 38px;
    line-height: 1.05;
    margin: 0;
}

.consolidation-hero p:not(.eyebrow) {
    color: var(--muted);
    max-width: 820px;
    line-height: 1.6;
    margin-top: 14px;
}

.currency-card {
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 22px;
    padding: 22px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.currency-card label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 900;
}

.currency-card select {
    width: 100%;
    margin: 10px 0 12px;
    background: rgba(2,7,18,.72);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 13px;
    padding: 13px;
    font-weight: 800;
}

.currency-card small {
    color: var(--accent);
    font-weight: 900;
}

.horizontal-switchboard.pro {
    margin-top: 22px;
    background: linear-gradient(135deg, rgba(255,255,255,.075), rgba(134,239,172,.04));
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 24px;
    padding: 22px;
}

.switchboard-strip {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding: 4px 2px 8px;
}

.portfolio-company.horizontal {
    min-width: 285px;
    flex: 0 0 285px;
    border-radius: 20px;
    padding: 16px;
    background: rgba(2,7,18,.42);
    border: 1px solid rgba(255,255,255,.1);
}

.portfolio-company.horizontal.active {
    border-color: rgba(134,239,172,.42);
    box-shadow: inset 0 0 0 1px rgba(134,239,172,.08);
}

.portfolio-company.horizontal.inactive {
    opacity: .52;
}

.portfolio-topline {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.portfolio-topline strong {
    display: block;
    color: var(--accent);
    font-size: 15px;
}

.portfolio-topline span {
    display: block;
    color: var(--text);
    font-size: 13px;
    margin-top: 4px;
}

.portfolio-topline small {
    display: block;
    color: var(--muted);
    margin-top: 4px;
}

.horizontal-numbers {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 7px 12px;
    margin-top: 15px;
    padding-top: 13px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.horizontal-numbers span {
    color: var(--muted);
    font-size: 12px;
}

.horizontal-numbers b {
    color: var(--text);
    font-variant-numeric: tabular-nums;
}

.kpi-card.highlight {
    border-color: rgba(134,239,172,.35);
    background:
        linear-gradient(135deg, rgba(134,239,172,.13), rgba(255,255,255,.055));
}

.financial-card {
    margin-top: 24px;
}

.finance-table th:first-child,
.finance-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 3;
    background: #0b1d33;
}

.finance-table th:nth-child(2),
.finance-table td:nth-child(2) {
    position: sticky;
    left: 135px;
    z-index: 3;
    background: #0b1d33;
}

.finance-table td:first-child,
.finance-table td:nth-child(2) {
    background: rgba(11,29,51,.98);
}

.finance-table .grand-total {
    background: rgba(134,239,172,.22);
    color: var(--accent);
    font-weight: 950;
}

@media (max-width: 1100px) {
    .consolidation-hero {
        grid-template-columns: 1fr;
    }

    .kpi-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* === Unified page style: align TopCo Consolidation with index.html === */
.company-hero.hero-cover {
    min-height: 360px;
    grid-template-columns: 1.5fr 0.8fr;
    padding: 42px;
    background:
        linear-gradient(120deg, rgba(7, 17, 31, 0.96), rgba(18, 63, 42, 0.75)),
        radial-gradient(circle at right, rgba(134, 239, 172, 0.25), transparent 36%);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.35);
}

.company-hero.hero-cover h1 {
    font-size: 46px;
    line-height: 1.05;
    max-width: 880px;
    margin: 0;
}

.company-hero.hero-cover p:not(.eyebrow) {
    color: var(--muted);
    max-width: 760px;
    font-size: 17px;
    line-height: 1.65;
}

.company-hero .hero-card select {
    width: 100%;
    background: rgba(2, 7, 18, 0.72);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 13px;
    padding: 13px;
    margin-top: 10px;
}

.company-hero .hero-card label {
    display: block;
    margin-top: 26px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

/* Remove the extra consolidation-only green panel look */
.consolidation-hero,
.currency-card {
    background: var(--card);
}

.horizontal-switchboard.pro {
    background: var(--card);
}

.portfolio-company.horizontal {
    background: rgba(2, 7, 18, 0.35);
}

.kpi-card.highlight {
    background: var(--card);
    border-color: var(--border);
}

.finance-table th:first-child,
.finance-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 3;
    background: #0b1d33;
}

.finance-table th:nth-child(2),
.finance-table td:nth-child(2) {
    position: sticky;
    left: 135px;
    z-index: 3;
    background: #0b1d33;
}

.main {
    min-width: 0;
    overflow-x: hidden;
}

.content-card,
.financial-card,
.finance-table-wrap {
    min-width: 0;
    max-width: 100%;
}

.finance-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.finance-table {
    min-width: 1450px;
    width: max-content;
}

.finance-table th:first-child,
.finance-table td:first-child,
.finance-table th:nth-child(2),
.finance-table td:nth-child(2) {
    position: static !important;
    left: auto !important;
    z-index: auto !important;
}

.hero-cover,
.horizontal-switchboard,
.kpi-grid,
.content-card {
    max-width: 100%;
}

.macro-section-row td {
    background: #0b1d33 !important;
    color: #86efac !important;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.formula-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(134,239,172,.12);
    color: #86efac;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.editable-fin-cell {
    cursor: text;
    outline: none;
    border-radius: 6px;
}

.editable-fin-cell:hover {
    background: rgba(134,239,172,.10);
}

.editable-fin-cell.editing {
    background: rgba(134,239,172,.18);
    box-shadow: inset 0 0 0 1px rgba(134,239,172,.45);
}

.editable-fin-cell.saving {
    opacity: .55;
}

.editable-fin-cell.saved {
    background: rgba(134,239,172,.24);
}

.editable-fin-cell.save-error {
    background: rgba(248,113,113,.22);
}

.editable-fin-year-total {
    cursor: text;
    outline: none;
}

.editable-fin-year-total:hover {
    background: rgba(134,239,172,.16);
}

.editable-fin-year-total.editing {
    background: rgba(134,239,172,.24);
    box-shadow: inset 0 0 0 1px rgba(134,239,172,.5);
}

.login-body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at top left, rgba(32, 99, 66, .35), transparent 35%),
        linear-gradient(135deg, #06111f 0%, #071a2f 48%, #04130c 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-shell {
    width: 100%;
    max-width: 460px;
    padding: 28px;
}

.login-card {
    background: rgba(8, 22, 38, .94);
    border: 1px solid rgba(134, 239, 172, .14);
    border-radius: 28px;
    padding: 34px;
    box-shadow: 0 30px 90px rgba(0,0,0,.45);
}

.login-card h1 {
    color: #fff;
    font-size: 30px;
    margin: 10px 0 24px;
}

.login-brand {
    margin-bottom: 30px;
}

.login-card label {
    display: block;
    color: #9fb3c8;
    font-size: 12px;
    font-weight: 800;
    margin: 16px 0 7px;
    text-transform: uppercase;
}

.login-card input {
    width: 100%;
}

.finance-table .group-row td {
    background: rgba(15, 23, 42, .95);
    color: #e5f8ef;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-top: 2px solid rgba(134, 239, 172, .28);
}

.finance-table .group-row td:first-child {
    width: 1px;
}

.finance-table .total-row td {
    background: rgba(22, 101, 52, .18);
    color: #ffffff;
    font-weight: 900;
}

.consolidation-mini-table .group-row td {
    background: #12395c;
    color: #ffffff;
    font-weight: 900;
    text-transform: uppercase;
}

.consolidation-mini-table .source-cell {
    color: #0f7a35;
    font-weight: 700;
    white-space: nowrap;
}

.consolidation-mini-table .total-row td {
    background: #dcefd3;
    color: #07111f;
    font-weight: 900;
}

.consolidation-mini-table td,
.consolidation-mini-table th {
    white-space: nowrap;
}

.company-gap-row td {
    height: 14px;
    padding: 0 !important;
    background: #ffffff !important;
    border: none !important;
}



/* =========================================================
   TOPCO VALUATION — INVESTOR VIEW
   Scoped to .valuation-page to avoid changing other screens.
   ========================================================= */
.valuation-page {
    --valuation-panel: rgba(8, 24, 40, .82);
    --valuation-panel-soft: rgba(255, 255, 255, .045);
    --valuation-line: rgba(255, 255, 255, .105);
    --valuation-line-strong: rgba(134, 239, 172, .28);
    --valuation-positive: #86efac;
    --valuation-warning: #fbbf24;
    --valuation-danger: #fca5a5;
    padding-bottom: 56px;
}

.valuation-page .valuation-note {
    position: relative;
    padding: 14px 18px 14px 46px;
    margin: 0 0 18px;
    border: 1px solid rgba(134, 239, 172, .28);
    border-radius: 14px;
    background: rgba(22, 101, 52, .17);
    color: #d9fbe6;
    font-weight: 750;
    box-shadow: 0 12px 30px rgba(0,0,0,.14);
}

.valuation-page .valuation-note::before {
    content: "✓";
    position: absolute;
    left: 17px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--valuation-positive);
    font-weight: 950;
}

.valuation-page .valuation-note.error {
    border-color: rgba(248, 113, 113, .3);
    background: rgba(127, 29, 29, .2);
    color: #fee2e2;
}

.valuation-page .valuation-note.error::before {
    content: "!";
    color: var(--valuation-danger);
}

.valuation-page .company-hero.hero-cover {
    min-height: 330px;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .65fr);
    align-items: stretch;
    overflow: hidden;
    position: relative;
}

.valuation-page .company-hero.hero-cover::after {
    content: "";
    position: absolute;
    width: 330px;
    height: 330px;
    right: -100px;
    top: -120px;
    border-radius: 50%;
    background: rgba(134, 239, 172, .08);
    filter: blur(4px);
    pointer-events: none;
}

.valuation-page .company-hero h1 {
    max-width: 760px;
}

.valuation-page .valuation-summary-card {
    position: relative;
    z-index: 1;
    margin-top: 0;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
    border-color: rgba(134,239,172,.22);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 18px 50px rgba(0,0,0,.2);
}

.valuation-page .valuation-summary-card > span {
    text-transform: uppercase;
    letter-spacing: .09em;
}

.valuation-page .valuation-summary-card > strong {
    margin: 10px 0 0;
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.valuation-page .valuation-summary-card > p {
    margin: 9px 0 22px;
    color: var(--valuation-positive);
    font-weight: 850;
}

.valuation-page .valuation-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px;
    gap: 10px;
    align-items: stretch;
}

.valuation-page .valuation-toolbar form,
.valuation-page .valuation-toolbar select,
.valuation-page .valuation-toolbar .btn {
    width: 100%;
    margin: 0;
}

.valuation-page .valuation-toolbar .btn,
.valuation-page .valuation-toolbar select {
    min-height: 44px;
}

.valuation-page .valuation-kpi-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.valuation-page .kpi-card {
    min-width: 0;
    padding: 20px;
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.035));
    box-shadow: 0 14px 34px rgba(0,0,0,.13);
}

.valuation-page .kpi-card.highlight {
    border-color: var(--valuation-line-strong);
    background: linear-gradient(145deg, rgba(31,107,69,.34), rgba(255,255,255,.045));
}

.valuation-page .kpi-card strong {
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: clamp(24px, 2.4vw, 34px);
    font-variant-numeric: tabular-nums;
}

.valuation-page .kpi-card small {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    line-height: 1.35;
}

.valuation-page .valuation-section,
.valuation-page .financial-card {
    margin-top: 20px;
    background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
    box-shadow: 0 18px 45px rgba(0,0,0,.16);
}

.valuation-page .section-head {
    gap: 18px;
    align-items: flex-end;
}

.valuation-page .section-head h2 {
    font-size: clamp(22px, 2vw, 28px);
}

.valuation-page .metric-sub {
    display: block;
    max-width: 280px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
    text-align: right;
}

.valuation-page .bridge-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(145px, 1fr));
    gap: 12px;
}

.valuation-page .bridge-item {
    position: relative;
    min-height: 112px;
    padding: 18px;
    border: 1px solid var(--valuation-line);
    border-radius: 16px;
    background: rgba(2, 7, 18, .34);
    overflow: hidden;
}

.valuation-page .bridge-item:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: -10px;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    color: rgba(134,239,172,.6);
    font-size: 17px;
}

.valuation-page .bridge-item span {
    display: block;
    min-height: 32px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    line-height: 1.35;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.valuation-page .bridge-item strong {
    display: block;
    margin-top: 8px;
    color: #fff;
    font-size: 25px;
    font-variant-numeric: tabular-nums;
}

.valuation-page .bridge-item.total {
    border-color: rgba(134,239,172,.4);
    background: linear-gradient(145deg, rgba(31,107,69,.54), rgba(7,17,31,.9));
}

.valuation-page .bridge-item.total span,
.valuation-page .bridge-item.total strong {
    color: var(--valuation-positive);
}

.valuation-page .finance-table-wrap {
    border-color: var(--valuation-line);
    background: rgba(2,7,18,.24);
    scrollbar-color: rgba(134,239,172,.35) rgba(255,255,255,.04);
}

.valuation-page .finance-table {
    width: 100%;
    min-width: 1120px;
    background: transparent;
}

.valuation-page .finance-table th {
    background: rgba(11,29,51,.98);
    color: #c6f6d5;
    border-bottom-color: rgba(134,239,172,.18);
    font-size: 11px;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.valuation-page .finance-table td {
    height: 58px;
    border-bottom-color: rgba(255,255,255,.065);
    color: #dbe8e3;
}

.valuation-page .finance-table tbody tr:hover td {
    background-color: rgba(134,239,172,.045);
}

.valuation-page .portfolio-switchboard-table {
    min-width: 1380px;
}

.valuation-page .portfolio-switchboard-table th:first-child,
.valuation-page .portfolio-switchboard-table td:first-child {
    width: 70px;
    text-align: center;
}

.valuation-page .portfolio-switchboard-table td:nth-child(2) {
    min-width: 220px;
    white-space: normal;
}

.valuation-page .portfolio-switchboard-table td:nth-child(10) {
    min-width: 260px;
}

.valuation-page .portfolio-switchboard-table input[type="number"],
.valuation-page .portfolio-switchboard-table input[type="text"] {
    width: 100%;
    min-width: 105px;
    margin: 0;
    padding: 10px 11px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    background: rgba(2,7,18,.64);
    color: var(--text);
    font: inherit;
}

.valuation-page .portfolio-switchboard-table input[type="text"] {
    min-width: 235px;
}

.valuation-page input[type="checkbox"] {
    appearance: none;
    width: 40px;
    height: 22px;
    margin: 0;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    transition: .2s ease;
}

.valuation-page input[type="checkbox"]::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    left: 2px;
    top: 2px;
    border-radius: 50%;
    background: #d7e2dd;
    transition: .2s ease;
}

.valuation-page input[type="checkbox"]:checked {
    border-color: rgba(134,239,172,.55);
    background: rgba(31,107,69,.9);
}

.valuation-page input[type="checkbox"]:checked::after {
    left: 20px;
    background: var(--valuation-positive);
}

.valuation-page input:focus,
.valuation-page select:focus,
.valuation-page textarea:focus {
    outline: none;
    border-color: rgba(134,239,172,.62) !important;
    box-shadow: 0 0 0 3px rgba(134,239,172,.11);
}

.valuation-page .portfolio-status {
    display: inline-flex;
    margin: 7px 0 0 9px;
    padding: 4px 8px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: var(--muted);
    font-size: 10px;
    font-weight: 850;
}

.valuation-page .portfolio-status.on {
    border-color: rgba(134,239,172,.25);
    background: rgba(134,239,172,.1);
    color: var(--valuation-positive);
}

.valuation-page .data-warning {
    display: block;
    margin-top: 5px;
    color: var(--valuation-warning);
    font-size: 11px;
    font-weight: 750;
}

.valuation-page .form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

.valuation-page .wacc-table {
    border: 1px solid var(--valuation-line);
    border-radius: 16px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: rgba(2,7,18,.25);
}

.valuation-page .wacc-table td:first-child {
    color: var(--muted);
    font-weight: 750;
}

.valuation-page .wacc-table td:last-child {
    color: #fff;
}

.valuation-page .wacc-table .total-row td {
    border-top: 1px solid rgba(134,239,172,.24);
    background: rgba(31,107,69,.26);
    color: var(--valuation-positive);
    font-size: 16px;
}

.valuation-page .sensitivity-table {
    min-width: 680px;
}

.valuation-page .sensitivity-table td.base-cell {
    position: relative;
    color: var(--valuation-positive);
    font-weight: 950;
    background: rgba(134,239,172,.13);
    box-shadow: inset 0 0 0 1px rgba(134,239,172,.34);
}

/* Valuation assumptions modal */
.valuation-page + .modal-backdrop,
.modal-backdrop {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 22px;
    z-index: 1000;
    background: rgba(1, 6, 14, .82);
    backdrop-filter: blur(9px);
}

.modal-backdrop.open {
    display: flex;
}

.modal-backdrop .modal-card {
    width: min(1120px, 96vw);
    max-height: 92vh;
    margin: 0;
    padding: 0;
    overflow: auto;
    border: 1px solid rgba(134,239,172,.18);
    border-radius: 22px;
    background: linear-gradient(145deg, #0b1d33, #06111f);
    color: var(--text);
    box-shadow: 0 34px 110px rgba(0,0,0,.62);
}

.modal-backdrop .modal-head,
.modal-backdrop .modal-footer {
    position: sticky;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 24px;
    background: rgba(7,17,31,.97);
    backdrop-filter: blur(12px);
}

.modal-backdrop .modal-head {
    top: 0;
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.modal-backdrop .modal-head h2 {
    margin: 0;
    font-size: 24px;
}

.modal-backdrop .modal-body {
    padding: 24px;
}

.modal-backdrop .modal-footer {
    bottom: 0;
    justify-content: flex-end;
    border-top: 1px solid rgba(255,255,255,.1);
}

.modal-backdrop .assumption-group {
    margin: 0 0 18px;
    padding: 20px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 16px;
    background: rgba(255,255,255,.035);
}

.modal-backdrop .assumption-group:last-child {
    margin-bottom: 0;
}

.modal-backdrop .assumption-group h3 {
    margin: 0 0 16px;
    padding: 0 0 10px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    color: #dff9e9;
    font-size: 14px;
    letter-spacing: .025em;
}

.modal-backdrop .form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 14px;
}

.modal-backdrop .field label {
    display: block;
    margin-bottom: 7px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.modal-backdrop .field input,
.modal-backdrop .field select,
.modal-backdrop .field textarea {
    width: 100%;
    margin: 0;
    padding: 12px 13px;
    box-sizing: border-box;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 11px;
    background: rgba(2,7,18,.66);
    color: var(--text);
    font: inherit;
}

.modal-backdrop .field textarea {
    min-height: 100px;
    resize: vertical;
}

.modal-backdrop .field.span-2 { grid-column: span 2; }
.modal-backdrop .field.span-4 { grid-column: span 4; }

@media (max-width: 1280px) {
    .valuation-page .valuation-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .valuation-page .bridge-grid {
        grid-template-columns: repeat(3, minmax(145px, 1fr));
    }

    .valuation-page .bridge-item:not(:last-child)::after {
        display: none;
    }
}

@media (max-width: 1000px) {
    .valuation-page .company-hero.hero-cover {
        grid-template-columns: 1fr;
    }

    .valuation-page .valuation-summary-card {
        min-height: 230px;
    }

    .modal-backdrop .form-grid {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }

    .modal-backdrop .field.span-4 {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .valuation-page {
        padding: 20px 16px 42px;
    }

    .valuation-page .company-hero.hero-cover {
        padding: 26px;
        border-radius: 22px;
    }

    .valuation-page .company-hero.hero-cover h1 {
        font-size: 36px;
    }

    .valuation-page .valuation-kpi-grid,
    .valuation-page .bridge-grid {
        grid-template-columns: 1fr;
    }

    .valuation-page .section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .valuation-page .metric-sub {
        text-align: left;
    }

    .modal-backdrop {
        padding: 10px;
    }

    .modal-backdrop .modal-card {
        width: 100%;
        max-height: 96vh;
        border-radius: 16px;
    }

    .modal-backdrop .modal-head,
    .modal-backdrop .modal-body,
    .modal-backdrop .modal-footer {
        padding: 16px;
    }

    .modal-backdrop .form-grid {
        grid-template-columns: 1fr;
    }

    .modal-backdrop .field.span-2,
    .modal-backdrop .field.span-4 {
        grid-column: span 1;
    }
}
