/* Landing compliance: 40-hour reform and NOM-035. */
.cloud-hero-copy h1 {
    max-width: 980px;
}

.cloud-hero {
    min-height: 820px;
}

.cloud-trust-row {
    margin-top: 30px;
}

@media (min-width: 861px) {
    .cloud-hero-docs {
        bottom: -250px;
    }
}

@media (max-width: 860px) {
    .cloud-hero-docs {
        bottom: -210px;
    }
}

.cloud-compliance {
    width: min(calc(100% - 64px), 1400px);
    margin: 0 auto;
    padding: 96px 0 84px;
    scroll-margin-top: 128px;
}

.cloud-compliance-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 40px;
    align-items: end;
    margin-bottom: 38px;
}

.cloud-compliance-head h2 {
    max-width: 780px;
    margin: 0;
    color: var(--cloud-text);
    font-size: clamp(2.35rem, 4.25vw, 4.8rem);
    line-height: 1.02;
    font-weight: 950;
    letter-spacing: 0;
}

.cloud-compliance-included {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    max-width: 310px;
    padding: 16px 18px;
    border: 1px solid #bfe9d2;
    border-radius: 8px;
    background: #effbf5;
    color: #12683e;
}

.cloud-compliance-included svg {
    width: 34px;
    height: 34px;
    padding: 7px;
    border-radius: 50%;
    background: #1fa86a;
    color: #ffffff;
}

.cloud-compliance-included span {
    display: grid;
    gap: 2px;
    font-size: 0.86rem;
    line-height: 1.3;
    font-weight: 720;
}

.cloud-compliance-included strong {
    color: #0c5130;
    font-weight: 950;
}

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

.cloud-compliance-card {
    min-width: 0;
    padding: 34px;
    border: 1px solid #dce5f2;
    border-radius: 8px;
    background: #f5f8fd;
}

.cloud-compliance-card.nom035 {
    border-color: #cfe8dc;
    background: #f4faf7;
}

.cloud-compliance-card-top {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.cloud-compliance-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 8px;
    background: #dceaff;
    color: #377ddc;
}

.cloud-compliance-card.nom035 .cloud-compliance-icon {
    background: #d9f3e6;
    color: #168857;
}

.cloud-compliance-icon svg {
    width: 27px;
    height: 27px;
}

.cloud-compliance-tag {
    color: #377ddc;
    font-size: 0.78rem;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cloud-compliance-card.nom035 .cloud-compliance-tag {
    color: #168857;
}

.cloud-compliance-card h3 {
    max-width: 570px;
    margin: 0 0 16px;
    color: var(--cloud-text);
    font-size: clamp(1.65rem, 2.5vw, 2.6rem);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: 0;
}

.cloud-compliance-card > p {
    max-width: 620px;
    margin: 0;
    color: #707680;
    font-size: 1rem;
    line-height: 1.58;
    font-weight: 680;
}

.cloud-compliance-card ul {
    display: grid;
    gap: 12px;
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
}

.cloud-compliance-card li {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    color: #454b55;
    font-size: 0.94rem;
    line-height: 1.4;
    font-weight: 780;
}

.cloud-compliance-card li svg {
    width: 20px;
    height: 20px;
    margin-top: 1px;
    color: #377ddc;
}

.cloud-compliance-card.nom035 li svg {
    color: #168857;
}

.cloud-hours-path {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 26px;
    padding: 22px 24px;
    border: 1px solid #e1e5ec;
    border-radius: 8px;
    background: #ffffff;
}

.cloud-hours-path::before {
    content: "";
    position: absolute;
    left: 10%;
    right: 10%;
    top: 50%;
    height: 2px;
    background: #d9dee7;
    transform: translateY(-50%);
}

.cloud-hours-path span {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 4px;
    width: max-content;
    min-width: 76px;
    justify-self: center;
    padding: 8px 12px;
    background: #ffffff;
    color: #6d7480;
    font-size: 0.88rem;
    font-weight: 850;
}

.cloud-hours-path strong {
    color: #333842;
    font-size: 0.78rem;
    font-weight: 950;
}

.cloud-hours-path .active {
    border: 1px solid #a9e0c5;
    border-radius: 6px;
    background: #effbf5;
    color: #137247;
}

.cloud-hours-path .active strong {
    color: #0f5e3b;
}

.cloud-compliance-note {
    max-width: 900px;
    margin: 18px auto 0;
    color: #777e89;
    font-size: 0.82rem;
    line-height: 1.5;
    font-weight: 680;
    text-align: center;
}

.cloud-pricing-included {
    margin-top: 20px;
    padding: 9px 12px;
    border: 1px solid #bfe9d2;
    border-radius: 6px;
    background: #effbf5;
    color: #12683e;
    font-size: 0.82rem;
    line-height: 1.3;
    font-weight: 900;
}

@media (max-width: 980px) {
    .cloud-hero {
        min-height: 920px;
    }

    .cloud-compliance-head {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .cloud-compliance-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .cloud-hero {
        min-height: 980px;
    }

    .cloud-compliance {
        width: min(calc(100% - 32px), 620px);
        padding: 66px 0 60px;
    }

    .cloud-compliance-head {
        gap: 24px;
        margin-bottom: 26px;
    }

    .cloud-compliance-head h2 {
        font-size: clamp(2.05rem, 10vw, 3rem);
    }

    .cloud-compliance-included {
        max-width: none;
    }

    .cloud-compliance-card {
        padding: 24px;
    }

    .cloud-compliance-card h3 {
        font-size: clamp(1.55rem, 8vw, 2.15rem);
    }

    .cloud-hours-path {
        grid-template-columns: repeat(5, minmax(64px, 1fr));
        gap: 0;
        padding: 16px 8px;
        overflow-x: auto;
    }

    .cloud-hours-path::before {
        left: 44px;
        right: 44px;
    }

    .cloud-hours-path span {
        min-width: 64px;
        padding: 8px 6px;
    }
}

.worker-portal-guide h2 { margin-bottom: 8px; }
.worker-portal-guide-list { display: grid; gap: 10px; margin-top: 18px; }
.worker-portal-guide-list article { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; padding: 14px; border: 1px solid #dfe7f1; border-radius: 14px; background: #fff; }
.worker-portal-guide-list article > div { display: grid; gap: 4px; }
.worker-portal-guide-list article span { color: #6f7d95; font-size: .86rem; line-height: 1.45; }
.worker-portal-guide-list .worker-portal-primary-button { width: auto; min-height: 42px; padding: 0 18px; }
.worker-portal-guide-outcome { max-width: 360px; text-align: right; }
.worker-portal-guide-outcome span { color: #42536d; }
.worker-portal-guide-form { display: grid; gap: 14px; margin-top: 18px; }
.worker-portal-guide-heading { display: grid; gap: 3px; padding-bottom: 12px; border-bottom: 1px solid #dfe7f1; }
.worker-portal-guide-heading span { color: #6f7d95; }
.worker-portal-guide-notice { padding: 12px 14px; border-radius: 12px; background: #eef6ff; color: #315078; line-height: 1.5; }
.worker-portal-guide-question { display: grid; grid-template-columns: 1fr 130px; align-items: center; gap: 14px; padding: 14px; border: 1px solid #dfe7f1; border-radius: 14px; background: #fff; }
.worker-portal-guide-question > span { display: grid; gap: 5px; }
.worker-portal-guide-question strong { color: #172b4d; line-height: 1.45; }
.worker-portal-guide-question small { color: #6f7d95; line-height: 1.4; }
.worker-portal-guide-question select { min-height: 44px; padding: 0 12px; border: 1px solid #cfdaea; border-radius: 10px; background: #fff; color: #172b4d; }
.worker-portal-guide-actions { display: flex; justify-content: flex-end; gap: 10px; }
.worker-portal-guide-request { border-color: #b9d8ff; background: #f3f8ff; }

.worker-portal-pending-guide { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; margin: 16px 0; padding: 16px 18px; border: 1px solid #f3c86a; border-radius: 18px; background: linear-gradient(135deg, #fffaf0, #fff); box-shadow: 0 10px 28px rgba(167, 105, 13, .08); }
.worker-portal-pending-guide-icon { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid #f0b84a; border-radius: 15px; background: #fff; color: #c36b00; }
.worker-portal-pending-guide-icon svg { width: 25px; height: 25px; }
.worker-portal-pending-guide > div { display: grid; gap: 3px; }
.worker-portal-pending-guide strong { color: #172b4d; font-size: 1.02rem; }
.worker-portal-pending-guide span, .worker-portal-pending-guide small { color: #6b7280; line-height: 1.4; }
.worker-portal-pending-guide-action { min-width: 150px; padding: 13px 18px; border: 0; border-radius: 13px; background: linear-gradient(90deg, #2563eb, #14b8a6); color: #fff; font: inherit; font-weight: 900; text-align: center; text-decoration: none; cursor: pointer; box-shadow: 0 10px 22px rgba(37, 99, 235, .16); }
.worker-portal-pending-guide-action:hover { color: #fff; filter: brightness(.98); }
.worker-portal-guide-thankyou { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; margin: 16px 0; padding: 16px 18px; border: 1px solid #a7e2c3; border-radius: 16px; background: #effcf5; color: #145c3d; }
.worker-portal-guide-thankyou > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 999px; background: #d9f7e7; color: #16845a; }
.worker-portal-guide-thankyou svg { width: 23px; height: 23px; }
.worker-portal-guide-thankyou > div { display: grid; gap: 4px; }
.worker-portal-guide-thankyou strong { font-size: 1.04rem; }
.worker-portal-guide-thankyou p { margin: 0; color: #39735b; line-height: 1.5; }
.worker-portal-guide-thankyou > button { border: 0; background: transparent; color: #39735b; font-size: 1.35rem; cursor: pointer; }

.worker-portal-guide-modal { width: min(100%, 960px); }
.worker-portal-guide-modal .app-modal-header { position: sticky; top: 0; z-index: 2; background: #fff; }
.worker-portal-guide-modal .worker-portal-guide-form { gap: 18px; margin-top: 0; }
.worker-portal-guide-context { display: grid; grid-template-columns: 1.05fr 1fr .7fr 1.45fr .8fr; overflow: hidden; border: 1px solid #dfe7f2; border-radius: 14px; background: #fff; }
.worker-portal-guide-context > div { display: grid; gap: 5px; min-width: 0; padding: 14px 16px; border-right: 1px solid #e7edf5; }
.worker-portal-guide-context > div:last-child { border-right: 0; }
.worker-portal-guide-context span { color: #6f7d95; font-size: .78rem; font-weight: 700; }
.worker-portal-guide-context strong { overflow: hidden; color: #172b4d; font-size: .91rem; line-height: 1.35; text-overflow: ellipsis; }
.worker-portal-guide-status { justify-self: start; padding: 4px 9px; border-radius: 999px; background: #eef2ff; color: #4f46e5 !important; font-size: .78rem !important; }
.worker-portal-guide-support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.worker-portal-guide-support { display: grid; gap: 5px; padding: 13px 15px; border: 1px solid; border-radius: 13px; line-height: 1.45; }
.worker-portal-guide-support strong { color: #172b4d; font-size: .94rem; }
.worker-portal-guide-support span { color: #5e6c84; font-size: .86rem; }
.worker-portal-guide-support.is-help { border-color: #ddd6fe; background: #f7f5ff; }
.worker-portal-guide-support.is-private { border-color: #f5d98a; background: #fff9e9; }
.worker-portal-guide-progress { display: grid; grid-template-columns: minmax(220px, auto) 1fr; align-items: center; gap: 20px; }
.worker-portal-guide-progress > div:first-child { display: grid; gap: 3px; }
.worker-portal-guide-progress strong { color: #172b4d; }
.worker-portal-guide-progress span { color: #6f7d95; font-size: .84rem; }
.worker-portal-guide-progress-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e8eef7; }
.worker-portal-guide-progress-track > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #14b8a6); transition: width .2s ease; }
.worker-portal-guide-questions { display: grid; gap: 16px; }
.worker-portal-guide-question-card { display: grid; gap: 20px; padding: 24px; border: 1px solid #dfe7f2; border-radius: 16px; background: #fff; }
.worker-portal-guide-question-card.is-incomplete { border-color: #e05252; background: #fffafa; box-shadow: 0 0 0 3px rgba(224, 82, 82, .12); }
.worker-portal-assessment-missing { margin: -4px 0 0; color: #b42318; font-size: .92rem; font-weight: 800; }
.worker-portal-guide-question-heading { display: flex; align-items: flex-start; gap: 14px; }
.worker-portal-guide-question-number { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: linear-gradient(135deg, #2563eb, #14b8a6); color: #fff; font-size: 1.05rem; font-weight: 900; }
.worker-portal-guide-question-heading > div { display: grid; gap: 7px; min-width: 0; }
.worker-portal-guide-question-heading strong { color: #172b4d; font-size: 1.14rem; line-height: 1.5; }
.worker-portal-guide-question-heading small { color: #60708b; font-size: .98rem; line-height: 1.65; }
.worker-portal-guide-answer-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.worker-portal-guide-answer-options button { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 0 20px; border: 1px solid #d8e2ef; border-radius: 12px; background: #fff; color: #42536d; font: inherit; font-size: 1.02rem; cursor: pointer; }
.worker-portal-guide-answer-options button:hover, .worker-portal-guide-answer-options button.selected { border-color: #2563eb; background: #f3f7ff; color: #1d4ed8; box-shadow: inset 0 0 0 1px #2563eb; }
.worker-portal-guide-answer-options button > span { width: 16px; height: 16px; border: 2px solid #b9c7da; border-radius: 999px; background: #fff; }
.worker-portal-guide-answer-options button.selected > span { border: 5px solid #2563eb; }
.worker-portal-guide-answer-options button strong { font-weight: 800; }
.worker-portal-guide-modal .worker-portal-guide-actions { position: sticky; bottom: -20px; z-index: 2; margin: 4px -22px -20px; padding: 16px 22px; border-top: 1px solid #e5ecf5; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); }
@media (max-width: 680px) {
    .worker-portal-guide-list article, .worker-portal-guide-question { grid-template-columns: 1fr; }
    .worker-portal-guide-actions { flex-direction: column-reverse; }
    .worker-portal-guide-actions button { width: 100%; }
    .worker-portal-pending-guide { grid-template-columns: auto 1fr; align-items: start; }
    .worker-portal-pending-guide-action { grid-column: 1 / -1; width: 100%; box-sizing: border-box; }
    .worker-portal-guide-progress { grid-template-columns: 1fr; gap: 10px; }
    .worker-portal-guide-context { grid-template-columns: 1fr 1fr; }
    .worker-portal-guide-context > div { border-bottom: 1px solid #e7edf5; }
    .worker-portal-guide-support-grid { grid-template-columns: 1fr; }
    .worker-portal-guide-question-card { padding: 15px; }
    .worker-portal-guide-answer-options { grid-template-columns: 1fr 1fr; }
}

.worker-portal-assessment-modal { width: min(100%, 960px); }
.worker-portal-assessment-section { display: grid; gap: 14px; }
.worker-portal-assessment-section > h4 { margin: 0; color: #172b4d; font-size: 1.15rem; }
.worker-portal-assessment-options { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.worker-portal-assessment-options button { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 58px; padding: 10px 12px; border: 1px solid #d8e2ef; border-radius: 12px; background: #fff; color: #42536d; font: inherit; font-size: .94rem; cursor: pointer; }
.worker-portal-assessment-options button:hover, .worker-portal-assessment-options button.selected { border-color: #2563eb; background: #f3f7ff; color: #1d4ed8; box-shadow: inset 0 0 0 1px #2563eb; }
.worker-portal-assessment-options button > span { width: 16px; height: 16px; flex: 0 0 16px; border: 2px solid #b9c7da; border-radius: 999px; background: #fff; }
.worker-portal-assessment-options button.selected > span { border: 5px solid #2563eb; }
.worker-portal-assessment-options button strong { font-weight: 800; }
.worker-portal-assessment-binary-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) {
    .worker-portal-assessment-options { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
    .worker-portal-assessment-options { grid-template-columns: 1fr; }
    .worker-portal-assessment-options button { justify-content: flex-start; }
    .worker-portal-assessment-binary-options { grid-template-columns: 1fr 1fr; }
}

/* Entorno laboral · Resultados NOM-035 */
.results-screen {
    display: grid;
    gap: 1.35rem;
    color: #17243c;
}

.results-header h1 {
    margin: 0;
    color: #17243c;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
}

.results-header p {
    margin: .55rem 0 0;
    color: #74809a;
    font-size: 1.08rem;
}

.results-filter-bar {
    display: grid;
    grid-template-columns: minmax(150px, .6fr) minmax(240px, .9fr) minmax(360px, 1.7fr);
    gap: 1rem;
    padding: 1.15rem;
    border: 1px solid #dce5f1;
    border-radius: 20px;
    background: #fff;
}

.results-filter-bar label {
    display: grid;
    gap: .45rem;
    color: #52617b;
    font-weight: 800;
}

.results-filter-bar select {
    width: 100%;
    min-height: 52px;
    padding: 0 2.7rem 0 1rem;
    border: 1px solid #d3deed;
    border-radius: 14px;
    background: #fff;
    color: #17243c;
    font: inherit;
    font-weight: 750;
}

.results-tabs {
    display: flex;
    gap: 1.8rem;
    overflow-x: auto;
    border-bottom: 1px solid #dfe6f0;
}

.results-tabs button {
    padding: .4rem .15rem .9rem;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #63708a;
    font: inherit;
    font-weight: 800;
    white-space: nowrap;
}

.results-tabs button.active {
    border-color: #10b9b0;
    color: #2868e8;
}

.results-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.results-kpis article,
.results-panel {
    border: 1px solid #dce5f1;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(36, 53, 82, .045);
}

.results-kpis article {
    display: grid;
    gap: .25rem;
    padding: 1.2rem 1.3rem;
}

.results-kpis span,
.results-kpis small {
    color: #71809d;
    font-weight: 700;
}

.results-kpis strong {
    color: #17243c;
    font-size: 1.55rem;
}

.results-summary-grid,
.results-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 1rem;
}

.results-panel {
    padding: 1.35rem;
}

.results-panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.2rem;
}

.results-panel h2 {
    margin: 0;
    font-size: 1.2rem;
}

.results-panel-heading p,
.results-attention-panel > div p {
    margin: .35rem 0 0;
    color: #74809a;
}

.results-donut-layout {
    display: grid;
    grid-template-columns: minmax(190px, .85fr) minmax(220px, 1.15fr);
    align-items: center;
    gap: 1.6rem;
    min-height: 260px;
}

.results-donut {
    display: grid;
    place-items: center;
    width: 210px;
    aspect-ratio: 1;
    margin: auto;
    border-radius: 50%;
    position: relative;
}

.results-donut::after {
    content: "";
    position: absolute;
    inset: 25%;
    border-radius: 50%;
    background: #fff;
}

.results-donut span {
    z-index: 1;
    display: grid;
    text-align: center;
    color: #74809a;
    font-weight: 700;
}

.results-donut span strong {
    color: #17243c;
    font-size: 1.8rem;
}

.results-risk-legend {
    display: grid;
    gap: .75rem;
}

.results-risk-legend div {
    display: grid;
    grid-template-columns: 12px 1fr auto 28px;
    align-items: center;
    gap: .65rem;
}

.results-risk-legend i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.results-risk-legend small {
    color: #8a95aa;
    text-align: right;
}

.is-null { --risk-color: #6d5ce8; --risk-soft: #eeeafd; }
.is-low { --risk-color: #20985a; --risk-soft: #e6f7ee; }
.is-medium { --risk-color: #d88900; --risk-soft: #fff3db; }
.is-high { --risk-color: #e55b19; --risk-soft: #ffeadf; }
.is-very-high { --risk-color: #d93232; --risk-soft: #ffe8e8; }
.is-empty { --risk-color: #6f7b91; --risk-soft: #edf1f5; }

.results-risk-legend i,
.results-score-track span {
    background: var(--risk-color);
}

.results-attention-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.results-risk-badge {
    min-width: 180px;
    margin: 1.25rem 0 .9rem;
    padding: .85rem 1.3rem;
    border-radius: 18px;
    background: var(--risk-soft);
    color: var(--risk-color);
    font-size: 2rem;
}

.results-criterion {
    max-width: 520px;
    color: #52617b;
    line-height: 1.55;
}

.results-action-link {
    margin-top: .65rem;
    text-decoration: none;
}

.results-download-button,
.results-download-button:visited,
.results-download-button:hover,
.results-download-button span,
.results-download-button svg {
    color: #fff !important;
}

.results-download-button {
    text-decoration: none;
}

.results-score-list {
    display: grid;
}

.results-score-row {
    display: grid;
    grid-template-columns: minmax(220px, 1.2fr) minmax(220px, 1.5fr) 100px;
    align-items: center;
    gap: 1.2rem;
    padding: 1rem 0;
    border-top: 1px solid #edf1f6;
}

.results-score-row:first-child {
    border-top: 0;
}

.results-score-row > div:first-child {
    display: grid;
    gap: .25rem;
}

.results-score-row small {
    color: #7b87a0;
}

.results-score-track {
    height: 9px;
    overflow: hidden;
    border-radius: 99px;
    background: #edf1f5;
}

.results-score-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
}

.results-level {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 76px;
    padding: .35rem .7rem;
    border-radius: 99px;
    background: var(--risk-soft);
    color: var(--risk-color);
    font-weight: 850;
}

.results-report-sheet dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border: 1px solid #e2e8f1;
    border-radius: 16px;
    overflow: hidden;
}

.results-report-sheet dl div {
    padding: 1rem;
    border-bottom: 1px solid #e7edf5;
}

.results-report-sheet dl div:nth-child(odd) {
    border-right: 1px solid #e7edf5;
}

.results-report-sheet dt {
    color: #71809a;
    font-size: .85rem;
    font-weight: 800;
}

.results-report-sheet dd {
    margin: .35rem 0 0;
    color: #17243c;
    font-weight: 750;
    line-height: 1.45;
}

.results-table-wrap {
    overflow-x: auto;
    border: 1px solid #e0e7f1;
    border-radius: 16px;
}

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

.results-table th,
.results-table td {
    padding: 1rem 1.1rem;
    border-bottom: 1px solid #e8edf4;
    text-align: left;
    vertical-align: middle;
}

.results-table th {
    background: #f7f9fc;
    color: #64718a;
    font-size: .86rem;
}

.results-table tr:last-child td {
    border-bottom: 0;
}

.results-actions-column {
    width: 90px;
    text-align: center !important;
}

.results-empty,
.results-panel-empty {
    display: grid;
    gap: .4rem;
    place-items: center;
    min-height: 180px;
    padding: 2rem;
    border: 1px dashed #ccd7e7;
    border-radius: 18px;
    color: #74809a;
    text-align: center;
}

.results-privacy-note {
    margin: 1rem 0 0;
    padding: .9rem 1rem;
    border-radius: 14px;
    background: #eef5ff;
    color: #405d89;
    line-height: 1.5;
}

.results-questionnaire-modal {
    width: min(1100px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
}

.results-questionnaire-summary,
.results-gates {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.results-questionnaire-summary > span,
.results-gates > span {
    padding: .75rem 1rem;
    border: 1px solid #dce5f1;
    border-radius: 12px;
    background: #fff;
}

.results-answer-list {
    display: grid;
    gap: .75rem;
    margin-top: 1rem;
}

.results-answer-list article {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #dfe7f1;
    border-radius: 14px;
}

.results-answer-list article > span {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: linear-gradient(135deg, #2b70ed, #13b8ae);
    color: #fff;
    font-weight: 900;
}

.results-answer-list article div {
    display: grid;
    gap: .35rem;
}

.results-answer-list article small {
    color: #3370dd;
    font-weight: 850;
}

.results-answer-list article p {
    margin: .25rem 0 0;
    color: #167b67;
    font-weight: 850;
}

@media (max-width: 1000px) {
    .results-filter-bar,
    .results-kpis,
    .results-summary-grid,
    .results-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .results-filter-application {
        grid-column: 1 / -1;
    }
}

@media (max-width: 720px) {
    .results-filter-bar,
    .results-kpis,
    .results-summary-grid,
    .results-detail-grid,
    .results-donut-layout,
    .results-report-sheet dl {
        grid-template-columns: 1fr;
    }

    .results-score-row {
        grid-template-columns: 1fr;
        gap: .6rem;
    }

    .results-report-sheet dl div:nth-child(odd) {
        border-right: 0;
    }
}

.shift-pattern-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    justify-content: flex-end;
}

.shift-pattern-picker-field {
    position: relative;
}

.shift-pattern-picker {
    position: relative;
}

.shift-pattern-picker-button {
    align-items: center;
    background: #fff;
    border: 1px solid #d8e4f2;
    border-radius: 18px;
    color: #11203a;
    cursor: pointer;
    display: flex;
    gap: 0.9rem;
    justify-content: space-between;
    min-height: 4.1rem;
    padding: 0.8rem 1rem;
    text-align: left;
    width: 100%;
}

.shift-pattern-picker-button:hover,
.shift-pattern-picker-button[aria-expanded="True"],
.shift-pattern-picker-button[aria-expanded="true"] {
    border-color: #89cce4;
    box-shadow: 0 0 0 3px rgba(32, 169, 191, 0.12);
}

.shift-pattern-picker-button strong,
.shift-pattern-picker-option strong {
    color: #13213a;
    display: block;
    font-weight: 900;
}

.shift-pattern-picker-button small,
.shift-pattern-picker-option small {
    color: #667895;
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.35;
    margin-top: 0.18rem;
}

.shift-pattern-picker-caret {
    color: #6c7d98;
    flex: 0 0 auto;
    font-size: 1.25rem;
    line-height: 1;
}

.shift-pattern-picker-menu {
    background: #fff;
    border: 1px solid #d8e4f2;
    border-radius: 18px;
    box-shadow: 0 22px 48px rgba(17, 32, 58, 0.16);
    display: grid;
    gap: 0.45rem;
    left: 0;
    margin-top: 0.45rem;
    max-height: 22rem;
    overflow: auto;
    padding: 0.55rem;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 15;
}

.shift-pattern-picker-option {
    background: #fff;
    border: 1px solid transparent;
    border-radius: 14px;
    cursor: pointer;
    padding: 0.8rem;
    text-align: left;
}

.shift-pattern-picker-option:hover,
.shift-pattern-picker-option.is-selected {
    background: #f0fbfc;
    border-color: #b7e6ef;
}

.shift-pattern-picker-group {
    color: #6d7b92;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    padding: 0.35rem 0.55rem 0.1rem;
    text-transform: uppercase;
}

.shift-pattern-picker-empty {
    color: #72809a;
    font-weight: 750;
    padding: 0.8rem;
}

.shift-pattern-manager-modal {
    width: min(100%, 980px);
}

.shift-pattern-manager-body {
    display: grid;
    gap: 1rem;
}

.shift-pattern-manager-actions {
    display: flex;
    justify-content: flex-end;
}

.shift-pattern-manager-list {
    display: grid;
    gap: 0.85rem;
}

.shift-pattern-manager-card {
    background: #fff;
    border: 1px solid #dfe7f2;
    border-radius: 18px;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.05);
    display: grid;
    gap: 0.85rem;
    padding: 1rem;
}

.shift-pattern-manager-card.is-muted {
    background: #f8fafc;
}

.shift-pattern-manager-card-main,
.shift-pattern-manager-card-actions {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.shift-pattern-manager-card-main strong {
    color: #101828;
    display: block;
    font-weight: 900;
}

.shift-pattern-manager-card-main small,
.shift-pattern-segment-summary {
    color: #7180a0;
    display: block;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.35;
    margin-top: 0.22rem;
}

.shift-pattern-status-pill {
    border-radius: 999px;
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 900;
    padding: 0.38rem 0.7rem;
}

.shift-pattern-status-pill.is-active {
    background: #e8f8ef;
    color: #087a43;
}

.shift-pattern-status-pill.is-inactive {
    background: #eef2f7;
    color: #69778e;
}

.shift-pattern-empty-state {
    background: #f8fbff;
    border: 1px dashed #cdd9ea;
    border-radius: 18px;
    color: #6b7890;
    display: grid;
    gap: 0.25rem;
    padding: 1.1rem;
}

.shift-pattern-empty-state strong {
    color: #13213a;
    font-weight: 900;
}

@media (max-width: 760px) {
    .shift-pattern-toolbar,
    .shift-pattern-manager-card-actions,
    .shift-pattern-manager-card-main {
        align-items: stretch;
        flex-direction: column;
    }

    .shift-pattern-toolbar > button,
    .shift-pattern-manager-card-actions > button {
        width: 100%;
    }
}

/* Compact rotation pattern manager rows */
.shift-pattern-manager-list {
    gap: 0.55rem;
}

.shift-pattern-manager-card {
    align-items: center;
    box-shadow: none;
    display: grid;
    gap: 0.85rem;
    grid-template-columns: minmax(12rem, 1.1fr) minmax(16rem, 1.5fr) auto auto;
    min-height: 4.35rem;
    padding: 0.8rem 1rem;
}

.shift-pattern-manager-card-main {
    align-items: center;
    display: grid;
    gap: 0.35rem;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
}

.shift-pattern-manager-card-main small {
    margin-top: 0.05rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shift-pattern-segment-summary {
    margin-top: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shift-pattern-status-pill {
    justify-self: end;
    white-space: nowrap;
}

.shift-pattern-manager-card-actions {
    justify-content: flex-end;
    white-space: nowrap;
}

.shift-pattern-manager-card-actions .school-secondary-button {
    min-height: 2.75rem;
    padding-inline: 1rem;
}

@media (max-width: 920px) {
    .shift-pattern-manager-card {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .shift-pattern-segment-summary {
        grid-column: 1 / -1;
    }

    .shift-pattern-manager-card-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .shift-pattern-manager-card {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .shift-pattern-status-pill {
        justify-self: start;
    }
}

.results-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.results-header > .school-secondary-button {
    flex: 0 0 auto;
    text-decoration: none;
}

.results-questionnaire-modal .app-modal-header {
    padding: 1.35rem 1.5rem;
}

.results-questionnaire-modal .app-modal-title {
    display: grid;
    gap: .35rem;
}

.results-questionnaire-modal .app-modal-title h3 {
    font-size: 1.35rem;
}

.results-questionnaire-modal .app-modal-title p {
    margin: 0;
    font-size: .95rem;
}

.results-questionnaire-modal .app-modal-body {
    max-height: calc(100vh - 220px);
    overflow-y: auto;
    padding: 1.35rem 1.5rem;
}

.results-questionnaire-modal .app-modal-footer {
    padding: 1rem 1.5rem;
}

.results-document-paper {
    display: grid;
    gap: 0;
}

.results-document-highlight {
    display: grid;
    gap: .45rem;
    margin-bottom: 1.15rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid #dce5f1;
    border-left: 5px solid #2868e8;
    border-radius: 14px;
    background: #f7faff;
}

.results-document-highlight span {
    color: #687790;
    font-size: .86rem;
    font-weight: 800;
}

.results-document-highlight strong {
    color: #17243c;
    font-size: 1.45rem;
}

.results-document-highlight p {
    margin: 0;
    color: #52617b;
    line-height: 1.5;
}

.results-document-paper table {
    page-break-inside: avoid;
}

@media (max-width: 720px) {
    .results-header {
        align-items: stretch;
        flex-direction: column;
    }
}

@media print {
    .results-document-paper .case-document-section,
    .results-document-paper table,
    .results-document-highlight {
        break-inside: avoid;
    }
}

.action-plan-search > div {
    height: 46px;
    overflow: hidden;
}

.action-plan-search > div > svg {
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
}

.action-plan-search > div > input {
    min-width: 0;
    height: 40px;
    flex: 1 1 auto;
}
.action-plan-card-date > svg,
.action-plan-tags svg {
    width: 14px !important;
    min-width: 14px !important;
    max-width: 14px !important;
    height: 14px !important;
    flex: 0 0 14px !important;
}

.action-plan-evidence > svg {
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
}
.worker-portal-pending-communication {
    border-color: #b9d8ff;
    background: linear-gradient(135deg, #f3f8ff, #fff);
}
.worker-portal-pending-communication .worker-portal-pending-guide-icon {
    border-color: #b9d8ff;
    color: #2563eb;
}
.worker-portal-communication-context {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #dfe7f2;
    border-radius: 14px;
    background: #fff;
}
.worker-portal-communication-context > div {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 14px 16px;
    border-right: 1px solid #e7edf5;
}
.worker-portal-communication-context > div:last-child { border-right: 0; }
.worker-portal-communication-context span {
    color: #71809a;
    font-size: .78rem;
    font-weight: 800;
}
.worker-portal-communication-context strong { color: #172b4d; }
.worker-portal-communication-content {
    margin-top: 18px;
    padding: 22px;
    border: 1px solid #dfe7f2;
    border-radius: 16px;
    background: #fff;
    color: #263957;
    font-size: 1rem;
    line-height: 1.75;
    white-space: pre-wrap;
}
.worker-portal-communication-material {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid #dfe7f2;
    border-radius: 14px;
    background: #f9fbfe;
}
.worker-portal-communication-material a { color: #2563eb; font-weight: 900; }
.worker-portal-communication-note {
    margin-top: 14px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #eef4ff;
    color: #354d88;
    line-height: 1.5;
}
@media (max-width: 680px) {
    .worker-portal-communication-context { grid-template-columns: 1fr; }
    .worker-portal-communication-context > div { border-right: 0; border-bottom: 1px solid #e7edf5; }
    .worker-portal-communication-context > div:last-child { border-bottom: 0; }
    .worker-portal-communication-material { align-items: flex-start; flex-direction: column; }
}
/* Canonical title for authenticated portal sections. */
:where(
    .dashboard-header .dashboard-title,
    .school-page-header h1,
    .school-hero.compact h1,
    .company-executive-header h1,
    .wellbeing-hero h1,
    .assessment-header h1,
    .results-header h1,
    .action-plan-header h1,
    .comms-header h1,
    .cases-page-header h1,
    .gov-header h1,
    .dossier-header h1,
    .policy-detail-header h1
) {
    color: rgb(13, 27, 42) !important;
    font-family: "Poppins", "Segoe UI Variable", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
    font-size: 32px !important;
    font-style: normal !important;
    font-weight: 800 !important;
    letter-spacing: normal !important;
    line-height: 32px !important;
    text-transform: none !important;
}
.company-attendance-integrity-hash {
    overflow-wrap: anywhere;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.78rem;
}
