/* ===== site.css ===== */
:root {
    --ns-orange: #f36f21;
    --ns-orange-strong: #d95612;
    --ns-orange-soft: #fff1e8;
    --ns-orange-pale: #fff8f3;
    --ns-charcoal: #252a2e;
    --ns-charcoal-2: #3d4348;
    --ns-green: #4f7b3a;
    --ns-green-soft: #eef6ea;
    --ns-blue: #2d6784;
    --ns-blue-soft: #eaf4f8;
    --ns-red: #c74444;
    --ns-red-soft: #fff0f0;
    --ns-yellow: #b97a16;
    --ns-yellow-soft: #fff7e6;
    --text: #272d31;
    --muted: #697178;
    --muted-2: #8d959b;
    --bg: #f6f4f0;
    --surface: #ffffff;
    --surface-2: #fbfaf8;
    --surface-3: #f0eee9;
    --line: #e7e2da;
    --line-strong: #d8d1c7;
    --shadow: 0 10px 32px rgba(48, 43, 36, .07);
    --shadow-hover: 0 18px 42px rgba(48, 43, 36, .12);
    --radius: 16px;
    --radius-sm: 11px;
    --sidebar-width: 272px;
    --topbar-height: 68px;
}

/* V15.5 - expediente continuo: investigación, diseño, decisión y ejecución */
.idea-lifecycle-v155 > nav {
    grid-template-columns: repeat(5,1fr)
}

.idea-workflow-v155 {
    margin: 1rem 0;
    border: 1px solid #d6e5ef;
    border-radius: 20px;
    background: #f7fafc;
    box-shadow: var(--ns-shadow);
    overflow: hidden
}

.idea-workflow-head-v155 {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.2rem 1.3rem;
    background: linear-gradient(135deg,#fff,#eef7ff);
    border-bottom: 1px solid #dce8f1
}

    .idea-workflow-head-v155 small, .idea-phase-card-v155 > header small, .idea-readiness-v155 > span {
        color: #0757a6;
        font-size: .72rem;
        font-weight: 900;
        letter-spacing: .08em
    }

    .idea-workflow-head-v155 h2 {
        margin: .25rem 0;
        font-size: 1.35rem
    }

    .idea-workflow-head-v155 p {
        margin: 0;
        max-width: 720px;
        color: #50677e
    }

    .idea-workflow-head-v155 > span {
        flex: 0 0 auto;
        padding: .5rem .7rem;
        border-radius: 999px;
        background: #e5f1fb;
        color: #0757a6;
        font-weight: 850;
        font-size: .78rem
    }

.idea-workflow-v155 > .suggested-plan-action-v13 {
    margin: 1rem 1.1rem 0
}

.idea-phase-stack-v155 {
    display: grid;
    gap: 1rem;
    padding: 1.1rem
}

.idea-phase-card-v155 {
    border: 1px solid #d8e4ec;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
    scroll-margin-top: 6rem
}

    .idea-phase-card-v155 > header {
        display: grid;
        grid-template-columns: auto 1fr auto;
        gap: .85rem;
        align-items: center;
        padding: 1rem 1.1rem;
        border-bottom: 1px solid #e5edf3;
        background: #fbfdff
    }

        .idea-phase-card-v155 > header h3 {
            margin: .1rem 0;
            font-size: 1.08rem
        }

        .idea-phase-card-v155 > header p {
            margin: 0;
            color: #5d7184;
            font-size: .86rem
        }

        .idea-phase-card-v155 > header > span {
            padding: .35rem .55rem;
            border-radius: 999px;
            background: #edf4f8;
            color: #4d667a;
            font-size: .75rem;
            font-weight: 800
        }

.phase-number-v155 {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: #0757a6;
    color: #fff;
    font-weight: 900
}

.phase-diseno .phase-number-v155 {
    background: #6d43b5
}

.phase-experimento .phase-number-v155 {
    background: #087f8c
}

.phase-decision .phase-number-v155 {
    background: #bc6b00
}

.phase-preparacionejecucion .phase-number-v155 {
    background: #177647
}

.idea-phase-items-v155 {
    display: grid;
    gap: .75rem;
    padding: 1rem
}

.idea-work-item-v155 {
    border: 1px solid #e0e8ee;
    border-radius: 14px;
    padding: .95rem;
    background: #fff
}

.idea-work-item-head-v155 {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: flex-start
}

    .idea-work-item-head-v155 h4 {
        margin: .2rem 0;
        font-size: 1rem
    }

    .idea-work-item-head-v155 small {
        color: #617487
    }

.work-state-v155 {
    display: inline-flex;
    padding: .2rem .45rem;
    border-radius: 999px;
    background: #edf5fb;
    color: #0757a6;
    font-size: .7rem;
    font-weight: 850
}

.idea-work-item-v155 > p {
    margin: .7rem 0;
    color: #465d71
}

.idea-learning-grid-v155 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .65rem;
    margin-top: .75rem
}

    .idea-learning-grid-v155 > div {
        padding: .7rem;
        border-radius: 11px;
        background: #f6f9fb
    }

    .idea-learning-grid-v155 small {
        display: block;
        margin-bottom: .25rem;
        color: #617487;
        font-size: .67rem;
        font-weight: 900;
        letter-spacing: .06em
    }

    .idea-learning-grid-v155 p {
        margin: 0;
        white-space: pre-wrap
    }

    .idea-learning-grid-v155 .result {
        background: #edf8f2
    }

    .idea-learning-grid-v155 .decision {
        background: #fff7e9
    }

        .idea-learning-grid-v155 .decision b {
            display: block;
            margin-bottom: .2rem;
            color: #8d4f00
        }

.progress-track-v155 {
    height: 7px;
    margin-top: .85rem;
    border-radius: 999px;
    background: #e9eff3;
    overflow: hidden
}

    .progress-track-v155 span {
        display: block;
        height: 100%;
        border-radius: 999px;
        background: linear-gradient(90deg,#0757a6,#20a5cf)
    }

.idea-work-editor-v155, .idea-add-work-v155 {
    margin-top: .8rem;
    border-top: 1px dashed #cbdce7
}

    .idea-work-editor-v155 > summary, .idea-add-work-v155 > summary {
        padding: .75rem .15rem 0;
        list-style: none;
        cursor: pointer;
        color: #0757a6;
        font-weight: 850
    }

    .idea-work-editor-v155 form, .idea-add-work-v155 form {
        margin-top: .8rem
    }

    .idea-work-editor-v155 textarea, .idea-add-work-v155 textarea {
        resize: vertical
    }

.decision-editor-v155 {
    padding: .75rem;
    border-radius: 12px;
    background: #fff7e9
}

.idea-add-work-v155 {
    margin: 0 1rem 1rem;
    padding: .1rem .85rem .85rem;
    border: 1px dashed #9dc4df;
    border-radius: 13px;
    background: #f7fbfe
}

.idea-timeline-secondary-v155 {
    margin: 0 1.1rem 1.1rem;
    border: 1px solid #d8e5ee;
    border-radius: 14px;
    background: #fff;
    overflow: hidden
}

    .idea-timeline-secondary-v155 > summary {
        padding: .85rem 1rem;
        cursor: pointer;
        color: #0757a6;
        font-weight: 850
    }

.idea-readiness-v155 {
    padding: 1rem;
    border: 1px solid #d7e5ef;
    border-radius: 15px;
    background: #fff
}

    .idea-readiness-v155 h3 {
        margin: .25rem 0 .7rem
    }

    .idea-readiness-v155 ul {
        display: grid;
        gap: .55rem;
        padding: 0;
        margin: 0;
        list-style: none
    }

    .idea-readiness-v155 li {
        position: relative;
        padding: .55rem .6rem .55rem 2rem;
        border-radius: 10px;
        background: #f5f8fa
    }

        .idea-readiness-v155 li:before {
            position: absolute;
            left: .65rem;
            top: .63rem;
            content: '○';
            font-weight: 900
        }

        .idea-readiness-v155 li.done {
            background: #edf8f2
        }

            .idea-readiness-v155 li.done:before {
                content: '✓';
                color: #177647
            }

        .idea-readiness-v155 li b, .idea-readiness-v155 li small {
            display: block
        }

        .idea-readiness-v155 li small {
            margin-top: .1rem;
            color: #637587
        }

.readiness-missing-v155 {
    padding: .6rem;
    border-radius: 10px;
    background: #fff5df;
    color: #784b00
}

.idea-detail-layout.is-updating {
    cursor: progress
}

    .idea-detail-layout.is-updating main, .idea-detail-layout.is-updating aside {
        opacity: .55;
        pointer-events: none;
        transition: opacity .18s
    }

.idea-async-status-v155 {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 1200;
    padding: .7rem .9rem;
    border-radius: 12px;
    background: #0d2f4d;
    color: #fff;
    box-shadow: 0 12px 28px rgba(9,37,60,.24);
    font-weight: 800
}

@media(max-width:900px) {
    .idea-lifecycle-v155 > nav {
        grid-template-columns: repeat(2,1fr)
    }

    .idea-workflow-head-v155, .idea-phase-card-v155 > header {
        grid-template-columns: 1fr;
        display: grid
    }

        .idea-workflow-head-v155 > span, .idea-phase-card-v155 > header > span {
            justify-self: start
        }

    .idea-learning-grid-v155 {
        grid-template-columns: 1fr
    }
}

@media(max-width:600px) {
    .idea-phase-stack-v155 {
        padding: .7rem
    }

    .idea-phase-card-v155 > header, .idea-phase-items-v155 {
        padding: .8rem
    }

    .idea-work-item-head-v155 {
        flex-direction: column
    }

    .idea-lifecycle-v155 > nav {
        grid-template-columns: 1fr
    }
}

/* V15.3 · Un caso, un expediente estable y todas sus funciones conservadas */
.innovation-hub-hero-v152 {
    background: linear-gradient(135deg,#071b32 0%,#0b3550 55%,#126270 100%)
}

.innovation-case-section {
    margin-top: 28px
}

.innovation-case-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 20px
}

.innovation-case-card {
    position: relative;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: 0 12px 34px rgba(10,34,55,.08);
    overflow: hidden;
    transition: transform .2s ease,box-shadow .2s ease,border-color .2s ease
}

    .innovation-case-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 20px 42px rgba(10,34,55,.14);
        border-color: rgba(19,114,130,.38)
    }

    .innovation-case-card:before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        width: 5px;
        background: linear-gradient(#1b8fa1,#215ab6)
    }

    .innovation-case-card.evaluating:before {
        background: linear-gradient(#d79a21,#c56d23)
    }

.innovation-case-main {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 22px 22px 20px 26px;
    color: inherit;
    text-decoration: none
}

    .innovation-case-main > header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 16px
    }

        .innovation-case-main > header > div {
            display: flex;
            align-items: center;
            gap: 8px
        }

.innovation-case-status {
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--muted);
    font-size: .76rem;
    font-weight: 800
}

.innovation-case-title small, .innovation-case-next > span {
    display: block;
    color: var(--ns-orange);
    font-size: .67rem;
    letter-spacing: .1em;
    font-weight: 900
}

.innovation-case-title h3 {
    margin: 5px 0 7px;
    font-size: 1.25rem;
    line-height: 1.18
}

.innovation-case-title p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.innovation-case-continuity {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 13px;
    border-radius: 16px;
    background: var(--surface-3)
}

    .innovation-case-continuity > span {
        display: grid;
        place-items: center;
        flex: 0 0 34px;
        width: 34px;
        height: 34px;
        border-radius: 11px;
        color: #fff;
        font-weight: 900;
        background: #657487
    }

        .innovation-case-continuity > span.connected {
            background: #16876b
        }

        .innovation-case-continuity > span.pending {
            background: #c07b13
        }

        .innovation-case-continuity > span.direct {
            background: #365fa8
        }

    .innovation-case-continuity div {
        min-width: 0;
        display: grid;
        gap: 2px
    }

    .innovation-case-continuity small {
        font-size: .64rem;
        letter-spacing: .08em;
        color: var(--muted);
        font-weight: 900
    }

    .innovation-case-continuity b {
        font-size: .9rem
    }

    .innovation-case-continuity em {
        font-size: .75rem;
        color: var(--muted);
        font-style: normal;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

.innovation-case-meta {
    display: grid;
    grid-template-columns: 1.1fr .7fr .9fr;
    gap: 10px
}

    .innovation-case-meta span {
        display: grid;
        gap: 3px
    }

    .innovation-case-meta small {
        font-size: .6rem;
        letter-spacing: .07em;
        color: var(--muted);
        font-weight: 900
    }

    .innovation-case-meta b {
        font-size: .82rem
    }

.innovation-case-progress {
    display: grid;
    gap: 7px
}

    .innovation-case-progress > span {
        display: flex;
        justify-content: space-between;
        align-items: center
    }

    .innovation-case-progress small {
        font-size: .65rem;
        letter-spacing: .08em;
        color: var(--muted);
        font-weight: 900
    }

    .innovation-case-progress > i {
        height: 7px;
        border-radius: 99px;
        background: var(--surface-3);
        overflow: hidden
    }

        .innovation-case-progress > i > em {
            display: block;
            height: 100%;
            border-radius: inherit;
            background: linear-gradient(90deg,#1a8b9b,#245eb7)
        }

.innovation-case-alerts {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

    .innovation-case-alerts span {
        display: flex;
        align-items: baseline;
        gap: 4px;
        padding: 6px 9px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: var(--surface-2)
    }

    .innovation-case-alerts b {
        font-size: .9rem
    }

    .innovation-case-alerts small {
        color: var(--muted);
        font-size: .68rem
    }

    .innovation-case-alerts .danger {
        border-color: rgba(199,68,68,.35);
        background: var(--ns-red-soft);
        color: var(--ns-red)
    }

.innovation-case-next {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-left: 3px solid var(--ns-orange);
    background: var(--ns-orange-pale);
    border-radius: 0 12px 12px 0
}

    .innovation-case-next b {
        font-size: .88rem
    }

    .innovation-case-next small {
        color: var(--muted)
    }

.innovation-case-main > footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: .75rem;
    color: var(--muted)
}

    .innovation-case-main > footer strong {
        color: var(--ns-orange);
        white-space: nowrap
    }

.innovation-case-quick-edit {
    display: block;
    margin: -8px 22px 18px 26px;
    color: var(--ns-orange);
    font-size: .76rem;
    font-weight: 800;
    text-decoration: none
}

.innovation-case-origin {
    margin: 20px 0 24px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: linear-gradient(135deg,var(--ns-orange-pale),var(--surface));
    scroll-margin-top: 22px
}

    .innovation-case-origin > header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 20px;
        margin-bottom: 16px
    }

        .innovation-case-origin > header small {
            color: var(--ns-orange);
            font-size: .68rem;
            letter-spacing: .11em;
            font-weight: 900
        }

        .innovation-case-origin > header h3 {
            margin: 4px 0
        }

        .innovation-case-origin > header p {
            margin: 0;
            color: var(--muted)
        }

.innovation-direct-origin {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-radius: 16px;
    background: var(--surface)
}

    .innovation-direct-origin > span {
        display: grid;
        place-items: center;
        width: 40px;
        height: 40px;
        border-radius: 13px;
        background: #365fa8;
        color: #fff;
        font-size: 1.2rem
    }

    .innovation-direct-origin p {
        margin: 3px 0 0;
        color: var(--muted)
    }

.innovation-source-record {
    padding: 18px;
    border-radius: 17px;
    background: var(--surface);
    border: 1px solid var(--line)
}

    .innovation-source-record + .innovation-source-record {
        margin-top: 14px
    }

.innovation-source-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap
}

    .innovation-source-heading > small {
        margin-left: auto;
        color: var(--muted)
    }

.innovation-source-record > h4 {
    margin: 12px 0;
    font-size: 1.14rem
}

.innovation-source-people {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
    margin-bottom: 12px
}

    .innovation-source-people span, .innovation-source-story span {
        display: grid;
        gap: 4px;
        padding: 10px;
        border-radius: 12px;
        background: var(--surface-3)
    }

    .innovation-source-people small, .innovation-source-story small {
        font-size: .62rem;
        letter-spacing: .08em;
        color: var(--muted);
        font-weight: 900
    }

    .innovation-source-people b {
        font-size: .8rem
    }

.innovation-source-story {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px
}

    .innovation-source-story p {
        margin: 0;
        font-size: .83rem;
        line-height: 1.45
    }

.innovation-source-history {
    margin-top: 12px
}

    .innovation-source-history > summary {
        cursor: pointer;
        color: var(--ns-orange);
        font-weight: 800
    }

.innovation-source-counters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 14px 0
}

    .innovation-source-counters span {
        padding: 7px 10px;
        border-radius: 99px;
        background: var(--surface-3);
        font-size: .75rem
    }

.innovation-source-list {
    display: grid;
    gap: 8px;
    margin-top: 14px
}

    .innovation-source-list h5 {
        margin: 0
    }

    .innovation-source-list article, .innovation-source-list > a {
        display: grid;
        gap: 3px;
        padding: 10px 12px;
        border: 1px solid var(--line);
        border-radius: 12px;
        color: inherit;
        text-decoration: none
    }

    .innovation-source-list p {
        margin: 0
    }

    .innovation-source-list small {
        color: var(--muted)
    }

.expediente-section-start {
    margin-top: 34px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
    scroll-margin-top: 18px
}

.workspace-nav a[href^="#"] {
    scroll-behavior: smooth
}

.workspace-nav-shell {
    position: sticky;
    top: 16px;
    align-self: start;
    max-height: calc(100vh - 32px);
    overflow: auto
}

@media(max-width:1050px) {
    .innovation-case-grid {
        grid-template-columns: 1fr
    }

    .workspace-nav-shell {
        position: static;
        max-height: none
    }

    .innovation-source-people {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:680px) {
    .innovation-case-main {
        padding: 18px 16px 18px 20px
    }

    .innovation-case-meta, .innovation-source-people, .innovation-source-story {
        grid-template-columns: 1fr
    }

    .innovation-case-main > footer, .innovation-case-origin > header {
        align-items: flex-start;
        flex-direction: column
    }

    .innovation-source-heading > small {
        margin-left: 0;
        width: 100%
    }
}

/* La información nunca depende de JavaScript para ser visible. Las animaciones son
   una mejora progresiva: si el navegador bloquea o interrumpe un script, el CRUD,
   el expediente y Juntas siguen apareciendo y pueden operarse con formularios HTML. */
body .reveal,
body .reveal.is-visible {
    opacity: 1;
    transform: none
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    color-scheme: light;
}

body {
    margin: 0;
    min-width: 320px;
    background: var(--bg);
    color: var(--text);
    font: 14px/1.45 "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
    letter-spacing: -.006em;
}

    body.modal-open {
        overflow: hidden;
    }

::selection {
    background: #ffd9c1;
    color: #7f2d00;
}

a {
    color: inherit;
    text-decoration: none;
}

button, input, select, textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

svg {
    width: 1.2em;
    height: 1.2em;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

:focus-visible {
    outline: 3px solid rgba(243, 111, 33, .28);
    outline-offset: 2px;
}

/* Shell */
.app-shell {
    min-height: 100vh;
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--sidebar-width);
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border-right: 1px solid var(--line);
    z-index: 40;
    transition: width .22s ease, transform .22s ease;
}

.main {
    min-height: 100vh;
    margin-left: var(--sidebar-width);
    transition: margin-left .22s ease;
}

.brand-row {
    height: 78px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 18px;
    border-bottom: 1px solid var(--line);
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--ns-orange);
    color: #fff;
    font-weight: 900;
    letter-spacing: -.05em;
    box-shadow: 0 8px 18px rgba(243, 111, 33, .24);
}

.brand-copy {
    min-width: 0;
}

    .brand-copy b {
        display: block;
        color: var(--ns-charcoal);
        font-size: 17px;
        letter-spacing: .13em;
    }

    .brand-copy small {
        display: block;
        color: var(--muted);
        font-size: 10px;
        margin-top: 1px;
    }

.sidebar-collapse {
    width: 31px;
    height: 31px;
    border: 1px solid var(--line);
    background: var(--surface-2);
    color: var(--muted);
    border-radius: 9px;
    display: grid;
    place-items: center;
}

    .sidebar-collapse:hover {
        color: var(--ns-orange);
        border-color: #f1b188;
        background: var(--ns-orange-pale);
    }

.idea-entry {
    margin: 16px 14px 7px;
    min-height: 72px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 24px;
    gap: 10px;
    align-items: center;
    padding: 12px;
    background: linear-gradient(135deg, var(--ns-orange), #f68b48);
    color: #fff;
    border-radius: 15px;
    box-shadow: 0 12px 26px rgba(243, 111, 33, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

    .idea-entry:hover {
        transform: translateY(-2px);
        box-shadow: 0 17px 34px rgba(243, 111, 33, .27);
    }

.idea-entry-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: rgba(255,255,255,.17);
}

.idea-entry-copy {
    min-width: 0;
}

    .idea-entry-copy b, .idea-entry-copy small {
        display: block;
    }

    .idea-entry-copy b {
        font-size: 12px;
    }

    .idea-entry-copy small {
        font-size: 9px;
        color: rgba(255,255,255,.86);
        margin-top: 3px;
    }

.idea-entry-arrow {
    font-size: 22px;
    text-align: center;
}

.nav {
    padding: 7px 10px 18px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    overflow: auto;
}

.nav-section {
    padding: 17px 12px 6px;
    color: #9b958d;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.nav-item {
    min-height: 43px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 12px;
    border-radius: 10px;
    color: #535b61;
    font-weight: 650;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}

    .nav-item:hover {
        background: var(--surface-3);
        color: var(--ns-charcoal);
        transform: translateX(2px);
    }

    .nav-item.active {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
        box-shadow: inset 3px 0 var(--ns-orange);
    }

.nav-icon {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    color: #7e858a;
    flex: 0 0 auto;
}

.nav-item.active .nav-icon {
    color: var(--ns-orange);
}

.nav-text {
    min-width: 0;
    white-space: nowrap;
}

.nav-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ns-orange);
    margin-left: auto;
    box-shadow: 0 0 0 4px rgba(243,111,33,.12);
}

.sidebar-foot {
    margin-top: auto;
    padding: 13px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-top: 1px solid var(--line);
    background: var(--surface-2);
}

.avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
    font-size: 10px;
    font-weight: 850;
}

    .avatar.large {
        width: 48px;
        height: 48px;
        font-size: 14px;
    }

.user-mini {
    min-width: 0;
    flex: 1;
}

    .user-mini b, .user-mini a {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .user-mini b {
        font-size: 11px;
    }

    .user-mini a {
        color: var(--muted);
        font-size: 10px;
        margin-top: 2px;
    }

.icon-btn {
    width: 34px;
    height: 34px;
    border: 1px solid transparent;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: transparent;
    color: var(--muted);
}

    .icon-btn:hover {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
    }

    .icon-btn.danger {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

.sidebar-backdrop {
    display: none;
}

body.sidebar-collapsed {
    --sidebar-width: 82px;
}

    body.sidebar-collapsed .brand-copy,
    body.sidebar-collapsed .idea-entry-copy,
    body.sidebar-collapsed .idea-entry-arrow,
    body.sidebar-collapsed .nav-text,
    body.sidebar-collapsed .nav-section,
    body.sidebar-collapsed .user-mini,
    body.sidebar-collapsed .nav-dot {
        display: none;
    }

    body.sidebar-collapsed .brand-row {
        justify-content: center;
        padding: 0 12px;
    }

    body.sidebar-collapsed .brand {
        flex: 0 0 auto;
    }

    body.sidebar-collapsed .sidebar-collapse {
        position: absolute;
        right: -15px;
        transform: rotate(180deg);
        background: #fff;
    }

    body.sidebar-collapsed .idea-entry {
        grid-template-columns: 1fr;
        margin-inline: 12px;
        padding: 10px;
        min-height: 52px;
    }

    body.sidebar-collapsed .idea-entry-icon {
        margin: auto;
    }

    body.sidebar-collapsed .nav-item {
        justify-content: center;
        padding-inline: 8px;
    }

    body.sidebar-collapsed .sidebar-foot {
        justify-content: center;
    }

        body.sidebar-collapsed .sidebar-foot form {
            display: none;
        }

/* Topbar */
.topbar {
    height: var(--topbar-height);
    position: sticky;
    top: 0;
    z-index: 25;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 28px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--line);
}

.menu-btn {
    display: none;
    width: 38px;
    height: 38px;
    border: 0;
    background: transparent;
    color: var(--text);
    border-radius: 10px;
}

.global-search {
    width: min(590px, 50vw);
    height: 42px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-2);
    color: var(--muted);
    text-align: left;
}

    .global-search:hover {
        background: #fff;
        border-color: #efb28d;
    }

    .global-search svg {
        width: 18px;
        height: 18px;
        color: var(--ns-orange);
    }

    .global-search span {
        flex: 1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

kbd {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--muted);
    padding: 3px 6px;
    border-radius: 6px;
    font: 9px inherit;
}

.top-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.top-icon {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--muted);
}

    .top-icon:hover {
        color: var(--ns-orange);
        border-color: #efb28d;
        background: var(--ns-orange-pale);
    }

.quick-create {
    position: relative;
}

    .quick-create summary {
        list-style: none;
        min-width: 98px;
    }

        .quick-create summary span {
            font-size: 17px;
            line-height: 1;
        }

.quick-menu {
    position: absolute;
    top: 50px;
    right: 0;
    width: 330px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 22px 65px rgba(44, 37, 31, .18);
    z-index: 90;
}

    .quick-menu a {
        display: flex;
        flex-direction: column;
        padding: 12px;
        border-radius: 10px;
    }

        .quick-menu a:hover {
            background: var(--ns-orange-pale);
        }

    .quick-menu b {
        font-size: 13px;
    }

    .quick-menu small {
        color: var(--muted);
        font-size: 10px;
        margin-top: 3px;
    }

.page-heading {
    max-width: 1560px;
    margin: 0 auto;
    padding: 24px 30px 9px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--muted-2);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

    .breadcrumb b {
        color: var(--ns-orange-strong);
    }

.page-heading h1 {
    margin: 7px 0 4px;
    font-size: 29px;
    line-height: 1.15;
    letter-spacing: -.035em;
}

.page-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.content {
    max-width: 1560px;
    margin: 0 auto;
    padding: 19px 30px 46px;
}

/* Common controls */
.btn {
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-weight: 760;
    font-size: 12px;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}

    .btn:hover {
        transform: translateY(-1px);
    }

.btn-primary {
    background: var(--ns-orange);
    color: #fff;
    box-shadow: 0 8px 18px rgba(243,111,33,.2);
}

    .btn-primary:hover {
        background: var(--ns-orange-strong);
        box-shadow: 0 11px 24px rgba(243,111,33,.26);
    }

.btn-ghost {
    background: #fff;
    color: var(--text);
    border-color: var(--line);
}

    .btn-ghost:hover {
        border-color: #efb28d;
        color: var(--ns-orange-strong);
        background: var(--ns-orange-pale);
    }

.btn-danger {
    background: var(--ns-red-soft);
    color: var(--ns-red);
    border-color: #f2c8c8;
}

.btn-block {
    width: 100%;
}

.button-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.link-btn {
    border: 0;
    background: transparent;
    color: var(--ns-orange-strong);
    font-weight: 750;
    padding: 4px;
}

.muted {
    color: var(--muted);
}

.text-center {
    text-align: center;
}

.text-danger {
    color: var(--ns-red);
}

.card {
    margin-bottom: 18px;
    padding: 20px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 4px 16px rgba(48, 43, 36, .035);
}

    .card:hover {
        border-color: var(--line-strong);
    }

    .card.narrow {
        max-width: 650px;
    }

.card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 17px;
}

    .card-head h2 {
        margin: 0;
        font-size: 17px;
        letter-spacing: -.02em;
    }

    .card-head p {
        margin: 5px 0 0;
        color: var(--muted);
        font-size: 12px;
    }

    .card-head > a {
        color: var(--ns-orange-strong);
        font-weight: 750;
        font-size: 12px;
    }

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 18px;
}

    .grid-2.wide-left {
        grid-template-columns: minmax(0, 1.65fr) minmax(310px, .78fr);
    }

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

.align-end {
    align-items: end;
}

/* Status */
.code {
    color: var(--ns-orange-strong);
    font: 800 10px Consolas, monospace;
    letter-spacing: .03em;
}

.badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 5px 8px;
    border-radius: 7px;
    background: #f0efec;
    color: #5e6468;
    font-size: 9px;
    font-weight: 800;
    white-space: nowrap;
}

    .badge.stage {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
    }

    .badge.activa, .badge.aprobado, .badge.aprobada, .badge.terminado, .badge.completada, .badge.exitoso {
        background: var(--ns-green-soft);
        color: #3e6b2b;
    }

    .badge.enproceso, .badge.enrevision, .badge.ejecucion, .badge.activo, .badge.uat {
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
    }

    .badge.warning, .badge.condicionado, .badge.solicitado, .badge.preparacion, .badge.alta {
        background: var(--ns-yellow-soft);
        color: var(--ns-yellow);
    }

    .badge.bloqueada, .badge.rechazado, .badge.rechazada, .badge.fallido, .badge.critica, .badge.critico, .badge.danger {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

    .badge.neutral, .badge.media, .badge.borrador, .badge.planeado {
        background: #f0efec;
        color: #60676c;
    }

    .badge.baja {
        background: #edf6f6;
        color: #367373;
    }

.progress {
    height: 7px;
    overflow: hidden;
    border-radius: 99px;
    background: #ece9e3;
}

    .progress i {
        display: block;
        height: 100%;
        border-radius: 99px;
        background: linear-gradient(90deg, var(--ns-orange), #f8a36c);
    }

/* Friendly entry pages */
.welcome-panel {
    display: grid;
    grid-template-columns: minmax(0,1fr) 255px;
    gap: 25px;
    align-items: center;
    margin-bottom: 18px;
    padding: 28px;
    border: 1px solid #f1c7aa;
    border-radius: 22px;
    background: linear-gradient(135deg, #fff 0%, #fff7f0 72%, #ffe8d8 100%);
    box-shadow: var(--shadow);
    overflow: hidden;
    position: relative;
}

    .welcome-panel::after {
        content: "";
        position: absolute;
        width: 170px;
        height: 170px;
        border-radius: 50%;
        right: -75px;
        top: -80px;
        border: 26px solid rgba(243,111,33,.08);
    }

    .welcome-panel > * {
        position: relative;
        z-index: 1;
    }

.welcome-kicker {
    color: var(--ns-orange-strong);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.welcome-panel h2 {
    margin: 8px 0 8px;
    font-size: 31px;
    line-height: 1.13;
    letter-spacing: -.04em;
    max-width: 760px;
}

.welcome-panel p {
    color: var(--muted);
    margin: 0 0 18px;
    max-width: 720px;
    font-size: 14px;
}

.welcome-score {
    padding: 20px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 8px 24px rgba(48,43,36,.06);
}

    .welcome-score small, .welcome-score span {
        display: block;
        color: var(--muted);
    }

    .welcome-score strong {
        display: block;
        margin: 4px 0;
        font-size: 38px;
        color: var(--ns-orange-strong);
    }

.today-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.today-card {
    min-height: 112px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

    .today-card:hover {
        border-color: #efb28d;
        box-shadow: var(--shadow);
    }

    .today-card header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

        .today-card header span {
            color: var(--muted);
            font-size: 11px;
        }

        .today-card header i {
            width: 28px;
            height: 28px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            font-style: normal;
            background: var(--ns-orange-soft);
            color: var(--ns-orange-strong);
        }

    .today-card strong {
        font-size: 25px;
    }

    .today-card small {
        color: var(--muted);
    }

.my-work-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.58fr) minmax(310px, .72fr);
    gap: 18px;
    align-items: start;
}

.side-stack {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.focus-card {
    border-top: 4px solid var(--ns-orange);
}

.focus-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.focus-item {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-2);
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

    .focus-item:hover {
        background: var(--ns-orange-pale);
        border-color: #efb28d;
        transform: translateX(2px);
    }

.focus-state {
    width: 45px;
    height: 45px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--line);
    color: var(--ns-orange-strong);
    font-weight: 850;
}

.focus-item b {
    display: block;
}

.focus-item p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.focus-date {
    color: var(--muted);
    font-size: 10px;
    text-align: right;
}

.work-list {
    display: flex;
    flex-direction: column;
}

.work-row {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr) 100px 90px;
    gap: 10px;
    align-items: center;
    padding: 12px 3px;
    border-bottom: 1px solid var(--line);
}

    .work-row:last-child {
        border-bottom: 0;
    }

.work-check {
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border: 2px solid #c9c3ba;
    border-radius: 6px;
    color: #fff;
}

.work-row.done .work-check {
    border-color: var(--ns-green);
    background: var(--ns-green);
}

.work-main b, .work-main small {
    display: block;
}

.work-main small {
    color: var(--muted);
    margin-top: 3px;
}

.action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 9px;
}

.action-card {
    display: flex;
    gap: 10px;
    min-height: 88px;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

    .action-card:hover {
        border-color: #efb28d;
        background: var(--ns-orange-pale);
    }

    .action-card > span {
        width: 31px;
        height: 31px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
        font-weight: 850;
        flex: 0 0 auto;
    }

    .action-card b, .action-card small {
        display: block;
    }

    .action-card small {
        color: var(--muted);
        font-size: 9px;
        margin-top: 3px;
    }

.attention-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.attention-item {
    display: flex;
    gap: 10px;
    padding: 12px;
    border-radius: 11px;
    background: var(--surface-2);
    border: 1px solid transparent;
}

    .attention-item:hover {
        border-color: #efb28d;
        background: var(--ns-orange-pale);
    }

    .attention-item > span {
        width: 31px;
        height: 31px;
        display: grid;
        place-items: center;
        flex: 0 0 auto;
        border-radius: 9px;
        background: var(--ns-yellow-soft);
        color: var(--ns-yellow);
        font-weight: 850;
    }

    .attention-item b {
        display: block;
        font-size: 12px;
    }

    .attention-item p {
        margin: 3px 0;
        color: var(--muted);
        font-size: 10px;
    }

    .attention-item small {
        color: var(--muted-2);
        font-size: 9px;
    }

.empty-inline {
    padding: 18px;
    border-radius: 12px;
    background: var(--surface-2);
    color: var(--muted);
}

/* Executive dashboard */
.executive-hero, .org-hero, .gate-hero, .uat-hero, .hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 18px;
    padding: 25px;
    border: 1px solid #f0c6aa;
    border-radius: 20px;
    background: linear-gradient(135deg, #fff 0%, var(--ns-orange-pale) 100%);
    color: var(--text);
}

    .hero h1 {
        margin: 7px 0 8px;
        max-width: 820px;
        font-size: 31px;
        line-height: 1.13;
        letter-spacing: -.04em;
    }

    .hero p {
        max-width: 760px;
        color: var(--muted);
        margin: 0 0 16px;
    }

.eyebrow {
    color: var(--ns-orange-strong);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .14em;
}

.hero-score, .org-hero > div:last-child, .gate-hero > div:last-child, .uat-score {
    min-width: 240px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
    display: flex;
    flex-direction: column;
}

    .hero-score small, .hero-score span, .org-hero span, .gate-hero span, .uat-score span {
        color: var(--muted);
    }

    .hero-score strong, .org-hero strong, .gate-hero strong, .uat-score strong {
        font-size: 32px;
        color: var(--ns-orange-strong);
        margin: 5px 0;
    }

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0,1fr));
    gap: 12px;
    margin-bottom: 18px;
}

    .kpi-grid.four {
        grid-template-columns: repeat(4, minmax(0,1fr));
    }

.kpi {
    min-height: 117px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    position: relative;
    overflow: hidden;
}

    .kpi::before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        width: 4px;
        background: var(--ns-orange);
    }

    .kpi:nth-child(2)::before {
        background: var(--ns-blue);
    }

    .kpi:nth-child(3)::before {
        background: var(--ns-green);
    }

    .kpi:nth-child(4)::before {
        background: var(--ns-yellow);
    }

    .kpi:nth-child(5)::before {
        background: #8c5d73;
    }

    .kpi:nth-child(6)::before {
        background: #6f7376;
    }

    .kpi span {
        color: var(--muted);
        font-size: 11px;
    }

    .kpi strong {
        font-size: 24px;
        line-height: 1.1;
    }

    .kpi small {
        color: var(--muted-2);
    }

.dashboard-grid {
    align-items: stretch;
}

.funnel-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.funnel-row {
    display: grid;
    grid-template-columns: 130px 1fr 30px;
    gap: 10px;
    align-items: center;
}

.bar-track {
    height: 8px;
    overflow: hidden;
    border-radius: 99px;
    background: #ece9e3;
}

    .bar-track i {
        display: block;
        height: 100%;
        border-radius: 99px;
        background: linear-gradient(90deg, var(--ns-orange), #f4a16d);
    }

.alert-stack {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 10px;
}

.alert-row {
    display: flex;
    flex-direction: column;
    padding: 16px;
    border-radius: 12px;
}

    .alert-row b {
        font-size: 24px;
    }

    .alert-row span {
        margin-top: 4px;
    }

    .alert-row.danger {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

    .alert-row.warning {
        background: var(--ns-yellow-soft);
        color: var(--ns-yellow);
    }

    .alert-row.info {
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
    }

    .alert-row.neutral {
        background: var(--surface-3);
        color: #5e6468;
    }

/* Product cards and portfolio */
.product-grid, .cards-view-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 13px;
}

.product-card, .flow-product-card, .portfolio-item, .org-card, .challenge-card, .uat-card, .member-card {
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.product-card, .flow-product-card {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding: 16px;
}

    .product-card:hover, .flow-product-card:hover, .portfolio-item:hover, .org-card:hover, .challenge-card:hover, .uat-card:hover {
        transform: translateY(-2px);
        border-color: #efb28d;
        box-shadow: var(--shadow-hover);
    }

    .product-card-top, .product-card > div:first-child, .flow-product-card header, .flow-product-card footer, .portfolio-item > div:first-child, .portfolio-item footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 9px;
    }

    .product-card h3, .flow-product-card h3, .org-card h3 {
        margin: 0;
        font-size: 16px;
    }

    .product-card p, .flow-product-card p, .org-card p {
        margin: 0;
        color: var(--muted);
        line-height: 1.5;
    }

.product-meta, .mini-meta, .product-foot {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: 10px;
}

.flow-product-card {
    min-height: 226px;
}

    .flow-product-card footer {
        margin-top: auto;
    }

.portfolio-toolbar {
    position: sticky;
    top: calc(var(--topbar-height) + 8px);
    z-index: 15;
    display: flex;
    align-items: end;
    gap: 12px;
    padding: 12px;
}

    .portfolio-toolbar .filter-row {
        flex: 1;
        margin: 0;
    }

.filter-row {
    display: flex;
    align-items: end;
    gap: 9px;
    flex-wrap: wrap;
}

    .filter-row label {
        min-width: 150px;
        flex: 1;
    }

.view-switcher {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 4px;
    border-radius: 10px;
    background: var(--surface-3);
}

    .view-switcher button {
        border: 0;
        border-radius: 7px;
        background: transparent;
        color: var(--muted);
        padding: 7px 10px;
        font-size: 10px;
        font-weight: 750;
    }

        .view-switcher button.active {
            background: #fff;
            color: var(--ns-orange-strong);
            box-shadow: 0 2px 8px rgba(48,43,36,.09);
        }

.portfolio-view {
    display: none;
}

    .portfolio-view.active {
        display: block;
        animation: fadeUp .18s ease;
    }

@keyframes fadeUp {
    from {
        opacity: .35;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.portfolio-board {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(280px, 1fr);
    gap: 12px;
    overflow-x: auto;
    align-items: start;
    padding-bottom: 10px;
}

.portfolio-column {
    min-height: 250px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #efede8;
}

    .portfolio-column > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 5px 4px 12px;
        font-weight: 800;
    }

        .portfolio-column > header b {
            padding: 3px 7px;
            border: 1px solid var(--line);
            border-radius: 7px;
            background: #fff;
        }

.portfolio-item {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px;
    margin-bottom: 9px;
}

    .portfolio-item h3 {
        margin: 0;
        font-size: 14px;
    }

    .portfolio-item p {
        margin: 0;
        color: var(--muted);
        font-size: 11px;
        line-height: 1.45;
    }

.portfolio-table-card {
    padding: 0;
    overflow: hidden;
}

.portfolio-table {
    min-width: 1050px;
}

.product-cell {
    min-width: 300px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.product-color {
    width: 7px;
    height: 38px;
    border-radius: 4px;
    background: var(--ns-orange);
    flex: 0 0 auto;
}

.product-cell b, .product-cell small {
    display: block;
}

.product-cell small {
    max-width: 410px;
    margin-top: 3px;
    color: var(--muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.owner-chip {
    display: flex;
    align-items: center;
    gap: 7px;
}

    .owner-chip .avatar {
        width: 28px;
        height: 28px;
        font-size: 9px;
    }

.inline-progress {
    min-width: 120px;
    display: flex;
    align-items: center;
    gap: 8px;
}

    .inline-progress .progress {
        flex: 1;
    }

    .inline-progress b {
        font-size: 10px;
    }

.timeline-board {
    overflow-x: auto;
    padding: 0;
}

.timeline-shell {
    min-width: 1100px;
}

.timeline-months {
    display: grid;
    grid-template-columns: 280px repeat(12,1fr);
    border-bottom: 1px solid var(--line);
    background: var(--surface-2);
}

    .timeline-months span {
        padding: 10px 6px;
        border-left: 1px solid var(--line);
        color: var(--muted);
        font-size: 9px;
        text-transform: uppercase;
        text-align: center;
    }

        .timeline-months span:first-child {
            border-left: 0;
            text-align: left;
            color: var(--text);
            font-weight: 800;
        }

.timeline-row {
    min-height: 61px;
    display: grid;
    grid-template-columns: 280px 1fr;
    border-bottom: 1px solid var(--line);
}

.timeline-label {
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

    .timeline-label small {
        color: var(--muted);
        margin-top: 3px;
    }

.timeline-lane {
    position: relative;
    background-image: linear-gradient(to right, var(--line) 1px, transparent 1px);
    background-size: calc(100% / 12) 100%;
}

.timeline-product-bar {
    position: absolute;
    top: 17px;
    height: 27px;
    padding: 6px 8px;
    border-radius: 7px;
    background: linear-gradient(90deg, var(--ns-orange), #f8a36c);
    color: #fff;
    font-size: 9px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Forms */
label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #41474b;
    font-size: 11px;
    font-weight: 700;
}

input, select, textarea {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid var(--line-strong);
    border-radius: 9px;
    background: #fff;
    color: var(--text);
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

    input:hover, select:hover, textarea:hover {
        border-color: #edb18b;
    }

    input:focus, select:focus, textarea:focus {
        border-color: var(--ns-orange);
        box-shadow: 0 0 0 3px rgba(243,111,33,.12);
    }

textarea {
    resize: vertical;
}

.check {
    flex-direction: row;
    align-items: center;
}

    .check input {
        width: auto;
    }

.form-stack {
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
}

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

.span-2 {
    grid-column: span 2;
}

.form-page {
    max-width: 1180px;
    margin: 0 auto;
}

.form-progress {
    position: sticky;
    top: calc(var(--topbar-height) + 8px);
    z-index: 12;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 5px;
    margin-bottom: 14px;
    padding: 9px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(48,43,36,.06);
}

    .form-progress button {
        display: flex;
        align-items: center;
        gap: 9px;
        padding: 10px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: var(--muted);
        text-align: left;
    }

        .form-progress button span {
            width: 28px;
            height: 28px;
            display: grid;
            place-items: center;
            border-radius: 8px;
            background: var(--surface-3);
            font-weight: 850;
        }

        .form-progress button b, .form-progress button small {
            display: block;
        }

        .form-progress button b {
            font-size: 11px;
        }

        .form-progress button small {
            margin-top: 2px;
            font-size: 9px;
        }

        .form-progress button.active {
            background: var(--ns-orange-soft);
            color: var(--ns-orange-strong);
        }

            .form-progress button.active span {
                background: var(--ns-orange);
                color: #fff;
            }

.form-section {
    scroll-margin-top: 145px;
}

    .form-section .card-head {
        align-items: center;
    }

.step {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    float: left;
    margin-right: 10px;
    border-radius: 9px;
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
    font-weight: 850;
}

.field-help {
    display: block;
    color: var(--muted);
    font-size: 9px;
    font-weight: 500;
    margin-top: 2px;
}

.form-actions {
    position: sticky;
    bottom: 12px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(10px);
    box-shadow: 0 12px 34px rgba(48,43,36,.13);
}

.draft-status {
    margin-right: auto;
    color: var(--muted);
    font-size: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

    .draft-status i {
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--ns-green);
    }

.validation {
    color: var(--ns-red);
    margin-bottom: 12px;
}

    .validation ul {
        margin: 0;
        padding-left: 18px;
    }

/* Tables */
.table-wrap {
    overflow: auto;
}

table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

th, td {
    padding: 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-2);
    color: #7c827f;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

tbody tr:hover {
    background: var(--ns-orange-pale);
}

td small, td a small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.inline-action {
    display: flex;
    gap: 6px;
    align-items: center;
}

/* Product workspace */
.product-hero {
    border-top: 4px solid var(--ns-orange);
    display: flex;
    justify-content: space-between;
    gap: 25px;
    align-items: center;
}

.product-hero-main {
    min-width: 0;
}

    .product-hero-main h1 {
        margin: 9px 0 8px;
        font-size: 28px;
        letter-spacing: -.035em;
    }

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

.product-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.product-owner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
    margin-top: 15px;
    padding: 12px;
    border-radius: 12px;
    background: var(--surface-2);
}

    .product-owner > div {
        display: flex;
        flex-direction: column;
    }

    .product-owner small {
        color: var(--muted);
        font-size: 9px;
    }

.product-hero-progress {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 15px;
    flex-wrap: wrap;
}

.progress-ring {
    --value: 0;
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--ns-orange) calc(var(--value) * 1%), #ede9e2 0);
    position: relative;
}

    .progress-ring::after {
        content: "";
        position: absolute;
        inset: 8px;
        border-radius: 50%;
        background: #fff;
    }

    .progress-ring strong, .progress-ring small {
        position: relative;
        z-index: 1;
        display: block;
        text-align: center;
    }

    .progress-ring small {
        color: var(--muted);
        font-size: 9px;
    }

.date-block {
    display: flex;
    flex-direction: column;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-2);
}

    .date-block small, .date-block span {
        color: var(--muted);
    }

.tabs {
    position: sticky;
    top: calc(var(--topbar-height) + 8px);
    z-index: 12;
    display: flex;
    gap: 3px;
    overflow: auto;
    padding: 5px;
    margin-bottom: 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 20px rgba(48,43,36,.05);
    scrollbar-width: none;
}

    .tabs::-webkit-scrollbar {
        display: none;
    }

    .tabs a {
        padding: 9px 11px;
        border-radius: 8px;
        color: var(--muted);
        font-size: 10px;
        white-space: nowrap;
    }

        .tabs a.active {
            background: var(--ns-orange-soft);
            color: var(--ns-orange-strong);
            font-weight: 750;
        }

.tab-panel {
    display: none;
}

    .tab-panel.active {
        display: block;
        animation: fadeUp .18s ease;
    }

.long-text {
    color: #4e5559;
    line-height: 1.65;
    white-space: pre-line;
}

.stat-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

    .stat-card small, .stat-card span {
        color: var(--muted);
    }

    .stat-card strong {
        font-size: 24px;
    }

.definition {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 8px 12px;
}

    .definition dt {
        color: var(--muted);
    }

    .definition dd {
        margin: 0;
        font-weight: 650;
    }

.decision {
    display: flex;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px solid var(--line);
}

    .decision p {
        color: var(--muted);
        margin: 3px 0;
    }

.inline-form {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

    .inline-form summary, details summary {
        color: var(--ns-orange-strong);
        font-weight: 750;
        cursor: pointer;
    }

.compact {
    gap: 9px;
}

.benefit {
    display: flex;
    gap: 12px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
}

    .benefit > div {
        flex: 1;
    }

    .benefit small {
        display: block;
        color: var(--muted);
    }

    .benefit > div > div {
        display: flex;
        gap: 16px;
        margin-top: 7px;
    }

.metric-scale {
    height: 22px;
    position: relative;
    display: flex;
    justify-content: space-between;
    color: var(--muted);
    font-size: 9px;
    border-bottom: 5px solid #ece9e3;
}

    .metric-scale i {
        position: absolute;
        left: 0;
        bottom: -5px;
        height: 5px;
        background: var(--ns-orange);
    }

.reading-list > div {
    display: grid;
    grid-template-columns: 80px 1fr 1.5fr;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
}

.reading-list small {
    color: var(--muted);
}

/* Gantt, kanban and collaboration */
.gantt {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.gantt-head, .gantt-row {
    display: grid;
    grid-template-columns: 250px 1fr;
}

.gantt-head {
    background: var(--surface-2);
    border-bottom: 1px solid var(--line);
}

.gantt-label {
    padding: 10px 12px;
}

.gantt-scale {
    display: grid;
    grid-template-columns: repeat(6,1fr);
}

    .gantt-scale span {
        padding: 10px 5px;
        border-left: 1px solid var(--line);
        font-size: 9px;
        text-align: center;
        color: var(--muted);
    }

.gantt-row {
    min-height: 60px;
    border-bottom: 1px solid var(--line);
}

.gantt-lane {
    position: relative;
    background-image: linear-gradient(to right, var(--line) 1px, transparent 1px);
    background-size: calc(100% / 6) 100%;
}

.gantt-bar {
    position: absolute;
    top: 17px;
    height: 27px;
    padding: 6px 8px;
    border-radius: 7px;
    background: var(--ns-orange);
    color: #fff;
    font-size: 9px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

    .gantt-bar.enproceso {
        background: var(--ns-blue);
    }

    .gantt-bar.terminado {
        background: var(--ns-green);
    }

    .gantt-bar.bloqueado {
        background: var(--ns-red);
    }

.sprint-strip {
    display: flex;
    gap: 9px;
    overflow: auto;
    padding-bottom: 8px;
}

.sprint-card {
    min-width: 220px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--surface-2);
}

.kanban {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(250px,1fr);
    gap: 10px;
    overflow-x: auto;
}

.kanban-col {
    padding: 10px;
    border-radius: 12px;
    background: var(--surface-3);
}

    .kanban-col > header {
        display: flex;
        justify-content: space-between;
        padding: 4px 3px 10px;
        font-weight: 800;
    }

.kanban-item {
    padding: 12px;
    margin-bottom: 8px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.work-type {
    color: var(--muted);
    font-size: 9px;
}

.comment {
    padding: 14px;
    margin-bottom: 8px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

    .comment:hover {
        border-color: #efb28d;
    }

.comment-box {
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

    .comment-box textarea {
        border: 0;
        box-shadow: none;
        background: transparent;
    }

.poll {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    margin-bottom: 10px;
}

.poll-option, .poll-result {
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 9px;
    margin-top: 7px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-2);
    position: relative;
    overflow: hidden;
}

    .poll-result i {
        position: absolute;
        left: 0;
        bottom: 0;
        height: 3px;
        background: var(--ns-orange);
    }

    .poll-result > * {
        position: relative;
        z-index: 1;
    }

.poll footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* Organization, UAT, gates, risks and documents */
.org-summary-strip, .uat-overview {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 10px;
    margin-bottom: 14px;
}

    .org-summary-strip .kpi, .uat-overview .kpi {
        margin: 0;
    }

.org-grid {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 12px;
}

.org-card {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .org-card footer {
        display: flex;
        justify-content: space-between;
        color: var(--muted);
        font-size: 10px;
    }

.capacity-meter {
    height: 7px;
    margin-top: 7px;
    border-radius: 99px;
    background: #ece9e3;
    overflow: hidden;
}

    .capacity-meter i {
        display: block;
        height: 100%;
        border-radius: 99px;
        background: var(--ns-green);
    }

    .capacity-meter.over i {
        background: var(--ns-red);
    }

.member-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
}

.member-card {
    padding: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
}

    .member-card > div:nth-child(2) {
        flex: 1;
    }

    .member-card h3 {
        margin: 0;
    }

    .member-card p {
        color: var(--muted);
        margin: 3px 0;
    }

.allocation {
    display: flex;
    flex-direction: column;
    text-align: right;
}

    .allocation strong {
        font-size: 21px;
    }

    .allocation small, .allocation span {
        color: var(--muted);
        font-size: 9px;
    }

.uat-cards {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 11px;
}

.uat-card {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 14px;
}

.uat-case {
    padding: 15px;
    margin-bottom: 10px;
    border: 1px solid var(--line);
    border-radius: 13px;
}

    .uat-case header {
        display: flex;
        justify-content: space-between;
        gap: 12px;
    }

        .uat-case header > div {
            display: flex;
            gap: 8px;
            align-items: center;
        }

    .uat-case p {
        color: var(--muted);
    }

.defect {
    display: flex;
    gap: 9px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

    .defect > div {
        flex: 1;
    }

    .defect p {
        color: var(--muted);
        margin: 3px 0;
    }

.gate-checklist {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.gate-item {
    display: grid;
    grid-template-columns: minmax(280px,1fr) minmax(220px,1fr) auto;
    gap: 9px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 11px;
}

    .gate-item.complete {
        background: var(--ns-green-soft);
        border-color: #c8ddbd;
    }

    .gate-item label span {
        display: flex;
        flex-direction: column;
    }

    .gate-item small {
        color: var(--muted);
    }

.decision-summary {
    padding: 15px;
    border-radius: 12px;
    background: var(--surface-2);
}

.risk-row {
    display: flex;
    gap: 11px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
}

    .risk-row.closed {
        opacity: .58;
    }

        .risk-row.closed b {
            text-decoration: line-through;
        }

.risk-score {
    min-width: 61px;
    height: 37px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--surface-3);
    font-size: 9px;
    font-weight: 850;
}

    .risk-score.alto, .risk-score.critico {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

.risk-row p {
    color: var(--muted);
    margin: 3px 0;
}

.document-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 11px;
}

.document-card {
    display: flex;
    gap: 11px;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 11px;
}

    .document-card:hover {
        border-color: #efb28d;
    }

    .document-card > span {
        width: 40px;
        height: 40px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
        font-size: 9px;
        font-weight: 850;
    }

    .document-card > div {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .document-card small {
        color: var(--muted);
    }

.upload-box {
    display: flex;
    align-items: end;
    gap: 9px;
    margin-top: 14px;
    padding: 14px;
    border-radius: 11px;
    background: var(--surface-2);
}

    .upload-box label {
        flex: 1;
    }

/* Challenges, notifications and room */
.challenge-board {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 13px;
}

.challenge-card {
    padding: 16px;
}

    .challenge-card > div:first-child, .challenge-card footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }

    .challenge-card h3 {
        margin: 12px 0 6px;
        font-size: 17px;
    }

    .challenge-card p {
        color: var(--muted);
        line-height: 1.55;
    }

    .challenge-card footer {
        justify-content: flex-start;
        margin-top: 14px;
    }

.notification-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.notification {
    display: flex;
    gap: 11px;
    padding: 13px;
    border: 1px solid transparent;
    border-radius: 11px;
    background: var(--ns-orange-pale);
}

    .notification.read {
        background: var(--surface-2);
        opacity: .7;
    }

.notification-icon {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--ns-orange-strong);
    font-weight: 850;
}

.notification button {
    flex: 1;
    border: 0;
    background: transparent;
    text-align: left;
}

.notification p {
    margin: 3px 0;
    color: var(--muted);
}

.notification small {
    color: var(--muted-2);
}

.room-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 17px;
    font-weight: 800;
    letter-spacing: .06em;
}

.live-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--ns-green);
    box-shadow: 0 0 0 6px rgba(79,123,58,.12);
    margin-right: 9px;
}

.room-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 16px;
}

.room-card {
    min-height: 295px;
    display: flex;
    flex-direction: column;
    padding: 22px;
    border: 1px solid #efc6ab;
    border-radius: 20px;
    background: linear-gradient(145deg, #fff, var(--ns-orange-pale));
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden;
}

    .room-card::after {
        content: "";
        position: absolute;
        width: 150px;
        height: 150px;
        border-radius: 50%;
        right: -65px;
        top: -65px;
        border: 24px solid rgba(243,111,33,.07);
    }

    .room-card > * {
        position: relative;
        z-index: 1;
    }

.room-stage {
    align-self: flex-start;
    padding: 6px 9px;
    border-radius: 99px;
    background: var(--ns-orange);
    color: #fff;
    font-size: 9px;
    font-weight: 850;
}

.room-card h2 {
    margin: 12px 0 7px;
    font-size: 21px;
}

.room-card p {
    color: var(--muted);
    line-height: 1.55;
}

.room-team {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

    .room-team span {
        padding: 6px 8px;
        border-radius: 8px;
        background: #fff;
        border: 1px solid var(--line);
        font-size: 9px;
    }

.room-progress {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: auto;
}

    .room-progress > div {
        flex: 1;
        height: 8px;
        border-radius: 99px;
        background: #ebe7df;
    }

    .room-progress i {
        display: block;
        height: 100%;
        border-radius: 99px;
        background: var(--ns-orange);
    }

.room-card footer {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    color: var(--muted);
    font-size: 9px;
    margin-top: 13px;
}

/* Dialogs and feedback */
.command-palette {
    width: min(650px, calc(100vw - 32px));
    max-height: min(700px,82vh);
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
    color: var(--text);
    box-shadow: 0 32px 95px rgba(35,30,26,.28);
}

    .command-palette::backdrop {
        background: rgba(36,31,28,.45);
        backdrop-filter: blur(4px);
    }

.command-head {
    height: 60px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 15px;
    border-bottom: 1px solid var(--line);
}

    .command-head svg {
        color: var(--ns-orange);
    }

    .command-head input {
        flex: 1;
        border: 0;
        box-shadow: none;
        font-size: 15px;
    }

.command-body {
    max-height: 610px;
    padding: 9px;
    overflow: auto;
}

.command-label {
    display: block;
    padding: 9px 10px 5px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.command-body a {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border-radius: 10px;
}

    .command-body a:hover, .command-body a.selected {
        background: var(--ns-orange-pale);
    }

    .command-body a > span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
        font-weight: 850;
    }

    .command-body a b, .command-body a small {
        display: block;
    }

    .command-body a small {
        color: var(--muted);
        font-size: 10px;
        margin-top: 3px;
    }

.command-empty {
    display: none;
    padding: 35px;
    color: var(--muted);
    text-align: center;
}

.help-drawer {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(420px,92vw);
    z-index: 130;
    display: flex;
    flex-direction: column;
    background: #fff;
    color: var(--text);
    box-shadow: -24px 0 65px rgba(35,30,26,.2);
    transform: translateX(104%);
    transition: transform .24s ease;
}

    .help-drawer.open {
        transform: none;
    }

    .help-drawer header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        padding: 22px;
        border-bottom: 1px solid var(--line);
    }

        .help-drawer header small {
            color: var(--ns-orange-strong);
            font-weight: 850;
            letter-spacing: .1em;
        }

    .help-drawer h2 {
        margin: 6px 0 0;
        font-size: 21px;
    }

    .help-drawer header button {
        width: 34px;
        height: 34px;
        border: 0;
        border-radius: 9px;
        background: var(--surface-3);
        color: var(--muted);
        font-size: 20px;
    }

.help-content {
    padding: 20px;
    overflow: auto;
}

    .help-content article {
        display: flex;
        gap: 12px;
        padding: 14px 0;
        border-bottom: 1px solid var(--line);
    }

        .help-content article > span {
            width: 30px;
            height: 30px;
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            border-radius: 9px;
            background: var(--ns-orange-soft);
            color: var(--ns-orange-strong);
            font-weight: 850;
        }

    .help-content p {
        margin: 4px 0;
        color: var(--muted);
        font-size: 11px;
        line-height: 1.5;
    }

    .help-content .btn {
        margin-top: 18px;
    }

.drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(35,30,26,.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}

.help-drawer.open + .drawer-backdrop {
    opacity: 1;
    pointer-events: auto;
}

.dialog {
    width: min(720px, 94vw);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 0;
    background: #fff;
    box-shadow: 0 28px 90px rgba(35,30,26,.25);
}

    .dialog::backdrop {
        background: rgba(35,30,26,.42);
    }

.dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 17px 20px;
    border-bottom: 1px solid var(--line);
}

.dialog > form, .dialog > div:not(.dialog-head) {
    padding: 20px;
}

.loading-bar {
    position: fixed;
    inset: 0 0 auto 0;
    height: 3px;
    z-index: 200;
    background: linear-gradient(90deg, var(--ns-orange), #f5a16d, var(--ns-green));
    transform: scaleX(0);
    transform-origin: left;
    opacity: 0;
}

    .loading-bar.active {
        opacity: 1;
        animation: loading 1.2s ease infinite;
    }

@keyframes loading {
    0% {
        transform: scaleX(.08);
    }

    60% {
        transform: scaleX(.72);
    }

    100% {
        transform: scaleX(.96);
    }
}

.toast {
    position: fixed;
    top: 80px;
    right: 20px;
    z-index: 160;
    max-width: 440px;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
    box-shadow: var(--shadow);
    transition: .25s;
}

    .toast.success {
        border-left: 4px solid var(--ns-green);
    }

    .toast.error {
        border-left: 4px solid var(--ns-red);
    }

    .toast button {
        border: 0;
        background: transparent;
        color: var(--muted);
        font-size: 18px;
    }

    .toast.hide {
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
    }

.tour-overlay {
    position: fixed;
    inset: 0;
    z-index: 150;
    background: rgba(35,30,26,.45);
}

.tour-highlight {
    position: relative;
    z-index: 151 !important;
    box-shadow: 0 0 0 5px rgba(243,111,33,.25), 0 20px 60px rgba(0,0,0,.2) !important;
}

.tour-tip {
    position: fixed;
    z-index: 152;
    width: min(330px,calc(100vw - 30px));
    padding: 15px;
    border-radius: 13px;
    background: var(--ns-charcoal);
    color: #fff;
    box-shadow: 0 22px 65px rgba(0,0,0,.3);
}

    .tour-tip p {
        color: #ddd8d1;
        font-size: 11px;
        line-height: 1.5;
    }

    .tour-tip footer {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .tour-tip button {
        border: 0;
        border-radius: 8px;
        padding: 7px 10px;
        font-weight: 750;
    }

    .tour-tip .tour-next {
        background: var(--ns-orange);
        color: #fff;
    }

.empty-state {
    padding: 65px 20px;
    text-align: center;
}

.empty-icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    margin: 0 auto 14px;
    border-radius: 18px;
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
    font-size: 26px;
}

/* Login */
.login-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 22px;
    background: linear-gradient(145deg, #f5f1eb 0%, #fff8f3 55%, #ffe8d7 100%);
}

.login-card {
    width: min(430px,95vw);
    padding: 36px;
    border: 1px solid #efd6c6;
    border-radius: 23px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(65,48,35,.16);
}

.login-brand {
    padding: 0;
    height: auto;
}

.login-card h1 {
    margin: 27px 0 7px;
    font-size: 28px;
}

.login-card > p {
    margin-bottom: 23px;
    color: var(--muted);
}

.login-card > .muted {
    display: block;
    margin-top: 18px;
    text-align: center;
}

/* Responsive */
@media (max-width: 1250px) {
    .kpi-grid {
        grid-template-columns: repeat(3,1fr);
    }

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

    .product-grid, .cards-view-grid, .room-grid {
        grid-template-columns: repeat(2,1fr);
    }

    .my-work-grid {
        grid-template-columns: 1fr;
    }

    .org-summary-strip, .uat-overview {
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width: 980px) {
    :root {
        --sidebar-width: 280px;
    }

    .sidebar {
        transform: translateX(-104%);
        width: 280px;
        box-shadow: 18px 0 48px rgba(45,38,32,.18);
    }

        .sidebar.open {
            transform: none;
        }

    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 35;
        border: 0;
        background: rgba(35,30,26,.34);
    }

    .sidebar.open + .sidebar-backdrop {
        display: block;
    }

    .main {
        margin-left: 0 !important;
    }

    .sidebar-collapse {
        display: none;
    }

    .menu-btn {
        display: grid;
        place-items: center;
    }

    .global-search {
        flex: 1;
        width: auto;
    }

        .global-search span {
            display: none;
        }

        .global-search kbd {
            display: none;
        }

    .topbar {
        padding: 0 14px;
    }

    .page-heading {
        padding: 19px 17px 5px;
    }

        .page-heading h1 {
            font-size: 25px;
        }

    .content {
        padding: 16px 17px 38px;
    }

    .grid-2, .grid-3, .grid-2.wide-left {
        grid-template-columns: 1fr;
    }

    .welcome-panel {
        grid-template-columns: 1fr;
    }

    .welcome-score {
        max-width: 320px;
    }

    .portfolio-toolbar {
        top: calc(var(--topbar-height) + 5px);
        flex-direction: column;
        align-items: stretch;
    }

    .form-progress {
        top: calc(var(--topbar-height) + 5px);
    }

    .product-hero, .hero {
        flex-direction: column;
        align-items: stretch;
    }

    .product-hero-progress {
        justify-content: flex-start;
    }

    .gate-item {
        grid-template-columns: 1fr;
    }

    .upload-box {
        flex-direction: column;
        align-items: stretch;
    }

    .form-grid, .form-grid.cols-3 {
        grid-template-columns: 1fr;
    }

    .span-2 {
        grid-column: span 1;
    }

    .challenge-board, .org-grid, .member-grid, .document-grid, .uat-cards {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 650px) {
    .top-actions {
        gap: 5px;
    }

    .help-button {
        display: none;
    }

    .top-icon {
        width: 35px;
        height: 35px;
    }

    .quick-create summary {
        min-width: 40px;
        font-size: 0;
        padding: 8px;
    }

        .quick-create summary span {
            font-size: 19px;
        }

    .quick-menu {
        right: -5px;
        width: min(330px,90vw);
    }

    .page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

        .page-heading p {
            display: none;
        }

    .welcome-panel {
        padding: 22px;
    }

        .welcome-panel h2 {
            font-size: 26px;
        }

    .today-strip, .kpi-grid, .kpi-grid.four, .org-summary-strip, .uat-overview {
        grid-template-columns: 1fr;
    }

    .product-grid, .cards-view-grid, .room-grid {
        grid-template-columns: 1fr;
    }

    .action-grid {
        grid-template-columns: 1fr;
    }

    .focus-item {
        grid-template-columns: 45px minmax(0,1fr);
    }

    .focus-date {
        display: none;
    }

    .work-row {
        grid-template-columns: 28px minmax(0,1fr);
    }

        .work-row > :nth-last-child(-n+2) {
            display: none;
        }

    .filter-row {
        display: grid;
        grid-template-columns: 1fr;
    }

    .view-switcher {
        overflow: auto;
    }

    .form-progress {
        grid-template-columns: repeat(3,45px);
        justify-content: center;
    }

        .form-progress button {
            justify-content: center;
            padding: 8px;
        }

            .form-progress button div {
                display: none;
            }

    .form-actions {
        flex-wrap: wrap;
    }

    .draft-status {
        width: 100%;
    }

    .definition {
        grid-template-columns: 1fr;
    }

    .room-card footer {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

/* Small V5 portfolio refinements */
.portfolio-summary .today-card:last-child {
    border-color: #f0c2a4;
    background: var(--ns-orange-pale);
}

.portfolio-search {
    min-width: 270px !important;
    flex: 1.8 !important;
}

.advanced-filters {
    position: relative;
    align-self: end;
}

    .advanced-filters > summary {
        min-height: 39px;
        display: flex;
        align-items: center;
        padding: 9px 12px;
        border: 1px solid var(--line);
        border-radius: 9px;
        background: #fff;
        color: var(--muted);
        font-size: 11px;
        font-weight: 750;
        cursor: pointer;
    }

    .advanced-filters[open] > summary {
        border-color: #efb28d;
        color: var(--ns-orange-strong);
        background: var(--ns-orange-pale);
    }

    .advanced-filters > div {
        position: absolute;
        top: 46px;
        right: 0;
        z-index: 50;
        width: 320px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        padding: 13px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fff;
        box-shadow: var(--shadow-hover);
    }

@media (max-width: 650px) {
    .advanced-filters {
        width: 100%;
    }

        .advanced-filters > summary {
            width: 100%;
        }

        .advanced-filters > div {
            position: static;
            width: 100%;
            margin-top: 7px;
            grid-template-columns: 1fr;
            box-shadow: none;
        }
}

/* =====================================================================
   NS INNOVA V6 - EXPERIENCIA COLABORATIVA
   Azul NS + naranja NS. Interfaz clara, participativa y orientada a tareas.
   ===================================================================== */
:root {
    --ns-blue: #0b5cad;
    --ns-blue-strong: #084a8c;
    --ns-blue-bright: #1676d2;
    --ns-blue-soft: #eaf4ff;
    --ns-blue-pale: #f5faff;
    --ns-orange: #f47b20;
    --ns-orange-strong: #d85e08;
    --ns-orange-soft: #fff0e4;
    --ns-orange-pale: #fff8f2;
    --ns-charcoal: #17324a;
    --ns-charcoal-2: #355168;
    --text: #1e3345;
    --muted: #64788a;
    --muted-2: #8ca0b0;
    --bg: #f3f7fb;
    --surface: #ffffff;
    --surface-2: #f8fbfe;
    --surface-3: #edf4fa;
    --line: #dfe8f0;
    --line-strong: #cbd9e5;
    --shadow: 0 12px 34px rgba(28, 67, 101, .08);
    --shadow-hover: 0 18px 48px rgba(28, 67, 101, .14);
    --sidebar-width: 248px;
    --topbar-height: 66px;
}

body {
    background: var(--bg);
    color: var(--text);
}

::selection {
    background: #cce6ff;
    color: #073d73;
}

:focus-visible {
    outline-color: rgba(11,92,173,.3);
}

/* Navegación más ligera */
.sidebar {
    box-shadow: 8px 0 28px rgba(29,69,104,.035);
}

.brand-row {
    height: 72px;
    padding-inline: 16px;
}

.brand-mark {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(145deg, var(--ns-blue) 0 66%, var(--ns-orange) 66% 100%);
    box-shadow: 0 9px 22px rgba(11,92,173,.22);
}

.brand-copy b {
    color: var(--ns-blue-strong);
    font-size: 16px;
}

.brand-copy small {
    color: #71879a;
}

.sidebar-collapse:hover {
    color: var(--ns-blue);
    border-color: #a9cae7;
    background: var(--ns-blue-pale);
}

.idea-entry {
    border: 0;
    text-align: left;
    width: auto;
    background: linear-gradient(135deg, var(--ns-orange), #ff9b52);
    box-shadow: 0 12px 26px rgba(244,123,32,.22);
}

    .idea-entry:hover {
        box-shadow: 0 17px 36px rgba(244,123,32,.29);
    }

.nav {
    padding-top: 5px;
}

.nav-section {
    color: #91a2af;
}

.nav-item {
    color: #52697b;
    font-weight: 700;
}

    .nav-item:hover {
        background: var(--ns-blue-pale);
        color: var(--ns-blue-strong);
    }

    .nav-item.active {
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
        box-shadow: inset 3px 0 var(--ns-blue);
    }

        .nav-item.active .nav-icon {
            color: var(--ns-blue);
        }

.nav-dot {
    background: var(--ns-orange);
    box-shadow: 0 0 0 4px rgba(244,123,32,.12);
}

.avatar {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

.icon-btn:hover {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

/* Barra superior */
.topbar {
    padding-inline: 24px;
    background: rgba(255,255,255,.95);
    border-bottom-color: #dce7f0;
}

.global-search {
    max-width: 700px;
    background: #f6f9fc;
    border-color: #dbe6ef;
}

    .global-search:hover {
        background: #fff;
        border-color: #a8c9e6;
        box-shadow: 0 6px 20px rgba(11,92,173,.07);
    }

    .global-search svg {
        color: var(--ns-blue);
    }

.top-icon:hover {
    color: var(--ns-blue);
    border-color: #a8c9e6;
    background: var(--ns-blue-pale);
}

.top-propose {
    min-width: 112px;
}

.page-heading {
    padding-top: 22px;
}

.breadcrumb b {
    color: var(--ns-blue);
}

.page-heading h1 {
    color: #15324a;
}

.content {
    padding-top: 15px;
}

/* Botones, tarjetas y estados */
.btn {
    border-radius: 11px;
}

.btn-primary {
    background: linear-gradient(135deg, var(--ns-orange), #ff8d3d);
    box-shadow: 0 9px 21px rgba(244,123,32,.22);
}

    .btn-primary:hover {
        background: linear-gradient(135deg, var(--ns-orange-strong), var(--ns-orange));
    }

.btn-blue {
    background: linear-gradient(135deg, var(--ns-blue), var(--ns-blue-bright));
    color: #fff;
    border-color: transparent;
    box-shadow: 0 9px 21px rgba(11,92,173,.18);
}

    .btn-blue:hover {
        background: linear-gradient(135deg, var(--ns-blue-strong), var(--ns-blue));
        box-shadow: 0 12px 26px rgba(11,92,173,.24);
    }

.btn-lg {
    min-height: 46px;
    padding: 11px 18px;
    font-size: 13px;
}

.btn-ghost:hover {
    border-color: #a8c9e6;
    color: var(--ns-blue-strong);
    background: var(--ns-blue-pale);
}

.link-btn, .card-head > a {
    color: var(--ns-blue-strong);
}

.card {
    border-color: #dfe8f0;
    box-shadow: 0 5px 19px rgba(28,67,101,.035);
}

    .card:hover {
        border-color: #cad9e6;
    }

.soft-card {
    background: linear-gradient(180deg,#fff,#fbfdff);
}

.code {
    color: var(--ns-blue-strong);
}

.badge.stage, .stage-pill {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

.progress {
    background: #e8eff5;
}

    .progress i {
        background: linear-gradient(90deg, var(--ns-blue), #31a1e8 72%, var(--ns-orange));
    }

.loading-bar {
    background: linear-gradient(90deg, var(--ns-blue), #28a0e5, var(--ns-orange));
}

.empty-icon {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

/* Inicio participativo */
.participation-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 28px;
    align-items: center;
    min-height: 280px;
    padding: 38px 42px;
    margin-bottom: 16px;
    border: 1px solid #cfe1f1;
    border-radius: 24px;
    background: radial-gradient(circle at 93% 18%, rgba(244,123,32,.17) 0 5%, transparent 5.3%), radial-gradient(circle at 82% 50%, rgba(11,92,173,.09) 0 21%, transparent 21.4%), linear-gradient(135deg,#fff 0%,#f4faff 60%,#eaf5ff 100%);
    box-shadow: var(--shadow);
}

    .participation-hero::before {
        content: "";
        position: absolute;
        width: 210px;
        height: 7px;
        left: 42px;
        top: 0;
        border-radius: 0 0 99px 99px;
        background: linear-gradient(90deg,var(--ns-blue) 0 68%,var(--ns-orange) 68%);
    }

.participation-copy {
    position: relative;
    z-index: 1;
}

.eyebrow {
    color: var(--ns-blue);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.participation-copy h2 {
    max-width: 850px;
    margin: 9px 0 12px;
    font-size: clamp(27px,3vw,42px);
    line-height: 1.08;
    letter-spacing: -.045em;
    color: #143550;
}

    .participation-copy h2 em {
        color: var(--ns-orange-strong);
        font-style: normal;
    }

.participation-copy p {
    max-width: 780px;
    margin: 0 0 22px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.6;
}

.participation-pulse {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 16px;
    padding: 24px;
}

.pulse-orbit {
    position: relative;
    width: 170px;
    height: 170px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(11,92,173,.18);
    background: rgba(255,255,255,.7);
    box-shadow: 0 18px 45px rgba(11,92,173,.1);
}

    .pulse-orbit::before, .pulse-orbit::after {
        content: "";
        position: absolute;
        inset: 18px;
        border-radius: 50%;
        border: 1px dashed rgba(11,92,173,.24);
        animation: orbit 13s linear infinite;
    }

    .pulse-orbit::after {
        inset: 40px;
        border-style: solid;
        border-color: rgba(244,123,32,.25);
        animation-direction: reverse;
        animation-duration: 9s;
    }

    .pulse-orbit > span {
        width: 72px;
        height: 72px;
        display: grid;
        place-items: center;
        z-index: 2;
        border-radius: 23px;
        color: #fff;
        font-size: 22px;
        font-weight: 900;
        background: linear-gradient(145deg,var(--ns-blue) 0 70%,var(--ns-orange) 70%);
        box-shadow: 0 16px 30px rgba(11,92,173,.22);
    }

    .pulse-orbit > i {
        position: absolute;
        width: 13px;
        height: 13px;
        border-radius: 50%;
        background: var(--ns-orange);
        box-shadow: 0 0 0 6px rgba(244,123,32,.12);
    }

        .pulse-orbit > i:nth-of-type(1) {
            top: 12px;
            left: 78px
        }

        .pulse-orbit > i:nth-of-type(2) {
            right: 10px;
            bottom: 46px;
            background: var(--ns-blue)
        }

        .pulse-orbit > i:nth-of-type(3) {
            left: 16px;
            bottom: 29px;
            background: #35a46f
        }

.pulse-copy {
    text-align: center;
}

    .pulse-copy b, .pulse-copy span {
        display: block;
    }

    .pulse-copy b {
        color: #21425d;
    }

    .pulse-copy span {
        margin-top: 4px;
        color: var(--muted);
        font-size: 11px;
    }

@keyframes orbit {
    to {
        transform: rotate(360deg);
    }
}

.start-paths {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 13px;
    margin-bottom: 22px;
}

.start-path {
    position: relative;
    min-height: 142px;
    display: grid;
    grid-template-columns: 48px minmax(0,1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 18px;
    text-align: left;
    background: #fff;
    color: inherit;
    transition: transform .18s,box-shadow .18s,border-color .18s;
}

button.start-path {
    width: 100%;
}

.start-path:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-hover);
}

.start-path-orange {
    border-color: #ffd6b8;
    background: linear-gradient(145deg,#fff,#fff8f2);
}

.start-path-blue {
    border-color: #c7dff2;
    background: linear-gradient(145deg,#fff,#f1f8ff);
}

.start-path-white:hover {
    border-color: #b8d2e7;
}

.start-path-icon, .start-path-progress {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
}

.start-path-orange .start-path-icon {
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
}

.start-path-blue .start-path-icon {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

.start-path-progress {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
    font-weight: 900;
}

.start-path small, .start-path b, .start-path em {
    display: block;
}

.start-path small {
    color: var(--muted-2);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
}

.start-path b {
    margin-top: 5px;
    font-size: 16px;
    color: #173650;
}

.start-path em {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
    font-style: normal;
    line-height: 1.45;
}

.start-arrow {
    color: var(--ns-blue);
    font-size: 20px;
    font-style: normal;
}

.start-path-orange .start-arrow {
    color: var(--ns-orange-strong);
}

.workspace-shell {
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 28px rgba(28,67,101,.045);
}

.workspace-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    padding: 24px 26px 0;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(180deg,#fff,#fbfdff);
}

    .workspace-head h2 {
        margin: 5px 0 3px;
        font-size: 23px;
        letter-spacing: -.03em;
    }

    .workspace-head p {
        margin: 0 0 18px;
        color: var(--muted);
        font-size: 12px;
    }

.workspace-tabs {
    display: flex;
    gap: 5px;
    align-self: flex-end;
}

    .workspace-tabs button {
        min-height: 45px;
        padding: 10px 14px;
        border: 0;
        border-bottom: 3px solid transparent;
        background: transparent;
        color: var(--muted);
        font-weight: 750;
    }

        .workspace-tabs button b {
            margin-left: 5px;
            padding: 3px 6px;
            border-radius: 99px;
            background: var(--surface-3);
            font-size: 9px;
        }

        .workspace-tabs button:hover {
            color: var(--ns-blue);
        }

        .workspace-tabs button.active {
            color: var(--ns-blue-strong);
            border-bottom-color: var(--ns-orange);
        }

            .workspace-tabs button.active b {
                background: var(--ns-blue-soft);
                color: var(--ns-blue-strong);
            }

.workspace-panel {
    display: none;
    padding: 24px 26px 28px;
    animation: fadeUp .2s ease;
}

    .workspace-panel.active {
        display: block;
    }

    .workspace-panel[data-work-panel="tasks"] {
        grid-template-columns: minmax(0,1fr) 300px;
        gap: 24px;
    }

        .workspace-panel[data-work-panel="tasks"].active {
            display: grid;
        }

.workspace-side {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.section-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 14px;
}

    .section-title h3 {
        margin: 0;
        font-size: 18px;
        letter-spacing: -.02em;
    }

    .section-title p {
        margin: 4px 0 0;
        color: var(--muted);
        font-size: 11px;
    }

    .section-title > a {
        color: var(--ns-blue);
        font-weight: 800;
        font-size: 11px;
        white-space: nowrap;
    }

.task-cards {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.task-card {
    display: grid;
    grid-template-columns: 58px minmax(0,1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    transition: .16s;
}

    .task-card:hover {
        transform: translateX(3px);
        border-color: #accbe5;
        background: var(--ns-blue-pale);
    }

    .task-card.late {
        border-left: 4px solid #d44d4d;
    }

    .task-card.soon {
        border-left: 4px solid var(--ns-orange);
    }

    .task-card.normal {
        border-left: 4px solid var(--ns-blue);
    }

.task-progress {
    position: relative;
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
}

    .task-progress i {
        position: absolute;
        inset: 0;
        border-radius: 50%;
        background: conic-gradient(var(--ns-blue) calc(var(--progress) * 1%),#e7eef4 0);
    }

        .task-progress i::after {
            content: "";
            position: absolute;
            inset: 6px;
            border-radius: 50%;
            background: #fff;
        }

    .task-progress b {
        position: relative;
        z-index: 1;
        color: var(--ns-blue-strong);
        font-size: 10px;
    }

.task-copy small, .task-copy strong, .task-copy em {
    display: block;
}

.task-copy small {
    color: var(--muted-2);
    font-size: 9px;
}

.task-copy strong {
    margin: 3px 0;
    font-size: 14px;
}

.task-copy em {
    color: var(--muted);
    font-size: 10px;
    font-style: normal;
}

.task-card.late .task-copy em {
    color: #bd3e3e;
}

.task-card.soon .task-copy em {
    color: var(--ns-orange-strong);
}

.task-open {
    color: var(--ns-blue);
    font-weight: 800;
    font-size: 11px;
}

.mini-status {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 12px;
    align-items: center;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

    .mini-status > span {
        width: 45px;
        height: 45px;
        display: grid;
        place-items: center;
        border-radius: 13px;
        font-size: 20px;
        font-weight: 900;
    }

    .mini-status.blue > span {
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
    }

    .mini-status.orange > span {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
    }

    .mini-status b, .mini-status small {
        display: block;
    }

    .mini-status small {
        margin-top: 3px;
        color: var(--muted);
        font-size: 10px;
        line-height: 1.4;
    }

.tip-card {
    padding: 18px;
    border-radius: 16px;
    background: linear-gradient(145deg,var(--ns-blue-strong),#1472c4);
    color: #fff;
}

    .tip-card > span {
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .12em;
        color: #b9daf6;
    }

    .tip-card b {
        display: block;
        margin: 9px 0 6px;
        font-size: 16px;
    }

    .tip-card p {
        margin: 0;
        color: #dcecf8;
        font-size: 11px;
        line-height: 1.55;
    }

    .tip-card button {
        margin-top: 13px;
        padding: 0;
        border: 0;
        background: transparent;
        color: #fff;
        font-weight: 850;
        font-size: 11px;
    }

.friendly-product-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
}

.friendly-product {
    min-height: 230px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    transition: .17s;
}

    .friendly-product:hover {
        transform: translateY(-3px);
        border-color: #aacbe7;
        box-shadow: var(--shadow-hover);
    }

    .friendly-product header, .friendly-product footer, .friendly-product-meta {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .friendly-product h3 {
        margin: 2px 0 0;
        font-size: 16px;
        line-height: 1.25;
    }

    .friendly-product p {
        margin: 0;
        color: var(--muted);
        font-size: 11px;
        line-height: 1.5;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

.friendly-product-meta {
    margin-top: auto;
    color: var(--muted);
    font-size: 10px;
}

    .friendly-product-meta b {
        color: var(--ns-blue-strong);
    }

.friendly-product footer {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
}

    .friendly-product footer strong {
        color: var(--ns-blue);
    }

.stage-pill {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 5px 8px;
    border-radius: 99px;
    font-size: 9px;
    font-weight: 850;
}

.status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #91a1ad;
    box-shadow: 0 0 0 4px rgba(145,161,173,.13);
}

    .status-dot.activa, .status-dot.aprobado, .status-dot.terminado {
        background: #3e9d68;
        box-shadow: 0 0 0 4px rgba(62,157,104,.13);
    }

    .status-dot.bloqueada, .status-dot.rechazado {
        background: #d44d4d;
        box-shadow: 0 0 0 4px rgba(212,77,77,.13);
    }

.friendly-empty {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px dashed #bfd2e2;
    border-radius: 15px;
    background: #f8fbfe;
}

    .friendly-empty > span {
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border-radius: 13px;
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
        font-weight: 900;
    }

    .friendly-empty > div {
        flex: 1;
    }

    .friendly-empty b, .friendly-empty p {
        display: block;
        margin: 0;
    }

    .friendly-empty p {
        margin-top: 4px;
        color: var(--muted);
        font-size: 11px;
    }

    .friendly-empty.full {
        grid-column: 1/-1;
    }

    .friendly-empty.compact {
        padding: 14px;
    }

.updates-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 24px;
}

.update-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.update-row {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

    .update-row:hover {
        background: var(--ns-blue-pale);
        border-color: #b6d2e8;
    }

    .update-row > span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 11px;
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
        font-weight: 900;
    }

.decision-update > span {
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
}

.update-row b, .update-row p, .update-row small {
    display: block;
    margin: 0;
}

.update-row p {
    margin: 3px 0;
    color: var(--muted);
    font-size: 10px;
}

.update-row small {
    color: var(--muted-2);
    font-size: 9px;
}

.update-row > i {
    color: var(--ns-blue);
    font-style: normal;
    font-weight: 800;
    font-size: 10px;
}

/* Panorama */
.panorama-hero {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(390px,.8fr);
    gap: 26px;
    align-items: center;
    padding: 30px 32px;
    margin-bottom: 15px;
    border: 1px solid #cfe0ef;
    border-radius: 22px;
    background: linear-gradient(135deg,#fff,#f2f8ff);
}

    .panorama-hero h2 {
        margin: 7px 0 8px;
        font-size: 31px;
        letter-spacing: -.04em;
        color: #153550;
    }

    .panorama-hero p {
        margin: 0;
        color: var(--muted);
        font-size: 13px;
    }

.panorama-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .panorama-actions a {
        display: grid;
        grid-template-columns: 42px 1fr;
        gap: 11px;
        align-items: center;
        padding: 11px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: #fff;
    }

        .panorama-actions a:hover {
            transform: translateX(3px);
            border-color: #b5d1e7;
            box-shadow: var(--shadow);
        }

.panorama-action-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 900;
}

    .panorama-action-icon.blue {
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
    }

    .panorama-action-icon.orange {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
    }

    .panorama-action-icon.green {
        background: var(--ns-green-soft);
        color: var(--ns-green);
    }

.panorama-actions b, .panorama-actions small {
    display: block;
}

.panorama-actions small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
}

.signal-strip {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 11px;
    margin-bottom: 17px;
}

.signal-card {
    min-height: 105px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-top: 4px solid #91a8ba;
    border-radius: 14px;
    background: #fff;
}

    .signal-card.blue {
        border-top-color: var(--ns-blue);
    }

    .signal-card.orange {
        border-top-color: var(--ns-orange);
    }

    .signal-card.interactive {
        border-top-color: #36a06d;
    }

    .signal-card:hover {
        box-shadow: var(--shadow);
    }

    .signal-card span, .signal-card small {
        color: var(--muted);
    }

    .signal-card strong {
        margin: 4px 0;
        font-size: 27px;
        color: #173650;
    }

.journey-lanes {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.journey-lane {
    display: grid;
    grid-template-columns: 180px minmax(0,1fr) 45px;
    gap: 13px;
    align-items: center;
    padding: 8px 0;
}

    .journey-lane span b, .journey-lane span small {
        display: block;
    }

    .journey-lane span small {
        color: var(--muted);
        font-size: 9px;
    }

    .journey-lane > div {
        height: 10px;
        border-radius: 99px;
        background: #e9f0f5;
        overflow: hidden;
    }

        .journey-lane > div i {
            display: block;
            height: 100%;
            border-radius: 99px;
            background: linear-gradient(90deg,var(--ns-blue),#32a1e7,var(--ns-orange));
        }

    .journey-lane > strong {
        color: var(--ns-blue-strong);
        text-align: right;
    }

.action-signals {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .action-signals a {
        display: grid;
        grid-template-columns: 44px minmax(0,1fr) auto;
        gap: 10px;
        align-items: center;
        padding: 11px;
        border: 1px solid var(--line);
        border-radius: 12px;
    }

        .action-signals a:hover {
            background: var(--ns-blue-pale);
            border-color: #b7d3e9;
        }

.signal-number {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    font-weight: 900;
}

    .signal-number.orange {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
    }

    .signal-number.blue {
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
    }

    .signal-number.red {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

    .signal-number.green {
        background: var(--ns-green-soft);
        color: var(--ns-green);
    }

.action-signals b, .action-signals small {
    display: block;
}

.action-signals small {
    color: var(--muted);
    font-size: 9px;
    margin-top: 2px;
}

.action-signals i {
    color: var(--ns-blue);
    font-style: normal;
}

.compact-grid {
    grid-template-columns: repeat(4,minmax(0,1fr));
}

    .compact-grid .friendly-product {
        min-height: 215px;
    }

.tribe-snapshot, .challenge-mini-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

    .tribe-snapshot > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 11px;
        border: 1px solid var(--line);
        border-radius: 12px;
    }

        .tribe-snapshot > a:hover {
            background: var(--ns-blue-pale);
        }

    .tribe-snapshot b, .tribe-snapshot small {
        display: block;
    }

    .tribe-snapshot small {
        color: var(--muted);
        font-size: 9px;
        margin-top: 2px;
    }

.capacity-ring {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 900;
    background: radial-gradient(circle,#fff 57%,transparent 58%),conic-gradient(var(--ns-blue) calc(var(--capacity)*1%),#e7eef4 0);
}

    .capacity-ring.over {
        color: var(--ns-red);
        background: radial-gradient(circle,#fff 57%,transparent 58%),conic-gradient(var(--ns-red) 100%,#e7eef4 0);
    }

.challenge-mini-list > a {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 12px;
}

    .challenge-mini-list > a:hover {
        background: var(--ns-orange-pale);
        border-color: #f1c8a9;
    }

    .challenge-mini-list > a > span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 11px;
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
        font-weight: 900;
    }

.challenge-mini-list b, .challenge-mini-list p, .challenge-mini-list small {
    display: block;
    margin: 0;
}

.challenge-mini-list p {
    color: var(--muted);
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.challenge-mini-list small {
    color: var(--muted-2);
    font-size: 9px;
}

.challenge-mini-list i {
    color: var(--ns-orange-strong);
    font-style: normal;
    font-weight: 800;
    font-size: 10px;
}

/* Explorador de productos */
.explore-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 25px 28px;
    margin-bottom: 14px;
    border: 1px solid #cfe1f0;
    border-radius: 20px;
    background: linear-gradient(135deg,#fff,#f3f9ff);
}

    .explore-hero h2 {
        margin: 7px 0 6px;
        font-size: 27px;
        letter-spacing: -.035em;
    }

    .explore-hero p {
        margin: 0;
        color: var(--muted);
    }

.explore-stats {
    display: flex;
    gap: 10px;
}

    .explore-stats > span {
        min-width: 95px;
        padding: 14px;
        text-align: center;
        border: 1px solid var(--line);
        border-radius: 14px;
        background: #fff;
    }

    .explore-stats b, .explore-stats small {
        display: block;
    }

    .explore-stats b {
        font-size: 25px;
        color: #173650;
    }

    .explore-stats small {
        color: var(--muted);
        font-size: 9px;
    }

    .explore-stats .orange {
        border-top: 4px solid var(--ns-orange);
    }

    .explore-stats .blue {
        border-top: 4px solid var(--ns-blue);
    }

.portfolio-control {
    position: sticky;
    top: calc(var(--topbar-height) + 8px);
    z-index: 18;
    padding: 14px 16px;
    margin-bottom: 14px;
}

.portfolio-search-box {
    height: 47px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 13px;
    border: 1px solid #cddde9;
    border-radius: 13px;
    background: #f8fbfe;
}

    .portfolio-search-box:focus-within {
        border-color: #73abd6;
        box-shadow: 0 0 0 4px rgba(11,92,173,.08);
        background: #fff;
    }

    .portfolio-search-box svg {
        color: var(--ns-blue);
    }

    .portfolio-search-box input {
        flex: 1;
        border: 0;
        outline: 0;
        background: transparent;
        color: var(--text);
    }

    .portfolio-search-box kbd {
        white-space: nowrap;
    }

.filter-chips {
    display: flex;
    gap: 7px;
    overflow: auto;
    padding: 12px 0 10px;
    scrollbar-width: thin;
}

    .filter-chips button {
        min-height: 34px;
        display: flex;
        align-items: center;
        gap: 7px;
        padding: 7px 11px;
        border: 1px solid var(--line);
        border-radius: 99px;
        background: #fff;
        color: var(--muted);
        font-weight: 750;
        white-space: nowrap;
    }

        .filter-chips button b {
            padding: 2px 6px;
            border-radius: 99px;
            background: var(--surface-3);
            font-size: 8px;
        }

        .filter-chips button:hover, .filter-chips button.active {
            border-color: #9fc5e3;
            color: var(--ns-blue-strong);
            background: var(--ns-blue-soft);
        }

            .filter-chips button.active b {
                background: #fff;
                color: var(--ns-blue-strong);
            }

.portfolio-tools {
    display: flex;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--line);
    padding-top: 11px;
}

.visible-counter {
    margin-right: auto;
    color: var(--muted);
    font-size: 10px;
}

    .visible-counter b {
        color: var(--text);
        font-size: 13px;
    }

.view-switcher button {
    min-width: auto;
    display: flex;
    align-items: center;
    gap: 6px;
}

    .view-switcher button svg {
        width: 15px;
        height: 15px;
    }

    .view-switcher button.active {
        background: var(--ns-blue);
        color: #fff;
        border-color: var(--ns-blue);
    }

.advanced-filters.v6 {
    align-self: center;
}

    .advanced-filters.v6 > summary {
        min-height: 36px;
        border-radius: 10px;
    }

    .advanced-filters.v6[open] > summary {
        border-color: #9fc5e3;
        color: var(--ns-blue-strong);
        background: var(--ns-blue-pale);
    }

    .advanced-filters.v6 > form {
        position: absolute;
        top: 44px;
        right: 0;
        z-index: 50;
        width: 360px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        padding: 14px;
        border: 1px solid var(--line);
        border-radius: 14px;
        background: #fff;
        box-shadow: var(--shadow-hover);
    }

        .advanced-filters.v6 > form .button-row {
            grid-column: 1/-1;
        }

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

.discover-card .code {
    margin-top: 2px;
}

.tag-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

    .tag-row span {
        padding: 4px 7px;
        border-radius: 7px;
        background: #f1f5f8;
        color: var(--muted);
        font-size: 8px;
        font-weight: 750;
    }

.portfolio-column {
    background: #f0f5f9;
    border-color: #d7e3ec;
}

    .portfolio-column > header b {
        color: var(--ns-blue-strong);
    }

.portfolio-item:hover {
    border-color: #a9c9e3;
}

.timeline-product-bar {
    background: linear-gradient(90deg,var(--ns-blue),#258fd4);
}

.product-color {
    background: linear-gradient(var(--ns-blue),var(--ns-orange));
}

.dynamic-empty[hidden] {
    display: none;
}

[data-product-filter-item][hidden] {
    display: none !important;
}

/* Formulario guiado de propuesta */
.guided-form-header {
    position: sticky;
    top: calc(var(--topbar-height) + 7px);
    z-index: 16;
    margin-bottom: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(14px);
    box-shadow: 0 8px 25px rgba(28,67,101,.06);
    overflow: hidden;
}

.guided-form-progress {
    height: 5px;
    background: #e6edf3;
}

    .guided-form-progress span {
        display: block;
        height: 100%;
        width: 33.333%;
        background: linear-gradient(90deg,var(--ns-blue),#2a9bdf,var(--ns-orange));
        transition: width .3s ease;
    }

.guided-steps {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    padding: 9px;
    gap: 7px;
}

    .guided-steps button {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px;
        border: 0;
        border-radius: 11px;
        background: transparent;
        color: var(--muted);
        text-align: left;
    }

        .guided-steps button:hover {
            background: var(--ns-blue-pale);
        }

        .guided-steps button.active {
            background: var(--ns-blue-soft);
            color: var(--ns-blue-strong);
        }

        .guided-steps button > span {
            width: 29px;
            height: 29px;
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            border-radius: 9px;
            background: #edf2f6;
            font-weight: 900;
        }

        .guided-steps button.active > span {
            background: var(--ns-blue);
            color: #fff;
        }

    .guided-steps b, .guided-steps small {
        display: block;
    }

    .guided-steps small {
        margin-top: 2px;
        font-size: 9px;
    }

.guided-form-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 275px;
    gap: 17px;
    align-items: start;
}

    .guided-form-layout main {
        min-width: 0;
    }

.guided-form-v6 .form-section {
    min-height: 570px;
    margin-bottom: 0;
    padding: 26px;
}

    .guided-form-v6 .form-section[hidden] {
        display: none;
    }

.form-question {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr);
    gap: 14px;
    align-items: start;
    margin-bottom: 22px;
}

    .form-question > span {
        width: 46px;
        height: 46px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        background: linear-gradient(145deg,var(--ns-blue),var(--ns-blue-bright));
        color: #fff;
        font-weight: 900;
        box-shadow: 0 10px 20px rgba(11,92,173,.17);
    }

    .form-question h2 {
        margin: 0;
        font-size: 23px;
        letter-spacing: -.03em;
    }

    .form-question p {
        margin: 5px 0 0;
        color: var(--muted);
    }

.idea-templates {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 9px;
    margin-bottom: 20px;
}

    .idea-templates button {
        display: flex;
        gap: 9px;
        align-items: center;
        padding: 12px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: #fff;
        text-align: left;
    }

        .idea-templates button:hover, .idea-templates button.selected {
            border-color: #9bc2e1;
            background: var(--ns-blue-pale);
            transform: translateY(-2px);
        }

        .idea-templates button > span {
            width: 34px;
            height: 34px;
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            border-radius: 10px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue-strong);
            font-size: 17px;
            font-weight: 900;
        }

    .idea-templates b, .idea-templates small {
        display: block;
    }

    .idea-templates b {
        font-size: 11px;
    }

    .idea-templates small {
        margin-top: 2px;
        color: var(--muted);
        font-size: 8px;
    }

.field-large input {
    min-height: 48px;
    font-size: 16px;
    font-weight: 700;
}

.guided-form-v6 input, .guided-form-v6 select, .guided-form-v6 textarea {
    border-color: #cfdae4;
    background: #fbfdff;
}

    .guided-form-v6 input:focus, .guided-form-v6 select:focus, .guided-form-v6 textarea:focus {
        border-color: #6ea8d5;
        box-shadow: 0 0 0 4px rgba(11,92,173,.08);
        background: #fff;
    }

.form-more {
    margin-top: 18px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #f9fbfd;
}

    .form-more summary {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 13px;
        color: var(--ns-blue-strong);
        font-weight: 800;
        cursor: pointer;
    }

        .form-more summary span {
            width: 23px;
            height: 23px;
            display: grid;
            place-items: center;
            border-radius: 7px;
            background: var(--ns-blue-soft);
        }

    .form-more > div {
        padding: 0 13px 14px;
    }

.step-navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.proposal-preview {
    margin-top: 20px;
    padding: 16px;
    border: 1px dashed #9fc2de;
    border-radius: 15px;
    background: var(--ns-blue-pale);
}

.proposal-preview-label {
    display: block;
    margin-bottom: 9px;
    color: var(--ns-blue);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
}

.proposal-preview > div {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

.proposal-preview h3 {
    margin: 10px 0 5px;
    font-size: 17px;
}

.proposal-preview p {
    margin: 0;
    color: var(--muted);
}

.proposal-preview footer {
    display: flex;
    justify-content: space-between;
    margin-top: 13px;
    color: var(--muted);
    font-size: 9px;
}

.form-companion {
    position: sticky;
    top: calc(var(--topbar-height) + 150px);
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.companion-card, .companion-checklist {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
}

.companion-card {
    display: flex;
    gap: 11px;
}

.companion-icon {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 11px;
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
    font-weight: 900;
}

.companion-card b, .companion-card p {
    display: block;
    margin: 0;
}

.companion-card p {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.5;
}

.companion-checklist b {
    display: block;
    margin-bottom: 10px;
    font-size: 11px;
}

.companion-checklist label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0;
    color: var(--muted);
    font-size: 10px;
}

.companion-checklist i {
    width: 16px;
    height: 16px;
    border: 2px solid #a9c3d8;
    border-radius: 5px;
}

.guided-form-v6 .draft-status {
    padding: 12px;
    border: 1px solid #cfe1f0;
    border-radius: 12px;
    background: var(--ns-blue-pale);
    color: var(--ns-blue-strong);
    font-size: 9px;
}

/* Captura rápida */
.quick-idea-dialog {
    width: min(680px,94vw);
    padding: 0;
    border: 0;
    border-radius: 23px;
    background: #fff;
    box-shadow: 0 30px 100px rgba(17,52,82,.28);
}

    .quick-idea-dialog::backdrop {
        background: rgba(12,37,59,.48);
        backdrop-filter: blur(3px);
    }

.quick-idea-shell {
    padding: 0;
}

    .quick-idea-shell header {
        display: grid;
        grid-template-columns: 48px 1fr 34px;
        gap: 13px;
        align-items: center;
        padding: 22px 24px 15px;
        background: linear-gradient(135deg,#f3f9ff,#fff8f2);
        border-bottom: 1px solid var(--line);
    }

.quick-idea-symbol {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: linear-gradient(145deg,var(--ns-blue) 0 68%,var(--ns-orange) 68%);
    color: #fff;
    font-size: 25px;
    font-weight: 800;
}

.quick-idea-shell header small {
    color: var(--ns-blue);
    font-weight: 900;
    letter-spacing: .12em;
}

.quick-idea-shell h2 {
    margin: 3px 0 0;
    font-size: 24px;
}

.dialog-close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: #fff;
    color: var(--muted);
    font-size: 21px;
}

.quick-idea-shell > p {
    margin: 19px 24px 12px;
    color: var(--muted);
    line-height: 1.55;
}

.quick-idea-shell > label {
    display: block;
    margin: 0 24px;
}

    .quick-idea-shell > label > span {
        display: block;
        margin-bottom: 7px;
        font-weight: 800;
    }

.quick-idea-shell textarea {
    width: 100%;
    min-height: 125px;
    padding: 15px;
    border: 1px solid #bfd3e3;
    border-radius: 14px;
    background: #f9fcff;
    resize: vertical;
    outline: 0;
    font-size: 15px;
    line-height: 1.5;
}

    .quick-idea-shell textarea:focus {
        border-color: #65a4d3;
        box-shadow: 0 0 0 4px rgba(11,92,173,.1);
        background: #fff;
    }

.quick-idea-shell label > small {
    display: block;
    margin-top: 5px;
    text-align: right;
    color: var(--muted);
}

.quick-idea-examples {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin: 14px 24px 0;
}

    .quick-idea-examples > span {
        color: var(--muted);
        font-size: 10px;
    }

    .quick-idea-examples button {
        padding: 6px 9px;
        border: 1px solid var(--line);
        border-radius: 99px;
        background: #fff;
        color: var(--ns-blue-strong);
        font-size: 9px;
        font-weight: 750;
    }

        .quick-idea-examples button:hover {
            background: var(--ns-blue-soft);
            border-color: #a8cae5;
        }

.quick-idea-shell footer {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 19px 24px 22px;
    margin-top: 17px;
    border-top: 1px solid var(--line);
}

/* Paleta y ayuda en azul */
.command-body a:hover, .command-body a.selected, .command-body button:hover, .command-body button.selected {
    background: var(--ns-blue-pale);
}

.command-body a > span, .command-body button > span {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

.command-body button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    text-align: left;
}

    .command-body button > span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        font-weight: 850;
    }

    .command-body button b, .command-body button small {
        display: block;
    }

    .command-body button small {
        color: var(--muted);
        font-size: 10px;
        margin-top: 3px;
    }

.help-drawer header small {
    color: var(--ns-blue);
}

.help-content article > span {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

.tour-highlight {
    box-shadow: 0 0 0 5px rgba(11,92,173,.25),0 20px 60px rgba(0,0,0,.2) !important;
}

.tour-tip {
    background: var(--ns-blue-strong);
}

    .tour-tip .tour-next {
        background: var(--ns-orange);
    }

/* Ajustes generales para pantallas existentes */
.welcome-panel {
    border-color: #cfe1f0;
    background: linear-gradient(135deg,#fff,#f3f9ff 70%,#e9f5ff);
}

.welcome-kicker, .welcome-score strong {
    color: var(--ns-blue-strong);
}

.welcome-panel::after {
    border-color: rgba(11,92,173,.07);
}

.today-card header i, .action-card > span, .document-card > span {
    background: var(--ns-blue-soft);
    color: var(--ns-blue-strong);
}

.today-card:hover, .action-card:hover, .product-card:hover, .flow-product-card:hover, .portfolio-item:hover, .org-card:hover, .challenge-card:hover, .uat-card:hover {
    border-color: #a9c9e3;
}

.focus-card {
    border-top-color: var(--ns-blue);
}

.focus-item:hover {
    background: var(--ns-blue-pale);
    border-color: #a9c9e3;
}

.focus-state {
    color: var(--ns-blue-strong);
}

.room-card {
    border-color: #c6ddee;
    background: linear-gradient(145deg,#fff,var(--ns-blue-pale));
}

    .room-card::after {
        border-color: rgba(11,92,173,.07);
    }

.login-body {
    background: linear-gradient(145deg,#edf6ff,#fff 55%,#fff4eb);
}

.login-card {
    border-color: #cfe0ee;
}

    .login-card .brand-mark {
        background: linear-gradient(145deg,var(--ns-blue) 0 68%,var(--ns-orange) 68%);
    }

/* Responsive V6 */
@media (max-width: 1300px) {
    .friendly-product-grid, .portfolio-friendly-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

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

    .participation-hero {
        grid-template-columns: minmax(0,1fr) 265px;
    }

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

@media (max-width: 1080px) {
    .participation-hero, .panorama-hero {
        grid-template-columns: 1fr;
    }

    .participation-pulse {
        display: none;
    }

    .start-paths {
        grid-template-columns: 1fr;
    }

    .workspace-panel[data-work-panel="tasks"].active {
        grid-template-columns: 1fr;
    }

    .workspace-side {
        display: grid;
        grid-template-columns: repeat(3,1fr);
    }

    .tip-card {
        grid-column: span 1;
    }

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

    .guided-form-layout {
        grid-template-columns: 1fr;
    }

    .form-companion {
        position: static;
        display: grid;
        grid-template-columns: repeat(3,1fr);
    }
}

@media (max-width: 760px) {
    .top-propose {
        min-width: 42px;
        font-size: 0;
        padding-inline: 11px;
    }

        .top-propose span {
            font-size: 18px;
        }

    .participation-hero {
        padding: 28px 23px;
    }

        .participation-hero::before {
            left: 23px;
        }

    .participation-copy h2 {
        font-size: 29px;
    }

    .workspace-head {
        align-items: flex-start;
        flex-direction: column;
        padding: 20px 19px 0;
    }

    .workspace-tabs {
        width: 100%;
        overflow: auto;
    }

        .workspace-tabs button {
            flex: 0 0 auto;
        }

    .workspace-panel {
        padding: 19px;
    }

    .workspace-side {
        grid-template-columns: 1fr;
    }

    .updates-grid {
        grid-template-columns: 1fr;
    }

    .friendly-product-grid, .portfolio-friendly-grid, .compact-grid {
        grid-template-columns: 1fr;
    }

    .explore-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .explore-stats {
        width: 100%;
    }

        .explore-stats > span {
            flex: 1;
            min-width: 0;
        }

    .portfolio-control {
        position: static;
    }

    .portfolio-tools {
        align-items: flex-start;
        flex-direction: column;
    }

    .visible-counter {
        margin: 0;
    }

    .view-switcher {
        width: 100%;
    }

        .view-switcher button span {
            display: none;
        }

    .advanced-filters.v6 {
        width: 100%;
    }

        .advanced-filters.v6 > summary {
            width: 100%;
        }

        .advanced-filters.v6 > form {
            position: static;
            width: 100%;
            margin-top: 7px;
            grid-template-columns: 1fr;
            box-shadow: none;
        }

    .signal-strip {
        grid-template-columns: 1fr;
    }

    .journey-lane {
        grid-template-columns: 125px minmax(0,1fr) 38px;
    }

    .panorama-hero {
        padding: 24px;
    }

    .guided-steps button div {
        display: none;
    }

    .guided-steps button {
        justify-content: center;
    }

    .guided-form-v6 .form-section {
        min-height: 0;
        padding: 20px;
    }

    .idea-templates {
        grid-template-columns: 1fr;
    }

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

    .step-navigation {
        align-items: stretch;
        flex-direction: column-reverse;
    }

        .step-navigation .btn {
            width: 100%;
        }

    .quick-idea-shell footer {
        flex-direction: column-reverse;
    }

        .quick-idea-shell footer .btn {
            width: 100%;
        }

    .task-card {
        grid-template-columns: 53px minmax(0,1fr);
    }

    .task-open {
        display: none;
    }
}

@media (max-width: 520px) {
    .start-path {
        grid-template-columns: 44px minmax(0,1fr);
    }

        .start-path .start-arrow {
            display: none;
        }

    .start-path-icon, .start-path-progress {
        width: 44px;
        height: 44px;
    }

    .participation-copy .button-row {
        align-items: stretch;
        flex-direction: column;
    }

    .participation-copy .btn {
        width: 100%;
    }

    .explore-stats {
        display: grid;
        grid-template-columns: repeat(3,1fr);
    }

        .explore-stats > span {
            padding: 10px 5px;
        }

    .portfolio-search-box kbd {
        display: none;
    }

    .quick-idea-shell header {
        grid-template-columns: 42px 1fr 32px;
        padding: 18px;
    }

    .quick-idea-symbol {
        width: 40px;
        height: 40px;
    }

    .quick-idea-shell > p, .quick-idea-shell > label, .quick-idea-examples {
        margin-left: 18px;
        margin-right: 18px;
    }

    .quick-idea-shell footer {
        padding: 16px 18px 18px;
    }
}

/* Retos y páginas colaborativas */
.challenge-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 30px;
    margin-bottom: 18px;
    border: 1px solid #cfe1f0;
    border-radius: 21px;
    background: linear-gradient(135deg,#fff,#f2f8ff 70%,#fff8f2);
}

    .challenge-welcome h2 {
        margin: 7px 0 6px;
        font-size: 29px;
        letter-spacing: -.035em;
    }

    .challenge-welcome p {
        margin: 0;
        max-width: 860px;
        color: var(--muted);
        line-height: 1.55;
    }

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

    .friendly-challenges .challenge-card {
        display: flex;
        flex-direction: column;
        min-height: 300px;
    }

        .friendly-challenges .challenge-card footer {
            margin-top: auto;
            flex-wrap: wrap;
        }

.sticky-side-card {
    position: sticky;
    top: calc(var(--topbar-height) + 84px);
}

/* Más claridad en tablas y formularios existentes */
table thead th {
    color: #5f7587;
    background: #f5f9fc;
    border-bottom-color: #dce7f0;
}

table tbody tr:hover {
    background: #f6faff;
}

input, select, textarea {
    border-color: #cfdae4;
    background: #fbfdff;
}

    input:focus, select:focus, textarea:focus {
        border-color: #6ea8d5;
        box-shadow: 0 0 0 4px rgba(11,92,173,.08);
        background: #fff;
    }

.dialog-head {
    background: linear-gradient(135deg,#f4f9ff,#fff);
}

    .dialog-head button {
        color: var(--muted);
    }

.org-summary-strip .kpi, .uat-overview .kpi {
    border-top: 4px solid var(--ns-blue);
}

    .org-summary-strip .kpi:nth-child(2), .uat-overview .kpi:nth-child(2) {
        border-top-color: var(--ns-orange);
    }

    .org-summary-strip .kpi:nth-child(3), .uat-overview .kpi:nth-child(3) {
        border-top-color: #36a06d;
    }

    .org-summary-strip .kpi:nth-child(4), .uat-overview .kpi:nth-child(4) {
        border-top-color: #7d6bc4;
    }

.org-card footer span:last-child {
    color: var(--ns-blue);
    font-weight: 800;
}

@media (max-width: 980px) {
    .challenge-welcome {
        align-items: flex-start;
        flex-direction: column;
    }

    .friendly-challenges {
        grid-template-columns: 1fr;
    }

    .sticky-side-card {
        position: static;
    }
}

/* ================================================================
   V7 - Juntas, minutas, acuerdos y seguimiento
   ================================================================ */
.meeting-welcome {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .65fr);
    gap: 30px;
    align-items: center;
    padding: 30px;
    margin-bottom: 20px;
    border: 1px solid #cfe1ef;
    border-radius: 22px;
    background: radial-gradient(circle at 92% 14%, rgba(45,103,132,.12), transparent 32%), linear-gradient(135deg, #fff, #f1f8fc);
    box-shadow: var(--shadow);
}

    .meeting-welcome h2 {
        margin: 8px 0 10px;
        max-width: 900px;
        font-size: clamp(25px, 3vw, 38px);
        line-height: 1.13;
        letter-spacing: -.035em;
    }

        .meeting-welcome h2 em {
            color: var(--ns-blue);
            font-style: normal;
        }

    .meeting-welcome p {
        max-width: 820px;
        margin: 0 0 20px;
        color: var(--muted);
        font-size: 15px;
    }

.meeting-flow-mini {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: 8px;
    padding: 20px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #dceaf3;
}

    .meeting-flow-mini span {
        min-height: 86px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 7px;
        padding: 12px;
        border-radius: 13px;
        background: #f5fafe;
        color: #345267;
        font-weight: 750;
        text-align: center;
    }

        .meeting-flow-mini span b {
            width: 28px;
            height: 28px;
            display: grid;
            place-items: center;
            margin: 0 auto;
            border-radius: 9px;
            background: var(--ns-blue);
            color: #fff;
        }

    .meeting-flow-mini i {
        color: #90a9b9;
        font-style: normal;
    }

.meeting-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

    .meeting-kpis article, .meeting-stat-row article {
        padding: 18px 20px;
        border: 1px solid var(--line);
        border-radius: 16px;
        background: var(--surface);
        box-shadow: 0 6px 22px rgba(48,43,36,.045);
    }

    .meeting-kpis span, .meeting-stat-row span {
        display: block;
        color: var(--muted);
        font-size: 11px;
        font-weight: 750;
        text-transform: uppercase;
        letter-spacing: .07em;
    }

    .meeting-kpis strong, .meeting-stat-row strong {
        display: block;
        margin: 4px 0 2px;
        color: var(--ns-charcoal);
        font-size: 29px;
        line-height: 1;
    }

    .meeting-kpis small, .meeting-stat-row small {
        color: var(--muted);
    }

.meeting-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(340px, .7fr);
    gap: 18px;
    margin-bottom: 18px;
}

.meeting-list, .agreement-mini-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.meeting-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

    .meeting-row:hover {
        transform: translateY(-1px);
        border-color: #b8d5e5;
        box-shadow: 0 10px 24px rgba(45,103,132,.09);
    }

.meeting-date {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    align-content: center;
    border-radius: 13px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
}

    .meeting-date b {
        font-size: 20px;
        line-height: 1;
    }

    .meeting-date small {
        font-size: 9px;
        font-weight: 800;
        letter-spacing: .08em;
    }

.meeting-row-copy {
    min-width: 0;
}

    .meeting-row-copy small, .meeting-row-copy strong, .meeting-row-copy em {
        display: block;
    }

    .meeting-row-copy small {
        color: var(--ns-blue);
        font-size: 10px;
        font-weight: 750;
        text-transform: uppercase;
    }

    .meeting-row-copy strong {
        margin: 2px 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 14px;
    }

    .meeting-row-copy em {
        color: var(--muted);
        font-size: 11px;
        font-style: normal;
    }

.meeting-health {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--ns-green-soft);
    color: var(--ns-green);
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

    .meeting-health::before {
        content: "";
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: currentColor;
    }

    .meeting-health.atencion {
        background: var(--ns-yellow-soft);
        color: var(--ns-yellow);
    }

    .meeting-health.riesgo {
        background: var(--ns-orange-soft);
        color: var(--ns-orange-strong);
    }

    .meeting-health.bloqueado {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

.meeting-open {
    color: var(--ns-blue);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.count-pill {
    min-width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-weight: 850;
}

.agreement-mini {
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

    .agreement-mini:hover {
        border-color: #b8d5e5;
    }

    .agreement-mini.late {
        border-color: #f0c2c2;
        background: #fffafa;
    }

.agreement-check {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-size: 11px;
    font-weight: 850;
}

.agreement-mini span b, .agreement-mini span small {
    display: block;
}

.agreement-mini span b {
    font-size: 12px;
}

.agreement-mini span small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
}

.agreement-mini em {
    color: var(--muted);
    font-size: 10px;
    font-style: normal;
    white-space: nowrap;
}

.agreement-mini.late em {
    color: var(--ns-red);
    font-weight: 750;
}

.minutes-grid, .product-meeting-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 14px;
}

.minute-card, .product-meeting-card {
    display: flex;
    flex-direction: column;
    min-height: 190px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

    .minute-card:hover, .product-meeting-card:hover {
        transform: translateY(-2px);
        border-color: #b8d5e5;
        box-shadow: var(--shadow-hover);
    }

    .minute-card header, .product-meeting-card header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }

    .minute-card time, .product-meeting-card time {
        color: var(--muted);
        font-size: 10px;
    }

    .minute-card h3, .product-meeting-card h3 {
        margin: 14px 0 7px;
        font-size: 15px;
    }

    .minute-card p, .product-meeting-card p {
        flex: 1;
        margin: 0;
        color: var(--muted);
        font-size: 12px;
    }

    .minute-card footer, .product-meeting-card footer {
        display: flex;
        gap: 12px;
        align-items: center;
        margin-top: 16px;
        padding-top: 12px;
        border-top: 1px solid var(--line);
        color: var(--muted);
        font-size: 10px;
    }

        .minute-card footer strong, .product-meeting-card footer strong {
            margin-left: auto;
            color: var(--ns-blue);
        }

.meeting-type-chip {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-size: 9px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.meeting-help-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 18px;
}

    .meeting-help-strip > div, .meeting-help-strip > a {
        min-height: 88px;
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 18px;
        border: 1px solid #d9e7ef;
        border-radius: 16px;
        background: #f7fbfd;
    }

        .meeting-help-strip > div > span {
            width: 38px;
            height: 38px;
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            border-radius: 12px;
            background: var(--ns-blue);
            color: #fff;
            font-weight: 850;
        }

    .meeting-help-strip p {
        margin: 0;
        color: var(--muted);
    }

    .meeting-help-strip a {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        color: var(--ns-blue);
    }

        .meeting-help-strip a span {
            color: var(--muted);
            font-size: 12px;
        }

/* Preparar junta */
.meeting-create-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 20px;
    align-items: start;
}

.meeting-create-main {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.form-card {
    position: relative;
    padding: 24px 24px 24px 82px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow);
    overflow: hidden;
}

    .form-card::before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        width: 6px;
        background: var(--ns-blue);
    }

.form-card-accent-orange::before {
    background: var(--ns-orange);
}

.form-card-accent-green::before {
    background: var(--ns-green);
}

.form-card-number {
    position: absolute;
    top: 24px;
    left: 24px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-size: 16px;
    font-weight: 900;
}

.form-card-accent-orange .form-card-number {
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
}

.form-card-accent-green .form-card-number {
    background: var(--ns-green-soft);
    color: var(--ns-green);
}

.form-card-head {
    margin-bottom: 18px;
}

    .form-card-head > span {
        color: var(--muted);
        font-size: 9px;
        font-weight: 850;
        letter-spacing: .11em;
    }

    .form-card-head h2 {
        margin: 4px 0 5px;
        font-size: 20px;
    }

    .form-card-head p {
        margin: 0;
        color: var(--muted);
    }

.meeting-create-aside .sticky-card {
    position: sticky;
    top: 90px;
    padding: 22px;
    border: 1px solid #cfe1ef;
    border-radius: 18px;
    background: linear-gradient(180deg,#fff,#f4f9fc);
    box-shadow: var(--shadow);
}

.meeting-create-aside h3 {
    margin: 8px 0 14px;
    font-size: 20px;
}

.starter-agenda {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

    .starter-agenda li {
        display: grid;
        grid-template-columns: 52px 1fr;
        gap: 10px;
        align-items: center;
        padding: 10px;
        border: 1px solid #dce9f0;
        border-radius: 12px;
        background: #fff;
    }

        .starter-agenda li span {
            color: var(--ns-blue);
            font-size: 10px;
            font-weight: 800;
        }

        .starter-agenda li b {
            font-size: 11px;
        }

.sticky-card > p {
    color: var(--muted);
    font-size: 11px;
}

/* Detalle de junta */
.meeting-summary-banner {
    display: grid;
    grid-template-columns: minmax(0,1fr) 290px;
    gap: 24px;
    padding: 26px;
    margin-bottom: 15px;
    border: 1px solid #cfe1ef;
    border-radius: 20px;
    background: linear-gradient(135deg,#fff,#f2f8fc);
    box-shadow: var(--shadow);
}

.meeting-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.meeting-summary-main h2 {
    margin: 12px 0 5px;
    font-size: 28px;
    letter-spacing: -.03em;
}

.meeting-summary-main > p {
    max-width: 900px;
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.meeting-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 18px;
    color: #53646f;
    font-size: 11px;
}

.meeting-summary-score {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    border: 1px solid #dbe9f1;
    border-radius: 16px;
    background: #fff;
}

    .meeting-summary-score > span {
        color: var(--muted);
        font-size: 10px;
        text-transform: uppercase;
        font-weight: 800;
    }

    .meeting-summary-score > strong {
        margin: 4px 0 8px;
        color: var(--ns-blue);
        font-size: 34px;
        line-height: 1;
    }

    .meeting-summary-score > a {
        margin-top: 10px;
        color: var(--ns-blue);
        font-size: 10px;
        font-weight: 750;
    }

.status-chip {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--muted);
    font-size: 9px;
    font-weight: 850;
    text-transform: uppercase;
}

    .status-chip.encurso, .status-chip.enproceso {
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
    }

    .status-chip.cerrada, .status-chip.completado {
        background: var(--ns-green-soft);
        color: var(--ns-green);
    }

    .status-chip.bloqueado {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

.meeting-stat-row {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 13px;
    margin-bottom: 17px;
}

    .meeting-stat-row article.attention {
        border-color: #efc5c5;
        background: #fffafa;
    }

.meeting-content-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 18px;
    align-items: start;
}

.meeting-content-main {
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.meeting-content-side {
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.compact-card {
    padding: 18px;
}

.agenda-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.agenda-item {
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

    .agenda-item.enrevision {
        border-color: #91c0d9;
        background: #f4faff;
        box-shadow: inset 4px 0 var(--ns-blue);
    }

    .agenda-item.resuelto {
        background: #fbfdf9;
        opacity: .88;
    }

.agenda-order {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--surface-3);
    color: var(--muted);
    font-weight: 850;
}

.agenda-item.enrevision .agenda-order {
    background: var(--ns-blue);
    color: #fff;
}

.agenda-copy small {
    color: var(--ns-blue);
    font-size: 9px;
    font-weight: 750;
    text-transform: uppercase;
}

.agenda-copy h3 {
    margin: 2px 0 3px;
    font-size: 14px;
}

.agenda-copy p {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
}

.agenda-copy blockquote {
    margin: 9px 0 0;
    padding: 9px 11px;
    border-left: 3px solid var(--ns-blue);
    background: var(--ns-blue-soft);
    color: #435a67;
    font-size: 11px;
}

.agenda-status {
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--muted);
    font-size: 9px;
    font-weight: 750;
    white-space: nowrap;
}

.meeting-add-panel {
    margin-top: 14px;
    border: 1px dashed #b9cfdb;
    border-radius: 13px;
    background: #f9fcfd;
}

    .meeting-add-panel > summary {
        padding: 13px 15px;
        color: var(--ns-blue);
        font-weight: 800;
        cursor: pointer;
        list-style: none;
    }

    .meeting-add-panel[open] > summary {
        border-bottom: 1px solid #dce9f0;
    }

    .meeting-add-panel > form {
        padding: 15px;
    }

    .meeting-add-panel.small > form {
        padding: 12px;
    }

.inline-form-grid {
    display: grid;
    grid-template-columns: 2fr 2fr .7fr 1.4fr auto;
    gap: 10px;
    align-items: end;
}

    .inline-form-grid.agreements-form {
        grid-template-columns: 1.4fr 1.4fr 1fr .8fr .8fr auto;
    }

.progress-update-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.progress-update-card {
    border: 1px solid #dce9f0;
    border-radius: 15px;
    overflow: hidden;
    background: #fff;
}

    .progress-update-card > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding: 14px 16px;
        background: #f6fafc;
    }

        .progress-update-card > header > div {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .progress-update-card > header > strong {
            color: var(--ns-blue);
            font-size: 18px;
        }

            .progress-update-card > header > strong i {
                color: var(--muted);
                font-style: normal;
            }

.progress-update-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
}

    .progress-update-grid > div {
        min-height: 100px;
        padding: 14px 16px;
        border-top: 1px solid var(--line);
    }

        .progress-update-grid > div:nth-child(odd) {
            border-right: 1px solid var(--line);
        }

    .progress-update-grid span {
        display: block;
        margin-bottom: 5px;
        color: var(--muted);
        font-size: 9px;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .06em;
    }

    .progress-update-grid p {
        margin: 0;
        color: #45515a;
        font-size: 11px;
        white-space: pre-line;
    }

.progress-update-card > footer {
    padding: 9px 16px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 9px;
}

.minute-point-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.minute-point {
    display: grid;
    grid-template-columns: 36px minmax(0,1fr);
    gap: 12px;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

    .minute-point.important {
        border-color: #f0b68f;
        box-shadow: inset 4px 0 var(--ns-orange);
    }

.minute-point-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-weight: 900;
}

.minute-point.decision .minute-point-icon {
    background: var(--ns-green-soft);
    color: var(--ns-green);
}

.minute-point.riesgo .minute-point-icon, .minute-point.bloqueo .minute-point-icon {
    background: var(--ns-red-soft);
    color: var(--ns-red);
}

.minute-point.avance .minute-point-icon {
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong);
}

.minute-point header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

    .minute-point header span {
        color: var(--muted);
        font-size: 9px;
        text-transform: uppercase;
        font-weight: 800;
    }

.minute-point p {
    margin: 5px 0 7px;
    color: #4d585f;
    font-size: 11px;
    white-space: pre-line;
}

.minute-point footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--muted);
    font-size: 9px;
}

    .minute-point footer em {
        padding: 3px 6px;
        border-radius: 6px;
        background: var(--surface-3);
        font-style: normal;
    }

.agreement-table-wrap {
    overflow-x: auto;
}

.agreement-table td small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
}

.agreement-table tr.late td {
    background: #fffafa;
}

.agreement-progress {
    width: 94px;
    height: 7px;
    overflow: hidden;
    border-radius: 99px;
    background: var(--surface-3);
}

    .agreement-progress i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: var(--ns-blue);
    }

.row-menu {
    position: relative;
}

    .row-menu > summary {
        color: var(--ns-blue);
        font-size: 10px;
        font-weight: 750;
        cursor: pointer;
    }

    .row-menu > form {
        position: absolute;
        z-index: 5;
        right: 0;
        width: 220px;
        display: grid;
        gap: 7px;
        padding: 12px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fff;
        box-shadow: var(--shadow-hover);
    }

.attendee-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.attendee-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border-radius: 11px;
    background: var(--surface-2);
}

    .attendee-row div b, .attendee-row div small {
        display: block;
    }

    .attendee-row div b {
        font-size: 11px;
    }

    .attendee-row div small {
        color: var(--muted);
        font-size: 9px;
    }

.meeting-context-card dl {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 8px 10px;
    margin: 0 0 14px;
}

.meeting-context-card dt {
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.meeting-context-card dd {
    margin: 0;
    font-size: 11px;
}

.close-meeting-card {
    border-color: #f1c5a7;
    background: var(--ns-orange-pale);
}

/* Inicio: juntas y acuerdos */
.meetings-home-grid {
    align-items: start;
}

.home-meeting-list, .home-agreement-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.home-meeting-row {
    display: grid;
    grid-template-columns: 52px minmax(0,1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

    .home-meeting-row div small, .home-meeting-row div b, .home-meeting-row div p {
        display: block;
        margin: 0;
    }

    .home-meeting-row div small {
        color: var(--ns-blue);
        font-size: 9px;
        font-weight: 750;
    }

    .home-meeting-row div b {
        margin: 2px 0;
        font-size: 12px;
    }

    .home-meeting-row div p {
        color: var(--muted);
        font-size: 9px;
    }

    .home-meeting-row i {
        color: var(--ns-blue);
        font-style: normal;
        font-size: 10px;
        font-weight: 750;
    }

.home-agreement-row {
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

    .home-agreement-row > span {
        width: 38px;
        height: 38px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
        font-size: 10px;
        font-weight: 850;
    }

    .home-agreement-row div b, .home-agreement-row div p {
        display: block;
        margin: 0;
    }

    .home-agreement-row div b {
        font-size: 11px;
    }

    .home-agreement-row div p {
        color: var(--muted);
        font-size: 9px;
    }

    .home-agreement-row em {
        color: var(--muted);
        font-size: 9px;
        font-style: normal;
    }

    .home-agreement-row.late {
        border-color: #f0c2c2;
        background: #fffafa;
    }

        .home-agreement-row.late em {
            color: var(--ns-red);
            font-weight: 750;
        }

/* Explicación de validación con usuarios */
.uat-explainer {
    display: grid;
    grid-template-columns: 54px minmax(0,1fr) minmax(340px,.7fr);
    gap: 18px;
    align-items: center;
    padding: 22px;
    margin-bottom: 18px;
    border: 1px solid #cfe1ef;
    border-radius: 18px;
    background: linear-gradient(135deg,#fff,#f2f8fc);
}

.uat-explainer-icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: var(--ns-blue);
    color: #fff;
    font-size: 22px;
    font-weight: 900;
}

.uat-explainer h2 {
    margin: 4px 0 5px;
}

.uat-explainer p {
    margin: 0;
    color: var(--muted);
}

.uat-explainer ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
}

.uat-explainer li {
    padding: 11px;
    border: 1px solid #dce9f0;
    border-radius: 12px;
    background: #fff;
}

    .uat-explainer li b, .uat-explainer li span {
        display: block;
    }

    .uat-explainer li b {
        color: var(--ns-blue);
        font-size: 11px;
    }

    .uat-explainer li span {
        margin-top: 3px;
        color: var(--muted);
        font-size: 9px;
    }

/* Modo junta */
.meeting-room-body {
    min-height: 100vh;
    background: #edf4f8;
    color: #26333c;
    overflow-x: hidden;
}

.meeting-room-topbar {
    height: 78px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
    padding: 0 24px;
    border-bottom: 1px solid #d5e3eb;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 24px rgba(35,66,83,.06);
}

    .meeting-room-topbar > div:first-child {
        display: flex;
        align-items: center;
        gap: 12px;
    }

        .meeting-room-topbar > div:first-child small, .meeting-room-topbar > div:first-child b {
            display: block;
        }

        .meeting-room-topbar > div:first-child small {
            color: var(--ns-blue);
            font-size: 9px;
            font-weight: 850;
            letter-spacing: .1em;
        }

    .meeting-room-topbar > div:last-child {
        text-align: right;
    }

.meeting-room-clock {
    text-align: center;
}

    .meeting-room-clock span {
        display: block;
        color: var(--ns-blue);
        font-size: 25px;
        font-weight: 900;
        font-variant-numeric: tabular-nums;
    }

    .meeting-room-clock small {
        color: var(--muted);
        font-size: 9px;
    }

.meeting-room-shell {
    min-height: calc(100vh - 78px);
    display: grid;
    grid-template-columns: minmax(0,1fr) 390px;
    gap: 20px;
    padding: 22px;
}

.meeting-room-stage {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.meeting-room-progress {
    display: grid;
    grid-template-columns: auto minmax(180px,1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    border: 1px solid #d3e3ec;
    border-radius: 14px;
    background: #fff;
}

    .meeting-room-progress > span {
        color: var(--ns-blue);
        font-weight: 850;
    }

    .meeting-room-progress > div {
        height: 8px;
        overflow: hidden;
        border-radius: 99px;
        background: #e7eff4;
    }

        .meeting-room-progress > div i {
            display: block;
            height: 100%;
            background: var(--ns-blue);
            border-radius: inherit;
        }

    .meeting-room-progress small {
        color: var(--muted);
    }

.active-agenda-card {
    min-height: 300px;
    display: grid;
    grid-template-columns: 92px minmax(0,1fr);
    gap: 24px;
    align-items: center;
    padding: 40px;
    border-radius: 24px;
    background: linear-gradient(135deg,#0c5e91,#2d86b4);
    color: #fff;
    box-shadow: 0 22px 50px rgba(29,91,124,.22);
}

    .active-agenda-card.completed {
        background: linear-gradient(135deg,#477c3d,#70a35c);
    }

.active-agenda-number {
    width: 78px;
    height: 78px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    background: rgba(255,255,255,.16);
    font-size: 32px;
    font-weight: 900;
}

.active-agenda-card small {
    color: rgba(255,255,255,.74);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .12em;
}

.active-agenda-card h1 {
    margin: 8px 0 10px;
    font-size: clamp(31px,4vw,56px);
    line-height: 1.04;
    letter-spacing: -.045em;
}

.active-agenda-card p {
    max-width: 900px;
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: 17px;
}

.active-agenda-card footer {
    margin-top: 24px;
    color: rgba(255,255,255,.75);
}

.room-agenda-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.room-agenda-row {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 11px 13px;
    border: 1px solid #d5e3eb;
    border-radius: 13px;
    background: #fff;
}

    .room-agenda-row > span {
        width: 32px;
        height: 32px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: #eaf3f8;
        color: var(--ns-blue);
        font-weight: 850;
    }

    .room-agenda-row.enrevision {
        border-color: #7fb2cf;
        box-shadow: inset 4px 0 var(--ns-blue);
    }

    .room-agenda-row.resuelto {
        opacity: .65;
    }

    .room-agenda-row div b, .room-agenda-row div small {
        display: block;
    }

    .room-agenda-row div small {
        margin-top: 2px;
        color: var(--muted);
        font-size: 9px;
    }

.room-agenda-actions {
    display: flex;
    gap: 7px;
}

.room-done {
    color: var(--ns-green);
    font-size: 10px;
    font-weight: 800;
}

.meeting-room-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.room-quick-capture, .room-live-summary, .room-recent-points {
    padding: 18px;
    border: 1px solid #d5e3eb;
    border-radius: 17px;
    background: #fff;
}

    .room-quick-capture h2 {
        margin: 5px 0;
    }

    .room-quick-capture > p {
        margin: 0 0 14px;
        color: var(--muted);
    }

.room-live-summary {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
}

    .room-live-summary div {
        padding: 10px;
        border-radius: 11px;
        background: #f3f8fb;
        text-align: center;
    }

    .room-live-summary span, .room-live-summary small {
        display: block;
    }

    .room-live-summary span {
        color: var(--ns-blue);
        font-size: 22px;
        font-weight: 900;
    }

    .room-live-summary small {
        color: var(--muted);
        font-size: 9px;
    }

.room-recent-points {
    flex: 1;
    overflow: auto;
}

    .room-recent-points h3 {
        margin: 0 0 10px;
    }

    .room-recent-points article {
        padding: 10px 0;
        border-bottom: 1px solid var(--line);
    }

        .room-recent-points article span {
            color: var(--ns-blue);
            font-size: 8px;
            font-weight: 850;
            text-transform: uppercase;
        }

        .room-recent-points article b {
            display: block;
            margin: 2px 0;
            font-size: 11px;
        }

        .room-recent-points article p {
            margin: 0;
            color: var(--muted);
            font-size: 10px;
        }

@media (max-width: 1250px) {
    .meeting-welcome {
        grid-template-columns: 1fr;
    }

    .meeting-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .meeting-content-grid {
        grid-template-columns: 1fr;
    }

    .meeting-content-side {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .meeting-create-layout {
        grid-template-columns: 1fr;
    }

    .meeting-create-aside .sticky-card {
        position: static;
    }

    .minutes-grid, .product-meeting-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .meeting-room-shell {
        grid-template-columns: minmax(0,1fr) 340px;
    }
}

@media (max-width: 900px) {
    .meeting-kpis, .meeting-stat-row {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .meeting-row {
        grid-template-columns: 52px minmax(0,1fr);
    }

        .meeting-row .meeting-health, .meeting-row .meeting-open {
            display: none;
        }

    .meeting-help-strip, .meeting-summary-banner {
        grid-template-columns: 1fr;
    }

    .meeting-content-side {
        grid-template-columns: 1fr;
    }

    .inline-form-grid, .inline-form-grid.agreements-form {
        grid-template-columns: 1fr 1fr;
    }

    .progress-update-grid {
        grid-template-columns: 1fr;
    }

        .progress-update-grid > div:nth-child(odd) {
            border-right: 0;
        }

    .uat-explainer {
        grid-template-columns: 50px 1fr;
    }

        .uat-explainer ol {
            grid-column: 1 / -1;
        }

    .meeting-room-shell {
        grid-template-columns: 1fr;
    }

    .meeting-room-panel {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .room-recent-points {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .meeting-welcome, .meeting-summary-banner {
        padding: 18px;
        border-radius: 16px;
    }

    .meeting-flow-mini {
        grid-template-columns: 1fr 1fr;
    }

        .meeting-flow-mini i {
            display: none;
        }

    .meeting-kpis, .meeting-stat-row, .minutes-grid, .product-meeting-grid {
        grid-template-columns: 1fr;
    }

    .form-card {
        padding: 72px 17px 18px;
    }

    .form-card-number {
        top: 18px;
        left: 18px;
    }

    .meeting-create-aside {
        display: none;
    }

    .inline-form-grid, .inline-form-grid.agreements-form {
        grid-template-columns: 1fr;
    }

    .meeting-room-topbar {
        height: auto;
        min-height: 74px;
        grid-template-columns: 1fr auto;
        padding: 10px 14px;
    }

    .meeting-room-clock {
        display: none;
    }

    .meeting-room-shell {
        padding: 12px;
    }

    .active-agenda-card {
        min-height: 250px;
        grid-template-columns: 1fr;
        padding: 24px;
    }

    .active-agenda-number {
        width: 54px;
        height: 54px;
        border-radius: 15px;
        font-size: 22px;
    }

    .active-agenda-card h1 {
        font-size: 32px;
    }

    .meeting-room-panel {
        grid-template-columns: 1fr;
    }

    .room-recent-points {
        grid-column: auto;
    }
}

.attendee-row > div {
    min-width: 0;
    flex: 1;
}

.attendance-form {
    margin-left: auto;
}

    .attendance-form select {
        min-width: 96px;
        padding: 6px 8px;
        border: 1px solid var(--line);
        border-radius: 9px;
        background: #fff;
        color: var(--text);
        font-size: 9px;
        font-weight: 700;
    }

.attendance-label {
    margin-left: auto;
    padding: 5px 7px;
    border-radius: 8px;
    background: var(--surface-3);
    color: var(--muted);
    font-size: 9px;
    font-weight: 700;
}

@media print {
    @page {
        size: Letter;
        margin: 12mm;
    }

    body {
        background: #fff !important;
        color: #111 !important;
    }

    .sidebar, .sidebar-backdrop, .topbar, .page-heading, .toast, .meeting-add-panel, .row-menu, .close-meeting-card, .button-row, .btn, dialog {
        display: none !important;
    }

    .app-shell, .main, .content {
        display: block !important;
        width: 100% !important;
        min-height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .meeting-summary-banner {
        break-inside: avoid;
        background: #fff !important;
        color: #111 !important;
        border: 1px solid #cfd6df !important;
        box-shadow: none !important;
    }

        .meeting-summary-banner *, .meeting-summary-score a {
            color: #111 !important;
        }

    .meeting-stat-row {
        break-inside: avoid;
    }

    .meeting-content-grid {
        display: block !important;
    }

    .meeting-content-main, .meeting-content-side {
        width: 100% !important;
    }

    .card, .progress-update-card, .minute-point, .agenda-item, .attendee-row {
        break-inside: avoid;
        box-shadow: none !important;
    }

    .meeting-content-side {
        margin-top: 12px;
    }

    a {
        color: #111 !important;
        text-decoration: none !important;
    }
}

/* ===== v9.css ===== */
/* NS Innova V9 - centro de trabajo ordenado */
:root {
    --ns-blue: #0757a6;
    --ns-blue-2: #0b6ccf;
    --ns-blue-3: #eaf3ff;
    --ns-blue-4: #cfe3fb;
    --ns-orange: #f47b20;
    --ns-orange-2: #d85b00;
    --ns-orange-soft: #fff1e6;
    --ns-ink: #17324d;
    --ns-ink-2: #35516d;
    --ns-muted: #6b7f92;
    --ns-bg: #f5f8fc;
    --ns-surface: #fff;
    --ns-line: #dfe8f2;
    --ns-line-strong: #c8d8e7;
    --ns-green: #16845b;
    --ns-green-soft: #e7f7f0;
    --ns-yellow: #a96800;
    --ns-yellow-soft: #fff5dd;
    --ns-red: #c63d4c;
    --ns-red-soft: #fff0f2;
    --bg: var(--ns-bg);
    --surface: var(--ns-surface);
    --surface-2: #f8fbff;
    --surface-3: #eef4fa;
    --line: var(--ns-line);
    --line-strong: var(--ns-line-strong);
    --text: var(--ns-ink);
    --muted: var(--ns-muted);
    --muted-2: #91a2b2;
    --shadow: 0 12px 34px rgba(25,72,112,.08);
    --shadow-hover: 0 18px 42px rgba(25,72,112,.14);
    --radius: 18px;
    --radius-sm: 12px;
    --sidebar-width: 250px;
}

html, body {
    background: var(--ns-bg);
    color: var(--ns-ink)
}

body {
    font-size: 14px;
    letter-spacing: -.005em
}

::selection {
    background: var(--ns-blue-4);
    color: var(--ns-ink)
}

:focus-visible {
    outline: 3px solid rgba(11,108,207,.24);
    outline-offset: 2px
}

/* shell claro, compacto y ordenado */
.sidebar {
    background: #fff;
    border-right: 1px solid var(--ns-line);
    box-shadow: 8px 0 30px rgba(37,83,124,.035)
}

.brand-row {
    height: 72px;
    border-bottom: 1px solid var(--ns-line);
    padding: 0 16px
}

.brand-mark {
    background: linear-gradient(145deg,var(--ns-blue),var(--ns-blue-2));
    box-shadow: 0 9px 22px rgba(7,87,166,.25)
}

.brand-copy b {
    color: var(--ns-ink)
}

.brand-copy small {
    color: var(--ns-muted)
}

.sidebar-collapse {
    border-color: var(--ns-line);
    background: #fff;
    color: var(--ns-blue)
}

    .sidebar-collapse:hover {
        background: var(--ns-blue-3);
        border-color: var(--ns-blue-4);
        color: var(--ns-blue)
    }

.idea-entry {
    margin: 14px 12px 5px;
    min-height: 66px;
    background: linear-gradient(135deg,var(--ns-blue),var(--ns-blue-2));
    box-shadow: 0 12px 24px rgba(7,87,166,.18);
    border: 1px solid rgba(255,255,255,.15)
}

    .idea-entry:hover {
        box-shadow: 0 17px 32px rgba(7,87,166,.25);
        transform: translateY(-2px)
    }

.idea-entry-arrow {
    background: var(--ns-orange);
    border-radius: 9px;
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    font-size: 18px
}

.nav {
    padding: 8px 9px 14px;
    gap: 2px
}

.nav-section {
    padding: 15px 11px 6px;
    color: #8a9bab;
    font-size: 9px;
    letter-spacing: .14em
}

.nav-item {
    min-height: 42px;
    border-radius: 10px;
    color: #4e6479;
    padding: 9px 11px
}

    .nav-item:hover {
        background: var(--ns-blue-3);
        color: var(--ns-blue);
        transform: translateX(2px)
    }

    .nav-item.active {
        background: linear-gradient(90deg,var(--ns-blue-3),#f8fbff);
        color: var(--ns-blue);
        box-shadow: inset 3px 0 var(--ns-blue)
    }

        .nav-item.active .nav-icon, .nav-icon {
            color: var(--ns-blue)
        }

.sidebar-foot {
    background: #f8fbff;
    border-top: 1px solid var(--ns-line)
}

.avatar {
    background: var(--ns-blue-3);
    color: var(--ns-blue)
}

.icon-btn:hover {
    background: var(--ns-orange-soft);
    color: var(--ns-orange-2)
}

.topbar {
    height: 64px;
    background: rgba(255,255,255,.94);
    border-color: var(--ns-line);
    padding: 0 24px
}

.global-search {
    height: 40px;
    background: #f7faff;
    border-color: var(--ns-line);
    max-width: 520px
}

    .global-search:hover {
        background: #fff;
        border-color: var(--ns-blue-4)
    }

    .global-search svg {
        color: var(--ns-blue)
    }

.top-icon {
    border-color: var(--ns-line);
    color: var(--ns-blue)
}

    .top-icon:hover {
        background: var(--ns-blue-3);
        border-color: var(--ns-blue-4);
        color: var(--ns-blue)
    }

.btn {
    border-radius: 10px;
    font-weight: 750;
    transition: transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease
}

    .btn:hover {
        transform: translateY(-1px)
    }

.btn-primary {
    background: linear-gradient(135deg,var(--ns-blue),var(--ns-blue-2));
    border-color: var(--ns-blue);
    box-shadow: 0 8px 20px rgba(7,87,166,.18)
}

    .btn-primary:hover {
        background: linear-gradient(135deg,#064b90,#0864bf);
        box-shadow: 0 12px 24px rgba(7,87,166,.24)
    }

    .btn-primary span {
        color: #fff
    }

.btn-soft, .btn-ghost {
    background: #fff;
    border: 1px solid var(--ns-line);
    color: var(--ns-blue)
}

    .btn-soft:hover, .btn-ghost:hover {
        background: var(--ns-blue-3);
        border-color: var(--ns-blue-4)
    }

.btn-small {
    min-height: 32px;
    padding: 7px 10px;
    font-size: .75rem
}

.page-heading {
    padding: 22px 28px 18px;
    background: #fff;
    border-bottom: 1px solid var(--ns-line);
    align-items: flex-end
}

    .page-heading h1 {
        font-size: clamp(1.55rem,2vw,2.15rem);
        color: var(--ns-ink);
        margin-top: 5px
    }

    .page-heading p {
        color: var(--ns-muted);
        max-width: 850px
    }

.breadcrumb a, .breadcrumb b {
    color: var(--ns-blue)
}

.page-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end
}

.content {
    padding: 24px 28px 46px;
    max-width: 1800px;
    margin: 0 auto
}

.toast {
    border-color: var(--ns-line);
    box-shadow: var(--shadow)
}

    .toast.success {
        border-left-color: var(--ns-green)
    }

.loading-bar {
    background: linear-gradient(90deg,var(--ns-blue),var(--ns-orange))
}

/* diálogos */
.quick-idea-dialog, .command-palette, .v9-dialog {
    border: 0;
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(20,55,90,.24);
    color: var(--ns-ink)
}

    .quick-idea-dialog::backdrop, .command-palette::backdrop, .v9-dialog::backdrop {
        background: rgba(13,42,68,.34);
        backdrop-filter: blur(4px)
    }

.quick-idea-symbol {
    background: var(--ns-orange);
    color: #fff
}

.quick-idea-shell textarea, .v9-dialog input, .v9-dialog textarea, .v9-dialog select {
    border-color: var(--ns-line-strong);
    background: #fff
}

    .quick-idea-shell textarea:focus, .v9-dialog input:focus, .v9-dialog textarea:focus, .v9-dialog select:focus {
        border-color: var(--ns-blue-2);
        box-shadow: 0 0 0 4px rgba(11,108,207,.10)
    }

.quick-idea-examples button {
    border-color: var(--ns-blue-4);
    background: var(--ns-blue-3);
    color: var(--ns-blue)
}

.command-head {
    border-color: var(--ns-line)
}

    .command-head svg {
        color: var(--ns-blue)
    }

.command-body [data-command-item]:hover, .command-body [data-command-item].selected {
    background: var(--ns-blue-3);
    color: var(--ns-blue)
}

.help-drawer {
    background: #fff;
    color: var(--ns-ink);
    border-left: 1px solid var(--ns-line)
}

.help-content article > span {
    background: var(--ns-blue-3);
    color: var(--ns-blue)
}

/* entrada visual de la innovación */
.workspace {
    display: flex;
    flex-direction: column;
    gap: 18px
}

.workspace-hero {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 28px;
    align-items: center;
    min-height: 220px;
    padding: 30px 34px;
    border: 1px solid var(--ns-line);
    border-radius: 24px;
    background: radial-gradient(circle at 92% 5%,rgba(244,123,32,.15),transparent 30%), linear-gradient(135deg,#fff 0%,#f3f8ff 58%,#e9f3ff 100%);
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden
}

    .workspace-hero:before {
        content: "";
        position: absolute;
        width: 260px;
        height: 260px;
        border: 1px solid rgba(7,87,166,.10);
        border-radius: 50%;
        right: -80px;
        bottom: -130px
    }

.workspace-identity {
    position: relative;
    z-index: 1
}

.workspace-code {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    color: var(--ns-blue);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase
}

    .workspace-code span {
        padding: 6px 10px;
        background: #fff;
        border: 1px solid var(--ns-blue-4);
        border-radius: 999px
    }

.health-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ns-green);
    box-shadow: 0 0 0 5px rgba(22,132,91,.12)
}

.workspace-identity h2 {
    font-size: clamp(1.8rem,3vw,3rem);
    line-height: 1.05;
    max-width: 900px;
    margin: 0 0 12px;
    color: var(--ns-ink)
}

.workspace-identity > p {
    font-size: 1rem;
    color: var(--ns-ink-2);
    max-width: 940px;
    margin: 0 0 22px
}

.workspace-people {
    display: flex;
    gap: 10px;
    flex-wrap: wrap
}

.person-chip {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 11px;
    background: rgba(255,255,255,.86);
    border: 1px solid var(--ns-line);
    border-radius: 12px
}

    .person-chip > i {
        width: 32px;
        height: 32px;
        border-radius: 10px;
        display: grid;
        place-items: center;
        background: var(--ns-blue-3);
        color: var(--ns-blue);
        font-style: normal;
        font-weight: 850;
        font-size: .72rem
    }

    .person-chip small, .person-chip b {
        display: block
    }

    .person-chip small {
        font-size: .62rem;
        color: var(--ns-muted);
        text-transform: uppercase;
        letter-spacing: .08em
    }

    .person-chip b {
        font-size: .78rem;
        margin-top: 1px
    }

.workspace-progress-card {
    display: flex;
    align-items: center;
    gap: 15px;
    min-width: 270px;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--ns-line);
    border-radius: 18px;
    box-shadow: 0 14px 35px rgba(7,87,166,.09);
    position: relative;
    z-index: 1
}

.progress-orbit {
    --size: 92px;
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    padding: 8px;
    background: conic-gradient(var(--ns-blue) calc(var(--progress)*1%),#dfeaf5 0);
    animation: orbit-in .7s ease both
}

    .progress-orbit > span {
        height: 100%;
        border-radius: 50%;
        display: grid;
        place-content: center;
        text-align: center;
        background: #fff
    }

    .progress-orbit strong {
        font-size: 1.25rem
    }

    .progress-orbit small {
        font-size: .58rem;
        color: var(--ns-muted)
    }

.workspace-progress-card > div:last-child small, .workspace-progress-card > div:last-child b, .workspace-progress-card > div:last-child p {
    display: block
}

.workspace-progress-card > div:last-child small {
    font-size: .67rem;
    color: var(--ns-muted);
    text-transform: uppercase;
    letter-spacing: .08em
}

.workspace-progress-card > div:last-child b {
    font-size: 1.05rem;
    color: var(--ns-blue);
    margin: 4px 0
}

.workspace-progress-card > div:last-child p {
    margin: 0;
    color: var(--ns-muted);
    font-size: .75rem
}

.stage-journey {
    display: flex;
    align-items: flex-start;
    gap: 0;
    padding: 18px 20px;
    border: 1px solid var(--ns-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(25,72,112,.04);
    overflow-x: auto
}

.stage-step {
    position: relative;
    min-width: 115px;
    flex: 1;
    display: grid;
    justify-items: center;
    gap: 7px;
    color: #93a4b4;
    text-align: center;
    font-size: .68rem;
    font-weight: 700
}

    .stage-step:not(:last-child):after {
        content: "";
        position: absolute;
        left: calc(50% + 17px);
        right: calc(-50% + 17px);
        top: 15px;
        height: 3px;
        border-radius: 99px;
        background: #e4edf5
    }

    .stage-step i {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: #f0f4f8;
        border: 2px solid #dbe6ef;
        font-style: normal;
        position: relative;
        z-index: 1
    }

    .stage-step.done {
        color: var(--ns-green)
    }

        .stage-step.done i {
            background: var(--ns-green);
            color: #fff;
            border-color: var(--ns-green)
        }

        .stage-step.done:not(:last-child):after {
            background: var(--ns-green)
        }

    .stage-step.current {
        color: var(--ns-blue)
    }

        .stage-step.current i {
            background: #fff;
            color: var(--ns-blue);
            border-color: var(--ns-blue);
            box-shadow: 0 0 0 6px rgba(7,87,166,.10);
            animation: soft-pulse 2s infinite
        }

.workspace-lock-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    border: 1px solid #f0d59c;
    border-radius: 13px;
    background: var(--ns-yellow-soft);
    color: #6f4a00
}

    .workspace-lock-banner svg {
        width: 24px;
        height: 24px
    }

    .workspace-lock-banner div {
        display: flex;
        flex: 1;
        gap: 8px;
        align-items: center;
        flex-wrap: wrap
    }

    .workspace-lock-banner span {
        font-size: .76rem
    }

    .workspace-lock-banner a {
        color: var(--ns-blue);
        font-weight: 800
    }

.workspace-layout {
    display: grid;
    grid-template-columns: 235px minmax(0,1fr);
    gap: 18px;
    align-items: start
}

.workspace-nav {
    position: sticky;
    top: 82px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 10px;
    border: 1px solid var(--ns-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(25,72,112,.05)
}

    .workspace-nav > a {
        display: grid;
        grid-template-columns: 30px minmax(0,1fr) auto;
        gap: 9px;
        align-items: center;
        min-height: 56px;
        padding: 9px 10px;
        border-radius: 11px;
        color: #526a80;
        transition: .16s ease
    }

        .workspace-nav > a:hover {
            background: #f4f8fd;
            color: var(--ns-blue);
            transform: translateX(2px)
        }

        .workspace-nav > a.active {
            background: linear-gradient(90deg,var(--ns-blue),var(--ns-blue-2));
            color: #fff;
            box-shadow: 0 9px 20px rgba(7,87,166,.18)
        }

        .workspace-nav > a > span {
            font-size: .62rem;
            font-weight: 900;
            opacity: .65
        }

        .workspace-nav > a div b, .workspace-nav > a div small {
            display: block
        }

        .workspace-nav > a div b {
            font-size: .78rem
        }

        .workspace-nav > a div small {
            font-size: .62rem;
            opacity: .75;
            margin-top: 2px
        }

        .workspace-nav > a em {
            min-width: 24px;
            height: 24px;
            border-radius: 999px;
            display: grid;
            place-items: center;
            background: var(--ns-orange);
            color: #fff;
            font-size: .65rem;
            font-style: normal;
            font-weight: 900
        }

.workspace-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.section-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    padding: 4px 2px 2px
}

    .section-intro > div > small, .surface-card header small {
        color: var(--ns-blue);
        font-size: .66rem;
        font-weight: 900;
        letter-spacing: .1em
    }

    .section-intro h3 {
        font-size: 1.45rem;
        margin: 4px 0 4px;
        color: var(--ns-ink)
    }

    .section-intro p {
        margin: 0;
        color: var(--ns-muted);
        max-width: 820px
    }

.surface-card {
    border: 1px solid var(--ns-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(25,72,112,.045);
    overflow: hidden
}

    .surface-card > header {
        display: flex;
        justify-content: space-between;
        gap: 14px;
        align-items: center;
        padding: 18px 20px;
        border-bottom: 1px solid var(--ns-line)
    }

    .surface-card h4 {
        font-size: 1rem;
        margin: 3px 0 0
    }

    .surface-card header p {
        margin: 4px 0 0;
        color: var(--ns-muted);
        font-size: .78rem
    }

.focus-grid {
    display: grid;
    grid-template-columns: minmax(280px,1.8fr) repeat(3,minmax(140px,1fr));
    gap: 12px
}

.focus-card {
    min-height: 135px;
    padding: 17px;
    border: 1px solid var(--ns-line);
    border-radius: 16px;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 8px 24px rgba(25,72,112,.04);
    transition: .18s ease
}

    .focus-card:hover {
        transform: translateY(-3px);
        box-shadow: var(--shadow-hover);
        border-color: var(--ns-blue-4)
    }

    .focus-card.primary {
        display: grid;
        grid-template-columns: 46px minmax(0,1fr);
        gap: 13px;
        align-items: start;
        background: linear-gradient(135deg,var(--ns-blue),var(--ns-blue-2));
        color: #fff;
        border: 0;
        box-shadow: 0 14px 32px rgba(7,87,166,.22)
    }

.focus-icon {
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: rgba(255,255,255,.15);
    display: grid;
    place-items: center
}

    .focus-icon svg {
        width: 24px;
        height: 24px
    }

.focus-card small {
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .08em;
    color: var(--ns-muted)
}

.focus-card.primary small, .focus-card.primary p {
    color: rgba(255,255,255,.78)
}

.focus-card strong {
    font-size: 2rem;
    color: var(--ns-blue);
    line-height: 1
}

.focus-card h4 {
    font-size: 1rem;
    margin: 5px 0
}

.focus-card p {
    margin: 5px 0;
    color: var(--ns-muted);
    font-size: .76rem
}

.focus-card a, .text-action {
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--ns-blue);
    font-weight: 800;
    text-align: left;
    font-size: .75rem
}

.focus-card.primary .text-action {
    color: #fff
}

.overview-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 14px
}

.map-flow {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: stretch;
    gap: 8px;
    padding: 18px
}

    .map-flow > article {
        padding: 15px;
        background: #f7faff;
        border: 1px solid var(--ns-line);
        border-radius: 13px
    }

        .map-flow > article > span {
            width: 26px;
            height: 26px;
            display: grid;
            place-items: center;
            border-radius: 8px;
            background: var(--ns-blue-3);
            color: var(--ns-blue);
            font-weight: 900
        }

    .map-flow small {
        display: block;
        color: var(--ns-blue);
        font-size: .61rem;
        font-weight: 900;
        letter-spacing: .08em;
        margin: 9px 0 4px
    }

    .map-flow p {
        font-size: .75rem;
        color: var(--ns-ink-2);
        margin: 0
    }

    .map-flow > i {
        align-self: center;
        color: var(--ns-orange);
        font-style: normal;
        font-weight: 900
    }

.meeting-cycle {
    display: flex;
    align-items: center;
    padding: 20px;
    overflow-x: auto
}

    .meeting-cycle span {
        min-width: max-content;
        padding: 8px 10px;
        border: 1px solid var(--ns-line);
        border-radius: 999px;
        color: var(--ns-muted);
        font-size: .68rem;
        font-weight: 800
    }

        .meeting-cycle span.done {
            background: var(--ns-green-soft);
            border-color: #bfe8d7;
            color: var(--ns-green)
        }

        .meeting-cycle span.active {
            background: var(--ns-orange-soft);
            border-color: #ffd0ad;
            color: var(--ns-orange-2)
        }

    .meeting-cycle i {
        min-width: 18px;
        height: 2px;
        background: var(--ns-line)
    }

.pulse-card footer {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--ns-line);
    color: var(--ns-muted);
    font-size: .72rem
}

    .pulse-card footer a {
        color: var(--ns-blue);
        font-weight: 800
    }

.mini-roadmap header a {
    color: var(--ns-blue);
    font-size: .75rem;
    font-weight: 800
}

.roadmap-list {
    padding: 4px 16px 14px
}

    .roadmap-list > button {
        width: 100%;
        display: grid;
        grid-template-columns: 13px minmax(0,1fr) auto 90px;
        gap: 10px;
        align-items: center;
        padding: 12px 4px;
        border: 0;
        border-bottom: 1px solid var(--ns-line);
        background: transparent;
        text-align: left;
        color: var(--ns-ink)
    }

        .roadmap-list > button:hover {
            background: #f8fbff
        }

    .roadmap-list b, .roadmap-list small {
        display: block
    }

    .roadmap-list small {
        color: var(--ns-muted);
        font-size: .67rem
    }

    .roadmap-list em {
        font-style: normal;
        color: var(--ns-ink-2);
        font-size: .7rem
    }

    .roadmap-list > button > i:last-child {
        height: 6px;
        border-radius: 99px;
        background: linear-gradient(90deg,var(--ns-blue) calc(var(--p)*1%),#e4edf5 0)
    }

.kind-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    background: var(--ns-blue)
}

.kind-acuerdo {
    background: var(--ns-orange) !important
}

.kind-junta {
    background: #7a5bd4 !important
}

.kind-validacion {
    background: var(--ns-green) !important
}

.kind-compuerta {
    background: #b97800 !important
}

.kind-decision {
    background: #d74362 !important
}

.kind-trabajo {
    background: var(--ns-blue) !important
}

/* Gantt único */
.timeline-toolbar {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--ns-line);
    border-radius: 14px;
    background: #fff
}

    .timeline-toolbar > label {
        flex: 1;
        display: flex;
        align-items: center;
        gap: 8px;
        border: 1px solid var(--ns-line);
        border-radius: 10px;
        padding: 0 10px
    }

    .timeline-toolbar input, .timeline-toolbar select {
        height: 40px;
        border: 0;
        background: transparent;
        outline: 0
    }

    .timeline-toolbar label input {
        width: 100%
    }

    .timeline-toolbar select {
        min-width: 190px;
        border: 1px solid var(--ns-line);
        border-radius: 10px;
        padding: 0 10px
    }

    .timeline-toolbar svg {
        color: var(--ns-blue)
    }

.unified-gantt {
    position: relative;
    border: 1px solid var(--ns-line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(25,72,112,.04);
    overflow: auto;
    min-width: 0
}

.gantt-top, .gantt-item-row {
    min-width: 940px;
    display: grid;
    grid-template-columns: 370px minmax(570px,1fr)
}

.gantt-top {
    position: sticky;
    top: 0;
    z-index: 4;
    background: #f5f9fd;
    border-bottom: 1px solid var(--ns-line);
    font-size: .68rem;
    font-weight: 850;
    color: var(--ns-muted)
}

    .gantt-top > div:first-child {
        padding: 13px 16px
    }

.gantt-months {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 14px;
    background: repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#dfe8f2 25%)
}

.gantt-item-row {
    width: 100%;
    min-height: 64px;
    border: 0;
    border-bottom: 1px solid var(--ns-line);
    background: #fff;
    text-align: left;
    color: var(--ns-ink);
    padding: 0
}

    .gantt-item-row:hover {
        background: #f8fbff
    }

.gantt-info {
    display: grid;
    grid-template-columns: 12px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    padding: 10px 16px;
    border-right: 1px solid var(--ns-line)
}

    .gantt-info small, .gantt-info b, .gantt-info em {
        display: block
    }

    .gantt-info small {
        color: var(--ns-blue);
        font-size: .61rem;
        font-weight: 850
    }

    .gantt-info b {
        font-size: .77rem;
        margin: 2px 0
    }

    .gantt-info em {
        font-size: .62rem;
        color: var(--ns-muted);
        font-style: normal
    }

    .gantt-info strong {
        color: var(--ns-yellow)
    }

.gantt-lane-v9 {
    position: relative;
    display: block;
    background: repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(203,218,232,.52) 25%);
    min-height: 64px
}

.gantt-bar-v9 {
    position: absolute;
    top: 17px;
    height: 30px;
    min-width: 8px;
    border-radius: 9px;
    background: #b8d7f4;
    overflow: hidden;
    box-shadow: 0 5px 12px rgba(7,87,166,.12);
    font-style: normal
}

    .gantt-bar-v9 > span {
        position: absolute;
        inset: 0 auto 0 0;
        background: linear-gradient(90deg,var(--ns-blue),var(--ns-blue-2))
    }

    .gantt-bar-v9.kind-acuerdo {
        background: #ffe0c8
    }

        .gantt-bar-v9.kind-acuerdo > span {
            background: linear-gradient(90deg,var(--ns-orange),#ff9b52)
        }

    .gantt-bar-v9.kind-junta, .gantt-bar-v9.kind-compuerta, .gantt-bar-v9.kind-decision {
        width: 18px !important;
        border-radius: 50%;
        transform: rotate(45deg);
        background: #7a5bd4
    }

    .gantt-bar-v9.kind-validacion {
        background: #c9eadc
    }

        .gantt-bar-v9.kind-validacion > span {
            background: var(--ns-green)
        }

    .gantt-bar-v9 b {
        position: absolute;
        right: 7px;
        top: 7px;
        color: #fff;
        font-size: .58rem;
        z-index: 1
    }

.gantt-today {
    position: absolute;
    top: 40px;
    bottom: 0;
    width: 2px;
    background: var(--ns-orange);
    z-index: 3;
    pointer-events: none
}

    .gantt-today span {
        position: absolute;
        top: 0;
        transform: translate(-50%,-100%);
        font-size: .6rem;
        background: var(--ns-orange);
        color: #fff;
        border-radius: 6px;
        padding: 3px 6px
    }

.gantt-legend {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    color: var(--ns-muted);
    font-size: .7rem
}

    .gantt-legend span {
        display: flex;
        align-items: center;
        gap: 5px
    }

    .gantt-legend i {
        width: 9px;
        height: 9px;
        border-radius: 50%
    }

    .gantt-legend small {
        margin-left: auto
    }

/* trabajo */
.segmented {
    display: flex;
    padding: 3px;
    background: #eaf1f8;
    border-radius: 10px
}

    .segmented button {
        border: 0;
        border-radius: 8px;
        background: transparent;
        color: var(--ns-muted);
        padding: 8px 12px;
        font-weight: 800
    }

        .segmented button.active {
            background: #fff;
            color: var(--ns-blue);
            box-shadow: 0 4px 12px rgba(25,72,112,.10)
        }

.work-board {
    display: none;
    grid-template-columns: repeat(4,minmax(230px,1fr));
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 4px
}

    .work-board.active {
        display: grid
    }

.work-column {
    min-width: 230px;
    border: 1px solid var(--ns-line);
    border-radius: 15px;
    background: #f5f9fd;
    overflow: hidden
}

    .work-column > header {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 13px;
        border-bottom: 1px solid var(--ns-line)
    }

        .work-column > header b {
            font-size: .76rem
        }

        .work-column > header span:last-child {
            margin-left: auto;
            min-width: 24px;
            height: 24px;
            border-radius: 999px;
            background: #fff;
            display: grid;
            place-items: center;
            color: var(--ns-blue);
            font-size: .65rem
        }

.status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #8fa3b5
}

.status-enproceso {
    background: var(--ns-blue)
}

.status-enrevision {
    background: var(--ns-yellow)
}

.status-terminado {
    background: var(--ns-green)
}

.status-bloqueado {
    background: var(--ns-red)
}

.work-column-body {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 10px;
    min-height: 210px
}

.work-card {
    width: 100%;
    padding: 13px;
    border: 1px solid var(--ns-line);
    border-radius: 13px;
    background: #fff;
    text-align: left;
    color: var(--ns-ink);
    box-shadow: 0 5px 15px rgba(25,72,112,.04);
    transition: .16s ease
}

    .work-card:hover {
        transform: translateY(-2px);
        border-color: var(--ns-blue-4);
        box-shadow: 0 12px 24px rgba(25,72,112,.11)
    }

    .work-card-top, .work-card-meta, .work-card footer {
        display: flex;
        justify-content: space-between;
        gap: 8px;
        align-items: center
    }

        .work-card-top small {
            font-size: .6rem;
            color: var(--ns-blue);
            font-weight: 850
        }

    .work-card h4 {
        font-size: .8rem;
        line-height: 1.35;
        margin: 8px 0 12px
    }

.work-card-meta {
    font-size: .65rem;
    color: var(--ns-muted)
}

.work-progress {
    height: 6px;
    margin: 10px 0 12px;
    border-radius: 99px;
    background: #e7eef5;
    position: relative
}

    .work-progress i {
        display: block;
        height: 100%;
        border-radius: 99px;
        background: linear-gradient(90deg,var(--ns-blue),var(--ns-blue-2))
    }

    .work-progress b {
        position: absolute;
        right: 0;
        top: -17px;
        font-size: .58rem;
        color: var(--ns-blue)
    }

.work-card footer span {
    font-size: .58rem
}

.column-empty {
    padding: 40px 10px;
    color: #9aabba;
    text-align: center;
    font-size: .7rem
}

.source-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 4px 7px;
    background: var(--ns-blue-3);
    color: var(--ns-blue);
    font-size: .58rem;
    font-style: normal;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em
}

.source-junta {
    background: #f0ebff;
    color: #6846c7
}

.source-idea {
    background: #e8f7ef;
    color: var(--ns-green)
}

.source-manual {
    background: #edf3f8;
    color: #587087
}

.source-acuerdo {
    background: var(--ns-orange-soft);
    color: var(--ns-orange-2)
}

.source-validacion {
    background: var(--ns-green-soft);
    color: var(--ns-green)
}

.priority-alta, .priority-critico {
    color: var(--ns-red)
}

.priority-media {
    color: var(--ns-yellow)
}

.priority-baja {
    color: var(--ns-green)
}

.tiny-lock {
    color: var(--ns-yellow);
    font-size: .7rem
}

.work-list {
    display: none
}

    .work-list.active {
        display: block
    }

.clean-table {
    border: 1px solid var(--ns-line);
    border-radius: 15px;
    background: #fff;
    overflow: auto
}

    .clean-table > header, .clean-table > button {
        min-width: 920px;
        display: grid;
        grid-template-columns: minmax(240px,1.5fr) 150px 150px 150px 150px 120px;
        gap: 10px;
        align-items: center
    }

    .clean-table > header {
        padding: 12px 15px;
        background: #f4f8fc;
        color: var(--ns-muted);
        font-size: .65rem;
        font-weight: 850
    }

    .clean-table > button {
        width: 100%;
        border: 0;
        border-top: 1px solid var(--ns-line);
        padding: 13px 15px;
        background: #fff;
        text-align: left;
        color: var(--ns-ink)
    }

        .clean-table > button:hover {
            background: #f8fbff
        }

    .clean-table small, .clean-table b {
        display: block
    }

    .clean-table small {
        font-size: .62rem;
        color: var(--ns-muted)
    }

.mini-progress, .agreement-progress {
    display: inline-block;
    width: 70px;
    height: 6px;
    border-radius: 99px;
    background: #e7eef5;
    overflow: hidden;
    margin-right: 6px
}

    .mini-progress em, .agreement-progress em {
        display: block;
        height: 100%;
        background: var(--ns-blue);
        font-style: normal
    }

.state-chip {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    background: #edf3f8;
    color: #50687d;
    font-size: .62rem;
    font-style: normal;
    font-weight: 800
}

/* juntas y seguimiento */
.meeting-method, .validation-flow {
    display: flex;
    align-items: stretch;
    gap: 7px;
    padding: 13px;
    border: 1px solid var(--ns-line);
    border-radius: 15px;
    background: #fff;
    overflow-x: auto
}

    .meeting-method article, .validation-flow article {
        min-width: 135px;
        flex: 1;
        display: grid;
        grid-template-columns: 27px 1fr;
        gap: 2px 8px;
        align-content: center;
        padding: 10px;
        border-radius: 11px;
        background: #f6f9fc
    }

        .meeting-method article span, .validation-flow article span {
            grid-row: 1/3;
            width: 27px;
            height: 27px;
            border-radius: 8px;
            display: grid;
            place-items: center;
            background: var(--ns-blue-3);
            color: var(--ns-blue);
            font-weight: 900
        }

    .meeting-method b, .validation-flow b {
        font-size: .72rem
    }

    .meeting-method small, .validation-flow small {
        font-size: .6rem;
        color: var(--ns-muted)
    }

    .meeting-method > i, .validation-flow > i {
        align-self: center;
        color: var(--ns-orange);
        font-style: normal;
        font-weight: 900
    }

.meeting-list-v9 {
    display: flex;
    flex-direction: column;
    gap: 13px
}

.meeting-block {
    border: 1px solid var(--ns-line);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(25,72,112,.04)
}

.meeting-summary {
    width: 100%;
    display: grid;
    grid-template-columns: 58px minmax(0,1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 17px;
    border: 0;
    background: #fff;
    text-align: left;
    color: var(--ns-ink)
}

    .meeting-summary:hover {
        background: #f8fbff
    }

.meeting-date {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    display: grid;
    place-content: center;
    text-align: center;
    background: var(--ns-blue-3);
    color: var(--ns-blue)
}

    .meeting-date b {
        font-size: 1.25rem;
        line-height: 1
    }

    .meeting-date small {
        font-size: .6rem;
        text-transform: uppercase
    }

.meeting-summary > div > small {
    color: var(--ns-blue);
    font-size: .62rem;
    font-weight: 850
}

.meeting-summary h4 {
    font-size: .92rem;
    margin: 3px 0
}

.meeting-summary p {
    margin: 0;
    color: var(--ns-muted);
    font-size: .72rem
}

.meeting-health {
    border-radius: 999px;
    padding: 6px 9px;
    background: var(--ns-green-soft);
    color: var(--ns-green);
    font-size: .62rem;
    font-weight: 850
}

.health-enriesgo, .health-bloqueado {
    background: var(--ns-red-soft);
    color: var(--ns-red)
}

.meeting-progress {
    text-align: right
}

    .meeting-progress b, .meeting-progress small {
        display: block
    }

    .meeting-progress b {
        font-size: 1.15rem;
        color: var(--ns-blue)
    }

    .meeting-progress small {
        font-size: .58rem;
        color: var(--ns-muted)
    }

.meeting-followup {
    border-top: 1px solid var(--ns-line);
    padding: 14px 17px;
    background: #fbfdff
}

    .meeting-followup > header {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 8px
    }

        .meeting-followup > header b {
            font-size: .75rem
        }

        .meeting-followup > header span {
            font-size: .62rem;
            color: var(--ns-muted)
        }

        .meeting-followup > header a {
            margin-left: auto;
            color: var(--ns-blue);
            font-size: .68rem;
            font-weight: 850
        }

.meeting-gantt-row {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(230px,1fr) minmax(250px,1.8fr) 50px;
    gap: 12px;
    align-items: center;
    padding: 9px 0;
    border: 0;
    border-top: 1px dashed var(--ns-line);
    background: transparent;
    text-align: left;
    color: var(--ns-ink)
}

    .meeting-gantt-row:hover {
        background: #f4f8fc
    }

    .meeting-gantt-row > span b, .meeting-gantt-row > span small {
        display: block
    }

    .meeting-gantt-row > span b {
        font-size: .7rem
    }

    .meeting-gantt-row > span small {
        font-size: .6rem;
        color: var(--ns-muted)
    }

    .meeting-gantt-row > i {
        height: 20px;
        position: relative;
        background: repeating-linear-gradient(90deg,#edf3f8 0,#edf3f8 calc(25% - 1px),#d7e4ef 25%)
    }

        .meeting-gantt-row > i > em {
            position: absolute;
            top: 5px;
            height: 10px;
            border-radius: 99px;
            background: #ffd9bc;
            overflow: hidden
        }

        .meeting-gantt-row > i strong {
            display: block;
            height: 100%;
            background: var(--ns-orange)
        }

    .meeting-gantt-row > b {
        font-size: .65rem;
        text-align: right;
        color: var(--ns-blue)
    }

.meeting-no-actions {
    padding: 15px;
    border: 1px dashed var(--ns-line-strong);
    border-radius: 11px;
    color: var(--ns-muted);
    font-size: .7rem;
    text-align: center
}

/* acuerdos, decisiones, candados */
.agreement-kpis {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 10px
}

    .agreement-kpis article {
        padding: 15px;
        border: 1px solid var(--ns-line);
        border-radius: 14px;
        background: #fff
    }

    .agreement-kpis small, .agreement-kpis strong {
        display: block
    }

    .agreement-kpis small {
        color: var(--ns-muted);
        font-size: .65rem
    }

    .agreement-kpis strong {
        font-size: 1.55rem;
        color: var(--ns-blue);
        margin-top: 4px
    }

    .agreement-kpis article.danger {
        background: var(--ns-red-soft);
        border-color: #f2c4ca
    }

        .agreement-kpis article.danger strong {
            color: var(--ns-red)
        }

.agreements-board {
    border: 1px solid var(--ns-line);
    border-radius: 16px;
    background: #fff;
    overflow: auto
}

    .agreements-board > header, .agreements-board > button {
        min-width: 890px;
        display: grid;
        grid-template-columns: minmax(270px,1.6fr) 160px 130px 160px 120px;
        gap: 10px;
        align-items: center
    }

    .agreements-board > header {
        padding: 12px 15px;
        background: #f4f8fc;
        color: var(--ns-muted);
        font-size: .64rem;
        font-weight: 850
    }

    .agreements-board > button {
        width: 100%;
        border: 0;
        border-top: 1px solid var(--ns-line);
        padding: 13px 15px;
        background: #fff;
        text-align: left;
        color: var(--ns-ink)
    }

        .agreements-board > button:hover {
            background: #f8fbff
        }

        .agreements-board > button > span:first-child {
            display: grid;
            grid-template-columns: 5px minmax(0,1fr);
            gap: 10px
        }

    .agreements-board b, .agreements-board small {
        display: block
    }

    .agreements-board small {
        font-size: .62rem;
        color: var(--ns-muted)
    }

.source-line {
    height: 38px;
    border-radius: 99px;
    background: var(--ns-blue)
}

    .source-line.source-junta {
        background: #7a5bd4
    }

.late {
    color: var(--ns-red);
    font-weight: 800
}

.decision-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px
}

.gate-list-v9, .decision-list-v9, .trace-feed, .audit-feed {
    padding: 6px 15px 14px
}

    .gate-list-v9 > button, .decision-list-v9 > button, .trace-feed > button {
        width: 100%;
        display: grid;
        gap: 10px;
        align-items: center;
        padding: 12px 3px;
        border: 0;
        border-top: 1px solid var(--ns-line);
        background: #fff;
        text-align: left;
        color: var(--ns-ink)
    }

    .gate-list-v9 > button {
        grid-template-columns: 12px minmax(0,1fr) auto
    }

    .decision-list-v9 > button {
        grid-template-columns: 9px minmax(0,1fr) auto
    }

        .gate-list-v9 > button:hover, .decision-list-v9 > button:hover, .trace-feed > button:hover {
            background: #f8fbff
        }

        .gate-state, .decision-list-v9 > button > i {
            width: 9px;
            height: 9px;
            border-radius: 50%;
            background: var(--ns-yellow)
        }

.gate-aprobado {
    background: var(--ns-green)
}

.gate-rechazado {
    background: var(--ns-red)
}

.gate-list-v9 b, .gate-list-v9 small, .decision-list-v9 b, .decision-list-v9 small {
    display: block
}

.gate-list-v9 small, .decision-list-v9 small {
    font-size: .62rem;
    color: var(--ns-muted)
}

.decision-list-v9 p {
    font-size: .68rem;
    color: var(--ns-ink-2);
    margin: 3px 0
}

.gate-list-v9 em, .decision-list-v9 em {
    font-size: .62rem;
    font-style: normal;
    color: var(--ns-blue);
    font-weight: 850
}

.lock-center {
    overflow: visible
}

.lock-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(220px,1fr));
    gap: 10px;
    padding: 16px
}

    .lock-grid article {
        display: grid;
        grid-template-columns: 35px minmax(0,1fr);
        gap: 10px;
        padding: 13px;
        border: 1px solid var(--ns-line);
        border-radius: 13px;
        background: #f9fbfd
    }

        .lock-grid article.locked {
            background: var(--ns-yellow-soft);
            border-color: #efd397
        }

        .lock-grid article > span {
            width: 35px;
            height: 35px;
            border-radius: 10px;
            display: grid;
            place-items: center;
            background: #fff;
            color: var(--ns-blue)
        }

        .lock-grid article b, .lock-grid article small, .lock-grid article em {
            display: block
        }

        .lock-grid article small {
            font-size: .62rem;
            color: var(--ns-muted);
            margin-top: 2px
        }

        .lock-grid article em {
            font-size: .58rem;
            color: var(--ns-yellow);
            font-style: normal
        }

    .lock-grid form {
        grid-column: 1/-1;
        display: flex;
        gap: 6px;
        margin-top: 5px
    }

        .lock-grid form input {
            min-width: 0;
            flex: 1;
            border: 1px solid var(--ns-line);
            border-radius: 8px;
            padding: 7px 9px;
            background: #fff;
            font-size: .65rem
        }

/* validación, evidencia, trazabilidad */
.validation-cards {
    display: grid;
    grid-template-columns: repeat(2,minmax(280px,1fr));
    gap: 12px
}

    .validation-cards > button {
        padding: 17px;
        border: 1px solid var(--ns-line);
        border-radius: 15px;
        background: #fff;
        text-align: left;
        color: var(--ns-ink);
        transition: .16s ease
    }

        .validation-cards > button:hover {
            transform: translateY(-2px);
            border-color: var(--ns-blue-4);
            box-shadow: var(--shadow)
        }

    .validation-cards header, .validation-cards footer {
        display: flex;
        justify-content: space-between;
        align-items: center
    }

    .validation-cards h4 {
        font-size: .92rem;
        margin: 13px 0
    }

.validation-status {
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--ns-blue-3);
    color: var(--ns-blue);
    font-size: .6rem;
    font-weight: 850
}

.validation-stats {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 7px;
    margin-bottom: 14px
}

    .validation-stats span {
        padding: 9px;
        border-radius: 10px;
        background: #f6f9fc;
        text-align: center
    }

    .validation-stats b, .validation-stats small {
        display: block
    }

    .validation-stats small {
        font-size: .56rem;
        color: var(--ns-muted)
    }

.validation-cards footer {
    font-size: .64rem;
    color: var(--ns-muted)
}

    .validation-cards footer em {
        color: var(--ns-blue);
        font-style: normal;
        font-weight: 800
    }

.evidence-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(230px,1fr));
    gap: 10px
}

.evidence-card {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--ns-line);
    border-radius: 13px;
    background: #fff
}

    .evidence-card:hover {
        border-color: var(--ns-blue-4);
        box-shadow: var(--shadow);
        transform: translateY(-2px)
    }

.file-symbol {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    background: var(--ns-blue-3);
    color: var(--ns-blue);
    font-size: .65rem;
    font-weight: 900
}

.evidence-card small, .evidence-card b, .evidence-card p {
    display: block
}

.evidence-card small {
    font-size: .58rem;
    color: var(--ns-blue);
    font-weight: 850
}

.evidence-card b {
    font-size: .73rem
}

.evidence-card p {
    margin: 3px 0 0;
    font-size: .6rem;
    color: var(--ns-muted)
}

.evidence-card em {
    font-size: .58rem;
    color: var(--ns-muted);
    font-style: normal
}

.trace-layout {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 14px
}

.trace-feed > button {
    grid-template-columns: auto minmax(0,1fr) auto
}

.trace-feed b, .trace-feed small {
    display: block
}

.trace-feed small {
    font-size: .6rem;
    color: var(--ns-muted)
}

.trace-feed em {
    font-size: .58rem;
    color: var(--ns-muted);
    font-style: normal
}

.audit-feed article {
    display: grid;
    grid-template-columns: 10px minmax(0,1fr);
    gap: 9px;
    padding: 11px 2px;
    border-top: 1px solid var(--ns-line)
}

    .audit-feed article > i {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--ns-blue);
        margin-top: 5px
    }

.audit-feed b {
    font-size: .68rem
}

.audit-feed p {
    font-size: .64rem;
    color: var(--ns-ink-2);
    margin: 3px 0
}

.audit-feed small {
    font-size: .58rem;
    color: var(--ns-muted)
}

/* inspector universal */
.origin-drawer {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(470px,94vw);
    z-index: 100;
    background: #fff;
    border-left: 1px solid var(--ns-line);
    box-shadow: -18px 0 55px rgba(20,55,90,.18);
    transform: translateX(104%);
    transition: transform .28s cubic-bezier(.2,.8,.2,1);
    overflow-y: auto
}

    .origin-drawer.open {
        transform: translateX(0)
    }

.origin-backdrop {
    position: fixed;
    inset: 0;
    z-index: 99;
    background: rgba(18,50,78,.30);
    backdrop-filter: blur(2px);
    opacity: 0;
    pointer-events: none;
    transition: .25s ease
}

    .origin-backdrop.open {
        opacity: 1;
        pointer-events: auto
    }

.origin-loading {
    min-height: 100%;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 10px;
    color: var(--ns-muted);
    padding: 30px;
    text-align: center
}

    .origin-loading > span {
        width: 34px;
        height: 34px;
        border: 3px solid var(--ns-line);
        border-top-color: var(--ns-blue);
        border-radius: 50%;
        animation: spin .8s linear infinite
    }

.origin-inspector header {
    padding: 24px;
    border-bottom: 1px solid var(--ns-line);
    background: linear-gradient(135deg,#f8fbff,#eef6ff)
}

.origin-inspector .inspector-close {
    float: right;
    width: 34px;
    height: 34px;
    border: 1px solid var(--ns-line);
    border-radius: 9px;
    background: #fff;
    color: var(--ns-blue)
}

.origin-inspector header > small {
    color: var(--ns-blue);
    font-weight: 900;
    letter-spacing: .1em
}

.origin-inspector h3 {
    font-size: 1.25rem;
    margin: 8px 0 6px
}

.origin-inspector header p {
    margin: 0;
    color: var(--ns-muted)
}

.origin-inspector-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.origin-path {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: center
}

.origin-node {
    padding: 12px;
    border: 1px solid var(--ns-line);
    border-radius: 12px;
    background: #fff
}

    .origin-node small, .origin-node b {
        display: block
    }

    .origin-node small {
        font-size: .58rem;
        color: var(--ns-muted)
    }

    .origin-node b {
        font-size: .73rem;
        margin-top: 3px
    }

.origin-path > i {
    color: var(--ns-orange);
    font-style: normal;
    font-weight: 900
}

.inspector-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px
}

.inspector-field {
    padding: 11px;
    border-radius: 10px;
    background: #f5f9fd
}

    .inspector-field small, .inspector-field b {
        display: block
    }

    .inspector-field small {
        font-size: .58rem;
        color: var(--ns-muted)
    }

    .inspector-field b {
        font-size: .72rem;
        margin-top: 2px
    }

.inspector-lock {
    padding: 12px;
    border: 1px solid #efd397;
    border-radius: 11px;
    background: var(--ns-yellow-soft);
    color: #6f4a00
}

.inspector-audit article {
    padding: 9px 0;
    border-top: 1px solid var(--ns-line)
}

.inspector-audit b, .inspector-audit small {
    display: block
}

.inspector-audit small {
    font-size: .58rem;
    color: var(--ns-muted)
}

/* forms and empty states */
.v9-dialog {
    width: min(720px,94vw);
    padding: 0
}

.v9-dialog-shell > header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 22px;
    border-bottom: 1px solid var(--ns-line);
    background: #f7fbff
}

    .v9-dialog-shell > header small {
        color: var(--ns-blue);
        font-size: .64rem;
        font-weight: 900;
        letter-spacing: .1em
    }

    .v9-dialog-shell > header h3 {
        margin: 4px 0 0
    }

    .v9-dialog-shell > header button {
        border: 0;
        background: #fff;
        border-radius: 9px;
        width: 34px;
        height: 34px;
        color: var(--ns-blue)
    }

.v9-dialog-shell > label, .v9-dialog-shell > .form-grid, .v9-dialog-shell > .dialog-info {
    margin: 14px 22px 0
}

.v9-dialog-shell label {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: var(--ns-ink);
    font-size: .7rem;
    font-weight: 750
}

.v9-dialog-shell input, .v9-dialog-shell textarea, .v9-dialog-shell select {
    width: 100%;
    border: 1px solid var(--ns-line-strong);
    border-radius: 10px;
    padding: 10px;
    color: var(--ns-ink);
    font-weight: 400
}

.v9-dialog-shell label small {
    color: var(--ns-muted);
    font-weight: 400
}

.form-grid {
    display: grid;
    gap: 10px
}

    .form-grid.cols-3 {
        grid-template-columns: repeat(3,1fr)
    }

.dialog-info {
    padding: 11px;
    border-radius: 10px;
    background: var(--ns-blue-3);
    color: var(--ns-blue);
    font-size: .7rem
}

.v9-dialog-shell > footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 16px 22px 20px
}

.empty-state {
    grid-column: 1/-1;
    padding: 42px 20px;
    text-align: center;
    color: var(--ns-muted)
}

    .empty-state b {
        display: block;
        color: var(--ns-ink);
        font-size: .95rem
    }

    .empty-state p {
        max-width: 560px;
        margin: 6px auto 15px
    }

    .empty-state.compact {
        padding: 25px
    }

.empty-inline {
    padding: 24px;
    color: var(--ns-muted);
    text-align: center
}

.hidden-token {
    display: none
}

/* animaciones intencionales */
.reveal {
    opacity: 0;
    transform: translateY(10px)
}

    .reveal.is-visible {
        opacity: 1;
        transform: none;
        transition: opacity .42s ease,transform .42s ease
    }

.work-card, .focus-card, .evidence-card, .validation-cards > button {
    will-change: transform
}

@keyframes spin {
    to {
        transform: rotate(360deg)
    }
}

@keyframes orbit-in {
    from {
        transform: scale(.75) rotate(-40deg);
        opacity: 0
    }

    to {
        transform: scale(1) rotate(0);
        opacity: 1
    }
}

@keyframes soft-pulse {
    0%,100% {
        box-shadow: 0 0 0 5px rgba(7,87,166,.09)
    }

    50% {
        box-shadow: 0 0 0 9px rgba(7,87,166,.04)
    }
}

@media(prefers-reduced-motion:reduce) {
    *, *:before, *:after {
        scroll-behavior: auto !important;
        animation: none !important;
        transition: none !important
    }

    .reveal {
        opacity: 1;
        transform: none
    }
}

/* responsive */
@media(max-width:1280px) {
    .focus-grid {
        grid-template-columns: repeat(3,1fr)
    }

    .focus-card.primary {
        grid-column: 1/-1
    }

    .overview-grid {
        grid-template-columns: 1fr
    }

    .workspace-layout {
        grid-template-columns: 210px minmax(0,1fr)
    }

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

@media(max-width:1020px) {
    .workspace-layout {
        grid-template-columns: 1fr
    }

    .workspace-nav {
        position: static;
        display: grid;
        grid-template-columns: repeat(3,1fr)
    }

        .workspace-nav > a {
            min-height: 50px
        }

    .workspace-hero {
        grid-template-columns: 1fr
    }

    .workspace-progress-card {
        width: max-content
    }

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

    .work-board {
        grid-template-columns: repeat(4,260px)
    }

    .decision-grid, .trace-layout {
        grid-template-columns: 1fr
    }

    .validation-cards {
        grid-template-columns: 1fr
    }

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

@media(max-width:760px) {
    .content {
        padding: 18px 14px 36px
    }

    .page-heading {
        padding: 18px 15px;
        align-items: flex-start
    }

    .page-actions {
        width: 100%;
        justify-content: flex-start
    }

    .workspace-hero {
        padding: 22px
    }

    .workspace-identity h2 {
        font-size: 1.8rem
    }

    .workspace-progress-card {
        width: 100%;
        min-width: 0
    }

    .workspace-nav {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        padding: 7px
    }

        .workspace-nav > a {
            min-width: 175px
        }

    .focus-grid, .agreement-kpis, .lock-grid, .evidence-grid {
        grid-template-columns: 1fr
    }

    .map-flow {
        grid-template-columns: 1fr
    }

        .map-flow > i {
            transform: rotate(90deg);
            justify-self: center
        }

    .section-intro {
        align-items: flex-start;
        flex-direction: column
    }

    .timeline-toolbar {
        flex-wrap: wrap
    }

        .timeline-toolbar > label {
            flex-basis: 100%
        }

        .timeline-toolbar select {
            flex: 1
        }

    .meeting-summary {
        grid-template-columns: 54px minmax(0,1fr)
    }

    .meeting-health, .meeting-progress {
        grid-column: 2
    }

    .meeting-gantt-row {
        grid-template-columns: 1fr
    }

        .meeting-gantt-row > i {
            min-height: 20px
        }

    .form-grid.cols-3 {
        grid-template-columns: 1fr
    }

    .validation-stats {
        grid-template-columns: repeat(2,1fr)
    }

    .origin-drawer {
        width: 100%
    }

    .inspector-fields {
        grid-template-columns: 1fr
    }
}
/* partial real del inspector */
.origin-inspector-content {
    min-height: 100%;
    background: #fff
}

.origin-head {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr) 36px;
    gap: 12px;
    align-items: start;
    padding: 22px;
    border-bottom: 1px solid var(--ns-line);
    background: linear-gradient(135deg,#f8fbff,#eef6ff)
}

.origin-symbol {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--ns-blue-3);
    color: var(--ns-blue)
}

    .origin-symbol svg {
        width: 25px;
        height: 25px
    }

.origin-head small {
    color: var(--ns-blue);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .1em
}

.origin-head h2 {
    font-size: 1.15rem;
    line-height: 1.25;
    margin: 4px 0
}

.origin-head p {
    margin: 0;
    color: var(--ns-muted);
    font-size: .75rem
}

.origin-close {
    width: 35px;
    height: 35px;
    border: 1px solid var(--ns-line);
    border-radius: 9px;
    background: #fff;
    color: var(--ns-blue);
    font-size: 1.1rem
}

.origin-route, .origin-status-line, .origin-fields, .origin-metadata, .origin-history, .origin-footer {
    margin: 0 20px;
    padding: 17px 0;
    border-bottom: 1px solid var(--ns-line)
}

.origin-route-label {
    display: block;
    color: var(--ns-blue);
    font-size: .6rem;
    font-weight: 900;
    letter-spacing: .1em;
    margin-bottom: 10px
}

.origin-route-flow {
    display: grid;
    grid-template-columns: 1fr 30px 1fr;
    gap: 6px;
    align-items: center
}

.source-node {
    padding: 11px;
    border: 1px solid var(--ns-line);
    border-radius: 11px;
    background: #f8fbff
}

    .source-node.current {
        background: var(--ns-blue-3);
        border-color: var(--ns-blue-4)
    }

    .source-node b, .source-node small {
        display: block
    }

    .source-node b {
        font-size: .7rem
    }

    .source-node small {
        font-size: .59rem;
        color: var(--ns-muted);
        margin-top: 2px
    }

.origin-route-flow > i {
    display: grid;
    place-items: center;
    color: var(--ns-orange)
}

.origin-source-link {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: 10px;
    padding: 9px 11px;
    border-radius: 9px;
    background: var(--ns-orange-soft);
    color: var(--ns-orange-2);
    font-size: .68rem;
    font-weight: 850
}

.origin-status-line {
    display: flex;
    align-items: center;
    gap: 8px
}

.lock-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--ns-yellow-soft);
    color: var(--ns-yellow);
    font-size: .62rem;
    font-weight: 850
}

    .lock-chip svg {
        width: 13px;
        height: 13px
    }

.origin-lock-note {
    margin: 14px 20px 0;
    padding: 12px;
    border: 1px solid #efd397;
    border-radius: 11px;
    background: var(--ns-yellow-soft)
}

    .origin-lock-note b {
        font-size: .7rem
    }

    .origin-lock-note p {
        font-size: .66rem;
        margin: 4px 0 0;
        color: #725000
    }

.origin-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px
}

    .origin-fields article {
        padding: 11px;
        border-radius: 10px;
        background: #f5f9fd
    }

    .origin-fields small, .origin-fields b {
        display: block
    }

    .origin-fields small {
        font-size: .58rem;
        color: var(--ns-muted)
    }

    .origin-fields b {
        font-size: .72rem;
        margin-top: 2px
    }

.origin-metadata h3, .origin-history h3 {
    font-size: .78rem;
    margin: 0 0 10px
}

.origin-metadata dl {
    margin: 0
}

    .origin-metadata dl > div {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        padding: 8px 0;
        border-top: 1px dashed var(--ns-line)
    }

.origin-metadata dt {
    color: var(--ns-muted);
    font-size: .62rem
}

.origin-metadata dd {
    margin: 0;
    text-align: right;
    font-size: .64rem;
    font-weight: 750
}

.origin-history-list article {
    display: grid;
    grid-template-columns: 9px minmax(0,1fr);
    gap: 8px;
    padding: 9px 0;
    border-top: 1px solid var(--ns-line)
}

    .origin-history-list article > i {
        width: 7px;
        height: 7px;
        margin-top: 5px;
        border-radius: 50%;
        background: var(--ns-blue)
    }

.origin-history-list b {
    font-size: .67rem
}

.origin-history-list p {
    font-size: .62rem;
    margin: 2px 0;
    color: var(--ns-ink-2)
}

.origin-history-list small {
    font-size: .57rem;
    color: var(--ns-muted)
}

.origin-empty {
    padding: 15px;
    border: 1px dashed var(--ns-line-strong);
    border-radius: 10px;
    color: var(--ns-muted);
    font-size: .66rem;
    text-align: center
}

.origin-footer {
    border-bottom: 0
}

    .origin-footer .btn {
        width: 100%
    }

.v9-floating-toast {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 140;
    min-width: 300px;
    background: #fff;
    box-shadow: 0 20px 55px rgba(20,55,90,.2)
}

@media(max-width:760px) {
    .origin-fields {
        grid-template-columns: 1fr
    }

    .origin-route-flow {
        grid-template-columns: 1fr
    }

        .origin-route-flow > i {
            transform: rotate(90deg)
        }
}

.workspace-origin-button {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin: .2rem 0 1rem;
    padding: .55rem .8rem;
    border: 1px solid rgba(21,93,252,.2);
    border-radius: 999px;
    background: rgba(21,93,252,.07);
    color: var(--ns-blue);
    font-weight: 800;
    cursor: pointer;
    transition: transform .2s ease,background .2s ease,box-shadow .2s ease
}

    .workspace-origin-button:hover {
        transform: translateY(-2px);
        background: rgba(21,93,252,.12);
        box-shadow: 0 10px 24px rgba(21,93,252,.12)
    }

    .workspace-origin-button i {
        font-style: normal;
        color: var(--ns-orange)
    }

/* ===== v10.css ===== */
/* NS Innova V10 - experiencia guiada y consistente para usuarios finales */
:root {
    --ns-blue: #0757a6;
    --ns-blue-strong: #064786;
    --ns-blue-bright: #0b74d5;
    --ns-blue-soft: #eaf4ff;
    --ns-blue-pale: #f5faff;
    --ns-cyan: #19a7ce;
    --ns-orange: #f47c20;
    --ns-orange-strong: #d95d08;
    --ns-orange-soft: #fff1e7;
    --ns-green: #13845d;
    --ns-green-soft: #e7f7f1;
    --ns-yellow: #a86b00;
    --ns-yellow-soft: #fff5dd;
    --ns-red: #c63d4c;
    --ns-red-soft: #fff0f2;
    --ns-ink: #17324d;
    --ns-ink-2: #3f5870;
    --ns-muted: #6f8294;
    --ns-line: #dce7f1;
    --ns-line-strong: #c9d9e7;
    --ns-bg: #f4f8fc;
    --ns-surface: #fff;
    --ns-shadow: 0 12px 34px rgba(19,65,104,.08);
    --ns-shadow-lg: 0 24px 70px rgba(16,56,92,.16);
    --bg: var(--ns-bg);
    --surface: var(--ns-surface);
    --surface-2: #f8fbfe;
    --surface-3: #eef5fb;
    --line: var(--ns-line);
    --line-strong: var(--ns-line-strong);
    --text: var(--ns-ink);
    --muted: var(--ns-muted);
    --sidebar-width: 258px;
    --radius: 18px;
    --radius-sm: 12px;
}

html, body {
    background: var(--ns-bg);
    color: var(--ns-ink)
}

body {
    font-size: 14px;
    letter-spacing: -.006em
}

button, input, select, textarea {
    font-family: inherit
}

:focus-visible {
    outline: 3px solid rgba(11,116,213,.24);
    outline-offset: 2px
}

/* Shell limpio y jerarquía visual */
.sidebar {
    background: #fff;
    border-right: 1px solid var(--ns-line);
    box-shadow: 8px 0 34px rgba(29,70,108,.04)
}

.brand-row {
    height: 72px;
    padding: 0 16px;
    border-color: var(--ns-line)
}

.brand-mark {
    background: linear-gradient(145deg,var(--ns-blue),var(--ns-blue-bright));
    box-shadow: 0 9px 22px rgba(7,87,166,.24)
}

.brand-copy b {
    color: var(--ns-blue-strong)
}

.brand-copy small {
    color: var(--ns-muted)
}

.idea-entry {
    background: linear-gradient(135deg,var(--ns-blue),var(--ns-blue-bright) 62%,var(--ns-cyan));
    box-shadow: 0 12px 28px rgba(7,87,166,.2);
    border: 0
}

    .idea-entry:hover {
        box-shadow: 0 18px 36px rgba(7,87,166,.27)
    }

.nav {
    gap: 2px;
    padding: 5px 10px 18px
}

.nav-section {
    color: #91a2b2;
    padding-top: 15px
}

.nav-item {
    color: #526a80;
    border: 1px solid transparent
}

    .nav-item:hover {
        background: var(--ns-blue-pale);
        color: var(--ns-blue);
        transform: translateX(2px)
    }

    .nav-item.active {
        background: var(--ns-blue-soft);
        color: var(--ns-blue-strong);
        box-shadow: inset 3px 0 var(--ns-blue);
        border-color: #d9eaff
    }

        .nav-item.active .nav-icon {
            color: var(--ns-blue)
        }

.sidebar-foot {
    background: #f8fbfe;
    border-color: var(--ns-line)
}

.avatar {
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    box-shadow: inset 0 0 0 1px #cfe4f8
}

.user-mini a:hover {
    color: var(--ns-blue)
}

.topbar {
    height: 66px;
    background: rgba(255,255,255,.94);
    border-color: var(--ns-line);
    box-shadow: 0 6px 20px rgba(28,73,111,.035)
}

.global-search {
    background: #f7faff;
    border-color: var(--ns-line);
    height: 42px
}

    .global-search:hover {
        border-color: #a8cae8;
        background: #fff
    }

    .global-search svg {
        color: var(--ns-blue)
    }

.top-icon:hover {
    color: var(--ns-blue);
    border-color: #afd0ed;
    background: var(--ns-blue-pale)
}

.btn-primary {
    background: linear-gradient(135deg,var(--ns-blue),var(--ns-blue-bright));
    border-color: var(--ns-blue);
    box-shadow: 0 8px 20px rgba(7,87,166,.15)
}

    .btn-primary:hover {
        background: linear-gradient(135deg,var(--ns-blue-strong),var(--ns-blue));
        transform: translateY(-1px);
        box-shadow: 0 12px 25px rgba(7,87,166,.22)
    }

.btn-soft, .btn-ghost {
    color: var(--ns-blue);
    background: var(--ns-blue-pale);
    border-color: #d1e4f5
}

    .btn-soft:hover, .btn-ghost:hover {
        background: var(--ns-blue-soft);
        border-color: #b8d6ef
    }

.page-heading {
    padding: 22px clamp(18px,3vw,36px) 14px;
    background: transparent;
    border: 0;
    align-items: flex-end
}

    .page-heading h1 {
        font-size: clamp(1.55rem,2.2vw,2.2rem);
        letter-spacing: -.035em;
        color: var(--ns-ink);
        margin: 4px 0
    }

    .page-heading p {
        margin: 4px 0 0;
        max-width: 720px;
        color: var(--ns-muted);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

.breadcrumb {
    font-size: .64rem;
    letter-spacing: .08em;
    text-transform: uppercase
}

    .breadcrumb a {
        color: var(--ns-blue)
    }

.content {
    padding: 10px clamp(18px,3vw,36px) 48px
}

/* Componentes universales: toda pantalla obtiene diseño aunque sea sencilla */
.card, .surface-card {
    background: #fff;
    border: 1px solid var(--ns-line);
    border-radius: 18px;
    box-shadow: var(--ns-shadow);
    overflow: hidden
}

.card-head, .section-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--ns-line);
    background: linear-gradient(180deg,#fff,#fbfdff)
}

    .card-head h2, .section-card-head h2, .section-card-head h3 {
        margin: 0;
        color: var(--ns-ink);
        font-size: 1.05rem
    }

    .card-head p, .section-card-head p {
        margin: 5px 0 0;
        color: var(--ns-muted)
    }

.eyebrow {
    display: block;
    color: var(--ns-blue);
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .11em;
    text-transform: uppercase
}

.hero {
    background: linear-gradient(135deg,var(--ns-blue-strong),var(--ns-blue) 58%,var(--ns-cyan));
    color: #fff;
    border: 0;
    box-shadow: 0 20px 44px rgba(7,87,166,.18)
}

    .hero p, .hero small, .hero span {
        color: rgba(255,255,255,.86)
    }

.table-wrap {
    overflow: auto
}

    .table-wrap table {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0
    }

    .table-wrap th {
        position: sticky;
        top: 0;
        z-index: 1;
        background: #f6faff;
        color: #60768a;
        font-size: .64rem;
        letter-spacing: .07em;
        text-transform: uppercase;
        padding: 12px 14px;
        border-bottom: 1px solid var(--ns-line)
    }

    .table-wrap td {
        padding: 13px 14px;
        border-bottom: 1px solid #edf2f7;
        vertical-align: middle
    }

    .table-wrap tbody tr {
        transition: background .16s ease,transform .16s ease
    }

        .table-wrap tbody tr:hover {
            background: #f8fbff
        }

    .table-wrap td small {
        display: block;
        color: var(--ns-muted);
        margin-top: 3px
    }

.form-stack, .guided-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 22px
}

    .form-stack label, .guided-form label {
        display: flex;
        flex-direction: column;
        gap: 6px;
        color: var(--ns-ink);
        font-weight: 750
    }

    .form-stack input, .form-stack select, .form-stack textarea, .guided-form input, .guided-form select, .guided-form textarea {
        width: 100%;
        border: 1px solid var(--ns-line-strong);
        border-radius: 11px;
        background: #fff;
        color: var(--ns-ink);
        padding: 11px 12px;
        transition: border .16s ease,box-shadow .16s ease,background .16s ease
    }

        .form-stack input:focus, .form-stack select:focus, .form-stack textarea:focus, .guided-form input:focus, .guided-form select:focus, .guided-form textarea:focus {
            border-color: #69a9df;
            box-shadow: 0 0 0 4px rgba(11,116,213,.09);
            outline: 0;
            background: #fff
        }

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 6px
}

.validation {
    padding: 11px 13px;
    border-radius: 10px;
    background: var(--ns-red-soft);
    color: var(--ns-red);
    font-size: .75rem
}

    .validation:empty {
        display: none
    }

.field-error {
    color: var(--ns-red);
    font-size: .7rem;
    font-weight: 600
}

.badge {
    border-radius: 999px;
    padding: 5px 9px;
    font-size: .63rem;
    font-weight: 850
}

    .badge.activa, .badge.aprobado, .badge.aprobada, .badge.terminado {
        background: var(--ns-green-soft);
        color: var(--ns-green)
    }

    .badge.pendiente, .badge.preparacion, .badge.condicionado {
        background: var(--ns-yellow-soft);
        color: var(--ns-yellow)
    }

    .badge.rechazado, .badge.rechazada, .badge.fallido, .badge.bloqueado {
        background: var(--ns-red-soft);
        color: var(--ns-red)
    }

    .badge.neutral {
        background: var(--ns-blue-soft);
        color: var(--ns-blue)
    }

.empty-state {
    padding: 48px 24px
}

    .empty-state h1, .empty-state h2 {
        color: var(--ns-ink)
    }

.empty-icon {
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    box-shadow: 0 0 0 10px #f5faff
}

.toast.info {
    border-color: #b9d8f2;
    background: #f2f8ff
}

    .toast.info b {
        color: var(--ns-blue)
    }

/* Cuenta y acceso */
.account-body {
    min-height: 100vh;
    background: #eef5fb;
    overflow-x: hidden
}

.account-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(420px,1.05fr) minmax(440px,.95fr)
}

.account-story {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 34px clamp(34px,5vw,78px);
    color: #fff;
    background: radial-gradient(circle at 12% 20%,rgba(25,167,206,.45),transparent 30%),radial-gradient(circle at 90% 75%,rgba(244,124,32,.3),transparent 31%),linear-gradient(145deg,#053d75,#0757a6 55%,#0873ba);
    overflow: hidden
}

    .account-story:before, .account-story:after {
        content: "";
        position: absolute;
        border: 1px solid rgba(255,255,255,.14);
        border-radius: 50%;
        pointer-events: none
    }

    .account-story:before {
        width: 520px;
        height: 520px;
        right: -250px;
        top: -160px
    }

    .account-story:after {
        width: 380px;
        height: 380px;
        left: -170px;
        bottom: -190px
    }

.account-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 1
}

    .account-brand > span {
        width: 46px;
        height: 46px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        background: #fff;
        color: var(--ns-blue);
        font-weight: 950;
        box-shadow: 0 12px 28px rgba(0,0,0,.16)
    }

    .account-brand b, .account-brand small {
        display: block
    }

    .account-brand b {
        font-size: 1.15rem;
        letter-spacing: .14em
    }

    .account-brand small {
        font-size: .7rem;
        color: rgba(255,255,255,.72);
        margin-top: 2px
    }

.account-story-content {
    position: relative;
    z-index: 1;
    margin: auto 0;
    max-width: 670px
}

.account-kicker {
    display: inline-flex;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .13em
}

.account-story h1 {
    font-size: clamp(2.2rem,4.2vw,4.4rem);
    line-height: 1.03;
    letter-spacing: -.055em;
    margin: 22px 0 18px;
    max-width: 760px
}

.account-story-content > p {
    max-width: 610px;
    font-size: 1.05rem;
    line-height: 1.65;
    color: rgba(255,255,255,.82)
}

.account-flow {
    display: grid;
    grid-template-columns: 1fr 34px 1fr 34px 1fr;
    align-items: center;
    gap: 8px;
    margin-top: 42px
}

    .account-flow > div {
        display: flex;
        align-items: center;
        gap: 11px;
        padding: 13px;
        border: 1px solid rgba(255,255,255,.16);
        border-radius: 14px;
        background: rgba(255,255,255,.08);
        backdrop-filter: blur(10px)
    }

    .account-flow i {
        width: 29px;
        height: 29px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: #fff;
        color: var(--ns-blue);
        font-style: normal;
        font-weight: 900
    }

    .account-flow b, .account-flow small {
        display: block
    }

    .account-flow small {
        color: rgba(255,255,255,.68);
        font-size: .66rem;
        margin-top: 2px
    }

    .account-flow em {
        height: 2px;
        background: linear-gradient(90deg,rgba(255,255,255,.15),rgba(255,255,255,.65));
        position: relative
    }

        .account-flow em:after {
            content: "";
            position: absolute;
            right: 0;
            top: -3px;
            border-left: 6px solid rgba(255,255,255,.65);
            border-top: 4px solid transparent;
            border-bottom: 4px solid transparent
        }

.account-corporate {
    position: relative;
    z-index: 1;
    color: rgba(255,255,255,.66);
    font-size: .72rem
}

.account-panel {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 42px clamp(24px,5vw,74px);
    background: #fff
}

.account-panel-inner {
    width: min(520px,100%)
}

.auth-heading {
    margin-bottom: 24px
}

    .auth-heading.compact {
        margin-bottom: 18px
    }

.auth-step {
    display: block;
    color: var(--ns-blue);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .12em
}

.auth-heading h2, .auth-result h2 {
    font-size: 2rem;
    line-height: 1.1;
    letter-spacing: -.04em;
    margin: 8px 0 9px;
    color: var(--ns-ink)
}

.auth-heading p, .auth-result > p {
    color: var(--ns-muted);
    font-size: .92rem;
    line-height: 1.55;
    margin: 0
}

.auth-form {
    display: flex;
    flex-direction: column;
    gap: 15px
}

.auth-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: var(--ns-ink);
    font-size: .78rem;
    font-weight: 750
}

    .auth-field > small {
        color: var(--ns-muted);
        font-weight: 500;
        font-size: .67rem
    }

    .auth-field input {
        width: 100%;
        height: 48px;
        padding: 0 13px;
        border: 1px solid var(--ns-line-strong);
        border-radius: 11px;
        background: #fbfdff;
        color: var(--ns-ink);
        transition: .16s
    }

        .auth-field input:focus {
            outline: 0;
            border-color: #69a9df;
            box-shadow: 0 0 0 4px rgba(11,116,213,.09);
            background: #fff
        }

.auth-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.input-with-icon {
    position: relative
}

    .input-with-icon > svg {
        position: absolute;
        left: 13px;
        top: 15px;
        color: #7d94a8;
        width: 18px;
        height: 18px
    }

    .input-with-icon > input {
        padding-left: 42px
    }

.password-input {
    position: relative
}

    .password-input input {
        padding-right: 58px
    }

    .password-input button {
        position: absolute;
        right: 7px;
        top: 7px;
        height: 34px;
        padding: 0 10px;
        border: 0;
        border-radius: 8px;
        background: var(--ns-blue-pale);
        color: var(--ns-blue);
        font-size: .67rem;
        font-weight: 850
    }

.auth-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--ns-muted);
    font-size: .72rem
}

    .auth-options a, .auth-footer-link a, .text-action {
        color: var(--ns-blue);
        font-weight: 800
    }

.auth-footer-link {
    text-align: center;
    color: var(--ns-muted);
    margin: 18px 0 0;
    font-size: .76rem
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: #90a1b1;
    font-size: .68rem
}

    .auth-divider:before, .auth-divider:after {
        content: "";
        height: 1px;
        flex: 1;
        background: var(--ns-line)
    }

.btn-large {
    min-height: 48px;
    border-radius: 11px;
    font-weight: 850
}

.auth-note {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 11px;
    background: var(--ns-blue-pale);
    border: 1px solid #d5e8f7;
    color: var(--ns-ink-2);
    font-size: .72rem
}

    .auth-note.warning {
        background: var(--ns-yellow-soft);
        border-color: #f1d99f;
        color: #755000
    }

    .auth-note a {
        color: var(--ns-blue);
        font-weight: 850
    }

.responsible-use {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 9px;
    align-items: start;
    padding: 11px;
    border-radius: 10px;
    background: #f8fbfe;
    color: var(--ns-ink-2);
    font-size: .7rem;
    line-height: 1.45
}

    .responsible-use input {
        margin-top: 2px
    }

.password-meter {
    display: flex;
    align-items: center;
    gap: 9px
}

    .password-meter:before {
        content: "";
        width: 92px;
        height: 5px;
        border-radius: 999px;
        background: #e7edf3
    }

    .password-meter i {
        position: absolute;
        width: 0;
        height: 5px;
        border-radius: 999px;
        background: var(--ns-red);
        transition: width .22s ease,background .22s ease
    }

    .password-meter span {
        font-size: .64rem;
        color: var(--ns-muted);
        font-weight: 500;
        margin-left: 100px
    }

    .password-meter[data-strength="1"] i {
        width: 23px
    }

    .password-meter[data-strength="2"] i {
        width: 46px;
        background: var(--ns-yellow)
    }

    .password-meter[data-strength="3"] i {
        width: 69px;
        background: var(--ns-cyan)
    }

    .password-meter[data-strength="4"] i {
        width: 92px;
        background: var(--ns-green)
    }

.auth-result {
    text-align: center
}

.result-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    font-size: 1.7rem;
    font-weight: 900
}

    .result-icon.success {
        background: var(--ns-green-soft);
        color: var(--ns-green)
    }

    .result-icon.danger {
        background: var(--ns-red-soft);
        color: var(--ns-red)
    }

    .result-icon.mail {
        background: var(--ns-blue-soft);
        color: var(--ns-blue)
    }

.auth-result .btn {
    margin-top: 24px
}

.auth-result .text-action {
    display: inline-block;
    margin-top: 16px
}

.result-steps {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 8px;
    margin: 25px 0
}

    .result-steps span {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 7px;
        padding: 12px 7px;
        border-radius: 11px;
        background: #f7faff;
        color: var(--ns-ink-2);
        font-size: .68rem
    }

    .result-steps i {
        width: 26px;
        height: 26px;
        display: grid;
        place-items: center;
        border-radius: 8px;
        background: var(--ns-blue);
        color: #fff;
        font-style: normal;
        font-weight: 900
    }

/* Onboarding guiado */
.onboarding-dialog {
    width: min(930px,94vw);
    padding: 0;
    border: 0;
    border-radius: 24px;
    background: transparent;
    box-shadow: var(--ns-shadow-lg)
}

    .onboarding-dialog::backdrop {
        background: rgba(9,35,59,.58);
        backdrop-filter: blur(5px)
    }

.onboarding-shell {
    min-height: 590px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 24px;
    overflow: hidden
}

.onboarding-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--ns-line)
}

.onboarding-brand {
    display: flex;
    align-items: center;
    gap: 10px
}

    .onboarding-brand > span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: var(--ns-blue);
        color: #fff;
        font-weight: 900
    }

    .onboarding-brand b {
        font-size: .9rem
    }

.onboarding-top > button {
    border: 0;
    background: transparent;
    color: var(--ns-muted);
    font-size: .7rem
}

.onboarding-progress {
    height: 4px;
    background: #edf3f8
}

    .onboarding-progress i {
        display: block;
        height: 100%;
        width: 25%;
        background: linear-gradient(90deg,var(--ns-blue),var(--ns-cyan),var(--ns-orange));
        transition: width .3s ease
    }

.onboarding-step {
    display: none;
    flex: 1;
    padding: 46px clamp(28px,6vw,75px);
    animation: v10Step .35s ease
}

    .onboarding-step.active {
        display: block
    }

.onboarding-kicker {
    display: block;
    color: var(--ns-blue);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .13em
}

.onboarding-step h2 {
    font-size: clamp(2rem,4vw,3.15rem);
    line-height: 1.05;
    letter-spacing: -.05em;
    margin: 11px 0 13px;
    max-width: 760px
}

.onboarding-step > p {
    max-width: 680px;
    color: var(--ns-muted);
    font-size: .95rem;
    line-height: 1.6
}

.welcome-path {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 14px;
    margin-top: 34px
}

    .welcome-path article {
        display: grid;
        grid-template-columns: 36px 1fr;
        gap: 10px;
        padding: 17px;
        border: 1px solid var(--ns-line);
        border-radius: 15px;
        background: #fbfdff
    }

    .welcome-path span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
        font-weight: 900
    }

    .welcome-path b, .welcome-path small {
        display: block
    }

    .welcome-path small {
        color: var(--ns-muted);
        font-size: .68rem;
        margin-top: 3px
    }

.onboarding-choices {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 14px;
    margin-top: 30px
}

    .onboarding-choices button, .experience-options button {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 20px;
        text-align: left;
        border: 1px solid var(--ns-line);
        border-radius: 16px;
        background: #fff;
        color: var(--ns-ink);
        transition: .18s
    }

        .onboarding-choices button:hover, .experience-options button:hover {
            transform: translateY(-2px);
            border-color: #a9cce9;
            box-shadow: var(--ns-shadow)
        }

        .onboarding-choices button.selected, .experience-options button.selected {
            border-color: var(--ns-blue);
            background: var(--ns-blue-pale);
            box-shadow: 0 0 0 3px rgba(7,87,166,.08)
        }

        .onboarding-choices button > span {
            width: 42px;
            height: 42px;
            display: grid;
            place-items: center;
            border-radius: 12px;
            background: var(--ns-blue-soft);
            font-size: 1.1rem
        }

    .onboarding-choices small, .experience-options small {
        color: var(--ns-muted);
        line-height: 1.4
    }

.experience-options {
    display: grid;
    gap: 10px;
    margin-top: 28px
}

    .experience-options button {
        display: grid;
        grid-template-columns: 1fr;
        gap: 3px;
        padding: 16px 18px
    }

.onboarding-feature-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 28px
}

    .onboarding-feature-grid article {
        display: grid;
        grid-template-columns: 42px 1fr;
        gap: 12px;
        align-items: center;
        padding: 15px;
        border-radius: 14px;
        background: #f7fbff;
        border: 1px solid #e0ecf6
    }

        .onboarding-feature-grid article > span {
            width: 42px;
            height: 42px;
            display: grid;
            place-items: center;
            border-radius: 12px;
            background: #fff;
            color: var(--ns-blue);
            font-weight: 900;
            box-shadow: 0 6px 14px rgba(28,74,112,.08)
        }

    .onboarding-feature-grid b, .onboarding-feature-grid small {
        display: block
    }

    .onboarding-feature-grid small {
        color: var(--ns-muted);
        margin-top: 2px
    }

.onboarding-ready {
    margin-top: 18px;
    padding: 12px 14px;
    border-radius: 11px;
    background: var(--ns-orange-soft);
    color: var(--ns-orange-strong)
}

.onboarding-actions {
    display: grid;
    grid-template-columns: 120px 1fr 120px;
    align-items: center;
    gap: 12px;
    padding: 18px 24px;
    border-top: 1px solid var(--ns-line);
    background: #fbfdff
}

    .onboarding-actions > span {
        text-align: center;
        color: var(--ns-muted);
        font-size: .7rem
    }

@keyframes v10Step {
    from {
        opacity: 0;
        transform: translateX(18px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

/* Ayuda contextual */
.v10-help {
    width: min(410px,100vw);
    background: #fff
}

    .v10-help header {
        background: linear-gradient(135deg,var(--ns-blue-strong),var(--ns-blue));
        color: #fff
    }

        .v10-help header small {
            color: rgba(255,255,255,.7)
        }

        .v10-help header button {
            color: #fff;
            background: rgba(255,255,255,.12)
        }

.help-context-card {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 12px;
    align-items: center;
    margin: 18px;
    padding: 15px;
    border-radius: 14px;
    background: var(--ns-blue-pale);
    border: 1px solid #d6e8f7
}

    .help-context-card > span {
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        border-radius: 14px;
        background: #fff;
        color: var(--ns-blue);
        font-size: 1.1rem;
        font-weight: 900
    }

    .help-context-card p {
        margin: 0;
        color: var(--ns-ink-2);
        line-height: 1.5
    }

.v10-help .help-content {
    padding: 0 18px
}

    .v10-help .help-content article {
        display: grid;
        grid-template-columns: 32px 1fr;
        gap: 10px;
        padding: 13px 0;
        border-bottom: 1px solid var(--ns-line)
    }

        .v10-help .help-content article > span {
            width: 30px;
            height: 30px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-weight: 900
        }

    .v10-help .help-content b, .v10-help .help-content p {
        display: block;
        margin: 0
    }

    .v10-help .help-content p {
        color: var(--ns-muted);
        font-size: .7rem;
        margin-top: 3px;
        line-height: 1.45
    }

.help-actions {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 18px
}

/* Perfil, seguridad y estados */
.profile-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 300px;
    gap: 18px
}

.profile-summary {
    grid-column: 1/-1;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 24px;
    background: linear-gradient(135deg,#fff,var(--ns-blue-pale))
}

.profile-avatar {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: linear-gradient(145deg,var(--ns-blue),var(--ns-cyan));
    color: #fff;
    font-size: 1.3rem;
    font-weight: 900;
    box-shadow: 0 13px 28px rgba(7,87,166,.2)
}

.profile-summary h2 {
    margin: 5px 0 2px
}

.profile-summary p {
    margin: 0;
    color: var(--ns-muted)
}

.profile-status {
    display: flex;
    gap: 7px;
    margin-top: 10px
}

    .profile-status span {
        padding: 5px 8px;
        border-radius: 999px;
        background: var(--ns-green-soft);
        color: var(--ns-green);
        font-size: .62rem;
        font-weight: 850
    }

.profile-help {
    padding: 22px
}

    .profile-help h3 {
        margin: 7px 0
    }

    .profile-help p {
        color: var(--ns-muted);
        line-height: 1.55
    }

.security-layout {
    display: grid;
    grid-template-columns: minmax(0,650px) minmax(240px,330px);
    gap: 18px
}

.security-shield {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--ns-green-soft);
    color: var(--ns-green);
    font-size: 1.2rem;
    font-weight: 900
}

.security-tips {
    padding: 22px
}

    .security-tips h3 {
        margin: 7px 0
    }

    .security-tips ul {
        padding-left: 18px;
        color: var(--ns-muted);
        line-height: 1.8
    }

.status-page {
    min-height: 480px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px;
    background: #fff;
    border: 1px solid var(--ns-line);
    border-radius: 20px;
    box-shadow: var(--ns-shadow)
}

    .status-page h2 {
        font-size: 1.8rem;
        margin: 10px 0
    }

    .status-page p {
        max-width: 610px;
        color: var(--ns-muted);
        line-height: 1.6
    }

.status-actions {
    display: flex;
    gap: 10px;
    margin-top: 17px
}

.status-illustration {
    width: 96px;
    height: 96px;
    position: relative;
    margin-bottom: 20px;
    border-radius: 30px;
    background: var(--ns-blue-soft)
}

    .status-illustration.lock:before {
        content: "";
        position: absolute;
        width: 42px;
        height: 34px;
        left: 27px;
        top: 42px;
        border-radius: 9px;
        background: var(--ns-blue)
    }

    .status-illustration.lock:after {
        content: "";
        position: absolute;
        width: 32px;
        height: 30px;
        left: 32px;
        top: 19px;
        border: 7px solid var(--ns-blue);
        border-bottom: 0;
        border-radius: 18px 18px 0 0
    }

/* Administración, notificaciones y pantallas maduras */
.admin-toolbar, .notification-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px 18px;
    border-bottom: 1px solid var(--ns-line);
    background: #fbfdff
}

    .admin-toolbar input, .notification-toolbar input {
        min-width: 240px;
        flex: 1;
        border: 1px solid var(--ns-line-strong);
        border-radius: 10px;
        padding: 10px 12px
    }

.admin-user {
    display: grid;
    grid-template-columns: 42px minmax(160px,1.2fr) minmax(130px,.8fr) minmax(170px,1fr) 90px 42px;
    gap: 12px;
    align-items: center;
    padding: 13px 18px;
    border-bottom: 1px solid #edf2f7
}

    .admin-user:hover {
        background: #f8fbff
    }

.admin-user-avatar {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-weight: 900
}

.admin-user b, .admin-user small {
    display: block
}

.admin-user small {
    color: var(--ns-muted);
    font-size: .67rem
}

.notification-list {
    display: flex;
    flex-direction: column
}

.notification {
    border-bottom: 1px solid var(--ns-line);
    transition: .16s
}

    .notification:hover {
        background: #f8fbff
    }

    .notification.read {
        opacity: .64
    }

    .notification button {
        width: 100%;
        display: grid;
        grid-template-columns: 42px 1fr auto;
        gap: 12px;
        align-items: center;
        text-align: left;
        padding: 15px 18px;
        border: 0;
        background: transparent;
        color: var(--ns-ink)
    }

.notification-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-weight: 900
}

.notification p {
    margin: 3px 0;
    color: var(--ns-muted)
}

/* Microinteracciones */
.card, .surface-card, .org-card, .product-card, .room-card, .validation-cards > button {
    transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease
}

    .card:hover, .surface-card.hoverable:hover, .org-card:hover, .product-card:hover, .room-card:hover {
        border-color: #c4dced;
        box-shadow: 0 18px 42px rgba(19,65,104,.12)
    }

[data-origin-type], [data-inspectable] {
    cursor: pointer
}

.reveal {
    opacity: 0;
    transform: translateY(12px)
}

    .reveal.is-visible {
        opacity: 1;
        transform: none;
        transition: opacity .4s ease,transform .4s ease
    }

.loading-bar {
    background: linear-gradient(90deg,var(--ns-blue),var(--ns-cyan),var(--ns-orange))
}

@media(max-width:1050px) {
    .account-shell {
        grid-template-columns: 1fr
    }

    .account-story {
        min-height: 420px
    }

    .account-panel {
        min-height: auto
    }

    .account-flow {
        max-width: 760px
    }

    .profile-layout, .security-layout {
        grid-template-columns: 1fr
    }

    .profile-help {
        grid-column: auto
    }
}

@media(max-width:760px) {
    .page-heading {
        align-items: flex-start;
        padding: 18px 15px 10px
    }

        .page-heading p {
            white-space: normal
        }

    .content {
        padding: 10px 14px 34px
    }

    .account-story {
        min-height: 360px;
        padding: 28px 24px
    }

        .account-story h1 {
            font-size: 2.25rem
        }

    .account-flow {
        grid-template-columns: 1fr
    }

        .account-flow em {
            display: none
        }

    .account-panel {
        padding: 34px 20px
    }

    .auth-grid, .welcome-path, .onboarding-choices, .onboarding-feature-grid {
        grid-template-columns: 1fr
    }

    .onboarding-step {
        padding: 30px 22px
    }

        .onboarding-step h2 {
            font-size: 2rem
        }

    .onboarding-shell {
        min-height: 650px
    }

    .onboarding-actions {
        grid-template-columns: 92px 1fr 100px;
        padding: 14px
    }

    .result-steps {
        grid-template-columns: 1fr
    }

    .status-actions {
        flex-direction: column;
        width: 100%
    }

        .status-actions .btn {
            width: 100%
        }

    .admin-user {
        grid-template-columns: 40px 1fr 42px
    }

        .admin-user > .admin-area, .admin-user > .admin-role, .admin-user > .admin-status {
            display: none
        }

    .top-propose {
        font-size: 0;
        width: 40px;
        padding: 0
    }

        .top-propose span {
            font-size: 1.1rem
        }

    .global-search {
        width: auto;
        flex: 1
    }

        .global-search kbd {
            display: none
        }
}

@media(prefers-reduced-motion:reduce) {
    *, *:before, *:after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important
    }

    .reveal {
        opacity: 1;
        transform: none
    }
}

.notification-summary {
    display: grid;
    grid-template-columns: 180px 180px minmax(280px,1fr);
    gap: 14px;
    margin-bottom: 16px
}

    .notification-summary > section {
        padding: 18px
    }

    .notification-summary strong {
        display: block;
        font-size: 1.8rem;
        margin: 4px 0
    }

    .notification-summary small {
        color: var(--ns-muted)
    }

.notification-tip {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 12px;
    align-items: center;
    background: linear-gradient(135deg,#fff,var(--ns-blue-pale))
}

    .notification-tip > span {
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
        border-radius: 13px;
        background: var(--ns-blue);
        color: #fff;
        font-weight: 900
    }

    .notification-tip b, .notification-tip small {
        display: block
    }

.segmented-filter {
    display: flex;
    padding: 3px;
    border-radius: 10px;
    background: #edf4fa
}

    .segmented-filter button {
        border: 0;
        background: transparent;
        color: var(--ns-muted);
        padding: 7px 11px;
        border-radius: 8px;
        font-size: .68rem;
        font-weight: 800
    }

        .segmented-filter button.active {
            background: #fff;
            color: var(--ns-blue);
            box-shadow: 0 4px 12px rgba(27,70,106,.09)
        }

.notification button em {
    color: var(--ns-blue);
    font-style: normal;
    font-size: .68rem;
    font-weight: 850
}

.status-illustration.error {
    display: grid;
    place-items: center;
    background: var(--ns-red-soft)
}

    .status-illustration.error > span {
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        border-radius: 15px;
        background: var(--ns-red);
        color: #fff;
        font-size: 1.6rem;
        font-weight: 900
    }

    .status-illustration.error:before, .status-illustration.error:after {
        display: none
    }

.admin-kpis {
    margin-bottom: 16px
}

.muted {
    color: var(--ns-muted)
}

@media(max-width:760px) {
    .notification-summary {
        grid-template-columns: 1fr 1fr
    }

    .notification-tip {
        grid-column: 1/-1
    }

    .notification button {
        grid-template-columns: 40px 1fr
    }

        .notification button em {
            display: none
        }

    .notification-toolbar {
        flex-direction: column;
        align-items: stretch
    }

    .segmented-filter {
        justify-content: space-between
    }

    .admin-toolbar {
        flex-direction: column;
        align-items: stretch
    }

        .admin-toolbar input {
            min-width: 0
        }
}

/* Compuertas de decisión */
.gate-summary-v10 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 150px 230px;
    gap: 20px;
    align-items: center;
    padding: 28px;
    border-radius: 22px;
    background: linear-gradient(135deg,#fff,var(--ns-blue-pale));
    border: 1px solid var(--ns-line);
    box-shadow: var(--ns-shadow);
    margin-bottom: 18px
}

.gate-summary-copy h2 {
    font-size: 2rem;
    margin: 8px 0 3px;
    letter-spacing: -.04em
}

.gate-summary-copy p {
    margin: 0;
    color: var(--ns-muted)
}

.gate-summary-copy > .badge {
    float: right
}

.gate-request-meta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 16px;
    color: var(--ns-muted);
    font-size: .7rem
}

.gate-ring, .validation-ring, .room-ring {
    --value: 0;
    width: 122px;
    height: 122px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    position: relative;
    background: conic-gradient(var(--ns-blue) calc(var(--value)*1%),#dce9f4 0)
}

    .gate-ring:after, .validation-ring:after, .room-ring:after {
        content: "";
        position: absolute;
        inset: 10px;
        border-radius: 50%;
        background: #fff
    }

    .gate-ring strong, .gate-ring small, .validation-ring strong, .validation-ring small, .room-ring strong {
        position: relative;
        z-index: 1
    }

    .gate-ring strong, .validation-ring strong, .room-ring strong {
        font-size: 1.45rem
    }

    .gate-ring small, .validation-ring small {
        margin-top: 28px;
        position: absolute;
        font-size: .62rem;
        color: var(--ns-muted)
    }

.gate-next {
    padding: 18px;
    border-left: 1px solid var(--ns-line)
}

    .gate-next b, .gate-next small {
        display: block
    }

    .gate-next b {
        font-size: 1.05rem;
        margin: 6px 0
    }

    .gate-next small {
        color: var(--ns-muted)
    }

.gate-layout-v10 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 340px;
    gap: 18px
}

.gate-decision-column {
    display: flex;
    flex-direction: column;
    gap: 18px
}

.gate-checklist-v10 {
    padding: 8px 20px 20px
}

.gate-requirement {
    padding: 16px 0;
    border-bottom: 1px solid var(--ns-line)
}

    .gate-requirement:last-child {
        border-bottom: 0
    }

.gate-check {
    display: grid;
    grid-template-columns: 22px 34px 1fr;
    gap: 10px;
    align-items: center
}

    .gate-check > input {
        width: 18px;
        height: 18px
    }

    .gate-check > span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: #eef3f7;
        color: #8ba0b2;
        font-weight: 900
    }

.gate-requirement.complete .gate-check > span {
    background: var(--ns-green-soft);
    color: var(--ns-green)
}

.gate-check b, .gate-check small {
    display: block
}

.gate-check small {
    color: var(--ns-muted);
    font-size: .65rem;
    margin-top: 2px
}

.gate-evidence {
    display: flex;
    gap: 8px;
    margin: 11px 0 0 66px
}

    .gate-evidence input {
        flex: 1;
        border: 1px solid var(--ns-line-strong);
        border-radius: 9px;
        padding: 9px 10px
    }

.gate-completed-by {
    display: block;
    margin: 7px 0 0 66px;
    color: var(--ns-green)
}

.decision-result-v10 {
    text-align: center;
    padding: 26px 22px
}

.decision-symbol {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin: 0 auto 12px;
    border-radius: 18px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-size: 1.4rem;
    font-weight: 900
}

.decision-result-v10 p {
    color: var(--ns-ink-2);
    line-height: 1.55
}

.decision-result-v10 small {
    color: var(--ns-muted)
}

.decision-warning {
    display: block;
    color: var(--ns-yellow);
    text-align: center
}

.permission-note {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 10px;
    padding: 22px
}

    .permission-note > span {
        width: 40px;
        height: 40px;
        display: grid;
        place-items: center;
        border-radius: 12px;
        background: var(--ns-yellow-soft)
    }

    .permission-note p {
        color: var(--ns-muted);
        margin: 4px 0 0
    }

.gate-guide {
    padding: 20px
}

    .gate-guide h3 {
        margin: 6px 0
    }

    .gate-guide ol {
        list-style: none;
        padding: 0;
        margin: 14px 0 0
    }

    .gate-guide li {
        display: grid;
        grid-template-columns: 30px 1fr;
        gap: 9px;
        align-items: center;
        padding: 10px 0;
        border-top: 1px solid var(--ns-line)
    }

        .gate-guide li i {
            width: 28px;
            height: 28px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-style: normal;
            font-weight: 900
        }

    .gate-guide b, .gate-guide small {
        display: block
    }

    .gate-guide small {
        color: var(--ns-muted)
    }

/* Tribus y squads */
.org-detail-hero {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(420px,.85fr);
    gap: 24px;
    align-items: center;
    padding: 28px;
    border-radius: 22px;
    background: linear-gradient(135deg,var(--ns-blue-strong),var(--ns-blue) 65%,var(--ns-cyan));
    color: #fff;
    box-shadow: 0 20px 44px rgba(7,87,166,.18);
    margin-bottom: 18px
}

    .org-detail-hero .code {
        color: #fff;
        background: rgba(255,255,255,.12)
    }

    .org-detail-hero .badge {
        float: right
    }

    .org-detail-hero h2 {
        font-size: 2.2rem;
        margin: 10px 0 6px
    }

    .org-detail-hero p {
        margin: 0;
        color: rgba(255,255,255,.78);
        max-width: 700px
    }

.org-detail-stats {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 10px
}

    .org-detail-stats > span {
        padding: 15px;
        border: 1px solid rgba(255,255,255,.16);
        border-radius: 14px;
        background: rgba(255,255,255,.08)
    }

    .org-detail-stats strong, .org-detail-stats small {
        display: block
    }

    .org-detail-stats strong {
        font-size: 1.3rem
    }

    .org-detail-stats small {
        color: rgba(255,255,255,.68);
        margin-top: 3px
    }

.org-detail-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 300px;
    gap: 18px;
    margin-bottom: 18px
}

.tribe-purpose {
    padding: 22px;
    background: linear-gradient(145deg,#fff,var(--ns-orange-soft))
}

    .tribe-purpose h3 {
        margin: 7px 0
    }

    .tribe-purpose p {
        color: var(--ns-muted);
        line-height: 1.6
    }

    .tribe-purpose > div {
        padding-top: 16px;
        border-top: 1px solid #f2d8c6
    }

    .tribe-purpose small, .tribe-purpose b {
        display: block
    }

.mini-progress {
    height: 7px;
    min-width: 100px;
    border-radius: 999px;
    background: #e7eef5;
    overflow: hidden
}

    .mini-progress i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg,var(--ns-blue),var(--ns-cyan))
    }

.squad-leadership {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 14px;
    margin-bottom: 18px
}

    .squad-leadership article {
        display: grid;
        grid-template-columns: 44px 1fr;
        gap: 11px;
        align-items: center;
        padding: 16px
    }

        .squad-leadership article > span {
            width: 44px;
            height: 44px;
            display: grid;
            place-items: center;
            border-radius: 13px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-weight: 900
        }

    .squad-leadership small, .squad-leadership b {
        display: block
    }

    .squad-leadership small {
        color: var(--ns-muted)
    }

.member-grid-v10 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 18px
}

.member-card-v10 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 170px 36px;
    gap: 14px;
    align-items: center;
    padding: 15px;
    border: 1px solid var(--ns-line);
    border-radius: 15px;
    background: #fff
}

.member-main {
    display: flex;
    gap: 11px;
    align-items: center
}

    .member-main h3 {
        font-size: .9rem;
        margin: 0
    }

    .member-main p {
        color: var(--ns-muted);
        font-size: .68rem;
        margin: 3px 0 7px
    }

.member-capacity > div:first-child {
    display: flex;
    justify-content: space-between
}

.member-capacity b, .member-capacity small {
    display: block
}

.member-capacity small {
    color: var(--ns-muted);
    font-size: .58rem
}

.capacity-bar {
    height: 6px;
    border-radius: 999px;
    background: #e9f0f6;
    margin-top: 7px;
    overflow: hidden
}

    .capacity-bar i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg,var(--ns-blue),var(--ns-cyan))
    }

/* Salón de innovación */
.room-toolbar-v10 {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px
}

    .room-toolbar-v10 > div {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 12px 15px;
        border: 1px solid var(--ns-line);
        border-radius: 13px;
        background: #fff;
        box-shadow: var(--ns-shadow)
    }

        .room-toolbar-v10 > div:first-child {
            flex: 1
        }

    .room-toolbar-v10 strong {
        font-size: 1.2rem
    }

    .room-toolbar-v10 small {
        color: var(--ns-muted)
    }

.room-grid-v10 {
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 16px
}

.room-card-v10 {
    display: flex;
    flex-direction: column;
    min-height: 360px;
    padding: 22px;
    background: #fff;
    color: var(--ns-ink);
    border: 1px solid var(--ns-line);
    border-radius: 20px;
    box-shadow: var(--ns-shadow)
}

    .room-card-v10 header {
        display: flex;
        justify-content: space-between
    }

    .room-card-v10 h2 {
        font-size: 1.25rem;
        margin: 18px 0 8px
    }

    .room-card-v10 > p {
        color: var(--ns-muted);
        line-height: 1.55
    }

.room-visual-progress {
    display: grid;
    grid-template-columns: 102px 1fr;
    gap: 16px;
    align-items: center;
    margin: auto 0 18px
}

.room-ring {
    width: 96px;
    height: 96px
}

    .room-ring:after {
        inset: 8px
    }

.room-visual-progress > div:last-child {
    display: grid;
    gap: 10px
}

.room-visual-progress span {
    display: block
}

.room-visual-progress small, .room-visual-progress b {
    display: block
}

.room-visual-progress small {
    color: var(--ns-muted);
    font-size: .58rem
}

.room-card-v10 footer {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 10px;
    align-items: end;
    padding-top: 15px;
    border-top: 1px solid var(--ns-line)
}

    .room-card-v10 footer small, .room-card-v10 footer b {
        display: block
    }

    .room-card-v10 footer small {
        color: var(--ns-muted);
        font-size: .58rem
    }

    .room-card-v10 footer a {
        color: var(--ns-blue);
        font-weight: 850
    }

.room-empty {
    grid-column: 1/-1
}

/* Validación con usuarios */
.validation-hero-v10 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 150px 280px;
    gap: 20px;
    align-items: center;
    padding: 27px;
    border: 1px solid var(--ns-line);
    border-radius: 22px;
    background: linear-gradient(135deg,#fff,var(--ns-blue-pale));
    box-shadow: var(--ns-shadow);
    margin-bottom: 15px
}

    .validation-hero-v10 h2 {
        font-size: 1.8rem;
        margin: 7px 0 4px
    }

    .validation-hero-v10 p {
        margin: 0;
        color: var(--ns-muted)
    }

.validation-owner {
    padding-left: 20px;
    border-left: 1px solid var(--ns-line)
}

    .validation-owner small, .validation-owner b, .validation-owner span {
        display: block
    }

    .validation-owner small, .validation-owner span {
        color: var(--ns-muted)
    }

    .validation-owner b {
        font-size: 1rem;
        margin: 5px 0
    }

.validation-kpis-v10 {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 12px;
    margin-bottom: 16px
}

    .validation-kpis-v10 article {
        display: grid;
        grid-template-columns: 42px 1fr;
        gap: 10px;
        align-items: center;
        padding: 14px;
        border: 1px solid var(--ns-line);
        border-radius: 14px;
        background: #fff;
        box-shadow: var(--ns-shadow)
    }

        .validation-kpis-v10 article > span {
            width: 42px;
            height: 42px;
            display: grid;
            place-items: center;
            border-radius: 12px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-weight: 900
        }

        .validation-kpis-v10 article.success > span {
            background: var(--ns-green-soft);
            color: var(--ns-green)
        }

        .validation-kpis-v10 article.danger > span {
            background: var(--ns-red-soft);
            color: var(--ns-red)
        }

        .validation-kpis-v10 article.warning > span {
            background: var(--ns-yellow-soft);
            color: var(--ns-yellow)
        }

    .validation-kpis-v10 strong, .validation-kpis-v10 small {
        display: block
    }

    .validation-kpis-v10 strong {
        font-size: 1.25rem
    }

    .validation-kpis-v10 small {
        color: var(--ns-muted)
    }

.validation-layout-v10 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 370px;
    gap: 18px
}

.validation-main-v10, .validation-side-v10 {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.validation-process-v10 {
    display: grid;
    grid-template-columns: 1fr 50px 1fr 50px 1fr;
    align-items: center;
    padding: 16px 20px;
    border: 1px solid var(--ns-line);
    border-radius: 15px;
    background: #fff
}

    .validation-process-v10 > span {
        display: flex;
        align-items: center;
        gap: 9px;
        color: var(--ns-muted)
    }

        .validation-process-v10 > span i {
            width: 30px;
            height: 30px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            background: #edf2f6;
            font-style: normal;
            font-weight: 900
        }

        .validation-process-v10 > span.done {
            color: var(--ns-blue)
        }

            .validation-process-v10 > span.done i {
                background: var(--ns-blue);
                color: #fff
            }

    .validation-process-v10 > em {
        height: 2px;
        background: #dce7f0
    }

.validation-suite-v10 > summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none
}

    .validation-suite-v10 > summary h3 {
        margin: 4px 0
    }

    .validation-suite-v10 > summary p {
        margin: 0;
        color: var(--ns-muted)
    }

.validation-cases-v10 {
    padding: 0 18px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.validation-case-v10 {
    border: 1px solid var(--ns-line);
    border-radius: 14px;
    background: #fff;
    overflow: hidden
}

    .validation-case-v10 > header {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        align-items: center;
        padding: 14px 15px;
        background: #fbfdff
    }

    .validation-case-v10 h4 {
        margin: 4px 0 0
    }

.validation-case-body {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 12px;
    padding: 14px 15px
}

    .validation-case-body > div {
        padding: 10px;
        border-radius: 10px;
        background: #f7faff
    }

    .validation-case-body small {
        color: var(--ns-blue);
        font-size: .58rem;
        font-weight: 900
    }

    .validation-case-body p {
        margin: 4px 0 0;
        color: var(--ns-ink-2)
    }

.test-steps, .execute-case {
    border-top: 1px solid var(--ns-line)
}

    .test-steps > summary, .execute-case > summary, .add-case-v10 > summary, .add-defect-v10 > summary {
        padding: 11px 15px;
        color: var(--ns-blue);
        font-weight: 850;
        cursor: pointer
    }

    .test-steps ol {
        list-style: none;
        padding: 0 15px 15px;
        margin: 0
    }

    .test-steps li {
        display: grid;
        grid-template-columns: 28px 1fr;
        gap: 9px;
        padding: 9px 0;
        border-top: 1px dashed var(--ns-line)
    }

        .test-steps li > span {
            width: 26px;
            height: 26px;
            display: grid;
            place-items: center;
            border-radius: 8px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-weight: 900
        }

    .test-steps small {
        display: block;
        color: var(--ns-muted);
        margin-top: 3px
    }

.add-case-v10 {
    border-top: 1px solid var(--ns-line)
}

.defect-list-v10 {
    padding: 10px 16px
}

    .defect-list-v10 > article {
        padding: 13px 0;
        border-bottom: 1px solid var(--ns-line)
    }

    .defect-list-v10 article > header, .defect-list-v10 article > footer {
        display: flex;
        justify-content: space-between;
        gap: 8px
    }

    .defect-list-v10 article > b {
        display: block;
        margin: 8px 0 4px
    }

    .defect-list-v10 article > p {
        color: var(--ns-muted);
        font-size: .7rem
    }

    .defect-list-v10 article > footer {
        color: var(--ns-muted);
        font-size: .63rem
    }

.add-defect-v10 {
    border-top: 1px solid var(--ns-line)
}

.button-stack {
    display: flex;
    flex-direction: column;
    gap: 8px
}

@media(max-width:1180px) {
    .room-grid-v10 {
        grid-template-columns: repeat(2,1fr)
    }

    .validation-layout-v10 {
        grid-template-columns: 1fr
    }

    .gate-layout-v10 {
        grid-template-columns: 1fr
    }

    .gate-decision-column {
        display: grid;
        grid-template-columns: 1fr 1fr
    }

    .org-detail-hero {
        grid-template-columns: 1fr
    }

    .member-grid-v10 {
        grid-template-columns: 1fr
    }
}

@media(max-width:760px) {
    .gate-summary-v10, .validation-hero-v10 {
        grid-template-columns: 1fr
    }

    .gate-ring, .validation-ring {
        margin: auto
    }

    .gate-next, .validation-owner {
        border-left: 0;
        border-top: 1px solid var(--ns-line);
        padding: 15px 0 0
    }

    .gate-decision-column {
        grid-template-columns: 1fr
    }

    .gate-evidence {
        margin-left: 0;
        flex-direction: column
    }

    .gate-completed-by {
        margin-left: 0
    }

    .org-detail-stats {
        grid-template-columns: 1fr 1fr
    }

    .org-detail-grid {
        grid-template-columns: 1fr
    }

    .squad-leadership {
        grid-template-columns: 1fr
    }

    .member-card-v10 {
        grid-template-columns: 1fr
    }

    .room-grid-v10 {
        grid-template-columns: 1fr
    }

    .room-toolbar-v10 {
        flex-wrap: wrap
    }

        .room-toolbar-v10 > div:first-child {
            flex-basis: 100%
        }

    .validation-kpis-v10 {
        grid-template-columns: 1fr 1fr
    }

        .validation-kpis-v10 article:last-child {
            grid-column: 1/-1
        }

    .validation-process-v10 {
        grid-template-columns: 1fr
    }

        .validation-process-v10 > em {
            height: 25px;
            width: 2px;
            justify-self: center
        }

    .validation-case-body {
        grid-template-columns: 1fr
    }
}

/* V10 - Centro de ayuda y madurez de experiencia */
.help-profile-link {
    display: block;
    text-align: center;
    margin-top: 2px;
    color: var(--ns-blue);
    font-weight: 750;
    text-decoration: none
}

.help-welcome-v10 {
    display: grid;
    grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr);
    align-items: end;
    gap: 28px;
    padding: 26px 28px;
    background: linear-gradient(120deg,#eef7ff 0%,#fff 62%,#fff5ec 100%);
    border: 1px solid #cee2f2;
    border-radius: 22px;
    box-shadow: var(--ns-shadow)
}

    .help-welcome-v10 h2 {
        margin: 6px 0 8px;
        font-size: clamp(1.45rem,2.1vw,2.15rem);
        color: var(--ns-ink)
    }

    .help-welcome-v10 p {
        margin: 0;
        color: var(--ns-muted);
        max-width: 720px;
        line-height: 1.55
    }

.help-search-v10 {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid var(--ns-line-strong);
    border-radius: 14px;
    padding: 0 14px;
    box-shadow: 0 8px 24px rgba(14,75,122,.07)
}

    .help-search-v10 svg {
        width: 20px;
        height: 20px;
        fill: none;
        stroke: var(--ns-blue);
        stroke-width: 2
    }

    .help-search-v10 input {
        width: 100%;
        border: 0;
        outline: 0;
        padding: 14px 0;
        background: transparent;
        color: var(--ns-ink)
    }

.help-path-grid-v10 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 16px;
    margin-top: 18px
}

.help-path-v10 {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 22px;
    background: #fff;
    border: 1px solid var(--ns-line);
    border-radius: 20px;
    box-shadow: var(--ns-shadow);
    transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease
}

    .help-path-v10:hover {
        transform: translateY(-3px);
        border-color: #b8d9ef;
        box-shadow: 0 18px 40px rgba(18,76,122,.12)
    }

    .help-path-v10 small {
        margin-top: 16px;
        color: var(--ns-blue);
        font-size: .64rem;
        font-weight: 850;
        letter-spacing: .08em
    }

    .help-path-v10 h3 {
        margin: 7px 0 10px;
        color: var(--ns-ink);
        font-size: 1.06rem
    }

    .help-path-v10 ol {
        margin: 0 0 18px;
        padding-left: 19px;
        color: var(--ns-muted);
        line-height: 1.55;
        font-size: .88rem;
        flex: 1
    }

    .help-path-v10 .btn {
        align-self: flex-start
    }

.help-path-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px
}

    .help-path-icon svg {
        width: 23px;
        height: 23px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2
    }

    .help-path-icon.blue {
        background: #e7f3ff;
        color: #0757a6
    }

    .help-path-icon.orange {
        background: #fff0e5;
        color: #d95d08
    }

    .help-path-icon.cyan {
        background: #e5f8fc;
        color: #087f9d
    }

    .help-path-icon.green {
        background: #e9f8ef;
        color: #147a46
    }

.help-section-v10 {
    margin-top: 18px;
    padding: 24px 26px;
    background: #fff;
    border: 1px solid var(--ns-line);
    border-radius: 20px;
    box-shadow: var(--ns-shadow)
}

    .help-section-v10 > header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 16px
    }

    .help-section-v10 h2 {
        margin: 5px 0 0;
        color: var(--ns-ink);
        font-size: 1.2rem
    }

.help-feature-grid-v10 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px
}

    .help-feature-grid-v10 article {
        display: flex;
        gap: 13px;
        padding: 17px;
        border: 1px solid #e1ebf3;
        border-radius: 15px;
        background: #fbfdff
    }

        .help-feature-grid-v10 article > span {
            display: grid;
            place-items: center;
            flex: 0 0 31px;
            height: 31px;
            border-radius: 10px;
            background: var(--ns-blue);
            color: #fff;
            font-weight: 850
        }

    .help-feature-grid-v10 b {
        color: var(--ns-ink)
    }

    .help-feature-grid-v10 p {
        margin: 5px 0 0;
        color: var(--ns-muted);
        font-size: .86rem;
        line-height: 1.45
    }

.help-glossary-v10 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px
}

    .help-glossary-v10 details {
        border: 1px solid #dfeaf2;
        border-radius: 13px;
        background: #fbfdff;
        padding: 0 15px
    }

    .help-glossary-v10 summary {
        cursor: pointer;
        padding: 14px 0;
        color: var(--ns-ink);
        font-weight: 800;
        list-style: none
    }

        .help-glossary-v10 summary::after {
            content: '+';
            float: right;
            color: var(--ns-blue);
            font-size: 1.15rem
        }

    .help-glossary-v10 details[open] summary::after {
        content: '−'
    }

    .help-glossary-v10 p {
        margin: 0;
        padding: 0 0 15px;
        color: var(--ns-muted);
        line-height: 1.5;
        font-size: .9rem
    }

.help-account-v10 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-top: 18px;
    padding: 24px 26px;
    border-radius: 20px;
    background: #073d75;
    color: #fff;
    box-shadow: 0 18px 40px rgba(7,61,117,.18)
}

    .help-account-v10 .eyebrow {
        color: #9fd4ff
    }

    .help-account-v10 h2 {
        margin: 6px 0 7px;
        color: #fff
    }

    .help-account-v10 p {
        margin: 0;
        color: #dcecff;
        max-width: 720px
    }

.help-account-actions-v10 {
    display: flex;
    gap: 10px;
    flex-wrap: wrap
}

    .help-account-actions-v10 .btn-soft {
        background: #fff;
        color: #0757a6;
        border-color: #fff
    }

.help-no-results-v10 {
    margin-top: 18px;
    text-align: center;
    padding: 34px;
    background: #fff;
    border: 1px dashed #bfd5e6;
    border-radius: 18px;
    color: var(--ns-muted)
}

    .help-no-results-v10 b, .help-no-results-v10 span {
        display: block
    }

    .help-no-results-v10 b {
        color: var(--ns-ink);
        margin-bottom: 5px
    }

@media(max-width:1100px) {
    .help-path-grid-v10 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:760px) {
    .help-welcome-v10 {
        grid-template-columns: 1fr;
        padding: 21px
    }

    .help-path-grid-v10, .help-feature-grid-v10, .help-glossary-v10 {
        grid-template-columns: 1fr
    }

    .help-account-v10 {
        align-items: flex-start;
        flex-direction: column
    }

    .help-account-actions-v10 {
        width: 100%
    }

        .help-account-actions-v10 .btn {
            flex: 1
        }
}

/* ===== v11.css ===== */
/* NS Innova V11 - GUI final, ayudas dinamicas y recorridos tipo videojuego */
:root {
    --v11-blue: #0757a6;
    --v11-blue-2: #0b74d5;
    --v11-blue-3: #dceeff;
    --v11-blue-4: #f2f8ff;
    --v11-orange: #f47c20;
    --v11-orange-2: #ff9a4f;
    --v11-orange-soft: #fff2e8;
    --v11-cyan: #16a4c8;
    --v11-green: #19875f;
    --v11-red: #c54350;
    --v11-yellow: #aa7100;
    --v11-ink: #123451;
    --v11-copy: #4d667d;
    --v11-muted: #75899a;
    --v11-border: #d8e5ef;
    --v11-surface: #fff;
    --v11-bg: #f3f8fc;
    --v11-shadow: 0 12px 34px rgba(19,61,96,.08);
    --v11-shadow-hover: 0 20px 48px rgba(10,72,123,.14);
}

html {
    scroll-behavior: smooth
}

body {
    background: radial-gradient(circle at 96% 3%,rgba(11,116,213,.055),transparent 30%),var(--v11-bg);
    color: var(--v11-ink)
}

.content {
    max-width: 1600px;
    width: 100%;
    margin-inline: auto
}

.page-heading {
    max-width: 1600px;
    width: 100%;
    margin-inline: auto
}

.legacy-screen-tour {
    display: none !important
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important
}

/* Topbar y controles cotidianos */
.learn-top-button {
    display: flex;
    align-items: center;
    gap: 7px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #cfe1ef;
    border-radius: 12px;
    background: #f5faff;
    color: var(--v11-blue);
    font-weight: 850;
    cursor: pointer;
    transition: .18s ease
}

    .learn-top-button:hover {
        background: #e8f4ff;
        border-color: #9fc9e8;
        transform: translateY(-1px)
    }

    .learn-top-button svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2
    }

.btn {
    transition: transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease
}

    .btn:hover {
        transform: translateY(-1px)
    }

.btn-primary {
    background: linear-gradient(135deg,var(--v11-blue),var(--v11-blue-2));
    box-shadow: 0 9px 22px rgba(7,87,166,.18)
}

    .btn-primary:hover {
        box-shadow: 0 13px 28px rgba(7,87,166,.25)
    }

.btn-soft {
    background: #fff;
    color: var(--v11-blue);
    border-color: #cbddeb
}

    .btn-soft:hover {
        background: var(--v11-blue-4);
        border-color: #a6cce8
    }

/* Ideas - pantalla completamente corregida */
.ideas-hub {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(430px,.95fr);
    gap: 34px;
    align-items: center;
    padding: 30px 34px;
    border: 1px solid #c9dfef;
    border-radius: 24px;
    background: linear-gradient(122deg,#eaf5ff 0%,#fff 58%,#fff4eb 100%);
    box-shadow: var(--v11-shadow);
    overflow: hidden
}

    .ideas-hub::before, .ideas-hub::after {
        content: "";
        position: absolute;
        border-radius: 50%;
        pointer-events: none
    }

    .ideas-hub::before {
        width: 240px;
        height: 240px;
        right: -120px;
        top: -145px;
        background: rgba(11,116,213,.08)
    }

    .ideas-hub::after {
        width: 190px;
        height: 190px;
        left: -125px;
        bottom: -135px;
        background: rgba(244,124,32,.08)
    }

.ideas-hub-copy, .ideas-journey {
    position: relative;
    z-index: 1
}

.ideas-hub h2 {
    max-width: 720px;
    margin: 8px 0 12px;
    font-size: clamp(1.65rem,2.6vw,2.65rem);
    line-height: 1.08;
    letter-spacing: -.04em
}

.ideas-hub p {
    max-width: 720px;
    margin: 0;
    color: var(--v11-copy);
    font-size: .96rem;
    line-height: 1.62
}

.ideas-hub-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px
}

.ideas-journey {
    display: grid;
    grid-template-columns: 1fr 24px 1fr 24px 1fr 24px 1fr;
    align-items: center;
    padding: 18px;
    border: 1px solid rgba(188,215,235,.88);
    border-radius: 20px;
    background: rgba(255,255,255,.83);
    box-shadow: 0 14px 34px rgba(13,72,116,.08);
    backdrop-filter: blur(8px)
}

    .ideas-journey article {
        min-width: 0;
        text-align: center;
        padding: 12px 7px;
        border-radius: 14px;
        transition: .18s ease
    }

        .ideas-journey article:hover {
            background: #f1f8ff;
            transform: translateY(-2px)
        }

        .ideas-journey article.active {
            background: #e7f3ff
        }

        .ideas-journey article > span {
            display: grid;
            place-items: center;
            width: 35px;
            height: 35px;
            margin: 0 auto 8px;
            border-radius: 11px;
            background: #edf2f6;
            color: #657d91;
            font-weight: 900
        }

        .ideas-journey article.active > span {
            background: var(--v11-blue);
            color: #fff;
            box-shadow: 0 8px 18px rgba(7,87,166,.2)
        }

    .ideas-journey b, .ideas-journey small {
        display: block
    }

    .ideas-journey b {
        font-size: .76rem
    }

    .ideas-journey small {
        margin-top: 4px;
        color: var(--v11-muted);
        font-size: .62rem;
        line-height: 1.35
    }

    .ideas-journey > i {
        height: 2px;
        background: linear-gradient(90deg,#c9d9e6,#e3ecf3)
    }

.ideas-summary {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 13px;
    margin: 16px 0
}

    .ideas-summary article {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 15px 17px;
        border: 1px solid var(--v11-border);
        border-radius: 17px;
        background: #fff;
        box-shadow: 0 8px 24px rgba(19,61,96,.055)
    }

.ideas-summary-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border-radius: 13px;
    font-size: 1rem;
    font-weight: 900
}

    .ideas-summary-icon.blue {
        background: #e7f3ff;
        color: var(--v11-blue)
    }

    .ideas-summary-icon.cyan {
        background: #e5f8fc;
        color: #087c99
    }

    .ideas-summary-icon.orange {
        background: var(--v11-orange-soft);
        color: #d85d0a
    }

    .ideas-summary-icon.green {
        background: #e8f7f0;
        color: var(--v11-green)
    }

.ideas-summary small, .ideas-summary strong {
    display: block
}

.ideas-summary small {
    color: var(--v11-muted);
    font-size: .66rem
}

.ideas-summary strong {
    margin-top: 2px;
    font-size: 1.4rem;
    letter-spacing: -.04em
}

.ideas-toolbar {
    display: grid;
    grid-template-columns: minmax(250px,1fr) 190px 200px auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 18px;
    padding: 13px;
    border: 1px solid var(--v11-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 9px 25px rgba(22,65,100,.055)
}

.ideas-search {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 44px;
    padding: 0 13px;
    border: 1px solid #cdddea;
    border-radius: 12px;
    background: #f9fcff
}

    .ideas-search:focus-within {
        border-color: #7fb9e3;
        box-shadow: 0 0 0 3px rgba(11,116,213,.09)
    }

    .ideas-search svg {
        width: 19px;
        height: 19px;
        fill: none;
        stroke: var(--v11-blue);
        stroke-width: 2
    }

    .ideas-search input {
        width: 100%;
        border: 0;
        outline: 0;
        background: transparent;
        color: var(--v11-ink)
    }

.ideas-select {
    display: grid;
    gap: 5px
}

    .ideas-select > span {
        padding-left: 2px;
        color: var(--v11-muted);
        font-size: .62rem;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .08em
    }

    .ideas-select select {
        height: 44px;
        padding: 0 11px;
        border: 1px solid #cdddea;
        border-radius: 12px;
        background: #fff;
        color: var(--v11-ink)
    }

.idea-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 16px
}

.idea-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 340px;
    flex-direction: column;
    border: 1px solid var(--v11-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--v11-shadow);
    overflow: hidden;
    transition: transform .2s ease,box-shadow .2s ease,border-color .2s ease
}

    .idea-card::before {
        content: "";
        height: 4px;
        background: linear-gradient(90deg,var(--v11-blue),var(--v11-cyan),var(--v11-orange))
    }

    .idea-card:hover {
        transform: translateY(-4px);
        border-color: #b6d5ea;
        box-shadow: var(--v11-shadow-hover)
    }

.idea-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 16px 17px 10px
}

.idea-author {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0
}

    .idea-author > div {
        min-width: 0
    }

    .idea-author b, .idea-author small {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .idea-author b {
        font-size: .78rem
    }

    .idea-author small {
        max-width: 215px;
        margin-top: 2px;
        color: var(--v11-muted);
        font-size: .61rem
    }

.idea-state {
    flex: 0 0 auto;
    padding: 6px 9px;
    border-radius: 999px;
    background: #edf3f8;
    color: #607789;
    font-size: .59rem;
    font-weight: 900
}

    .idea-state.nueva {
        background: #e7f3ff;
        color: var(--v11-blue)
    }

    .idea-state.enrevision {
        background: #fff5df;
        color: #936000
    }

    .idea-state.enexploracion {
        background: #e6f8fc;
        color: #087b98
    }

    .idea-state.convertida {
        background: #e8f7f0;
        color: var(--v11-green)
    }

.idea-card-body {
    display: block;
    flex: 1;
    padding: 9px 17px 16px;
    color: inherit;
    text-decoration: none
}

.idea-card-label {
    display: block;
    color: var(--v11-blue);
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .11em
}

.idea-card-body h3 {
    margin: 7px 0 9px;
    font-size: 1.13rem;
    line-height: 1.26;
    letter-spacing: -.025em
}

.idea-card-body > p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--v11-copy);
    font-size: .83rem;
    line-height: 1.53;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical
}

.idea-benefit {
    margin-top: 15px;
    padding: 11px 12px;
    border: 1px solid #d9e9f4;
    border-radius: 12px;
    background: #f7fbff
}

    .idea-benefit span, .idea-benefit b {
        display: block
    }

    .idea-benefit span {
        color: var(--v11-blue);
        font-size: .56rem;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: .08em
    }

    .idea-benefit b {
        margin-top: 4px;
        color: var(--v11-ink);
        font-size: .72rem;
        line-height: 1.38
    }

.idea-card-foot {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 58px;
    padding: 11px 15px;
    border-top: 1px solid #e7eef4;
    background: #fbfdff
}

    .idea-card-foot form {
        margin: 0
    }

.support-button {
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: 34px;
    padding: 0 9px;
    border: 1px solid #cbdce9;
    border-radius: 10px;
    background: #fff;
    color: #527086;
    cursor: pointer
}

    .support-button span {
        color: var(--v11-orange);
        font-size: .72rem
    }

    .support-button b {
        color: var(--v11-ink)
    }

    .support-button em {
        font-style: normal;
        font-size: .62rem;
        font-weight: 800
    }

    .support-button.active {
        border-color: #f3a36b;
        background: var(--v11-orange-soft);
        color: #c55508
    }

.idea-comments-link, .converted-link, .idea-open-link {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #5b7185;
    text-decoration: none;
    font-size: .64rem;
    font-weight: 750
}

    .idea-comments-link:hover, .idea-open-link:hover {
        color: var(--v11-blue)
    }

.converted-link {
    margin-left: auto;
    padding: 7px 9px;
    border-radius: 9px;
    background: #e8f7f0;
    color: var(--v11-green)
}

.idea-open-link {
    margin-left: auto;
    color: var(--v11-blue)
}

.ideas-empty {
    min-height: 280px
}

    .ideas-empty > span {
        background: var(--v11-blue) !important;
        color: #fff !important
    }

/* Idea details y captura */
.idea-detail-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 340px;
    gap: 18px
}

.idea-detail-card, .conversation-card, .idea-side-panel, .guided-card, .idea-coach {
    border: 1px solid var(--v11-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--v11-shadow)
}

.idea-detail-card {
    padding: 24px
}

    .idea-detail-card > header {
        display: flex;
        align-items: center;
        gap: 11px
    }

.benefit-section {
    margin: 18px 0;
    padding: 15px;
    border-left: 4px solid var(--v11-orange);
    border-radius: 12px;
    background: var(--v11-orange-soft)
}

.conversation-card {
    margin-top: 16px;
    padding: 20px
}

.comment-composer {
    display: flex;
    gap: 10px
}

    .comment-composer textarea {
        flex: 1
    }

.comment-stream {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px
}

    .comment-stream > article {
        display: grid;
        grid-template-columns: 32px 1fr;
        gap: 10px;
        padding: 12px;
        border: 1px solid #e2ebf2;
        border-radius: 13px;
        background: #fbfdff
    }

.idea-side-panel {
    padding: 18px;
    height: max-content;
    position: sticky;
    top: 84px
}

.side-stat {
    display: flex;
    justify-content: space-between;
    padding: 11px 0;
    border-bottom: 1px solid #e6edf3
}

.convert-box {
    margin-top: 15px;
    padding: 15px;
    border-radius: 14px;
    background: #f2f8ff
}

    .convert-box.success {
        background: #e9f8f0
    }

.idea-create-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 320px;
    gap: 18px
}

.guided-card {
    padding: 24px
}

.guided-progress {
    display: flex;
    gap: 8px;
    margin-bottom: 20px
}

    .guided-progress > span {
        height: 6px;
        flex: 1;
        border-radius: 999px;
        background: #e1ebf3
    }

        .guided-progress > span.active {
            background: linear-gradient(90deg,var(--v11-blue),var(--v11-cyan))
        }

.question-number {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 11px;
    background: var(--v11-blue);
    color: #fff;
    font-weight: 900
}

.idea-coach {
    padding: 20px;
    height: max-content;
    position: sticky;
    top: 84px
}

.coach-orb {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 18px;
    background: linear-gradient(135deg,var(--v11-blue),var(--v11-cyan));
    color: #fff;
    font-size: 1.35rem;
    box-shadow: 0 12px 25px rgba(7,87,166,.22)
}

/* Portafolio y tableros visuales */
.boards-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: 25px 27px;
    border: 1px solid #cee0ee;
    border-radius: 22px;
    background: linear-gradient(120deg,#eaf5ff,#fff 65%,#fff5ec);
    box-shadow: var(--v11-shadow)
}

.view-orbit {
    display: grid;
    place-items: center;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: conic-gradient(var(--v11-blue) 0 42%,var(--v11-cyan) 42% 67%,var(--v11-orange) 67% 82%,#e6eef5 82%);
    box-shadow: inset 0 0 0 27px #fff;
    color: var(--v11-blue);
    font-weight: 900
}

.board-section {
    margin-top: 18px
}

.board-card-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 15px
}

.board-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 245px;
    padding: 18px;
    border: 1px solid var(--v11-border);
    border-radius: 19px;
    background: #fff;
    box-shadow: var(--v11-shadow);
    text-decoration: none;
    color: inherit;
    transition: .2s ease
}

    .board-card:hover {
        transform: translateY(-3px);
        border-color: #afd0e7;
        box-shadow: var(--v11-shadow-hover)
    }

.board-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px
}

.board-color, .board-dot {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    background: var(--v11-blue)
}

.board-meta, .board-quick-stats {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    color: var(--v11-muted);
    font-size: .65rem
}

.board-progress {
    margin-top: auto
}

.visual-board {
    border: 1px solid var(--v11-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--v11-shadow);
    overflow: hidden
}

.visual-board-head {
    padding: 22px;
    border-bottom: 1px solid var(--v11-border);
    background: linear-gradient(110deg,#f3f9ff,#fff)
}

.board-view-tabs {
    display: flex;
    gap: 5px;
    overflow: auto;
    padding: 8px;
    border-bottom: 1px solid var(--v11-border);
    background: #fbfdff
}

    .board-view-tabs a {
        white-space: nowrap;
        padding: 9px 12px;
        border-radius: 10px;
        color: #587086;
        text-decoration: none;
        font-size: .68rem;
        font-weight: 800
    }

        .board-view-tabs a.active, .board-view-tabs a:hover {
            background: #e6f3ff;
            color: var(--v11-blue)
        }

.board-toolbar {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    padding: 13px;
    border-bottom: 1px solid var(--v11-border)
}

.board-table-wrap {
    overflow: auto
}

.board-table {
    width: 100%;
    min-width: 1120px;
    border-collapse: separate;
    border-spacing: 0
}

    .board-table th {
        position: sticky;
        top: 0;
        z-index: 2;
        padding: 10px;
        background: #f3f8fc;
        color: #657c90;
        font-size: .58rem;
        text-transform: uppercase;
        letter-spacing: .06em
    }

    .board-table td {
        padding: 10px;
        border-top: 1px solid #e8eef3
    }

    .board-table tbody tr:hover {
        background: #f8fbff
    }

.item-cell {
    display: flex;
    align-items: center;
    gap: 9px
}

.item-code {
    color: var(--v11-blue);
    font-size: .6rem;
    font-weight: 850
}

.inline-select, .points-input {
    min-height: 34px;
    border: 1px solid #d2e0eb;
    border-radius: 9px;
    background: #fff;
    color: var(--v11-ink)
}

.quick-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 9px;
    padding: 12px;
    background: #f8fbfe
}

.kanban-board {
    display: grid;
    grid-template-columns: repeat(5,minmax(260px,1fr));
    gap: 12px;
    overflow: auto;
    padding: 14px
}

.kanban-column {
    border: 1px solid #dce7ef;
    border-radius: 16px;
    background: #f6f9fc
}

    .kanban-column > header {
        display: flex;
        justify-content: space-between;
        padding: 13px
    }

.kanban-dropzone {
    min-height: 230px;
    padding: 8px
}

.kanban-card {
    margin-bottom: 9px;
    padding: 13px;
    border: 1px solid #dbe5ed;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 5px 15px rgba(20,61,94,.06);
    cursor: pointer
}

    .kanban-card:hover {
        border-color: #a8cce6;
        transform: translateY(-1px)
    }

.kanban-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 9px
}

.priority-chip, .late-chip {
    padding: 4px 7px;
    border-radius: 999px;
    background: #edf3f7;
    font-size: .55rem;
    font-weight: 850
}

.late-chip {
    background: #fff0f2;
    color: var(--v11-red)
}

.timeline-view, .calendar-view, .workload-view, .updates-view, .meeting-board-view {
    padding: 16px
}

.timeline-scale, .timeline-row {
    display: grid;
    grid-template-columns: 250px minmax(700px,1fr)
}

.timeline-scale {
    color: var(--v11-muted);
    font-size: .58rem
}

.timeline-track {
    position: relative;
    min-height: 42px;
    background: repeating-linear-gradient(90deg,#f2f6f9 0,#f2f6f9 1px,transparent 1px,transparent 12.5%)
}

.timeline-bar {
    position: absolute;
    top: 9px;
    height: 24px;
    border-radius: 8px;
    background: linear-gradient(90deg,var(--v11-blue),var(--v11-blue-2));
    color: #fff
}

.calendar-weekdays, .calendar-grid {
    display: grid;
    grid-template-columns: repeat(7,1fr)
}

    .calendar-weekdays > span {
        padding: 9px;
        text-align: center;
        color: var(--v11-muted);
        font-size: .58rem;
        font-weight: 850
    }

.calendar-day {
    min-height: 115px;
    padding: 8px;
    border: 1px solid #e2eaf1;
    background: #fff
}

.calendar-item {
    display: block;
    margin-top: 5px;
    padding: 5px;
    border-radius: 7px;
    background: #e9f4ff;
    color: var(--v11-blue);
    font-size: .55rem
}

.workload-intro {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 15px;
    border-radius: 14px;
    background: #f1f8ff
}

.load-legend {
    display: flex;
    gap: 8px
}

.load-person {
    display: grid;
    grid-template-columns: 210px 1fr 70px;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #e4ecf2
}

.load-bar {
    height: 11px;
    border-radius: 999px;
    background: #e8eff4;
    overflow: hidden
}

    .load-bar > i {
        display: block;
        height: 100%;
        background: var(--v11-blue)
    }

.updates-view {
    display: grid;
    grid-template-columns: minmax(0,1fr) 320px;
    gap: 15px
}

.update-post {
    padding: 15px;
    border: 1px solid var(--v11-border);
    border-radius: 15px;
    background: #fff
}

.update-kind {
    display: inline-flex;
    padding: 4px 7px;
    border-radius: 999px;
    background: #e8f4ff;
    color: var(--v11-blue);
    font-size: .55rem;
    font-weight: 850
}

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

    .meeting-board-grid > article {
        padding: 15px;
        border: 1px solid var(--v11-border);
        border-radius: 15px;
        background: #fff
    }

/* Drawer de actividades */
.task-drawer {
    position: fixed;
    inset: 0;
    z-index: 180;
    display: none
}

    .task-drawer.open {
        display: block
    }

.task-drawer-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(13,35,54,.42);
    backdrop-filter: blur(2px)
}

.task-drawer-shell {
    position: absolute;
    top: 0;
    right: 0;
    width: min(620px,96vw);
    height: 100%;
    overflow: auto;
    background: #fff;
    box-shadow: -20px 0 55px rgba(16,51,78,.2);
    animation: v11SlideIn .22s ease
}

.task-drawer-header {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    justify-content: space-between;
    padding: 18px;
    border-bottom: 1px solid var(--v11-border);
    background: rgba(255,255,255,.96)
}

.task-drawer-body {
    padding: 18px
}

.task-drawer-tabs {
    display: flex;
    gap: 5px;
    padding: 6px;
    border-radius: 12px;
    background: #f0f5f9
}

.task-property-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px
}

.drawer-loading, .drawer-empty {
    padding: 40px;
    text-align: center;
    color: var(--v11-muted)
}

.drawer-context, .drawer-description, .drawer-panel, .drawer-progress, .drawer-update {
    padding: 14px;
    border: 1px solid #dce7ef;
    border-radius: 14px;
    background: #fbfdff
}

.drawer-update-stream {
    display: flex;
    flex-direction: column;
    gap: 9px
}

.update-composer, .comment-composer {
    padding: 12px;
    border: 1px solid var(--v11-border);
    border-radius: 14px;
    background: #fff
}

/* Juntas y acuerdos */
.meeting-welcome {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 25px;
    align-items: center;
    padding: 25px 27px;
    border: 1px solid #cce1f1;
    border-radius: 22px;
    background: linear-gradient(120deg,#e9f5ff,#fff 60%,#fff3e9);
    box-shadow: var(--v11-shadow)
}

.meeting-flow-mini {
    display: flex;
    align-items: center;
    gap: 7px
}

    .meeting-flow-mini span {
        padding: 8px 10px;
        border-radius: 10px;
        background: #fff;
        border: 1px solid #d4e3ee;
        font-size: .62rem;
        font-weight: 800
    }

.meeting-kpis {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 12px;
    margin: 16px 0
}

    .meeting-kpis article {
        padding: 15px;
        border: 1px solid var(--v11-border);
        border-radius: 15px;
        background: #fff;
        box-shadow: 0 7px 22px rgba(22,65,100,.05)
    }

.meeting-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr);
    gap: 16px
}

.meeting-list, .agreement-mini-list, .recent-minutes {
    display: flex;
    flex-direction: column;
    gap: 9px
}

.meeting-row, .agreement-mini, .minute-card {
    display: grid;
    align-items: center;
    gap: 11px;
    padding: 12px;
    border: 1px solid #e0e9f0;
    border-radius: 13px;
    background: #fbfdff
}

.meeting-row {
    grid-template-columns: 62px minmax(0,1fr) auto auto
}

.meeting-date {
    display: grid;
    place-items: center;
    min-height: 52px;
    border-radius: 12px;
    background: #e8f4ff;
    color: var(--v11-blue);
    font-weight: 900
}

.meeting-health, .status-chip, .meeting-type-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 999px;
    background: #edf3f7;
    color: #5d7488;
    font-size: .56rem;
    font-weight: 850
}

    .meeting-health.enruta, .meeting-health.ok {
        background: #e8f7f0;
        color: var(--v11-green)
    }

    .meeting-health.enriesgo, .meeting-health.riesgo {
        background: #fff4df;
        color: #996500
    }

    .meeting-health.bloqueado {
        background: #fff0f2;
        color: var(--v11-red)
    }

.meeting-summary-banner {
    display: grid;
    grid-template-columns: minmax(0,1fr) 180px;
    gap: 18px;
    padding: 22px;
    border: 1px solid var(--v11-border);
    border-radius: 20px;
    background: linear-gradient(115deg,#eef7ff,#fff)
}

.meeting-content-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 330px;
    gap: 16px;
    margin-top: 16px
}

.meeting-content-main, .meeting-content-side {
    display: flex;
    flex-direction: column;
    gap: 14px
}

.agenda-list, .progress-update-list, .minute-point-list {
    display: flex;
    flex-direction: column;
    gap: 9px
}

.agenda-item, .progress-update-card, .minute-point {
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 12px;
    border: 1px solid #dee8ef;
    border-radius: 13px;
    background: #fbfdff
}

.agenda-order, .minute-point-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #e7f3ff;
    color: var(--v11-blue);
    font-weight: 900
}

.agreement-table-wrap {
    overflow: auto
}

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

    .agreement-table th, .agreement-table td {
        padding: 10px;
        border-bottom: 1px solid #e3ebf1;
        text-align: left
    }

.meeting-add-panel {
    padding: 14px;
    border: 1px dashed #bcd2e2;
    border-radius: 14px;
    background: #f8fbfe
}

.meeting-room-body {
    background: #092f55
}

.meeting-room-shell {
    display: grid;
    grid-template-columns: minmax(0,1fr) 340px;
    gap: 17px;
    padding: 18px
}

.meeting-room-stage, .meeting-room-panel {
    border-radius: 20px;
    background: #fff
}

.meeting-room-stage {
    padding: 24px
}

.meeting-room-panel {
    padding: 18px
}

.active-agenda-card {
    padding: 22px;
    border-radius: 18px;
    background: linear-gradient(135deg,#e6f3ff,#fff)
}

.room-agenda-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 11px;
    border-bottom: 1px solid #e2ebf1
}

.room-recent-points {
    display: flex;
    flex-direction: column;
    gap: 8px
}

/* Tribus, validacion y otras pantallas */
.org-summary-strip, .uat-overview {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 12px;
    margin-bottom: 16px
}

    .org-summary-strip .kpi, .uat-overview .kpi {
        padding: 15px;
        border: 1px solid var(--v11-border);
        border-radius: 15px;
        background: #fff;
        box-shadow: var(--v11-shadow)
    }

.org-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px
}

.org-card {
    padding: 16px;
    border: 1px solid var(--v11-border);
    border-radius: 17px;
    background: #fff;
    box-shadow: var(--v11-shadow);
    transition: .18s
}

    .org-card:hover {
        transform: translateY(-2px);
        border-color: #accfe7
    }

.attention-list {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.attention-item {
    padding: 11px;
    border-radius: 12px;
    background: #f8fbfe
}

.capacity-meter {
    height: 9px;
    border-radius: 999px;
    background: #e6eef4;
    overflow: hidden
}

    .capacity-meter > i {
        display: block;
        height: 100%;
        background: var(--v11-blue)
    }

.uat-explainer {
    display: grid;
    grid-template-columns: 56px minmax(0,1fr);
    gap: 15px;
    padding: 20px;
    border: 1px solid #cfe2f0;
    border-radius: 20px;
    background: linear-gradient(115deg,#eaf5ff,#fff);
    box-shadow: var(--v11-shadow)
}

.uat-explainer-icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 17px;
    background: var(--v11-blue);
    color: #fff;
    font-size: 1.45rem
}

.long-text {
    color: var(--v11-copy);
    line-height: 1.58
}

.friendly-empty, .empty-state.friendly {
    padding: 32px;
    text-align: center;
    border: 1px dashed #b9d2e4;
    border-radius: 18px;
    background: #fbfdff
}

    .friendly-empty.compact {
        padding: 20px
    }

    .friendly-empty.full {
        grid-column: 1/-1
    }

.text-link, .text-action {
    color: var(--v11-blue);
    font-weight: 800;
    text-decoration: none
}

    .text-link:hover, .text-action:hover {
        text-decoration: underline
    }

.converted-link {
    white-space: nowrap
}

/* Ayuda tipo videojuego */
.learning-orb {
    position: fixed;
    right: 22px;
    bottom: 21px;
    z-index: 126;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 48px;
    padding: 0 14px 0 9px;
    border: 0;
    border-radius: 17px;
    background: linear-gradient(135deg,var(--v11-blue),var(--v11-blue-2));
    color: #fff;
    box-shadow: 0 15px 36px rgba(7,87,166,.32);
    cursor: pointer;
    transition: .2s ease
}

    .learning-orb:hover {
        transform: translateY(-3px) scale(1.02);
        box-shadow: 0 20px 44px rgba(7,87,166,.38)
    }

    .learning-orb svg {
        width: 31px;
        height: 31px;
        padding: 6px;
        border-radius: 10px;
        background: rgba(255,255,255,.16);
        fill: none;
        stroke: #fff;
        stroke-width: 2
    }

    .learning-orb b {
        font-size: .7rem
    }

.learning-orb-ring {
    position: absolute;
    inset: -4px;
    border: 2px solid rgba(24,166,207,.38);
    border-radius: 20px;
    animation: v11Pulse 2.2s ease-out infinite
}

.learning-dock {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 191;
    width: min(440px,94vw);
    display: flex;
    flex-direction: column;
    background: #fff;
    box-shadow: -24px 0 70px rgba(11,48,77,.24);
    transform: translateX(104%);
    transition: transform .25s ease
}

    .learning-dock.open {
        transform: none
    }

.learning-backdrop {
    position: fixed;
    inset: 0;
    z-index: 190;
    border: 0;
    background: rgba(10,35,54,.38);
    opacity: 0;
    pointer-events: none;
    transition: .22s
}

.learning-dock.open + .learning-backdrop {
    opacity: 1;
    pointer-events: auto
}

.learning-dock-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid var(--v11-border);
    background: linear-gradient(120deg,#eef7ff,#fff)
}

    .learning-dock-head small {
        color: var(--v11-blue);
        font-size: .58rem;
        font-weight: 900;
        letter-spacing: .12em
    }

    .learning-dock-head h2 {
        margin: 4px 0 0;
        font-size: 1.12rem
    }

    .learning-dock-head > button {
        width: 34px;
        height: 34px;
        border: 0;
        border-radius: 10px;
        background: #edf3f8;
        color: #667d8f;
        font-size: 1.25rem;
        cursor: pointer
    }

.learning-coach-mark {
    position: relative
}

    .learning-coach-mark > span {
        display: grid;
        place-items: center;
        width: 43px;
        height: 43px;
        border-radius: 14px;
        background: var(--v11-blue);
        color: #fff;
        font-weight: 900
    }

    .learning-coach-mark > i {
        position: absolute;
        right: -2px;
        bottom: -1px;
        width: 12px;
        height: 12px;
        border: 3px solid #fff;
        border-radius: 50%;
        background: #1cb975
    }

.learning-progress-card {
    display: grid;
    grid-template-columns: 66px 1fr;
    gap: 13px;
    align-items: center;
    margin: 16px 17px 10px;
    padding: 15px;
    border-radius: 17px;
    background: #073f77;
    color: #fff
}

.learning-progress-ring {
    --progress: 0deg;
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: conic-gradient(var(--v11-orange) var(--progress),rgba(255,255,255,.18) 0);
    box-shadow: inset 0 0 0 8px #073f77
}

    .learning-progress-ring strong {
        display: grid;
        place-items: center;
        width: 43px;
        height: 43px;
        border-radius: 50%;
        background: #fff;
        color: var(--v11-blue);
        font-size: .75rem
    }

.learning-progress-card b {
    font-size: .82rem
}

.learning-progress-card p {
    margin: 4px 0 0;
    color: #d8eaff;
    font-size: .66rem;
    line-height: 1.4
}

.learning-current {
    display: grid;
    grid-template-columns: 42px 1fr auto;
    gap: 11px;
    align-items: center;
    margin: 4px 17px 11px;
    padding: 13px;
    border: 1px solid #bcd8ec;
    border-radius: 15px;
    background: #eff8ff;
    color: inherit;
    text-align: left;
    cursor: pointer
}

    .learning-current:hover {
        border-color: #75b1db;
        background: #e5f3ff
    }

.learning-current-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--v11-blue);
    color: #fff
}

.learning-current small, .learning-current b, .learning-current p {
    display: block
}

.learning-current small {
    color: var(--v11-blue);
    font-size: .53rem;
    font-weight: 900;
    letter-spacing: .09em
}

.learning-current b {
    margin-top: 2px;
    font-size: .76rem
}

.learning-current p {
    margin: 3px 0 0;
    color: var(--v11-muted);
    font-size: .6rem
}

.learning-current > i {
    font-style: normal;
    color: var(--v11-blue);
    font-size: .62rem;
    font-weight: 850
}

.learning-missions {
    flex: 1;
    overflow: auto;
    padding: 0 17px 18px
}

.learning-mission {
    display: grid;
    grid-template-columns: 38px 1fr auto;
    gap: 10px;
    align-items: center;
    width: 100%;
    margin-top: 8px;
    padding: 12px;
    border: 1px solid #e0e9f0;
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: .16s
}

    .learning-mission:hover {
        transform: translateX(3px);
        border-color: #a8cce5;
        background: #f8fcff
    }

    .learning-mission.completed {
        background: #f0faf5;
        border-color: #bde3d0
    }

    .learning-mission > span {
        display: grid;
        place-items: center;
        width: 37px;
        height: 37px;
        border-radius: 11px;
        background: #e8f4ff;
        color: var(--v11-blue);
        font-weight: 900
    }

    .learning-mission.completed > span {
        background: #dff4e9;
        color: var(--v11-green)
    }

    .learning-mission b, .learning-mission small {
        display: block
    }

    .learning-mission b {
        font-size: .71rem
    }

    .learning-mission small {
        margin-top: 3px;
        color: var(--v11-muted);
        font-size: .58rem
    }

    .learning-mission > i {
        font-style: normal;
        color: var(--v11-blue);
        font-size: .6rem;
        font-weight: 850
    }

.learning-dock-foot {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 17px;
    border-top: 1px solid var(--v11-border);
    background: #fbfdff
}

    .learning-dock-foot a, .learning-dock-foot button {
        border: 0;
        background: transparent;
        color: var(--v11-blue);
        font-size: .62rem;
        font-weight: 800;
        text-decoration: none;
        cursor: pointer
    }

.lesson-stage {
    position: fixed;
    inset: 0;
    z-index: 240;
    display: none
}

    .lesson-stage.active {
        display: block
    }

.lesson-shade {
    position: absolute;
    inset: 0;
    background: rgba(5,25,42,.64);
    backdrop-filter: blur(1.5px)
}

.lesson-focus {
    position: fixed;
    z-index: 242;
    border: 3px solid #fff;
    border-radius: 15px;
    box-shadow: 0 0 0 5px rgba(16,164,200,.7),0 0 0 9999px rgba(5,25,42,.48),0 18px 45px rgba(0,0,0,.25);
    pointer-events: none;
    transition: all .32s cubic-bezier(.2,.8,.2,1)
}

.lesson-card {
    position: fixed;
    z-index: 243;
    width: min(385px,calc(100vw - 24px));
    padding: 18px;
    border: 1px solid #c4deef;
    border-radius: 19px;
    background: #fff;
    color: var(--v11-ink);
    box-shadow: 0 26px 70px rgba(0,0,0,.28);
    transition: top .28s ease,left .28s ease;
    animation: v11LessonIn .25s ease
}

    .lesson-card > header {
        display: flex;
        justify-content: space-between;
        align-items: center
    }

        .lesson-card > header > span {
            padding: 5px 8px;
            border-radius: 999px;
            background: #e7f3ff;
            color: var(--v11-blue);
            font-size: .53rem;
            font-weight: 900;
            letter-spacing: .09em
        }

        .lesson-card > header > button {
            width: 30px;
            height: 30px;
            border: 0;
            border-radius: 9px;
            background: #edf3f7;
            color: #637a8d;
            font-size: 1.08rem
        }

.lesson-step-progress {
    height: 5px;
    margin: 14px 0 11px;
    border-radius: 999px;
    background: #e6edf3;
    overflow: hidden
}

    .lesson-step-progress i {
        display: block;
        height: 100%;
        width: 0;
        background: linear-gradient(90deg,var(--v11-blue),var(--v11-cyan),var(--v11-orange));
        transition: width .25s
    }

.lesson-card > small {
    color: var(--v11-blue);
    font-size: .57rem;
    font-weight: 850
}

.lesson-card h3 {
    margin: 6px 0 7px;
    font-size: 1.18rem
}

.lesson-card > p {
    margin: 0;
    color: var(--v11-copy);
    font-size: .77rem;
    line-height: 1.52
}

.lesson-action {
    margin-top: 11px;
    padding: 9px 11px;
    border-radius: 11px;
    background: var(--v11-orange-soft);
    color: #a94d0e;
    font-size: .65rem;
    font-weight: 750
}

.lesson-card > footer {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 8px;
    align-items: center;
    margin-top: 16px
}

.lesson-skip {
    justify-self: center;
    border: 0;
    background: transparent;
    color: var(--v11-muted);
    font-size: .61rem;
    cursor: pointer
}

.lesson-target-active {
    position: relative !important;
    z-index: 242 !important
}

.learning-nudge {
    position: fixed;
    right: 22px;
    bottom: 80px;
    z-index: 127;
    display: grid;
    grid-template-columns: 30px 36px 1fr auto;
    gap: 9px;
    align-items: center;
    width: min(420px,calc(100vw - 28px));
    padding: 12px;
    border: 1px solid #bad7eb;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(12,65,105,.18);
    animation: v11Nudge .35s ease
}

    .learning-nudge[hidden], .learning-achievement[hidden] {
        display: none
    }

    .learning-nudge > button:first-child {
        width: 27px;
        height: 27px;
        border: 0;
        border-radius: 8px;
        background: #edf3f7;
        color: #718394
    }

    .learning-nudge > span {
        display: grid;
        place-items: center;
        width: 35px;
        height: 35px;
        border-radius: 11px;
        background: var(--v11-blue);
        color: #fff
    }

    .learning-nudge b, .learning-nudge p {
        display: block
    }

    .learning-nudge p {
        margin: 3px 0 0;
        color: var(--v11-muted);
        font-size: .61rem
    }

    .learning-nudge > button:last-child {
        padding: 8px 10px;
        border: 0;
        border-radius: 10px;
        background: var(--v11-orange);
        color: #fff;
        font-size: .62rem;
        font-weight: 850
    }

.learning-achievement {
    position: fixed;
    right: 22px;
    top: 82px;
    z-index: 250;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 16px;
    border-radius: 15px;
    background: #063f75;
    color: #fff;
    box-shadow: 0 18px 45px rgba(6,63,117,.28);
    animation: v11Achievement .35s ease
}

    .learning-achievement > span {
        display: grid;
        place-items: center;
        width: 34px;
        height: 34px;
        border-radius: 11px;
        background: #1abb79
    }

    .learning-achievement small, .learning-achievement b {
        display: block
    }

    .learning-achievement small {
        color: #a9d8ff;
        font-size: .5rem;
        font-weight: 900;
        letter-spacing: .1em
    }

    .learning-achievement b {
        margin-top: 2px;
        font-size: .7rem
    }

[data-explain] {
    position: relative
}

    [data-explain]:hover::after {
        content: "Haz clic en Aprender para interpretar esta sección";
        position: absolute;
        right: 10px;
        top: 8px;
        z-index: 20;
        padding: 5px 8px;
        border-radius: 8px;
        background: #073f77;
        color: #fff;
        font-size: .52rem;
        opacity: .88;
        pointer-events: none
    }

.tour-highlight {
    box-shadow: none !important
}

/* Dialogos y controles no estilizados */
.v8-dialog, .automation-dialog {
    width: min(650px,94vw);
    border: 0;
    border-radius: 20px;
    padding: 0;
    box-shadow: 0 25px 70px rgba(12,45,70,.25)
}

    .v8-dialog::backdrop, .automation-dialog::backdrop {
        background: rgba(8,31,50,.5)
    }

    .v8-dialog > form, .automation-dialog > form {
        padding: 20px
    }

.automation-sentence {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: center;
    padding: 14px;
    border-radius: 14px;
    background: #f1f7fc
}

.automation-existing {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 13px
}

    .automation-existing > article {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 10px;
        padding: 11px;
        border: 1px solid #e0e9f0;
        border-radius: 12px
    }

.switch {
    position: relative;
    width: 42px;
    height: 23px;
    border-radius: 999px;
    background: #ccd9e3
}

    .switch::after {
        content: "";
        position: absolute;
        left: 3px;
        top: 3px;
        width: 17px;
        height: 17px;
        border-radius: 50%;
        background: #fff;
        transition: .18s
    }

    .switch.active {
        background: var(--v11-blue)
    }

        .switch.active::after {
            left: 22px
        }

@keyframes v11Pulse {
    0% {
        opacity: .75;
        transform: scale(.96)
    }

    70%,100% {
        opacity: 0;
        transform: scale(1.15)
    }
}

@keyframes v11SlideIn {
    from {
        transform: translateX(35px);
        opacity: 0
    }

    to {
        transform: none;
        opacity: 1
    }
}

@keyframes v11LessonIn {
    from {
        transform: translateY(10px);
        opacity: 0
    }

    to {
        transform: none;
        opacity: 1
    }
}

@keyframes v11Nudge {
    from {
        transform: translateY(12px);
        opacity: 0
    }

    to {
        transform: none;
        opacity: 1
    }
}

@keyframes v11Achievement {
    from {
        transform: translateX(20px);
        opacity: 0
    }

    to {
        transform: none;
        opacity: 1
    }
}

@media(max-width:1250px) {
    .idea-grid, .board-card-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .ideas-hub {
        grid-template-columns: 1fr
    }

    .meeting-dashboard-grid, .meeting-content-grid {
        grid-template-columns: 1fr
    }

    .meeting-content-side {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .updates-view {
        grid-template-columns: 1fr
    }

    .meeting-board-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:980px) {
    .ideas-summary, .meeting-kpis, .org-summary-strip, .uat-overview {
        grid-template-columns: repeat(2,1fr)
    }

    .ideas-toolbar {
        grid-template-columns: 1fr 1fr
    }

    .ideas-search {
        grid-column: 1/-1
    }

    .idea-detail-layout, .idea-create-layout {
        grid-template-columns: 1fr
    }

    .idea-side-panel, .idea-coach {
        position: static
    }

    .org-grid {
        grid-template-columns: 1fr
    }

    .meeting-room-shell {
        grid-template-columns: 1fr
    }

    .board-card-grid {
        grid-template-columns: 1fr 1fr
    }

    .learn-top-button span {
        display: none
    }
}

@media(max-width:720px) {
    .ideas-hub {
        padding: 21px
    }

    .ideas-journey {
        grid-template-columns: 1fr 1fr
    }

        .ideas-journey > i {
            display: none
        }

    .ideas-summary, .idea-grid, .board-card-grid, .meeting-board-grid, .org-summary-strip, .uat-overview, .meeting-kpis {
        grid-template-columns: 1fr
    }

    .ideas-toolbar {
        grid-template-columns: 1fr
    }

    .ideas-search {
        grid-column: auto
    }

    .idea-card {
        min-height: 0
    }

    .idea-card-foot {
        flex-wrap: wrap
    }

    .converted-link, .idea-open-link {
        margin-left: 0
    }

    .meeting-content-side {
        grid-template-columns: 1fr
    }

    .meeting-summary-banner {
        grid-template-columns: 1fr
    }

    .meeting-row {
        grid-template-columns: 54px 1fr
    }

        .meeting-row > :nth-child(n+3) {
            grid-column: 2
        }

    .learning-orb {
        right: 12px;
        bottom: 12px
    }

        .learning-orb b {
            display: none
        }

    .learning-nudge {
        right: 12px;
        bottom: 68px;
        grid-template-columns: 30px 1fr
    }

        .learning-nudge > span {
            display: none
        }

        .learning-nudge > button:last-child {
            grid-column: 2
        }

    .lesson-card {
        left: 12px !important;
        right: 12px !important;
        width: auto
    }

    .lesson-focus {
        border-radius: 11px
    }

    .task-property-grid {
        grid-template-columns: 1fr
    }
}

@media(prefers-reduced-motion:reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important
    }

    .learning-orb-ring {
        display: none
    }
}

/* Cobertura final de componentes heredados */
.smart-toolbar {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
    margin: 16px 0;
    padding: 13px;
    border: 1px solid var(--v11-border);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(20,61,94,.05)
}

.toolbar-search {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 260px;
    flex: 1;
    height: 42px;
    padding: 0 12px;
    border: 1px solid #cfdee9;
    border-radius: 11px;
    background: #f9fcff
}

    .toolbar-search svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: var(--v11-blue);
        stroke-width: 2
    }

    .toolbar-search input {
        width: 100%;
        border: 0;
        outline: 0;
        background: transparent
    }

.favorite-filter {
    display: flex;
    align-items: center;
    gap: 7px;
    height: 42px;
    padding: 0 11px;
    border: 1px solid #d2e0ea;
    border-radius: 11px;
    background: #fff
}

.clear-filter {
    align-self: center;
    color: var(--v11-blue);
    font-size: .64rem;
    font-weight: 800;
    text-decoration: none
}

.board-card > header {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    gap: 10px;
    align-items: start
}

    .board-card > header small {
        color: var(--v11-blue);
        font-size: .58rem;
        font-weight: 900
    }

    .board-card > header h3 {
        margin: 4px 0 0;
        font-size: 1rem
    }

.board-card > p {
    margin: 0;
    color: var(--v11-copy);
    font-size: .75rem;
    line-height: 1.5
}

.board-card > footer {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #e6edf2;
    color: var(--v11-muted);
    font-size: .58rem
}

.favorite-mark {
    color: #f4a137;
    font-size: 1.05rem
}

.board-progress > div {
    display: flex;
    justify-content: space-between;
    color: var(--v11-muted);
    font-size: .61rem
}

.board-progress > i {
    display: block;
    height: 8px;
    margin-top: 6px;
    border-radius: 999px;
    background: #e7eef4;
    overflow: hidden
}

    .board-progress > i > b {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg,var(--v11-blue),var(--v11-cyan))
    }

.row-check {
    display: grid;
    place-items: center
}

.row-more {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 9px;
    background: #edf3f7;
    color: var(--v11-ink)
}

.open-item {
    color: var(--v11-blue);
    font-weight: 800;
    text-decoration: none
}

.date-pair {
    display: grid;
    gap: 2px;
    color: var(--v11-copy);
    font-size: .62rem
}

.saved-view-menu {
    position: relative
}

.member-stack {
    display: flex
}

    .member-stack .avatar {
        margin-left: -6px;
        border: 2px solid #fff
    }

        .member-stack .avatar:first-child {
            margin-left: 0
        }

.meeting-next-card, .agreement-focus, .recent-minutes {
    padding: 18px
}

.minutes-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 11px
}

.minute-card {
    display: flex !important;
    flex-direction: column;
    color: inherit;
    text-decoration: none
}

    .minute-card header, .minute-card footer {
        display: flex;
        justify-content: space-between;
        gap: 8px
    }

    .minute-card h3 {
        margin: 9px 0 6px
    }

    .minute-card p {
        flex: 1;
        color: var(--v11-copy);
        font-size: .72rem;
        line-height: 1.45
    }

    .minute-card footer {
        padding-top: 10px;
        border-top: 1px solid #e4ebf1;
        color: var(--v11-muted);
        font-size: .57rem
    }

.meeting-help-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 16px
}

    .meeting-help-strip > div, .meeting-help-strip > a {
        padding: 15px;
        border: 1px solid #cfe0ed;
        border-radius: 15px;
        background: #f6fbff;
        color: inherit;
        text-decoration: none
    }

.agreement-mini {
    grid-template-columns: 38px 1fr auto !important;
    color: inherit;
    text-decoration: none
}

    .agreement-mini.late {
        border-color: #f0c4ca;
        background: #fff7f8
    }

.agreement-check {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 10px;
    background: #e7f3ff;
    color: var(--v11-blue);
    font-size: .65rem;
    font-weight: 900
}

.agreement-mini span b, .agreement-mini span small {
    display: block
}

.agreement-mini span small {
    margin-top: 3px;
    color: var(--v11-muted);
    font-size: .57rem
}

.agreement-mini em {
    color: var(--v11-muted);
    font-size: .58rem;
    font-style: normal
}

.count-pill {
    display: grid;
    place-items: center;
    min-width: 31px;
    height: 31px;
    padding: 0 8px;
    border-radius: 999px;
    background: #e7f3ff;
    color: var(--v11-blue);
    font-weight: 900
}

.button-row {
    display: flex;
    gap: 9px;
    flex-wrap: wrap
}

.check-line, .check-row {
    display: flex;
    align-items: center;
    gap: 8px
}

.sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    padding: 12px;
    background: rgba(255,255,255,.95);
    border-top: 1px solid var(--v11-border)
}

.form-grid-2 {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important
}

.security-card, .metric-card, .validation-summary, .decision-panel-v10, .signoff-v10, .product-map {
    padding: 17px;
    border: 1px solid var(--v11-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--v11-shadow)
}

.stage-flow {
    display: flex;
    align-items: center;
    gap: 7px;
    overflow: auto
}

    .stage-flow > span {
        white-space: nowrap;
        padding: 8px 10px;
        border-radius: 10px;
        background: #edf3f7;
        color: #61798b
    }

        .stage-flow > span.gate-active {
            background: var(--v11-blue);
            color: #fff
        }

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

.member-list, .workload-list, .time-log-list, .comments {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.squad-link {
    display: block;
    padding: 10px;
    border: 1px solid #dce7ef;
    border-radius: 11px;
    color: inherit;
    text-decoration: none
}

.quick-idea-status {
    min-height: 20px;
    color: var(--v11-blue);
    font-size: .64rem;
    font-weight: 800
}

.auth-validation {
    padding: 10px;
    border-radius: 10px;
    background: #fff0f2;
    color: var(--v11-red);
    font-size: .72rem
}

.history {
    border-left: 2px solid #cfe0ec;
    padding-left: 15px
}

.attention-card-v6 {
    padding: 16px;
    border: 1px solid #f2d3b8;
    border-radius: 15px;
    background: #fff7ef
}

.challenge-invite {
    padding: 18px;
    border: 1px solid #cce1ef;
    border-radius: 17px;
    background: linear-gradient(120deg,#eaf5ff,#fff)
}

.automation-bolt {
    color: var(--v11-orange);
    font-weight: 900
}

.timer-card {
    padding: 14px;
    border-radius: 14px;
    background: #073f77;
    color: #fff
}

.reply-form, .update-reply {
    margin-top: 8px;
    padding-left: 12px;
    border-left: 3px solid #d5e5f0
}

.update-task-link {
    color: var(--v11-blue);
    font-weight: 800;
    text-decoration: none
}

.composer-types {
    display: flex;
    gap: 6px;
    flex-wrap: wrap
}

    .composer-types button {
        padding: 6px 8px;
        border: 1px solid #d6e3ed;
        border-radius: 8px;
        background: #fff
    }

.inline {
    display: inline-flex
}

.soft {
    background: #e8f4ff !important;
    color: var(--v11-blue) !important
}

.mini {
    width: 30px !important;
    height: 30px !important;
    font-size: .58rem !important
}

.tiny {
    font-size: .55rem
}

.big {
    min-height: 42px;
    padding-inline: 14px
}

.warn {
    color: var(--v11-yellow)
}

.updates-main, .updates-side {
    min-width: 0
}

.person-select {
    min-width: 155px
}

.status-select {
    font-weight: 750
}

.item-col {
    min-width: 280px
}

.squad {
    color: var(--v11-cyan)
}

.screen-tour, .screen-tour-spotlight {
    display: none
}

.favorite-filter input {
    accent-color: var(--v11-blue)
}

@media(max-width:1000px) {
    .minutes-grid, .panorama-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .meeting-help-strip {
        grid-template-columns: 1fr
    }
}

@media(max-width:720px) {
    .minutes-grid, .panorama-grid {
        grid-template-columns: 1fr
    }

    .form-grid-2 {
        grid-template-columns: 1fr !important
    }

    .smart-toolbar > * {
        width: 100%
    }

    .toolbar-search {
        min-width: 0
    }
}

.help-feature-grid-v10 {
    grid-template-columns: repeat(4,minmax(0,1fr))
}

@media(max-width:1150px) {
    .help-feature-grid-v10 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:720px) {
    .help-feature-grid-v10 {
        grid-template-columns: 1fr
    }
}

/* Finishing touches for legacy screens that remain part of the final experience. */
.add-card {
    min-width: 260px;
    border: 1px dashed var(--ns-blue-300, #8ab8e8);
    background: linear-gradient(180deg, #f7fbff 0%, #eef6ff 100%);
    color: var(--ns-blue-900, #0d3c68);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

    .add-card:hover,
    .add-card[open] {
        transform: translateY(-2px);
        border-color: var(--ns-blue-600, #0b69b7);
        box-shadow: 0 14px 34px rgba(12, 91, 155, .12);
    }

    .add-card > summary {
        cursor: pointer;
        font-weight: 800;
        list-style: none;
    }

.board-search {
    align-items: end;
    gap: 12px;
    padding: 14px;
    border: 1px solid #dce9f6;
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 10px 30px rgba(16, 74, 123, .06);
}

.form-card-accent-blue {
    position: relative;
    overflow: hidden;
    border-top: 4px solid var(--ns-blue-600, #0b69b7);
}

    .form-card-accent-blue::before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        width: 5px;
        background: linear-gradient(180deg, var(--ns-blue-600, #0b69b7), var(--ns-orange-500, #f47b20));
    }

.meeting-board-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
    padding: 24px;
    border: 1px solid #dce9f6;
    border-radius: 22px;
    background: linear-gradient(135deg, #f4f9ff 0%, #ffffff 65%, #fff7f1 100%);
}

    .meeting-board-head h2 {
        margin: 6px 0 8px;
    }

    .meeting-board-head p {
        margin: 0;
        color: #57718a;
    }

@media (max-width: 760px) {
    .meeting-board-head {
        flex-direction: column;
    }

        .meeting-board-head .btn {
            width: 100%;
            justify-content: center;
        }
}

/* ===== v12.css ===== */
/* NS Innova 11.2 - orden, densidad controlada y operación final */
:root {
    --ns-blue: #0757a6;
    --ns-blue-2: #0b73ce;
    --ns-blue-soft: #eaf5ff;
    --ns-orange: #f47c20;
    --ns-ink: #12304d;
    --ns-muted: #607a94;
    --ns-line: #d9e7f2;
    --ns-bg: #f4f9fd;
    --ns-card: #fff;
    --ns-shadow: 0 12px 32px rgba(7,87,166,.09)
}

body {
    background: linear-gradient(180deg,#f8fbfe 0,#f2f8fc 100%);
    color: var(--ns-ink)
}

.content {
    max-width: 1600px;
    margin-inline: auto
}

/* Navegación principal plegable */
.nav {
    gap: 3px
}

.nav-group {
    display: grid;
    gap: 2px
}

.nav-group-toggle {
    appearance: none;
    border: 0;
    background: transparent;
    color: #7890a6;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px 6px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: 10px
}

    .nav-group-toggle:hover {
        background: #f1f7fc;
        color: var(--ns-blue)
    }

    .nav-group-toggle svg {
        width: 15px;
        height: 15px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        transition: transform .2s ease
    }

.nav-group:not(.is-open) .nav-group-toggle svg {
    transform: rotate(-90deg)
}

.nav-group-items {
    display: grid;
    gap: 2px;
    overflow: hidden;
    max-height: 420px;
    opacity: 1;
    transition: max-height .24s ease,opacity .18s ease
}

.nav-group:not(.is-open) .nav-group-items {
    max-height: 0;
    opacity: 0;
    pointer-events: none
}

.nav-group.has-active > .nav-group-toggle {
    color: var(--ns-blue)
}

body.sidebar-collapsed .nav-group-toggle {
    padding: 8px 0;
    justify-content: center
}

    body.sidebar-collapsed .nav-group-toggle span, body.sidebar-collapsed .nav-group-toggle svg {
        display: none
    }

body.sidebar-collapsed .nav-group:not(.is-open) .nav-group-items {
    max-height: 420px;
    opacity: 1;
    pointer-events: auto
}

/* Centro de trabajo */
.workspace-layout {
    align-items: start
}

.workspace-nav-shell {
    position: sticky;
    top: 86px;
    min-width: 0
}

.workspace-nav-toggle {
    display: none;
    width: 100%;
    border: 1px solid var(--ns-line);
    background: #fff;
    color: var(--ns-blue);
    padding: 11px 13px;
    border-radius: 12px;
    font-weight: 800;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 5px 16px rgba(7,87,166,.06)
}

    .workspace-nav-toggle svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        transition: transform .2s
    }

.workspace-nav-shell.is-collapsed .workspace-nav-toggle svg {
    transform: rotate(-90deg)
}

.workspace-nav a {
    transition: transform .18s,background .18s,border-color .18s
}

    .workspace-nav a:hover {
        transform: translateX(3px)
    }

/* Inspector de origen: siempre utilizable */
body.origin-open {
    overflow: hidden
}

.origin-drawer {
    z-index: 1700;
    width: min(470px,94vw);
    background: #fff;
    box-shadow: -22px 0 60px rgba(18,48,77,.18)
}

.origin-backdrop {
    z-index: 1690;
    background: rgba(18,48,77,.34);
    backdrop-filter: blur(2px)
}

.origin-drawer-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 24px 18px;
    border-bottom: 1px solid var(--ns-line);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 2
}

    .origin-drawer-head small {
        color: var(--ns-blue);
        font-weight: 900;
        letter-spacing: .1em
    }

    .origin-drawer-head h3 {
        margin: 5px 0 0;
        font-size: 21px
    }

    .origin-drawer-head button {
        border: 0;
        background: #edf5fb;
        color: var(--ns-ink);
        width: 38px;
        height: 38px;
        border-radius: 12px;
        font-size: 24px;
        cursor: pointer
    }

.origin-empty, .origin-error, .origin-loading {
    min-height: 360px;
    padding: 50px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px
}

    .origin-empty > span, .origin-error > span {
        width: 54px;
        height: 54px;
        border-radius: 18px;
        display: grid;
        place-items: center;
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
        font-size: 25px;
        font-weight: 900
    }

    .origin-error > span {
        background: #fff2e8;
        color: var(--ns-orange)
    }

    .origin-empty p, .origin-error p, .origin-loading p {
        color: var(--ns-muted);
        max-width: 330px;
        margin: 0
    }

    .origin-error > div {
        display: flex;
        gap: 10px;
        margin-top: 10px
    }

    .origin-loading > span {
        width: 36px;
        height: 36px;
        border: 3px solid #d8e8f5;
        border-top-color: var(--ns-blue);
        border-radius: 50%;
        animation: nsSpin .8s linear infinite
    }

@keyframes nsSpin {
    to {
        transform: rotate(360deg)
    }
}

body.lesson-mode .origin-drawer, body.lesson-mode .origin-backdrop {
    visibility: hidden !important;
    pointer-events: none !important
}

/* Directorio de personas */
.admin-directory {
    overflow: visible
}

.admin-user-list {
    display: grid;
    gap: 10px
}

.admin-user-v12 {
    display: grid;
    grid-template-columns: 48px minmax(210px,1.5fr) minmax(180px,1fr) minmax(150px,.8fr) minmax(155px,.85fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid var(--ns-line);
    border-radius: 16px;
    background: #fff;
    transition: border-color .18s,box-shadow .18s,transform .18s
}

    .admin-user-v12:hover {
        border-color: #9fc7e8;
        box-shadow: 0 8px 22px rgba(7,87,166,.08);
        transform: translateY(-1px)
    }

.admin-user-avatar {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: linear-gradient(145deg,var(--ns-blue),var(--ns-blue-2));
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 900
}

.admin-user-v12 small {
    display: block;
    color: var(--ns-muted);
    margin-top: 3px;
    overflow-wrap: anywhere
}

.admin-user-actions {
    display: flex;
    align-items: center;
    gap: 7px
}

.admin-actions-menu {
    position: relative
}

    .admin-actions-menu > div {
        right: 0;
        left: auto;
        min-width: 190px;
        z-index: 20
    }

.account-toggle-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 10px
}

    .account-toggle-grid > label {
        border: 1px solid var(--ns-line);
        border-radius: 14px;
        padding: 13px;
        display: flex;
        align-items: flex-start;
        gap: 10px;
        background: #f9fcff
    }

    .account-toggle-grid input[type=checkbox] {
        margin-top: 3px;
        accent-color: var(--ns-blue)
    }

/* Ideas: acciones visibles sin recargar la tarjeta */
.idea-card {
    position: relative
}

    .idea-card .card-action-menu {
        margin-left: auto
    }

        .idea-card .card-action-menu > div {
            right: 0;
            left: auto;
            z-index: 20
        }

.idea-detail-layout {
    align-items: start
}

.danger-zone {
    border: 1px solid #f4d7c0;
    border-radius: 14px;
    background: #fffaf6
}

    .danger-zone summary {
        padding: 13px 15px;
        color: #9c4c13;
        font-weight: 800;
        cursor: pointer
    }

    .danger-zone > div {
        padding: 0 14px 14px;
        display: grid;
        gap: 8px
    }

/* Juntas: corrige superposiciones y permite plegar secciones */
.meeting-content-main > .card {
    overflow: visible
}

    .meeting-content-main > .card.is-collapsed > :not(.card-head) {
        display: none !important
    }

.section-collapse-button {
    margin-left: auto;
    border: 1px solid var(--ns-line);
    background: #f7fbfe;
    color: var(--ns-blue);
    border-radius: 10px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 7px;
    font-weight: 800;
    cursor: pointer
}

    .section-collapse-button svg {
        width: 16px;
        height: 16px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        transition: transform .18s
    }

.card.is-collapsed .section-collapse-button svg {
    transform: rotate(-90deg)
}

.progress-update-card {
    display: block !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid var(--ns-line) !important;
    border-left: 5px solid var(--ns-blue) !important;
    border-radius: 16px !important;
    background: #fff !important
}

    .progress-update-card > header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 16px !important;
        padding: 16px 18px !important;
        border-bottom: 1px solid var(--ns-line) !important
    }

        .progress-update-card > header > div {
            display: flex;
            align-items: center;
            gap: 10px;
            min-width: 0
        }

        .progress-update-card > header b {
            overflow-wrap: anywhere
        }

        .progress-update-card > header strong {
            white-space: nowrap;
            color: var(--ns-blue);
            font-size: 18px
        }

            .progress-update-card > header strong i {
                font-style: normal;
                color: var(--ns-muted);
                margin: 0 5px
            }

.progress-update-grid {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 0 !important
}

    .progress-update-grid > div {
        padding: 17px 18px !important;
        min-height: 108px;
        border-right: 1px solid var(--ns-line);
        border-bottom: 1px solid var(--ns-line)
    }

        .progress-update-grid > div:nth-child(2n) {
            border-right: 0
        }

        .progress-update-grid > div:nth-last-child(-n+2) {
            border-bottom: 0
        }

    .progress-update-grid span {
        font-size: 10px;
        font-weight: 900;
        letter-spacing: .08em;
        color: var(--ns-blue);
        text-transform: uppercase
    }

    .progress-update-grid p {
        margin: 7px 0 0 !important;
        line-height: 1.55;
        overflow-wrap: anywhere
    }

.progress-update-card > footer {
    padding: 11px 18px !important;
    background: #f8fbfe;
    color: var(--ns-muted);
    font-size: 12px
}

.minute-point {
    grid-template-columns: 42px minmax(0,1fr) auto !important;
    align-items: start !important
}

    .minute-point > div {
        min-width: 0
    }

    .minute-point p {
        overflow-wrap: anywhere
    }

.meeting-content-grid {
    align-items: start
}

/* Estado ocupado */
.is-busy {
    position: relative;
    color: transparent !important;
    pointer-events: none
}

    .is-busy:after {
        content: "";
        position: absolute;
        inset: 50% auto auto 50%;
        width: 17px;
        height: 17px;
        margin: -8.5px;
        border: 2px solid currentColor;
        border-top-color: transparent;
        border-radius: 50%;
        animation: nsSpin .7s linear infinite;
        color: #fff
    }

@media(max-width:1180px) {
    .admin-user-v12 {
        grid-template-columns: 48px 1.4fr 1fr 1fr auto
    }

    .admin-status {
        display: none
    }

    .workspace-nav-shell {
        position: static
    }

    .workspace-nav-toggle {
        display: flex
    }

    .workspace-nav-shell.is-collapsed .workspace-nav {
        display: none
    }

    .workspace-layout {
        grid-template-columns: 1fr !important
    }
}

@media(max-width:850px) {
    .admin-user-v12 {
        grid-template-columns: 44px 1fr auto
    }

    .admin-area, .admin-role {
        display: none
    }

    .account-toggle-grid, .progress-update-grid {
        grid-template-columns: 1fr !important
    }

        .progress-update-grid > div {
            border-right: 0 !important;
            border-bottom: 1px solid var(--ns-line) !important
        }

            .progress-update-grid > div:last-child {
                border-bottom: 0 !important
            }

    .progress-update-card > header {
        align-items: flex-start !important;
        flex-direction: column
    }

    .meeting-content-grid {
        grid-template-columns: 1fr !important
    }

    .workspace-nav {
        grid-template-columns: repeat(2,minmax(0,1fr));
        display: grid !important
    }

    .workspace-nav-shell.is-collapsed .workspace-nav {
        display: none !important
    }
}

@media(max-width:560px) {
    .workspace-nav {
        grid-template-columns: 1fr
    }

    .admin-user-v12 {
        padding: 12px
    }

    .admin-user-actions > .btn {
        font-size: 0;
        width: 38px;
        height: 38px;
        padding: 0
    }

        .admin-user-actions > .btn:after {
            content: "Editar";
            font-size: 11px
        }

    .origin-drawer {
        width: 100vw
    }

    .section-collapse-button span {
        display: none
    }

    .minute-point {
        grid-template-columns: 38px minmax(0,1fr) !important
    }

        .minute-point > em, .minute-point > .badge {
            grid-column: 2
        }
}

@media(prefers-reduced-motion:reduce) {
    .nav-group-items, .workspace-nav a, .admin-user-v12, .section-collapse-button svg {
        transition: none !important
    }
}

/* ===== v13.css ===== */
/* NS Innova V11.3 - claridad, juntas guiadas y contexto no invasivo */

/* Menos duplicidad visual en pantallas de trabajo profundo. */
body.workspace-page .page-heading,
body[data-controller="Meetings"][data-action="Details"] .page-heading {
    display: none
}

body.workspace-page .content,
body[data-controller="Meetings"][data-action="Details"] .content {
    padding-top: 20px
}

/* El inspector de origen ya no bloquea ni desenfoca toda la aplicación. */
.origin-backdrop {
    display: none !important
}

body.origin-open {
    overflow: auto !important
}

.origin-drawer {
    width: min(390px,92vw) !important;
    z-index: 1700 !important;
    border-left: 1px solid #cfe0ed !important;
    box-shadow: -12px 0 36px rgba(18,48,77,.13) !important;
    background: #fff !important
}

    .origin-drawer.open {
        transform: translateX(0) !important
    }

.origin-drawer-head {
    padding: 18px 18px 14px !important
}

    .origin-drawer-head h3 {
        font-size: 18px !important
    }

.origin-empty, .origin-error, .origin-loading {
    min-height: 260px !important;
    padding: 36px 24px !important
}

.origin-head {
    grid-template-columns: 42px minmax(0,1fr) 34px !important;
    padding: 17px !important
}

.origin-symbol {
    width: 42px !important;
    height: 42px !important;
    border-radius: 12px !important
}

.origin-route, .origin-status-line, .origin-fields, .origin-metadata, .origin-history, .origin-footer {
    margin-inline: 16px !important;
    padding-block: 14px !important
}

.origin-fields {
    grid-template-columns: 1fr !important
}

/* El centro de trabajo inicia compacto y dedica más espacio al contenido. */
.workspace {
    max-width: 1500px;
    margin: 0 auto
}

.workspace-hero {
    min-height: 170px !important;
    padding: 23px 26px !important;
    gap: 20px !important
}

.workspace-identity h2 {
    font-size: clamp(28px,3vw,42px) !important
}

.workspace-identity > p {
    max-width: 860px
}

.workspace-progress-card {
    min-width: 250px !important;
    padding: 15px !important
}

.stage-journey {
    padding: 13px 16px !important
}

.workspace-layout {
    grid-template-columns: auto minmax(0,1fr) !important
}

.workspace-nav-shell {
    width: 235px;
    transition: width .2s ease
}

    .workspace-nav-shell.is-collapsed {
        width: 185px
    }

.workspace-nav-toggle {
    display: flex !important
}

.workspace-nav-shell.is-collapsed .workspace-nav {
    display: none !important
}

.workspace-nav-shell.is-collapsed .workspace-nav-toggle {
    position: sticky;
    top: 86px
}

.focus-grid {
    grid-template-columns: minmax(320px,1.7fr) repeat(3,minmax(135px,.8fr)) !important
}

@media(max-width:1180px) {
    .focus-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important
    }

    .focus-card.primary {
        grid-column: 1/-1
    }
}

@media(max-width:760px) {
    .workspace-nav-shell, .workspace-nav-shell.is-collapsed {
        width: 100%
    }

    .workspace-layout {
        grid-template-columns: 1fr !important
    }

    .focus-grid {
        grid-template-columns: 1fr !important
    }

    .focus-card.primary {
        grid-column: auto
    }

    .workspace-hero {
        grid-template-columns: 1fr !important
    }
}

/* ---------------------------------------------------------------
   Juntas: una sola pantalla dividida en Preparar / Durante / Seguir
   --------------------------------------------------------------- */
.meeting-v13 {
    max-width: 1480px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px
}

.meeting-command-v13 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 20px;
    align-items: center;
    padding: 22px 24px;
    border: 1px solid #cfe0ed;
    border-radius: 22px;
    background: linear-gradient(135deg,#fff 0%,#f1f8ff 72%,#fff5ed 100%);
    box-shadow: 0 12px 34px rgba(22,70,112,.08)
}

    .meeting-command-v13 .eyebrow {
        display: block;
        color: var(--ns-blue);
        font-size: 10px;
        font-weight: 900;
        letter-spacing: .1em
    }

    .meeting-command-v13 h2 {
        margin: 6px 0 7px;
        font-size: clamp(25px,3vw,38px);
        line-height: 1.08;
        letter-spacing: -.035em
    }

    .meeting-command-v13 p {
        max-width: 860px;
        margin: 0;
        color: var(--ns-muted);
        font-size: 14px
    }

.meeting-command-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 14px;
    color: #49657b;
    font-size: 12px
}

    .meeting-command-meta b {
        color: var(--ns-ink)
    }

.meeting-command-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 9px;
    min-width: 210px
}

    .meeting-command-actions .btn {
        justify-content: center
    }

.meeting-phase-nav {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
    padding: 8px;
    border: 1px solid #d5e4ef;
    border-radius: 18px;
    background: #f7fbfe;
    position: sticky;
    top: 76px;
    z-index: 12;
    box-shadow: 0 8px 24px rgba(25,72,112,.06)
}

    .meeting-phase-nav button {
        display: grid;
        grid-template-columns: 36px minmax(0,1fr) auto;
        gap: 10px;
        align-items: center;
        min-height: 66px;
        padding: 10px 13px;
        border: 0;
        border-radius: 13px;
        background: transparent;
        color: #587087;
        text-align: left;
        transition: .18s ease
    }

        .meeting-phase-nav button:hover {
            background: #fff;
            color: var(--ns-blue)
        }

        .meeting-phase-nav button.active {
            background: #fff;
            color: var(--ns-blue);
            box-shadow: 0 7px 20px rgba(7,87,166,.12)
        }

        .meeting-phase-nav button > span {
            width: 36px;
            height: 36px;
            display: grid;
            place-items: center;
            border-radius: 11px;
            background: #e8f3fc;
            color: var(--ns-blue);
            font-weight: 900
        }

        .meeting-phase-nav button.active > span {
            background: var(--ns-blue);
            color: #fff
        }

    .meeting-phase-nav b, .meeting-phase-nav small {
        display: block
    }

    .meeting-phase-nav b {
        font-size: 13px
    }

    .meeting-phase-nav small {
        margin-top: 2px;
        font-size: 10px;
        color: var(--ns-muted)
    }

    .meeting-phase-nav em {
        min-width: 29px;
        height: 29px;
        padding: 0 8px;
        display: grid;
        place-items: center;
        border-radius: 999px;
        background: #eef4f8;
        color: #46637a;
        font-size: 11px;
        font-style: normal;
        font-weight: 850
    }

.meeting-phase-panel[hidden] {
    display: none !important
}

.meeting-phase-panel.active {
    animation: meetingPhaseIn .22s ease both
}

@keyframes meetingPhaseIn {
    from {
        opacity: 0;
        transform: translateY(7px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.meeting-phase-intro {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 18px 20px;
    border: 1px solid #d9e6ef;
    border-radius: 17px;
    background: #fff
}

    .meeting-phase-intro h3 {
        margin: 4px 0 5px;
        font-size: 22px
    }

    .meeting-phase-intro p {
        margin: 0;
        color: var(--ns-muted)
    }

    .meeting-phase-intro .phase-number {
        width: 58px;
        height: 58px;
        display: grid;
        place-items: center;
        border-radius: 18px;
        background: var(--ns-blue);
        color: #fff;
        font-size: 25px;
        font-weight: 900;
        box-shadow: 0 10px 24px rgba(7,87,166,.2)
    }

.meeting-phase-grid {
    display: grid;
    grid-template-columns: minmax(0,1.6fr) minmax(290px,.7fr);
    gap: 15px;
    margin-top: 15px;
    align-items: start
}

.meeting-phase-stack {
    display: flex;
    flex-direction: column;
    gap: 15px
}

.meeting-v13-card {
    padding: 18px;
    border: 1px solid #d7e4ed;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(24,66,100,.045)
}

    .meeting-v13-card > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 14px;
        padding-bottom: 13px;
        margin-bottom: 13px;
        border-bottom: 1px solid #e3ecf2
    }

        .meeting-v13-card > header h3 {
            margin: 4px 0 0;
            font-size: 18px
        }

        .meeting-v13-card > header p {
            margin: 4px 0 0;
            color: var(--ns-muted);
            font-size: 12px
        }

        .meeting-v13-card > header small {
            color: var(--ns-blue);
            font-size: 9px;
            font-weight: 900;
            letter-spacing: .1em
        }

    .meeting-v13-card.compact {
        padding: 16px
    }

.meeting-help-v13 {
    display: grid;
    grid-template-columns: 36px minmax(0,1fr);
    gap: 10px;
    padding: 12px;
    border: 1px solid #f1d2b8;
    border-radius: 13px;
    background: #fff7ef;
    color: #68411f
}

    .meeting-help-v13 > span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 11px;
        background: var(--ns-orange);
        color: #fff;
        font-weight: 900
    }

    .meeting-help-v13 b, .meeting-help-v13 small {
        display: block
    }

    .meeting-help-v13 small {
        margin-top: 3px;
        line-height: 1.45
    }

.meeting-agenda-v13 {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.meeting-agenda-row-v13 {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 11px;
    border: 1px solid #e0e9ef;
    border-radius: 12px;
    background: #fbfdff
}

    .meeting-agenda-row-v13 > span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: #e8f3fc;
        color: var(--ns-blue);
        font-weight: 900
    }

    .meeting-agenda-row-v13 b, .meeting-agenda-row-v13 small {
        display: block
    }

    .meeting-agenda-row-v13 small {
        margin-top: 3px;
        color: var(--ns-muted);
        font-size: 10px
    }

    .meeting-agenda-row-v13 em {
        font-style: normal;
        font-size: 10px;
        font-weight: 850;
        color: #557086
    }

.meeting-attendees-v13 {
    display: flex;
    flex-direction: column;
    gap: 7px
}

.meeting-attendee-v13 {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    gap: 9px;
    align-items: center;
    padding: 8px;
    border-radius: 11px;
    background: #f7fbfe
}

    .meeting-attendee-v13 .avatar {
        width: 36px;
        height: 36px
    }

    .meeting-attendee-v13 b, .meeting-attendee-v13 small {
        display: block
    }

    .meeting-attendee-v13 small {
        font-size: 9px;
        color: var(--ns-muted)
    }

    .meeting-attendee-v13 select {
        max-width: 125px;
        padding: 6px 8px;
        font-size: 10px
    }

.meeting-progress-v13 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px
}

    .meeting-progress-v13 article {
        padding: 13px;
        border: 1px solid #dce7ef;
        border-radius: 13px;
        background: #fbfdff
    }

        .meeting-progress-v13 article.wide {
            grid-column: 1/-1
        }

    .meeting-progress-v13 span {
        display: block;
        color: var(--ns-blue);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .08em
    }

    .meeting-progress-v13 p {
        margin: 6px 0 0;
        line-height: 1.5;
        font-size: 12px
    }

.meeting-progress-head-v13 {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 10px
}

    .meeting-progress-head-v13 strong {
        font-size: 18px;
        color: var(--ns-blue)
    }

.minute-list-v13 {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.minute-row-v13 {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    gap: 10px;
    align-items: start;
    padding: 11px;
    border: 1px solid #e1e9ef;
    border-radius: 12px
}

    .minute-row-v13 > span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: #e8f3fc;
        color: var(--ns-blue);
        font-weight: 900
    }

    .minute-row-v13.decision > span {
        background: #e8f7ee;
        color: #19764b
    }

    .minute-row-v13.bloqueo > span, .minute-row-v13.riesgo > span {
        background: #fff1e7;
        color: var(--ns-orange)
    }

    .minute-row-v13 b, .minute-row-v13 p, .minute-row-v13 small {
        display: block
    }

    .minute-row-v13 p {
        margin: 4px 0;
        color: #476176;
        font-size: 11px;
        line-height: 1.45
    }

    .minute-row-v13 small {
        font-size: 9px;
        color: var(--ns-muted)
    }

    .minute-row-v13 em {
        font-style: normal;
        color: #688095;
        font-size: 9px
    }

.meeting-outcome-v13 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px
}

    .meeting-outcome-v13 article {
        padding: 15px;
        border: 1px solid #dce7ef;
        border-radius: 13px;
        background: #fff
    }

    .meeting-outcome-v13 span {
        display: block;
        color: var(--ns-muted);
        font-size: 9px;
        font-weight: 850;
        text-transform: uppercase
    }

    .meeting-outcome-v13 strong {
        display: block;
        margin-top: 5px;
        font-size: 25px;
        color: var(--ns-blue)
    }

.meeting-agreements-v13 {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.meeting-agreement-v13 {
    display: grid;
    grid-template-columns: minmax(0,1.5fr) 150px 100px 170px auto;
    gap: 10px;
    align-items: center;
    padding: 11px;
    border: 1px solid #dfe8ee;
    border-radius: 12px;
    background: #fff
}

    .meeting-agreement-v13.late {
        border-color: #efc4c9;
        background: #fff9fa
    }

    .meeting-agreement-v13 b, .meeting-agreement-v13 small {
        display: block
    }

    .meeting-agreement-v13 small {
        margin-top: 3px;
        color: var(--ns-muted);
        font-size: 9px
    }

    .meeting-agreement-v13 .agreement-progress {
        min-width: 120px
    }

    .meeting-agreement-v13 details {
        position: relative
    }

        .meeting-agreement-v13 details form {
            min-width: 220px
        }

.meeting-gantt-v13 {
    overflow-x: auto;
    border: 1px solid #dce7ef;
    border-radius: 14px;
    background: #fff
}

.meeting-gantt-axis-v13, .meeting-gantt-row-v13 {
    display: grid;
    grid-template-columns: 260px minmax(420px,1fr) 70px;
    gap: 12px;
    align-items: center;
    min-width: 780px
}

.meeting-gantt-axis-v13 {
    padding: 9px 12px;
    background: #f5f9fc;
    color: var(--ns-muted);
    font-size: 9px;
    font-weight: 850
}

    .meeting-gantt-axis-v13 > div {
        display: flex;
        justify-content: space-between
    }

.meeting-gantt-row-v13 {
    padding: 10px 12px;
    border-top: 1px solid #e7eef3
}

    .meeting-gantt-row-v13 b, .meeting-gantt-row-v13 small {
        display: block
    }

    .meeting-gantt-row-v13 small {
        color: var(--ns-muted);
        font-size: 9px;
        margin-top: 2px
    }

.meeting-gantt-track-v13 {
    position: relative;
    height: 28px;
    border-radius: 9px;
    background: repeating-linear-gradient(90deg,#f2f6f9 0,#f2f6f9 calc(25% - 1px),#dfe8ee calc(25% - 1px),#dfe8ee 25%)
}

.meeting-gantt-bar-v13 {
    position: absolute;
    left: 0;
    top: 5px;
    height: 18px;
    min-width: 20px;
    border-radius: 7px;
    background: #d8eaff;
    overflow: hidden
}

    .meeting-gantt-bar-v13 > i {
        display: block;
        height: 100%;
        background: linear-gradient(90deg,var(--ns-blue),#1fa7cf)
    }

.meeting-gantt-row-v13 > em {
    text-align: right;
    font-style: normal;
    font-weight: 850;
    color: var(--ns-blue)
}

.meeting-form-compact {
    display: grid;
    gap: 10px
}

    .meeting-form-compact .form-grid {
        gap: 10px
    }

.meeting-add-panel-v13 {
    margin-top: 12px;
    border: 1px dashed #b9cfdb;
    border-radius: 12px;
    background: #f9fcfe
}

    .meeting-add-panel-v13 > summary {
        padding: 12px 13px;
        list-style: none;
        color: var(--ns-blue);
        font-weight: 850;
        cursor: pointer
    }

    .meeting-add-panel-v13[open] > summary {
        border-bottom: 1px solid #deebf2
    }

    .meeting-add-panel-v13 > form {
        padding: 13px
    }

@media(max-width:1050px) {
    .meeting-command-v13 {
        grid-template-columns: 1fr
    }

    .meeting-command-actions {
        min-width: 0;
        flex-direction: row;
        flex-wrap: wrap
    }

    .meeting-phase-grid {
        grid-template-columns: 1fr
    }

    .meeting-agreement-v13 {
        grid-template-columns: minmax(0,1fr) 130px 90px
    }

        .meeting-agreement-v13 > :nth-child(4), .meeting-agreement-v13 > :nth-child(5) {
            grid-column: auto
        }

    .meeting-progress-v13 {
        grid-template-columns: 1fr
    }
}

@media(max-width:760px) {
    .meeting-phase-nav {
        grid-template-columns: 1fr;
        position: static
    }

        .meeting-phase-nav button {
            min-height: 58px
        }

    .meeting-command-v13 {
        padding: 18px
    }

    .meeting-phase-intro {
        grid-template-columns: 1fr
    }

        .meeting-phase-intro .phase-number {
            order: -1
        }

    .meeting-outcome-v13 {
        grid-template-columns: 1fr
    }

    .meeting-agreement-v13 {
        grid-template-columns: 1fr
    }

        .meeting-agreement-v13 > * {
            grid-column: auto !important
        }

    .meeting-command-actions {
        flex-direction: column
    }

    .meeting-progress-v13 {
        grid-template-columns: 1fr
    }

        .meeting-progress-v13 article.wide {
            grid-column: auto
        }
}

/* V11.3 refinamiento: el origen es una tarjeta contextual, nunca una pantalla encima. */
@media(min-width:761px) {
    .origin-drawer {
        top: auto !important;
        right: 20px !important;
        bottom: 20px !important;
        width: min(340px,calc(100vw - 40px)) !important;
        height: auto !important;
        max-height: min(520px,calc(100vh - 110px)) !important;
        border: 1px solid #cfe0ed !important;
        border-radius: 20px !important;
        box-shadow: 0 18px 55px rgba(16,53,82,.2) !important;
        overflow: hidden !important;
        transform: translateY(calc(100% + 34px)) scale(.98) !important;
        transform-origin: bottom right !important;
        opacity: 0 !important;
        pointer-events: none !important
    }

        .origin-drawer.open {
            transform: none !important;
            opacity: 1 !important;
            pointer-events: auto !important
        }

    body.origin-open.workspace-page .main {
        margin-right: 0 !important
    }

    body.origin-open.workspace-page .topbar {
        right: 0 !important
    }

    .origin-inspector-content {
        max-height: min(520px,calc(100vh - 110px));
        overflow: auto
    }
}

@media(max-width:760px) {
    .origin-drawer {
        top: auto !important;
        bottom: 0 !important;
        height: min(72vh,650px) !important;
        width: 100% !important;
        border-radius: 20px 20px 0 0 !important;
        border: 1px solid #cfe0ed !important;
        transform: translateY(105%) !important;
        opacity: 1 !important
    }

        .origin-drawer.open {
            transform: none !important
        }
}

.origin-drawer-head {
    position: sticky;
    top: 0;
    z-index: 3;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid #e2ebf1
}

    .origin-drawer-head small {
        color: var(--ns-blue);
        font-weight: 900;
        letter-spacing: .09em
    }

    .origin-drawer-head button, .origin-close {
        width: 34px;
        height: 34px;
        border: 0;
        border-radius: 10px;
        background: #edf5fb;
        color: var(--ns-blue);
        font-size: 20px;
        cursor: pointer
    }

.origin-empty, .origin-error, .origin-loading {
    min-height: 180px !important
}

.origin-route-flow {
    gap: 8px !important
}

    .origin-route-flow .source-node {
        min-width: 0 !important
    }

        .origin-route-flow .source-node small {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap
        }

.origin-metadata dl {
    grid-template-columns: 1fr !important
}

.workspace-origin-button {
    max-width: 230px
}

/* Juntas con densidad controlada. */
.meeting-next-v13 {
    padding: 10px 12px;
    border: 1px solid #d7e7f3;
    border-radius: 12px;
    background: #fff
}

    .meeting-next-v13 small, .meeting-next-v13 b {
        display: block
    }

    .meeting-next-v13 small {
        font-size: 9px;
        color: var(--ns-muted);
        font-weight: 900;
        letter-spacing: .08em
    }

    .meeting-next-v13 b {
        margin-top: 3px;
        font-size: 12px;
        color: var(--ns-ink)
    }

.meeting-context-grid-v13 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 9px
}

    .meeting-context-grid-v13 article {
        padding: 12px;
        border-radius: 12px;
        background: #f5f9fc
    }

    .meeting-context-grid-v13 span, .meeting-context-grid-v13 b {
        display: block
    }

    .meeting-context-grid-v13 span {
        font-size: 9px;
        color: var(--ns-muted);
        text-transform: uppercase;
        font-weight: 850
    }

    .meeting-context-grid-v13 b {
        margin-top: 4px;
        font-size: 12px
    }

.meeting-ready-v13 {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 16px;
    border-radius: 16px;
    background: linear-gradient(135deg,#0757a6,#168bc1);
    color: #fff;
    box-shadow: 0 12px 28px rgba(7,87,166,.2)
}

    .meeting-ready-v13 b {
        font-size: 17px
    }

    .meeting-ready-v13 span {
        font-size: 11px;
        opacity: .88
    }

    .meeting-ready-v13 .btn {
        margin-top: 5px;
        background: #fff;
        color: var(--ns-blue);
        border-color: #fff
    }

.meeting-progress-list-v13 {
    display: flex;
    flex-direction: column;
    gap: 11px
}

.meeting-progress-entry-v13 {
    padding: 14px;
    border: 1px solid #dce7ef;
    border-radius: 14px;
    background: #fff
}

    .meeting-progress-entry-v13 > small {
        display: block;
        margin-top: 10px;
        color: var(--ns-muted);
        font-size: 9px
    }

.meeting-outcome-v13.one-column {
    grid-template-columns: 1fr
}

.meeting-outcome-top-v13 {
    margin-top: 15px
}

.meeting-brief-list-v13 {
    display: flex;
    flex-direction: column;
    gap: 8px
}

    .meeting-brief-list-v13 article {
        padding: 10px 11px;
        border-radius: 11px;
        background: #f6f9fc
    }

    .meeting-brief-list-v13 b, .meeting-brief-list-v13 small {
        display: block
    }

    .meeting-brief-list-v13 b {
        font-size: 12px
    }

    .meeting-brief-list-v13 small {
        margin-top: 4px;
        color: var(--ns-muted);
        font-size: 10px;
        line-height: 1.45
    }

.close-meeting-v13 {
    border-color: #b9d7ed;
    background: #f9fcff
}

.meeting-agreement-v13 details summary {
    list-style: none
}

.meeting-agreement-v13 details[open] form {
    position: absolute;
    right: 0;
    top: 42px;
    z-index: 5;
    padding: 13px;
    border: 1px solid #d3e2ec;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 15px 34px rgba(20,57,88,.17)
}

.meeting-v13 .full {
    width: 100%;
    justify-content: center
}

.meeting-v13 .muted {
    color: var(--ns-muted);
    font-size: 12px;
    line-height: 1.5
}

.meeting-v13 .check-line {
    display: flex;
    align-items: center;
    gap: 8px
}

    .meeting-v13 .check-line input {
        width: auto
    }

.meeting-v13-card > header > b, .meeting-v13-card > header > span {
    white-space: nowrap;
    color: var(--ns-blue);
    font-size: 12px
}

@media(max-width:1000px) {
    .meeting-context-grid-v13 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:560px) {
    .meeting-context-grid-v13 {
        grid-template-columns: 1fr
    }

    .meeting-command-meta {
        display: grid
    }

    .meeting-v13-card {
        padding: 14px
    }

    .meeting-gantt-axis-v13, .meeting-gantt-row-v13 {
        grid-template-columns: 210px minmax(360px,1fr) 60px
    }
}

/* Modo junta guiado: revisar -> registrar -> asignar. */
.meeting-room-v13 {
    background: #eef5fa;
    color: var(--ns-ink)
}

    .meeting-room-v13 .meeting-room-topbar {
        background: #fff;
        border-bottom: 1px solid #d7e4ed;
        box-shadow: 0 5px 18px rgba(22,60,89,.08)
    }

.meeting-room-flow-v13 {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #6c8293;
    font-size: 10px
}

    .meeting-room-flow-v13 span {
        display: flex;
        align-items: center;
        gap: 5px
    }

        .meeting-room-flow-v13 span b {
            width: 22px;
            height: 22px;
            display: grid;
            place-items: center;
            border-radius: 7px;
            background: #edf4f9;
            color: var(--ns-blue)
        }

        .meeting-room-flow-v13 span.active {
            color: var(--ns-blue);
            font-weight: 850
        }

            .meeting-room-flow-v13 span.active b {
                background: var(--ns-blue);
                color: #fff
            }

    .meeting-room-flow-v13 i {
        font-style: normal;
        color: #9bb0bf
    }

.meeting-room-shell-v13 {
    grid-template-columns: minmax(0,1.55fr) minmax(340px,.68fr);
    gap: 16px;
    padding: 18px;
    max-width: 1600px;
    margin: 0 auto
}

.meeting-room-rule-v13 {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    padding: 11px 13px;
    margin-bottom: 13px;
    border: 1px solid #f0d3b8;
    border-radius: 13px;
    background: #fff8f1
}

    .meeting-room-rule-v13 > span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 11px;
        background: var(--ns-orange);
        color: #fff;
        font-weight: 900
    }

    .meeting-room-rule-v13 b, .meeting-room-rule-v13 small {
        display: block
    }

    .meeting-room-rule-v13 small {
        margin-top: 3px;
        color: #765337;
        font-size: 10px
    }

.meeting-room-panel-v13 {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: transparent;
    padding: 0;
    overflow: auto
}

.meeting-capture-guide-v13 {
    padding: 15px 16px;
    border-radius: 16px;
    background: linear-gradient(135deg,#0757a6,#148cc2);
    color: #fff
}

    .meeting-capture-guide-v13 span {
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .1em
    }

    .meeting-capture-guide-v13 h2 {
        margin: 5px 0 4px;
        font-size: 22px
    }

    .meeting-capture-guide-v13 p {
        margin: 0;
        opacity: .88;
        font-size: 11px;
        line-height: 1.4
    }

.room-capture-v13 {
    border: 1px solid #d5e3ec;
    border-radius: 14px;
    background: #fff;
    overflow: hidden
}

    .room-capture-v13 > summary {
        display: grid;
        grid-template-columns: 36px minmax(0,1fr);
        gap: 10px;
        align-items: center;
        padding: 11px 13px;
        list-style: none;
        cursor: pointer
    }

        .room-capture-v13 > summary > span {
            width: 34px;
            height: 34px;
            display: grid;
            place-items: center;
            border-radius: 10px;
            background: #eaf4fc;
            color: var(--ns-blue);
            font-weight: 900
        }

        .room-capture-v13 > summary b, .room-capture-v13 > summary small {
            display: block
        }

        .room-capture-v13 > summary small {
            margin-top: 2px;
            color: var(--ns-muted);
            font-size: 9px
        }

    .room-capture-v13[open] > summary {
        border-bottom: 1px solid #e1eaf0;
        background: #f8fbfd
    }

    .room-capture-v13 > form {
        padding: 13px
    }

    .room-capture-v13 label {
        font-size: 10px
    }

    .room-capture-v13 input, .room-capture-v13 select, .room-capture-v13 textarea {
        font-size: 11px
    }

.meeting-room-v13 .active-agenda-card {
    border-radius: 20px;
    background: linear-gradient(135deg,#fff,#f4f9fd);
    border: 1px solid #d7e4ed;
    box-shadow: 0 12px 30px rgba(22,60,89,.07)
}

.meeting-room-v13 .room-agenda-row {
    border-radius: 13px;
    border-color: #dbe6ed;
    background: #fff
}

    .meeting-room-v13 .room-agenda-row.enrevision {
        border-color: #6eabd9;
        box-shadow: 0 5px 16px rgba(7,87,166,.1)
    }

@media(max-width:1050px) {
    .meeting-room-flow-v13 {
        display: none
    }

    .meeting-room-shell-v13 {
        grid-template-columns: 1fr
    }

    .meeting-room-panel-v13 {
        overflow: visible
    }
}

/* La vista Resumen muestra primero solo lo esencial. */
.workspace-secondary-v13 {
    margin-top: 14px;
    border: 1px solid #d8e5ed;
    border-radius: 16px;
    background: #fff;
    overflow: hidden
}

    .workspace-secondary-v13 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding: 14px 16px;
        list-style: none;
        cursor: pointer;
        color: var(--ns-blue);
        font-weight: 850
    }

        .workspace-secondary-v13 > summary small {
            font-size: 10px;
            color: var(--ns-muted);
            font-weight: 500
        }

        .workspace-secondary-v13 > summary:after {
            content: '+';
            width: 28px;
            height: 28px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            background: #edf5fb;
            color: var(--ns-blue);
            font-size: 18px
        }

    .workspace-secondary-v13[open] > summary:after {
        content: '-'
    }

    .workspace-secondary-v13[open] > summary {
        border-bottom: 1px solid #e3ebf1;
        background: #f8fbfd
    }

.workspace-secondary-body-v13 {
    padding: 14px
}

    .workspace-secondary-body-v13 .overview-grid {
        margin-top: 0
    }

/* Índice de juntas: tres momentos claros y el historial bajo demanda. */
.meeting-flow-three-v13 {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) !important;
    gap: 10px !important;
    align-items: center !important
}

    .meeting-flow-three-v13 > span {
        display: grid !important;
        grid-template-columns: 32px minmax(0,1fr) !important;
        gap: 2px 9px !important;
        align-items: center !important;
        padding: 10px 12px !important;
        border: 1px solid #d9e7f1 !important;
        border-radius: 13px !important;
        background: #fff !important
    }

        .meeting-flow-three-v13 > span b {
            grid-row: 1/3;
            width: 32px;
            height: 32px;
            display: grid;
            place-items: center;
            border-radius: 10px;
            background: #e8f3fc;
            color: var(--ns-blue)
        }

        .meeting-flow-three-v13 > span em, .meeting-flow-three-v13 > span small {
            display: block;
            font-style: normal
        }

        .meeting-flow-three-v13 > span em {
            font-size: 12px;
            font-weight: 900;
            color: var(--ns-ink)
        }

        .meeting-flow-three-v13 > span small {
            font-size: 9px;
            color: var(--ns-muted)
        }

.meeting-history-v13 {
    margin-top: 16px;
    border: 1px solid #d8e5ee;
    border-radius: 18px;
    background: #fff;
    overflow: hidden
}

    .meeting-history-v13 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 15px;
        padding: 15px 18px;
        list-style: none;
        cursor: pointer
    }

        .meeting-history-v13 > summary div > * {
            display: block
        }

        .meeting-history-v13 > summary b {
            margin-top: 3px;
            font-size: 16px
        }

        .meeting-history-v13 > summary small {
            margin-top: 3px;
            color: var(--ns-muted);
            font-size: 10px
        }

        .meeting-history-v13 > summary em {
            width: 34px;
            height: 34px;
            display: grid;
            place-items: center;
            border-radius: 11px;
            background: #edf5fb;
            color: var(--ns-blue);
            font-style: normal;
            font-weight: 900
        }

    .meeting-history-v13[open] > summary {
        border-bottom: 1px solid #e2ebf2;
        background: #f8fbfd
    }

    .meeting-history-v13 .recent-minutes {
        margin: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none
    }

@media(max-width:760px) {
    .meeting-flow-three-v13 {
        grid-template-columns: 1fr !important
    }

        .meeting-flow-three-v13 > i {
            display: none
        }
}

/* ===== v14.css ===== */
/* NS Innova V12 - flujo único, juntas interactivas y Gantt desde la idea */

/* ---------- Preparación de junta: un paso visible a la vez ---------- */
.meeting-wizard-v14 {
    max-width: 1460px;
    margin: 0 auto 36px;
    position: relative;
    color: var(--ns-ink)
}

    .meeting-wizard-v14 [hidden] {
        display: none !important
    }

.wizard-rail-v14 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
    margin: 0 0 16px;
    padding: 8px;
    border: 1px solid var(--ns-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(7,87,166,.05)
}

    .wizard-rail-v14 button {
        display: grid;
        grid-template-columns: 36px minmax(0,1fr);
        align-items: center;
        gap: 10px;
        min-height: 62px;
        padding: 9px 12px;
        border: 1px solid transparent;
        border-radius: 13px;
        background: transparent;
        color: #607a94;
        text-align: left;
        transition: background .18s ease,border .18s ease,transform .18s ease,color .18s ease
    }

        .wizard-rail-v14 button:hover {
            background: #f4f9fd;
            border-color: #dbe9f3;
            transform: translateY(-1px)
        }

        .wizard-rail-v14 button > span {
            width: 34px;
            height: 34px;
            display: grid;
            place-items: center;
            border-radius: 11px;
            background: #eef5fa;
            color: #55748e;
            font-weight: 900
        }

        .wizard-rail-v14 button b, .wizard-rail-v14 button small {
            display: block;
            min-width: 0
        }

        .wizard-rail-v14 button b {
            font-size: 12px;
            color: inherit
        }

        .wizard-rail-v14 button small {
            margin-top: 2px;
            font-size: 9px;
            color: #8297a8
        }

        .wizard-rail-v14 button.active {
            background: linear-gradient(135deg,#0757a6,#0b73ce);
            border-color: #0757a6;
            color: #fff;
            box-shadow: 0 10px 24px rgba(7,87,166,.18)
        }

            .wizard-rail-v14 button.active > span {
                background: #fff;
                color: #0757a6
            }

            .wizard-rail-v14 button.active small {
                color: rgba(255,255,255,.75)
            }

        .wizard-rail-v14 button.done > span {
            background: #e8f7ef;
            color: #137447
        }

            .wizard-rail-v14 button.done > span:after {
                content: '✓';
                font-size: 14px
            }

        .wizard-rail-v14 button.done > span {
            font-size: 0
        }

.meeting-wizard-shell-v14 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 290px;
    gap: 16px;
    align-items: start
}

.meeting-wizard-main-v14 {
    min-width: 0
}

.wizard-step-v14 {
    animation: v14StepIn .22s ease both
}

@keyframes v14StepIn {
    from {
        opacity: 0;
        transform: translateY(8px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.wizard-step-head-v14 {
    margin-bottom: 13px;
    padding: 3px 3px 0
}

    .wizard-step-head-v14.split {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 16px
    }

    .wizard-step-head-v14 h2 {
        margin: 5px 0 4px;
        font-size: clamp(22px,2.4vw,31px);
        line-height: 1.1;
        letter-spacing: -.035em;
        color: var(--ns-ink)
    }

    .wizard-step-head-v14 p {
        max-width: 780px;
        margin: 0;
        color: var(--ns-muted);
        font-size: 12px
    }

.step-badge-v14 {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 8px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .09em
}

.wizard-card-v14, .people-picker-v14, .confirm-grid-v14 > section {
    border: 1px solid var(--ns-line);
    border-radius: 19px;
    background: #fff;
    box-shadow: var(--ns-shadow)
}

.wizard-card-v14 {
    display: flex;
    flex-direction: column;
    gap: 17px;
    padding: 23px
}

    .wizard-card-v14 label, .agenda-meta-v14 label {
        display: flex;
        flex-direction: column;
        gap: 6px;
        font-size: 10px;
        font-weight: 850;
        color: var(--ns-ink)
    }

        .wizard-card-v14 label > span:first-child, .agenda-meta-v14 label > span {
            font-size: 10px;
            font-weight: 850;
            color: var(--ns-ink)
        }

    .wizard-card-v14 input, .wizard-card-v14 select, .wizard-card-v14 textarea, .people-picker-v14 input, .agenda-editor-row-v14 input, .agenda-editor-row-v14 select {
        width: 100%;
        border: 1px solid #cdddea;
        border-radius: 11px;
        background: #fff;
        color: var(--ns-ink);
        padding: 11px 12px;
        outline: 0;
        transition: border .16s ease,box-shadow .16s ease,background .16s ease
    }

        .wizard-card-v14 input:focus, .wizard-card-v14 select:focus, .wizard-card-v14 textarea:focus, .people-picker-v14 input:focus, .agenda-editor-row-v14 input:focus, .agenda-editor-row-v14 select:focus {
            border-color: #5f9ed3;
            box-shadow: 0 0 0 4px rgba(7,87,166,.08);
            background: #fff
        }

    .wizard-card-v14 label > small {
        color: var(--ns-muted);
        font-size: 9px;
        font-weight: 500;
        line-height: 1.45
    }

    .wizard-card-v14 textarea {
        resize: vertical;
        min-height: 96px
    }

    .wizard-card-v14 .check-row {
        display: grid;
        grid-template-columns: 20px minmax(0,1fr);
        align-items: start;
        padding: 12px 13px;
        border-radius: 12px;
        background: #f4f9fd;
        border: 1px solid #dceaf4
    }

        .wizard-card-v14 .check-row input {
            width: 17px;
            height: 17px;
            margin-top: 2px
        }

        .wizard-card-v14 .check-row b, .wizard-card-v14 .check-row small {
            display: block
        }

        .wizard-card-v14 .check-row small {
            margin-top: 2px
        }

.product-context-v14 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 12px;
    padding: 16px 18px;
    border: 1px solid #cfe3f2;
    border-radius: 16px;
    background: linear-gradient(135deg,#f8fcff,#edf7ff);
    transition: opacity .18s ease
}

    .product-context-v14.loading {
        opacity: .55
    }

    .product-context-v14 small {
        font-size: 8px;
        font-weight: 900;
        letter-spacing: .09em;
        color: var(--ns-blue)
    }

    .product-context-v14 h3 {
        margin: 4px 0 2px;
        font-size: 16px
    }

    .product-context-v14 p {
        margin: 0;
        color: var(--ns-muted);
        font-size: 10px
    }

.context-stats-v14 {
    display: grid;
    grid-template-columns: repeat(4,72px);
    gap: 7px
}

    .context-stats-v14 span {
        padding: 9px;
        border-radius: 11px;
        background: #fff;
        border: 1px solid #dce8f1;
        text-align: center
    }

    .context-stats-v14 b, .context-stats-v14 small {
        display: block
    }

    .context-stats-v14 b {
        font-size: 16px;
        color: var(--ns-blue)
    }

    .context-stats-v14 small {
        margin-top: 2px;
        color: var(--ns-muted);
        font-size: 8px;
        letter-spacing: 0;
        text-transform: none
    }

.agenda-builder-v14 {
    display: flex;
    flex-direction: column;
    gap: 9px
}

.agenda-editor-row-v14 {
    display: grid;
    grid-template-columns: 58px minmax(260px,1fr) minmax(235px,.55fr);
    gap: 11px;
    align-items: center;
    padding: 12px;
    border: 1px solid #d7e5ef;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(20,65,99,.04);
    transition: border .16s ease,box-shadow .16s ease,transform .16s ease
}

    .agenda-editor-row-v14:hover {
        border-color: #9ec7e5;
        box-shadow: 0 10px 22px rgba(20,65,99,.08);
        transform: translateY(-1px)
    }

.agenda-order-v14 {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px
}

    .agenda-order-v14 > b {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 11px;
        background: var(--ns-blue);
        color: #fff;
        font-size: 14px
    }

    .agenda-order-v14 > span {
        display: flex;
        gap: 3px
    }

    .agenda-order-v14 button {
        width: 23px;
        height: 23px;
        border: 1px solid #d8e5ee;
        border-radius: 7px;
        background: #f7fbfe;
        color: var(--ns-blue);
        font-size: 11px
    }

        .agenda-order-v14 button:disabled {
            opacity: .35;
            cursor: not-allowed
        }

.agenda-fields-v14 {
    display: grid;
    grid-template-columns: minmax(180px,.9fr) minmax(220px,1.25fr);
    gap: 8px;
    min-width: 0
}

.agenda-linked-v14 {
    grid-column: 1/-1;
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    padding: 3px 7px;
    border-radius: 7px;
    background: #eaf6ee;
    color: #267849;
    font-size: 8px;
    font-weight: 800
}

.agenda-meta-v14 {
    display: grid;
    grid-template-columns: 70px minmax(120px,1fr) 34px;
    gap: 7px;
    align-items: end
}

    .agenda-meta-v14 label {
        gap: 3px
    }

    .agenda-meta-v14 input, .agenda-meta-v14 select {
        padding: 9px;
        font-size: 10px
    }

.agenda-remove-v14 {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: #fff2ef;
    color: #c54d37;
    font-size: 19px;
    line-height: 1
}

    .agenda-remove-v14:hover {
        background: #ffe5df
    }

.agenda-empty-v14 {
    display: grid;
    grid-template-columns: 44px minmax(0,1fr);
    align-items: center;
    gap: 12px;
    padding: 26px;
    border: 1px dashed #a8c9e2;
    border-radius: 16px;
    background: #f8fcff
}

    .agenda-empty-v14 > span {
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border-radius: 13px;
        background: var(--ns-blue);
        color: #fff;
        font-size: 22px
    }

    .agenda-empty-v14 b, .agenda-empty-v14 p {
        display: block;
        margin: 0
    }

    .agenda-empty-v14 p {
        margin-top: 3px;
        color: var(--ns-muted)
    }

.agenda-total-v14 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 11px;
    padding: 12px 15px;
    border-radius: 13px;
    background: #eef6fc;
    border: 1px solid #d6e7f3
}

    .agenda-total-v14 > span {
        font-size: 10px;
        font-weight: 800
    }

    .agenda-total-v14 > b {
        font-size: 16px;
        color: var(--ns-blue)
    }

    .agenda-total-v14 > small {
        margin-left: auto;
        color: #3b7a5a;
        font-size: 9px
    }

        .agenda-total-v14 > small.warning {
            color: #b54b32
        }

.people-picker-v14 {
    margin-top: 14px;
    padding: 20px
}

    .people-picker-v14 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 12px
    }

        .people-picker-v14 > header small {
            font-size: 8px;
            color: var(--ns-blue);
            font-weight: 900;
            letter-spacing: .09em
        }

    .people-picker-v14 h3 {
        margin: 3px 0 0;
        font-size: 16px
    }

    .people-picker-v14 > header input {
        max-width: 270px;
        padding: 9px 11px
    }

.people-grid-v14 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
    max-height: 345px;
    overflow: auto;
    padding: 1px
}

.person-option-v14 {
    position: relative;
    display: grid;
    grid-template-columns: 34px minmax(0,1fr) 24px;
    gap: 9px;
    align-items: center;
    padding: 10px;
    border: 1px solid #dce7ef;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: .16s
}

    .person-option-v14:hover {
        border-color: #9ec7e5;
        background: #f8fcff
    }

    .person-option-v14 input {
        position: absolute;
        opacity: 0;
        pointer-events: none
    }

    .person-option-v14 .avatar {
        width: 34px;
        height: 34px;
        background: #eaf4fc;
        color: var(--ns-blue)
    }

    .person-option-v14 b, .person-option-v14 small {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .person-option-v14 b {
        font-size: 10px
    }

    .person-option-v14 small {
        margin-top: 2px;
        color: var(--ns-muted);
        font-size: 8px
    }

    .person-option-v14 i {
        width: 22px;
        height: 22px;
        display: grid;
        place-items: center;
        border-radius: 7px;
        background: #eef3f7;
        color: #9aabb8;
        font-style: normal
    }

    .person-option-v14:has(input:checked) {
        border-color: var(--ns-blue);
        background: #edf7ff;
        box-shadow: 0 0 0 2px rgba(7,87,166,.07)
    }

        .person-option-v14:has(input:checked) i {
            background: var(--ns-blue);
            color: #fff
        }

.confirm-grid-v14 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 11px
}

    .confirm-grid-v14 > section {
        padding: 18px;
        min-height: 128px
    }

    .confirm-grid-v14 small {
        font-size: 8px;
        color: var(--ns-blue);
        font-weight: 900;
        letter-spacing: .09em
    }

    .confirm-grid-v14 h3 {
        margin: 6px 0 5px;
        font-size: 17px
    }

    .confirm-grid-v14 p {
        margin: 0;
        color: var(--ns-muted);
        font-size: 10px;
        line-height: 1.5
    }

    .confirm-grid-v14 [data-confirm-agenda] {
        display: flex;
        flex-direction: column;
        gap: 3px
    }

        .confirm-grid-v14 [data-confirm-agenda] span {
            font-size: 9px;
            color: #4e6c84
        }

.final-check-v14 {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    margin-top: 12px;
    padding: 15px;
    border: 1px solid #cce8d7;
    border-radius: 15px;
    background: #f2fbf5
}

    .final-check-v14 > span {
        width: 40px;
        height: 40px;
        display: grid;
        place-items: center;
        border-radius: 12px;
        background: #1e8a55;
        color: #fff;
        font-size: 19px
    }

    .final-check-v14 b, .final-check-v14 p {
        display: block;
        margin: 0
    }

    .final-check-v14 p {
        margin-top: 3px;
        color: #507463;
        font-size: 10px
    }

.meeting-live-summary-v14 {
    position: sticky;
    top: 86px;
    padding: 18px;
    border: 1px solid #d4e5f1;
    border-radius: 18px;
    background: linear-gradient(155deg,#fff,#f3f9fe);
    box-shadow: 0 12px 28px rgba(7,87,166,.08)
}

    .meeting-live-summary-v14 .eyebrow {
        font-size: 8px;
        color: var(--ns-blue);
        font-weight: 900;
        letter-spacing: .1em
    }

    .meeting-live-summary-v14 h3 {
        margin: 8px 0 5px;
        font-size: 18px
    }

    .meeting-live-summary-v14 > p {
        margin: 0 0 14px;
        color: var(--ns-muted);
        font-size: 10px;
        line-height: 1.5
    }

.summary-line-v14 {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 9px 0;
    border-top: 1px solid #dce8f1
}

    .summary-line-v14 span {
        color: var(--ns-muted);
        font-size: 9px
    }

    .summary-line-v14 b {
        font-size: 10px
    }

.summary-guide-v14 {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    gap: 8px;
    margin-top: 11px;
    padding: 10px;
    border-radius: 11px;
    background: #fff8ef;
    color: #754f2e
}

    .summary-guide-v14 > span {
        width: 26px;
        height: 26px;
        display: grid;
        place-items: center;
        border-radius: 8px;
        background: var(--ns-orange);
        color: #fff;
        font-weight: 900
    }

    .summary-guide-v14 p {
        margin: 0;
        font-size: 9px;
        line-height: 1.45
    }

.wizard-actions-v14 {
    position: sticky;
    bottom: 10px;
    z-index: 8;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 15px;
    padding: 10px 12px;
    border: 1px solid #d6e5f0;
    border-radius: 15px;
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 12px 30px rgba(20,65,99,.13)
}

    .wizard-actions-v14 > div {
        display: flex;
        align-items: center;
        gap: 12px
    }

    .wizard-actions-v14 [data-wizard-status] {
        color: var(--ns-muted);
        font-size: 9px
    }

    .wizard-actions-v14 .btn {
        min-width: 112px;
        justify-content: center
    }

/* ---------- Modo junta: sistema que conduce la conversación ---------- */
.meeting-live-body-v14 {
    min-height: 100vh;
    background: #edf5fa;
    color: var(--ns-ink);
    overflow: hidden
}

.meeting-live-v14 {
    height: 100vh;
    display: flex;
    flex-direction: column
}

.meeting-live-top-v14 {
    height: 70px;
    display: grid;
    grid-template-columns: minmax(220px,.8fr) minmax(380px,1.2fr) auto auto;
    gap: 18px;
    align-items: center;
    padding: 0 18px;
    border-bottom: 1px solid #d4e3ed;
    background: #fff;
    box-shadow: 0 6px 20px rgba(21,60,90,.07);
    z-index: 3
}

.meeting-live-brand-v14 {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0
}

    .meeting-live-brand-v14 .brand-mark {
        width: 38px;
        height: 38px
    }

    .meeting-live-brand-v14 small, .meeting-live-brand-v14 b {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .meeting-live-brand-v14 small {
        font-size: 8px;
        color: var(--ns-blue);
        font-weight: 900;
        letter-spacing: .1em
    }

    .meeting-live-brand-v14 b {
        font-size: 12px;
        margin-top: 2px
    }

.meeting-live-flow-v14 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #71889a;
    font-size: 9px
}

    .meeting-live-flow-v14 span {
        display: flex;
        align-items: center;
        gap: 6px
    }

        .meeting-live-flow-v14 span b {
            width: 24px;
            height: 24px;
            display: grid;
            place-items: center;
            border-radius: 8px;
            background: #eaf3f9;
            color: var(--ns-blue)
        }

        .meeting-live-flow-v14 span.active {
            font-weight: 850;
            color: var(--ns-blue)
        }

            .meeting-live-flow-v14 span.active b {
                background: var(--ns-blue);
                color: #fff
            }

    .meeting-live-flow-v14 i {
        font-style: normal;
        color: #9cb0be
    }

.meeting-room-clock {
    text-align: right
}

    .meeting-room-clock span, .meeting-room-clock small {
        display: block
    }

    .meeting-room-clock span {
        font-size: 17px;
        font-weight: 900;
        color: var(--ns-blue)
    }

    .meeting-room-clock small {
        font-size: 8px;
        color: var(--ns-muted)
    }

.meeting-live-shell-v14 {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0,1.48fr) minmax(340px,.62fr);
    gap: 14px;
    padding: 14px;
    max-width: 1800px;
    width: 100%;
    margin: 0 auto
}

.meeting-live-main-v14, .meeting-live-capture-v14 {
    min-height: 0;
    overflow: auto
}

.meeting-live-main-v14 {
    display: flex;
    flex-direction: column;
    gap: 11px
}

.meeting-live-capture-v14 {
    padding: 15px;
    border: 1px solid #d7e5ee;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 27px rgba(20,65,99,.08)
}

.room-message-v14 {
    position: fixed;
    top: 82px;
    left: 50%;
    z-index: 30;
    transform: translateX(-50%);
    padding: 10px 15px;
    border-radius: 11px;
    background: #187c4b;
    color: #fff;
    box-shadow: 0 12px 28px rgba(20,65,99,.2);
    font-size: 11px;
    font-weight: 750
}

    .room-message-v14.error {
        background: #bd4637
    }

.meeting-live-progress-v14 {
    padding: 12px 14px;
    border: 1px solid #d7e5ef;
    border-radius: 14px;
    background: #fff
}

    .meeting-live-progress-v14 > div:first-child {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 8px
    }

    .meeting-live-progress-v14 span {
        font-size: 10px
    }

    .meeting-live-progress-v14 small {
        font-size: 8px;
        color: var(--ns-muted)
    }

    .meeting-live-progress-v14 > div:last-child {
        height: 8px;
        border-radius: 999px;
        background: #e7f0f6;
        overflow: hidden
    }

    .meeting-live-progress-v14 i {
        display: block;
        height: 100%;
        border-radius: 999px;
        background: linear-gradient(90deg,#0757a6,#14a6d8);
        transition: width .32s ease
    }

.live-topic-v14 {
    display: grid;
    grid-template-columns: 64px minmax(0,1fr);
    gap: 16px;
    align-items: center;
    padding: 22px;
    border: 1px solid #c9e0ef;
    border-radius: 20px;
    background: linear-gradient(135deg,#fff,#f1f8fd);
    box-shadow: 0 12px 28px rgba(7,87,166,.08)
}

.live-topic-number-v14 {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg,#0757a6,#0b73ce);
    color: #fff;
    font-size: 25px;
    font-weight: 900;
    box-shadow: 0 10px 22px rgba(7,87,166,.2)
}

.live-topic-v14 small {
    color: var(--ns-blue);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .09em
}

.live-topic-v14 h1 {
    margin: 5px 0 5px;
    font-size: clamp(25px,3.2vw,39px);
    line-height: 1.08;
    letter-spacing: -.04em
}

.live-topic-v14 p {
    margin: 0;
    color: var(--ns-muted);
    font-size: 12px;
    line-height: 1.5
}

.live-linked-task-v14 {
    display: inline-flex;
    margin-top: 10px;
    padding: 6px 9px;
    border-radius: 9px;
    background: #eaf7ef;
    color: #287a4b;
    font-size: 9px;
    font-weight: 800
}

.live-instruction-v14 {
    display: grid;
    grid-template-columns: 35px minmax(0,1fr);
    gap: 10px;
    align-items: center;
    padding: 11px 13px;
    border-left: 4px solid var(--ns-orange);
    border-radius: 11px;
    background: #fff8f1
}

    .live-instruction-v14 > span {
        width: 32px;
        height: 32px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: var(--ns-orange);
        color: #fff;
        font-weight: 900
    }

    .live-instruction-v14 b, .live-instruction-v14 p {
        display: block;
        margin: 0
    }

    .live-instruction-v14 p {
        margin-top: 2px;
        color: #76583e;
        font-size: 9px
    }

.live-agenda-v14 {
    display: flex;
    flex-direction: column;
    gap: 7px
}

.live-agenda-row-v14 {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 11px;
    border: 1px solid #d8e5ed;
    border-radius: 13px;
    background: #fff;
    transition: .18s
}

    .live-agenda-row-v14 > span:first-child {
        width: 31px;
        height: 31px;
        display: grid;
        place-items: center;
        border-radius: 9px;
        background: #edf4f9;
        color: #637e92;
        font-weight: 900
    }

    .live-agenda-row-v14 b, .live-agenda-row-v14 small {
        display: block
    }

    .live-agenda-row-v14 b {
        font-size: 10px
    }

    .live-agenda-row-v14 small {
        margin-top: 2px;
        color: var(--ns-muted);
        font-size: 8px
    }

    .live-agenda-row-v14.enrevision {
        border-color: #5b9fd1;
        background: #f1f8fe;
        box-shadow: 0 7px 18px rgba(7,87,166,.09)
    }

        .live-agenda-row-v14.enrevision > span:first-child {
            background: var(--ns-blue);
            color: #fff
        }

    .live-agenda-row-v14.resuelto {
        opacity: .68;
        background: #f5faf7
    }

        .live-agenda-row-v14.resuelto > span:first-child {
            background: #dff3e7;
            color: #1d7a49
        }

.live-done-v14 {
    padding: 5px 8px;
    border-radius: 8px;
    background: #e7f6ed;
    color: #267b4b;
    font-size: 8px;
    font-weight: 900
}

.live-gantt-v14 {
    border: 1px solid #d6e4ed;
    border-radius: 15px;
    background: #fff;
    overflow: hidden
}

    .live-gantt-v14 > summary {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        padding: 12px 14px;
        list-style: none;
        cursor: pointer
    }

        .live-gantt-v14 > summary small, .live-gantt-v14 > summary b, .live-gantt-v14 > summary span {
            display: block
        }

        .live-gantt-v14 > summary small {
            font-size: 8px;
            color: var(--ns-blue);
            font-weight: 900
        }

        .live-gantt-v14 > summary b {
            margin-top: 2px;
            font-size: 12px
        }

        .live-gantt-v14 > summary span {
            margin-top: 2px;
            color: var(--ns-muted);
            font-size: 8px
        }

        .live-gantt-v14 > summary em {
            font-style: normal;
            padding: 5px 8px;
            border-radius: 8px;
            background: #edf5fb;
            color: var(--ns-blue);
            font-size: 8px;
            font-weight: 900
        }

    .live-gantt-v14[open] > summary {
        border-bottom: 1px solid #dce8f0;
        background: #f8fbfd
    }

.live-gantt-body-v14 {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 11px
}

.room-gantt-row-v14 {
    display: grid;
    grid-template-columns: minmax(150px,260px) minmax(250px,1fr) 48px;
    gap: 10px;
    align-items: center
}

    .room-gantt-row-v14 b, .room-gantt-row-v14 small {
        display: block
    }

    .room-gantt-row-v14 b {
        font-size: 9px
    }

    .room-gantt-row-v14 small {
        font-size: 7px;
        color: var(--ns-muted)
    }

    .room-gantt-row-v14 > span {
        text-align: right;
        font-size: 9px;
        font-weight: 850
    }

.room-gantt-track-v14 {
    position: relative;
    height: 10px;
    border-radius: 999px;
    background: #edf3f7;
    overflow: hidden
}

    .room-gantt-track-v14 i {
        position: absolute;
        top: 1px;
        height: 8px;
        border-radius: 999px;
        background: linear-gradient(90deg,#0b73ce,#2aa6cf)
    }

.meeting-live-capture-v14 > header {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr);
    gap: 10px;
    align-items: start;
    margin-bottom: 12px
}

    .meeting-live-capture-v14 > header > span {
        width: 36px;
        height: 36px;
        display: grid;
        place-items: center;
        border-radius: 11px;
        background: var(--ns-orange);
        color: #fff;
        font-weight: 900
    }

    .meeting-live-capture-v14 > header small {
        font-size: 8px;
        color: var(--ns-blue);
        font-weight: 900;
        letter-spacing: .08em
    }

    .meeting-live-capture-v14 > header h2 {
        margin: 3px 0 2px;
        font-size: 19px
    }

    .meeting-live-capture-v14 > header p {
        margin: 0;
        color: var(--ns-muted);
        font-size: 9px
    }

.capture-tabs-v14 {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 5px;
    margin-bottom: 11px;
    padding: 4px;
    border-radius: 11px;
    background: #edf4f8
}

    .capture-tabs-v14 button {
        min-height: 35px;
        border: 0;
        border-radius: 8px;
        background: transparent;
        color: #5f788b;
        font-size: 9px;
        font-weight: 800
    }

        .capture-tabs-v14 button.active {
            background: #fff;
            color: var(--ns-blue);
            box-shadow: 0 4px 12px rgba(20,65,99,.09)
        }

.capture-panel-v14 {
    animation: v14StepIn .18s ease
}

.meeting-live-capture-v14 .form-stack {
    padding: 0;
    gap: 10px
}

    .meeting-live-capture-v14 .form-stack label {
        font-size: 9px
    }

    .meeting-live-capture-v14 .form-stack input, .meeting-live-capture-v14 .form-stack select, .meeting-live-capture-v14 .form-stack textarea {
        padding: 9px 10px;
        font-size: 10px
    }

.meeting-live-capture-v14 textarea {
    resize: vertical
}

.live-result-summary-v14 {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 6px;
    margin-top: 13px
}

    .live-result-summary-v14 > div {
        padding: 9px;
        border-radius: 11px;
        background: #f2f7fb;
        text-align: center
    }

    .live-result-summary-v14 b, .live-result-summary-v14 small {
        display: block
    }

    .live-result-summary-v14 b {
        font-size: 16px;
        color: var(--ns-blue)
    }

    .live-result-summary-v14 small {
        font-size: 7px;
        color: var(--ns-muted)
    }

.live-recent-v14 {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid #dce7ef
}

    .live-recent-v14 h3 {
        margin: 0 0 8px;
        font-size: 12px
    }

    .live-recent-v14 > div {
        display: flex;
        flex-direction: column;
        gap: 6px
    }

    .live-recent-v14 article {
        padding: 9px;
        border-radius: 10px;
        background: #f7fafc
    }

        .live-recent-v14 article span, .live-recent-v14 article b, .live-recent-v14 article p {
            display: block;
            margin: 0
        }

        .live-recent-v14 article span {
            font-size: 7px;
            color: var(--ns-blue);
            font-weight: 900;
            text-transform: uppercase
        }

        .live-recent-v14 article b {
            margin-top: 2px;
            font-size: 9px
        }

        .live-recent-v14 article p {
            margin-top: 2px;
            color: var(--ns-muted);
            font-size: 8px;
            line-height: 1.4
        }

/* ---------- Gantt de la idea: visible antes de convertirla ---------- */
.idea-plan-v14 {
    margin: 15px 0;
    border: 1px solid #d6e5ef;
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--ns-shadow);
    overflow: hidden
}

    .idea-plan-v14 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
        padding: 18px 20px;
        border-bottom: 1px solid #dde8f0;
        background: linear-gradient(135deg,#fff,#f4faff)
    }

        .idea-plan-v14 > header small {
            font-size: 8px;
            color: var(--ns-blue);
            font-weight: 900;
            letter-spacing: .09em
        }

        .idea-plan-v14 > header h2 {
            margin: 4px 0 3px;
            font-size: 20px
        }

        .idea-plan-v14 > header p {
            margin: 0;
            color: var(--ns-muted);
            font-size: 10px
        }

        .idea-plan-v14 > header > span {
            padding: 6px 9px;
            border-radius: 9px;
            background: #edf5fb;
            color: var(--ns-blue);
            font-size: 9px;
            font-weight: 850
        }

.idea-gantt-v14 {
    overflow: auto;
    padding: 15px
}

.idea-gantt-axis-v14, .idea-gantt-row-v14 {
    min-width: 760px;
    display: grid;
    grid-template-columns: 240px minmax(370px,1fr) 70px;
    gap: 10px;
    align-items: center
}

.idea-gantt-axis-v14 {
    padding: 0 8px 8px;
    color: var(--ns-muted);
    font-size: 8px
}

    .idea-gantt-axis-v14 > div {
        display: flex;
        justify-content: space-between
    }

.idea-gantt-row-v14 {
    padding: 9px 8px;
    border-top: 1px solid #eef3f6
}

    .idea-gantt-row-v14 > div:first-child b, .idea-gantt-row-v14 > div:first-child small {
        display: block
    }

    .idea-gantt-row-v14 > div:first-child b {
        font-size: 10px
    }

    .idea-gantt-row-v14 > div:first-child small {
        margin-top: 2px;
        color: var(--ns-muted);
        font-size: 8px
    }

.idea-gantt-track-v14 {
    position: relative;
    height: 14px;
    border-radius: 999px;
    background: #edf3f7;
    overflow: hidden
}

    .idea-gantt-track-v14 > span {
        position: absolute;
        top: 2px;
        height: 10px;
        border-radius: 999px;
        background: linear-gradient(90deg,#0757a6,#1ca1d0);
        min-width: 7px
    }

        .idea-gantt-track-v14 > span i {
            display: block;
            height: 100%;
            border-radius: 999px;
            background: var(--ns-orange)
        }

.idea-gantt-row-v14 > span {
    text-align: right;
    font-size: 9px;
    font-weight: 850
}

.idea-plan-actions-v14 {
    padding: 0 15px 15px
}

    .idea-plan-actions-v14 details {
        border: 1px dashed #aacbe3;
        border-radius: 13px;
        background: #f8fcff
    }

    .idea-plan-actions-v14 summary {
        padding: 12px 14px;
        list-style: none;
        cursor: pointer;
        color: var(--ns-blue);
        font-size: 10px;
        font-weight: 850
    }

    .idea-plan-actions-v14 form {
        display: grid;
        grid-template-columns: 1.4fr 1fr 1fr 1fr;
        gap: 9px;
        padding: 0 13px 13px
    }

    .idea-plan-actions-v14 label {
        display: flex;
        flex-direction: column;
        gap: 4px;
        font-size: 8px;
        font-weight: 800
    }

    .idea-plan-actions-v14 input, .idea-plan-actions-v14 select {
        width: 100%;
        padding: 9px;
        border: 1px solid #cdddea;
        border-radius: 9px
    }

    .idea-plan-actions-v14 form button {
        align-self: end
    }

.idea-plan-edit-v14 {
    margin-top: 5px
}

    .idea-plan-edit-v14 summary {
        list-style: none;
        color: var(--ns-blue);
        font-size: 8px;
        cursor: pointer
    }

    .idea-plan-edit-v14 form {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr auto;
        gap: 6px;
        margin-top: 6px;
        padding: 8px;
        border-radius: 10px;
        background: #f5f9fc
    }

    .idea-plan-edit-v14 input, .idea-plan-edit-v14 select {
        min-width: 0;
        padding: 6px;
        border: 1px solid #d1e0ea;
        border-radius: 8px;
        font-size: 8px
    }

/* Small agenda editor inside meeting details */
.agenda-inline-edit-v14 {
    margin-top: 7px
}

    .agenda-inline-edit-v14 > summary {
        width: max-content;
        list-style: none;
        color: var(--ns-blue);
        font-size: 8px;
        font-weight: 850;
        cursor: pointer
    }

    .agenda-inline-edit-v14 form {
        display: grid;
        grid-template-columns: minmax(160px,1fr) 75px minmax(120px,.7fr) auto;
        gap: 7px;
        align-items: end;
        margin-top: 7px;
        padding: 9px;
        border-radius: 11px;
        background: #f6fafd;
        border: 1px solid #dbe8f0
    }

    .agenda-inline-edit-v14 label {
        display: flex;
        flex-direction: column;
        gap: 3px;
        font-size: 7px
    }

    .agenda-inline-edit-v14 input, .agenda-inline-edit-v14 select {
        width: 100%;
        min-width: 0;
        padding: 7px;
        border: 1px solid #d0dfea;
        border-radius: 8px;
        font-size: 8px
    }

.agenda-inline-buttons-v14 {
    display: flex;
    gap: 4px
}

    .agenda-inline-buttons-v14 button {
        min-width: 30px;
        height: 30px;
        padding: 0 7px;
        border: 1px solid #cfe0eb;
        border-radius: 8px;
        background: #fff;
        color: var(--ns-blue);
        font-size: 9px
    }

        .agenda-inline-buttons-v14 button.danger {
            color: #b84b3c;
            background: #fff2ef;
            border-color: #f0d1ca
        }

@media(max-width:1180px) {
    .meeting-wizard-shell-v14 {
        grid-template-columns: 1fr
    }

    .meeting-live-summary-v14 {
        position: static;
        display: grid;
        grid-template-columns: minmax(180px,1fr) repeat(3,minmax(90px,.35fr));
        gap: 9px;
        align-items: center
    }

        .meeting-live-summary-v14 > p, .summary-guide-v14 {
            display: none
        }

    .summary-line-v14 {
        border: 0;
        padding: 8px;
        border-radius: 10px;
        background: #fff
    }

    .agenda-editor-row-v14 {
        grid-template-columns: 52px minmax(0,1fr)
    }

    .agenda-meta-v14 {
        grid-column: 2
    }

    .people-grid-v14 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .meeting-live-top-v14 {
        grid-template-columns: minmax(220px,1fr) auto auto
    }

    .meeting-live-flow-v14 {
        display: none
    }

    .meeting-live-shell-v14 {
        grid-template-columns: 1fr minmax(320px,.75fr)
    }
}

@media(max-width:900px) {
    .wizard-rail-v14 {
        grid-template-columns: repeat(4,1fr)
    }

        .wizard-rail-v14 button {
            display: flex;
            justify-content: center;
            min-height: 48px;
            padding: 7px
        }

            .wizard-rail-v14 button > div {
                display: none
            }

    .wizard-step-head-v14.split {
        align-items: flex-start;
        flex-direction: column
    }

    .product-context-v14 {
        align-items: flex-start;
        flex-direction: column
    }

    .context-stats-v14 {
        grid-template-columns: repeat(4,minmax(65px,1fr));
        width: 100%
    }

    .meeting-live-body-v14 {
        overflow: auto
    }

    .meeting-live-v14 {
        height: auto;
        min-height: 100vh
    }

    .meeting-live-shell-v14 {
        grid-template-columns: 1fr
    }

    .meeting-live-main-v14, .meeting-live-capture-v14 {
        overflow: visible
    }

    .meeting-live-capture-v14 {
        order: -1
    }

    .meeting-live-top-v14 {
        position: sticky;
        top: 0;
        grid-template-columns: minmax(0,1fr) auto auto
    }

    .meeting-room-clock small {
        display: none
    }

    .idea-plan-actions-v14 form {
        grid-template-columns: 1fr 1fr
    }

    .agenda-inline-edit-v14 form {
        grid-template-columns: 1fr 80px
    }

    .agenda-inline-buttons-v14 {
        grid-column: 1/-1
    }
}

@media(max-width:650px) {
    .meeting-wizard-v14 {
        margin-inline: -7px
    }

    .wizard-rail-v14 {
        gap: 5px;
        padding: 5px
    }

        .wizard-rail-v14 button > span {
            width: 31px;
            height: 31px
        }

    .wizard-card-v14, .people-picker-v14 {
        padding: 15px;
        border-radius: 15px
    }

    .agenda-editor-row-v14 {
        grid-template-columns: 40px minmax(0,1fr);
        padding: 9px
    }

    .agenda-fields-v14 {
        grid-template-columns: 1fr
    }

    .agenda-meta-v14 {
        grid-column: 1/-1;
        grid-template-columns: 68px minmax(0,1fr) 34px
    }

    .agenda-order-v14 > b {
        width: 31px;
        height: 31px
    }

    .people-grid-v14 {
        grid-template-columns: 1fr
    }

    .people-picker-v14 > header {
        align-items: flex-start;
        flex-direction: column
    }

        .people-picker-v14 > header input {
            max-width: none
        }

    .confirm-grid-v14 {
        grid-template-columns: 1fr
    }

    .meeting-live-summary-v14 {
        grid-template-columns: 1fr 1fr
    }

        .meeting-live-summary-v14 > h3 {
            grid-column: 1/-1
        }

    .wizard-actions-v14 {
        bottom: 5px
    }

        .wizard-actions-v14 [data-wizard-status] {
            display: none
        }

        .wizard-actions-v14 .btn {
            min-width: 96px
        }

    .context-stats-v14 {
        grid-template-columns: repeat(2,1fr)
    }

    .meeting-live-top-v14 {
        height: auto;
        min-height: 62px;
        padding: 9px 10px;
        gap: 8px
    }

        .meeting-live-top-v14 .btn {
            padding: 7px 9px
        }

    .meeting-room-clock {
        display: none
    }

    .meeting-live-shell-v14 {
        padding: 8px
    }

    .live-topic-v14 {
        grid-template-columns: 45px minmax(0,1fr);
        gap: 10px;
        padding: 16px
    }

    .live-topic-number-v14 {
        width: 44px;
        height: 44px;
        border-radius: 13px;
        font-size: 19px
    }

    .live-topic-v14 h1 {
        font-size: 25px
    }

    .capture-tabs-v14 {
        grid-template-columns: 1fr
    }

    .room-gantt-row-v14 {
        min-width: 620px
    }

    .live-gantt-body-v14 {
        overflow: auto
    }

    .meeting-live-brand-v14 b {
        font-size: 10px
    }

    .idea-plan-v14 > header {
        flex-direction: column
    }

    .idea-plan-actions-v14 form {
        grid-template-columns: 1fr
    }

    .idea-plan-edit-v14 form {
        grid-template-columns: 1fr
    }
}

@media(prefers-reduced-motion:reduce) {
    .wizard-step-v14, .agenda-editor-row-v14, .person-option-v14 {
        animation: none !important;
        transition: none !important
    }

    .wizard-step-v14 {
        scroll-behavior: auto
    }
}

.live-close-v14 {
    margin-top: 13px;
    border: 1px solid #f0d3b8;
    border-radius: 14px;
    background: #fff9f2;
    overflow: hidden
}

    .live-close-v14 > summary {
        display: grid;
        grid-template-columns: 34px minmax(0,1fr);
        gap: 9px;
        align-items: center;
        padding: 11px 12px;
        list-style: none;
        cursor: pointer
    }

        .live-close-v14 > summary > span {
            width: 32px;
            height: 32px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            background: var(--ns-orange);
            color: #fff;
            font-weight: 900
        }

    .live-close-v14 b, .live-close-v14 small {
        display: block
    }

    .live-close-v14 small {
        margin-top: 2px;
        color: #7b624d;
        font-size: 8px
    }

    .live-close-v14 > form {
        padding: 0 12px 12px
    }

/* V12.1 clarity pass: less chrome, editable context, visible idea routes */
.meeting-wizard-shell-v14.single {
    display: block;
    max-width: 1180px;
    margin: 0 auto
}

.wizard-brief-v14 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    margin: 0 0 18px;
    padding: 13px 16px;
    border: 1px solid #d9e7f1;
    border-radius: 15px;
    background: linear-gradient(135deg,#fff,#f5faff)
}

    .wizard-brief-v14 > div > small, .wizard-brief-v14 > div > b, .wizard-brief-v14 > div > span {
        display: block
    }

    .wizard-brief-v14 > div > small {
        font-size: 8px;
        font-weight: 900;
        letter-spacing: .1em;
        color: var(--ns-blue)
    }

    .wizard-brief-v14 > div > b {
        margin-top: 3px;
        font-size: 15px
    }

    .wizard-brief-v14 > div > span {
        margin-top: 2px;
        color: var(--ns-muted);
        font-size: 9px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 720px
    }

    .wizard-brief-v14 dl {
        display: flex;
        gap: 7px;
        margin: 0
    }

        .wizard-brief-v14 dl > div {
            min-width: 88px;
            padding: 8px 10px;
            border-radius: 10px;
            background: #fff;
            border: 1px solid #e1ebf2
        }

    .wizard-brief-v14 dt, .wizard-brief-v14 dd {
        margin: 0
    }

    .wizard-brief-v14 dt {
        font-size: 7px;
        color: var(--ns-muted);
        text-transform: uppercase;
        font-weight: 850
    }

    .wizard-brief-v14 dd {
        margin-top: 2px;
        color: var(--ns-blue);
        font-size: 11px;
        font-weight: 900
    }

.meeting-flow-preview-v14 {
    display: grid;
    grid-template-columns: 1fr 24px 1fr 24px 1fr;
    gap: 8px;
    align-items: center;
    margin-top: 14px
}

    .meeting-flow-preview-v14 article {
        display: grid;
        grid-template-columns: 34px minmax(0,1fr);
        gap: 9px;
        align-items: center;
        padding: 11px 12px;
        border: 1px solid #d9e7f1;
        border-radius: 13px;
        background: #fff
    }

        .meeting-flow-preview-v14 article > span {
            width: 32px;
            height: 32px;
            display: grid;
            place-items: center;
            border-radius: 10px;
            background: #eaf5fd;
            color: var(--ns-blue);
            font-weight: 900
        }

    .meeting-flow-preview-v14 b, .meeting-flow-preview-v14 small {
        display: block
    }

    .meeting-flow-preview-v14 b {
        font-size: 10px
    }

    .meeting-flow-preview-v14 small {
        margin-top: 2px;
        color: var(--ns-muted);
        font-size: 8px;
        line-height: 1.4
    }

    .meeting-flow-preview-v14 > i {
        text-align: center;
        color: var(--ns-orange);
        font-style: normal;
        font-weight: 900
    }

.context-last-v14 {
    margin-top: 5px !important;
    color: #456f8f !important;
    font-weight: 750
}

.agenda-stale-v14 {
    display: grid;
    grid-template-columns: 36px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    margin: 0 0 10px;
    padding: 10px 12px;
    border: 1px solid #f0d2aa;
    border-radius: 13px;
    background: #fff9ef
}

    .agenda-stale-v14 > span {
        width: 34px;
        height: 34px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: #fff0da;
        color: #b76514;
        font-size: 18px;
        font-weight: 900
    }

    .agenda-stale-v14 b, .agenda-stale-v14 small {
        display: block
    }

    .agenda-stale-v14 b {
        font-size: 10px
    }

    .agenda-stale-v14 small {
        margin-top: 2px;
        color: #7d684e;
        font-size: 8px
    }

.agenda-tags-v14 {
    grid-column: 1/-1;
    display: flex;
    gap: 5px;
    flex-wrap: wrap
}

.agenda-source-v14, .agenda-linked-v14 {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    padding: 3px 7px;
    border-radius: 7px;
    font-size: 8px;
    font-weight: 800
}

.agenda-source-v14 {
    background: #eef5fb;
    color: #356a91
}

.agenda-linked-v14 {
    background: #eaf6ee;
    color: #267849
}

.idea-route-preview-v14 {
    margin-top: 12px;
    padding: 10px 11px;
    border: 1px solid #d9e7f1;
    border-radius: 11px;
    background: #f7fbfe
}

    .idea-route-preview-v14 > div {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px
    }

    .idea-route-preview-v14 span, .idea-route-preview-v14 b, .idea-route-preview-v14 small {
        display: block
    }

    .idea-route-preview-v14 span {
        font-size: 8px;
        font-weight: 850;
        color: #55758d
    }

    .idea-route-preview-v14 b {
        color: var(--ns-blue);
        font-size: 10px
    }

    .idea-route-preview-v14 > i {
        display: block;
        height: 7px;
        margin: 6px 0;
        border-radius: 999px;
        background: #e2edf4;
        overflow: hidden
    }

        .idea-route-preview-v14 > i > em {
            display: block;
            height: 100%;
            border-radius: 999px;
            background: linear-gradient(90deg,var(--ns-blue),#24a5d4)
        }

    .idea-route-preview-v14 small {
        color: var(--ns-muted);
        font-size: 8px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

.idea-plan-link-v14 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--ns-blue);
    font-size: 9px;
    font-weight: 850
}

    .idea-plan-link-v14 span {
        font-size: 13px
    }

@media(max-width:900px) {
    .wizard-brief-v14 {
        grid-template-columns: 1fr
    }

        .wizard-brief-v14 dl {
            display: grid;
            grid-template-columns: repeat(3,1fr)
        }

    .meeting-flow-preview-v14 {
        grid-template-columns: 1fr
    }

        .meeting-flow-preview-v14 > i {
            transform: rotate(90deg)
        }
}

@media(max-width:650px) {
    .wizard-brief-v14 dl {
        grid-template-columns: 1fr 1fr 1fr
    }

        .wizard-brief-v14 dl > div {
            min-width: 0
        }

    .agenda-stale-v14 {
        grid-template-columns: 34px minmax(0,1fr)
    }

        .agenda-stale-v14 .btn {
            grid-column: 1/-1
        }

    .wizard-brief-v14 > div > span {
        white-space: normal
    }
}

.agenda-meta-v14 {
    grid-template-columns: 64px minmax(120px,.8fr) minmax(170px,1.15fr) 34px
}

.agenda-task-select-v14 select {
    max-width: 100%
}

@media(max-width:760px) {
    .agenda-meta-v14 {
        grid-template-columns: 64px minmax(120px,1fr) 34px
    }

    .agenda-task-select-v14 {
        grid-column: 1/-1;
        grid-row: 2
    }

    .agenda-remove-v14 {
        grid-column: 3;
        grid-row: 1
    }
}

.meeting-origin-topic-v14 {
    margin-top: 4px !important;
    color: var(--ns-blue) !important;
    font-weight: 800
}

/* ===== v15.css ===== */
/* NS Innova V12.2 - ejemplo único, paso a paso y corrección segura */
.simple-mode-button-v15 {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid #b9d5ef;
    background: #fff;
    color: #0757a6;
    border-radius: 12px;
    padding: .65rem .85rem;
    font: inherit;
    cursor: pointer;
    white-space: nowrap
}

    .simple-mode-button-v15 span {
        display: grid;
        place-items: center;
        min-width: 34px;
        height: 28px;
        border-radius: 9px;
        background: #eaf4ff;
        font-weight: 800
    }

    .simple-mode-button-v15 b {
        font-size: .86rem
    }

    .simple-mode-button-v15.active {
        background: #0757a6;
        color: #fff;
        border-color: #0757a6
    }

        .simple-mode-button-v15.active span {
            background: rgba(255,255,255,.18)
        }

.one-step-guide-v15 {
    border: 1px solid #bcd8f1;
    border-left: 5px solid #0757a6;
    background: linear-gradient(135deg,#fff 0%,#f2f8ff 100%);
    border-radius: 20px;
    padding: 1.1rem 1.2rem;
    margin-bottom: 1.2rem;
    box-shadow: 0 12px 30px rgba(7,87,166,.08)
}

    .one-step-guide-v15 > header {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        align-items: flex-start
    }

        .one-step-guide-v15 > header small {
            color: #0757a6;
            font-weight: 800;
            letter-spacing: .08em
        }

        .one-step-guide-v15 > header h2 {
            margin: .25rem 0 .3rem;
            font-size: 1.35rem
        }

        .one-step-guide-v15 > header p {
            margin: 0;
            color: #50677e
        }

    .one-step-guide-v15 > nav {
        display: grid;
        grid-template-columns: repeat(4,1fr);
        gap: .6rem;
        margin: 1rem 0
    }

        .one-step-guide-v15 > nav button {
            border: 1px solid #d7e5f2;
            background: #fff;
            border-radius: 14px;
            padding: .7rem;
            display: flex;
            align-items: center;
            gap: .55rem;
            color: #38546d;
            cursor: pointer;
            text-align: left
        }

            .one-step-guide-v15 > nav button span {
                display: grid;
                place-items: center;
                width: 30px;
                height: 30px;
                border-radius: 50%;
                background: #edf5fc;
                font-weight: 800
            }

            .one-step-guide-v15 > nav button.active {
                border-color: #0757a6;
                color: #0757a6;
                box-shadow: 0 0 0 3px rgba(7,87,166,.08)
            }

            .one-step-guide-v15 > nav button.done span {
                background: #e8f8ef;
                color: #137a43
            }

.one-step-panels-v15 article {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #dbe8f4;
    animation: v15-step-in .22s ease
}

    .one-step-panels-v15 article > span {
        display: grid;
        place-items: center;
        min-width: 44px;
        height: 44px;
        border-radius: 14px;
        background: #0757a6;
        color: #fff;
        font-size: 1.1rem;
        font-weight: 900
    }

.one-step-panels-v15 h3 {
    margin: 0 0 .35rem
}

.one-step-panels-v15 p {
    margin: 0 0 .75rem;
    color: #526b82;
    max-width: 780px
}

.one-step-guide-v15 > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: .85rem
}

    .one-step-guide-v15 > footer > span {
        font-weight: 800;
        color: #38546d
    }

.one-step-guide-v15.collapsed > nav, .one-step-guide-v15.collapsed > .one-step-panels-v15, .one-step-guide-v15.collapsed > footer {
    display: none
}

.one-step-guide-v15.collapsed {
    padding: .8rem 1rem
}

@keyframes v15-step-in {
    from {
        opacity: 0;
        transform: translateY(6px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

body.simple-mode-v15 .idea-side-panel .side-stat,
body.simple-mode-v15 .idea-side-panel .idea-management-card,
body.simple-mode-v15 .meeting-command-meta span:nth-child(n+3),
body.simple-mode-v15 .meeting-outcome-top-v13 {
    display: none
}

body.simple-mode-v15 .idea-detail-layout {
    grid-template-columns: minmax(0,1fr) minmax(240px,300px)
}

body.simple-mode-v15 .meeting-phase-panel:not(.active) {
    display: none !important
}

.minute-actions-v15 {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .35rem
}

    .minute-actions-v15 form {
        margin: 0
    }

.icon-delete-v15 {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    border: 1px solid #f3b9b9;
    background: #fff5f5;
    color: #b42318;
    font-weight: 900;
    cursor: pointer
}

    .icon-delete-v15:hover {
        background: #b42318;
        color: #fff
    }

.task-delete-zone-v15 {
    margin-top: 1rem
}

    .task-delete-zone-v15 p {
        color: #66788a;
        font-size: .9rem
    }

.text-danger {
    color: #b42318 !important
}

.delete-help-v15 {
    display: flex;
    gap: .75rem;
    padding: .8rem 1rem;
    border-radius: 14px;
    background: #fff8ed;
    border: 1px solid #f5d5a8;
    color: #6f4a19
}

    .delete-help-v15 strong {
        color: #9a4f00
    }

@media(max-width:900px) {
    .simple-mode-button-v15 b {
        display: none
    }

    .one-step-guide-v15 > nav {
        grid-template-columns: repeat(2,1fr)
    }

    .one-step-guide-v15 > header {
        flex-direction: column
    }

    .one-step-guide-v15 > footer {
        gap: .5rem
    }

        .one-step-guide-v15 > footer .btn {
            padding: .65rem
        }

    .idea-detail-layout {
        grid-template-columns: 1fr !important
    }
}

@media(prefers-reduced-motion:reduce) {
    .one-step-panels-v15 article {
        animation: none
    }
}

.guided-example-v15 {
    margin: 1.1rem 0 1.3rem;
    padding: 1.15rem;
    border: 1px solid #bdd8ef;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(8,82,150,.08)
}

    .guided-example-v15 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 1rem;
        margin-bottom: .9rem
    }

    .guided-example-v15 h2 {
        margin: .2rem 0 .25rem
    }

    .guided-example-v15 p {
        margin: 0;
        color: #587086
    }

.guided-example-badge-v15 {
    padding: .45rem .7rem;
    border-radius: 999px;
    background: #fff1e8;
    color: #a64b00;
    font-weight: 850;
    white-space: nowrap
}

.guided-example-steps-v15 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .7rem
}

    .guided-example-steps-v15 > a {
        display: grid;
        grid-template-columns: 42px minmax(0,1fr) 18px;
        align-items: center;
        gap: .65rem;
        padding: .85rem;
        border: 1px solid #d9e7f3;
        border-radius: 16px;
        background: #f8fbff;
        color: #163f62;
        text-decoration: none;
        transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease
    }

        .guided-example-steps-v15 > a:hover {
            transform: translateY(-2px);
            border-color: #1474c8;
            box-shadow: 0 10px 24px rgba(7,87,166,.1)
        }

        .guided-example-steps-v15 > a > span {
            display: grid;
            place-items: center;
            width: 42px;
            height: 42px;
            border-radius: 14px;
            background: #0757a6;
            color: #fff;
            font-weight: 900
        }

    .guided-example-steps-v15 small {
        display: block;
        color: #607a91;
        font-size: .68rem;
        font-weight: 850;
        letter-spacing: .07em
    }

    .guided-example-steps-v15 b {
        display: block;
        margin: .12rem 0;
        font-size: .95rem
    }

    .guided-example-steps-v15 em {
        display: block;
        color: #60778b;
        font-size: .78rem;
        font-style: normal;
        line-height: 1.25
    }

    .guided-example-steps-v15 i {
        font-style: normal;
        color: #f26b21;
        font-weight: 900
    }

body.simple-mode-v15 .guided-example-v15 {
    border-left: 5px solid #f26b21
}

@media(max-width:1050px) {
    .guided-example-steps-v15 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:620px) {
    .guided-example-steps-v15 {
        grid-template-columns: 1fr
    }

    .guided-example-v15 > header {
        flex-direction: column
    }
}

/* V12.2.1 - historial de ejecuciones UAT */
.validation-history-list-v12 {
    display: grid;
    gap: 10px;
    padding: 10px 0
}

    .validation-history-list-v12 article {
        display: grid;
        gap: 8px;
        padding: 12px;
        border: 1px solid var(--border,#dfe5ec);
        border-radius: 12px;
        background: var(--surface,#fff)
    }

        .validation-history-list-v12 article > div:first-child {
            display: flex;
            gap: 10px;
            align-items: center;
            flex-wrap: wrap
        }

        .validation-history-list-v12 article p {
            margin: 0;
            color: var(--muted,#5d6875)
        }

.validation-evidence-links-v12 {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}


/* V13 Flexible - menos bloqueos, mas contexto */
.flex-governance-note-v13 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: .75rem;
    margin: 0 0 1rem
}

    .flex-governance-note-v13 > div {
        padding: .9rem 1rem;
        border: 1px solid #d8e6f2;
        border-radius: 14px;
        background: #f8fbff;
        display: grid;
        gap: .25rem
    }

    .flex-governance-note-v13 b {
        color: #163f62
    }

    .flex-governance-note-v13 span {
        color: #5c7286;
        font-size: .86rem;
        line-height: 1.4
    }

.gate-flex-item-head-v13 {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-width: 0
}

    .gate-flex-item-head-v13 > div {
        display: grid;
        gap: .15rem
    }

.gate-flex-state-v13 {
    display: grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #edf4fa;
    color: #174f7d;
    font-weight: 900
}

.gate-requirement.complete .gate-flex-state-v13 {
    background: #e9f8ef;
    color: #137a43
}

.gate-requirement.not-applicable .gate-flex-state-v13 {
    background: #f1f3f5;
    color: #5d6875
}

.gate-flex-controls-v13 {
    display: grid;
    grid-template-columns: minmax(140px,.5fr) minmax(240px,1.5fr) auto;
    gap: .65rem;
    align-items: end;
    margin-top: .75rem
}

    .gate-flex-controls-v13 label {
        display: grid;
        gap: .3rem
    }

        .gate-flex-controls-v13 label > span {
            font-size: .72rem;
            font-weight: 800;
            color: #607589;
            text-transform: uppercase;
            letter-spacing: .05em
        }

.gate-flex-evidence-v13 {
    margin: .65rem 0 0;
    padding: .6rem .75rem;
    border-radius: 10px;
    background: #f8fafc;
    color: #4f6375
}

.gate-flex-summary-v13 .gate-next {
    min-width: 220px
}

.flex-gate-request-v13 {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid #d8e6f2;
    border-radius: 16px;
    background: #f8fbff;
    margin-bottom: 1rem
}

    .flex-gate-request-v13 > label:not(.check-row) {
        display: grid;
        gap: .35rem
    }

    .flex-gate-request-v13 > label > span {
        font-weight: 800;
        color: #36546e;
        font-size: .8rem
    }

.flex-help-v13 {
    color: #607589;
    line-height: 1.4
}

.active-flex-gate-v13 {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid #f0d5a5;
    background: #fff9ef;
    border-radius: 14px;
    margin-bottom: 1rem
}

    .active-flex-gate-v13 > div {
        display: grid;
        gap: .15rem;
        flex: 1
    }

    .active-flex-gate-v13 small {
        color: #6a7480
    }

.suggested-plan-action-v13 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    border: 1px dashed #b8d4eb;
    border-radius: 14px;
    background: #f7fbff
}

    .suggested-plan-action-v13 > div {
        display: grid;
        gap: .2rem
    }

    .suggested-plan-action-v13 small {
        color: #607589
    }

.meeting-quick-mode-v13, .direct-product-note-v13 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    margin: .9rem 0;
    border: 1px solid #b8d4eb;
    border-radius: 16px;
    background: linear-gradient(135deg,#f7fbff,#fff)
}

    .meeting-quick-mode-v13 > div, .direct-product-note-v13 > div {
        display: grid;
        gap: .25rem
    }

    .meeting-quick-mode-v13 small, .direct-product-note-v13 p {
        margin: 0;
        color: #5d7184;
        line-height: 1.4
    }

    .direct-product-note-v13 b {
        color: #0757a6
    }

.optional-label-v13 {
    display: inline-block;
    margin-left: .35rem;
    padding: .12rem .4rem;
    border-radius: 999px;
    background: #eef3f7;
    color: #607589;
    font-size: .68rem;
    font-style: normal;
    font-weight: 800;
    vertical-align: middle
}

@media(max-width:850px) {
    .flex-governance-note-v13 {
        grid-template-columns: 1fr
    }

    .gate-flex-controls-v13 {
        grid-template-columns: 1fr
    }

    .meeting-quick-mode-v13, .direct-product-note-v13, .suggested-plan-action-v13 {
        align-items: stretch;
        flex-direction: column
    }
}

.gate-returned-note-v13 {
    padding: .75rem .85rem;
    margin-bottom: .8rem;
    border: 1px solid #f0d5a5;
    border-radius: 12px;
    background: #fff9ef
}

    .gate-returned-note-v13 p {
        margin: .25rem 0;
        color: #5d6875
    }

    .gate-returned-note-v13 small {
        color: #6c7884
    }

/* V13.1 - centro de atención y búsqueda global */
.attention-center-v131 {
    margin: 1.2rem 0 1.35rem;
    padding: 1.05rem 1.1rem;
    border: 1px solid #d7e5f1;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(13,65,107,.06)
}

    .attention-center-v131 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 1rem;
        margin-bottom: .85rem
    }

    .attention-center-v131 h2 {
        margin: .18rem 0 .28rem
    }

    .attention-center-v131 header p {
        margin: 0;
        color: #5e7285;
        max-width: 760px
    }

.attention-count-v131 {
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    gap: .1rem .4rem;
    padding: .55rem .75rem;
    border-radius: 14px;
    background: #f5f9fc;
    border: 1px solid #d9e7f1;
    min-width: 128px
}

    .attention-count-v131 b {
        font-size: 1.35rem;
        color: #143f62
    }

    .attention-count-v131 span {
        font-size: .8rem;
        color: #607589
    }

    .attention-count-v131 em {
        grid-column: 1/-1;
        font-size: .7rem;
        font-style: normal;
        color: #b42318;
        font-weight: 800
    }

.attention-clear-v131 {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem .8rem;
    border-radius: 999px;
    background: #eaf8ef;
    color: #137a43;
    font-weight: 850;
    white-space: nowrap
}

.attention-grid-v131 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .65rem
}

.attention-item-v131 {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto 18px;
    align-items: center;
    gap: .7rem;
    padding: .75rem .8rem;
    border: 1px solid #dce7ef;
    border-radius: 14px;
    background: #fbfdff;
    text-decoration: none;
    color: #203f59;
    transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease
}

    .attention-item-v131:hover {
        transform: translateY(-1px);
        border-color: #7bb1dd;
        box-shadow: 0 8px 18px rgba(13,65,107,.08)
    }

.attention-signal-v131 {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: #eaf4fd;
    color: #0757a6;
    font-weight: 900
}

.attention-item-v131.warning .attention-signal-v131 {
    background: #fff5df;
    color: #9a5c00
}

.attention-item-v131.danger .attention-signal-v131 {
    background: #fff0f0;
    color: #b42318
}

.attention-item-v131 div {
    min-width: 0
}

.attention-item-v131 small {
    display: block;
    color: #64798b;
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em
}

.attention-item-v131 b {
    display: block;
    margin: .1rem 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.attention-item-v131 p {
    margin: 0;
    color: #667b8d;
    font-size: .8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.attention-item-v131 em {
    font-size: .75rem;
    font-style: normal;
    font-weight: 800;
    color: #536b7f;
    white-space: nowrap
}

.attention-item-v131 > i {
    font-style: normal;
    color: #0b65b4;
    font-weight: 900
}

.global-search-page-v131 {
    display: grid;
    gap: 1rem
}

.global-search-form-v131 {
    display: grid;
    grid-template-columns: 24px minmax(0,1fr) auto;
    align-items: center;
    gap: .7rem;
    padding: .7rem .8rem;
    border: 1px solid #cddfea;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(12,64,104,.06)
}

    .global-search-form-v131 svg {
        width: 24px;
        height: 24px;
        fill: none;
        stroke: #547086;
        stroke-width: 2
    }

    .global-search-form-v131 input {
        border: 0;
        outline: 0;
        font: inherit;
        font-size: 1rem;
        min-width: 0;
        padding: .35rem;
        background: transparent;
        color: #173a56
    }

.search-start-v131 {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.2rem;
    border: 1px dashed #bdd4e4;
    border-radius: 18px;
    background: #f8fbfd
}

    .search-start-v131 > span {
        display: grid;
        place-items: center;
        width: 52px;
        height: 52px;
        border-radius: 16px;
        background: #e8f3fb;
        color: #0757a6;
        font-size: 1.5rem
    }

    .search-start-v131 h2 {
        margin: 0 0 .25rem
    }

    .search-start-v131 p {
        margin: 0;
        color: #62778a
    }

.search-summary-v131 {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem
}

    .search-summary-v131 h2 {
        margin: .18rem 0 0
    }

    .search-summary-v131 > small {
        color: #61768a
    }

.search-groups-v131 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .9rem
}

.search-group-v131 {
    border: 1px solid #d9e6ef;
    border-radius: 17px;
    background: #fff;
    overflow: hidden
}

    .search-group-v131 > header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: .8rem .9rem;
        border-bottom: 1px solid #edf2f6;
        background: #f8fbfd
    }

    .search-group-v131 h3 {
        margin: 0;
        font-size: 1rem
    }

    .search-group-v131 header span {
        display: grid;
        place-items: center;
        min-width: 28px;
        height: 28px;
        border-radius: 999px;
        background: #e8f3fb;
        color: #0757a6;
        font-weight: 850;
        font-size: .78rem
    }

.search-result-v131 {
    display: grid;
    grid-template-columns: 46px minmax(0,1fr) 20px;
    align-items: center;
    gap: .7rem;
    padding: .75rem .85rem;
    text-decoration: none;
    color: #24445e;
    border-bottom: 1px solid #edf2f6
}

    .search-result-v131:last-child {
        border-bottom: 0
    }

    .search-result-v131:hover {
        background: #f7fbff
    }

    .search-result-v131 div {
        min-width: 0
    }

    .search-result-v131 b {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .search-result-v131 small {
        display: block;
        margin-top: .15rem;
        color: #64798b;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .search-result-v131 > i {
        font-style: normal;
        color: #0b65b4;
        font-weight: 900
    }

.search-badge-v131 {
    display: grid;
    place-items: center;
    min-width: 42px;
    height: 34px;
    border-radius: 10px;
    background: #edf5fb;
    color: #0757a6;
    font-size: .65rem;
    font-weight: 900
}

.command-live-v131 {
    display: grid;
    gap: .35rem;
    padding-bottom: .5rem;
    margin-bottom: .45rem;
    border-bottom: 1px solid #e7edf2
}

    .command-live-v131[hidden] {
        display: none
    }

.command-live-result-v131, .command-search-all-v131 {
    display: grid !important;
    grid-template-columns: 40px minmax(0,1fr);
    align-items: center;
    gap: .65rem;
    padding: .65rem .7rem;
    border-radius: 11px;
    text-decoration: none;
    color: inherit
}

    .command-live-result-v131:hover, .command-live-result-v131.selected, .command-search-all-v131:hover, .command-search-all-v131.selected {
        background: #eef6fc
    }

    .command-live-result-v131 > span, .command-search-all-v131 > span {
        display: grid;
        place-items: center;
        min-width: 36px;
        height: 30px;
        border-radius: 9px;
        background: #e6f1fa;
        color: #0757a6;
        font-size: .63rem;
        font-weight: 900
    }

    .command-live-result-v131 div, .command-search-all-v131 div {
        min-width: 0
    }

    .command-live-result-v131 b, .command-search-all-v131 b {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .command-live-result-v131 small, .command-search-all-v131 small {
        display: block;
        color: #64798b;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis
    }

.command-live-empty-v131 {
    margin: .3rem .7rem .45rem;
    color: #6b7f90;
    font-size: .82rem
}

@media(max-width:900px) {
    .attention-grid-v131, .search-groups-v131 {
        grid-template-columns: 1fr
    }

    .attention-center-v131 > header, .search-summary-v131 {
        flex-direction: column;
        align-items: stretch
    }

    .attention-count-v131 {
        width: max-content
    }

    .attention-item-v131 {
        grid-template-columns: 38px minmax(0,1fr) 18px
    }

        .attention-item-v131 em {
            grid-column: 2/3;
            grid-row: 2;
            margin-top: -.35rem
        }

        .attention-item-v131 > i {
            grid-column: 3;
            grid-row: 1/3
        }

    .global-search-form-v131 {
        grid-template-columns: 24px minmax(0,1fr)
    }

        .global-search-form-v131 .btn {
            grid-column: 1/-1
        }
}

/* ===== v132.css ===== */
/* V13.2 - correcciones integrales de consistencia y accesibilidad */
.single-panel-grid {
    grid-template-columns: minmax(0, 1fr);
}

[aria-live="polite"]:empty {
    display: none;
}

/* V13.2 - operación segura del trabajo asignado */
.assigned-task-update-v132 {
    margin: -.25rem .35rem .75rem;
    padding: .45rem .65rem;
    border: 1px solid var(--border,#dfe5ec);
    border-radius: 10px;
    background: var(--surface,#fff)
}

    .assigned-task-update-v132 > summary {
        cursor: pointer;
        font-size: .82rem;
        font-weight: 700;
        color: var(--primary,#2457d6)
    }

    .assigned-task-update-v132 form {
        display: grid;
        grid-template-columns: minmax(0,1fr) 110px auto;
        gap: .55rem;
        align-items: end;
        margin-top: .55rem
    }

    .assigned-task-update-v132 label {
        display: grid;
        gap: .25rem;
        font-size: .75rem;
        font-weight: 700;
        color: var(--text-muted,#667085)
    }

    .assigned-task-update-v132 select, .assigned-task-update-v132 input {
        min-width: 0;
        padding: .45rem .55rem;
        border: 1px solid var(--border,#dfe5ec);
        border-radius: 8px;
        background: #fff
    }

@media(max-width:720px) {
    .assigned-task-update-v132 form {
        grid-template-columns: 1fr 1fr
    }

    .assigned-task-update-v132 .btn {
        grid-column: 1/-1
    }
}

.agreements-board > .agreement-update-v132 {
    grid-column: 1/-1;
    margin: .15rem .55rem .65rem
}

/* ===== V13.9 · experiencia y seguimiento ===== */
.executive-hero-v139 {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr);
    gap: 20px;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: linear-gradient(140deg, #fff 0%, #fbfaf8 58%, #fff7f1 100%);
    box-shadow: var(--shadow);
    margin-bottom: 16px;
}

    .executive-hero-v139 h2 {
        margin: 5px 0 8px;
        font-size: clamp(27px, 3vw, 42px);
        line-height: 1.05;
        letter-spacing: -.04em;
        color: var(--ns-charcoal);
    }

    .executive-hero-v139 p {
        margin: 0;
        max-width: 780px;
        color: var(--muted);
        font-size: 15px;
    }

.executive-hero-meta-v139 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

    .executive-hero-meta-v139 span {
        padding: 7px 10px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: rgba(255,255,255,.78);
        color: var(--muted);
        font-size: 12px;
    }

    .executive-hero-meta-v139 b {
        color: var(--text);
    }

.executive-score-v139 {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    border-radius: 17px;
    border: 1px solid var(--line);
    background: var(--surface);
}

    .executive-score-v139.good {
        border-color: #cfe0c8;
        background: var(--ns-green-soft);
    }

    .executive-score-v139.attention {
        border-color: #f0d2a0;
        background: var(--ns-yellow-soft);
    }

    .executive-score-v139 small {
        color: var(--muted);
        font-weight: 800;
        letter-spacing: .09em;
    }

    .executive-score-v139 strong {
        font-size: 30px;
        line-height: 1.1;
        margin: 7px 0;
    }

    .executive-score-v139 p {
        font-size: 13px;
    }

    .executive-score-v139 a {
        margin-top: 14px;
        color: var(--ns-blue);
        font-weight: 800;
    }

.executive-metrics-v139 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

    .executive-metrics-v139 a {
        padding: 16px 18px;
        border: 1px solid var(--line);
        border-radius: 15px;
        background: var(--surface);
        transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    }

        .executive-metrics-v139 a:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow);
            border-color: var(--line-strong);
        }

    .executive-metrics-v139 span, .executive-metrics-v139 small {
        display: block;
        color: var(--muted);
    }

    .executive-metrics-v139 span {
        font-size: 11px;
        text-transform: uppercase;
        font-weight: 800;
        letter-spacing: .06em;
    }

    .executive-metrics-v139 strong {
        display: block;
        margin: 3px 0;
        font-size: 30px;
        line-height: 1;
        color: var(--ns-charcoal);
    }

    .executive-metrics-v139 small {
        font-size: 12px;
    }

.executive-grid-v139 {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(260px, .55fr);
    gap: 16px;
    margin-bottom: 16px;
}

.executive-attention-v139, .executive-week-v139 {
    margin: 0;
}

.executive-attention-list-v139 {
    display: grid;
    gap: 8px;
}

.attention-row-v139 {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto 18px;
    gap: 11px;
    align-items: center;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-2);
}

    .attention-row-v139:hover {
        background: #fff;
        border-color: var(--line-strong);
    }

.attention-marker-v139 {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 900;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
}

.attention-row-v139.danger .attention-marker-v139 {
    background: var(--ns-red-soft);
    color: var(--ns-red);
}

.attention-row-v139.warning .attention-marker-v139 {
    background: var(--ns-yellow-soft);
    color: var(--ns-yellow);
}

.attention-row-v139 small, .attention-row-v139 p {
    color: var(--muted);
}

.attention-row-v139 small {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 800;
}

.attention-row-v139 b {
    display: block;
    margin: 1px 0;
}

.attention-row-v139 p {
    margin: 0;
    font-size: 12px;
}

.attention-row-v139 em {
    font-style: normal;
    font-weight: 800;
    font-size: 12px;
    white-space: nowrap;
}

.attention-row-v139.danger em {
    color: var(--ns-red);
}

.attention-row-v139.warning em {
    color: var(--ns-yellow);
}

.executive-week-v139 {
    display: flex;
    flex-direction: column;
}

.week-signal-v139 {
    display: grid;
    grid-template-columns: 48px 1fr;
    align-items: center;
    min-height: 58px;
    border-bottom: 1px solid var(--line);
}

    .week-signal-v139 strong {
        grid-row: span 2;
        font-size: 27px;
        color: var(--ns-charcoal);
    }

    .week-signal-v139 span {
        color: var(--muted);
        font-size: 12px;
    }

.executive-week-v139 .btn {
    margin-top: auto;
}

.portfolio-health-v139 {
    margin-bottom: 16px;
}

.portfolio-health-grid-v139 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.portfolio-health-card-v139 {
    display: flex;
    flex-direction: column;
    min-height: 285px;
    padding: 16px;
    border: 1px solid var(--line);
    border-top-width: 4px;
    border-radius: 15px;
    background: var(--surface);
    transition: transform .16s ease, box-shadow .16s ease;
}

    .portfolio-health-card-v139:hover {
        transform: translateY(-3px);
        box-shadow: var(--shadow-hover);
    }

    .portfolio-health-card-v139.good {
        border-top-color: var(--ns-green);
    }

    .portfolio-health-card-v139.warning {
        border-top-color: var(--ns-yellow);
    }

    .portfolio-health-card-v139.danger {
        border-top-color: var(--ns-red);
    }

    .portfolio-health-card-v139 header {
        display: flex;
        justify-content: space-between;
        gap: 8px;
        align-items: center;
        color: var(--muted);
        font-size: 11px;
        font-weight: 800;
    }

    .portfolio-health-card-v139 h3 {
        margin: 12px 0 10px;
        font-size: 18px;
        line-height: 1.18;
    }

.health-badge-v139 {
    display: inline-flex;
    align-items: center;
    width: max-content;
    min-height: 24px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: .03em;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
}

    .health-badge-v139.good {
        background: var(--ns-green-soft);
        color: var(--ns-green);
    }

    .health-badge-v139.warning {
        background: var(--ns-yellow-soft);
        color: var(--ns-yellow);
    }

    .health-badge-v139.danger {
        background: var(--ns-red-soft);
        color: var(--ns-red);
    }

.portfolio-owner-v139 {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 12px;
    color: var(--muted);
    font-size: 12px;
}

    .portfolio-owner-v139 > span {
        width: 27px;
        height: 27px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: var(--surface-3);
        color: var(--text);
        font-size: 9px;
        font-weight: 900;
    }

    .portfolio-owner-v139 b {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

.portfolio-progress-v139 {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 11px;
}

    .portfolio-progress-v139 b {
        color: var(--text);
    }

.next-commitment-v139 {
    margin-top: 14px;
    padding: 11px;
    border-radius: 11px;
    background: var(--surface-2);
}

    .next-commitment-v139 small, .next-commitment-v139 b, .next-commitment-v139 span {
        display: block;
    }

    .next-commitment-v139 small {
        color: var(--muted);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .next-commitment-v139 b {
        margin: 3px 0;
        font-size: 13px;
        line-height: 1.25;
    }

    .next-commitment-v139 span {
        color: var(--muted);
        font-size: 11px;
    }

.portfolio-health-card-v139 footer {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    padding-top: 13px;
    color: var(--muted);
    font-size: 11px;
}

    .portfolio-health-card-v139 footer strong {
        color: var(--ns-blue);
    }

.executive-details-v139 {
    padding: 0;
    overflow: hidden;
}

    .executive-details-v139 > summary {
        display: flex;
        justify-content: space-between;
        gap: 16px;
        padding: 16px 20px;
        cursor: pointer;
        list-style: none;
    }

        .executive-details-v139 > summary span {
            display: grid;
        }

            .executive-details-v139 > summary span > span, .executive-details-v139 > summary small {
                color: var(--muted);
            }

.executive-details-body-v139 {
    display: grid;
    gap: 18px;
    padding: 0 20px 20px;
    border-top: 1px solid var(--line);
}

    .executive-details-body-v139 > section {
        padding-top: 18px;
    }

.journey-lanes.compact-v139 {
    max-width: none;
}

.finance-context-v139 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

    .finance-context-v139 div {
        padding: 14px;
        background: var(--surface-2);
        border: 1px solid var(--line);
        border-radius: 12px;
    }

    .finance-context-v139 small, .finance-context-v139 b {
        display: block;
    }

    .finance-context-v139 small {
        color: var(--muted);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .06em;
    }

    .finance-context-v139 b {
        margin-top: 3px;
        font-size: 18px;
    }

.myday-hero-v139 {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .65fr);
    gap: 18px;
    padding: 24px;
    margin-bottom: 12px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: linear-gradient(135deg, #fff 0%, #fffaf6 100%);
    box-shadow: var(--shadow);
}

    .myday-hero-v139 h2 {
        margin: 5px 0 8px;
        font-size: clamp(26px, 3vw, 38px);
        line-height: 1.08;
        letter-spacing: -.035em;
    }

    .myday-hero-v139 p {
        color: var(--muted);
        max-width: 760px;
    }

.myday-next-v139 {
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}

    .myday-next-v139 > small, .myday-next-v139 > strong, .myday-next-v139 > span, .myday-next-v139 > a {
        display: block;
    }

    .myday-next-v139 > small {
        color: var(--muted);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .myday-next-v139 > strong {
        margin: 5px 0;
        font-size: 17px;
    }

    .myday-next-v139 > span {
        color: var(--muted);
        font-size: 12px;
    }

    .myday-next-v139 .progress {
        margin: 12px 0;
    }

    .myday-next-v139 > a {
        color: var(--ns-blue);
        font-weight: 800;
    }

.myday-metrics-v139 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}

    .myday-metrics-v139 > div {
        padding: 13px 15px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: var(--surface);
    }

    .myday-metrics-v139 small, .myday-metrics-v139 span, .myday-metrics-v139 strong {
        display: block;
    }

    .myday-metrics-v139 small {
        color: var(--muted);
        font-size: 10px;
        text-transform: uppercase;
        font-weight: 800;
    }

    .myday-metrics-v139 strong {
        font-size: 25px;
    }

    .myday-metrics-v139 span {
        color: var(--muted);
        font-size: 11px;
    }

.myday-shortcuts-v139 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

    .myday-shortcuts-v139 > a, .myday-shortcuts-v139 > button {
        display: grid;
        grid-template-columns: 34px minmax(0, 1fr) 20px;
        gap: 10px;
        align-items: center;
        text-align: left;
        padding: 11px 13px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: var(--surface);
        color: var(--text);
    }

        .myday-shortcuts-v139 > a:hover, .myday-shortcuts-v139 > button:hover {
            border-color: var(--line-strong);
            box-shadow: var(--shadow);
        }

        .myday-shortcuts-v139 > a > span, .myday-shortcuts-v139 > button > span {
            width: 32px;
            height: 32px;
            display: grid;
            place-items: center;
            border-radius: 9px;
            background: var(--ns-orange-soft);
            color: var(--ns-orange-strong);
            font-weight: 900;
        }

    .myday-shortcuts-v139 b, .myday-shortcuts-v139 small {
        display: block;
    }

    .myday-shortcuts-v139 small {
        color: var(--muted);
    }

.myday-week-v139 {
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface-2);
}

    .myday-week-v139 > span {
        display: block;
        color: var(--muted);
        font-size: 9px;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .myday-week-v139 b {
        display: block;
        margin: 4px 0;
    }

    .myday-week-v139 p {
        color: var(--muted);
        font-size: 12px;
    }

    .myday-week-v139 a {
        color: var(--ns-blue);
        font-weight: 800;
        font-size: 12px;
    }

.workspace-health-card-v139 {
    min-width: 310px;
    padding: 16px;
    border: 1px solid var(--line);
    border-left-width: 5px;
    border-radius: 16px;
    background: var(--surface);
}

    .workspace-health-card-v139.good {
        border-left-color: var(--ns-green);
    }

    .workspace-health-card-v139.warning {
        border-left-color: var(--ns-yellow);
    }

    .workspace-health-card-v139.danger {
        border-left-color: var(--ns-red);
    }

.workspace-health-top-v139 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

    .workspace-health-top-v139 > strong {
        font-size: 28px;
    }

.workspace-health-progress-v139 {
    height: 7px;
    margin: 10px 0 13px;
    border-radius: 999px;
    overflow: hidden;
    background: var(--surface-3);
}

    .workspace-health-progress-v139 i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: var(--ns-blue);
    }

.workspace-health-card-v139.good .workspace-health-progress-v139 i {
    background: var(--ns-green);
}

.workspace-health-card-v139.warning .workspace-health-progress-v139 i {
    background: var(--ns-yellow);
}

.workspace-health-card-v139.danger .workspace-health-progress-v139 i {
    background: var(--ns-red);
}

.workspace-health-grid-v139 {
    display: grid;
    gap: 9px;
}

    .workspace-health-grid-v139 > span {
        display: grid;
        grid-template-columns: 110px 1fr;
        column-gap: 8px;
        align-items: baseline;
    }

    .workspace-health-grid-v139 small {
        color: var(--muted);
        font-size: 10px;
    }

    .workspace-health-grid-v139 b {
        font-size: 12px;
    }

    .workspace-health-grid-v139 em {
        grid-column: 2;
        color: var(--muted);
        font-size: 10px;
        font-style: normal;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.stage-reference-v139 {
    margin: 12px 0 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface);
}

    .stage-reference-v139 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 11px 14px;
        cursor: pointer;
        list-style: none;
    }

        .stage-reference-v139 > summary > span {
            display: grid;
        }

        .stage-reference-v139 > summary small {
            color: var(--muted);
        }

        .stage-reference-v139 > summary em {
            font-style: normal;
            color: var(--ns-blue);
            font-weight: 800;
        }

    .stage-reference-v139 .stage-journey {
        margin: 0;
        padding: 12px 14px 15px;
        border: 0;
        border-top: 1px solid var(--line);
        border-radius: 0;
    }

.followup-kpis-v139 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 13px;
}

    .followup-kpis-v139 article {
        padding: 13px 14px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: var(--surface);
    }

        .followup-kpis-v139 article.danger {
            border-color: #ebc7c7;
            background: var(--ns-red-soft);
        }

        .followup-kpis-v139 article.warning {
            border-color: #efd8ad;
            background: var(--ns-yellow-soft);
        }

    .followup-kpis-v139 small, .followup-kpis-v139 strong, .followup-kpis-v139 span {
        display: block;
    }

    .followup-kpis-v139 small {
        color: var(--muted);
        font-size: 10px;
        text-transform: uppercase;
        font-weight: 800;
    }

    .followup-kpis-v139 strong {
        font-size: 26px;
        line-height: 1.05;
    }

    .followup-kpis-v139 span {
        color: var(--muted);
        font-size: 11px;
    }

.followup-grid-v139 {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    gap: 13px;
}

.followup-list-v139 {
    display: grid;
    gap: 7px;
}

    .followup-list-v139 > button {
        display: grid;
        grid-template-columns: 31px minmax(0, 1fr) 46px;
        gap: 9px;
        align-items: center;
        width: 100%;
        padding: 10px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: var(--surface-2);
        text-align: left;
        color: var(--text);
    }

        .followup-list-v139 > button:hover {
            border-color: var(--line-strong);
            background: #fff;
        }

        .followup-list-v139 > button.late {
            border-color: #efcccc;
            background: var(--ns-red-soft);
        }

.followup-kind-v139 {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--ns-blue-soft);
    color: var(--ns-blue);
    font-size: 10px;
    font-weight: 900;
}

.followup-list-v139 small, .followup-list-v139 b, .followup-list-v139 p {
    display: block;
}

.followup-list-v139 small, .followup-list-v139 p {
    color: var(--muted);
    font-size: 10px;
}

.followup-list-v139 p {
    margin: 1px 0 0;
}

.followup-list-v139 > button > em {
    justify-self: end;
    font-style: normal;
    font-weight: 900;
}

.followup-feed-v139 {
    display: grid;
    gap: 8px;
}

    .followup-feed-v139 article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 9px;
        padding: 10px 0;
        border-bottom: 1px solid var(--line);
    }

        .followup-feed-v139 article:last-child {
            border-bottom: 0;
        }

    .followup-feed-v139 b, .followup-feed-v139 p, .followup-feed-v139 small {
        display: block;
    }

    .followup-feed-v139 p {
        margin: 2px 0;
        color: var(--muted);
        font-size: 11px;
    }

    .followup-feed-v139 small {
        color: var(--muted-2);
        font-size: 10px;
    }

.followup-audit-dot-v139 {
    width: 9px;
    height: 9px;
    margin-top: 5px;
    border-radius: 50%;
    background: var(--ns-blue);
}

.followup-risks-v139 {
    margin-top: 13px;
}

    .followup-risks-v139 > div {
        display: grid;
        gap: 8px;
    }

    .followup-risks-v139 article {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 10px;
        padding: 10px;
        border: 1px solid var(--line);
        border-radius: 10px;
    }

    .followup-risks-v139 p {
        margin: 2px 0;
        color: var(--muted);
    }

    .followup-risks-v139 small {
        color: var(--muted);
    }

.meeting-snapshot-v139 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin: 12px 0;
}

    .meeting-snapshot-v139 article {
        padding: 12px 13px;
        border: 1px solid var(--line);
        border-radius: 11px;
        background: var(--surface);
    }

        .meeting-snapshot-v139 article.danger {
            border-color: #efc7c7;
            background: var(--ns-red-soft);
        }

    .meeting-snapshot-v139 small, .meeting-snapshot-v139 strong, .meeting-snapshot-v139 span {
        display: block;
    }

    .meeting-snapshot-v139 small {
        color: var(--muted);
        font-size: 9px;
        text-transform: uppercase;
        font-weight: 800;
    }

    .meeting-snapshot-v139 strong {
        font-size: 22px;
    }

    .meeting-snapshot-v139 span {
        color: var(--muted);
        font-size: 10px;
    }

@media (max-width: 1180px) {
    .portfolio-health-grid-v139 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .executive-metrics-v139, .myday-metrics-v139, .followup-kpis-v139, .meeting-snapshot-v139 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .executive-grid-v139, .followup-grid-v139 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .executive-hero-v139, .myday-hero-v139 {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .executive-metrics-v139, .myday-metrics-v139, .myday-shortcuts-v139, .finance-context-v139 {
        grid-template-columns: 1fr 1fr;
    }

    .workspace-health-card-v139 {
        min-width: 0;
        width: 100%;
    }

    .workspace-health-grid-v139 > span {
        grid-template-columns: 1fr;
    }

    .workspace-health-grid-v139 em {
        grid-column: auto;
    }
}

@media (max-width: 560px) {
    .portfolio-health-grid-v139, .executive-metrics-v139, .myday-metrics-v139, .myday-shortcuts-v139, .followup-kpis-v139, .meeting-snapshot-v139, .finance-context-v139 {
        grid-template-columns: 1fr;
    }

    .attention-row-v139 {
        grid-template-columns: 30px minmax(0, 1fr) 16px;
    }

        .attention-row-v139 em {
            grid-column: 2;
        }

    .portfolio-health-card-v139 {
        min-height: 0;
    }
}

@media print {
    .sidebar, .topbar, .page-actions, .meeting-phase-nav, .button-row, button, .sidebar-backdrop {
        display: none !important;
    }

    .main {
        margin: 0 !important;
    }

    body {
        background: #fff !important;
    }

    .card, .meeting-v13-card, .surface-card, .meeting-command-v13 {
        box-shadow: none !important;
        break-inside: avoid;
    }
}

/* ===== V14 · NS GROUP OPERATIVA ===== */
:root {
    --nsg-navy: #24356f;
    --nsg-navy-2: #192754;
    --nsg-orange: #f47b20;
    --nsg-red: #e43c22;
    --nsg-gold: #f2b51d;
    --nsg-cream: #fff8f2;
    --nsg-sky: #edf2fb;
    --nsg-ink: #18233d;
    --nsg-muted: #6c7893;
    --nsg-line: #dde3ee;
    --ns-orange: var(--nsg-orange);
    --ns-orange-strong: #dc6415;
    --ns-blue: var(--nsg-navy);
    --ns-blue-strong: var(--nsg-navy-2);
    --ns-blue-bright: #36539a;
    --text: var(--nsg-ink);
    --muted: var(--nsg-muted);
    --bg: #f5f7fb;
    --surface-3: #eef2f8;
    --line: var(--nsg-line);
}

body {
    background: linear-gradient(180deg, #f5f7fb 0, #f8f9fc 44%, #fffaf6 100%);
}

.sidebar {
    background: linear-gradient(180deg, var(--nsg-navy-2), var(--nsg-navy));
    border-right: 0;
    box-shadow: 10px 0 34px rgba(25, 39, 84, .12);
}

.brand-row {
    min-height: 88px;
    border-bottom-color: rgba(255,255,255,.12);
}

.brand-logo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #fff;
    overflow: hidden;
    flex: 0 0 auto;
    box-shadow: 0 8px 18px rgba(0,0,0,.18);
}

    .brand-logo img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

.brand-copy b {
    color: #fff;
    letter-spacing: .07em;
    font-size: 15px;
}

.brand-copy small {
    color: rgba(255,255,255,.7);
    max-width: 150px;
    white-space: normal;
    line-height: 1.25;
}

.sidebar-collapse {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.16);
    color: #fff;
}

    .sidebar-collapse:hover {
        background: rgba(255,255,255,.14);
        color: #fff;
        border-color: rgba(255,255,255,.28);
    }

.idea-entry {
    background: linear-gradient(135deg, var(--nsg-orange), var(--nsg-red));
    box-shadow: 0 14px 30px rgba(228,60,34,.25);
}

    .idea-entry:hover {
        box-shadow: 0 18px 38px rgba(228,60,34,.33);
    }

.nav-group-toggle {
    color: rgba(255,255,255,.52);
}

    .nav-group-toggle:hover {
        background: rgba(255,255,255,.08);
        color: #fff;
    }

.nav-group.has-active > .nav-group-toggle {
    color: var(--nsg-gold);
}

.nav-item {
    color: rgba(255,255,255,.78);
}

    .nav-item .nav-icon {
        color: rgba(255,255,255,.58);
    }

    .nav-item:hover {
        background: rgba(255,255,255,.09);
        color: #fff;
        transform: translateX(2px);
    }

    .nav-item.active {
        background: rgba(255,255,255,.12);
        color: #fff;
        box-shadow: inset 3px 0 var(--nsg-orange);
    }

        .nav-item.active .nav-icon {
            color: var(--nsg-gold);
        }

.sidebar-foot {
    background: rgba(0,0,0,.08);
    border-top-color: rgba(255,255,255,.12);
}

    .sidebar-foot .avatar {
        background: #fff;
        color: var(--nsg-navy);
    }

    .sidebar-foot .user-mini b {
        color: #fff;
    }

    .sidebar-foot .user-mini a {
        color: rgba(255,255,255,.66);
    }

    .sidebar-foot .icon-btn {
        color: rgba(255,255,255,.7);
    }

        .sidebar-foot .icon-btn:hover {
            color: #fff;
            background: rgba(255,255,255,.1);
        }

.topbar {
    border-bottom: 0;
    box-shadow: 0 1px 0 rgba(36,53,111,.08);
}

.page-heading {
    position: relative;
}

    .page-heading:after {
        content: "";
        position: absolute;
        left: 28px;
        right: 28px;
        bottom: 0;
        height: 3px;
        border-radius: 99px;
        background: linear-gradient(90deg, var(--nsg-navy) 0 58%, var(--nsg-orange) 58% 78%, var(--nsg-red) 78% 92%, var(--nsg-gold) 92%);
        opacity: .9;
    }

.btn-primary {
    background: linear-gradient(135deg, var(--nsg-orange), var(--nsg-red));
    border-color: transparent;
    box-shadow: 0 10px 24px rgba(228,60,34,.2);
}

    .btn-primary:hover {
        background: linear-gradient(135deg, #e56d18, #cf321b);
        box-shadow: 0 13px 28px rgba(228,60,34,.28);
    }

.btn-blue {
    background: linear-gradient(135deg, var(--nsg-navy), #36539a);
    border-color: transparent;
}

    .btn-blue:hover {
        background: linear-gradient(135deg, var(--nsg-navy-2), var(--nsg-navy));
    }

.ownership-box {
    border: 1px solid #dbe3f2;
    background: linear-gradient(135deg,#f8faff,#fffaf6);
    border-radius: 16px;
    padding: 18px;
    display: grid;
    gap: 16px;
}

.ownership-copy {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

    .ownership-copy h3 {
        margin: 0 0 4px;
        color: var(--nsg-navy);
        font-size: 17px;
    }

    .ownership-copy p {
        margin: 0;
        color: var(--nsg-muted);
    }

.ownership-box select[multiple] {
    min-height: 138px;
    padding: 7px;
}

    .ownership-box select[multiple] option {
        padding: 7px 8px;
        border-radius: 7px;
    }

        .ownership-box select[multiple] option:checked {
            background: linear-gradient(var(--nsg-navy),var(--nsg-navy));
            color: #fff;
        }

.idea-ownership-strip {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px;
    padding: 10px 12px;
    background: #f4f7fc;
    border: 1px solid #e2e7f1;
    border-radius: 11px;
    color: #53617c;
    font-size: 11px;
}

    .idea-ownership-strip b {
        color: var(--nsg-navy);
    }

.idea-accountability {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
    padding: 13px 16px;
    border-top: 1px solid #edf0f6;
    border-bottom: 1px solid #edf0f6;
    background: #fbfcff;
}

    .idea-accountability > div {
        min-width: 0;
    }

    .idea-accountability small {
        display: block;
        color: #8a95aa;
        font-size: 9px;
        letter-spacing: .09em;
        font-weight: 800;
    }

    .idea-accountability b {
        display: block;
        margin-top: 3px;
        color: var(--nsg-ink);
        font-size: 12px;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.owner-stat .owner-name {
    font-size: 15px;
    line-height: 1.25;
}

.idea-card {
    border-top: 3px solid transparent;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

    .idea-card:hover {
        border-top-color: var(--nsg-orange);
    }

.idea-state.enexploracion, .idea-state.enrevision {
    color: var(--nsg-navy);
    background: #eef2fb;
}

.idea-state.nueva {
    color: #9a5700;
    background: #fff6df;
}

/* Portafolio y tableros: un acento de marca sin saturar la información. */
.workspace-hero, .dashboard-hero-v139, .mywork-hero-v139 {
    border-top: 4px solid var(--nsg-orange);
}

.card, .panel, .workspace-section, .conversation-card {
    box-shadow: 0 10px 28px rgba(36,53,111,.06);
}

@media (max-width: 760px) {
    .brand-copy small {
        display: none;
    }

    .idea-accountability, .idea-ownership-strip {
        grid-template-columns: 1fr;
    }

    .ownership-box .form-grid {
        grid-template-columns: 1fr;
    }

    .page-heading:after {
        left: 15px;
        right: 15px;
    }
}

/* V14 · Responsabilidad visible */
.myday-metrics-v139 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.my-ideas-grid-v14 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
}

.my-idea-card-v14 {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 220px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(180deg,#fff,#fbfcff);
    color: inherit;
    box-shadow: 0 10px 28px rgba(25,39,84,.06);
    transition: .18s ease;
}

    .my-idea-card-v14:hover {
        transform: translateY(-2px);
        border-color: rgba(36,53,111,.28);
        box-shadow: 0 16px 34px rgba(25,39,84,.1);
    }

    .my-idea-card-v14 header, .my-idea-card-v14 footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .my-idea-card-v14 h3 {
        margin: 0;
        color: var(--brand-navy,#24356f);
        font-size: 1rem;
    }

    .my-idea-card-v14 > p {
        margin: 0;
        color: var(--muted);
        line-height: 1.55;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .my-idea-card-v14 footer {
        margin-top: auto;
        padding-top: 10px;
        border-top: 1px solid var(--line);
        color: var(--muted);
        font-size: .75rem;
    }

        .my-idea-card-v14 footer strong {
            color: var(--brand-orange,#f47b20);
        }

.idea-role-v14 {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .08em;
}

    .idea-role-v14.owner {
        background: rgba(36,53,111,.1);
        color: var(--brand-navy,#24356f);
    }

    .idea-role-v14.co {
        background: rgba(244,123,32,.12);
        color: #b84c00;
    }

.idea-accountability-mini-v14 {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 8px;
}

    .idea-accountability-mini-v14 span {
        min-width: 0;
        padding: 9px 10px;
        border-radius: 11px;
        background: #f5f7fb;
    }

    .idea-accountability-mini-v14 b, .idea-accountability-mini-v14 small {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .idea-accountability-mini-v14 b {
        color: #25345f;
        font-size: .77rem;
    }

    .idea-accountability-mini-v14 small {
        margin-top: 2px;
        color: var(--muted);
        font-size: .65rem;
    }

.account-brand > img {
    width: 62px;
    height: 62px;
    flex: 0 0 62px;
    object-fit: contain;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.account-story {
    background: radial-gradient(circle at 12% 20%,rgba(244,123,32,.24),transparent 31%),radial-gradient(circle at 90% 76%,rgba(228,60,34,.18),transparent 30%),linear-gradient(145deg,#192754,#24356f 62%,#16234e);
}

.account-kicker {
    border-color: rgba(242,181,29,.38);
    background: rgba(242,181,29,.12);
    color: #fff7d8;
}

.account-flow i {
    background: linear-gradient(135deg,var(--brand-orange,#f47b20),var(--brand-red,#e43c22));
}

@media(max-width:1180px) {
    .myday-metrics-v139 {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

    .my-ideas-grid-v14 {
        grid-template-columns: 1fr;
    }
}

@media(max-width:760px) {
    .myday-metrics-v139 {
        grid-template-columns: 1fr 1fr;
    }

    .idea-accountability-mini-v14 {
        grid-template-columns: 1fr;
    }
}

@media(max-width:520px) {
    .myday-metrics-v139 {
        grid-template-columns: 1fr;
    }
}

/* V14 · Color corporativo con jerarquía (no decoración indiscriminada) */
.executive-metrics-v139 > div:nth-child(4n+1),
.myday-metrics-v139 > div:nth-child(5n+1) {
    border-top: 3px solid var(--nsg-navy);
}

.executive-metrics-v139 > div:nth-child(4n+2),
.myday-metrics-v139 > div:nth-child(5n+2) {
    border-top: 3px solid var(--nsg-orange);
}

.executive-metrics-v139 > div:nth-child(4n+3),
.myday-metrics-v139 > div:nth-child(5n+3) {
    border-top: 3px solid var(--nsg-red);
}

.executive-metrics-v139 > div:nth-child(4n+4),
.myday-metrics-v139 > div:nth-child(5n+4) {
    border-top: 3px solid var(--nsg-gold);
}

.myday-metrics-v139 > div:nth-child(5n+5) {
    border-top: 3px solid #4767ad;
}

.attention-item-v131.danger {
    border-left-color: var(--nsg-red);
}

.attention-item-v131.warning {
    border-left-color: var(--nsg-gold);
}

.stage-pill {
    background: #eef2fb;
    color: var(--nsg-navy);
}

.coach-orb {
    font-size: 0 !important;
    background: #fff url('../img/nsgroup-logo.png') center/contain no-repeat !important;
    border: 1px solid #e6e9f0;
    box-shadow: 0 8px 20px rgba(36,53,111,.12);
}

.workspace-tabs button.active {
    color: var(--nsg-navy);
    border-bottom-color: var(--nsg-orange);
}

    .workspace-tabs button.active b {
        color: var(--nsg-navy);
        background: #eef2fb;
    }

.account-panel {
    background: linear-gradient(180deg,#fff,#fffaf6);
}

.account-panel-inner {
    border-top: 4px solid var(--nsg-orange);
}

.ownership-readonly-v14 {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 10px;
}

    .ownership-readonly-v14 > div {
        padding: 11px 12px;
        border-radius: 11px;
        background: #fff;
        border: 1px solid #e4e8f1;
    }

    .ownership-readonly-v14 small, .ownership-readonly-v14 b {
        display: block;
    }

    .ownership-readonly-v14 small {
        color: #8a95aa;
        font-size: .62rem;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .ownership-readonly-v14 b {
        margin-top: 3px;
        color: var(--nsg-navy);
    }

    .ownership-readonly-v14 p {
        grid-column: 1/-1;
        margin: 0;
        color: var(--muted);
        font-size: .78rem;
    }

@media(max-width:760px) {
    .ownership-readonly-v14 {
        grid-template-columns: 1fr;
    }

        .ownership-readonly-v14 p {
            grid-column: auto;
        }
}

.room-brand-logo-v14 {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    box-shadow: 0 6px 16px rgba(0,0,0,.15);
}

/* V15 · CRUD integral, visible y con bajas controladas */
.crud-hero-v15 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 24px;
    margin-bottom: 18px;
    padding: 28px;
    border-radius: 22px;
    color: #fff;
    background: radial-gradient(circle at 10% 20%,rgba(244,123,32,.26),transparent 34%),linear-gradient(135deg,#172552,#2f4387);
    box-shadow: 0 18px 40px rgba(25,39,84,.16);
}

    .crud-hero-v15 h2 {
        margin: 4px 0 8px;
        color: #fff;
    }

    .crud-hero-v15 p {
        max-width: 820px;
        margin: 0;
        color: rgba(255,255,255,.78);
        line-height: 1.6;
    }

.crud-hero-score-v15 {
    min-width: 170px;
    padding: 18px 22px;
    text-align: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    background: rgba(255,255,255,.09);
}

    .crud-hero-score-v15 strong, .crud-hero-score-v15 span {
        display: block;
    }

    .crud-hero-score-v15 strong {
        font-size: 2rem;
    }

    .crud-hero-score-v15 span {
        margin-top: 3px;
        font-size: .72rem;
        text-transform: uppercase;
        letter-spacing: .08em;
    }

.crud-kpis-v15 {
    margin-bottom: 18px;
}

.crud-matrix-v15 {
    overflow: hidden;
    padding: 0;
}

    .crud-matrix-v15 > .section-card-head {
        padding: 22px 24px;
    }

.crud-matrix-head-v15, .crud-matrix-row-v15 {
    display: grid;
    grid-template-columns: minmax(220px,2fr) 90px repeat(4,minmax(72px,.65fr)) 90px;
    align-items: center;
    gap: 10px;
}

.crud-matrix-head-v15 {
    padding: 10px 22px;
    color: #77829a;
    background: #f5f7fb;
    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.crud-matrix-row-v15 {
    padding: 14px 22px;
    border-top: 1px solid var(--line);
}

    .crud-matrix-row-v15 > span b, .crud-matrix-row-v15 > span small {
        display: block;
    }

    .crud-matrix-row-v15 > span small {
        margin-top: 3px;
        color: var(--muted);
    }

    .crud-matrix-row-v15 > strong, .crud-matrix-row-v15 > i {
        text-align: center;
    }

    .crud-matrix-row-v15 > i {
        font-style: normal;
        font-size: .75rem;
        font-weight: 900;
    }

    .crud-matrix-row-v15 .yes {
        color: #11845b;
    }

    .crud-matrix-row-v15 .locked {
        color: #8c95a8;
    }

    .crud-matrix-row-v15.protected {
        background: #fffaf2;
    }

.crud-policy-v15 {
    margin-top: 18px;
}

    .crud-policy-v15 > div {
        display: grid;
        grid-template-columns: repeat(3,minmax(0,1fr));
        gap: 12px;
    }

    .crud-policy-v15 article {
        padding: 14px;
        border: 1px solid var(--line);
        border-radius: 14px;
        background: #fafbfe;
    }

    .crud-policy-v15 p {
        margin: 5px 0 0;
        color: var(--muted);
        line-height: 1.5;
    }

.crud-editor-v15, .crud-create-v15, .task-crud-v15 {
    margin-top: 10px;
    border: 1px solid #dfe5f0;
    border-radius: 12px;
    background: #f9fbff;
}

    .crud-editor-v15 > summary, .crud-create-v15 > summary, .task-crud-v15 > summary {
        cursor: pointer;
        padding: 9px 11px;
        color: var(--nsg-navy);
        font-size: .74rem;
        font-weight: 850;
    }

    .crud-editor-v15 > form, .crud-create-v15 > form, .task-crud-v15 > form {
        margin: 0 10px 10px;
    }

.crud-row-actions-v15 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 10px 10px;
}

    .crud-row-actions-v15 form {
        margin: 0;
    }

.crud-section-v15 {
    margin-bottom: 16px;
}

    .crud-section-v15 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 14px;
    }

    .crud-section-v15 h4 {
        margin: 2px 0 0;
    }

.results-kpis-v15 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
    margin-bottom: 16px;
}

    .results-kpis-v15 article {
        padding: 16px;
        border: 1px solid var(--line);
        border-top: 3px solid var(--nsg-orange);
        border-radius: 15px;
        background: #fff;
    }

    .results-kpis-v15 small, .results-kpis-v15 strong, .results-kpis-v15 span {
        display: block;
    }

    .results-kpis-v15 strong {
        margin: 5px 0 2px;
        color: var(--nsg-navy);
        font-size: 1.35rem;
    }

    .results-kpis-v15 span {
        color: var(--muted);
        font-size: .7rem;
    }

.crud-card-grid-v15 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
}

    .crud-card-grid-v15 > article, .crud-stack-v15 > article {
        padding: 13px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: #fbfcff;
    }

    .crud-card-grid-v15 b, .crud-card-grid-v15 small, .crud-stack-v15 b, .crud-stack-v15 small {
        display: block;
    }

    .crud-card-grid-v15 strong {
        color: var(--nsg-orange);
        font-size: 1.2rem;
    }

    .crud-card-grid-v15 p {
        color: var(--muted);
    }

.crud-stack-v15 {
    display: grid;
    gap: 10px;
}

    .crud-stack-v15 > article > small {
        margin-top: 4px;
        color: var(--muted);
    }

.metric-readings-v15 {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

    .metric-readings-v15 > span {
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 7px 9px;
        border-radius: 10px;
        background: #eef2fa;
    }

    .metric-readings-v15 form {
        margin: 0;
    }

    .metric-readings-v15 button {
        border: 0;
        background: transparent;
        cursor: pointer;
    }

.crud-finance-grid-v15 {
    align-items: start;
}

.crud-upload-v15 {
    display: grid;
    grid-template-columns: 220px minmax(0,1fr) auto;
    align-items: end;
    gap: 12px;
    margin-bottom: 14px;
}

.crud-evidence-v15 > form {
    padding: 0 12px 12px;
}

.crud-evidence-v15 > a {
    color: inherit;
}

.task-crud-v15 {
    grid-column: 1/-1;
}

.validation-crud-v15, .validation-suite-admin-v15 {
    margin: 10px 0;
}

.crud-danger-v15 {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #f0c9c9;
}

    .crud-danger-v15 form {
        margin: 0;
    }

.meeting-attendee-v13 > .icon-delete-v15, .meeting-attendee-v13 form .icon-delete-v15 {
    flex: 0 0 auto;
}

.minute-crud-v15 {
    grid-column: 1/-1;
    width: 100%;
}

.meeting-progress-entry-v13 > .crud-editor-v15 {
    margin-top: 10px;
}

.icon-delete-v15 {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid #efc4c4;
    border-radius: 8px;
    color: #b42318;
    background: #fff5f5;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
}

    .icon-delete-v15:hover {
        color: #fff;
        background: #b42318;
    }

.product-coresponsibles-v15 {
    margin-bottom: 16px;
}

    .product-coresponsibles-v15 > header {
        margin-bottom: 12px;
    }

        .product-coresponsibles-v15 > header p {
            margin: 4px 0 0;
            color: var(--muted);
        }

.product-responsibility-list-v15 {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

    .product-responsibility-list-v15 article {
        display: flex;
        align-items: center;
        gap: 9px;
        min-width: 210px;
        padding: 10px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fbfcff;
    }

        .product-responsibility-list-v15 article.owner {
            border-color: rgba(244,123,32,.3);
            background: #fffaf5;
        }

        .product-responsibility-list-v15 article div {
            flex: 1;
        }

    .product-responsibility-list-v15 small, .product-responsibility-list-v15 b {
        display: block;
    }

    .product-responsibility-list-v15 small {
        color: #8993a8;
        font-size: .58rem;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .product-responsibility-list-v15 b {
        margin-top: 2px;
        font-size: .78rem;
    }

    .product-responsibility-list-v15 form {
        margin: 0;
    }

.product-add-core-v15 {
    grid-template-columns: minmax(220px,1fr) auto;
    align-items: end;
    max-width: 620px;
    margin-top: 12px;
}

.task-delegated-v15, .task-support-v15, .task-block-reason-v15 {
    display: block;
    margin-top: 6px;
    padding: 6px 8px;
    border-radius: 8px;
    color: #5c6780;
    background: #f4f6fb;
    font-size: .66rem;
    line-height: 1.35;
}

.task-block-reason-v15 {
    color: #a1261e;
    background: #fff0ef;
}

.task-responsibility-editor-v15 select[multiple] {
    min-height: 110px;
}

.task-responsibility-summary-v15 > div {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
}

.task-responsibility-summary-v15 span {
    padding: 9px;
    border-radius: 10px;
    background: #f5f7fb;
}

.task-responsibility-summary-v15 small, .task-responsibility-summary-v15 b {
    display: block;
}

.task-responsibility-summary-v15 small {
    color: var(--muted);
    font-size: .62rem;
}

.task-responsibility-summary-v15 b {
    margin-top: 2px;
    font-size: .75rem;
}

/* V15.4: el expediente cambia de área y administra actividades sin recargar la página completa. */
.workspace {
    position: relative
}

    .workspace::after {
        content: "";
        position: fixed;
        left: 50%;
        top: 72px;
        z-index: 175;
        width: 44px;
        height: 4px;
        border-radius: 999px;
        background: linear-gradient(90deg,var(--ns-blue),var(--ns-cyan));
        opacity: 0;
        transform: translate(-50%,-12px) scaleX(.35);
        pointer-events: none;
        transition: .18s
    }

    .workspace.is-updating::after {
        opacity: 1;
        transform: translate(-50%,0) scaleX(1);
        animation: v154Loading 1s ease-in-out infinite
    }

.workspace-main {
    transition: opacity .16s ease,transform .16s ease
}

.workspace.is-updating .workspace-main {
    opacity: .55;
    transform: translateY(2px);
    pointer-events: none
}

.workspace-nav a.is-loading {
    color: var(--ns-blue);
    background: #eaf5ff
}

    .workspace-nav a.is-loading::after {
        content: "";
        width: 13px;
        height: 13px;
        border: 2px solid #a8cae6;
        border-top-color: var(--ns-blue);
        border-radius: 50%;
        animation: v154Spin .7s linear infinite
    }

.task-drawer {
    z-index: 230
}

.task-drawer-backdrop {
    z-index: 0;
    cursor: default
}

.task-drawer-shell {
    z-index: 1
}

.task-drawer-header > button {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 10px;
    background: #edf3f7;
    color: #587084;
    font-size: 1.3rem;
    cursor: pointer
}

.task-drawer-header h2 {
    margin: 4px 0 0;
    font-size: 1.18rem
}

.task-drawer-header small {
    color: var(--ns-blue);
    font-size: .62rem;
    font-weight: 850
}

.task-drawer-tabs {
    position: sticky;
    top: 73px;
    z-index: 2;
    margin: 0 18px;
    background: #eef4f8
}

    .task-drawer-tabs button {
        flex: 1;
        padding: 9px 7px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: #61788a;
        font-size: .65rem;
        font-weight: 800;
        cursor: pointer
    }

        .task-drawer-tabs button.active {
            background: #fff;
            color: var(--ns-blue);
            box-shadow: 0 3px 12px rgba(20,65,100,.1)
        }

        .task-drawer-tabs button span {
            display: inline-grid;
            place-items: center;
            min-width: 18px;
            height: 18px;
            margin-left: 3px;
            padding: 0 4px;
            border-radius: 999px;
            background: #e1eef8;
            font-size: .52rem
        }

.drawer-panel {
    display: none
}

    .drawer-panel.active {
        display: block
    }

    .drawer-panel + .drawer-panel {
        margin-top: 0
    }

.task-drawer-body > .drawer-panel {
    border: 0;
    background: transparent;
    padding: 0
}

    .task-drawer-body > .drawer-panel.active {
        display: flex;
        flex-direction: column;
        gap: 12px
    }

.task-property-grid label, .task-full-editor-v154 label, .task-responsibility-editor-v154 label, .drawer-operational-update-v154 label {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #5f7486;
    font-size: .63rem;
    font-weight: 800
}

.task-property-grid input, .task-property-grid select {
    width: 100%;
    min-height: 39px
}

.drawer-progress {
    display: flex;
    flex-direction: column;
    gap: 9px
}

    .drawer-progress > div {
        display: flex;
        justify-content: space-between
    }

    .drawer-progress input {
        width: 100%
    }

.drawer-context {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 7px 12px
}

    .drawer-context > span {
        color: #718698;
        font-size: .6rem;
        font-weight: 800
    }

    .drawer-context > a {
        color: var(--ns-blue);
        font-weight: 800
    }

.drawer-operational-update-v154, .task-full-editor-v154, .task-responsibility-editor-v154 {
    padding: 15px;
    border: 1px solid #d8e6f0;
    border-radius: 14px;
    background: #fff
}

    .drawer-operational-update-v154 > summary {
        cursor: pointer;
        color: var(--ns-blue);
        font-size: .7rem;
        font-weight: 850
    }

    .drawer-operational-update-v154 > form {
        margin-top: 12px
    }

.task-responsibility-editor-v154 {
    margin-top: 4px;
    background: #f7fbfe
}

    .task-responsibility-editor-v154 header h3 {
        margin: 4px 0
    }

    .task-responsibility-editor-v154 header p {
        margin: 0;
        color: #667b8d;
        font-size: .7rem
    }

.drawer-task-error-v154 {
    display: grid;
    place-items: center;
    min-height: 45vh;
    padding: 32px;
    text-align: center
}

    .drawer-task-error-v154 b {
        font-size: 1.1rem
    }

    .drawer-task-error-v154 p {
        max-width: 360px;
        color: #657b8d
    }

    .drawer-task-error-v154 > div {
        display: flex;
        gap: 8px
    }

.drawer-loading {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 45vh
}

    .drawer-loading > span {
        width: 30px;
        height: 30px;
        border: 3px solid #cee1ee;
        border-top-color: var(--ns-blue);
        border-radius: 50%;
        animation: v154Spin .7s linear infinite
    }

    .drawer-loading small {
        color: #718698
    }

.task-drawer [data-task-field].is-saving {
    opacity: .55
}

.task-drawer-open {
    overflow: hidden
}

button[data-origin-type="Task"], button[data-task-open] {
    cursor: pointer
}

    button[data-origin-type="Task"]:hover, button[data-task-open]:hover {
        border-color: #83b9de !important;
        box-shadow: 0 10px 26px rgba(13,93,151,.12)
    }

.task-admin-tip-v154 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -4px 0 13px;
    padding: 10px 12px;
    border: 1px solid #bddcf0;
    border-radius: 12px;
    background: #eff8ff;
    color: #315c7b
}

    .task-admin-tip-v154 > span {
        display: grid;
        place-items: center;
        flex: 0 0 28px;
        height: 28px;
        border-radius: 9px;
        background: var(--ns-blue);
        color: #fff;
        font-weight: 900
    }

    .task-admin-tip-v154 p {
        margin: 0;
        font-size: .7rem;
        line-height: 1.45
    }

.meeting-summary {
    text-decoration: none;
    color: inherit;
    grid-template-columns: 58px minmax(0,1fr) auto auto auto
}

.meeting-open-v154 {
    color: var(--ns-blue);
    font-size: .62rem;
    font-style: normal;
    font-weight: 850;
    white-space: nowrap
}

.meeting-summary:hover .meeting-open-v154 {
    text-decoration: underline
}

@keyframes v154Spin {
    to {
        transform: rotate(360deg)
    }
}

@keyframes v154Loading {
    0%,100% {
        filter: saturate(.8);
        width: 44px
    }

    50% {
        filter: saturate(1.3);
        width: 82px
    }
}

@media(max-width:720px) {
    .task-drawer-shell {
        width: 100vw
    }

    .task-drawer-tabs {
        top: 73px;
        overflow: auto
    }

        .task-drawer-tabs button {
            min-width: 92px
        }

    .workspace.is-updating .workspace-main {
        transform: none
    }

    .task-full-editor-v154 .cols-3 {
        grid-template-columns: 1fr
    }

    .meeting-summary {
        grid-template-columns: 54px minmax(0,1fr)
    }

    .meeting-open-v154 {
        grid-column: 2
    }
}

.myday-delegation-v15 {
    margin: 20px 0;
}

    .myday-delegation-v15 > header {
        margin-bottom: 12px;
    }

    .myday-delegation-v15 h2 {
        margin: 3px 0;
    }

    .myday-delegation-v15 p {
        margin: 0;
        color: var(--muted);
    }

.delegated-task-list-v15 {
    display: grid;
    gap: 7px;
}

    .delegated-task-list-v15 > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 10px;
        border: 1px solid var(--line);
        border-radius: 10px;
        color: inherit;
        background: #fbfcff;
    }

    .delegated-task-list-v15 a small, .delegated-task-list-v15 a b {
        display: block;
    }

    .delegated-task-list-v15 a small {
        color: var(--muted);
        font-size: .66rem;
    }

    .delegated-task-list-v15 a b {
        margin-top: 2px;
    }

    .delegated-task-list-v15 a em {
        color: var(--nsg-navy);
        font-size: .7rem;
        font-style: normal;
        font-weight: 800;
    }

.idea-classification-v15 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    background: #f8faff;
}

    .idea-classification-v15 span {
        padding: 8px;
        border-radius: 9px;
        background: #fff;
    }

    .idea-classification-v15 small, .idea-classification-v15 b {
        display: block;
    }

    .idea-classification-v15 small {
        color: #8a95aa;
        font-size: .58rem;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .idea-classification-v15 b {
        margin-top: 2px;
        color: var(--nsg-navy);
        font-size: .76rem;
    }

.next-step-section-v15 {
    border-left: 3px solid var(--nsg-orange);
    background: #fffaf5;
}

.idea-evidence-v15 {
    margin: 18px 0;
}

    .idea-evidence-v15 > .crud-upload-v15 {
        grid-template-columns: 160px minmax(180px,1fr) minmax(220px,1.3fr) auto;
    }

.idea-evidence-list-v15 {
    display: grid;
    gap: 9px;
}

    .idea-evidence-list-v15 article {
        border: 1px solid var(--line);
        border-radius: 12px;
        overflow: hidden;
        background: #fbfcff;
    }

        .idea-evidence-list-v15 article > a {
            display: grid;
            grid-template-columns: auto minmax(0,1fr) auto;
            align-items: center;
            gap: 10px;
            padding: 12px;
            color: inherit;
        }

    .idea-evidence-list-v15 a small, .idea-evidence-list-v15 a b, .idea-evidence-list-v15 a p {
        display: block;
        margin: 0;
    }

    .idea-evidence-list-v15 a p {
        margin-top: 3px;
        color: var(--muted);
        font-size: .68rem;
    }

    .idea-evidence-list-v15 article > form {
        padding: 0 12px 12px;
    }

@media(max-width:1100px) {
    .crud-matrix-head-v15, .crud-matrix-row-v15 {
        grid-template-columns: minmax(190px,2fr) 70px repeat(4,60px) 76px
    }

    .results-kpis-v15 {
        grid-template-columns: 1fr 1fr
    }

    .crud-card-grid-v15 {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:760px) {
    .crud-hero-v15 {
        grid-template-columns: 1fr
    }

    .crud-hero-score-v15 {
        min-width: 0
    }

    .crud-matrix-head-v15 {
        display: none
    }

    .crud-matrix-row-v15 {
        grid-template-columns: 1fr repeat(5,auto);
        padding: 14px
    }

        .crud-matrix-row-v15 > span {
            grid-column: 1/-1
        }

        .crud-matrix-row-v15 > a {
            grid-column: 1/-1
        }

    .crud-policy-v15 > div, .results-kpis-v15, .crud-card-grid-v15, .task-responsibility-summary-v15 > div, .idea-classification-v15 {
        grid-template-columns: 1fr
    }

    .crud-upload-v15, .product-add-core-v15, .idea-evidence-v15 > .crud-upload-v15 {
        grid-template-columns: 1fr
    }

    .delegated-task-list-v15 > a {
        align-items: flex-start;
        flex-direction: column
    }
}

.sprint-crud-v15 {
    margin-bottom: 18px
}

    .sprint-crud-v15 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px
    }

        .sprint-crud-v15 > header > span {
            color: var(--muted);
            font-size: .82rem
        }

.sprint-grid-v15 {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(260px,1fr));
    gap: 12px
}

    .sprint-grid-v15 > article {
        border: 1px solid var(--line);
        border-radius: 16px;
        padding: 16px;
        background: var(--surface)
    }

.sprint-card-head-v15 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px
}

.sprint-grid-v15 h4 {
    margin: 12px 0 5px
}

.sprint-grid-v15 p {
    color: var(--muted);
    min-height: 38px
}

.sprint-stats-v15 {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 8px;
    margin: 14px 0
}

    .sprint-stats-v15 span {
        display: grid;
        gap: 2px
    }

    .sprint-stats-v15 b {
        font-size: .9rem
    }

    .sprint-stats-v15 small {
        color: var(--muted);
        font-size: .68rem
    }

.sprint-grid-v15 .crud-editor-v15 {
    margin-top: 12px
}

.form-note-v15 {
    margin: 10px 0;
    color: var(--muted)
}

@media(max-width:700px) {
    .sprint-stats-v15 {
        grid-template-columns: repeat(2,1fr)
    }
}

.collaboration-grid-v15 {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr);
    gap: 18px;
    margin-bottom: 18px
}

.comments-panel-v15 > header, .polls-panel-v15 > header {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.comment-create-v15 {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    margin: 14px 0
}

.comment-feed-v15, .poll-feed-v15 {
    display: grid;
    gap: 10px
}

    .comment-feed-v15 > article, .poll-feed-v15 > article {
        border: 1px solid var(--line);
        border-radius: 14px;
        padding: 14px
    }

        .comment-feed-v15 > article.pinned {
            border-color: #f4c95d;
            background: #fffdf5
        }

        .comment-feed-v15 > article > header, .poll-feed-v15 > article > header {
            display: flex;
            justify-content: space-between;
            gap: 12px
        }

    .comment-feed-v15 header div {
        display: grid
    }

    .comment-feed-v15 p {
        white-space: pre-wrap
    }

    .comment-feed-v15 footer {
        display: flex;
        gap: 10px;
        align-items: center
    }

        .comment-feed-v15 footer details {
            position: relative
        }

.pin-v15 {
    color: #8b6400;
    font-size: .75rem;
    font-weight: 800
}

.poll-options-v15 {
    display: grid;
    gap: 8px;
    margin: 12px 0
}

    .poll-options-v15 form {
        margin: 0
    }

    .poll-options-v15 button {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr auto auto;
        align-items: center;
        text-align: left;
        gap: 8px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: var(--surface-2);
        padding: 10px 12px;
        color: inherit
    }

        .poll-options-v15 button:not(:disabled) {
            cursor: pointer
        }

            .poll-options-v15 button:not(:disabled):hover, .poll-options-v15 button.selected {
                border-color: var(--ns-orange);
                background: var(--ns-orange-soft)
            }

        .poll-options-v15 button small {
            color: var(--ns-orange-strong);
            font-weight: 800
        }

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

    .check-line input {
        width: auto !important
    }

.collaboration-grid-v15 + .trace-layout {
    margin-top: 0
}

@media(max-width:900px) {
    .collaboration-grid-v15 {
        grid-template-columns: 1fr
    }

    .comment-create-v15 {
        grid-template-columns: 1fr
    }
}

/* V15.1 · Centro de innovación unificado: Idea → Iniciativa → Resultado */
.innovation-hub-hero {
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(330px,.75fr);
    gap: 22px;
    padding: 28px;
    border-radius: 24px;
    color: #fff;
    background: radial-gradient(circle at 10% 15%,rgba(244,123,32,.3),transparent 32%),linear-gradient(135deg,#172552,#2e4387 68%,#24356f);
    box-shadow: 0 20px 46px rgba(25,39,84,.17)
}

.innovation-hub-copy h2 {
    max-width: 760px;
    margin: 5px 0 9px;
    color: #fff;
    font-size: 1.65rem
}

.innovation-hub-copy > p {
    max-width: 820px;
    margin: 0;
    color: rgba(255,255,255,.8);
    line-height: 1.65
}

.innovation-hub-copy .eyebrow {
    color: #ffd991
}

.innovation-flow {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 22px
}

    .innovation-flow > span {
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 105px;
        padding: 10px 12px;
        border: 1px solid rgba(255,255,255,.18);
        border-radius: 13px;
        background: rgba(255,255,255,.09)
    }

    .innovation-flow b {
        display: grid;
        place-items: center;
        width: 26px;
        height: 26px;
        border-radius: 9px;
        background: var(--nsg-orange);
        font-size: .72rem
    }

    .innovation-flow small {
        font-size: .7rem;
        font-weight: 800
    }

    .innovation-flow > i {
        color: #ffd08c;
        font-style: normal;
        font-weight: 900
    }

.innovation-hub-summary {
    display: grid;
    gap: 10px
}

    .innovation-hub-summary article {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: 2px 12px;
        padding: 14px 16px;
        border: 1px solid rgba(255,255,255,.17);
        border-radius: 15px;
        background: rgba(255,255,255,.09)
    }

    .innovation-hub-summary small, .innovation-hub-summary span {
        color: rgba(255,255,255,.72)
    }

    .innovation-hub-summary small {
        font-size: .65rem;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: .06em
    }

    .innovation-hub-summary strong {
        grid-row: 1/3;
        grid-column: 2;
        font-size: 1.8rem
    }

    .innovation-hub-summary span {
        font-size: .68rem
    }

.innovation-scope-tabs {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
    margin: 17px 0;
    padding: 7px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(25,39,84,.06)
}

    .innovation-scope-tabs a {
        display: flex;
        flex-direction: column;
        gap: 3px;
        padding: 12px 14px;
        border-radius: 12px;
        color: var(--nsg-navy);
        text-decoration: none
    }

        .innovation-scope-tabs a:hover {
            background: #f4f7fd
        }

        .innovation-scope-tabs a.active {
            color: #fff;
            background: linear-gradient(135deg,var(--nsg-navy),#3e579f);
            box-shadow: 0 8px 18px rgba(36,53,111,.2)
        }

    .innovation-scope-tabs span {
        font-size: .78rem;
        font-weight: 900
    }

    .innovation-scope-tabs small {
        color: inherit;
        opacity: .7;
        font-size: .62rem
    }

.innovation-unified-toolbar {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin-bottom: 20px
}

    .innovation-unified-toolbar select {
        min-width: 170px;
        height: 42px;
        padding: 0 10px;
        border: 1px solid #d2e0ea;
        border-radius: 11px;
        background: #fff;
        color: var(--ink)
    }

.innovation-section {
    margin-top: 22px
}

.innovation-section-title {
    align-items: flex-end
}

    .innovation-section-title p {
        max-width: 680px;
        margin: 5px 0 0;
        color: var(--muted)
    }

.section-title-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.innovation-idea-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px
}

.innovation-idea-card {
    display: flex;
    flex-direction: column;
    gap: 13px;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--nsg-orange);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(25,39,84,.07)
}

    .innovation-idea-card > header, .innovation-idea-card > footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px
    }

.record-type {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: .61rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em
}

    .record-type.idea {
        color: #a34d0b;
        background: #fff1e5
    }

.innovation-record-main {
    color: inherit;
    text-decoration: none
}

    .innovation-record-main h3 {
        margin: 0 0 7px;
        color: var(--nsg-navy);
        font-size: 1.02rem
    }

    .innovation-record-main p {
        display: -webkit-box;
        min-height: 45px;
        margin: 0;
        overflow: hidden;
        color: var(--muted);
        font-size: .76rem;
        line-height: 1.5;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2
    }

    .innovation-record-main:hover h3 {
        color: #3454a1
    }

.innovation-record-meta {
    display: grid;
    grid-template-columns: 1.15fr .65fr .9fr;
    gap: 8px;
    margin: 0
}

    .innovation-record-meta > div {
        min-width: 0;
        padding: 8px 9px;
        border-radius: 10px;
        background: #f6f8fc
    }

    .innovation-record-meta dt, .innovation-record-meta dd {
        margin: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .innovation-record-meta dt {
        color: var(--muted);
        font-size: .56rem;
        font-weight: 900;
        text-transform: uppercase
    }

    .innovation-record-meta dd {
        margin-top: 3px;
        color: var(--nsg-navy);
        font-size: .7rem;
        font-weight: 800
    }

.continuity-link {
    display: grid;
    grid-template-columns: 32px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px;
    border: 1px solid #dce5ef;
    border-radius: 12px;
    color: inherit;
    text-decoration: none
}

    .continuity-link > span {
        display: grid;
        place-items: center;
        width: 32px;
        height: 32px;
        border-radius: 10px;
        font-weight: 900
    }

    .continuity-link small, .continuity-link b {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .continuity-link small {
        color: var(--muted);
        font-size: .57rem;
        text-transform: uppercase;
        font-weight: 900
    }

    .continuity-link b {
        margin-top: 3px;
        font-size: .7rem
    }

    .continuity-link em {
        color: var(--nsg-navy);
        font-size: .65rem;
        font-style: normal;
        font-weight: 900
    }

    .continuity-link.connected {
        border-color: #bde4d3;
        background: #f1fbf6
    }

        .continuity-link.connected > span {
            color: #087b52;
            background: #dff5e9
        }

    .continuity-link.pending {
        border-color: #f1d3b8;
        background: #fff8f1
    }

        .continuity-link.pending > span {
            color: #b9550a;
            background: #ffe8d5
        }

.innovation-idea-card > footer > span {
    color: var(--muted);
    font-size: .64rem
}

.innovation-idea-card > footer > div {
    display: flex;
    gap: 6px
}

.board-origin {
    display: grid;
    grid-template-columns: 27px minmax(0,1fr);
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
    border-radius: 11px
}

    .board-origin > span {
        display: grid;
        place-items: center;
        width: 27px;
        height: 27px;
        border-radius: 9px
    }

    .board-origin small, .board-origin b {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .board-origin small {
        color: var(--muted);
        font-size: .54rem;
        text-transform: uppercase;
        font-weight: 900
    }

    .board-origin b {
        margin-top: 2px;
        font-size: .66rem
    }

    .board-origin.connected {
        background: #f1fbf6
    }

        .board-origin.connected > span {
            color: #087b52;
            background: #dff5e9
        }

    .board-origin.direct {
        background: #f4f6fb
    }

        .board-origin.direct > span {
            color: var(--nsg-navy);
            background: #e7ebf6
        }

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

    .innovation-hub-summary {
        grid-template-columns: repeat(3,1fr)
    }

        .innovation-hub-summary article {
            grid-template-columns: 1fr
        }

        .innovation-hub-summary strong {
            grid-row: auto;
            grid-column: auto
        }

    .innovation-flow {
        overflow: auto
    }

    .innovation-idea-grid {
        grid-template-columns: 1fr
    }
}

@media(max-width:760px) {
    .innovation-hub-hero {
        padding: 21px
    }

    .innovation-hub-summary {
        grid-template-columns: 1fr
    }

    .innovation-scope-tabs {
        grid-template-columns: 1fr 1fr
    }

    .innovation-flow {
        display: grid;
        grid-template-columns: 1fr 28px 1fr
    }

        .innovation-flow > span {
            min-width: 0
        }

        .innovation-flow > i:nth-of-type(2) {
            display: none
        }

    .innovation-record-meta {
        grid-template-columns: 1fr
    }

    .innovation-idea-card > footer {
        align-items: flex-start;
        flex-direction: column
    }

    .innovation-unified-toolbar > * {
        width: 100%
    }

    .innovation-unified-toolbar .favorite-filter {
        width: 100%
    }
}

/* Mantener cinco fases visibles aunque las reglas base de la guía aparezcan antes. */
.one-step-guide-v15.idea-lifecycle-v155 > nav {
    grid-template-columns: repeat(5,1fr)
}

@media(max-width:900px) {
    .one-step-guide-v15.idea-lifecycle-v155 > nav {
        grid-template-columns: repeat(2,1fr)
    }
}

@media(max-width:600px) {
    .one-step-guide-v15.idea-lifecycle-v155 > nav {
        grid-template-columns: 1fr
    }
}

/* V15.6 · Ideas y productos separados, Gantt editable y retroalimentación discreta. */
.idea-gantt-studio-v156 {
    margin: 16px 18px 22px;
    border: 1px solid #cfe0ec;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(19,61,94,.08);
    overflow: hidden;
    animation: v156Rise .42s ease both
}

    .idea-gantt-studio-v156 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 18px;
        padding: 18px 20px;
        border-bottom: 1px solid #dce8f0;
        background: linear-gradient(135deg,#f9fcff,#eef7fd)
    }

        .idea-gantt-studio-v156 > header small {
            color: var(--ns-blue);
            font-size: .59rem;
            font-weight: 950;
            letter-spacing: .1em
        }

        .idea-gantt-studio-v156 > header h3 {
            margin: 4px 0;
            font-size: 1.08rem
        }

        .idea-gantt-studio-v156 > header p {
            max-width: 660px;
            margin: 0;
            color: var(--muted);
            font-size: .72rem;
            line-height: 1.5
        }

.idea-gantt-toolbar-v156 {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap
}

    .idea-gantt-toolbar-v156 label {
        display: grid;
        gap: 4px;
        color: #64798a;
        font-size: .58rem;
        font-weight: 850
    }

    .idea-gantt-toolbar-v156 select {
        min-height: 34px;
        padding: 0 9px;
        border: 1px solid #cbdce8;
        border-radius: 9px;
        background: #fff;
        color: var(--ink)
    }

.gantt-density-v156 {
    display: flex;
    padding: 3px;
    border: 1px solid #d2e1ec;
    border-radius: 10px;
    background: #fff
}

    .gantt-density-v156 button {
        padding: 7px 9px;
        border: 0;
        border-radius: 7px;
        background: transparent;
        color: #617789;
        font-size: .58rem;
        font-weight: 850;
        cursor: pointer
    }

        .gantt-density-v156 button.active {
            color: #fff;
            background: var(--ns-blue)
        }

.idea-gantt-scroll-v156 {
    overflow: auto;
    scroll-behavior: smooth
}

.idea-gantt-canvas-v156 {
    min-width: 900px;
    transition: min-width .22s ease
}

.idea-gantt-studio-v156[data-gantt-density="compact"] .idea-gantt-canvas-v156 {
    min-width: 760px
}

.idea-gantt-studio-v156[data-gantt-density="wide"] .idea-gantt-canvas-v156 {
    min-width: 1300px
}

.idea-gantt-axis-v156, .idea-gantt-row-v156 {
    display: grid;
    grid-template-columns: 250px minmax(430px,1fr) 104px;
    align-items: center;
    gap: 12px
}

.idea-gantt-axis-v156 {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 10px 16px;
    color: #718698;
    background: #fff;
    border-bottom: 1px solid #e5edf3;
    font-size: .58rem
}

    .idea-gantt-axis-v156 > div {
        display: flex;
        justify-content: space-between
    }

.idea-gantt-row-v156 {
    position: relative;
    min-height: 62px;
    padding: 8px 16px;
    border-bottom: 1px solid #edf2f6;
    transition: background .18s,transform .18s
}

    .idea-gantt-row-v156:hover {
        z-index: 4;
        background: #f7fbfe
    }

    .idea-gantt-row-v156[hidden] {
        display: none
    }

.idea-gantt-label-v156 {
    display: grid;
    grid-template-columns: 9px minmax(0,1fr);
    align-items: center;
    gap: 9px;
    color: inherit;
    text-decoration: none
}

    .idea-gantt-label-v156 b, .idea-gantt-label-v156 small {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .idea-gantt-label-v156 b {
        font-size: .69rem
    }

    .idea-gantt-label-v156 small {
        margin-top: 3px;
        color: var(--muted);
        font-size: .57rem
    }

.phase-dot-v156 {
    width: 9px;
    height: 30px;
    border-radius: 999px;
    background: #4c8ec6
}

.idea-gantt-lane-v156 {
    position: relative;
    height: 29px;
    border-radius: 9px;
    background: repeating-linear-gradient(90deg,#edf3f7 0,#edf3f7 1px,transparent 1px,transparent 12.5%),linear-gradient(#fbfdff,#f7fafc)
}

    .idea-gantt-lane-v156::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        border-left: 1px dashed #cbdbe7
    }

.idea-gantt-bar-v156 {
    position: absolute;
    top: 5px;
    display: flex;
    align-items: center;
    min-width: 16px;
    height: 19px;
    border-radius: 6px;
    background: #8fbce0;
    box-shadow: 0 4px 10px rgba(28,89,136,.18);
    overflow: hidden;
    animation: v156Grow .48s cubic-bezier(.2,.8,.2,1) both
}

    .idea-gantt-bar-v156 > i {
        height: 100%;
        background: #176fae;
        opacity: .88
    }

    .idea-gantt-bar-v156 > em {
        position: absolute;
        right: 5px;
        color: #fff;
        font-size: .5rem;
        font-style: normal;
        font-weight: 900;
        text-shadow: 0 1px 2px rgba(0,0,0,.25)
    }

    .idea-gantt-bar-v156.milestone {
        min-width: 18px;
        max-width: 18px;
        border-radius: 4px;
        transform: rotate(45deg)
    }

        .idea-gantt-bar-v156.milestone em {
            display: none
        }

.idea-gantt-row-v156.phase-investigacion .phase-dot-v156, .idea-gantt-row-v156.phase-investigacion .idea-gantt-bar-v156 {
    background: #52a3d8
}

    .idea-gantt-row-v156.phase-investigacion .idea-gantt-bar-v156 > i {
        background: #0868a8
    }

.idea-gantt-row-v156.phase-diseno .phase-dot-v156, .idea-gantt-row-v156.phase-diseno .idea-gantt-bar-v156 {
    background: #9d82d4
}

    .idea-gantt-row-v156.phase-diseno .idea-gantt-bar-v156 > i {
        background: #6847ad
    }

.idea-gantt-row-v156.phase-experimento .phase-dot-v156, .idea-gantt-row-v156.phase-experimento .idea-gantt-bar-v156 {
    background: #e9a54c
}

    .idea-gantt-row-v156.phase-experimento .idea-gantt-bar-v156 > i {
        background: #c66c13
    }

.idea-gantt-row-v156.phase-decision .phase-dot-v156, .idea-gantt-row-v156.phase-decision .idea-gantt-bar-v156 {
    background: #e07777
}

    .idea-gantt-row-v156.phase-decision .idea-gantt-bar-v156 > i {
        background: #b33131
    }

.idea-gantt-row-v156.phase-preparacionejecucion .phase-dot-v156, .idea-gantt-row-v156.phase-preparacionejecucion .idea-gantt-bar-v156 {
    background: #62ba91
}

    .idea-gantt-row-v156.phase-preparacionejecucion .idea-gantt-bar-v156 > i {
        background: #19815a
    }

.idea-gantt-quick-v156 {
    position: relative
}

    .idea-gantt-quick-v156 > summary {
        padding: 7px 9px;
        border: 1px solid #cbdce8;
        border-radius: 9px;
        color: var(--ns-blue);
        background: #fff;
        cursor: pointer;
        list-style: none;
        text-align: center;
        font-size: .62rem;
        font-weight: 850
    }

    .idea-gantt-quick-v156[open] > summary {
        color: #fff;
        background: var(--ns-blue)
    }

    .idea-gantt-quick-v156 > form {
        position: absolute;
        right: 0;
        top: 39px;
        z-index: 12;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 9px;
        width: 360px;
        padding: 14px;
        border: 1px solid #c9dce9;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 20px 48px rgba(16,55,85,.2)
    }

    .idea-gantt-quick-v156 label {
        display: grid;
        gap: 4px;
        color: #607687;
        font-size: .58rem;
        font-weight: 850
    }

    .idea-gantt-quick-v156 input, .idea-gantt-quick-v156 select {
        min-width: 0;
        width: 100%;
        padding: 7px;
        border: 1px solid #cfdee8;
        border-radius: 8px
    }

        .idea-gantt-quick-v156 input[type="range"] {
            padding: 0
        }

    .idea-gantt-quick-v156 form > div:last-child {
        grid-column: 1/-1;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px
    }

    .idea-gantt-quick-v156 form a {
        color: var(--ns-blue);
        font-size: .6rem;
        font-weight: 850
    }

.idea-gantt-progress-v156 {
    text-align: center;
    font-size: .7rem;
    font-weight: 900
}

.idea-gantt-studio-v156 > footer {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 18px;
    color: #617789;
    background: #f7fafc;
    font-size: .61rem
}

    .idea-gantt-studio-v156 > footer b {
        color: var(--ns-blue)
    }

.idea-work-item-v155:target {
    outline: 3px solid rgba(28,151,208,.28);
    animation: v156Pulse .9s ease
}

.innovation-source-problem-v156 {
    margin: 10px 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.55
}

.innovation-source-counters .approved {
    color: #087b52;
    background: #e6f7ef
}

.innovation-source-separation-v156 {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 12px 0;
    padding: 10px;
    border-radius: 11px;
    background: #f5f8fc;
    color: #64758a;
    font-size: .65rem
}

    .innovation-source-separation-v156 span {
        padding: 5px 7px;
        border-radius: 7px;
        color: #fff;
        background: var(--nsg-navy);
        font-weight: 900
    }

    .innovation-source-separation-v156 b {
        color: var(--nsg-orange)
    }

.idea-detail-layout.is-updating main, .idea-detail-layout.is-updating aside {
    opacity: 1;
    pointer-events: auto
}

.is-saving-v156 {
    position: relative;
    opacity: .72;
    pointer-events: none
}

    .is-saving-v156::after {
        content: "";
        position: absolute;
        inset: -3px;
        border: 2px solid transparent;
        border-top-color: var(--ns-blue);
        border-radius: 12px;
        animation: v154Spin .7s linear infinite
    }

.ajax-form-state-v156 {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    margin-left: 7px;
    color: #607687;
    font-size: .62rem;
    font-weight: 800
}

    .ajax-form-state-v156.error {
        color: #a1261e
    }

.toast-stack-v156 {
    position: fixed;
    right: 18px;
    top: 78px;
    z-index: 340;
    display: flex;
    flex-direction: column;
    gap: 9px;
    width: min(370px,calc(100vw - 24px));
    pointer-events: none
}

    .toast-stack-v156 .toast {
        position: relative;
        inset: auto;
        display: grid;
        grid-template-columns: 34px minmax(0,1fr) 28px;
        gap: 10px;
        width: 100%;
        max-width: none;
        padding: 11px 11px 9px;
        border: 1px solid #d7e3ec;
        border-left: 0;
        border-radius: 14px;
        background: rgba(255,255,255,.98);
        box-shadow: 0 15px 38px rgba(16,50,75,.16);
        pointer-events: auto;
        overflow: hidden;
        animation: v156ToastIn .3s cubic-bezier(.2,.8,.2,1) both
    }

    .toast-stack-v156 .toast-icon-v156 {
        display: grid;
        place-items: center;
        width: 34px;
        height: 34px;
        border-radius: 10px;
        color: #fff;
        background: #18845d;
        font-weight: 950
    }

    .toast-stack-v156 .toast.error .toast-icon-v156 {
        background: #bf3f38
    }

    .toast-stack-v156 .toast.info .toast-icon-v156 {
        background: #2474ad
    }

    .toast-stack-v156 .toast-copy-v156 b, .toast-stack-v156 .toast-copy-v156 span {
        display: block
    }

    .toast-stack-v156 .toast-copy-v156 b {
        font-size: .7rem
    }

    .toast-stack-v156 .toast-copy-v156 span {
        margin-top: 2px;
        color: #5f7281;
        font-size: .66rem;
        line-height: 1.4
    }

    .toast-stack-v156 .toast button {
        align-self: start;
        width: 28px;
        height: 28px;
        padding: 0;
        border-radius: 8px;
        cursor: pointer
    }

.toast-progress-v156 {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg,#17875f,#56c79b);
    transform-origin: left;
    animation: v156ToastTimer var(--toast-duration,5500ms) linear forwards
}

.toast.error .toast-progress-v156 {
    background: #c94840
}

.toast.info .toast-progress-v156 {
    background: #2e81bd
}

.toast.paused .toast-progress-v156 {
    animation-play-state: paused
}

.toast-stack-v156 .toast.hide {
    animation: v156ToastOut .22s ease forwards
}

@keyframes v156Grow {
    from {
        transform: scaleX(.25);
        transform-origin: left;
        opacity: .35
    }
}

@keyframes v156Rise {
    from {
        opacity: 0;
        transform: translateY(8px)
    }
}

@keyframes v156Pulse {
    50% {
        outline-color: rgba(28,151,208,.6)
    }
}

@keyframes v156ToastIn {
    from {
        opacity: 0;
        transform: translateX(22px) scale(.98)
    }
}

@keyframes v156ToastOut {
    to {
        opacity: 0;
        transform: translateX(18px) scale(.98)
    }
}

@keyframes v156ToastTimer {
    to {
        transform: scaleX(0)
    }
}

@media(max-width:900px) {
    .idea-gantt-studio-v156 > header {
        flex-direction: column
    }

    .idea-gantt-toolbar-v156 {
        width: 100%
    }

    .idea-gantt-quick-v156 > form {
        position: fixed;
        left: 12px;
        right: 12px;
        top: auto;
        bottom: 12px;
        width: auto;
        z-index: 360
    }

    .toast-stack-v156 {
        top: auto;
        right: 12px;
        bottom: 12px
    }

    .innovation-source-separation-v156 i {
        display: none
    }
}

@media(prefers-reduced-motion:reduce) {
    .idea-gantt-studio-v156, .idea-gantt-bar-v156, .idea-work-item-v155:target, .toast-stack-v156 .toast, .toast-progress-v156 {
        animation: none !important
    }

    .idea-gantt-scroll-v156 {
        scroll-behavior: auto
    }
}

/* V15.7 · menos interfaz explicativa, más trabajo visible y Gantt manipulable. */
.idea-detail-layout {
    display: block;
    max-width: 1320px;
    margin: 0 auto
}

    .idea-detail-layout > main {
        min-width: 0
    }

.idea-detail-card {
    padding: 20px 24px
}

    .idea-detail-card > header > div:nth-child(2) {
        display: grid;
        gap: 2px;
        min-width: 0
    }

        .idea-detail-card > header > div:nth-child(2) b {
            font-size: .9rem
        }

        .idea-detail-card > header > div:nth-child(2) small {
            color: var(--muted);
            font-size: .67rem
        }

    .idea-detail-card .idea-state {
        margin-left: auto
    }

    .idea-detail-card > section {
        padding: 13px 0
    }

        .idea-detail-card > section > span {
            font-size: .61rem;
            font-weight: 900;
            letter-spacing: .06em
        }

        .idea-detail-card > section > p {
            margin: 5px 0 0;
            line-height: 1.55
        }

.idea-transition-bar-v157 {
    display: grid;
    grid-template-columns: minmax(210px,.85fr) minmax(390px,1.25fr) auto;
    align-items: center;
    gap: 16px;
    margin: 14px 0;
    padding: 13px 15px;
    border: 1px solid #d9e4ec;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(20,61,94,.05)
}

    .idea-transition-bar-v157.ready {
        border-color: #a9dbc3;
        background: #fbfffd
    }

    .idea-transition-bar-v157.connected {
        border-color: #a9cee8;
        background: #fafdff
    }

.idea-transition-state-v157 {
    display: flex;
    align-items: center;
    gap: 11px
}

.transition-score-v157 {
    display: grid;
    place-items: center;
    flex: 0 0 46px;
    height: 46px;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(135deg,#71879a,#4f6578)
}

.ready .transition-score-v157, .connected .transition-score-v157 {
    background: linear-gradient(135deg,#149267,#30b483)
}

.transition-score-v157 b {
    font-size: 1rem
}

.transition-score-v157 small {
    font-size: .48rem
}

.idea-transition-state-v157 > div small {
    color: var(--ns-blue);
    font-size: .55rem;
    font-weight: 900;
    letter-spacing: .08em
}

.idea-transition-state-v157 h3 {
    margin: 3px 0 0;
    font-size: .82rem
}

.idea-bases-inline-v157 {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 6px
}

    .idea-bases-inline-v157 span {
        display: flex;
        align-items: center;
        gap: 6px;
        min-width: 0;
        padding: 8px;
        border-radius: 9px;
        color: #6b7d8b;
        background: #f3f6f8;
        font-size: .58rem;
        font-weight: 800;
        white-space: nowrap
    }

    .idea-bases-inline-v157 i {
        flex: 0 0 9px;
        height: 9px;
        border: 2px solid #91a1ad;
        border-radius: 50%
    }

    .idea-bases-inline-v157 span.done {
        color: #16734f;
        background: #eaf7f0
    }

        .idea-bases-inline-v157 span.done i {
            border-color: #159064;
            background: #159064;
            box-shadow: inset 0 0 0 2px #eaf7f0
        }

.idea-transition-actions-v157 {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px
}

    .idea-transition-actions-v157 form {
        margin: 0
    }

    .idea-transition-actions-v157 .btn {
        white-space: nowrap
    }

.transition-private-v157 {
    max-width: 190px;
    color: #657988;
    font-size: .6rem
}

.idea-missing-v157 {
    grid-column: 1/-1;
    margin: -4px 0 0;
    border-top: 1px dashed #d8e3eb
}

    .idea-missing-v157 summary {
        width: max-content;
        padding-top: 8px;
        color: var(--ns-blue);
        cursor: pointer;
        font-size: .59rem;
        font-weight: 850
    }

    .idea-missing-v157 p {
        margin: 7px 0 0;
        color: #6a7d8c;
        font-size: .64rem
    }

.idea-admin-compact-v157 {
    margin: 14px 0;
    border: 1px solid #e4e9ed;
    border-radius: 12px;
    background: #fafbfc
}

    .idea-admin-compact-v157 > summary {
        padding: 10px 13px;
        color: #657685;
        cursor: pointer;
        font-size: .65rem;
        font-weight: 800
    }

    .idea-admin-compact-v157 > div {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        padding: 0 12px 12px
    }

    .idea-admin-compact-v157 form {
        margin: 0
    }

.idea-workflow-v155 {
    background: #f5f8fa;
    box-shadow: 0 10px 28px rgba(19,61,94,.06)
}

.idea-workflow-head-v155 {
    padding: 17px 19px;
    background: #fff
}

    .idea-workflow-head-v155 h2 {
        font-size: 1.18rem
    }

    .idea-workflow-head-v155 p {
        font-size: .72rem
    }

.idea-gantt-studio-v157 {
    margin: 12px 14px 18px;
    border-radius: 16px;
    box-shadow: none
}

    .idea-gantt-studio-v157 > header {
        padding: 15px 17px;
        background: #f8fbfd
    }

        .idea-gantt-studio-v157 > header h3 {
            font-size: 1.02rem
        }

    .idea-gantt-studio-v157 .idea-gantt-canvas-v156 {
        position: relative;
        min-width: 1040px
    }

    .idea-gantt-studio-v157[data-gantt-density="compact"] .idea-gantt-canvas-v156 {
        min-width: 860px
    }

    .idea-gantt-studio-v157[data-gantt-density="wide"] .idea-gantt-canvas-v156 {
        min-width: 1540px
    }

.gantt-phase-legend-v157 {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 9px 17px;
    border-bottom: 1px solid #e3ebf1;
    background: #fff
}

    .gantt-phase-legend-v157 span {
        display: flex;
        align-items: center;
        gap: 5px;
        color: #5f7383;
        font-size: .55rem;
        font-weight: 800
    }

        .gantt-phase-legend-v157 span::before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 3px;
            background: #52a3d8
        }

    .gantt-phase-legend-v157 .diseno::before {
        background: #9d82d4
    }

    .gantt-phase-legend-v157 .experimento::before {
        background: #e9a54c
    }

    .gantt-phase-legend-v157 .decision::before {
        background: #e07777
    }

    .gantt-phase-legend-v157 .preparacion::before {
        background: #62ba91
    }

    .gantt-phase-legend-v157 small {
        margin-left: auto;
        color: #7d8b96;
        font-size: .55rem
    }

.idea-gantt-studio-v157 .idea-gantt-axis-v156, .idea-gantt-studio-v157 .idea-gantt-row-v156 {
    grid-template-columns: 250px minmax(520px,1fr) 104px
}

    .idea-gantt-studio-v157 .idea-gantt-axis-v156 > div {
        display: grid;
        grid-template-columns: repeat(7,1fr);
        text-align: center
    }

        .idea-gantt-studio-v157 .idea-gantt-axis-v156 > div b:first-child {
            text-align: left
        }

        .idea-gantt-studio-v157 .idea-gantt-axis-v156 > div b:last-child {
            text-align: right
        }

.idea-gantt-studio-v157 .idea-gantt-row-v156 {
    min-height: 70px;
    padding-top: 10px;
    padding-bottom: 10px
}

.idea-gantt-row-v156.is-editing {
    z-index: 5;
    background: #f7fbff
}

.idea-gantt-row-v156.is-dirty {
    box-shadow: inset 3px 0 #f36f21
}

.idea-gantt-row-v156.is-dragging {
    cursor: grabbing;
    user-select: none
}

.idea-gantt-lane-v156 {
    height: 36px;
    background-size: calc(100% / 6) 100%
}

    .idea-gantt-lane-v156::after {
        display: none
    }

.idea-gantt-bar-v156 {
    top: 7px;
    height: 22px;
    cursor: grab;
    overflow: visible;
    touch-action: none
}

    .idea-gantt-bar-v156:active {
        cursor: grabbing
    }

    .idea-gantt-bar-v156 > i {
        border-radius: 6px 0 0 6px;
        pointer-events: none
    }

    .idea-gantt-bar-v156 > em {
        top: 4px;
        pointer-events: none
    }

    .idea-gantt-bar-v156 > [data-gantt-resize] {
        position: absolute;
        top: 1px;
        bottom: 1px;
        width: 9px;
        padding: 0;
        border: 0;
        border-radius: 5px;
        background: rgba(255,255,255,.72);
        opacity: 0;
        cursor: ew-resize;
        transition: opacity .15s
    }

    .idea-gantt-bar-v156:hover > [data-gantt-resize], .idea-gantt-row-v156.is-dragging [data-gantt-resize] {
        opacity: 1
    }

    .idea-gantt-bar-v156 > [data-gantt-resize="start"] {
        left: 2px
    }

    .idea-gantt-bar-v156 > [data-gantt-resize="end"] {
        right: 2px
    }

.gantt-adjust-button-v157 {
    padding: 8px 10px;
    border: 1px solid #c9d9e5;
    border-radius: 9px;
    color: var(--ns-blue);
    background: #fff;
    font-size: .61rem;
    font-weight: 850;
    cursor: pointer
}

    .gantt-adjust-button-v157[aria-expanded="true"] {
        color: #fff;
        border-color: var(--ns-blue);
        background: var(--ns-blue)
    }

.idea-gantt-inline-editor-v157 {
    grid-column: 1/-1;
    margin: 3px 0 2px;
    padding: 12px 14px;
    border: 1px solid #cbdfea;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 10px 25px rgba(19,61,94,.08)
}

    .idea-gantt-inline-editor-v157[hidden] {
        display: none
    }

    .idea-gantt-inline-editor-v157 form {
        display: grid;
        grid-template-columns: 140px 140px minmax(180px,1fr) 150px minmax(190px,1fr);
        align-items: end;
        gap: 9px
    }

    .idea-gantt-inline-editor-v157 label {
        display: grid;
        gap: 5px;
        color: #607584;
        font-size: .58rem;
        font-weight: 850
    }

    .idea-gantt-inline-editor-v157 input, .idea-gantt-inline-editor-v157 select {
        min-width: 0;
        width: 100%;
        height: 36px;
        padding: 0 8px;
        border: 1px solid #ccdae4;
        border-radius: 8px;
        background: #fff
    }

        .idea-gantt-inline-editor-v157 input[type="range"] {
            height: auto;
            padding: 0
        }

    .idea-gantt-inline-editor-v157 form > div {
        grid-column: 1/-1;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 12px;
        padding-top: 3px
    }

        .idea-gantt-inline-editor-v157 form > div > span {
            margin-right: auto;
            color: #71828f;
            font-size: .58rem
        }

        .idea-gantt-inline-editor-v157 form > div > a {
            color: var(--ns-blue);
            font-size: .6rem;
            font-weight: 850
        }

.gantt-today-line-v157 {
    position: absolute;
    top: 42px;
    bottom: 0;
    z-index: 2;
    border-left: 1px dashed #f36f21;
    pointer-events: none
}

    .gantt-today-line-v157 > span {
        position: absolute;
        top: -2px;
        left: -16px;
        padding: 3px 5px;
        border-radius: 6px;
        color: #fff;
        background: #f36f21;
        font-size: .48rem;
        font-weight: 900
    }

.idea-gantt-studio-v157.is-focused-v157 {
    position: fixed;
    inset: 12px;
    z-index: 520;
    display: flex;
    flex-direction: column;
    margin: 0;
    max-height: calc(100vh - 24px);
    border-radius: 18px;
    box-shadow: 0 30px 90px rgba(5,27,44,.28)
}

    .idea-gantt-studio-v157.is-focused-v157 .idea-gantt-scroll-v156 {
        flex: 1
    }

    .idea-gantt-studio-v157.is-focused-v157 .idea-gantt-canvas-v156 {
        min-width: 1400px
    }

.gantt-focus-open-v157 {
    overflow: hidden
}

    .gantt-focus-open-v157::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 510;
        background: rgba(7,25,40,.55);
        backdrop-filter: blur(2px)
    }

.idea-phase-stack-v155 {
    gap: 8px;
    padding: 12px 14px 16px
}

.idea-phase-card-v155 > summary {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 13px 15px;
    cursor: pointer;
    list-style: none;
    background: #fff
}

    .idea-phase-card-v155 > summary small {
        color: #0757a6;
        font-size: .61rem;
        font-weight: 900;
        letter-spacing: .08em
    }

    .idea-phase-card-v155 > summary h3 {
        margin: 2px 0;
        font-size: .95rem
    }

    .idea-phase-card-v155 > summary p {
        margin: 0;
        color: #647786;
        font-size: .68rem
    }

    .idea-phase-card-v155 > summary > span {
        display: flex;
        align-items: center;
        gap: 8px;
        color: #617584;
        font-size: .62rem;
        font-weight: 800
    }

        .idea-phase-card-v155 > summary > span i {
            font-style: normal;
            transition: transform .18s
        }

.idea-phase-card-v155[open] > summary > span i {
    transform: rotate(180deg)
}

.idea-phase-card-v155[open] > summary {
    border-bottom: 1px solid #e5edf3;
    background: #f9fcfe
}

.idea-phase-card-v155:not([open]):hover > summary {
    background: #f8fbfd
}

.idea-phase-card-v155 .phase-number-v155 {
    width: 34px;
    height: 34px;
    border-radius: 10px
}

.idea-phase-card-v155 .idea-phase-items-v155 {
    padding: 12px 14px
}

.idea-work-item-v155 {
    padding: 13px
}

.idea-learning-grid-v155 {
    margin-top: 9px
}

.product-explore-v157 {
    grid-template-columns: minmax(0,1fr) auto;
    padding: 20px 22px
}

    .product-explore-v157 h2 {
        font-size: 1.35rem
    }

    .product-explore-v157 p {
        max-width: 760px
    }

.product-timeline-v157 > header {
    padding: 15px 17px;
    border-bottom: 1px solid var(--line);
    background: #f8fbfd
}

    .product-timeline-v157 > header small {
        color: var(--ns-blue);
        font-size: .58rem;
        font-weight: 900
    }

    .product-timeline-v157 > header h3 {
        margin: 3px 0;
        font-size: 1rem
    }

    .product-timeline-v157 > header p {
        margin: 0;
        color: var(--muted);
        font-size: .68rem
    }

.product-timeline-v157 .timeline-row:hover {
    background: #f7fbff
}

.product-timeline-v157 .timeline-product-bar {
    box-shadow: 0 5px 13px rgba(20,91,144,.2)
}

@media(max-width:1050px) {
    .idea-transition-bar-v157 {
        grid-template-columns: 1fr auto
    }

    .idea-bases-inline-v157 {
        grid-column: 1/-1;
        grid-row: 2
    }

    .idea-gantt-inline-editor-v157 form {
        grid-template-columns: repeat(3,1fr)
    }

    .gantt-progress-field-v157 {
        grid-column: span 2
    }
}

@media(max-width:720px) {
    .idea-detail-card {
        padding: 16px
    }

    .idea-accountability, .idea-classification-v15 {
        grid-template-columns: 1fr
    }

    .idea-transition-bar-v157 {
        grid-template-columns: 1fr
    }

    .idea-transition-actions-v157 {
        justify-content: flex-start
    }

    .idea-bases-inline-v157 {
        grid-template-columns: 1fr 1fr;
        grid-row: auto
    }

    .idea-gantt-studio-v157 {
        margin: 10px 8px 14px
    }

    .idea-gantt-inline-editor-v157 form {
        grid-template-columns: 1fr 1fr
    }

    .gantt-progress-field-v157 {
        grid-column: 1/-1
    }

    .idea-phase-card-v155 > summary {
        grid-template-columns: auto 1fr
    }

        .idea-phase-card-v155 > summary > span {
            grid-column: 2
        }

    .product-explore-v157 {
        grid-template-columns: 1fr
    }

    .gantt-today-line-v157 {
        display: none
    }
}

@media(prefers-reduced-motion:reduce) {
    .idea-phase-card-v155 > summary > span i, .idea-gantt-bar-v156 > [data-gantt-resize] {
        transition: none
    }

    .gantt-focus-open-v157::after {
        backdrop-filter: none
    }
}

.gantt-today-overlay-v157 {
    position: absolute;
    z-index: 2;
    top: 42px;
    right: 112px;
    bottom: 0;
    left: 258px;
    pointer-events: none
}

    .gantt-today-overlay-v157 > i {
        position: absolute;
        top: 0;
        bottom: 0;
        border-left: 1px dashed #f36f21
    }

        .gantt-today-overlay-v157 > i > span {
            position: absolute;
            top: -2px;
            left: -16px;
            padding: 3px 5px;
            border-radius: 6px;
            color: #fff;
            background: #f36f21;
            font-size: .48rem;
            font-style: normal;
            font-weight: 900
        }

@media(max-width:720px) {
    .gantt-today-overlay-v157 {
        display: none
    }
}

/* V15.8 · Productos más directos, navegación por prioridad y Gantt operativo. */
.workspace-hero {
    min-height: 132px !important;
    padding: 19px 23px !important;
    border-radius: 18px !important
}

.workspace-identity h2 {
    margin: 4px 0;
    font-size: 1.55rem
}

.workspace-identity > p {
    max-width: 760px;
    margin: 0 0 9px;
    font-size: .72rem
}

.workspace-origin-button {
    padding: 7px 10px
}

.workspace-people {
    margin-top: 9px;
    gap: 6px
}

    .workspace-people .person-chip {
        padding: 6px 8px
    }

.workspace-health-card-v139 {
    min-width: 310px;
    padding: 13px 15px
}

.workspace-health-grid-v139 {
    grid-template-columns: repeat(3,minmax(85px,1fr));
    gap: 6px
}

    .workspace-health-grid-v139 span {
        padding: 7px
    }

.workspace-origin-compact-v158 {
    margin: 12px 0;
    border: 1px solid #d9e5ed;
    border-radius: 14px;
    background: #fff;
    overflow: hidden
}

    .workspace-origin-compact-v158 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding: 11px 14px;
        cursor: pointer;
        list-style: none
    }

        .workspace-origin-compact-v158 > summary small, .workspace-origin-compact-v158 > summary b {
            display: block
        }

        .workspace-origin-compact-v158 > summary small {
            color: var(--ns-blue);
            font-size: .53rem;
            font-weight: 900;
            letter-spacing: .08em
        }

        .workspace-origin-compact-v158 > summary b {
            margin-top: 2px;
            font-size: .71rem
        }

        .workspace-origin-compact-v158 > summary em {
            color: var(--ns-blue);
            font-size: .6rem;
            font-style: normal;
            font-weight: 850
        }

    .workspace-origin-compact-v158[open] > summary {
        border-bottom: 1px solid #e3ebf1;
        background: #f8fbfd
    }

    .workspace-origin-compact-v158 .innovation-case-origin {
        margin: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none
    }

    .workspace-origin-compact-v158 .stage-reference-v139 {
        margin: 0 14px 14px
    }

.workspace-nav-shell {
    width: 220px
}

.workspace-nav-v158 {
    gap: 4px;
    padding: 9px
}

.workspace-nav-label-v158 {
    padding: 5px 9px 3px;
    color: #8494a1;
    font-size: .48rem;
    font-weight: 950;
    letter-spacing: .11em
}

.workspace-nav-v158 > a {
    min-height: 49px;
    padding: 7px 9px
}

    .workspace-nav-v158 > a > span {
        display: grid;
        place-items: center;
        width: 27px;
        height: 27px;
        border-radius: 8px;
        background: #edf4f9;
        color: var(--ns-blue);
        font-size: .72rem;
        opacity: 1
    }

    .workspace-nav-v158 > a.active > span {
        background: rgba(255,255,255,.16);
        color: #fff
    }

    .workspace-nav-v158 > a div b {
        font-size: .71rem
    }

    .workspace-nav-v158 > a div small {
        font-size: .55rem
    }

.workspace-nav-more-v158 {
    margin-top: 4px;
    border-top: 1px solid #e5edf3;
    padding-top: 5px
}

    .workspace-nav-more-v158 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 9px;
        color: #607587;
        cursor: pointer;
        list-style: none;
        font-size: .61rem;
        font-weight: 850
    }

        .workspace-nav-more-v158 > summary span {
            display: grid;
            place-items: center;
            width: 21px;
            height: 21px;
            border-radius: 999px;
            background: #edf3f7;
            color: #587086;
            font-size: .52rem
        }

    .workspace-nav-more-v158 > div {
        display: grid;
        gap: 3px
    }

    .workspace-nav-more-v158 a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 8px 10px;
        border-radius: 8px;
        color: #617486;
        font-size: .59rem;
        text-decoration: none
    }

        .workspace-nav-more-v158 a:hover {
            color: var(--ns-blue);
            background: #f1f7fb
        }

        .workspace-nav-more-v158 a.active {
            color: #fff;
            background: #356ea5
        }

        .workspace-nav-more-v158 a em {
            display: grid;
            place-items: center;
            min-width: 20px;
            height: 20px;
            border-radius: 999px;
            background: #f36f21;
            color: #fff;
            font-size: .5rem;
            font-style: normal
        }

        .workspace-nav-more-v158 a.active em {
            background: rgba(255,255,255,.2)
        }

.product-gantt-studio-v158 {
    margin-top: 12px;
    border: 1px solid #cbdde9;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(18,66,103,.07);
    overflow: hidden
}

.product-gantt-toolbar-v158 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid #dce7ee;
    background: linear-gradient(120deg,#f7fbfe,#eef7fc)
}

.product-gantt-filters-v158, .product-gantt-density-v158 {
    display: flex;
    gap: 3px;
    padding: 3px;
    border: 1px solid #d0dee8;
    border-radius: 10px;
    background: #fff
}

    .product-gantt-filters-v158 button, .product-gantt-density-v158 button {
        padding: 7px 9px;
        border: 0;
        border-radius: 7px;
        background: transparent;
        color: #647887;
        font-size: .57rem;
        font-weight: 850;
        cursor: pointer
    }

        .product-gantt-filters-v158 button.active, .product-gantt-density-v158 button.active {
            color: #fff;
            background: var(--ns-blue)
        }

.product-gantt-actions-v158 {
    display: flex;
    align-items: center;
    gap: 7px
}

.product-gantt-legend-v158 {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px;
    border-bottom: 1px solid #e4ecf2;
    background: #fff
}

    .product-gantt-legend-v158 span {
        display: flex;
        align-items: center;
        gap: 5px;
        color: #647786;
        font-size: .52rem;
        font-weight: 800
    }

        .product-gantt-legend-v158 span::before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 3px;
            background: #338bca
        }

    .product-gantt-legend-v158 .agreement::before {
        background: #f18a3b
    }

    .product-gantt-legend-v158 .meeting::before {
        background: #8168c9
    }

    .product-gantt-legend-v158 .test::before {
        background: #35a878
    }

    .product-gantt-legend-v158 .decision::before {
        background: #db5a6d
    }

    .product-gantt-legend-v158 small {
        margin-left: auto;
        color: #7d8d99;
        font-size: .51rem
    }

.product-gantt-scroll-v158 {
    overflow: auto;
    scroll-behavior: smooth
}

.product-gantt-canvas-v158 {
    position: relative;
    min-width: 1080px;
    transition: min-width .2s
}

.product-gantt-studio-v158[data-density="compact"] .product-gantt-canvas-v158 {
    min-width: 880px
}

.product-gantt-studio-v158[data-density="wide"] .product-gantt-canvas-v158 {
    min-width: 1580px
}

.product-gantt-axis-v158, .product-gantt-row-v158 {
    display: grid;
    grid-template-columns: 280px minmax(620px,1fr) 78px;
    gap: 12px;
    align-items: center
}

.product-gantt-axis-v158 {
    position: sticky;
    top: 0;
    z-index: 5;
    padding: 9px 14px;
    border-bottom: 1px solid #e4ecf2;
    color: #718493;
    background: #fff;
    font-size: .55rem
}

    .product-gantt-axis-v158 > div {
        display: grid;
        grid-template-columns: repeat(7,1fr);
        text-align: center
    }

        .product-gantt-axis-v158 > div b:first-child {
            text-align: left
        }

        .product-gantt-axis-v158 > div b:last-child {
            text-align: right
        }

.product-gantt-row-v158 {
    position: relative;
    min-height: 66px;
    padding: 8px 14px;
    border-bottom: 1px solid #eaf0f4;
    transition: background .15s,box-shadow .15s
}

    .product-gantt-row-v158:hover {
        z-index: 4;
        background: #f8fbfd
    }

    .product-gantt-row-v158[hidden] {
        display: none
    }

    .product-gantt-row-v158.is-dragging {
        z-index: 7;
        background: #eef8ff;
        cursor: grabbing;
        user-select: none
    }

    .product-gantt-row-v158.is-saving-v158 {
        box-shadow: inset 4px 0 #f4a64b
    }

    .product-gantt-row-v158.is-saved-v158 {
        box-shadow: inset 4px 0 #25a878
    }

.product-gantt-label-v158 {
    display: grid;
    grid-template-columns: 8px minmax(0,1fr);
    gap: 9px;
    align-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer
}

    .product-gantt-label-v158 > i {
        width: 8px;
        height: 34px;
        border-radius: 999px;
        background: #338bca
    }

    .product-gantt-label-v158 small, .product-gantt-label-v158 b, .product-gantt-label-v158 em {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .product-gantt-label-v158 small {
        color: #2777ad;
        font-size: .53rem;
        font-weight: 900
    }

    .product-gantt-label-v158 b {
        margin: 2px 0;
        font-size: .67rem
    }

    .product-gantt-label-v158 em {
        color: #758692;
        font-size: .52rem;
        font-style: normal
    }

.product-gantt-lane-v158 {
    position: relative;
    height: 36px;
    border-radius: 10px;
    background: repeating-linear-gradient(90deg,#e6eef4 0,#e6eef4 1px,transparent 1px,transparent calc(100% / 6)),linear-gradient(#fbfdff,#f5f9fc)
}

.product-gantt-bar-v158 {
    position: absolute;
    top: 7px;
    display: block;
    min-width: 16px;
    height: 22px;
    border-radius: 7px;
    background: #92c3e3;
    box-shadow: 0 5px 12px rgba(20,87,137,.18);
    cursor: default;
    overflow: visible;
    touch-action: none
}

.product-gantt-row-v158[data-task-id]:not([data-task-id=""]) .product-gantt-bar-v158 {
    cursor: grab
}

.product-gantt-bar-v158 > span {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 7px;
    background: #1673b2
}

.product-gantt-bar-v158 > b {
    position: absolute;
    top: 4px;
    right: 6px;
    color: #fff;
    font-size: .48rem;
    z-index: 1
}

.product-gantt-bar-v158 > [data-product-gantt-resize] {
    position: absolute;
    z-index: 2;
    top: 2px;
    bottom: 2px;
    width: 9px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: rgba(255,255,255,.8);
    opacity: 0;
    cursor: ew-resize
}

.product-gantt-bar-v158:hover > [data-product-gantt-resize], .is-dragging .product-gantt-bar-v158 > [data-product-gantt-resize] {
    opacity: 1
}

.product-gantt-bar-v158 > [data-product-gantt-resize="start"] {
    left: 2px
}

.product-gantt-bar-v158 > [data-product-gantt-resize="end"] {
    right: 2px
}

.product-gantt-bar-v158.milestone {
    width: 18px !important;
    min-width: 18px;
    transform: rotate(45deg);
    border-radius: 4px;
    background: #8168c9
}

    .product-gantt-bar-v158.milestone > span, .product-gantt-bar-v158.milestone > b {
        display: none
    }

.product-gantt-row-v158.kind-acuerdo .product-gantt-label-v158 > i, .product-gantt-row-v158.kind-acuerdo .product-gantt-bar-v158 {
    background: #f0a05b
}

    .product-gantt-row-v158.kind-acuerdo .product-gantt-bar-v158 > span {
        background: #e67520
    }

.product-gantt-row-v158.kind-junta .product-gantt-label-v158 > i, .product-gantt-row-v158.kind-junta .product-gantt-bar-v158 {
    background: #8168c9
}

.product-gantt-row-v158.kind-validacion .product-gantt-label-v158 > i, .product-gantt-row-v158.kind-validacion .product-gantt-bar-v158 {
    background: #57bc92
}

    .product-gantt-row-v158.kind-validacion .product-gantt-bar-v158 > span {
        background: #218c62
    }

.product-gantt-row-v158.kind-decision .product-gantt-label-v158 > i, .product-gantt-row-v158.kind-decision .product-gantt-bar-v158 {
    background: #dc6678
}

.product-gantt-open-v158 {
    padding: 7px 9px;
    border: 1px solid #cbdbe6;
    border-radius: 9px;
    color: var(--ns-blue);
    background: #fff;
    font-size: .55rem;
    font-weight: 850;
    cursor: pointer
}

    .product-gantt-open-v158:hover {
        color: #fff;
        border-color: var(--ns-blue);
        background: var(--ns-blue)
    }

.product-gantt-today-v158 {
    position: absolute;
    z-index: 3;
    top: 38px;
    right: 104px;
    bottom: 0;
    left: 306px;
    pointer-events: none
}

    .product-gantt-today-v158 > i {
        position: absolute;
        top: 0;
        bottom: 0;
        border-left: 1px dashed #f36f21
    }

    .product-gantt-today-v158 span {
        position: absolute;
        top: 0;
        left: -15px;
        padding: 3px 5px;
        border-radius: 6px;
        color: #fff;
        background: #f36f21;
        font-size: .46rem;
        font-style: normal;
        font-weight: 900
    }

.product-gantt-studio-v158 > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 14px;
    color: #647886;
    background: #f7fafc;
    font-size: .56rem
}

    .product-gantt-studio-v158 > footer b {
        color: var(--ns-blue)
    }

.product-gantt-studio-v158.is-focused-v158 {
    position: fixed;
    inset: 12px;
    z-index: 520;
    display: flex;
    flex-direction: column;
    margin: 0;
    border-radius: 18px;
    box-shadow: 0 32px 90px rgba(5,27,44,.3)
}

    .product-gantt-studio-v158.is-focused-v158 .product-gantt-scroll-v158 {
        flex: 1
    }

    .product-gantt-studio-v158.is-focused-v158 .product-gantt-canvas-v158 {
        min-width: 1500px
    }

.product-gantt-focus-v158 {
    overflow: hidden
}

    .product-gantt-focus-v158::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 510;
        background: rgba(7,25,40,.56);
        backdrop-filter: blur(2px)
    }

.product-plan-options-v158 {
    margin-top: 10px;
    border: 1px solid #dce5eb;
    border-radius: 12px;
    background: #fff
}

    .product-plan-options-v158 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding: 10px 13px;
        cursor: pointer;
        list-style: none
    }

        .product-plan-options-v158 > summary b, .product-plan-options-v158 > summary small {
            display: block
        }

        .product-plan-options-v158 > summary b {
            font-size: .66rem
        }

        .product-plan-options-v158 > summary small {
            margin-top: 2px;
            color: #71828f;
            font-size: .54rem
        }

        .product-plan-options-v158 > summary em {
            color: var(--ns-blue);
            font-size: .55rem;
            font-style: normal;
            font-weight: 850
        }

    .product-plan-options-v158 > form, .product-plan-options-v158 > .surface-card {
        margin: 0;
        border-width: 1px 0 0;
        border-radius: 0;
        box-shadow: none
    }

.release-test-note-v158 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0;
    padding: 12px 14px;
    border: 1px solid #cfe1ec;
    border-radius: 13px;
    background: #f6fbfe
}

    .release-test-note-v158 > span {
        display: grid;
        place-items: center;
        flex: 0 0 32px;
        height: 32px;
        border-radius: 10px;
        color: #fff;
        background: #208d68
    }

    .release-test-note-v158 p {
        margin: 0;
        color: #536a7c;
        font-size: .65rem;
        line-height: 1.45
    }

.product-explore-v158 {
    min-height: 0;
    padding: 16px 20px
}

    .product-explore-v158 h2 {
        margin: 4px 0;
        font-size: 1.2rem
    }

    .product-explore-v158 p {
        margin: 0;
        font-size: .7rem
    }

.product-card-v158 {
    min-height: 390px;
    padding: 16px;
    border-top: 4px solid #2d7fb8
}

    .product-card-v158.attention {
        border-top-color: #f36f21
    }

.product-health-v158 {
    padding: 5px 8px;
    border-radius: 999px;
    color: #14704e;
    background: #e7f6ee;
    font-size: .52rem;
    font-weight: 900
}

    .product-health-v158.attention {
        color: #a84913;
        background: #fff0e6
    }

.product-owner-v158 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 9px;
    border-radius: 11px;
    background: #f6f9fb
}

    .product-owner-v158 small, .product-owner-v158 b {
        display: block
    }

    .product-owner-v158 small {
        color: #758794;
        font-size: .48rem;
        font-weight: 900;
        letter-spacing: .06em
    }

    .product-owner-v158 b {
        margin-top: 2px;
        font-size: .61rem
    }

.product-card-facts-v158 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-top: 8px
}

    .product-card-facts-v158 > span {
        padding: 8px;
        border: 1px solid #e3ebf0;
        border-radius: 10px
    }

    .product-card-facts-v158 small, .product-card-facts-v158 b, .product-card-facts-v158 em {
        display: block
    }

    .product-card-facts-v158 small {
        color: #768894;
        font-size: .46rem;
        font-weight: 900
    }

    .product-card-facts-v158 b {
        margin-top: 2px;
        font-size: .56rem
    }

    .product-card-facts-v158 em {
        margin-top: 2px;
        color: #778895;
        font-size: .48rem;
        font-style: normal
    }

.product-card-v158.attention .product-card-facts-v158 > span:last-child em {
    color: #b64e17;
    font-weight: 850
}

.product-card-v158 footer strong {
    color: var(--ns-blue);
    font-size: .61rem
}

@media(max-width:1180px) {
    .product-gantt-toolbar-v158 {
        align-items: flex-start;
        flex-direction: column
    }

    .product-gantt-actions-v158 {
        width: 100%;
        justify-content: space-between
    }

    .workspace-nav-shell {
        width: 100%
    }

    .workspace-nav-v158 {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important
    }

    .workspace-nav-label-v158, .workspace-nav-more-v158 {
        grid-column: 1/-1
    }

        .workspace-nav-more-v158 > div {
            grid-template-columns: repeat(3,minmax(0,1fr))
        }
}

@media(max-width:760px) {
    .workspace-health-card-v139 {
        min-width: 0;
        width: 100%
    }

    .workspace-health-grid-v139 {
        grid-template-columns: 1fr
    }

    .workspace-nav-v158 {
        grid-template-columns: 1fr 1fr !important
    }

    .workspace-nav-more-v158 > div {
        grid-template-columns: 1fr
    }

    .product-gantt-filters-v158 {
        max-width: 100%;
        overflow: auto
    }

    .product-gantt-actions-v158 {
        align-items: flex-start;
        flex-direction: column
    }

    .product-gantt-legend-v158 small {
        display: none
    }

    .product-gantt-today-v158 {
        display: none
    }

    .product-gantt-studio-v158 > footer {
        align-items: flex-start;
        flex-direction: column
    }

    .product-card-facts-v158 {
        grid-template-columns: 1fr
    }

    .product-card-v158 {
        min-height: 0
    }
}

@media(prefers-reduced-motion:reduce) {
    .product-gantt-canvas-v158, .product-gantt-row-v158, .product-gantt-bar-v158, .workspace-nav-v158 a {
        transition: none
    }

    .product-gantt-focus-v158::after {
        backdrop-filter: none
    }
}

/* V15.8 · Gantt legible y operación diaria al frente. */
.idea-gantt-studio-v157 {
    margin: 12px 0 18px;
    border-color: #c8dce9;
    box-shadow: 0 10px 26px rgba(17,64,99,.07)
}

    .idea-gantt-studio-v157 > header {
        padding: 14px 16px;
        background: linear-gradient(120deg,#fbfdff,#f0f8fd)
    }

        .idea-gantt-studio-v157 > header h3 {
            font-size: 1rem
        }

        .idea-gantt-studio-v157 > header p {
            font-size: .66rem
        }

    .idea-gantt-studio-v157 .idea-gantt-row-v156 {
        min-height: 60px
    }

    .idea-gantt-studio-v157 .idea-gantt-lane-v156 {
        height: 34px;
        border-radius: 9px;
        background: repeating-linear-gradient(90deg,#e3edf4 0,#e3edf4 1px,transparent 1px,transparent calc(100% / 12)),linear-gradient(#fbfdff,#f4f9fc)
    }

    .idea-gantt-studio-v157 .idea-gantt-bar-v156 {
        top: 6px;
        height: 22px;
        border-radius: 7px;
        box-shadow: 0 5px 13px rgba(18,81,127,.17)
    }

        .idea-gantt-studio-v157 .idea-gantt-bar-v156 > [data-gantt-resize] {
            opacity: .38
        }

        .idea-gantt-studio-v157 .idea-gantt-bar-v156:hover > [data-gantt-resize], .idea-gantt-studio-v157 .is-dragging [data-gantt-resize] {
            opacity: 1
        }

    .idea-gantt-studio-v157 .gantt-adjust-button-v157 {
        border-radius: 9px;
        font-size: .58rem
    }

    .idea-gantt-studio-v157 .idea-gantt-inline-editor-v157 {
        border-top: 1px solid #dce8ef;
        background: #f8fbfd;
        box-shadow: inset 4px 0 var(--ns-orange)
    }

    .idea-gantt-studio-v157 .gantt-phase-legend-v157 {
        padding: 8px 16px
    }

        .idea-gantt-studio-v157 .gantt-phase-legend-v157 small {
            margin-left: auto;
            color: #536d7f;
            font-weight: 800
        }

@media(max-width:900px) {
    .idea-gantt-studio-v157 > header {
        align-items: stretch;
        flex-direction: column
    }

    .idea-gantt-toolbar-v156 {
        justify-content: flex-start;
        overflow: auto
    }

    .idea-gantt-studio-v157 .gantt-phase-legend-v157 {
        overflow: auto
    }

        .idea-gantt-studio-v157 .gantt-phase-legend-v157 small {
            display: none
        }
}

/* V15.8.1 · contraste accesible para que fechas, barras y avance no se pierdan. */
.product-gantt-studio-v158 {
    border-color: #9ebdd1;
    box-shadow: 0 14px 34px rgba(9,47,76,.12)
}

.product-gantt-toolbar-v158 {
    border-bottom-color: #bdd2df;
    background: linear-gradient(120deg,#edf7fc,#dfeff8)
}

.product-gantt-filters-v158, .product-gantt-density-v158 {
    border-color: #9dbbcd;
    box-shadow: 0 2px 8px rgba(15,65,98,.08)
}

    .product-gantt-filters-v158 button, .product-gantt-density-v158 button {
        color: #39586d;
        font-size: .6rem
    }

        .product-gantt-filters-v158 button.active, .product-gantt-density-v158 button.active {
            background: #083f6d;
            box-shadow: 0 4px 10px rgba(8,63,109,.25)
        }

.product-gantt-legend-v158 {
    gap: 15px;
    border-bottom-color: #cbdbe5;
    background: #f9fcfe
}

    .product-gantt-legend-v158 span {
        color: #344f62;
        font-size: .57rem
    }

        .product-gantt-legend-v158 span::before {
            width: 11px;
            height: 11px;
            border: 2px solid rgba(0,0,0,.16);
            background: #146aa5
        }

    .product-gantt-legend-v158 .agreement::before {
        background: #b84f05
    }

    .product-gantt-legend-v158 .meeting::before {
        background: #5632a8
    }

    .product-gantt-legend-v158 .test::before {
        background: #087452
    }

    .product-gantt-legend-v158 .decision::before {
        background: #9c2740
    }

    .product-gantt-legend-v158 small {
        color: #435f72;
        font-weight: 800
    }

.product-gantt-axis-v158 {
    color: #29485d;
    border-bottom-color: #b9cfdd;
    background: #edf5fa;
    font-size: .59rem;
    font-weight: 900
}

    .product-gantt-axis-v158 > div b {
        color: #36586e
    }

.product-gantt-row-v158 {
    border-bottom-color: #d5e2ea
}

    .product-gantt-row-v158:nth-of-type(even) {
        background: #fbfdff
    }

    .product-gantt-row-v158:hover {
        background: #eaf5fb;
        box-shadow: inset 4px 0 #f36f21
    }

.product-gantt-label-v158 > i {
    background: #146aa5;
    box-shadow: 0 0 0 2px #d8eaf5
}

.product-gantt-label-v158 small {
    color: #075487
}

.product-gantt-label-v158 b {
    color: #102f45;
    font-size: .7rem
}

.product-gantt-label-v158 em {
    color: #496779;
    font-size: .55rem;
    font-weight: 700
}

.product-gantt-lane-v158 {
    height: 40px;
    border: 1px solid #ccdae3;
    background: repeating-linear-gradient(90deg,#b7ccda 0,#b7ccda 1px,transparent 1px,transparent calc(100% / 12)),linear-gradient(#f6fafc,#e9f2f7)
}

.product-gantt-bar-v158 {
    top: 6px;
    height: 27px;
    border: 1px solid #245d83;
    background: #548daf;
    box-shadow: 0 6px 14px rgba(7,52,84,.28)
}

    .product-gantt-bar-v158 > span {
        border-radius: 6px;
        background: #0a568c
    }

    .product-gantt-bar-v158 > b {
        top: 3px;
        right: 4px;
        min-width: 31px;
        padding: 2px 5px;
        border-radius: 6px;
        color: #fff;
        background: #082f4d;
        text-align: center;
        text-shadow: 0 1px 1px rgba(0,0,0,.35);
        font-size: .52rem
    }

    .product-gantt-bar-v158 > [data-product-gantt-resize] {
        top: 3px;
        bottom: 3px;
        width: 10px;
        border: 1px solid rgba(12,52,78,.35);
        background: #fff;
        box-shadow: 0 1px 4px rgba(0,0,0,.2);
        opacity: .78
    }

    .product-gantt-bar-v158:hover > [data-product-gantt-resize], .is-dragging .product-gantt-bar-v158 > [data-product-gantt-resize] {
        opacity: 1;
        transform: scaleX(1.08)
    }

.product-gantt-row-v158.kind-acuerdo .product-gantt-label-v158 > i {
    background: #b84f05;
    box-shadow: 0 0 0 2px #ffe2cd
}

.product-gantt-row-v158.kind-acuerdo .product-gantt-bar-v158 {
    border-color: #8c3900;
    background: #d0712c
}

    .product-gantt-row-v158.kind-acuerdo .product-gantt-bar-v158 > span {
        background: #a53f00
    }

    .product-gantt-row-v158.kind-acuerdo .product-gantt-bar-v158 > b {
        background: #692500
    }

.product-gantt-row-v158.kind-junta .product-gantt-label-v158 > i {
    background: #5632a8;
    box-shadow: 0 0 0 2px #e6defa
}

.product-gantt-row-v158.kind-junta .product-gantt-bar-v158 {
    border-color: #432389;
    background: #704dc0
}

.product-gantt-row-v158.kind-validacion .product-gantt-label-v158 > i {
    background: #087452;
    box-shadow: 0 0 0 2px #d6f0e6
}

.product-gantt-row-v158.kind-validacion .product-gantt-bar-v158 {
    border-color: #075b42;
    background: #279273
}

    .product-gantt-row-v158.kind-validacion .product-gantt-bar-v158 > span {
        background: #087052
    }

    .product-gantt-row-v158.kind-validacion .product-gantt-bar-v158 > b {
        background: #054735
    }

.product-gantt-row-v158.kind-decision .product-gantt-label-v158 > i {
    background: #9c2740;
    box-shadow: 0 0 0 2px #f5dce2
}

.product-gantt-row-v158.kind-decision .product-gantt-bar-v158 {
    border-color: #7f1e33;
    background: #bf4b63
}

    .product-gantt-row-v158.kind-decision .product-gantt-bar-v158 > span {
        background: #92243b
    }

    .product-gantt-row-v158.kind-decision .product-gantt-bar-v158 > b {
        background: #5f1425
    }

.product-gantt-bar-v158.milestone {
    border: 2px solid #321977;
    background: #6744b8;
    box-shadow: 0 4px 10px rgba(50,25,119,.32)
}

.product-gantt-today-v158 > i {
    border-left: 2px dashed #d9430d
}

.product-gantt-today-v158 span {
    left: -17px;
    background: #c93808;
    box-shadow: 0 3px 8px rgba(123,40,11,.25)
}

.product-gantt-open-v158 {
    border-color: #86a9bf;
    color: #083f6d;
    font-size: .58rem
}

    .product-gantt-open-v158:hover {
        border-color: #083f6d;
        background: #083f6d
    }

.temporary-access-v1581 {
    display: grid;
    grid-template-columns: 44px minmax(0,1fr);
    gap: 13px;
    margin-bottom: 15px;
    padding: 16px;
    border: 2px solid #d79718;
    border-radius: 15px;
    background: #fff8df;
    box-shadow: 0 10px 24px rgba(117,77,8,.1)
}

    .temporary-access-v1581 > span {
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        border-radius: 13px;
        color: #fff;
        background: #a96804;
        font-size: 1.1rem;
        font-weight: 950
    }

    .temporary-access-v1581 small {
        color: #805006;
        font-size: .56rem;
        font-weight: 950;
        letter-spacing: .07em
    }

    .temporary-access-v1581 h2 {
        margin: 3px 0 7px;
        font-size: .9rem
    }

    .temporary-access-v1581 code {
        display: inline-block;
        padding: 8px 11px;
        border: 1px solid #c68a22;
        border-radius: 9px;
        color: #142c3c;
        background: #fff;
        font-size: .86rem;
        font-weight: 900;
        letter-spacing: .04em;
        user-select: all
    }

    .temporary-access-v1581 p {
        margin: 7px 0 0;
        color: #6d592e;
        font-size: .65rem
    }

.admin-password-note-v1581 {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    padding: 11px 13px;
    border: 1px solid #c7dbe8;
    border-radius: 12px;
    background: #f4fafe
}

    .admin-password-note-v1581 p {
        margin: 0;
        color: #496678;
        font-size: .66rem;
        line-height: 1.45
    }

/* V16 · seguimiento de ideas sin ruido: todo gira alrededor del Gantt. */
.idea-detail-v16 {
    display: block
}

    .idea-detail-v16 > main {
        display: grid;
        gap: 14px;
        max-width: none
    }

.idea-summary-v16 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 16px 18px;
    border: 1px solid #d7e4ed;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(18,61,91,.06)
}

.idea-summary-main-v16 {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    min-width: 0
}

.idea-summary-copy-v16 {
    min-width: 0;
    flex: 1
}

.idea-summary-meta-v16 {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap
}

    .idea-summary-meta-v16 > b {
        font-size: .82rem
    }

    .idea-summary-meta-v16 > span:not(.idea-state) {
        padding: 4px 7px;
        border-radius: 999px;
        background: #f0f4f7;
        color: #5c7181;
        font-size: .58rem;
        font-weight: 800
    }

.idea-summary-copy-v16 > p {
    margin: 7px 0 0;
    max-width: 980px;
    color: #263e50;
    font-size: .78rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.idea-context-v16 {
    margin-top: 7px
}

    .idea-context-v16 > summary {
        width: max-content;
        cursor: pointer;
        list-style: none;
        color: #25668f;
        font-size: .61rem;
        font-weight: 850
    }

    .idea-context-v16 > div {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 8px;
        margin-top: 10px
    }

    .idea-context-v16 section {
        padding: 9px 10px;
        border: 1px solid #e2e9ee;
        border-radius: 10px;
        background: #f8fafb
    }

    .idea-context-v16 small {
        display: block;
        color: #6b7d89;
        font-size: .52rem;
        font-weight: 900;
        letter-spacing: .06em
    }

    .idea-context-v16 p {
        margin: 4px 0 0;
        color: #364e5e;
        font-size: .68rem;
        line-height: 1.45;
        white-space: pre-wrap
    }

.idea-summary-numbers-v16 {
    display: flex;
    align-items: stretch;
    gap: 7px
}

    .idea-summary-numbers-v16 form {
        display: flex
    }

.idea-counter-v16 {
    display: grid;
    place-items: center;
    min-width: 68px;
    padding: 8px 9px;
    border: 1px solid #dce6ec;
    border-radius: 12px;
    background: #f8fbfd;
    color: #29495e
}

.idea-summary-numbers-v16 button.idea-counter-v16 {
    cursor: pointer
}

.idea-counter-v16 b {
    font-size: .9rem;
    line-height: 1
}

.idea-counter-v16 span {
    margin-top: 3px;
    color: #748592;
    font-size: .49rem;
    font-weight: 800
}

.idea-counter-v16.active {
    border-color: #f4a879;
    background: #fff2e9;
    color: #b84f11
}

.idea-readybar-v16 {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    border: 1px solid #d9e4eb;
    border-radius: 14px;
    background: #f8fbfd
}

    .idea-readybar-v16 > div:first-child {
        display: flex;
        align-items: baseline;
        gap: 7px
    }

    .idea-readybar-v16 strong {
        color: #165f91;
        font-size: 1rem
    }

    .idea-readybar-v16 span {
        color: #506979;
        font-size: .64rem;
        font-weight: 800
    }

    .idea-readybar-v16 small {
        color: #7a8b96;
        font-size: .55rem
    }

.idea-ready-dots-v16 {
    display: flex;
    gap: 5px
}

    .idea-ready-dots-v16 i {
        display: block;
        width: 22px;
        height: 6px;
        border-radius: 999px;
        background: #dce5eb
    }

        .idea-ready-dots-v16 i.done {
            background: #2a8b62
        }

.idea-ready-actions-v16 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto
}

.idea-missing-v16 {
    position: relative
}

    .idea-missing-v16 > summary {
        cursor: pointer;
        list-style: none;
        padding: 7px 10px;
        border: 1px solid #ccdce6;
        border-radius: 9px;
        background: #fff;
        color: #3f647d;
        font-size: .6rem;
        font-weight: 850
    }

    .idea-missing-v16 > p {
        position: absolute;
        right: 0;
        top: calc(100% + 6px);
        z-index: 20;
        width: min(420px,80vw);
        margin: 0;
        padding: 10px 12px;
        border: 1px solid #d8e3ea;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 12px 28px rgba(13,50,75,.12);
        color: #586e7d;
        font-size: .62rem;
        line-height: 1.5
    }

.idea-followup-v16 {
    overflow: visible;
    border: 1px solid #cddfe9;
    border-radius: 20px;
    background: #f5f8fa;
    box-shadow: 0 12px 30px rgba(14,56,86,.07)
}

.idea-followup-head-v16 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 17px;
    border-bottom: 1px solid #dbe6ed;
    background: #fff;
    border-radius: 20px 20px 0 0
}

    .idea-followup-head-v16 small {
        color: #17618f;
        font-size: .58rem;
        font-weight: 950;
        letter-spacing: .09em
    }

    .idea-followup-head-v16 h2 {
        margin: 2px 0;
        font-size: 1.12rem
    }

    .idea-followup-head-v16 p {
        margin: 0;
        color: #687b88;
        font-size: .65rem
    }

.idea-quick-actions-v16 {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    justify-content: flex-end
}

    .idea-quick-actions-v16 .btn {
        min-height: 34px;
        padding: 7px 10px;
        font-size: .61rem
    }

    .idea-quick-actions-v16 [data-idea-quick-toggle].active {
        outline: 2px solid rgba(45,103,132,.18);
        outline-offset: 2px
    }

.idea-quick-panels-v16 {
    padding: 0 14px
}

.idea-quick-panel-v16 {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #c9dce8;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(18,61,91,.08)
}

    .idea-quick-panel-v16[hidden] {
        display: none
    }

    .idea-quick-panel-v16 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 10px
    }

        .idea-quick-panel-v16 > header b {
            font-size: .72rem
        }

        .idea-quick-panel-v16 > header button {
            display: grid;
            place-items: center;
            width: 28px;
            height: 28px;
            border: 0;
            border-radius: 8px;
            background: #eef3f6;
            color: #496678;
            font-size: 1rem;
            cursor: pointer
        }

.idea-quick-form-v16 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 9px;
    align-items: end
}

    .idea-quick-form-v16 > label {
        grid-column: 1/-1
    }

.idea-quick-grid-v16 {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: minmax(240px,2fr) minmax(135px,.8fr) minmax(190px,1.2fr) 135px 135px;
    gap: 8px
}

    .idea-quick-form-v16 label, .idea-quick-grid-v16 label {
        display: grid;
        gap: 4px;
        color: #637886;
        font-size: .55rem;
        font-weight: 850
    }

.idea-quick-form-v16 input, .idea-quick-form-v16 select, .idea-quick-form-v16 textarea {
    width: 100%;
    min-width: 0;
    padding: 8px 9px;
    border: 1px solid #cddae3;
    border-radius: 9px;
    background: #fff;
    color: #223d50;
    font: inherit
}

.idea-quick-form-v16 textarea {
    resize: vertical
}

.idea-quick-form-v16 > button {
    align-self: end
}

.idea-empty-v16 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 14px;
    padding: 18px;
    border: 1px dashed #abc9da;
    border-radius: 14px;
    background: #fff
}

    .idea-empty-v16 div {
        display: grid;
        gap: 3px
    }

    .idea-empty-v16 b {
        font-size: .76rem
    }

    .idea-empty-v16 span {
        color: #718590;
        font-size: .62rem
    }

.idea-gantt-v16 {
    margin: 14px;
    border-color: #b7cfdd;
    box-shadow: none
}

    .idea-gantt-v16 > header {
        align-items: center
    }

        .idea-gantt-v16 > header h3 {
            margin: 2px 0
        }

    .idea-gantt-v16 .idea-gantt-axis-v156, .idea-gantt-v16 .idea-gantt-row-v156 {
        grid-template-columns: 285px minmax(560px,1fr) 68px
    }

    .idea-gantt-v16 .idea-gantt-row-v156 {
        min-height: 58px
    }

        .idea-gantt-v16 .idea-gantt-row-v156.is-selected-v16 {
            z-index: 4;
            background: #edf7fc;
            box-shadow: inset 4px 0 #f36f21
        }

.idea-gantt-label-v16 {
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer
}

    .idea-gantt-label-v16:hover b {
        color: #0b5f93
    }

.idea-gantt-open-v16 {
    padding: 7px 8px;
    border: 1px solid #b9cfdd;
    border-radius: 8px;
    background: #fff;
    color: #155f8f;
    font-size: .56rem;
    font-weight: 850;
    cursor: pointer
}

    .idea-gantt-open-v16:hover {
        border-color: #155f8f;
        background: #155f8f;
        color: #fff
    }

.gantt-links-v16 {
    position: absolute;
    top: -5px;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 2px 4px;
    border: 1px solid #a9c1d1;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 3px 8px rgba(13,54,83,.12);
    transform: translateX(0);
    cursor: pointer
}

    .gantt-links-v16 span {
        display: inline-flex;
        color: #2b607f;
        font-size: .44rem;
        font-weight: 950;
        white-space: nowrap
    }

    .gantt-links-v16:hover {
        border-color: #f36f21
    }

.idea-gantt-v16 .idea-gantt-inline-editor-v157 {
    display: none !important
}

.idea-item-inspectors-v16 {
    padding: 0 14px 14px
}

.idea-item-panel-v16 {
    border: 1px solid #c9dce7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(18,61,91,.06);
    overflow: hidden
}

    .idea-item-panel-v16[hidden] {
        display: none
    }

.idea-item-panel-head-v16 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid #e1e9ee;
    background: #fbfdfe
}

    .idea-item-panel-head-v16 small {
        color: #f36f21;
        font-size: .54rem;
        font-weight: 950;
        letter-spacing: .07em
    }

    .idea-item-panel-head-v16 h3 {
        margin: 3px 0;
        font-size: .95rem
    }

    .idea-item-panel-head-v16 p {
        margin: 0;
        color: #6e818e;
        font-size: .59rem
    }

.idea-item-state-v16 {
    display: flex;
    align-items: center;
    gap: 7px
}

    .idea-item-state-v16 span {
        padding: 5px 7px;
        border-radius: 999px;
        background: #eaf3f8;
        color: #285f80;
        font-size: .52rem;
        font-weight: 850
    }

    .idea-item-state-v16 b {
        font-size: .7rem;
        color: #244a61
    }

.idea-item-learning-v16 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
    padding: 12px 14px;
    border-bottom: 1px solid #e7edf1
}

    .idea-item-learning-v16 section {
        padding: 9px 10px;
        border: 1px solid #e0e8ed;
        border-radius: 10px;
        background: #f8fafb;
        min-width: 0
    }

        .idea-item-learning-v16 section.result {
            background: #eef8f3
        }

        .idea-item-learning-v16 section.decision {
            background: #fff6e8
        }

    .idea-item-learning-v16 small {
        display: block;
        color: #687c89;
        font-size: .49rem;
        font-weight: 950;
        letter-spacing: .06em
    }

    .idea-item-learning-v16 p {
        margin: 4px 0 0;
        color: #385162;
        font-size: .61rem;
        line-height: 1.45;
        white-space: pre-wrap;
        overflow-wrap: anywhere
    }

    .idea-item-learning-v16 b {
        display: block;
        margin-top: 4px;
        color: #8b5504;
        font-size: .62rem
    }

.idea-item-collab-v16 {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 12px;
    padding: 14px
}

    .idea-item-collab-v16 > section {
        min-width: 0;
        padding: 12px;
        border: 1px solid #e0e8ed;
        border-radius: 12px;
        background: #fbfcfd
    }

        .idea-item-collab-v16 > section > header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 9px
        }

    .idea-item-collab-v16 h4 {
        margin: 0;
        font-size: .72rem
    }

    .idea-item-collab-v16 > section > header > span {
        display: grid;
        place-items: center;
        min-width: 24px;
        height: 24px;
        padding: 0 6px;
        border-radius: 999px;
        background: #eaf2f7;
        color: #46697f;
        font-size: .52rem;
        font-weight: 900
    }

.idea-inline-composer-v16 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 7px;
    align-items: end
}

    .idea-inline-composer-v16 textarea {
        width: 100%;
        min-height: 54px;
        padding: 8px 9px;
        border: 1px solid #ccdbe4;
        border-radius: 9px;
        resize: vertical;
        font: inherit
    }

.idea-mini-stream-v16 {
    display: grid;
    gap: 7px;
    margin-top: 9px;
    max-height: 330px;
    overflow: auto
}

    .idea-mini-stream-v16 > article {
        position: relative;
        display: grid;
        grid-template-columns: 30px minmax(0,1fr) auto;
        gap: 8px;
        padding: 8px;
        border: 1px solid #e3eaee;
        border-radius: 10px;
        background: #fff
    }

        .idea-mini-stream-v16 > article header {
            display: flex;
            gap: 6px;
            align-items: baseline;
            flex-wrap: wrap
        }

            .idea-mini-stream-v16 > article header b {
                font-size: .59rem
            }

            .idea-mini-stream-v16 > article header small {
                color: #7d8d97;
                font-size: .49rem
            }

        .idea-mini-stream-v16 > article p {
            margin: 3px 0 0;
            color: #3d5565;
            font-size: .59rem;
            line-height: 1.42;
            white-space: pre-wrap
        }

    .idea-mini-stream-v16 details {
        margin-top: 4px
    }

        .idea-mini-stream-v16 details > summary {
            cursor: pointer;
            color: #2d6784;
            font-size: .5rem;
            font-weight: 850
        }

        .idea-mini-stream-v16 details form {
            display: grid;
            gap: 5px;
            margin-top: 5px
        }

        .idea-mini-stream-v16 details textarea {
            width: 100%;
            padding: 7px;
            border: 1px solid #cfdae2;
            border-radius: 8px;
            font: inherit
        }

.idea-mini-delete-v16 {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid #e2c7c7;
    border-radius: 7px;
    background: #fff;
    color: #a64040;
    cursor: pointer
}

.idea-empty-inline-v16 {
    margin: 8px 0 0;
    color: #82919a;
    font-size: .56rem
}

.idea-inline-file-v16 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 7px
}

    .idea-inline-file-v16 input {
        min-width: 0;
        width: 100%;
        padding: 7px 8px;
        border: 1px solid #cfdae2;
        border-radius: 8px;
        font: inherit
    }

        .idea-inline-file-v16 input[type="file"] {
            grid-column: 1/-1
        }

.idea-mini-files-v16 {
    display: grid;
    gap: 7px;
    margin-top: 9px
}

    .idea-mini-files-v16 article {
        display: grid;
        grid-template-columns: minmax(0,1fr) auto;
        gap: 6px;
        align-items: center;
        padding: 8px;
        border: 1px solid #e2e9ed;
        border-radius: 9px;
        background: #fff
    }

    .idea-mini-files-v16 a {
        display: grid;
        gap: 2px;
        min-width: 0;
        color: inherit;
        text-decoration: none
    }

    .idea-mini-files-v16 b {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: .58rem
    }

    .idea-mini-files-v16 small {
        color: #778994;
        font-size: .49rem
    }

.idea-edit-activity-v16 {
    border-top: 1px solid #e3e9ed;
    background: #f9fbfc
}

    .idea-edit-activity-v16 > summary {
        padding: 11px 14px;
        cursor: pointer;
        list-style: none;
        color: #255f82;
        font-size: .59rem;
        font-weight: 900
    }

    .idea-edit-activity-v16 > form {
        padding: 0 14px 14px
    }

.idea-edit-grid-v16 {
    display: grid;
    grid-template-columns: 130px minmax(220px,1.6fr) minmax(180px,1fr) 130px 135px 135px 100px 90px;
    gap: 8px
}

.idea-edit-activity-v16 label {
    display: grid;
    gap: 4px;
    color: #627783;
    font-size: .53rem;
    font-weight: 850
}

.idea-edit-activity-v16 input, .idea-edit-activity-v16 select, .idea-edit-activity-v16 textarea {
    width: 100%;
    min-width: 0;
    padding: 8px;
    border: 1px solid #cbd9e2;
    border-radius: 8px;
    background: #fff;
    font: inherit
}

.idea-research-edit-v16, .idea-decision-edit-v16 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px
}

.idea-decision-edit-v16 {
    grid-template-columns: 220px minmax(0,1fr);
    padding: 9px;
    border-radius: 10px;
    background: #fff7ea
}

.idea-edit-activity-v16 > form + form {
    padding: 0 14px 14px
}

.idea-general-v16 {
    margin: 0 14px 14px;
    border: 1px solid #d7e2e9;
    border-radius: 12px;
    background: #fff
}

    .idea-general-v16 > summary {
        padding: 10px 12px;
        cursor: pointer;
        list-style: none;
        color: #526f82;
        font-size: .58rem;
        font-weight: 850
    }

.idea-general-grid-v16 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0 12px 12px
}

    .idea-general-grid-v16 > section {
        padding: 10px;
        border: 1px solid #e3e9ed;
        border-radius: 10px
    }

    .idea-general-grid-v16 h4 {
        margin: 0 0 8px;
        font-size: .64rem
    }

.idea-general-row-v16 {
    display: grid;
    gap: 4px;
    padding: 7px 0;
    border-top: 1px solid #edf1f3
}

    .idea-general-row-v16:first-of-type {
        border-top: 0
    }

    .idea-general-row-v16 > a, .idea-general-row-v16 > div {
        display: grid;
        gap: 2px;
        color: inherit;
        text-decoration: none
    }

    .idea-general-row-v16 b {
        font-size: .57rem
    }

    .idea-general-row-v16 small {
        color: #80909a;
        font-size: .48rem
    }

    .idea-general-row-v16 p {
        margin: 2px 0;
        color: #475f6f;
        font-size: .57rem
    }

    .idea-general-row-v16 details > summary {
        cursor: pointer;
        color: #2d6784;
        font-size: .49rem;
        font-weight: 850
    }

    .idea-general-row-v16 form {
        display: grid;
        gap: 5px;
        margin-top: 5px
    }

    .idea-general-row-v16 select, .idea-general-row-v16 textarea {
        width: 100%;
        padding: 7px;
        border: 1px solid #cfdae2;
        border-radius: 8px;
        font: inherit
    }

@media(max-width:1180px) {
    .idea-summary-v16 {
        grid-template-columns: 1fr
    }

    .idea-summary-numbers-v16 {
        justify-content: flex-start
    }

    .idea-quick-grid-v16 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .idea-edit-grid-v16 {
        grid-template-columns: repeat(4,minmax(0,1fr))
    }

    .idea-item-learning-v16 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media(max-width:850px) {
    .idea-followup-head-v16, .idea-readybar-v16 {
        align-items: flex-start;
        flex-direction: column
    }

    .idea-ready-actions-v16 {
        margin-left: 0
    }

    .idea-quick-actions-v16 {
        justify-content: flex-start
    }

    .idea-item-collab-v16, .idea-general-grid-v16 {
        grid-template-columns: 1fr
    }

    .idea-edit-grid-v16, .idea-research-edit-v16, .idea-decision-edit-v16, .idea-context-v16 > div {
        grid-template-columns: 1fr 1fr
    }

    .idea-gantt-v16 .idea-gantt-axis-v156, .idea-gantt-v16 .idea-gantt-row-v156 {
        grid-template-columns: 240px minmax(520px,1fr) 64px
    }
}

@media(max-width:600px) {
    .idea-summary-main-v16 {
        align-items: flex-start
    }

    .idea-summary-numbers-v16 {
        display: grid;
        grid-template-columns: repeat(2,1fr);
        width: 100%
    }

    .idea-counter-v16 {
        min-width: 0
    }

    .idea-quick-grid-v16, .idea-edit-grid-v16, .idea-research-edit-v16, .idea-decision-edit-v16, .idea-context-v16 > div, .idea-item-learning-v16 {
        grid-template-columns: 1fr
    }

    .idea-quick-form-v16, .idea-inline-composer-v16, .idea-inline-file-v16 {
        grid-template-columns: 1fr
    }

    .idea-item-panel-head-v16 {
        flex-direction: column
    }

    .idea-item-state-v16 {
        align-self: flex-start
    }
}


/* =========================================================
   V17 - IDEAS: GANTT + MODALES + RESPONSABLES
   Pegar AL FINAL de wwwroot/css/app.css
   ========================================================= */

/* El detalle ya no ocupa espacio debajo del Gantt: se usa como contenido del modal. */
.idea-item-inspectors-v16 {
    display: none
}

/* Toda la franja del calendario se puede abrir con clic. */
.idea-gantt-v16 [data-gantt-lane],
.idea-gantt-v16 [data-gantt-open-item] {
    cursor: pointer
}

.idea-gantt-v16 .idea-gantt-row-v156.is-selected-v16 {
    background: #edf7fc;
    box-shadow: inset 4px 0 #f36f21
}

/* Modal reutilizable de actividad. El JS mueve aquí el panel existente. */
.idea-activity-modal-v17 {
    width: min(1120px,96vw);
    max-height: 92vh;
    padding: 0;
    border: 0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(7,31,49,.30)
}

    .idea-activity-modal-v17::backdrop {
        background: rgba(9,34,52,.50);
        backdrop-filter: blur(4px)
    }

.idea-activity-modal-shell-v17 {
    position: relative;
    max-height: 92vh;
    overflow: auto;
    padding-top: 42px;
    background: #fff
}

.idea-activity-modal-close-v17 {
    position: absolute;
    right: 12px;
    top: 9px;
    z-index: 8;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid #d4e0e7;
    border-radius: 9px;
    background: #fff;
    color: #4f6878;
    font-size: 1.05rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(20,55,80,.08)
}

.idea-activity-modal-v17 .idea-item-panel-v16 {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: visible
}

.idea-activity-modal-v17 .idea-item-panel-head-v16 {
    position: sticky;
    top: 0;
    z-index: 6;
    padding-right: 58px
}

.idea-activity-modal-v17 .idea-edit-activity-v16 {
    background: #fbfcfd
}

/* Los formularios rápidos (+ Actividad, + Investigación, etc.) ahora son modales. */
.idea-quick-modal-v17 {
    width: min(820px,95vw);
    max-height: 90vh;
    padding: 0;
    border: 0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(7,31,49,.28)
}

    .idea-quick-modal-v17::backdrop {
        background: rgba(9,34,52,.44);
        backdrop-filter: blur(3px)
    }

    .idea-quick-modal-v17 [data-idea-quick-modal-host] {
        max-height: 90vh;
        overflow: auto
    }

    .idea-quick-modal-v17 .idea-quick-panel-v16 {
        margin: 0;
        border: 0;
        border-radius: 18px;
        box-shadow: none
    }

        .idea-quick-modal-v17 .idea-quick-panel-v16 > header {
            position: sticky;
            top: 0;
            z-index: 4;
            padding: 13px 14px;
            background: #fff;
            border-bottom: 1px solid #e1e9ee
        }

/* Tarjetas de actividades debajo del Gantt. */
.idea-activity-board-v17 {
    margin: 0 14px 14px;
    padding: 14px;
    border: 1px solid #d3e1e9;
    border-radius: 16px;
    background: #fff
}

.idea-activity-board-head-v17 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px
}

    .idea-activity-board-head-v17 small {
        display: block;
        color: #17618f;
        font-size: .56rem;
        font-weight: 950;
        letter-spacing: .08em
    }

    .idea-activity-board-head-v17 h3 {
        margin: 3px 0 0;
        font-size: .92rem
    }

    .idea-activity-board-head-v17 > span {
        padding: 5px 8px;
        border-radius: 999px;
        background: #edf4f8;
        color: #577285;
        font-size: .51rem;
        font-weight: 850
    }

.idea-activity-grid-v17 {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(285px,1fr));
    gap: 10px
}

.idea-activity-card-v17 {
    position: relative;
    display: grid;
    gap: 9px;
    min-width: 0;
    padding: 12px 13px 12px 16px;
    border: 1px solid #dbe6ec;
    border-radius: 13px;
    background: #fbfdfe;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease
}

    .idea-activity-card-v17::before {
        content: "";
        position: absolute;
        left: 0;
        top: 11px;
        bottom: 11px;
        width: 4px;
        border-radius: 0 4px 4px 0;
        background: #52a3d8
    }

    .idea-activity-card-v17.phase-diseno::before {
        background: #9d82d4
    }

    .idea-activity-card-v17.phase-experimento::before {
        background: #e9a54c
    }

    .idea-activity-card-v17.phase-decision::before {
        background: #e07777
    }

    .idea-activity-card-v17.phase-preparacionejecucion::before {
        background: #62ba91
    }

    .idea-activity-card-v17:hover {
        transform: translateY(-2px);
        border-color: #9fc6dd;
        background: #fff;
        box-shadow: 0 10px 22px rgba(15,62,92,.09)
    }

.idea-activity-card-top-v17 {
    display: grid;
    grid-template-columns: 36px minmax(0,1fr) auto;
    align-items: center;
    gap: 9px
}

.idea-activity-owner-v17 {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid #cfe0eb;
    border-radius: 10px;
    background: #eef7fc;
    color: #17618f;
    font-size: .52rem;
    font-weight: 950
}

.idea-activity-card-title-v17 {
    min-width: 0
}

    .idea-activity-card-title-v17 small {
        display: block;
        color: #f36f21;
        font-size: .47rem;
        font-weight: 950;
        letter-spacing: .05em;
        text-transform: uppercase
    }

    .idea-activity-card-title-v17 b {
        display: block;
        margin-top: 2px;
        overflow: hidden;
        color: #183d55;
        font-size: .64rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

.idea-activity-card-top-v17 > strong {
    color: #255e81;
    font-size: .67rem
}

.idea-activity-person-v17 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px
}

    .idea-activity-person-v17 b {
        overflow: hidden;
        color: #36586e;
        font-size: .55rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .idea-activity-person-v17 small {
        color: #81909a;
        font-size: .48rem;
        white-space: nowrap
    }

.idea-activity-progress-v17 {
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7eef2
}

    .idea-activity-progress-v17 i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: #2d7ead
    }

.idea-activity-card-v17 footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #6c7f8b;
    font-size: .48rem
}

    .idea-activity-card-v17 footer > span {
        padding: 4px 6px;
        border-radius: 999px;
        background: #eef4f7;
        font-weight: 850
    }

    .idea-activity-card-v17 footer > div {
        display: flex;
        align-items: center;
        gap: 7px
    }

    .idea-activity-card-v17 footer b {
        color: #17618f
    }

/* Un poco más claro quién es responsable directamente en la fila del Gantt. */
.idea-gantt-label-v16 div {
    min-width: 0
}

.idea-gantt-label-v16 b {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.idea-gantt-label-v16 small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

@media(max-width:850px) {
    .idea-activity-modal-v17 {
        width: 98vw;
        max-height: 96vh
    }

    .idea-activity-modal-shell-v17 {
        max-height: 96vh
    }

    .idea-activity-grid-v17 {
        grid-template-columns: 1fr
    }
}

@media(max-width:600px) {
    .idea-activity-person-v17, .idea-activity-card-v17 footer {
        align-items: flex-start;
        flex-direction: column
    }
}


/* =========================================================
   V18 - always visible activity data + progress on comments
   + global collection wall
   ========================================================= */

.idea-edit-open-v18 {
    display: grid;
    gap: 14px;
    margin-top: 14px;
    padding: 14px;
    border: 1px solid #d7e4eb;
    border-radius: 14px;
    background: #fbfdfe;
}

.idea-edit-open-head-v18 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e2ebf0;
}

    .idea-edit-open-head-v18 small,
    .idea-general-head-v18 small,
    .idea-collection-head-v18 small,
    .idea-collection-column-v18 > header small {
        display: block;
        color: #17618f;
        font-size: .56rem;
        font-weight: 950;
        letter-spacing: .08em;
    }

    .idea-edit-open-head-v18 h4,
    .idea-general-head-v18 h3,
    .idea-collection-head-v18 h2,
    .idea-collection-column-v18 > header h3 {
        margin: 3px 0 0;
        color: #173e58;
    }

    .idea-edit-open-head-v18 p,
    .idea-general-head-v18 p,
    .idea-collection-head-v18 p {
        margin: 3px 0 0;
        color: #708391;
        font-size: .61rem;
    }

    .idea-edit-open-head-v18 > span,
    .idea-general-head-v18 > span,
    .idea-collection-column-v18 > header > span {
        display: grid;
        place-items: center;
        min-width: 46px;
        height: 34px;
        padding: 0 10px;
        border-radius: 999px;
        background: #edf6fb;
        color: #17618f;
        font-size: .68rem;
        font-weight: 950;
    }

.idea-comment-progress-v18 {
    display: grid;
    gap: 9px;
    margin-top: 2px;
    padding: 11px 12px;
    border: 1px solid #d6e5ed;
    border-radius: 12px;
    background: #f7fbfd;
}

    .idea-comment-progress-v18[hidden] {
        display: none !important;
    }

.idea-comment-progress-title-v18 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

    .idea-comment-progress-title-v18 b {
        display: block;
        color: #244e68;
        font-size: .62rem;
    }

    .idea-comment-progress-title-v18 small {
        display: block;
        margin-top: 2px;
        color: #7c8d98;
        font-size: .49rem;
    }

    .idea-comment-progress-title-v18 strong {
        min-width: 44px;
        text-align: right;
        color: #f06424;
        font-size: .78rem;
    }

.idea-comment-progress-controls-v18 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 78px;
    align-items: center;
    gap: 10px;
}

    .idea-comment-progress-controls-v18 input[type="range"] {
        width: 100%;
        accent-color: #176da3;
    }

    .idea-comment-progress-controls-v18 input[type="number"] {
        width: 100%;
        min-height: 36px;
        padding: 6px 8px;
        border: 1px solid #c9dbe5;
        border-radius: 9px;
        background: #fff;
        color: #173e58;
        font-weight: 850;
    }

.idea-inline-composer-v18 {
    display: grid;
    gap: 9px;
}

.idea-general-open-v18 {
    display: grid;
    gap: 12px;
    margin: 14px;
    padding: 14px;
    border: 1px solid #d6e4eb;
    border-radius: 16px;
    background: #fff;
}

.idea-general-head-v18 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.idea-general-open-v18 .idea-general-grid-v16 {
    margin: 0;
}

.idea-collection-v18 {
    margin: 14px;
    padding: 15px;
    border: 1px solid #cfe0e9;
    border-radius: 18px;
    background: linear-gradient(180deg,#f8fbfd 0%,#fff 100%);
    box-shadow: 0 14px 34px rgba(20,64,92,.06);
}

.idea-collection-head-v18 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

    .idea-collection-head-v18 h2 {
        font-size: 1.05rem;
    }

.idea-collection-counters-v18 {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

    .idea-collection-counters-v18 span {
        padding: 6px 9px;
        border: 1px solid #dae7ee;
        border-radius: 999px;
        background: #fff;
        color: #61798a;
        font-size: .52rem;
        white-space: nowrap;
    }

    .idea-collection-counters-v18 b {
        color: #17618f;
        font-size: .62rem;
    }

.idea-collection-grid-v18 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 12px;
    align-items: start;
}

.idea-collection-column-v18 {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dce7ed;
    border-radius: 14px;
    background: #fff;
}

    .idea-collection-column-v18 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 12px 13px;
        border-bottom: 1px solid #e6edf1;
        background: #fbfdfe;
    }

        .idea-collection-column-v18 > header h3 {
            font-size: .72rem;
        }

.idea-collection-list-v18 {
    display: grid;
    gap: 8px;
    padding: 10px;
}

.idea-progress-note-v18 {
    position: relative;
    display: grid;
    gap: 8px;
    width: 100%;
    padding: 10px 10px 10px 13px;
    border: 1px solid #dde8ee;
    border-radius: 11px;
    background: #fff;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}

    .idea-progress-note-v18:before {
        content: "";
        position: absolute;
        left: 0;
        top: 9px;
        bottom: 9px;
        width: 4px;
        border-radius: 0 5px 5px 0;
        background: #52a3d8;
    }

    .idea-progress-note-v18.phase-diseno:before {
        background: #9d82d4;
    }

    .idea-progress-note-v18.phase-experimento:before {
        background: #e9a54c;
    }

    .idea-progress-note-v18.phase-decision:before {
        background: #e07777;
    }

    .idea-progress-note-v18.phase-preparacionejecucion:before {
        background: #62ba91;
    }

    .idea-progress-note-v18:hover {
        transform: translateY(-1px);
        border-color: #a7c9dc;
        box-shadow: 0 7px 17px rgba(22,70,101,.07);
    }

.idea-progress-note-top-v18 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

    .idea-progress-note-top-v18 small {
        display: block;
        color: #f06424;
        font-size: .46rem;
        font-weight: 900;
        text-transform: uppercase;
    }

    .idea-progress-note-top-v18 b {
        display: block;
        margin-top: 2px;
        color: #244e68;
        font-size: .59rem;
        line-height: 1.3;
    }

    .idea-progress-note-top-v18 strong {
        color: #17618f;
        font-size: .7rem;
    }

.idea-progress-track-v18 {
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eff3;
}

    .idea-progress-track-v18 i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: #2c82b4;
    }

.idea-progress-note-v18 footer,
.idea-brain-note-v18 footer,
.idea-file-note-v18 footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #78909e;
    font-size: .47rem;
}

.idea-brain-note-v18,
.idea-file-note-v18 {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #e0e9ee;
    border-radius: 11px;
    background: #fff;
}

.idea-brain-note-meta-v18 {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: 8px;
}

    .idea-brain-note-meta-v18 b {
        display: block;
        color: #214b66;
        font-size: .56rem;
    }

    .idea-brain-note-meta-v18 small {
        display: block;
        margin-top: 1px;
        color: #8a99a3;
        font-size: .45rem;
    }

.idea-brain-note-v18 p,
.idea-file-note-v18 p {
    margin: 0;
    color: #435f72;
    font-size: .54rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.idea-brain-note-v18 footer button,
.idea-file-note-v18 footer button {
    max-width: 100%;
    padding: 4px 7px;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: #edf6fb;
    color: #17618f;
    font: inherit;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

.idea-file-note-v18 > a {
    display: grid;
    grid-template-columns: 36px minmax(0,1fr);
    align-items: center;
    gap: 9px;
    color: inherit;
    text-decoration: none;
}

.idea-file-icon-v18 {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #fff2e9;
    color: #f06424;
    font-size: .45rem;
    font-weight: 950;
    letter-spacing: .05em;
}

.idea-file-note-v18 b {
    display: block;
    overflow: hidden;
    color: #214b66;
    font-size: .57rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.idea-file-note-v18 small {
    display: block;
    margin-top: 3px;
    color: #8998a2;
    font-size: .44rem;
    line-height: 1.35;
}

.idea-collection-empty-v18 {
    margin: 0;
    padding: 14px 8px;
    color: #8b9aa4;
    font-size: .53rem;
    text-align: center;
}

@media(max-width:1100px) {
    .idea-collection-grid-v18 {
        grid-template-columns: 1fr 1fr;
    }

    .idea-collection-column-v18.files-column {
        grid-column: 1 / -1;
    }
}

@media(max-width:760px) {
    .idea-collection-head-v18,
    .idea-general-head-v18,
    .idea-edit-open-head-v18 {
        align-items: flex-start;
        flex-direction: column;
    }

    .idea-collection-counters-v18 {
        justify-content: flex-start;
    }

    .idea-collection-grid-v18 {
        grid-template-columns: 1fr;
    }

    .idea-collection-column-v18.files-column {
        grid-column: auto;
    }

    .idea-comment-progress-controls-v18 {
        grid-template-columns: 1fr 72px;
    }
}

/* =========================================================
   V19 · PRODUCTOS: GANTT INTERACTIVO, ACTIVIDADES Y LLUVIA
   ========================================================= */
.workspace-quick-actions-v19 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
}

    .workspace-quick-actions-v19 .btn {
        min-height: 34px
    }

.product-gantt-studio-v19 {
    margin-top: 18px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.product-gantt-toolbar-v19 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
    background: linear-gradient(135deg,#fff,var(--ns-blue-soft));
    border-bottom: 1px solid var(--line);
}

    .product-gantt-toolbar-v19 > div:first-child {
        max-width: 670px
    }

    .product-gantt-toolbar-v19 small,
    .product-activity-board-v19 > header small,
    .product-followup-rain-head-v19 small,
    .product-rain-column-v19 > header small,
    .task-drawer-header-v19 small,
    .task-file-uploader-v19 small {
        color: var(--ns-blue);
        font-size: .67rem;
        font-weight: 900;
        letter-spacing: .1em;
    }

    .product-gantt-toolbar-v19 h4,
    .product-activity-board-v19 h4,
    .product-followup-rain-v19 h3,
    .product-rain-column-v19 h4 {
        margin: 4px 0;
    }

    .product-gantt-toolbar-v19 p,
    .product-activity-board-v19 > header p,
    .product-followup-rain-head-v19 p {
        margin: 0;
        color: var(--muted);
    }

.product-gantt-toolbar-actions-v19 {
    display: grid;
    justify-items: end;
    gap: 9px;
    min-width: min(100%,500px);
}

.product-gantt-counts-v19 {
    position: absolute;
    right: 8px;
    top: 50%;
    display: flex;
    gap: 4px;
    transform: translateY(-50%);
    font-style: normal;
}

    .product-gantt-counts-v19 i {
        display: inline-flex;
        align-items: center;
        min-height: 20px;
        padding: 2px 6px;
        border-radius: 999px;
        background: rgba(255,255,255,.88);
        color: #244a62;
        font-size: .62rem;
        font-style: normal;
        font-weight: 850;
        box-shadow: 0 2px 8px rgba(18,55,78,.12);
    }

.product-gantt-bar-v158[data-origin-type][data-origin-id] {
    cursor: pointer
}

    .product-gantt-bar-v158[data-origin-type][data-origin-id]:focus-visible {
        outline: 3px solid rgba(243,111,33,.3);
        outline-offset: 3px;
    }

.product-gantt-bar-v158 > span[data-progress-value] {
    position: absolute;
    inset: 0 auto 0 0;
    z-index: 0;
    border-radius: inherit;
    background: rgba(255,255,255,.22);
    pointer-events: none;
}

.product-gantt-bar-v158 > b,
.product-gantt-bar-v158 > .product-gantt-counts-v19,
.product-gantt-bar-v158 > [data-product-gantt-resize] {
    position: relative;
    z-index: 2
}

.product-activity-board-v19 {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

    .product-activity-board-v19 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 18px;
        margin-bottom: 16px;
    }

        .product-activity-board-v19 > header > span {
            flex: 0 0 auto;
            padding: 6px 10px;
            border-radius: 999px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-size: .72rem;
            font-weight: 850;
        }

.product-activity-grid-v19 {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(285px,1fr));
    gap: 12px;
}

.product-activity-card-v19 {
    position: relative;
    display: grid;
    gap: 11px;
    min-width: 0;
    padding: 15px 15px 14px 19px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(145deg,var(--surface),var(--surface-2));
    color: inherit;
    text-align: left;
    box-shadow: 0 6px 18px rgba(39,45,49,.04);
    transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}

    .product-activity-card-v19:before {
        content: "";
        position: absolute;
        left: 0;
        top: 13px;
        bottom: 13px;
        width: 4px;
        border-radius: 0 5px 5px 0;
        background: var(--ns-blue);
    }

    .product-activity-card-v19.status-terminado:before {
        background: var(--ns-green)
    }

    .product-activity-card-v19.status-bloqueado:before {
        background: var(--ns-red)
    }

    .product-activity-card-v19.status-enproceso:before {
        background: var(--ns-orange)
    }

    .product-activity-card-v19:hover,
    .product-activity-card-v19:focus-visible {
        transform: translateY(-2px);
        border-color: rgba(45,103,132,.44);
        box-shadow: var(--shadow-hover);
        outline: none;
    }

.product-activity-card-head-v19 {
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
}

    .product-activity-card-head-v19 > span {
        display: grid;
        place-items: center;
        width: 40px;
        height: 40px;
        border-radius: 13px;
        background: var(--ns-blue-soft);
        color: var(--ns-blue);
        font-size: .68rem;
        font-weight: 900;
    }

    .product-activity-card-head-v19 > div {
        min-width: 0
    }

    .product-activity-card-head-v19 small {
        display: block;
        color: var(--ns-orange);
        font-size: .62rem;
        font-weight: 900;
        letter-spacing: .04em;
    }

    .product-activity-card-head-v19 b {
        display: block;
        margin-top: 3px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .product-activity-card-head-v19 strong {
        color: var(--ns-blue);
        font-size: .82rem
    }

.product-activity-assignee-v19 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: .72rem;
}

    .product-activity-assignee-v19 b {
        overflow: hidden;
        color: var(--text);
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .product-activity-assignee-v19 small {
        white-space: nowrap
    }

.product-activity-progress-v19 {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--surface-3);
}

    .product-activity-progress-v19 i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg,var(--ns-blue),#46a2b0);
    }

.product-activity-card-v19 > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: .68rem;
}

    .product-activity-card-v19 > footer > span {
        padding: 4px 7px;
        border-radius: 999px;
        background: var(--surface-3);
        font-weight: 800;
    }

    .product-activity-card-v19 > footer > div {
        display: flex;
        align-items: center;
        gap: 7px
    }

    .product-activity-card-v19 > footer em {
        font-style: normal
    }

    .product-activity-card-v19 > footer b {
        color: var(--ns-blue);
        white-space: nowrap
    }

.product-followup-rain-v19 {
    margin: 28px 0 8px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: linear-gradient(145deg,#fff,var(--surface-2));
    box-shadow: var(--shadow);
    scroll-margin-top: 86px;
}

.product-followup-rain-head-v19 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 15px;
}

    .product-followup-rain-head-v19 > div:last-child {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 7px;
    }

        .product-followup-rain-head-v19 > div:last-child span {
            padding: 6px 9px;
            border: 1px solid var(--line);
            border-radius: 999px;
            background: #fff;
            color: var(--muted);
            font-size: .7rem;
            font-weight: 800;
        }

.product-followup-composer-v19 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: end;
    gap: 10px;
    margin-bottom: 16px;
    padding: 12px;
    border: 1px solid #d8e6ed;
    border-radius: 16px;
    background: var(--ns-blue-soft);
}

    .product-followup-composer-v19 label {
        display: grid;
        gap: 5px
    }

        .product-followup-composer-v19 label > span {
            color: var(--ns-blue);
            font-size: .7rem;
            font-weight: 850
        }

    .product-followup-composer-v19 textarea {
        min-height: 70px;
        resize: vertical;
        border-color: #cbdde6;
        background: #fff;
    }

.product-followup-rain-grid-v19 {
    display: grid;
    grid-template-columns: minmax(250px,.85fr) minmax(300px,1.15fr) minmax(270px,1fr);
    gap: 12px;
    align-items: start;
}

.product-rain-column-v19 {
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
    overflow: hidden;
}

    .product-rain-column-v19 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        padding: 14px 15px;
        border-bottom: 1px solid var(--line);
        background: var(--surface-2);
    }

        .product-rain-column-v19 > header h4 {
            font-size: .92rem
        }

        .product-rain-column-v19 > header > span {
            display: grid;
            place-items: center;
            min-width: 28px;
            height: 28px;
            padding: 0 8px;
            border-radius: 999px;
            background: var(--ns-blue-soft);
            color: var(--ns-blue);
            font-size: .7rem;
            font-weight: 900;
        }

.product-rain-stream-v19 {
    display: grid;
    gap: 8px;
    max-height: 560px;
    padding: 10px;
    overflow: auto;
}

.product-rain-progress-v19,
.product-rain-comment-v19,
.product-rain-file-v19 {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
    color: inherit;
    text-align: left;
    transition: border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}

button.product-rain-progress-v19:hover,
button.product-rain-comment-v19:hover,
button.product-rain-progress-v19:focus-visible,
button.product-rain-comment-v19:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(45,103,132,.42);
    box-shadow: 0 8px 18px rgba(35,76,100,.08);
    outline: none;
}

.product-rain-progress-v19 {
    display: grid;
    gap: 9px;
    padding: 11px
}

    .product-rain-progress-v19 > div {
        display: grid;
        grid-template-columns: 32px minmax(0,1fr) auto;
        align-items: center;
        gap: 9px;
    }

        .product-rain-progress-v19 > div > span:nth-child(2) {
            min-width: 0
        }

    .product-rain-progress-v19 small,
    .product-rain-comment-v19 small,
    .product-rain-file-v19 small {
        display: block;
        color: var(--muted);
        font-size: .61rem
    }

    .product-rain-progress-v19 b,
    .product-rain-comment-v19 b,
    .product-rain-file-v19 b {
        display: block;
        margin-top: 2px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .product-rain-progress-v19 em,
    .product-rain-comment-v19 em,
    .product-rain-file-v19 em {
        display: block;
        color: var(--muted);
        font-size: .65rem;
        font-style: normal
    }

    .product-rain-progress-v19 > i {
        display: block;
        height: 5px;
        overflow: hidden;
        border-radius: 999px;
        background: var(--surface-3);
    }

        .product-rain-progress-v19 > i > em {
            display: block;
            height: 100%;
            border-radius: inherit;
            background: linear-gradient(90deg,var(--ns-blue),#46a2b0);
        }

.product-rain-comment-v19 {
    display: grid;
    grid-template-columns: 32px minmax(0,1fr);
    gap: 9px;
    padding: 11px;
}

    .product-rain-comment-v19 > span:last-child {
        min-width: 0
    }

    .product-rain-comment-v19 p,
    .product-rain-file-v19 p {
        margin: 5px 0;
        color: #46535c;
        font-size: .76rem;
        line-height: 1.45;
        white-space: pre-wrap;
    }

.product-rain-file-v19 {
    padding: 10px
}

    .product-rain-file-v19 > a {
        display: grid;
        grid-template-columns: 36px minmax(0,1fr);
        align-items: center;
        gap: 9px;
    }

        .product-rain-file-v19 > a > span:first-child {
            display: grid;
            place-items: center;
            width: 36px;
            height: 40px;
            border-radius: 10px;
            background: var(--ns-orange-soft);
            color: var(--ns-orange-strong);
            font-size: .58rem;
            font-weight: 900;
        }

        .product-rain-file-v19 > a > span:last-child {
            min-width: 0
        }

    .product-rain-file-v19 > button {
        margin-top: 8px;
        padding: 0;
        border: 0;
        background: none;
        color: var(--ns-blue);
        font-size: .68rem;
        font-weight: 850;
    }

.product-rain-empty-v19 {
    padding: 28px 15px;
    color: var(--muted);
    text-align: center;
}

    .product-rain-empty-v19 b {
        display: block;
        color: var(--text)
    }

    .product-rain-empty-v19 p {
        margin: 4px 0 0;
        font-size: .76rem
    }

/* Panel lateral de actividad: la información esencial siempre queda visible. */
.task-drawer-header-v19 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px 16px;
    border-bottom: 1px solid var(--line);
    background: linear-gradient(135deg,#fff,var(--ns-blue-soft));
}

    .task-drawer-header-v19 h2 {
        margin: 4px 0 6px;
        font-size: 1.35rem;
        line-height: 1.2
    }

    .task-drawer-header-v19 p {
        margin: 0;
        color: var(--muted)
    }

.task-overview-grid-v19 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    margin-bottom: 14px;
}

    .task-overview-grid-v19 > div {
        display: grid;
        gap: 4px;
        min-width: 0;
        padding: 11px 12px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: var(--surface-2);
    }

    .task-overview-grid-v19 small {
        color: var(--muted);
        font-size: .65rem;
        font-weight: 800;
        letter-spacing: .04em
    }

    .task-overview-grid-v19 b {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

.drawer-operational-update-v19 {
    margin: 14px 0;
    padding: 15px;
    border: 1px solid #cfe0e8;
    border-radius: 15px;
    background: var(--ns-blue-soft);
}

    .drawer-operational-update-v19 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 12px
    }

        .drawer-operational-update-v19 > header h3 {
            margin: 3px 0;
            font-size: 1rem
        }

        .drawer-operational-update-v19 > header p {
            margin: 0;
            color: var(--muted);
            font-size: .75rem
        }

.update-composer-v19 {
    margin-bottom: 16px;
    padding: 15px;
    border: 1px solid #d4e2e9;
    border-radius: 16px;
    background: var(--surface-2);
}

    .update-composer-v19 > textarea {
        width: 100%;
        resize: vertical
    }

    .update-composer-v19 > footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-top: 12px;
    }

        .update-composer-v19 > footer small {
            max-width: 420px;
            color: var(--muted)
        }

.task-comment-progress-v19 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 78px;
    align-items: center;
    gap: 10px 12px;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #cfdfe7;
    border-radius: 13px;
    background: #fff;
}

    .task-comment-progress-v19 > div {
        grid-column: 1 / -1;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
    }

        .task-comment-progress-v19 > div span {
            display: grid;
            gap: 2px
        }

        .task-comment-progress-v19 > div small {
            color: var(--muted);
            font-size: .7rem
        }

        .task-comment-progress-v19 > div strong {
            color: var(--ns-blue);
            font-size: 1.1rem
        }

    .task-comment-progress-v19 input[type="range"] {
        width: 100%;
        accent-color: var(--ns-blue)
    }

    .task-comment-progress-v19 input[type="number"] {
        width: 78px;
        text-align: center
    }

.task-file-uploader-v19 {
    margin-bottom: 14px;
    padding: 15px;
    border: 1px dashed #a9cbd8;
    border-radius: 16px;
    background: var(--ns-blue-soft);
}

    .task-file-uploader-v19 h3 {
        margin: 3px 0 10px
    }

.task-file-list-v19 {
    display: grid;
    gap: 9px
}

    .task-file-list-v19 > article {
        display: grid;
        grid-template-columns: minmax(0,1fr) auto;
        align-items: center;
        gap: 10px;
        padding: 10px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: #fff;
    }

        .task-file-list-v19 > article > a {
            display: grid;
            grid-template-columns: 40px minmax(0,1fr);
            align-items: center;
            gap: 10px;
            min-width: 0;
        }

            .task-file-list-v19 > article > a > span {
                display: grid;
                place-items: center;
                width: 40px;
                height: 44px;
                border-radius: 11px;
                background: var(--ns-orange-soft);
                color: var(--ns-orange-strong);
                font-size: .6rem;
                font-weight: 900;
            }

            .task-file-list-v19 > article > a > div {
                min-width: 0
            }

    .task-file-list-v19 b {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .task-file-list-v19 p {
        margin: 3px 0;
        color: var(--muted);
        font-size: .74rem
    }

    .task-file-list-v19 small,
    .task-file-list-v19 em {
        display: block;
        color: var(--muted);
        font-size: .65rem;
        font-style: normal
    }

@media(max-width:1180px) {
    .product-gantt-toolbar-v19 {
        flex-direction: column
    }

    .product-gantt-toolbar-actions-v19 {
        justify-items: start;
        width: 100%
    }

    .product-followup-rain-grid-v19 {
        grid-template-columns: 1fr 1fr
    }

    .product-rain-column-v19.files {
        grid-column: 1 / -1
    }
}

@media(max-width:760px) {
    .product-gantt-toolbar-v19,
    .product-activity-board-v19,
    .product-followup-rain-v19 {
        padding: 15px
    }

        .product-activity-board-v19 > header,
        .product-followup-rain-head-v19,
        .update-composer-v19 > footer {
            flex-direction: column
        }

    .product-gantt-toolbar-actions-v19 {
        min-width: 0
    }

    .product-gantt-filters-v158,
    .product-gantt-actions-v158 {
        max-width: 100%;
        overflow: auto
    }

    .product-activity-grid-v19,
    .product-followup-rain-grid-v19,
    .task-overview-grid-v19 {
        grid-template-columns: 1fr
    }

    .product-rain-column-v19.files {
        grid-column: auto
    }

    .product-followup-composer-v19 {
        grid-template-columns: 1fr
    }

    .product-followup-rain-head-v19 > div:last-child {
        justify-content: flex-start
    }

    .product-activity-assignee-v19,
    .product-activity-card-v19 > footer {
        align-items: flex-start;
        flex-direction: column
    }

    .task-drawer-header-v19 {
        padding: 16px
    }

    .task-comment-progress-v19 {
        grid-template-columns: minmax(0,1fr) 72px
    }

    .task-file-list-v19 > article {
        grid-template-columns: 1fr
    }
}

/* ========================================================================== */
/* V20 · EXPERIENCIA MADURA: PRODUCTOS Y JUNTAS                              */
/* ========================================================================== */

/* ---------- Base visual -------------------------------------------------- */
.workspace-command-v20,
.meeting-home-command-v20,
.meeting-detail-head-v20,
.meeting-editor-v20,
.meeting-home-panel-v20,
.meeting-history-panel-v20,
.meeting-panel-v20 {
    border: 1px solid #d9e4eb;
    background: #fff;
    box-shadow: 0 12px 32px rgba(15,45,67,.06);
}

.workspace-command-v20 {
    display: grid;
    gap: 16px;
    margin-bottom: 14px;
    padding: 20px 22px;
    border-radius: 20px;
    border-top: 4px solid var(--ns-orange);
    background: linear-gradient(135deg,#fff 0%,#f7fbfe 65%,#fff7f1 100%);
}

.workspace-command-main-v20 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px
}

.workspace-command-title-v20 {
    min-width: 0;
    max-width: 840px
}

    .workspace-command-title-v20 > div {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap
    }

.workspace-code-v20, .workspace-stage-v20 {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid #cfe0e9;
    border-radius: 999px;
    background: #fff;
    color: #274f6b;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06em
}

.workspace-stage-v20 {
    background: #eef6fa;
    color: #557184;
    font-weight: 800;
    letter-spacing: 0
}

.workspace-command-title-v20 h2 {
    margin: 9px 0 4px;
    color: #102f49;
    font-size: clamp(1.55rem,2.4vw,2.45rem);
    line-height: 1.05
}

.workspace-command-title-v20 p {
    max-width: 760px;
    margin: 0;
    color: #5c7181;
    line-height: 1.55
}

.workspace-command-actions-v20 {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap
}

.workspace-command-bottom-v20 {
    display: grid;
    grid-template-columns: minmax(260px,1.25fr) minmax(180px,.62fr) minmax(260px,1fr) minmax(125px,.4fr);
    gap: 10px;
    padding-top: 15px;
    border-top: 1px solid #e1e9ee
}

.workspace-owner-line-v20, .workspace-progress-compact-v20, .workspace-next-compact-v20, .workspace-last-compact-v20 {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #dde7ed;
    border-radius: 14px;
    background: rgba(255,255,255,.84)
}

.workspace-owner-line-v20 {
    display: flex;
    align-items: center;
    gap: 9px;
    overflow: hidden
}

    .workspace-owner-line-v20 .avatar {
        flex: 0 0 36px;
        width: 36px;
        height: 36px;
        font-size: .72rem
    }

    .workspace-owner-line-v20 > span {
        display: grid;
        min-width: 0
    }

    .workspace-owner-line-v20 small, .workspace-progress-compact-v20 span, .workspace-next-compact-v20 small, .workspace-last-compact-v20 small {
        color: #718594;
        font-size: .61rem;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .05em
    }

    .workspace-owner-line-v20 b, .workspace-next-compact-v20 b {
        overflow: hidden;
        color: #173f5b;
        font-size: .78rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .workspace-owner-line-v20 > i {
        width: 1px;
        height: 28px;
        background: #dde7ed
    }

.workspace-progress-compact-v20 {
    display: grid;
    gap: 8px
}

    .workspace-progress-compact-v20 > div {
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    .workspace-progress-compact-v20 strong {
        font-size: 1.05rem;
        color: #173f5b
    }

    .workspace-progress-compact-v20 > i {
        display: block;
        height: 7px;
        overflow: hidden;
        border-radius: 999px;
        background: #e7eef2
    }

        .workspace-progress-compact-v20 > i > em {
            display: block;
            height: 100%;
            border-radius: inherit;
            background: #2c83af
        }

    .workspace-progress-compact-v20.warning > i > em {
        background: #c38a18
    }

    .workspace-progress-compact-v20.danger > i > em {
        background: #ca4848
    }

.workspace-next-compact-v20 {
    display: grid;
    gap: 5px
}

    .workspace-next-compact-v20 > span {
        display: grid;
        gap: 2px
    }

    .workspace-next-compact-v20 > em, .workspace-last-compact-v20 span {
        overflow: hidden;
        color: #718594;
        font-size: .69rem;
        font-style: normal;
        text-overflow: ellipsis;
        white-space: nowrap
    }

.workspace-last-compact-v20 {
    display: grid;
    gap: 2px;
    align-content: center
}

    .workspace-last-compact-v20 b {
        font-size: .95rem;
        color: #173f5b
    }

/* ---------- Navegación compacta del producto ---------------------------- */
.workspace-layout-v20 {
    display: block !important;
    min-width: 0
}

.workspace-nav-shell-v20 {
    position: sticky !important;
    top: 8px !important;
    z-index: 34;
    max-height: none !important;
    margin-bottom: 14px;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important
}

.workspace-nav-toggle-v20 {
    display: none !important
}

.workspace-nav-v20 {
    display: flex !important;
    align-items: center;
    gap: 6px;
    padding: 7px !important;
    border: 1px solid #d8e4eb;
    border-radius: 16px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 24px rgba(15,45,67,.07);
    overflow: visible !important
}

    .workspace-nav-v20 > a {
        display: flex !important;
        align-items: center !important;
        gap: 7px !important;
        min-height: 40px !important;
        padding: 8px 12px !important;
        border: 0 !important;
        border-radius: 11px !important;
        color: #597082 !important;
        background: transparent !important;
        white-space: nowrap
    }

        .workspace-nav-v20 > a > span {
            display: grid;
            place-items: center;
            width: 23px;
            height: 23px;
            border-radius: 7px;
            background: #eef4f8;
            color: #315f7d;
            font-size: .72rem
        }

        .workspace-nav-v20 > a > b {
            font-size: .76rem
        }

        .workspace-nav-v20 > a > em {
            display: grid;
            place-items: center;
            min-width: 20px;
            height: 20px;
            padding: 0 5px;
            border-radius: 999px;
            background: #edf4f8;
            color: #315f7d;
            font-size: .62rem;
            font-style: normal
        }

        .workspace-nav-v20 > a.active {
            background: #165f9f !important;
            color: #fff !important;
            box-shadow: 0 8px 18px rgba(22,95,159,.22)
        }

            .workspace-nav-v20 > a.active > span, .workspace-nav-v20 > a.active > em {
                background: rgba(255,255,255,.18);
                color: #fff
            }

.workspace-nav-more-v20 {
    position: relative;
    margin-left: auto
}

    .workspace-nav-more-v20 > summary {
        display: flex;
        align-items: center;
        gap: 7px;
        min-height: 40px;
        padding: 8px 12px;
        border-radius: 11px;
        color: #597082;
        font-size: .76rem;
        font-weight: 850;
        cursor: pointer;
        list-style: none
    }

        .workspace-nav-more-v20 > summary:hover, .workspace-nav-more-v20[open] > summary {
            background: #eef4f8;
            color: #315f7d
        }

    .workspace-nav-more-v20 > div {
        position: absolute;
        right: 0;
        top: calc(100% + 8px);
        display: grid;
        min-width: 240px;
        padding: 8px;
        border: 1px solid #d8e4eb;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 18px 44px rgba(15,45,67,.16)
    }

        .workspace-nav-more-v20 > div > a {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 10px;
            border-radius: 9px;
            color: #496477;
            font-size: .75rem;
            text-decoration: none
        }

            .workspace-nav-more-v20 > div > a:hover, .workspace-nav-more-v20 > div > a.active {
                background: #edf5fa;
                color: #165f9f
            }

        .workspace-nav-more-v20 > div em {
            display: grid;
            place-items: center;
            min-width: 20px;
            height: 20px;
            padding: 0 5px;
            border-radius: 999px;
            background: #fff0e8;
            color: #c55113;
            font-style: normal
        }

.workspace-main-v20 {
    min-width: 0;
    width: 100%
}

    .workspace-main-v20 > .section-intro {
        margin-top: 0 !important;
        padding: 4px 2px 14px !important;
        border-top: 0 !important
    }

.product-section-intro-v20 {
    align-items: flex-end
}

    .product-section-intro-v20 h3 {
        font-size: 1.45rem
    }

/* ---------- Trabajo directo --------------------------------------------- */
.product-work-toolbar-v20 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
    padding: 10px;
    border: 1px solid #dae5eb;
    border-radius: 15px;
    background: #fff
}

    .product-work-toolbar-v20 > label {
        flex: 1;
        max-width: 430px
    }

    .product-work-toolbar-v20 input {
        width: 100%;
        min-height: 40px;
        padding: 9px 12px;
        border: 1px solid #d4e1e8;
        border-radius: 10px;
        background: #f8fbfd
    }

    .product-work-toolbar-v20 > div {
        display: flex;
        gap: 5px;
        padding: 4px;
        border-radius: 11px;
        background: #eef4f8
    }

    .product-work-toolbar-v20 button {
        display: flex;
        align-items: center;
        gap: 6px;
        min-height: 34px;
        padding: 7px 10px;
        border: 0;
        border-radius: 8px;
        background: transparent;
        color: #567083;
        font-size: .7rem;
        font-weight: 850;
        cursor: pointer
    }

        .product-work-toolbar-v20 button span {
            display: grid;
            place-items: center;
            min-width: 18px;
            height: 18px;
            padding: 0 4px;
            border-radius: 999px;
            background: #fff;
            color: #567083;
            font-size: .58rem
        }

        .product-work-toolbar-v20 button.active {
            background: #fff;
            color: #165f9f;
            box-shadow: 0 3px 9px rgba(15,45,67,.09)
        }

.product-work-groups-v20 {
    display: grid;
    gap: 16px
}

    .product-work-groups-v20 > section {
        padding: 15px;
        border: 1px solid #d9e5eb;
        border-radius: 18px;
        background: #f8fbfd
    }

        .product-work-groups-v20 > section > header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 12px
        }

            .product-work-groups-v20 > section > header > div {
                display: flex;
                align-items: center;
                gap: 8px
            }

            .product-work-groups-v20 > section > header h4 {
                margin: 0;
                color: #173f5b;
                font-size: .88rem
            }

            .product-work-groups-v20 > section > header > b {
                display: grid;
                place-items: center;
                min-width: 27px;
                height: 27px;
                padding: 0 7px;
                border-radius: 999px;
                background: #e9f2f7;
                color: #315f7d;
                font-size: .7rem
            }

.product-task-grid-v20 {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(270px,1fr));
    gap: 10px
}

    .product-task-grid-v20.compact {
        grid-template-columns: repeat(auto-fill,minmax(250px,1fr))
    }

.product-task-card-v20 {
    position: relative;
    display: grid;
    gap: 9px;
    min-width: 0;
    padding: 13px;
    border: 1px solid #dce6ec;
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .15s,border-color .15s,box-shadow .15s
}

    .product-task-card-v20:before {
        position: absolute;
        left: 0;
        top: 12px;
        bottom: 12px;
        width: 4px;
        border-radius: 0 4px 4px 0;
        background: #7ca6bd;
        content: ""
    }

    .product-task-card-v20.status-enproceso:before {
        background: #2b79ae
    }

    .product-task-card-v20.status-enrevision:before {
        background: #a87316
    }

    .product-task-card-v20.status-uat:before {
        background: #7b4bb4
    }

    .product-task-card-v20.status-bloqueado:before, .product-task-card-v20.late:before {
        background: #cb4545
    }

    .product-task-card-v20.status-terminado:before {
        background: #258b69
    }

    .product-task-card-v20:hover {
        transform: translateY(-2px);
        border-color: #9cc3d8;
        box-shadow: 0 10px 24px rgba(15,45,67,.1)
    }

    .product-task-card-v20 > header {
        display: flex;
        align-items: center;
        gap: 7px;
        padding-left: 3px
    }

        .product-task-card-v20 > header span {
            color: #315f7d;
            font-size: .62rem;
            font-weight: 900
        }

        .product-task-card-v20 > header i {
            margin-left: auto;
            padding: 4px 7px;
            border-radius: 999px;
            background: #eef4f8;
            color: #5b7383;
            font-size: .58rem;
            font-style: normal;
            font-weight: 850
        }

        .product-task-card-v20 > header em {
            font-style: normal
        }

    .product-task-card-v20 h4 {
        margin: 0;
        color: #123b57;
        font-size: .9rem;
        line-height: 1.28
    }

    .product-task-card-v20 > p {
        display: -webkit-box;
        min-height: 2.5em;
        margin: 0;
        overflow: hidden;
        color: #6d7f8c;
        font-size: .7rem;
        line-height: 1.35;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2
    }

.product-task-owner-v20 {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0
}

    .product-task-owner-v20 > span:last-child {
        display: grid;
        min-width: 0
    }

    .product-task-owner-v20 b, .product-task-owner-v20 small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .product-task-owner-v20 b {
        color: #385b70;
        font-size: .68rem
    }

    .product-task-owner-v20 small {
        color: #84939d;
        font-size: .61rem
    }

.product-task-block-v20 {
    display: grid;
    gap: 2px;
    padding: 7px 9px;
    border-radius: 9px;
    background: #fff0f0;
    color: #a53a3a;
    font-size: .65rem
}

    .product-task-block-v20 b {
        font-size: .6rem;
        text-transform: uppercase
    }

.product-task-card-v20 > footer {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    align-items: center;
    gap: 8px
}

    .product-task-card-v20 > footer > i {
        height: 5px;
        overflow: hidden;
        border-radius: 999px;
        background: #e8eef2
    }

        .product-task-card-v20 > footer > i > em {
            display: block;
            height: 100%;
            border-radius: inherit;
            background: #2d7da9
        }

    .product-task-card-v20 > footer strong {
        font-size: .67rem;
        color: #315f7d
    }

    .product-task-card-v20 > footer span {
        padding: 3px 6px;
        border-radius: 999px;
        background: #f3f6f8;
        color: #72838f;
        font-size: .55rem
    }

.product-work-empty-v20 {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px;
    border: 1px dashed #b9d1df;
    border-radius: 17px;
    background: #f7fbfd
}

    .product-work-empty-v20 > span {
        display: grid;
        place-items: center;
        flex: 0 0 42px;
        width: 42px;
        height: 42px;
        border-radius: 12px;
        background: #e8f3f9;
        color: #236b98;
        font-size: 1.3rem
    }

    .product-work-empty-v20 > div {
        flex: 1
    }

    .product-work-empty-v20 h4, .product-work-empty-v20 p {
        margin: 0
    }

    .product-work-empty-v20 p {
        margin-top: 3px;
        color: #6b7e8c
    }

/* ---------- Juntas dentro del producto ---------------------------------- */
.product-meeting-layout-v20 {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(320px,.75fr);
    gap: 14px
}

.product-meeting-panel-v20 {
    padding: 16px;
    border: 1px solid #d9e5eb;
    border-radius: 18px;
    background: #fff
}

    .product-meeting-panel-v20 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 11px;
        padding-bottom: 11px;
        border-bottom: 1px solid #e4ebef
    }

        .product-meeting-panel-v20 > header small {
            color: #315f7d;
            font-size: .59rem;
            font-weight: 900;
            letter-spacing: .08em
        }

        .product-meeting-panel-v20 > header h4 {
            margin: 2px 0 0
        }

        .product-meeting-panel-v20 > header > span {
            display: grid;
            place-items: center;
            min-width: 28px;
            height: 28px;
            padding: 0 7px;
            border-radius: 999px;
            background: #edf5fa;
            color: #315f7d;
            font-size: .68rem;
            font-weight: 900
        }

.product-meeting-list-v20, .product-meeting-history-v20 {
    display: grid;
    gap: 8px
}

    .product-meeting-list-v20 > a {
        display: grid;
        grid-template-columns: 48px minmax(0,1fr) auto auto;
        align-items: center;
        gap: 11px;
        padding: 10px;
        border: 1px solid #e0e8ed;
        border-radius: 13px;
        color: inherit;
        text-decoration: none
    }

        .product-meeting-list-v20 > a:hover {
            border-color: #9cc4d9;
            background: #f9fcfe
        }

    .product-meeting-list-v20 time {
        display: grid;
        place-items: center;
        width: 46px;
        height: 49px;
        border-radius: 11px;
        background: #eaf4fa;
        color: #245f86
    }

        .product-meeting-list-v20 time b {
            font-size: 1rem
        }

        .product-meeting-list-v20 time small {
            font-size: .55rem;
            font-weight: 900
        }

    .product-meeting-list-v20 > a > span {
        display: grid;
        min-width: 0
    }

        .product-meeting-list-v20 > a > span small, .product-meeting-list-v20 > a > span p {
            color: #758894;
            font-size: .64rem
        }

        .product-meeting-list-v20 > a > span b {
            overflow: hidden;
            color: #183e59;
            font-size: .78rem;
            text-overflow: ellipsis;
            white-space: nowrap
        }

        .product-meeting-list-v20 > a > span p {
            margin: 2px 0 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap
        }

    .product-meeting-list-v20 > a > i {
        padding: 4px 7px;
        border-radius: 999px;
        background: #edf7f2;
        color: #287356;
        font-size: .57rem;
        font-style: normal
    }

    .product-meeting-list-v20 > a > strong {
        color: #2b6388;
        font-size: .65rem
    }

    .product-meeting-history-v20 > a {
        display: grid;
        grid-template-columns: minmax(0,1fr) auto auto;
        gap: 8px;
        padding: 10px;
        border-radius: 11px;
        color: inherit;
        text-decoration: none
    }

        .product-meeting-history-v20 > a:hover {
            background: #f5f9fb
        }

        .product-meeting-history-v20 > a > span {
            display: grid;
            min-width: 0
        }

    .product-meeting-history-v20 small, .product-meeting-history-v20 p, .product-meeting-history-v20 em {
        color: #778994;
        font-size: .62rem;
        font-style: normal
    }

    .product-meeting-history-v20 b, .product-meeting-history-v20 p {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .product-meeting-history-v20 b {
        font-size: .75rem
    }

    .product-meeting-history-v20 p {
        margin: 2px 0 0
    }

    .product-meeting-history-v20 strong {
        color: #2b6388;
        font-size: .64rem
    }

/* ---------- Diálogo de captura del producto ----------------------------- */
.product-capture-dialog-v20, .meeting-capture-dialog-v20 {
    width: min(850px,96vw);
    max-height: 92vh;
    padding: 0;
    border: 0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(7,31,49,.3)
}

    .product-capture-dialog-v20::backdrop, .meeting-capture-dialog-v20::backdrop {
        background: rgba(8,31,47,.5);
        backdrop-filter: blur(3px)
    }

.product-capture-shell-v20, .meeting-capture-shell-v20 {
    max-height: 92vh;
    overflow: auto
}

    .product-capture-shell-v20 > header, .meeting-capture-shell-v20 > header {
        position: sticky;
        top: 0;
        z-index: 4;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 15px;
        padding: 18px 20px 14px;
        border-bottom: 1px solid #dde7ed;
        background: #fff
    }

        .product-capture-shell-v20 > header small, .meeting-capture-shell-v20 > header small {
            color: #27688f;
            font-size: .6rem;
            font-weight: 900;
            letter-spacing: .09em
        }

        .product-capture-shell-v20 > header h3, .meeting-capture-shell-v20 > header h3 {
            margin: 3px 0;
            font-size: 1.15rem
        }

        .product-capture-shell-v20 > header p, .meeting-capture-shell-v20 > header p {
            margin: 0;
            color: #71818c;
            font-size: .75rem
        }

        .product-capture-shell-v20 > header button, .meeting-capture-shell-v20 > header button {
            display: grid;
            place-items: center;
            flex: 0 0 34px;
            width: 34px;
            height: 34px;
            border: 1px solid #d8e3e9;
            border-radius: 10px;
            background: #fff;
            color: #587184;
            font-size: 1.1rem;
            cursor: pointer
        }

    .product-capture-shell-v20 > nav, .meeting-capture-shell-v20 > nav {
        position: sticky;
        top: 87px;
        z-index: 3;
        display: flex;
        gap: 5px;
        padding: 9px 20px;
        border-bottom: 1px solid #e3ebef;
        background: #f7fafc;
        overflow: auto
    }

        .product-capture-shell-v20 > nav button, .meeting-capture-shell-v20 > nav button {
            min-height: 34px;
            padding: 7px 11px;
            border: 0;
            border-radius: 8px;
            background: transparent;
            color: #607887;
            font-size: .68rem;
            font-weight: 850;
            white-space: nowrap;
            cursor: pointer
        }

            .product-capture-shell-v20 > nav button.active, .meeting-capture-shell-v20 > nav button.active {
                background: #fff;
                color: #155f9f;
                box-shadow: 0 3px 10px rgba(15,45,67,.1)
            }

    .product-capture-shell-v20 > form, .meeting-capture-shell-v20 > form, .product-capture-meeting-v20 {
        padding: 18px 20px
    }

.product-capture-form-v20, .meeting-capture-form-v20 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px
}

    .product-capture-form-v20 label, .meeting-capture-form-v20 label {
        display: grid;
        gap: 5px;
        color: #496476;
        font-size: .68rem;
        font-weight: 800
    }

        .product-capture-form-v20 label.wide, .meeting-capture-form-v20 label.wide {
            grid-column: 1/-1
        }

    .product-capture-form-v20 input, .product-capture-form-v20 select, .product-capture-form-v20 textarea, .meeting-capture-form-v20 input, .meeting-capture-form-v20 select, .meeting-capture-form-v20 textarea {
        width: 100%;
        min-height: 42px;
        padding: 9px 11px;
        border: 1px solid #cedde5;
        border-radius: 10px;
        background: #fff;
        color: #173c55
    }

    .product-capture-form-v20 textarea, .meeting-capture-form-v20 textarea {
        resize: vertical
    }

    .product-capture-form-v20 small {
        color: #85939d;
        font-weight: 500
    }

.product-capture-more-v20 {
    margin: 12px 20px 0;
    border: 1px solid #dfe8ed;
    border-radius: 12px;
    background: #f8fafb
}

    .product-capture-more-v20 > summary {
        padding: 11px 13px;
        color: #45697f;
        font-size: .7rem;
        font-weight: 850;
        cursor: pointer
    }

    .product-capture-more-v20 > div {
        padding: 0 13px 13px
    }

.product-capture-shell-v20 form > footer, .meeting-capture-shell-v20 form > footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid #e3ebef
}

.product-capture-meeting-v20 {
    display: flex;
    align-items: center;
    gap: 16px
}

    .product-capture-meeting-v20 > span {
        display: grid;
        place-items: center;
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
        border-radius: 14px;
        background: #eaf4fa;
        color: #27688f;
        font-size: 1.2rem
    }

    .product-capture-meeting-v20 h4, .product-capture-meeting-v20 p {
        margin: 0
    }

    .product-capture-meeting-v20 p {
        margin: 4px 0 12px;
        color: #6b7e8b
    }

/* ---------- Product follow-up más compacto ------------------------------- */
.product-followup-rain-v19 {
    margin-top: 18px !important;
    padding: 18px !important
}

.product-followup-rain-head-v19 h3 {
    font-size: 1.2rem !important
}

.product-followup-rain-head-v19 p {
    margin-top: 3px !important
}

.product-followup-rain-grid-v19 {
    gap: 10px !important
}

.product-rain-column-v19 {
    min-height: 0 !important
}

.product-rain-stream-v19 {
    max-height: 420px;
    overflow: auto
}

.product-followup-composer-v19 textarea {
    min-height: 60px !important
}

/* ---------- Inicio de juntas -------------------------------------------- */
.meeting-home-v20 {
    display: grid;
    gap: 14px
}

.meeting-home-command-v20 {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr);
    gap: 18px;
    padding: 20px 22px;
    border-radius: 20px;
    border-top: 4px solid var(--ns-orange);
    background: linear-gradient(135deg,#fff 0%,#f7fbfe 65%,#fff6ef 100%)
}

.meeting-home-title-v20 h2 {
    max-width: 650px;
    margin: 6px 0 7px;
    color: #102f49;
    font-size: clamp(1.55rem,2.6vw,2.5rem);
    line-height: 1.05
}

.meeting-home-title-v20 p {
    max-width: 700px;
    margin: 0;
    color: #627887;
    line-height: 1.55
}

.meeting-home-actions-v20 {
    display: flex;
    gap: 8px;
    margin-top: 14px
}

.meeting-next-focus-v20 {
    display: grid;
    grid-template-columns: 58px minmax(0,1fr);
    align-items: center;
    gap: 13px;
    padding: 16px;
    border: 1px solid #d6e4eb;
    border-radius: 16px;
    background: #fff
}

    .meeting-next-focus-v20.empty {
        background: #f8fbfd
    }

.meeting-next-date-v20, .meeting-next-icon-v20 {
    display: grid;
    place-items: center;
    width: 56px;
    height: 60px;
    border-radius: 14px;
    background: #eaf4fa;
    color: #246487
}

    .meeting-next-date-v20 b {
        font-size: 1.25rem
    }

    .meeting-next-date-v20 small {
        font-size: .6rem;
        font-weight: 900
    }

.meeting-next-icon-v20 {
    font-size: 1.5rem
}

.meeting-next-focus-v20 > div {
    display: grid;
    min-width: 0
}

.meeting-next-focus-v20 small {
    color: #718594;
    font-size: .61rem;
    font-weight: 900;
    letter-spacing: .05em
}

.meeting-next-focus-v20 h3 {
    margin: 3px 0;
    color: #183d57;
    font-size: .95rem
}

.meeting-next-focus-v20 p {
    margin: 0;
    color: #6c7f8c;
    font-size: .7rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.meeting-next-focus-v20 a {
    margin-top: 8px;
    color: #17649a;
    font-size: .69rem;
    font-weight: 850
}

.meeting-pulse-v20 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px
}

    .meeting-pulse-v20 article {
        display: grid;
        gap: 2px;
        padding: 12px 14px;
        border: 1px solid #d9e5eb;
        border-radius: 14px;
        background: #fff
    }

    .meeting-pulse-v20 span, .meeting-pulse-v20 small {
        color: #6f8391;
        font-size: .63rem
    }

    .meeting-pulse-v20 strong {
        color: #163f5b;
        font-size: 1.25rem
    }

    .meeting-pulse-v20 article.danger {
        border-color: #efc4c4;
        background: #fff8f8
    }

        .meeting-pulse-v20 article.danger strong {
            color: #c64242
        }

    .meeting-pulse-v20 article.warning {
        border-color: #ecd5a5;
        background: #fffaf1
    }

.meeting-home-grid-v20 {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr);
    gap: 14px
}

.meeting-home-panel-v20, .meeting-history-panel-v20 {
    padding: 16px;
    border-radius: 18px
}

    .meeting-home-panel-v20 > header, .meeting-history-panel-v20 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 11px;
        padding-bottom: 11px;
        border-bottom: 1px solid #e2eaef
    }

        .meeting-home-panel-v20 > header small, .meeting-history-panel-v20 > header small {
            color: #315f7d;
            font-size: .59rem;
            font-weight: 900;
            letter-spacing: .08em
        }

    .meeting-home-panel-v20 h3, .meeting-history-panel-v20 h3 {
        margin: 2px 0;
        font-size: 1rem
    }

    .meeting-home-panel-v20 p, .meeting-history-panel-v20 p {
        margin: 0;
        color: #738591;
        font-size: .69rem
    }

    .meeting-home-panel-v20 > header > a {
        color: #17649a;
        font-size: .68rem;
        font-weight: 850
    }

    .meeting-home-panel-v20 > header > span, .meeting-history-panel-v20 > header > span {
        display: grid;
        place-items: center;
        min-width: 28px;
        height: 28px;
        padding: 0 7px;
        border-radius: 999px;
        background: #eaf4fa;
        color: #27688f;
        font-size: .7rem;
        font-weight: 900
    }

.meeting-upcoming-list-v20, .meeting-action-list-v20, .meeting-history-list-v20 {
    display: grid;
    gap: 7px
}

.meeting-upcoming-item-v20 {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 9px;
    border: 1px solid #e0e8ed;
    border-radius: 12px;
    color: inherit;
    text-decoration: none
}

    .meeting-upcoming-item-v20:hover {
        border-color: #9dc4d8;
        background: #f9fcfe
    }

    .meeting-upcoming-item-v20 time {
        display: grid;
        place-items: center;
        width: 46px;
        height: 48px;
        border-radius: 11px;
        background: #eaf4fa;
        color: #246487
    }

        .meeting-upcoming-item-v20 time b {
            font-size: 1rem
        }

        .meeting-upcoming-item-v20 time small {
            font-size: .55rem;
            font-weight: 900
        }

    .meeting-upcoming-item-v20 > span {
        display: grid;
        min-width: 0
    }

        .meeting-upcoming-item-v20 > span small, .meeting-upcoming-item-v20 > span em {
            color: #748895;
            font-size: .61rem;
            font-style: normal
        }

        .meeting-upcoming-item-v20 > span b {
            overflow: hidden;
            color: #173e59;
            font-size: .75rem;
            text-overflow: ellipsis;
            white-space: nowrap
        }

    .meeting-upcoming-item-v20 > i {
        padding: 4px 7px;
        border-radius: 999px;
        background: #eef7f2;
        color: #2a7559;
        font-size: .57rem;
        font-style: normal
    }

    .meeting-upcoming-item-v20 > strong {
        color: #2b648a;
        font-size: .64rem
    }

.meeting-action-item-v20 {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #e0e8ed;
    border-radius: 12px;
    color: inherit;
    text-decoration: none
}

    .meeting-action-item-v20.late {
        border-color: #efc6c6;
        background: #fff8f8
    }

.meeting-action-progress-v20 {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #eaf4fa;
    color: #17649a;
    font-size: .65rem
}

.meeting-action-item-v20 > span:nth-child(2) {
    display: grid;
    min-width: 0
}

    .meeting-action-item-v20 > span:nth-child(2) b, .meeting-action-item-v20 > span:nth-child(2) small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .meeting-action-item-v20 > span:nth-child(2) b {
        font-size: .72rem
    }

    .meeting-action-item-v20 > span:nth-child(2) small, .meeting-action-item-v20 > em {
        color: #788995;
        font-size: .6rem;
        font-style: normal
    }

.meeting-action-item-v20.late > em {
    color: #c74444;
    font-weight: 850
}

.meeting-history-list-v20 > a {
    display: grid;
    grid-template-columns: 100px minmax(0,1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 9px 7px;
    border-bottom: 1px solid #e6ecef;
    color: inherit;
    text-decoration: none
}

    .meeting-history-list-v20 > a:last-child {
        border-bottom: 0
    }

.meeting-history-list-v20 time, .meeting-history-list-v20 em {
    color: #748793;
    font-size: .62rem;
    font-style: normal
}

.meeting-history-list-v20 > a > span {
    display: grid;
    min-width: 0
}

    .meeting-history-list-v20 > a > span b, .meeting-history-list-v20 > a > span small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .meeting-history-list-v20 > a > span b {
        font-size: .72rem
    }

    .meeting-history-list-v20 > a > span small {
        color: #748793;
        font-size: .61rem
    }

.meeting-history-list-v20 strong {
    color: #27688f;
    font-size: .64rem
}

.meeting-empty-v20 {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 18px;
    border: 1px dashed #b9d2df;
    border-radius: 14px;
    background: #f8fbfd
}

    .meeting-empty-v20.compact {
        padding: 13px
    }

    .meeting-empty-v20 > span {
        display: grid;
        place-items: center;
        flex: 0 0 40px;
        width: 40px;
        height: 40px;
        border-radius: 11px;
        background: #e8f3f9;
        color: #26698f;
        font-size: 1.1rem
    }

    .meeting-empty-v20 > div {
        flex: 1
    }

    .meeting-empty-v20 b, .meeting-empty-v20 p {
        margin: 0
    }

    .meeting-empty-v20 p {
        margin-top: 2px;
        color: #748793;
        font-size: .68rem
    }

/* ---------- Editor de juntas -------------------------------------------- */
.meeting-editor-v20 {
    overflow: hidden;
    border-radius: 20px
}

.meeting-editor-head-v20 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
    border-bottom: 1px solid #dfe8ed;
    background: linear-gradient(135deg,#fff,#f7fbfe)
}

    .meeting-editor-head-v20 h2 {
        margin: 5px 0;
        color: #123a56;
        font-size: 1.45rem
    }

    .meeting-editor-head-v20 p {
        margin: 0;
        color: #6f8290
    }

.meeting-editor-status-v20 {
    display: grid;
    min-width: 210px;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid #d9e5eb;
    border-radius: 12px;
    background: #fff
}

    .meeting-editor-status-v20 span {
        color: #748793;
        font-size: .62rem
    }

    .meeting-editor-status-v20 b {
        overflow: hidden;
        color: #214e6b;
        font-size: .74rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

.meeting-editor-steps-v20 {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 7px;
    padding: 10px 22px;
    border-bottom: 1px solid #e2eaef;
    background: #f7fafc
}

    .meeting-editor-steps-v20 button {
        display: flex;
        align-items: center;
        gap: 9px;
        padding: 9px;
        border: 1px solid transparent;
        border-radius: 11px;
        background: transparent;
        color: #607786;
        text-align: left;
        cursor: pointer
    }

        .meeting-editor-steps-v20 button > span {
            display: grid;
            place-items: center;
            flex: 0 0 28px;
            width: 28px;
            height: 28px;
            border-radius: 9px;
            background: #e7eff4;
            color: #315f7d;
            font-size: .72rem;
            font-weight: 900
        }

        .meeting-editor-steps-v20 button > div {
            display: grid
        }

        .meeting-editor-steps-v20 button b {
            font-size: .72rem
        }

        .meeting-editor-steps-v20 button small {
            font-size: .59rem
        }

        .meeting-editor-steps-v20 button.active {
            border-color: #b9d4e3;
            background: #fff;
            color: #165f9f
        }

            .meeting-editor-steps-v20 button.active > span {
                background: #165f9f;
                color: #fff
            }

        .meeting-editor-steps-v20 button.complete > span {
            background: #278a69;
            color: #fff
        }

.meeting-editor-layout-v20 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 285px;
    align-items: start
}

.meeting-editor-main-v20 {
    min-width: 0;
    padding: 18px
}

.meeting-editor-review-v20 {
    position: sticky;
    top: 84px;
    display: grid;
    gap: 11px;
    margin: 18px 18px 18px 0;
    padding: 16px;
    border: 1px solid #d9e5eb;
    border-radius: 16px;
    background: #f8fbfd
}

    .meeting-editor-review-v20 h3 {
        margin: 0;
        color: #173f5b
    }

    .meeting-editor-review-v20 > p {
        margin: 0;
        color: #6e808c;
        font-size: .72rem;
        line-height: 1.45
    }

    .meeting-editor-review-v20 dl {
        display: grid;
        gap: 8px;
        margin: 0
    }

        .meeting-editor-review-v20 dl > div {
            display: flex;
            justify-content: space-between;
            gap: 10px;
            padding-bottom: 7px;
            border-bottom: 1px solid #e2e9ed;
            font-size: .68rem
        }

    .meeting-editor-review-v20 dt {
        color: #758692
    }

    .meeting-editor-review-v20 dd {
        margin: 0;
        color: #214c68;
        font-weight: 850;
        text-align: right
    }

.meeting-editor-principle-v20 {
    display: flex;
    gap: 8px;
    padding: 10px;
    border-radius: 11px;
    background: #eaf5f0;
    color: #315e50
}

    .meeting-editor-principle-v20 span {
        font-weight: 900
    }

    .meeting-editor-principle-v20 p {
        margin: 0;
        font-size: .65rem;
        line-height: 1.4
    }

.meeting-editor-card-v20, .meeting-people-v20 {
    padding: 17px;
    border: 1px solid #d9e5eb;
    border-radius: 16px;
    background: #fff
}

    .meeting-editor-card-v20 > header {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 15px
    }

        .meeting-editor-card-v20 > header > span {
            display: grid;
            place-items: center;
            flex: 0 0 32px;
            width: 32px;
            height: 32px;
            border-radius: 10px;
            background: #165f9f;
            color: #fff;
            font-weight: 900
        }

        .meeting-editor-card-v20 > header > div {
            flex: 1
        }

        .meeting-editor-card-v20 > header h3, .meeting-editor-card-v20 > header p {
            margin: 0
        }

        .meeting-editor-card-v20 > header h3 {
            color: #173f5b
        }

        .meeting-editor-card-v20 > header p {
            margin-top: 2px;
            color: #748793;
            font-size: .7rem
        }

        .meeting-editor-card-v20 > header.split {
            display: grid;
            grid-template-columns: auto minmax(0,1fr) auto
        }

    .meeting-editor-card-v20 label {
        display: grid;
        gap: 5px;
        margin-bottom: 11px;
        color: #496476;
        font-size: .68rem;
        font-weight: 800
    }

    .meeting-editor-card-v20 input, .meeting-editor-card-v20 select, .meeting-editor-card-v20 textarea {
        width: 100%;
        min-height: 42px;
        padding: 9px 11px;
        border: 1px solid #cedde5;
        border-radius: 10px;
        background: #fff
    }

    .meeting-editor-card-v20 textarea {
        resize: vertical
    }

    .meeting-editor-card-v20 label > small {
        color: #87959e;
        font-weight: 500
    }

    .meeting-editor-card-v20 .field-large input {
        font-size: .92rem
    }

.meeting-product-context-v20 {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 12px;
    margin-top: 12px;
    padding: 12px;
    border-radius: 12px;
    background: #eef7fb
}

    .meeting-product-context-v20 > div {
        display: grid
    }

    .meeting-product-context-v20 small {
        color: #34708f;
        font-size: .58rem;
        font-weight: 900;
        letter-spacing: .07em
    }

    .meeting-product-context-v20 b {
        font-size: .76rem
    }

    .meeting-product-context-v20 span {
        color: #718592;
        font-size: .65rem
    }

    .meeting-product-context-v20 dl {
        display: flex;
        gap: 8px;
        margin: 0
    }

        .meeting-product-context-v20 dl > div {
            display: grid;
            min-width: 62px;
            padding: 7px;
            border-radius: 9px;
            background: #fff;
            text-align: center
        }

    .meeting-product-context-v20 dt {
        color: #768895;
        font-size: .55rem
    }

    .meeting-product-context-v20 dd {
        margin: 1px 0 0;
        color: #1e5575;
        font-size: .72rem;
        font-weight: 900
    }

.meeting-duration-presets-v20 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: -1px 0 12px
}

    .meeting-duration-presets-v20 > span {
        margin-right: 3px;
        color: #718592;
        font-size: .62rem
    }

    .meeting-duration-presets-v20 button {
        padding: 5px 8px;
        border: 1px solid #d5e2e9;
        border-radius: 8px;
        background: #fff;
        color: #4c6e82;
        font-size: .62rem;
        font-weight: 800;
        cursor: pointer
    }

        .meeting-duration-presets-v20 button:hover {
            border-color: #94bfd4;
            color: #17649a
        }

.meeting-online-toggle-v20 {
    grid-template-columns: auto 1fr !important;
    align-items: center
}

    .meeting-online-toggle-v20 input {
        width: auto !important;
        min-height: 0 !important
    }

.meeting-optional-context-v20 {
    margin-top: 8px;
    border-top: 1px solid #e2e9ed
}

    .meeting-optional-context-v20 > summary {
        padding: 11px 0;
        color: #587184;
        font-size: .68rem;
        font-weight: 850;
        cursor: pointer
    }

.meeting-people-v20 {
    margin-top: 12px
}

    .meeting-people-v20 > header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 12px
    }

    .meeting-people-v20 h3, .meeting-people-v20 small {
        margin: 0
    }

    .meeting-people-v20 small {
        color: #315f7d;
        font-size: .58rem;
        font-weight: 900
    }

    .meeting-people-v20 input[type=search] {
        min-width: 220px;
        padding: 8px 10px;
        border: 1px solid #d2e0e7;
        border-radius: 9px
    }

.meeting-people-grid-v20 {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(205px,1fr));
    gap: 7px;
    max-height: 300px;
    overflow: auto
}

    .meeting-people-grid-v20 > label {
        display: grid;
        grid-template-columns: auto 34px minmax(0,1fr) auto;
        align-items: center;
        gap: 7px;
        padding: 8px;
        border: 1px solid #dfe8ed;
        border-radius: 11px;
        cursor: pointer
    }

        .meeting-people-grid-v20 > label > input {
            position: absolute;
            opacity: 0;
            pointer-events: none
        }

        .meeting-people-grid-v20 > label > span:nth-of-type(2) {
            display: grid;
            min-width: 0
        }

    .meeting-people-grid-v20 b, .meeting-people-grid-v20 small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .meeting-people-grid-v20 b {
        font-size: .68rem
    }

    .meeting-people-grid-v20 small {
        color: #7d8d97;
        font-size: .58rem
    }

    .meeting-people-grid-v20 i {
        opacity: 0;
        color: #258a69;
        font-style: normal
    }

    .meeting-people-grid-v20 > label:has(input:checked) {
        border-color: #8cbdd4;
        background: #f0f8fc
    }

        .meeting-people-grid-v20 > label:has(input:checked) i {
            opacity: 1
        }

.meeting-agenda-builder-v20 {
    display: grid;
    gap: 8px
}

.meeting-agenda-row-v20 {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) 100px auto;
    align-items: start;
    gap: 8px;
    padding: 10px;
    border: 1px solid #dfe8ed;
    border-radius: 12px;
    background: #f9fbfc
}

    .meeting-agenda-row-v20 > span {
        display: grid;
        place-items: center;
        width: 28px;
        height: 28px;
        border-radius: 9px;
        background: #e8f2f8;
        color: #27688f;
        font-size: .68rem;
        font-weight: 900
    }

    .meeting-agenda-row-v20 input, .meeting-agenda-row-v20 textarea, .meeting-agenda-row-v20 select {
        width: 100%;
        min-height: 36px;
        padding: 7px 8px;
        border: 1px solid #d3e0e7;
        border-radius: 8px;
        background: #fff;
        font-size: .67rem
    }

    .meeting-agenda-row-v20 > div {
        display: grid;
        gap: 5px
    }

    .meeting-agenda-row-v20 > button {
        display: grid;
        place-items: center;
        width: 31px;
        height: 31px;
        border: 1px solid #eccaca;
        border-radius: 9px;
        background: #fff;
        color: #c64545;
        cursor: pointer
    }

.meeting-agenda-empty-v20 {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 17px;
    border: 1px dashed #bad1de;
    border-radius: 13px;
    background: #f8fbfd
}

    .meeting-agenda-empty-v20 > span {
        display: grid;
        place-items: center;
        width: 36px;
        height: 36px;
        border-radius: 10px;
        background: #eaf4fa;
        color: #27688f
    }

    .meeting-agenda-empty-v20 b, .meeting-agenda-empty-v20 p {
        margin: 0
    }

    .meeting-agenda-empty-v20 p {
        margin-top: 2px;
        color: #748793;
        font-size: .68rem
    }

.meeting-editor-card-v20.agenda > footer {
    display: flex;
    justify-content: flex-end;
    gap: 16px;
    margin-top: 11px;
    padding-top: 10px;
    border-top: 1px solid #e3eaee;
    color: #677e8d;
    font-size: .68rem
}

.meeting-editor-actions-v20 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px;
    border-top: 1px solid #dfe8ed;
    background: #f8fafb
}

    .meeting-editor-actions-v20 > div {
        display: flex;
        align-items: center;
        gap: 10px
    }

    .meeting-editor-actions-v20 span {
        color: #748793;
        font-size: .65rem
    }

/* ---------- Detalle de junta -------------------------------------------- */
.meeting-detail-v20 {
    display: grid;
    gap: 13px
}

.meeting-detail-head-v20 {
    display: grid;
    grid-template-columns: minmax(0,1fr) 220px;
    gap: 22px;
    padding: 20px 22px;
    border-radius: 20px;
    border-top: 4px solid var(--ns-orange);
    background: linear-gradient(135deg,#fff,#f7fbfe)
}

.meeting-detail-identity-v20 h2 {
    margin: 5px 0;
    color: #113650;
    font-size: clamp(1.45rem,2.2vw,2.15rem)
}

.meeting-detail-identity-v20 > p {
    max-width: 760px;
    margin: 0;
    color: #687e8d
}

.meeting-detail-meta-v20 {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px
}

    .meeting-detail-meta-v20 span {
        padding: 5px 8px;
        border-radius: 999px;
        background: #eef4f7;
        color: #587184;
        font-size: .62rem
    }

.meeting-detail-state-v20 {
    display: grid;
    align-content: center;
    justify-items: end;
    gap: 4px;
    text-align: right
}

    .meeting-detail-state-v20 > div {
        display: flex;
        gap: 6px
    }

    .meeting-detail-state-v20 > strong {
        color: #123e5b;
        font-size: 2rem;
        line-height: 1
    }

    .meeting-detail-state-v20 > span {
        color: #748793;
        font-size: .62rem
    }

    .meeting-detail-state-v20 > a {
        margin-top: 6px;
        color: #17649a;
        font-size: .66rem;
        font-weight: 850
    }

.meeting-detail-pulse-v20 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px
}

    .meeting-detail-pulse-v20 article {
        display: grid;
        gap: 2px;
        padding: 11px 13px;
        border: 1px solid #d9e5eb;
        border-radius: 13px;
        background: #fff
    }

    .meeting-detail-pulse-v20 span, .meeting-detail-pulse-v20 small {
        color: #748793;
        font-size: .61rem
    }

    .meeting-detail-pulse-v20 strong {
        color: #173f5b;
        font-size: 1.08rem
    }

    .meeting-detail-pulse-v20 article.danger {
        border-color: #edc4c4;
        background: #fff8f8
    }

        .meeting-detail-pulse-v20 article.danger strong {
            color: #c64444
        }

.meeting-capture-bar-v20 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 11px 14px;
    border: 1px solid #bcd7e5;
    border-radius: 14px;
    background: #edf7fc
}

    .meeting-capture-bar-v20 > div {
        display: grid
    }

    .meeting-capture-bar-v20 b {
        color: #214f6d;
        font-size: .78rem
    }

    .meeting-capture-bar-v20 span {
        color: #6d8190;
        font-size: .65rem
    }

.meeting-detail-tabs-v20 {
    display: flex;
    gap: 5px;
    padding: 6px;
    border: 1px solid #d9e5eb;
    border-radius: 14px;
    background: #fff;
    overflow: auto
}

    .meeting-detail-tabs-v20 button {
        display: grid;
        min-width: 130px;
        padding: 8px 12px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: #607886;
        text-align: left;
        cursor: pointer
    }

        .meeting-detail-tabs-v20 button span {
            font-size: .72rem;
            font-weight: 850
        }

        .meeting-detail-tabs-v20 button small {
            font-size: .58rem
        }

        .meeting-detail-tabs-v20 button.active {
            background: #165f9f;
            color: #fff;
            box-shadow: 0 6px 16px rgba(22,95,159,.18)
        }

.meeting-detail-content-v20 > section {
    display: grid;
    gap: 13px
}

.meeting-overview-grid-v20, .meeting-record-grid-v20 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 13px
}

.meeting-panel-v20 {
    padding: 16px;
    border-radius: 17px
}

    .meeting-panel-v20 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 13px;
        margin-bottom: 12px;
        padding-bottom: 10px;
        border-bottom: 1px solid #e1e9ed
    }

        .meeting-panel-v20 > header small {
            color: #315f7d;
            font-size: .58rem;
            font-weight: 900;
            letter-spacing: .08em
        }

        .meeting-panel-v20 > header h3 {
            margin: 2px 0;
            font-size: .98rem
        }

        .meeting-panel-v20 > header p {
            margin: 2px 0 0;
            color: #728592;
            font-size: .68rem
        }

        .meeting-panel-v20 > header > span {
            display: grid;
            place-items: center;
            min-width: 28px;
            height: 28px;
            padding: 0 7px;
            border-radius: 999px;
            background: #eaf4fa;
            color: #27688f;
            font-size: .67rem;
            font-weight: 900
        }

    .meeting-panel-v20.primary {
        background: linear-gradient(135deg,#165f9f,#1a70b8);
        color: #fff
    }

        .meeting-panel-v20.primary > header {
            border-color: rgba(255,255,255,.18)
        }

            .meeting-panel-v20.primary > header small, .meeting-panel-v20.primary > header h3 {
                color: #fff
            }

        .meeting-panel-v20.primary > p {
            color: rgba(255,255,255,.82)
        }

.meeting-context-list-v20 {
    display: grid;
    gap: 8px;
    margin: 0
}

    .meeting-context-list-v20 > div {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        padding-bottom: 7px;
        border-bottom: 1px solid #e4eaee
    }

    .meeting-context-list-v20 dt {
        color: #748793;
        font-size: .65rem
    }

    .meeting-context-list-v20 dd {
        margin: 0;
        color: #234f6b;
        font-size: .68rem;
        font-weight: 850;
        text-align: right
    }

.meeting-attendee-grid-v20 {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(230px,1fr));
    gap: 8px
}

    .meeting-attendee-grid-v20 > article {
        display: grid;
        grid-template-columns: 36px minmax(0,1fr) auto;
        align-items: center;
        gap: 8px;
        padding: 9px;
        border: 1px solid #e0e8ed;
        border-radius: 11px
    }

        .meeting-attendee-grid-v20 > article > div {
            display: grid;
            min-width: 0
        }

    .meeting-attendee-grid-v20 b, .meeting-attendee-grid-v20 small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .meeting-attendee-grid-v20 b {
        font-size: .68rem
    }

    .meeting-attendee-grid-v20 small {
        color: #768894;
        font-size: .59rem
    }

    .meeting-attendee-grid-v20 select {
        max-width: 110px;
        padding: 5px;
        border: 1px solid #d5e1e8;
        border-radius: 8px;
        font-size: .6rem
    }

.meeting-participant-admin-v20 > form {
    display: grid;
    grid-template-columns: 1fr 180px auto;
    align-items: end;
    gap: 8px
}

.meeting-participant-admin-v20 label {
    display: grid;
    gap: 4px;
    font-size: .65rem
}

.meeting-participant-admin-v20 select {
    width: 100%;
    padding: 8px;
    border: 1px solid #d3e0e7;
    border-radius: 9px
}

.meeting-participant-admin-v20 > div {
    display: grid;
    gap: 5px;
    margin-top: 10px
}

    .meeting-participant-admin-v20 > div form {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 6px;
        border-bottom: 1px solid #e4eaee;
        font-size: .66rem
    }

.meeting-agenda-list-v20, .meeting-record-list-v20, .meeting-agreement-list-v20 {
    display: grid;
    gap: 8px
}

    .meeting-agenda-list-v20 > article {
        display: grid;
        grid-template-columns: 38px minmax(0,1fr) auto auto;
        align-items: start;
        gap: 10px;
        padding: 11px;
        border: 1px solid #dfe8ed;
        border-radius: 12px;
        background: #f9fbfc
    }

.meeting-agenda-order-v20 {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #e8f3f9;
    color: #27688f;
    font-weight: 900
}

.meeting-agenda-list-v20 > article > div {
    display: grid
}

.meeting-agenda-list-v20 small, .meeting-agenda-list-v20 p, .meeting-agenda-list-v20 em {
    color: #748793;
    font-size: .62rem;
    font-style: normal
}

.meeting-agenda-list-v20 b {
    font-size: .74rem
}

.meeting-agenda-list-v20 p {
    margin: 2px 0
}

.meeting-agenda-state-v20 select {
    padding: 6px;
    border: 1px solid #d5e1e8;
    border-radius: 8px;
    font-size: .6rem
}

.meeting-advanced-v20 {
    grid-column: 1/-1;
    margin-top: 6px;
    border-top: 1px dashed #d3e0e7
}

    .meeting-advanced-v20 > summary {
        padding: 8px 2px 0;
        color: #446d84;
        font-size: .64rem;
        font-weight: 850;
        cursor: pointer
    }

    .meeting-advanced-v20 > form, .meeting-advanced-v20 > div {
        margin-top: 9px;
        padding: 10px;
        border-radius: 10px;
        background: #f5f8fa
    }

    .meeting-advanced-v20 label {
        display: grid;
        gap: 4px;
        font-size: .63rem
    }

    .meeting-advanced-v20 input, .meeting-advanced-v20 select, .meeting-advanced-v20 textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid #d1dfe6;
        border-radius: 8px;
        background: #fff
    }

.meeting-record-list-v20 > article {
    padding: 11px;
    border: 1px solid #dfe8ed;
    border-radius: 12px
}

    .meeting-record-list-v20 > article > header {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 7px
    }

        .meeting-record-list-v20 > article > header > div {
            display: grid;
            min-width: 0
        }

        .meeting-record-list-v20 > article > header b {
            font-size: .68rem
        }

        .meeting-record-list-v20 > article > header small {
            color: #748793;
            font-size: .59rem
        }

        .meeting-record-list-v20 > article > header strong {
            margin-left: auto;
            color: #1d668f;
            font-size: .7rem
        }

    .meeting-record-list-v20 > article > p {
        margin: 4px 0;
        color: #546d7d;
        font-size: .67rem;
        line-height: 1.45
    }

        .meeting-record-list-v20 > article > p.danger {
            color: #af3e3e
        }

    .meeting-record-list-v20 > article.point > header > span {
        padding: 4px 7px;
        border-radius: 999px;
        background: #eaf4fa;
        color: #27688f;
        font-size: .58rem;
        font-weight: 850
    }

    .meeting-record-list-v20 > article.point > b {
        font-size: .74rem
    }

    .meeting-record-list-v20 > article.point > footer {
        display: flex;
        justify-content: space-between;
        gap: 8px;
        margin-top: 8px;
        color: #748793;
        font-size: .6rem
    }

        .meeting-record-list-v20 > article.point > footer em {
            font-style: normal
        }

.meeting-agreement-list-v20 > article {
    display: grid;
    grid-template-columns: minmax(0,1fr) 58px minmax(270px,.75fr);
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid #dfe8ed;
    border-radius: 13px
}

    .meeting-agreement-list-v20 > article.late {
        border-color: #edc2c2;
        background: #fff8f8
    }

    .meeting-agreement-list-v20 > article > div {
        display: grid
    }

.meeting-agreement-list-v20 small, .meeting-agreement-list-v20 p, .meeting-agreement-list-v20 em {
    color: #748793;
    font-size: .61rem;
    font-style: normal
}

.meeting-agreement-list-v20 b {
    font-size: .75rem
}

.meeting-agreement-list-v20 p {
    margin: 2px 0
}

.meeting-agreement-list-v20 > article > strong {
    color: #1f6389;
    font-size: 1rem;
    text-align: center
}

.meeting-agreement-update-v20 {
    display: grid;
    grid-template-columns: 1fr 80px auto;
    align-items: end;
    gap: 7px
}

    .meeting-agreement-update-v20 label {
        display: grid;
        gap: 3px;
        color: #6d8190;
        font-size: .57rem
    }

    .meeting-agreement-update-v20 input, .meeting-agreement-update-v20 select {
        width: 100%;
        padding: 7px;
        border: 1px solid #d3e0e7;
        border-radius: 8px;
        background: #fff;
        font-size: .62rem
    }

.meeting-product-link-v20 {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 13px;
    border: 1px solid #bad5e4;
    border-radius: 14px;
    background: #edf7fc;
    color: inherit;
    text-decoration: none
}

    .meeting-product-link-v20 > span {
        display: grid;
        place-items: center;
        width: 40px;
        height: 40px;
        border-radius: 11px;
        background: #fff;
        color: #27688f
    }

    .meeting-product-link-v20 > div {
        display: grid
    }

    .meeting-product-link-v20 b {
        font-size: .74rem
    }

    .meeting-product-link-v20 small {
        color: #6d8190;
        font-size: .62rem
    }

    .meeting-product-link-v20 strong {
        color: #27688f
    }

.meeting-close-v20 {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(340px,.75fr);
    gap: 18px;
    padding: 16px;
    border: 1px solid #d9e5eb;
    border-radius: 17px;
    background: #fff
}

    .meeting-close-v20 h3, .meeting-close-v20 p {
        margin: 2px 0
    }

    .meeting-close-v20 p {
        color: #718491;
        font-size: .68rem
    }

    .meeting-close-v20 form {
        display: grid;
        grid-template-columns: 1fr 190px auto;
        align-items: end;
        gap: 8px
    }

    .meeting-close-v20 label {
        display: grid;
        gap: 4px;
        font-size: .63rem
    }

    .meeting-close-v20 input, .meeting-close-v20 textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid #d1dfe6;
        border-radius: 8px
    }

    .meeting-close-v20.closed {
        grid-template-columns: 1fr auto;
        align-items: center
    }

/* ---------- Responsive V20 ---------------------------------------------- */
@media(max-width:1180px) {
    .workspace-command-bottom-v20 {
        grid-template-columns: 1fr 1fr
    }

    .workspace-next-compact-v20 {
        grid-column: 1/-1
    }

    .product-meeting-layout-v20, .meeting-home-grid-v20 {
        grid-template-columns: 1fr
    }

    .meeting-editor-layout-v20 {
        grid-template-columns: 1fr
    }

    .meeting-editor-review-v20 {
        position: static;
        margin: 0 18px 18px
    }

    .meeting-home-command-v20 {
        grid-template-columns: 1fr
    }

    .meeting-detail-head-v20 {
        grid-template-columns: 1fr
    }

    .meeting-detail-state-v20 {
        justify-items: start;
        text-align: left
    }
}

@media(max-width:900px) {
    .workspace-command-main-v20 {
        flex-direction: column
    }

    .workspace-command-actions-v20 {
        justify-content: flex-start
    }

    .workspace-command-bottom-v20 {
        grid-template-columns: 1fr
    }

    .workspace-next-compact-v20 {
        grid-column: auto
    }

    .workspace-nav-v20 {
        overflow: auto !important
    }

    .workspace-nav-more-v20 {
        margin-left: 0
    }

        .workspace-nav-more-v20 > div {
            position: fixed;
            right: 12px;
            left: 12px;
            top: auto
        }

    .meeting-pulse-v20, .meeting-detail-pulse-v20 {
        grid-template-columns: repeat(2,1fr)
    }

    .meeting-overview-grid-v20, .meeting-record-grid-v20 {
        grid-template-columns: 1fr
    }

    .meeting-agreement-list-v20 > article {
        grid-template-columns: minmax(0,1fr) auto
    }

    .meeting-agreement-update-v20, .meeting-agreement-list-v20 .meeting-advanced-v20 {
        grid-column: 1/-1
    }

    .meeting-close-v20 {
        grid-template-columns: 1fr
    }

        .meeting-close-v20 form {
            grid-template-columns: 1fr
        }
}

@media(max-width:700px) {
    .workspace-command-v20, .meeting-home-command-v20, .meeting-detail-head-v20 {
        padding: 15px
    }

    .workspace-owner-line-v20 {
        flex-wrap: wrap
    }

        .workspace-owner-line-v20 > i {
            display: none
        }

    .product-work-toolbar-v20 {
        align-items: stretch;
        flex-direction: column
    }

        .product-work-toolbar-v20 > label {
            max-width: none
        }

        .product-work-toolbar-v20 > div {
            overflow: auto
        }

    .product-task-grid-v20 {
        grid-template-columns: 1fr
    }

    .product-meeting-list-v20 > a, .meeting-upcoming-item-v20 {
        grid-template-columns: 46px minmax(0,1fr)
    }

        .product-meeting-list-v20 > a > i, .product-meeting-list-v20 > a > strong, .meeting-upcoming-item-v20 > i, .meeting-upcoming-item-v20 > strong {
            grid-column: 2;
            justify-self: start
        }

    .meeting-home-command-v20 {
        grid-template-columns: 1fr
    }

    .meeting-pulse-v20, .meeting-detail-pulse-v20 {
        grid-template-columns: 1fr 1fr
    }

    .meeting-home-grid-v20 {
        grid-template-columns: 1fr
    }

    .meeting-history-list-v20 > a {
        grid-template-columns: 1fr
    }

        .meeting-history-list-v20 > a > strong {
            justify-self: start
        }

    .meeting-editor-head-v20 {
        flex-direction: column
    }

    .meeting-editor-status-v20 {
        min-width: 0;
        width: 100%
    }

    .meeting-editor-steps-v20 {
        grid-template-columns: 1fr
    }

        .meeting-editor-steps-v20 button small {
            display: none
        }

    .meeting-editor-card-v20 > header.split {
        grid-template-columns: auto 1fr
    }

        .meeting-editor-card-v20 > header.split > div:last-child {
            grid-column: 1/-1
        }

    .meeting-product-context-v20 {
        grid-template-columns: 1fr
    }

        .meeting-product-context-v20 dl {
            overflow: auto
        }

    .meeting-people-v20 > header {
        align-items: stretch;
        flex-direction: column
    }

    .meeting-people-v20 input[type=search] {
        min-width: 0;
        width: 100%
    }

    .meeting-agenda-row-v20 {
        grid-template-columns: auto minmax(0,1fr) auto
    }

        .meeting-agenda-row-v20 > select {
            grid-column: 2
        }

    .meeting-editor-actions-v20 {
        align-items: stretch;
        flex-direction: column
    }

        .meeting-editor-actions-v20 > div {
            justify-content: space-between
        }

    .meeting-detail-tabs-v20 button {
        min-width: 105px
    }

    .meeting-attendee-grid-v20 {
        grid-template-columns: 1fr
    }

    .meeting-agenda-list-v20 > article {
        grid-template-columns: 36px minmax(0,1fr)
    }

        .meeting-agenda-state-v20, .meeting-agenda-list-v20 > article > .meeting-advanced-v20 {
            grid-column: 2
        }

    .meeting-agreement-list-v20 > article {
        grid-template-columns: 1fr
    }

        .meeting-agreement-list-v20 > article > strong {
            text-align: left
        }

    .meeting-agreement-update-v20 {
        grid-template-columns: 1fr
    }

    .meeting-participant-admin-v20 > form {
        grid-template-columns: 1fr
    }

    .product-capture-form-v20, .meeting-capture-form-v20 {
        grid-template-columns: 1fr
    }

        .product-capture-form-v20 label.wide, .meeting-capture-form-v20 label.wide {
            grid-column: auto
        }
}

/* Ajustes funcionales V20 generados por la interacción. */
.product-work-filter-empty-v20 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 150px;
    padding: 24px;
    border: 1px dashed #b9cfdb;
    border-radius: 17px;
    background: #f8fbfd;
    color: #6c8190;
    text-align: left;
}

    .product-work-filter-empty-v20[hidden] {
        display: none
    }

    .product-work-filter-empty-v20 > span {
        display: grid;
        place-items: center;
        width: 42px;
        height: 42px;
        border-radius: 12px;
        background: #e7f2f8;
        color: #24658d;
        font-size: 1rem;
        font-weight: 900;
    }

    .product-work-filter-empty-v20 b {
        display: block;
        color: #173f5b
    }

    .product-work-filter-empty-v20 p {
        margin: 3px 0 0;
        font-size: .72rem
    }

.meeting-agenda-row-main-v20 {
    display: grid;
    gap: 6px;
    min-width: 0
}

    .meeting-agenda-row-main-v20 textarea {
        min-height: 54px;
        resize: vertical
    }

.meeting-agenda-row-meta-v20 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 6px
}

.meeting-agenda-duration-v20 {
    display: grid;
    gap: 4px;
    color: #6c8190;
    font-size: .58rem;
    font-weight: 850;
    text-align: center
}

    .meeting-agenda-duration-v20 input {
        text-align: center
    }

@media(max-width:700px) {
    .meeting-agenda-row-meta-v20 {
        grid-template-columns: 1fr
    }

    .meeting-agenda-duration-v20 {
        grid-column: 2;
        max-width: 100px
    }
}

/* Resultados V20: resumen primero, captura bajo demanda. */
.product-result-summary-v20 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
    margin-bottom: 12px;
}

    .product-result-summary-v20 > article {
        display: grid;
        gap: 3px;
        min-width: 0;
        padding: 15px 16px;
        border: 1px solid #d9e5eb;
        border-top: 3px solid #f36a21;
        border-radius: 15px;
        background: #fff;
        box-shadow: 0 7px 18px rgba(15,45,67,.04);
    }

    .product-result-summary-v20 span {
        color: #718594;
        font-size: .65rem;
        font-weight: 850;
        text-transform: uppercase;
        letter-spacing: .04em
    }

    .product-result-summary-v20 strong {
        overflow: hidden;
        color: #153f5b;
        font-size: 1.42rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .product-result-summary-v20 small {
        color: #6e8290;
        font-size: .67rem
    }

.product-result-actions-v20 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 15px;
    padding: 13px 15px;
    border: 1px solid #cfe0e9;
    border-radius: 16px;
    background: #edf7fc;
}

    .product-result-actions-v20 > div:first-child {
        min-width: 220px
    }

    .product-result-actions-v20 h4, .product-result-actions-v20 p {
        margin: 2px 0
    }

    .product-result-actions-v20 p {
        color: #667e8d;
        font-size: .7rem
    }

    .product-result-actions-v20 > div:last-child {
        display: grid;
        grid-template-columns: repeat(4,minmax(130px,1fr));
        gap: 7px;
        flex: 1
    }

    .product-result-actions-v20 button {
        display: grid;
        grid-template-columns: 30px minmax(0,1fr);
        align-items: center;
        gap: 1px 8px;
        padding: 9px;
        border: 1px solid #d5e3ea;
        border-radius: 11px;
        background: #fff;
        color: #173f5b;
        text-align: left;
        cursor: pointer;
    }

        .product-result-actions-v20 button:hover {
            border-color: #8ebbd2;
            box-shadow: 0 7px 16px rgba(15,45,67,.08)
        }

        .product-result-actions-v20 button > span {
            grid-row: 1/3;
            display: grid;
            place-items: center;
            width: 30px;
            height: 30px;
            border-radius: 9px;
            background: #e8f3f9;
            color: #21658e;
            font-weight: 900
        }

        .product-result-actions-v20 button > b {
            font-size: .69rem
        }

        .product-result-actions-v20 button > small {
            color: #718594;
            font-size: .57rem
        }

.product-result-layout-v20 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
    align-items: start
}

.product-result-panel-v20 {
    min-width: 0;
    border: 1px solid #d9e5eb;
    border-radius: 17px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 22px rgba(15,45,67,.045)
}

    .product-result-panel-v20.metrics {
        grid-column: 1/-1
    }

    .product-result-panel-v20 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        padding: 14px 15px;
        border-bottom: 1px solid #e0e9ee;
        background: #f8fbfd
    }

        .product-result-panel-v20 > header h4, .product-result-panel-v20 > header p {
            margin: 2px 0
        }

        .product-result-panel-v20 > header p {
            color: #708492;
            font-size: .68rem
        }

        .product-result-panel-v20 > header > span {
            display: grid;
            place-items: center;
            min-width: 29px;
            height: 29px;
            padding: 0 8px;
            border-radius: 999px;
            background: #e7f2f8;
            color: #286587;
            font-size: .68rem;
            font-weight: 900
        }

.product-metric-list-v20, .product-evaluation-list-v20, .product-finance-list-v20 {
    display: grid;
    gap: 8px;
    padding: 10px
}

    .product-metric-list-v20 > article, .product-evaluation-list-v20 > article, .product-finance-list-v20 > article {
        position: relative;
        border: 1px solid #e0e8ed;
        border-radius: 12px;
        background: #fff
    }

.product-metric-main-v20 {
    display: grid;
    grid-template-columns: 36px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px
}

    .product-metric-main-v20 > span {
        display: grid;
        place-items: center;
        width: 36px;
        height: 36px;
        border-radius: 10px;
        background: #eaf4fa;
        color: #21658e;
        font-weight: 900
    }

    .product-metric-main-v20 > div {
        display: grid;
        min-width: 0
    }

    .product-metric-main-v20 small, .product-metric-main-v20 p {
        color: #738793;
        font-size: .61rem
    }

    .product-metric-main-v20 b {
        overflow: hidden;
        font-size: .76rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .product-metric-main-v20 p {
        margin: 2px 0
    }

    .product-metric-main-v20 > strong {
        color: #1c5e82;
        font-size: .83rem;
        text-align: right
    }

.product-metric-last-v20 {
    display: block;
    padding: 0 11px 10px;
    color: #718594;
    font-size: .61rem
}

.product-evaluation-list-v20 > article {
    display: grid;
    grid-template-columns: 46px minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px
}

    .product-evaluation-list-v20 > article > strong {
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        border-radius: 12px;
        background: #eaf4fa;
        color: #1e648c;
        font-size: 1rem
    }

    .product-evaluation-list-v20 > article > div {
        display: grid;
        min-width: 0
    }

.product-evaluation-list-v20 b {
    font-size: .7rem
}

.product-evaluation-list-v20 p, .product-evaluation-list-v20 small {
    margin: 2px 0;
    color: #718594;
    font-size: .61rem
}

.product-evaluation-list-v20 form button {
    display: grid;
    place-items: center;
    width: 29px;
    height: 29px;
    border: 1px solid #edc9c9;
    border-radius: 8px;
    background: #fff;
    color: #bd3f3f;
    cursor: pointer
}

.product-finance-list-v20 > article {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px
}

    .product-finance-list-v20 > article > div {
        display: grid;
        min-width: 0
    }

.product-finance-list-v20 small, .product-finance-list-v20 p {
    color: #718594;
    font-size: .61rem
}

.product-finance-list-v20 b {
    overflow: hidden;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap
}

.product-finance-list-v20 p {
    margin: 2px 0
}

.product-finance-list-v20 > article > span {
    display: grid;
    text-align: right
}

    .product-finance-list-v20 > article > span strong {
        color: #1b5f85;
        font-size: .83rem
    }

.product-result-manage-v20 {
    grid-column: 1/-1;
    border-top: 1px dashed #d7e2e8
}

    .product-result-manage-v20 > summary {
        padding: 8px 11px;
        color: #3d6d88;
        font-size: .62rem;
        font-weight: 850;
        cursor: pointer;
        list-style: none
    }

        .product-result-manage-v20 > summary:before {
            content: '›';
            margin-right: 6px
        }

    .product-result-manage-v20[open] > summary:before {
        content: '⌄'
    }

    .product-result-manage-v20 > div {
        display: grid;
        gap: 8px;
        padding: 10px;
        background: #f7fafc
    }

.product-result-inline-form-v20 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    align-items: end;
    gap: 7px
}

    .product-result-inline-form-v20.secondary {
        padding-top: 8px;
        border-top: 1px solid #dde6eb
    }

    .product-result-inline-form-v20 label {
        display: grid;
        gap: 3px;
        color: #627a89;
        font-size: .6rem
    }

        .product-result-inline-form-v20 label.wide {
            grid-column: span 2
        }

    .product-result-inline-form-v20 input, .product-result-inline-form-v20 select {
        width: 100%;
        min-height: 34px;
        padding: 7px;
        border: 1px solid #cfdee6;
        border-radius: 8px;
        background: #fff
    }

.product-result-empty-v20 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    min-height: 140px;
    padding: 20px;
    color: #718594;
    text-align: left
}

    .product-result-empty-v20.compact {
        min-height: 110px
    }

    .product-result-empty-v20 > span {
        display: grid;
        place-items: center;
        width: 40px;
        height: 40px;
        border-radius: 11px;
        background: #eaf4fa;
        color: #24658d;
        font-weight: 900
    }

    .product-result-empty-v20 b {
        display: block;
        color: #173f5b
    }

    .product-result-empty-v20 p {
        margin: 3px 0 0;
        font-size: .66rem
    }

    .product-result-empty-v20 .btn {
        margin-left: auto
    }

.product-capture-form-v20.score-grid-v20 {
    grid-template-columns: repeat(4,minmax(0,1fr))
}

@media(max-width:1050px) {
    .product-result-summary-v20 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .product-result-actions-v20 {
        align-items: stretch;
        flex-direction: column
    }

        .product-result-actions-v20 > div:last-child {
            width: 100%
        }
}

@media(max-width:760px) {
    .product-result-layout-v20 {
        grid-template-columns: 1fr
    }

    .product-result-panel-v20.metrics {
        grid-column: auto
    }

    .product-result-actions-v20 > div:last-child {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .product-result-inline-form-v20 {
        grid-template-columns: 1fr 1fr
    }

    .product-capture-form-v20.score-grid-v20 {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:520px) {
    .product-result-summary-v20, .product-result-actions-v20 > div:last-child, .product-result-inline-form-v20, .product-capture-form-v20.score-grid-v20 {
        grid-template-columns: 1fr
    }

        .product-result-inline-form-v20 label.wide {
            grid-column: auto
        }

    .product-metric-main-v20 {
        grid-template-columns: 34px minmax(0,1fr)
    }

        .product-metric-main-v20 > strong {
            grid-column: 2;
            text-align: left
        }

    .product-finance-list-v20 > article {
        grid-template-columns: 1fr
    }

        .product-finance-list-v20 > article > span {
            text-align: left
        }
}

.product-evidence-guide-v20 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 13px;
    padding: 12px 14px;
    border: 1px solid #cfe1ea;
    border-radius: 14px;
    background: #edf7fc
}

    .product-evidence-guide-v20 > span {
        display: grid;
        place-items: center;
        width: 42px;
        height: 42px;
        border-radius: 11px;
        background: #fff;
        color: #21658e;
        font-size: .62rem;
        font-weight: 900
    }

    .product-evidence-guide-v20 b {
        display: block;
        color: #173f5b
    }

    .product-evidence-guide-v20 p {
        margin: 3px 0 0;
        color: #687f8e;
        font-size: .7rem
    }

/* =========================================================
   V20 - Sala de junta madura: conversación primero, captura después
   ========================================================= */
.meeting-room-v20-body {
    min-height: 100vh;
    margin: 0;
    overflow: hidden;
    background: #edf4f8;
    color: #123853;
}

.meeting-room-v20 {
    height: 100vh;
    display: flex;
    flex-direction: column
}

.meeting-room-top-v20 {
    position: relative;
    z-index: 10;
    display: grid;
    grid-template-columns: minmax(260px,1fr) auto auto auto;
    align-items: center;
    gap: 16px;
    min-height: 72px;
    padding: 10px 18px;
    border-bottom: 1px solid #d5e1e8;
    background: #fff;
    box-shadow: 0 6px 18px rgba(19,57,81,.07);
}

.meeting-room-brand-v20 {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0
}

    .meeting-room-brand-v20 > span {
        display: grid;
        place-items: center;
        width: 43px;
        height: 43px;
        border: 1px solid #d6e3eb;
        border-radius: 13px;
        background: #fff
    }

    .meeting-room-brand-v20 img {
        display: block;
        max-width: 34px;
        max-height: 34px
    }

    .meeting-room-brand-v20 > div {
        display: grid;
        min-width: 0
    }

    .meeting-room-brand-v20 small {
        color: #2e6585;
        font-size: .58rem;
        font-weight: 900;
        letter-spacing: .07em
    }

    .meeting-room-brand-v20 b {
        overflow: hidden;
        margin-top: 2px;
        font-size: .86rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

.meeting-room-flow-v20 {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 5px;
    border-radius: 13px;
    background: #edf4f8
}

    .meeting-room-flow-v20 span {
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 5px 8px;
        border-radius: 9px;
        color: #6b8291
    }

        .meeting-room-flow-v20 span b {
            display: grid;
            place-items: center;
            width: 24px;
            height: 24px;
            border-radius: 7px;
            background: #fff;
            color: #376985;
            font-size: .66rem
        }

        .meeting-room-flow-v20 span em {
            font-style: normal;
            font-size: .63rem;
            font-weight: 850
        }

        .meeting-room-flow-v20 span.active {
            background: #fff;
            color: #153f5b;
            box-shadow: 0 4px 10px rgba(19,57,81,.08)
        }

            .meeting-room-flow-v20 span.active b {
                background: #1f5f8a;
                color: #fff
            }

    .meeting-room-flow-v20 > i {
        color: #9dafba;
        font-style: normal;
        font-size: .68rem
    }

.meeting-room-time-v20 {
    display: grid;
    min-width: 78px;
    text-align: right
}

    .meeting-room-time-v20 span {
        color: #164e72;
        font-size: 1.05rem;
        font-weight: 950;
        letter-spacing: .02em
    }

    .meeting-room-time-v20 small {
        color: #718794;
        font-size: .56rem
    }

.meeting-room-message-v20 {
    position: fixed;
    top: 82px;
    left: 50%;
    z-index: 40;
    max-width: min(520px,calc(100vw - 28px));
    padding: 10px 14px;
    border: 1px solid #9fd4b9;
    border-radius: 11px;
    background: #eefaf4;
    color: #246a49;
    font-size: .7rem;
    font-weight: 800;
    box-shadow: 0 12px 28px rgba(19,57,81,.14);
    transform: translateX(-50%)
}

    .meeting-room-message-v20.error {
        border-color: #efb7b7;
        background: #fff0f0;
        color: #a63f3f
    }

.meeting-room-layout-v20 {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(350px,.62fr);
    gap: 13px;
    width: 100%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 13px
}

.meeting-room-work-v20, .meeting-room-capture-v20 {
    min-height: 0;
    overflow: auto;
    scrollbar-gutter: stable
}

.meeting-room-work-v20 {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.meeting-room-now-v20 {
    display: grid;
    grid-template-columns: 58px minmax(0,1fr) 150px;
    align-items: center;
    gap: 15px;
    padding: 18px;
    border: 1px solid #cfe0e9;
    border-radius: 18px;
    background: linear-gradient(135deg,#fff,#f2f8fc);
    box-shadow: 0 9px 24px rgba(20,62,91,.06)
}

.meeting-room-now-number-v20 {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: linear-gradient(145deg,#1c5d88,#267aab);
    color: #fff;
    font-size: 1.35rem;
    font-weight: 950;
    box-shadow: 0 9px 18px rgba(28,93,136,.18)
}

.meeting-room-now-copy-v20 {
    min-width: 0
}

    .meeting-room-now-copy-v20 small {
        color: #2d6788;
        font-size: .56rem;
        font-weight: 900;
        letter-spacing: .06em
    }

    .meeting-room-now-copy-v20 h1 {
        margin: 4px 0 4px;
        color: #123b58;
        font-size: clamp(1.35rem,2.4vw,2.25rem);
        line-height: 1.08;
        letter-spacing: -.035em
    }

    .meeting-room-now-copy-v20 p {
        margin: 0;
        color: #667f8e;
        font-size: .76rem;
        line-height: 1.48
    }

.meeting-room-linked-v20 {
    display: inline-flex;
    margin-top: 8px;
    padding: 6px 9px;
    border-radius: 8px;
    background: #e9f5fb;
    color: #1f658d;
    font-size: .61rem;
    font-weight: 850
}

.meeting-room-agenda-progress-v20 {
    display: grid;
    gap: 3px;
    text-align: right
}

    .meeting-room-agenda-progress-v20 strong {
        color: #164f74;
        font-size: 1.25rem
    }

    .meeting-room-agenda-progress-v20 small {
        color: #718692;
        font-size: .58rem
    }

    .meeting-room-agenda-progress-v20 > i {
        display: block;
        height: 7px;
        margin-top: 5px;
        overflow: hidden;
        border-radius: 999px;
        background: #e3edf2
    }

        .meeting-room-agenda-progress-v20 > i > em {
            display: block;
            height: 100%;
            border-radius: inherit;
            background: linear-gradient(90deg,#1e648f,#31a2c3)
        }

.meeting-room-guidance-v20 {
    display: grid;
    grid-template-columns: 35px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #d8e5ec;
    border-radius: 13px;
    background: #fff
}

    .meeting-room-guidance-v20 > span {
        display: grid;
        place-items: center;
        width: 33px;
        height: 33px;
        border-radius: 10px;
        background: #fff4eb;
        color: #d85a1c;
        font-weight: 950
    }

    .meeting-room-guidance-v20 b {
        display: block;
        font-size: .7rem
    }

    .meeting-room-guidance-v20 p {
        margin: 2px 0 0;
        color: #718692;
        font-size: .62rem;
        line-height: 1.42
    }

.meeting-room-content-v20 {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(270px,.62fr);
    gap: 10px;
    min-height: 0
}

.meeting-room-agenda-v20, .meeting-room-results-v20 {
    border: 1px solid #d8e4eb;
    border-radius: 16px;
    background: #fff;
    overflow: hidden
}

    .meeting-room-agenda-v20 > header, .meeting-room-results-v20 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        padding: 12px 14px;
        border-bottom: 1px solid #e1e9ee;
        background: #f8fbfd
    }

        .meeting-room-agenda-v20 > header small, .meeting-room-results-v20 > header small {
            color: #2c6688;
            font-size: .54rem;
            font-weight: 900;
            letter-spacing: .07em
        }

        .meeting-room-agenda-v20 > header h2, .meeting-room-results-v20 > header h2 {
            margin: 2px 0 0;
            font-size: .83rem
        }

        .meeting-room-agenda-v20 > header > span {
            display: grid;
            place-items: center;
            min-width: 28px;
            height: 28px;
            padding: 0 7px;
            border-radius: 999px;
            background: #e8f2f8;
            color: #245f81;
            font-size: .64rem;
            font-weight: 900
        }

.meeting-room-agenda-list-v20 {
    display: grid;
    gap: 7px;
    max-height: 330px;
    padding: 9px;
    overflow: auto
}

    .meeting-room-agenda-list-v20 > article {
        display: grid;
        grid-template-columns: 34px minmax(0,1fr) auto;
        align-items: center;
        gap: 9px;
        padding: 9px;
        border: 1px solid #e0e8ed;
        border-radius: 11px;
        background: #fff
    }

        .meeting-room-agenda-list-v20 > article > span:first-child {
            display: grid;
            place-items: center;
            width: 32px;
            height: 32px;
            border-radius: 9px;
            background: #eaf3f8;
            color: #286487;
            font-size: .66rem;
            font-weight: 950
        }

        .meeting-room-agenda-list-v20 > article.status-enrevision {
            border-color: #9ecbe1;
            background: #f2f9fd;
            box-shadow: inset 3px 0 #1c75a7
        }

        .meeting-room-agenda-list-v20 > article.status-resuelto {
            opacity: .7;
            background: #f5faf7
        }

        .meeting-room-agenda-list-v20 > article > div {
            display: grid;
            min-width: 0
        }

    .meeting-room-agenda-list-v20 small {
        color: #718591;
        font-size: .54rem
    }

    .meeting-room-agenda-list-v20 b {
        overflow: hidden;
        font-size: .68rem;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .meeting-room-agenda-list-v20 p {
        margin: 2px 0;
        color: #6c8290;
        font-size: .59rem
    }

    .meeting-room-agenda-list-v20 em {
        color: #2a6a8e;
        font-size: .55rem;
        font-style: normal
    }

.meeting-room-done-v20 {
    padding: 5px 7px;
    border-radius: 8px;
    background: #e8f6ee;
    color: #2d7c53;
    font-size: .58rem;
    font-weight: 900;
    white-space: nowrap
}

.meeting-room-results-v20 {
    display: flex;
    flex-direction: column
}

.meeting-room-result-counts-v20 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 6px;
    padding: 9px
}

    .meeting-room-result-counts-v20 > article {
        display: grid;
        gap: 2px;
        padding: 9px;
        border-radius: 10px;
        background: #f1f7fa;
        text-align: center
    }

    .meeting-room-result-counts-v20 b {
        color: #1e5f84;
        font-size: .91rem
    }

    .meeting-room-result-counts-v20 small {
        color: #718591;
        font-size: .49rem
    }

.meeting-room-recent-v20 {
    min-height: 0;
    padding: 0 9px 9px
}

    .meeting-room-recent-v20 > h3 {
        margin: 4px 0 7px;
        font-size: .68rem
    }

    .meeting-room-recent-v20 > div {
        display: grid;
        gap: 6px;
        max-height: 220px;
        overflow: auto
    }

    .meeting-room-recent-v20 article {
        display: grid;
        gap: 2px;
        padding: 8px;
        border: 1px solid #e1e9ee;
        border-radius: 10px;
        background: #fff
    }

        .meeting-room-recent-v20 article span {
            color: #2b698e;
            font-size: .5rem;
            font-weight: 900
        }

        .meeting-room-recent-v20 article b {
            font-size: .64rem
        }

        .meeting-room-recent-v20 article p {
            margin: 0;
            color: #718591;
            font-size: .56rem;
            line-height: 1.4
        }

.meeting-room-plan-v20 {
    border: 1px solid #d8e4eb;
    border-radius: 14px;
    background: #fff;
    overflow: hidden
}

    .meeting-room-plan-v20 > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 10px 12px;
        cursor: pointer;
        list-style: none
    }

        .meeting-room-plan-v20 > summary > span {
            display: flex;
            align-items: center;
            gap: 9px
        }

        .meeting-room-plan-v20 > summary small {
            color: #2b6688;
            font-size: .53rem;
            font-weight: 900
        }

        .meeting-room-plan-v20 > summary b {
            font-size: .68rem
        }

        .meeting-room-plan-v20 > summary em {
            padding: 4px 7px;
            border-radius: 999px;
            background: #eaf3f8;
            color: #2b6688;
            font-size: .53rem;
            font-style: normal;
            font-weight: 850
        }

        .meeting-room-plan-v20 > summary > strong {
            color: #688190
        }

    .meeting-room-plan-v20[open] > summary {
        border-bottom: 1px solid #e0e9ee;
        background: #f8fbfd
    }

.meeting-room-plan-list-v20 {
    display: grid;
    gap: 6px;
    padding: 9px
}

.meeting-room-plan-row-v20 {
    display: grid;
    grid-template-columns: minmax(180px,260px) minmax(220px,1fr) 45px;
    align-items: center;
    gap: 9px
}

    .meeting-room-plan-row-v20 b, .meeting-room-plan-row-v20 small {
        display: block
    }

    .meeting-room-plan-row-v20 b {
        font-size: .6rem
    }

    .meeting-room-plan-row-v20 small {
        color: #718591;
        font-size: .5rem
    }

    .meeting-room-plan-row-v20 > span {
        text-align: right;
        font-size: .58rem;
        font-weight: 900
    }

.meeting-room-capture-v20 {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 13px;
    border: 1px solid #d7e4eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(20,62,91,.07)
}

    .meeting-room-capture-v20 > header {
        display: block;
        margin: 0;
        padding: 2px 2px 7px;
        border-bottom: 1px solid #e2eaee
    }

        .meeting-room-capture-v20 > header small {
            color: #d75a1c;
            font-size: .56rem;
            font-weight: 950;
            letter-spacing: .07em
        }

        .meeting-room-capture-v20 > header h2 {
            margin: 3px 0;
            font-size: 1.05rem
        }

        .meeting-room-capture-v20 > header p {
            margin: 0;
            color: #6d8390;
            font-size: .63rem;
            line-height: 1.42
        }

.meeting-room-capture-tabs-v20 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 5px;
    padding: 4px;
    border-radius: 12px;
    background: #edf4f8
}

    .meeting-room-capture-tabs-v20 button {
        display: grid;
        grid-template-columns: 24px minmax(0,1fr);
        align-items: center;
        gap: 5px;
        min-height: 39px;
        padding: 5px;
        border: 0;
        border-radius: 9px;
        background: transparent;
        color: #637b89;
        cursor: pointer;
        text-align: left
    }

        .meeting-room-capture-tabs-v20 button > span {
            display: grid;
            place-items: center;
            width: 24px;
            height: 24px;
            border-radius: 7px;
            background: #fff;
            color: #2b6689;
            font-weight: 900
        }

        .meeting-room-capture-tabs-v20 button > b {
            font-size: .57rem
        }

        .meeting-room-capture-tabs-v20 button.active {
            background: #fff;
            color: #164b6b;
            box-shadow: 0 4px 11px rgba(19,57,81,.09)
        }

            .meeting-room-capture-tabs-v20 button.active > span {
                background: #1f6490;
                color: #fff
            }

.meeting-room-capture-panel-v20 {
    animation: v20RoomPanel .16s ease
}

    .meeting-room-capture-panel-v20 form {
        display: grid;
        gap: 9px
    }

.meeting-room-form-v20 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px
}

    .meeting-room-form-v20 label {
        display: grid;
        gap: 4px;
        color: #617986;
        font-size: .58rem;
        font-weight: 800
    }

        .meeting-room-form-v20 label.wide {
            grid-column: 1/-1
        }

    .meeting-room-form-v20 input, .meeting-room-form-v20 select, .meeting-room-form-v20 textarea {
        width: 100%;
        min-height: 37px;
        padding: 8px 9px;
        border: 1px solid #cfdee6;
        border-radius: 9px;
        background: #fff;
        color: #153f5b;
        font: inherit;
        font-weight: 500
    }

    .meeting-room-form-v20 textarea {
        resize: vertical
    }

    .meeting-room-form-v20 .check-line {
        display: flex;
        align-items: center;
        gap: 7px
    }

        .meeting-room-form-v20 .check-line input {
            width: 17px;
            min-height: 17px
        }

.meeting-room-close-v20 {
    margin-top: auto;
    border: 1px solid #d8e4eb;
    border-radius: 12px;
    background: #f8fbfd;
    overflow: hidden
}

    .meeting-room-close-v20 > summary {
        display: grid;
        grid-template-columns: 31px minmax(0,1fr);
        align-items: center;
        gap: 8px;
        padding: 9px 10px;
        cursor: pointer;
        list-style: none
    }

        .meeting-room-close-v20 > summary > span {
            display: grid;
            place-items: center;
            width: 30px;
            height: 30px;
            border-radius: 9px;
            background: #e7f5ed;
            color: #2d7951;
            font-weight: 950
        }

        .meeting-room-close-v20 > summary b, .meeting-room-close-v20 > summary small {
            display: block
        }

        .meeting-room-close-v20 > summary b {
            font-size: .66rem
        }

        .meeting-room-close-v20 > summary small {
            color: #718591;
            font-size: .54rem
        }

    .meeting-room-close-v20 form {
        display: grid;
        gap: 8px;
        padding: 10px;
        border-top: 1px solid #dde7ec;
        background: #fff
    }

    .meeting-room-close-v20 label {
        display: grid;
        gap: 4px;
        color: #627987;
        font-size: .58rem
    }

    .meeting-room-close-v20 input, .meeting-room-close-v20 textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid #cfdee6;
        border-radius: 9px
    }

.meeting-room-empty-v20 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 105px;
    padding: 14px;
    color: #718591;
    text-align: left
}

    .meeting-room-empty-v20.compact {
        min-height: 75px
    }

    .meeting-room-empty-v20 > span {
        display: grid;
        place-items: center;
        width: 36px;
        height: 36px;
        border-radius: 10px;
        background: #eaf3f8;
        color: #2c6688;
        font-weight: 950
    }

    .meeting-room-empty-v20 b {
        display: block;
        color: #173f5b;
        font-size: .66rem
    }

    .meeting-room-empty-v20 p {
        margin: 2px 0 0;
        font-size: .56rem;
        line-height: 1.42
    }

@keyframes v20RoomPanel {
    from {
        opacity: 0;
        transform: translateY(4px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

@media(max-width:1180px) {
    .meeting-room-top-v20 {
        grid-template-columns: minmax(220px,1fr) auto auto
    }

    .meeting-room-flow-v20 {
        display: none
    }

    .meeting-room-layout-v20 {
        grid-template-columns: minmax(0,1.25fr) minmax(330px,.7fr)
    }

    .meeting-room-content-v20 {
        grid-template-columns: 1fr
    }

    .meeting-room-results-v20 {
        min-height: 210px
    }

    .meeting-room-result-counts-v20 {
        grid-template-columns: repeat(3,1fr)
    }
}

@media(max-width:860px) {
    .meeting-room-v20-body {
        overflow: auto
    }

    .meeting-room-v20 {
        height: auto;
        min-height: 100vh
    }

    .meeting-room-top-v20 {
        position: sticky;
        top: 0;
        grid-template-columns: minmax(0,1fr) auto auto;
        padding: 8px 10px
    }

    .meeting-room-brand-v20 > span {
        display: none
    }

    .meeting-room-time-v20 small {
        display: none
    }

    .meeting-room-layout-v20 {
        grid-template-columns: 1fr;
        padding: 8px
    }

    .meeting-room-work-v20, .meeting-room-capture-v20 {
        overflow: visible
    }

    .meeting-room-capture-v20 {
        order: -1
    }

    .meeting-room-now-v20 {
        grid-template-columns: 46px minmax(0,1fr);
        padding: 13px
    }

    .meeting-room-now-number-v20 {
        width: 44px;
        height: 44px;
        border-radius: 13px
    }

    .meeting-room-agenda-progress-v20 {
        grid-column: 1/-1;
        grid-template-columns: auto 1fr;
        align-items: center;
        text-align: left
    }

        .meeting-room-agenda-progress-v20 > i {
            grid-column: 1/-1
        }

    .meeting-room-now-copy-v20 h1 {
        font-size: 1.45rem
    }
}

@media(max-width:560px) {
    .meeting-room-top-v20 {
        grid-template-columns: minmax(0,1fr) auto
    }

    .meeting-room-time-v20 {
        display: none
    }

    .meeting-room-top-v20 > .btn {
        padding: 7px 9px;
        font-size: .6rem
    }

    .meeting-room-brand-v20 small {
        font-size: .48rem
    }

    .meeting-room-brand-v20 b {
        font-size: .7rem
    }

    .meeting-room-capture-tabs-v20 {
        grid-template-columns: 1fr
    }

    .meeting-room-form-v20 {
        grid-template-columns: 1fr
    }

        .meeting-room-form-v20 label.wide {
            grid-column: auto
        }

    .meeting-room-result-counts-v20 {
        grid-template-columns: 1fr 1fr
    }

    .meeting-room-plan-row-v20 {
        min-width: 610px
    }

    .meeting-room-plan-list-v20 {
        overflow: auto
    }
}

/* V20 - Captura del producto por intención: seguimiento o resultados */
.product-capture-shell-v20 > header {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto 34px;
    align-items: start;
}

.product-capture-mode-v20 {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid #d8e4eb;
    border-radius: 11px;
    background: #f2f7fa;
}

.product-capture-shell-v20 > header .product-capture-mode-v20 button {
    display: block;
    width: auto;
    min-width: 92px;
    height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #607887;
    font-size: .66rem;
    font-weight: 900;
    white-space: nowrap;
    cursor: pointer;
}

    .product-capture-shell-v20 > header .product-capture-mode-v20 button.active {
        background: #fff;
        color: #155f9f;
        box-shadow: 0 3px 9px rgba(15,45,67,.11);
    }

.product-capture-shell-v20 > nav button[hidden] {
    display: none !important
}

@media(max-width:700px) {
    .product-capture-shell-v20 > header {
        grid-template-columns: minmax(0,1fr) 34px
    }

    .product-capture-mode-v20 {
        grid-column: 1/-1;
        grid-row: 2;
        width: 100%
    }

    .product-capture-shell-v20 > header .product-capture-mode-v20 button {
        flex: 1;
        min-width: 0
    }

    .product-capture-shell-v20 > nav {
        position: static
    }
}

/* V20 - Alta y edición madura del producto */
.product-editor-v20 {
    max-width: 1180px;
    margin-inline: auto
}

.product-editor-route-v20 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding: 13px 15px;
    border: 1px solid #c9dfea;
    border-radius: 15px;
    background: #f3f9fc
}

    .product-editor-route-v20 > div {
        display: flex;
        align-items: center;
        gap: 11px
    }

        .product-editor-route-v20 > div > span {
            display: grid;
            place-items: center;
            flex: 0 0 38px;
            width: 38px;
            height: 38px;
            border-radius: 11px;
            background: #e2f1f8;
            color: #17659a;
            font-size: 1rem;
            font-weight: 900
        }

    .product-editor-route-v20 b, .product-editor-route-v20 p {
        display: block;
        margin: 0
    }

    .product-editor-route-v20 b {
        color: #214c69;
        font-size: .78rem
    }

    .product-editor-route-v20 p {
        margin-top: 2px;
        color: #6e8290;
        font-size: .66rem
    }

.product-editor-header-v20 {
    border-radius: 18px 18px 0 0
}

.product-editor-layout-v20 {
    align-items: start
}

.product-editor-step-v20 {
    padding: 22px
}

.product-editor-primary-fields-v20 {
    margin-top: 16px
}

.product-editor-more-v20 {
    margin-top: 13px;
    border: 1px solid #dce6ec;
    border-radius: 13px;
    background: #f9fbfc;
    overflow: hidden
}

    .product-editor-more-v20 > summary {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 12px 14px;
        cursor: pointer;
        list-style: none
    }

        .product-editor-more-v20 > summary > span {
            display: grid;
            place-items: center;
            flex: 0 0 27px;
            width: 27px;
            height: 27px;
            border-radius: 8px;
            background: #e9f3f8;
            color: #17659a;
            font-weight: 900
        }

        .product-editor-more-v20 > summary > div {
            display: grid
        }

        .product-editor-more-v20 > summary b {
            color: #274f69;
            font-size: .72rem
        }

        .product-editor-more-v20 > summary small {
            margin-top: 2px;
            color: #788b97;
            font-size: .61rem
        }

    .product-editor-more-v20[open] > summary {
        border-bottom: 1px solid #e1e9ed;
        background: #fff
    }

.product-editor-more-body-v20 {
    padding: 14px
}

.product-editor-examples-v20 {
    margin-bottom: 14px
}

    .product-editor-examples-v20 > summary {
        color: #315f7d;
        font-size: .68rem;
        font-weight: 850;
        cursor: pointer
    }

    .product-editor-examples-v20 .idea-templates {
        margin-top: 10px
    }

.product-editor-preview-v20 {
    margin-top: 16px
}

.product-editor-companion-v20 {
    top: calc(var(--topbar-height) + 18px)
}

@media(max-width:760px) {
    .product-editor-route-v20 {
        align-items: flex-start;
        flex-direction: column
    }

        .product-editor-route-v20 .btn {
            width: 100%
        }

    .product-editor-step-v20 {
        padding: 17px
    }
}

/* =========================================================
   V22 - IDEAS: recopilacion viva + preview + CRUD estable
   ========================================================= */

.idea-collection-v22 {
    margin-top: 18px;
    border: 1px solid #cfe0eb;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}

.idea-collection-head-v22 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px 16px;
    border-bottom: 1px solid #e3ebf0;
    background: linear-gradient(180deg,#fbfdff 0%,#fff 100%);
}

    .idea-collection-head-v22 small,
    .idea-feed-main-v22 header small,
    .idea-modal-head-v22 small {
        display: block;
        color: #0c5b8d;
        font-size: .62rem;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .idea-collection-head-v22 h2,
    .idea-modal-head-v22 h2 {
        margin: 4px 0 3px;
        color: #123d5a;
    }

    .idea-collection-head-v22 p,
    .idea-modal-head-v22 p {
        margin: 0;
        color: #657b8a;
        font-size: .82rem;
    }

.idea-collection-actions-v22 {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.idea-collection-summary-v22 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
    padding: 12px 22px;
    border-bottom: 1px solid #e8eef2;
    background: #f8fbfd;
}

    .idea-collection-summary-v22 button {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-height: 46px;
        border: 1px solid transparent;
        border-radius: 12px;
        background: transparent;
        color: #526c7e;
        cursor: pointer;
        font: inherit;
    }

        .idea-collection-summary-v22 button b {
            display: grid;
            place-items: center;
            min-width: 28px;
            height: 28px;
            padding: 0 7px;
            border-radius: 999px;
            background: #eaf3f8;
            color: #0e5e8f;
            font-size: .72rem;
        }

        .idea-collection-summary-v22 button span {
            font-size: .72rem;
            font-weight: 850;
        }

        .idea-collection-summary-v22 button:hover,
        .idea-collection-summary-v22 button.active {
            border-color: #b9d4e5;
            background: #fff;
            color: #123d5a;
            box-shadow: 0 4px 14px rgba(22,72,104,.06);
        }

.idea-collection-feed-v22 {
    display: grid;
    gap: 10px;
    padding: 16px 22px 22px;
}

.idea-collection-v22 [hidden] {
    display: none !important;
}

.idea-feed-card-v22 {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    gap: 12px;
    padding: 14px;
    border: 1px solid #dce7ed;
    border-radius: 14px;
    background: #fff;
}

    .idea-feed-card-v22:hover {
        border-color: #b8d2e1;
        box-shadow: 0 7px 20px rgba(20,63,90,.06);
    }

.idea-feed-marker-v22 {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 1px;
}

    .idea-feed-marker-v22 > span:not(.avatar) {
        display: grid;
        place-items: center;
        width: 34px;
        height: 34px;
        border-radius: 10px;
        background: #eef6fb;
        color: #0b679b;
        font-weight: 900;
    }

.idea-feed-card-v22.is-comment .idea-feed-marker-v22 > span {
    background: #eef7ff;
}

.idea-feed-card-v22.is-evidence .idea-feed-marker-v22 > span {
    background: #fff4e9;
    color: #d9641f;
}

.idea-feed-main-v22 {
    min-width: 0;
}

    .idea-feed-main-v22 > header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
    }

    .idea-feed-main-v22 header h3 {
        margin: 2px 0 0;
        color: #173d56;
        font-size: .92rem;
        overflow-wrap: anywhere;
    }

    .idea-feed-main-v22 header strong {
        color: #0d5f91;
        font-size: .86rem;
        white-space: nowrap;
    }

    .idea-feed-main-v22 > p {
        margin: 9px 0;
        color: #4f6879;
        font-size: .78rem;
        line-height: 1.52;
        white-space: pre-wrap;
    }

.idea-feed-progress-v22 {
    height: 6px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7eef2;
}

    .idea-feed-progress-v22 i {
        display: block;
        height: 100%;
        border-radius: inherit;
        background: #2881b3;
    }

.idea-feed-main-v22 > footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
    color: #718591;
    font-size: .68rem;
}

    .idea-feed-main-v22 > footer > span {
        padding: 4px 7px;
        border-radius: 999px;
        background: #f0f5f8;
    }

.idea-feed-action-v22,
.idea-feed-link-v22,
.idea-evidence-meta-v22 button {
    border: 0;
    background: transparent;
    color: #0b6294;
    cursor: pointer;
    font: inherit;
    font-weight: 850;
    padding: 4px 6px;
    border-radius: 7px;
}

    .idea-feed-action-v22:hover,
    .idea-feed-link-v22:hover,
    .idea-evidence-meta-v22 button:hover {
        background: #eef7fc;
    }

    .idea-feed-action-v22.primary {
        background: #0d68a0;
        color: #fff;
        padding: 6px 10px;
    }

        .idea-feed-action-v22.primary:hover {
            background: #095984;
        }

.idea-file-type-v22 {
    flex: 0 0 auto;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 5px 8px;
    border-radius: 999px;
    background: #fff1e8;
    color: #c85d1c;
    font-size: .63rem;
    font-weight: 850;
}

.idea-evidence-meta-v22 {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    color: #718591;
    font-size: .68rem;
}

    .idea-evidence-meta-v22 span {
        padding: 4px 7px;
        border-radius: 999px;
        background: #f3f7f9;
    }

.idea-collection-empty-v22 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 150px;
    color: #6d818e;
    text-align: left;
}

    .idea-collection-empty-v22 > span {
        display: grid;
        place-items: center;
        width: 42px;
        height: 42px;
        border-radius: 12px;
        background: #edf6fb;
        color: #0c6397;
        font-size: 1.2rem;
        font-weight: 900;
    }

    .idea-collection-empty-v22 b {
        display: block;
        color: #173d56;
    }

    .idea-collection-empty-v22 p {
        margin: 2px 0 0;
        font-size: .76rem;
    }

/* Modales sin desplazamientos ni animaciones heredadas. */
.idea-crud-modal-v22,
.idea-preview-modal-v22,
.idea-activity-modal-v17,
.idea-quick-modal-v17 {
    position: fixed;
    inset: 0;
    margin: auto;
    border: 0;
    padding: 0;
    animation: none !important;
    transition: none !important;
}

.idea-crud-modal-v22,
.idea-preview-modal-v22 {
    width: min(860px,calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 85px rgba(12,40,58,.28);
    overflow: hidden;
}

.idea-preview-modal-v22 {
    width: min(1180px,calc(100vw - 32px));
}

    .idea-crud-modal-v22::backdrop,
    .idea-preview-modal-v22::backdrop,
    .idea-activity-modal-v17::backdrop,
    .idea-quick-modal-v17::backdrop {
        background: rgba(11,31,44,.52);
        backdrop-filter: none !important;
    }

.idea-crud-shell-v22,
.idea-preview-shell-v22 {
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - 32px);
    background: #fff;
}

.idea-modal-head-v22 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: 1px solid #e2eaf0;
    background: #fbfdfe;
}

    .idea-modal-head-v22 > button {
        flex: 0 0 auto;
        display: grid;
        place-items: center;
        width: 34px;
        height: 34px;
        border: 1px solid #d3e0e7;
        border-radius: 9px;
        background: #fff;
        color: #526b7a;
        font-size: 1.2rem;
        cursor: pointer;
    }

.idea-crud-modal-v22 [data-crud-panel] {
    overflow: auto;
    padding: 18px;
}

.idea-crud-form-v22 {
    display: grid;
    gap: 14px;
}

    .idea-crud-form-v22 label {
        display: grid;
        gap: 6px;
        color: #294c61;
        font-size: .72rem;
        font-weight: 850;
    }

    .idea-crud-form-v22 input,
    .idea-crud-form-v22 textarea,
    .idea-crud-form-v22 select {
        width: 100%;
        border: 1px solid #cbdce6;
        border-radius: 10px;
        background: #fff;
        color: #183e56;
        padding: 10px 11px;
        font: inherit;
        font-weight: 500;
    }

    .idea-crud-form-v22 textarea {
        resize: vertical;
    }

.idea-crud-file-name-v22 {
    padding: 11px 12px;
    border: 1px solid #dce7ed;
    border-radius: 10px;
    background: #f7fafc;
    color: #173d56;
    font-size: .8rem;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.idea-modal-actions-v22 {
    display: flex;
    justify-content: flex-end;
    margin-top: 4px;
}

.idea-crud-delete-v22 {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e6edf1;
}

.idea-preview-body-v22 {
    display: grid;
    place-items: center;
    min-height: 420px;
    height: min(68vh,760px);
    overflow: auto;
    background: #eef3f6;
}

.idea-preview-frame-v22 {
    width: 100%;
    height: 100%;
    min-height: 420px;
    border: 0;
    background: #fff;
}

.idea-preview-image-v22 {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    padding: 14px;
}

.idea-preview-video-v22 {
    max-width: 100%;
    max-height: 100%;
}

.idea-preview-body-v22 audio {
    width: min(620px,90%);
}

.idea-preview-empty-v22 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    max-width: 600px;
    padding: 28px;
    color: #657c8b;
    text-align: left;
}

    .idea-preview-empty-v22 > span {
        display: grid;
        place-items: center;
        width: 50px;
        height: 50px;
        flex: 0 0 auto;
        border-radius: 14px;
        background: #fff;
        color: #0d6497;
        font-size: 1.35rem;
        box-shadow: 0 5px 16px rgba(15,60,90,.08);
    }

    .idea-preview-empty-v22 b {
        display: block;
        color: #173d56;
    }

    .idea-preview-empty-v22 p {
        margin: 4px 0 0;
    }

.idea-preview-actions-v22 {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid #e2eaf0;
    background: #fff;
}

@media(max-width:760px) {
    .idea-collection-head-v22 {
        flex-direction: column;
    }

    .idea-collection-actions-v22 {
        width: 100%;
        justify-content: flex-start;
    }

    .idea-collection-summary-v22 {
        grid-template-columns: repeat(2,minmax(0,1fr));
        padding: 10px 12px;
    }

    .idea-collection-feed-v22 {
        padding: 12px;
    }

    .idea-feed-card-v22 {
        grid-template-columns: 34px minmax(0,1fr);
        padding: 11px;
    }

    .idea-feed-marker-v22 > span:not(.avatar) {
        width: 30px;
        height: 30px;
    }

    .idea-feed-main-v22 > header {
        flex-direction: column;
        gap: 5px;
    }

    .idea-preview-body-v22 {
        min-height: 55vh;
        height: 55vh;
    }

    .idea-preview-frame-v22 {
        min-height: 55vh;
    }
}
