@charset "UTF-8";

:root {
    --blue: #0759a5;
    --blue-strong: #064f95;
    --blue-deep: #073b7a;
    --navy: #073b7a;
    --ink: #12223b;
    --muted: #5e6b7f;
    --line: #dce5ef;
    --surface: #ffffff;
    --canvas: #f5f7fb;
    --green: #14a45b;
    --orange: #d06e0d;
    --aqua: #00a5a8;
    --soft-blue: #edf5ff;
    --shadow: 0 22px 70px rgba(18, 53, 94, .14);
}

.premium-nav-badge {
    margin-left: auto;
    padding: 3px 6px;
    border: 1px solid rgba(147, 197, 253, .42);
    border-radius: 999px;
    color: #dbeafe !important;
    background: rgba(59, 130, 246, .2);
    font-size: 8px !important;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .04em;
}

.premium-nav-badge.is-expired {
    border-color: rgba(203, 213, 225, .3);
    color: #cbd5e1 !important;
    background: rgba(100, 116, 139, .2);
}

.premium-nav-badge.is-ai-trial {
    border-color: rgba(253, 230, 138, .48);
    color: #fef3c7 !important;
    background: rgba(245, 158, 11, .24);
}

.premium-trial-banner {
    min-height: 66px;
    margin: -4px 0 16px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: #eff6ff;
    color: #17365f;
}

.premium-trial-banner > div {
    display: grid;
    gap: 4px;
}

.premium-trial-banner strong {
    color: #075fb7;
    font-size: 13px;
}

.premium-trial-banner span {
    color: #5d718d;
    font-size: 12px;
}

.premium-trial-banner.is-expired {
    border-color: #d8e0ea;
    background: #f8fafc;
}

.premium-trial-banner.is-expired strong {
    color: #52657e;
}

.premium-trial-banner.is-ai-trial {
    border-color: #f4d18a;
    background: #fffbeb;
}

.premium-trial-banner.is-ai-trial strong {
    color: #985b05;
}

.premium-trial-dialog {
    width: min(780px, calc(100vw - 30px));
    max-height: calc(100vh - 30px);
    padding: 0;
    overflow: hidden;
    color: #17314f;
    border: 0;
    border-radius: 20px;
    background: transparent;
    box-shadow: 0 32px 90px rgba(8, 34, 64, .32);
}

.premium-trial-dialog::backdrop {
    background: rgba(8, 27, 50, .62);
    backdrop-filter: blur(3px);
}

.premium-trial-dialog__panel {
    max-height: calc(100vh - 30px);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    border: 1px solid #cfe0f1;
    border-radius: 20px;
    background: #fff;
}

.premium-trial-dialog__header {
    padding: 21px 23px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 40px;
    align-items: start;
    gap: 14px;
    border-bottom: 1px solid #dbe7f2;
    background: linear-gradient(135deg, #eef7ff, #fff 72%);
}

.premium-trial-dialog__icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    color: #fff;
    border-radius: 14px;
    background: linear-gradient(135deg, #086bd0, #0754a4);
    box-shadow: 0 10px 22px rgba(8, 107, 208, .22);
    font-size: 20px;
}

.premium-trial-dialog__header .eyebrow {
    color: #0867c8;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .1em;
}

.premium-trial-dialog__header h2 {
    margin: 3px 0 5px;
    color: #152d49;
    font-size: 24px;
    line-height: 1.15;
}

.premium-trial-dialog__header p,
.premium-trial-dialog__contact p {
    margin: 0;
    color: #647990;
    font-size: 12px;
    line-height: 1.5;
}

.premium-trial-dialog__close {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    color: #61758c;
    border: 1px solid #d5e2ee;
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
}

.premium-trial-dialog__close:hover {
    color: #075fb7;
    background: #eef7ff;
}

.premium-trial-dialog__body {
    padding: 20px 23px;
    display: grid;
    gap: 16px;
    overflow: auto;
}

.premium-trial-dialog__body h3 {
    margin: 0 0 -7px;
    color: #17314f;
    font-size: 14px;
}

.premium-trial-dialog__status {
    padding: 13px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid #b8e6d1;
    border-radius: 12px;
    background: #effaf5;
}

.premium-trial-dialog__status > div {
    display: grid;
    gap: 3px;
}

.premium-trial-dialog__status span {
    color: #16815c;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.premium-trial-dialog__status strong {
    color: #146947;
    font-size: 13px;
}

.premium-trial-dialog__status p {
    margin: 0;
    color: #56776b;
    font-size: 11px;
    text-align: right;
}

.premium-trial-dialog__status.is-expired {
    border-color: #d5dfe9;
    background: #f7f9fb;
}

.premium-trial-dialog__status.is-expired span,
.premium-trial-dialog__status.is-expired strong {
    color: #52657e;
}

.premium-trial-dialog__limits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.premium-trial-dialog__limits article {
    min-width: 0;
    padding: 12px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    border: 1px solid #d8e5f1;
    border-radius: 12px;
    background: #f8fbfe;
}

.premium-trial-dialog__limits article > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: #0867c8;
    border-radius: 11px;
    background: #e6f2ff;
    font-size: 13px;
    font-weight: 950;
}

.premium-trial-dialog__limits strong,
.premium-trial-dialog__limits small {
    display: block;
}

.premium-trial-dialog__limits strong {
    color: #17314f;
    font-size: 13px;
}

.premium-trial-dialog__limits small {
    margin-top: 3px;
    color: #697e94;
    font-size: 10px;
    line-height: 1.4;
}

.premium-trial-dialog__rules {
    padding: 14px 16px;
    border: 1px solid #dbe6f0;
    border-radius: 12px;
    background: #fff;
}

.premium-trial-dialog__rules h3 {
    margin: 0 0 8px;
}

.premium-trial-dialog__rules ul {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 5px;
    color: #5e738a;
    font-size: 11px;
    line-height: 1.45;
}

.premium-trial-dialog__contact {
    padding: 14px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border: 1px solid #bbd8f5;
    border-radius: 13px;
    background: #eff7ff;
}

.premium-trial-dialog__contact > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: #fff;
    border-radius: 12px;
    background: #0968c8;
    font-size: 20px;
    font-weight: 950;
}

.premium-trial-dialog__contact strong {
    display: block;
    margin-bottom: 3px;
    color: #134f88;
    font-size: 13px;
}

.premium-trial-dialog__contact .btn {
    white-space: nowrap;
}

.premium-trial-dialog__footer {
    padding: 13px 23px;
    display: flex;
    justify-content: flex-end;
    border-top: 1px solid #dce7f1;
    background: #f8fbfe;
}

.fn-admin-trial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 18px;
}

.fn-admin-trial-card {
    min-width: 0;
}

.fn-admin-trial-card > header {
    align-items: flex-start;
}

.fn-admin-trial-usage {
    margin: 8px 0 12px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fn-admin-trial-usage span {
    padding: 10px;
    display: grid;
    gap: 2px;
    border: 1px solid #dbe7f4;
    border-radius: 10px;
    color: #60728b;
    background: #f8fbff;
    font-size: 11px;
}

.fn-admin-trial-usage strong {
    color: #17365f;
    font-size: 15px;
}

@media (max-width: 720px) {
    .premium-trial-banner {
        align-items: stretch;
        flex-direction: column;
    }

    .premium-trial-banner .btn {
        width: 100%;
    }

    .fn-admin-trial-grid,
    .fn-admin-trial-usage {
        grid-template-columns: 1fr;
    }

    .premium-trial-dialog {
        width: calc(100vw - 16px);
        max-height: calc(100vh - 16px);
    }

    .premium-trial-dialog__panel {
        max-height: calc(100vh - 16px);
    }

    .premium-trial-dialog__header {
        padding: 17px;
        grid-template-columns: 42px minmax(0, 1fr) 36px;
        gap: 10px;
    }

    .premium-trial-dialog__icon {
        width: 42px;
        height: 42px;
    }

    .premium-trial-dialog__header h2 {
        font-size: 19px;
    }

    .premium-trial-dialog__body {
        padding: 15px 17px;
    }

    .premium-trial-dialog__status {
        align-items: stretch;
        flex-direction: column;
        gap: 7px;
    }

    .premium-trial-dialog__status p {
        text-align: left;
    }

    .premium-trial-dialog__limits {
        grid-template-columns: 1fr;
    }

    .premium-trial-dialog__contact {
        align-items: stretch;
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .premium-trial-dialog__contact .btn {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* Cuadrante de empresa */
.company-schedule-area .private-content,
.company-schedule-page {
    overflow-x: hidden;
}

.company-schedule-page .schedule-header {
    margin-bottom: 18px;
}

.company-schedule-page .private-page-header__badges,
.schedule-range,
.schedule-view-toggle,
.schedule-actions-panel {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.company-schedule-page .private-page-header__badges {
    margin-top: 9px;
}

.schedule-toolbar {
    display: grid;
    grid-template-columns: minmax(420px, 1fr) auto auto;
    gap: 14px;
    align-items: end;
    background: #fff;
    border: 1px solid #d6e4f4;
    border-radius: 18px;
    padding: 14px;
    margin: 16px 0;
}

.schedule-filters {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(190px, 260px) auto;
    gap: 10px;
    align-items: end;
}

.schedule-filters label,
.schedule-modal-form label {
    display: grid;
    gap: 6px;
    color: #65758b;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.schedule-filters input,
.schedule-filters select,
.schedule-modal input,
.schedule-modal select,
.schedule-modal textarea {
    width: 100%;
    min-height: 42px;
    border: 1px solid #c7d9ef;
    border-radius: 12px;
    padding: 0 12px;
    color: #0d2645;
    font-weight: 700;
    background: #fff;
    box-sizing: border-box;
}

.schedule-modal textarea {
    min-height: 86px;
    padding-top: 10px;
    resize: vertical;
}

.schedule-actions-panel {
    justify-content: flex-start;
    background: #fff;
    border: 1px solid #d6e4f4;
    border-radius: 16px;
    padding: 12px;
    margin-bottom: 16px;
}

.schedule-actions-panel [data-schedule-message],
.schedule-modal [data-cell-message] {
    color: #52708f;
    font-weight: 800;
}

.schedule-actions-panel [data-schedule-message].is-error,
.schedule-modal [data-cell-message].is-error {
    color: #c2410c;
}

.schedule-grid-card {
    background: #fff;
    border: 1px solid #d6e4f4;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 50px rgba(10, 38, 70, .08);
}

.schedule-grid-scroll {
    overflow-x: auto;
    overflow-y: visible;
    max-height: none;
}

.schedule-grid {
    width: 100%;
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.schedule-grid th,
.schedule-grid td {
    border-bottom: 1px solid #dfe9f5;
    border-right: 1px solid #dfe9f5;
    vertical-align: top;
}

.schedule-grid thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #f6f9fd;
    color: #102b4c;
    padding: 13px 10px;
    text-align: center;
}

.schedule-grid thead th span,
.schedule-grid thead th small {
    display: block;
}

.schedule-grid thead th small {
    color: #71839a;
    margin-top: 3px;
}

.schedule-grid .schedule-worker-col {
    position: sticky;
    left: 0;
    z-index: 4;
    width: 260px;
    background: #fff;
    text-align: left;
}

.schedule-grid thead .schedule-worker-col {
    background: #f6f9fd;
}

.schedule-worker {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    min-height: 68px;
}

.schedule-worker__avatar {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    overflow: hidden;
    background: #eaf4ff;
    color: #0b6fd3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c7def7;
    flex: 0 0 auto;
}

.schedule-worker__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.schedule-worker__link,
.schedule-worker small {
    display: block;
}

.schedule-worker__link {
    color: #102b4c;
    font-weight: 950;
    text-decoration: none;
}

.schedule-worker__link:hover,
.schedule-worker__link:focus-visible {
    color: #0b6fd3;
    text-decoration: underline;
}

.schedule-worker small {
    color: #65758b;
    margin-top: 2px;
}

.schedule-cell {
    background: #fbfdff;
    min-height: 76px;
}

.schedule-cell.is-empty {
    background: #f8fbff;
}

.schedule-cell.is-published {
    background: #f1fbf5;
}

.schedule-cell-action {
    width: 100%;
    min-height: 76px;
    border: 0;
    background: transparent;
    padding: 8px;
    cursor: pointer;
    text-align: left;
}

.schedule-cell-action:hover {
    background: rgba(11, 111, 211, .06);
}

.schedule-cell-content {
    display: grid;
    gap: 5px;
}

.schedule-turn-pill {
    display: grid;
    gap: 2px;
    border-radius: 12px;
    padding: 7px 8px;
    background: #eef6ff;
    border: 1px solid #cfe0f3;
    border-left: 4px solid var(--turno-color, #0b6fd3);
    color: #0d2645;
}

.schedule-turn-pill strong {
    font-size: .82rem;
    line-height: 1.1;
}

.schedule-turn-pill small {
    color: #4d6681;
    font-weight: 800;
}

.schedule-turn-pill.is-continuation {
    border-style: dashed;
}

.schedule-empty-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border-radius: 18px;
    background: #eaf1f7;
    color: #8aa0b6;
    font-weight: 900;
}

.schedule-cell-note,
.schedule-cell-published {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 3px 7px;
    font-size: .68rem;
    font-weight: 900;
    background: #edf4fb;
    color: #486480;
}

.schedule-cell-published {
    background: #dff8e9;
    color: #047857;
}

.schedule-modal[hidden] {
    display: none;
}

.schedule-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
}

.schedule-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 24, 43, .52);
}

.schedule-modal__panel {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(720px, calc(100vw - 32px));
    max-height: calc(100vh - 42px);
    display: grid;
    grid-template-rows: auto 1fr auto;
    background: #fff;
    border-radius: 22px;
    box-shadow: 0 24px 90px rgba(7, 23, 45, .32);
    overflow: hidden;
}

.schedule-modal__panel header,
.schedule-modal__panel footer {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px;
    border-bottom: 1px solid #e1ebf6;
}

.schedule-modal__panel header {
    justify-content: space-between;
}

.schedule-modal__panel footer {
    justify-content: flex-end;
    border-top: 1px solid #e1ebf6;
    border-bottom: 0;
}

.schedule-modal__body {
    display: grid;
    gap: 14px;
    padding: 18px;
    overflow: auto;
}

.schedule-modal__body h3 {
    margin: 0;
    color: #102b4c;
}

.schedule-modal-guide {
    border: 1px solid #cfe0f1;
    border-radius: 16px;
    background: #f3f8fe;
    padding: 12px 14px;
    color: #29445f;
}

.schedule-modal-guide strong {
    display: block;
    margin-bottom: 6px;
    color: #0b5fb2;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.schedule-modal-guide ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 18px;
    margin: 0;
    padding-left: 18px;
    font-size: 12px;
    line-height: 1.35;
}

.schedule-modal-step {
    border: 1px solid #d6e4f4;
    border-radius: 16px;
    background: #fff;
    padding: 12px;
}

.schedule-modal-step__title {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
}

.schedule-modal-step__title > span {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #eaf4ff;
    color: #096bd0;
    font-size: 12px;
    font-weight: 950;
}

.schedule-modal-step__title p {
    margin: 3px 0 0;
    color: #65758b;
    font-size: 12px;
    line-height: 1.35;
}

.schedule-modal-list {
    display: grid;
    gap: 8px;
}

.schedule-modal-empty,
.schedule-modal-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    border: 1px solid #d6e4f4;
    border-radius: 14px;
    padding: 10px;
}

.schedule-modal-row strong {
    flex: 0 0 auto;
}

.schedule-modal-row small {
    flex: 1 1 auto;
    color: #65758b;
    font-weight: 800;
}

.schedule-turn-dot {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: var(--turno-color, #0b6fd3);
}

.schedule-inline-fields,
.schedule-two-fields {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: end;
}

.schedule-two-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.schedule-check {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.schedule-check input {
    width: auto;
    min-height: 0;
}

.schedule-check--highlight {
    align-items: flex-start;
    border: 1px solid #cfe0f1;
    border-radius: 14px;
    background: #f7fbff;
    padding: 10px 12px;
}

.schedule-check--highlight span {
    display: grid;
    gap: 2px;
}

.schedule-check--highlight small {
    color: #65758b;
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 1100px) {
    .schedule-toolbar {
        grid-template-columns: 1fr;
    }

    .schedule-filters {
        grid-template-columns: 1fr;
    }

    .company-schedule-page .schedule-header {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 640px) {
    .schedule-range {
        width: 100%;
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr) 42px;
        gap: 8px;
    }

    .schedule-range > .btn-icon:first-child {
        grid-column: 1;
        grid-row: 1;
    }

    .schedule-range > strong {
        min-width: 0;
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        text-align: center;
        line-height: 1.3;
    }

    .schedule-range > .btn-icon:last-child {
        grid-column: 3;
        grid-row: 1;
    }

    .schedule-range > .btn-secondary {
        width: 100%;
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .schedule-view-toggle {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .schedule-view-toggle .btn {
        width: 100%;
    }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; color: var(--ink); font-family: Aptos, "Segoe UI", Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
.public-body { min-width: 320px; overflow-x: hidden; background: #fff; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 100; padding: 10px 15px; color: #fff; border-radius: 7px; background: var(--blue-deep); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.public-header { position: sticky; top: 0; z-index: 50; min-height: 86px; padding: 8px max(24px, calc((100vw - 1320px) / 2)); display: flex; align-items: center; gap: 34px; border-bottom: 1px solid rgba(214,225,238,.86); background: rgba(255,255,255,.94); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; line-height: 0; white-space: nowrap; }
.brand-logo { width: 170px; height: auto; display: block; }
.brand-symbol { display: none; }
.public-nav { margin: 0 auto; display: flex; align-items: center; gap: clamp(22px, 2.3vw, 40px); color: #34445a; font-size: 14px; font-weight: 650; }
.public-nav a, .link-access { padding: 12px 1px; transition: color .2s ease; }
.public-nav a:hover, .public-nav a:focus-visible, .link-access:hover, .link-access:focus-visible { color: var(--blue); }
.public-actions { display: flex; align-items: center; gap: 22px; color: var(--blue-deep); font-size: 14px; font-weight: 700; white-space: nowrap; }
.public-menu-toggle,.public-mobile-menu { display: none; }
.public-menu-toggle { width: 46px; height: 46px; padding: 0; place-items: center; align-content: center; gap: 5px; cursor: pointer; border: 1px solid #cddbea; border-radius: 11px; background: #f6faff; }
.public-menu-toggle > span { width: 21px; height: 2px; display: block; border-radius: 2px; background: var(--blue-deep); transition: transform .2s ease,opacity .2s ease; }
.public-menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.public-menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
.public-menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.public-body.public-menu-open { overflow: hidden; }
.public-mobile-menu { position: fixed; inset: 86px 0 0; z-index: 49; }
.public-mobile-menu[hidden] { display: none; }
.public-mobile-menu__backdrop { position: absolute; inset: 0; cursor: pointer; border: 0; background: rgba(4,26,50,.58); backdrop-filter: blur(5px); }
.public-mobile-menu__panel { box-sizing: border-box; width: min(440px,calc(100% - 32px)); max-height: calc(100vh - 112px); margin: 14px 16px 0 auto; padding: 18px; position: relative; overflow: auto; border: 1px solid #d4e2ef; border-radius: 20px; background: #fff; box-shadow: 0 28px 80px rgba(4,35,68,.28); }
.public-mobile-menu__panel nav { display: grid; gap: 4px; }
.public-mobile-menu__panel nav a { min-height: 51px; padding: 0 13px; display: flex; align-items: center; gap: 13px; color: #173553; border-radius: 10px; font-size: 16px; font-weight: 750; transition: color .18s ease,background .18s ease,transform .18s ease; }
.public-mobile-menu__panel nav a:hover,.public-mobile-menu__panel nav a:focus-visible { color: var(--blue); background: #edf6ff; transform: translateX(3px); }
.public-mobile-menu__panel nav a > span { width: 27px; height: 27px; display: grid; place-items: center; color: #0a69c7; border-radius: 8px; background: #e5f2ff; font-size: 10px; font-weight: 850; }
.public-mobile-menu__actions { margin-top: 15px; padding-top: 17px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; border-top: 1px solid #e0e9f2; }
.public-mobile-menu__actions .button { min-height: 49px; padding: 0 15px; text-align: center; font-size: 13px; }
.button { min-height: 54px; padding: 0 27px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--blue); border-radius: 9px; font-weight: 750; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(6,72,180,.18); }
.button--small { min-height: 44px; padding: 0 20px; }
.button--primary { color: #fff; background: linear-gradient(135deg, #0870e6, #0648b4); box-shadow: 0 8px 20px rgba(6,72,180,.16); }
.button--secondary { color: var(--blue-deep); border-color: #b8c8dc; background: rgba(255,255,255,.85); }
.button--light { color: var(--blue-deep); border-color: #fff; background: #fff; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: var(--blue); font-weight: 750; }
.text-link span { transition: transform .2s ease; }.text-link:hover span { transform: translateX(4px); }

.hero { min-height: 720px; padding: clamp(60px, 7vw, 104px) max(24px, calc((100vw - 1320px) / 2)) 78px; display: grid; grid-template-columns: minmax(430px, .92fr) minmax(590px, 1.08fr); align-items: center; gap: clamp(50px, 6vw, 96px); background: radial-gradient(circle at 82% 30%, rgba(170,219,255,.43), transparent 28%), radial-gradient(circle at 62% 80%, rgba(215,242,236,.7), transparent 27%), linear-gradient(180deg, #fbfdff, #fff); }
.hero-copy { position: relative; z-index: 2; max-width: 650px; }
.eyebrow { margin: 0 0 17px; color: var(--blue); font-size: 12px; font-weight: 850; letter-spacing: 1.8px; }
.hero .eyebrow { display: flex; align-items: center; gap: 10px; }.hero .eyebrow > span { width: 25px; height: 2px; background: var(--green); }
.hero h1 { margin: 0; max-width: 650px; color: var(--navy); font-size: clamp(48px, 4.5vw, 72px); line-height: 1.04; letter-spacing: -3.4px; }
.hero h1 span { color: var(--blue); }
.hero-lead { max-width: 610px; margin: 28px 0 32px; color: #506078; font-size: clamp(19px, 1.55vw, 23px); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.trust-list { margin: 34px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 15px 24px; color: #43536a; list-style: none; font-size: 13px; font-weight: 600; }
.trust-list li { display: flex; align-items: center; gap: 8px; }
.trust-list span { width: 18px; height: 18px; position: relative; display: inline-block; border-radius: 50%; background: #e1f6ec; }
.trust-list span::after { content: ""; position: absolute; left: 5px; top: 3px; width: 5px; height: 8px; border: solid var(--green); border-width: 0 2px 2px 0; transform: rotate(45deg); }

.product-stage { position: relative; min-height: 500px; display: flex; align-items: center; }
.product-glow { position: absolute; inset: 7% -10% 0 5%; border-radius: 50%; background: radial-gradient(circle, rgba(99,177,255,.24), transparent 66%); filter: blur(8px); }
.product-window { position: relative; z-index: 2; width: calc(100% - 50px); min-height: 420px; overflow: hidden; border: 1px solid #c8d6e6; border-radius: 15px; background: #fff; box-shadow: var(--shadow); }
.window-top { height: 42px; padding: 0 14px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #77859a; border-bottom: 1px solid #e8edf3; font-size: 10px; }
.window-top > div { display: flex; gap: 6px; }.window-top i { width: 7px; height: 7px; border-radius: 50%; background: #cad3df; }.window-top i:first-child { background: #ff8a78; }.window-top i:nth-child(2) { background: #f7c75e; }.window-top i:last-child { background: #65d293; }.window-top small { justify-self: end; }
.window-body { min-height: 378px; display: grid; grid-template-columns: 66px 1fr; }
.preview-sidebar { padding: 17px 12px; display: flex; flex-direction: column; align-items: center; gap: 17px; background: linear-gradient(180deg, #073f7e, #062d5c); }
.preview-sidebar > i { width: 25px; height: 5px; border-radius: 5px; background: rgba(226,238,255,.45); }.preview-sidebar > i.selected { height: 25px; margin-top: 6px; border-radius: 7px; background: #2d83e7; }
.preview-logo { width: 31px; height: 31px; display: block; object-fit: cover; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; background: #fff; }
.preview-content { padding: 25px 24px; background: #f5f8fc; }
.preview-heading { display: flex; justify-content: space-between; align-items: center; }.preview-heading div { display: flex; flex-direction: column; gap: 3px; }.preview-heading small { color: #7a8799; font-size: 9px; }.preview-heading strong { font-size: 19px; }.preview-heading > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--blue); border: 1px solid #d5e1ee; border-radius: 9px; background: #fff; font-size: 8px; font-weight: 800; }
.preview-kpis { margin: 19px 0 14px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }.preview-kpis div { position: relative; min-height: 79px; padding: 13px 11px 10px 30px; display: flex; flex-direction: column; border: 1px solid #e0e8f1; border-radius: 8px; background: #fff; }.preview-kpis b { font-size: 22px; line-height: 1; }.preview-kpis small { margin-top: 7px; color: #7a8799; font-size: 8px; }.kpi-dot { position: absolute; top: 15px; left: 12px; width: 9px; height: 9px; border-radius: 50%; }.kpi-dot--blue { background: var(--blue); }.kpi-dot--green { background: var(--green); }.kpi-dot--orange { background: var(--orange); }
.preview-panels { display: grid; grid-template-columns: 1.55fr .68fr; gap: 11px; }.mini-chart, .mini-status { min-height: 190px; padding: 13px; border: 1px solid #e0e8f1; border-radius: 8px; background: #fff; font-size: 9px; }.mini-chart > div:first-child { display: flex; flex-direction: column; gap: 3px; }.mini-chart small { color: #8995a7; }.chart-bars { height: 105px; margin-top: 15px; padding: 0 5px; display: flex; align-items: end; gap: 8px; border-bottom: 1px solid #dbe4ef; background: repeating-linear-gradient(to bottom, transparent 0 25px, #edf2f7 26px); }.chart-bars i { flex: 1; min-width: 7px; border-radius: 3px 3px 0 0; background: linear-gradient(#2988ef, #0755c9); }.chart-bars i:nth-child(1) { height: 42%; }.chart-bars i:nth-child(2) { height: 64%; }.chart-bars i:nth-child(3) { height: 56%; }.chart-bars i:nth-child(4) { height: 78%; }.chart-bars i:nth-child(5) { height: 48%; }.chart-bars i:nth-child(6) { height: 72%; }.chart-bars i:nth-child(7) { height: 86%; }.chart-days { padding: 5px 5px 0; display: flex; justify-content: space-between; color: #94a0af; font-size: 7px; }
.mini-status { display: flex; flex-direction: column; align-items: center; gap: 7px; }.mini-status > strong { align-self: flex-start; }.donut { width: 84px; height: 84px; position: relative; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) 0 92%, #e1e7ee 92%); }.donut::after { content: ""; position: absolute; inset: 18px; border-radius: 50%; background: #fff; }.donut b { position: relative; z-index: 1; font-size: 14px; }.mini-status > small { align-self: flex-start; color: #647287; font-size: 7px; }.mini-status > small i { width: 6px; height: 6px; margin-right: 4px; display: inline-block; border-radius: 50%; background: var(--green); }.mini-status > small:last-child i { background: #dfe6ed; }
.phone-preview { position: absolute; z-index: 4; right: 0; bottom: -18px; width: 174px; min-height: 353px; padding: 17px 13px 13px; display: flex; flex-direction: column; align-items: center; border: 7px solid #132239; border-radius: 30px; background: linear-gradient(180deg, #f4f9ff, #fff 62%); box-shadow: 0 24px 55px rgba(9,33,66,.26); }.phone-speaker { width: 43px; height: 5px; margin: -11px 0 12px; border-radius: 5px; background: #25354a; }.phone-brand { height: 34px; display: flex; align-items: center; justify-content: center; }.phone-brand img { width: 82px; height: auto; display: block; }.phone-preview > small { margin-top: 10px; color: #7b8798; font-size: 8px; }.phone-preview > strong { margin: 6px 0 10px; color: var(--navy); font-size: 32px; }.phone-status { width: 100%; padding: 11px; display: flex; align-items: center; gap: 9px; border-radius: 9px; background: #e7f8f0; font-size: 8px; }.phone-status > i { width: 24px; height: 24px; flex: 0 0 24px; border: 6px solid var(--green); border-radius: 50%; }.phone-status span { font-weight: 700; }.phone-status small { color: #6d7a8d; font-size: 7px; font-weight: 500; }.phone-preview button { width: 100%; margin-top: 14px; padding: 11px 5px; color: #fff; border: 0; border-radius: 8px; background: var(--blue); font-size: 9px; font-weight: 750; }.phone-nav { width: calc(100% + 26px); margin: auto -13px -13px; padding: 11px; display: flex; justify-content: space-around; border-top: 1px solid #e4eaf1; }.phone-nav i { width: 15px; height: 5px; border-radius: 5px; background: #b5c1cf; }.phone-nav i:first-child { background: var(--blue); }
.floating-note { position: absolute; z-index: 5; min-width: 155px; padding: 10px 13px; display: flex; align-items: center; gap: 9px; border: 1px solid #dce6f0; border-radius: 10px; background: rgba(255,255,255,.95); box-shadow: 0 12px 28px rgba(17,51,91,.14); }.floating-note > i { width: 25px; height: 25px; position: relative; border-radius: 50%; background: #e4f8ef; }.floating-note > i::after { content: ""; position: absolute; left: 8px; top: 5px; width: 6px; height: 10px; border: solid var(--green); border-width: 0 2px 2px 0; transform: rotate(45deg); }.floating-note span { display: flex; flex-direction: column; gap: 2px; }.floating-note b { font-size: 9px; }.floating-note small { color: #768397; font-size: 7px; }.floating-note--top { top: 8px; right: 10px; }.floating-note--bottom { left: 4px; bottom: -26px; }.floating-note--bottom > i { background: #eaf3ff; }.floating-note--bottom > i::after { width: 8px; height: 6px; left: 7px; top: 7px; border: 2px solid var(--blue); border-top: 0; transform: none; }

/* Capturas reales de producto con identidades de demostracion. */
.product-stage--real { min-height: 520px; display: block; perspective: 1400px; }
.product-stage--real .product-glow { right: 0; }
.real-browser { position: relative; margin: 0; overflow: hidden; border: 1px solid #c7d5e5; border-radius: 15px; background: #fff; box-shadow: 0 28px 70px rgba(9,42,82,.2); }
.real-browser__bar { min-height: 40px; padding: 0 14px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #617087; border-bottom: 1px solid #e4ebf2; background: rgba(255,255,255,.97); font-size: 10px; }
.real-browser__bar > span { display: flex; gap: 6px; }.real-browser__bar i { width: 7px; height: 7px; display: block; border-radius: 50%; background: #ef766b; }.real-browser__bar i:nth-child(2) { background: #efbd50; }.real-browser__bar i:nth-child(3) { background: #52c987; }
.real-browser__bar b { color: var(--navy); font-size: 10px; }.real-browser__bar small { justify-self: end; color: #7a8799; font-size: 8px; }
.real-browser img { width: 100%; height: auto; display: block; }
.real-browser--hero { width: calc(100% - 72px); position: absolute; z-index: 2; top: 50%; left: 0; transform: translateY(-50%) rotateY(-2deg); transform-origin: left center; }
.real-phone { position: relative; z-index: 4; margin: 0; overflow: hidden; border: 8px solid #132239; border-radius: 31px; background: #f7f9fc; box-shadow: 0 28px 65px rgba(9,33,66,.27); }
.real-phone::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.38); border-radius: 22px; pointer-events: none; }
.real-phone__speaker { width: 50px; height: 6px; position: absolute; z-index: 2; top: 9px; left: 50%; border-radius: 8px; background: #132239; transform: translateX(-50%); box-shadow: 0 0 0 4px rgba(255,255,255,.45); }
.real-phone img { width: 100%; height: auto; display: block; }
.real-phone--hero { width: 172px; position: absolute; right: -4px; bottom: -10px; transform: rotate(2deg); }
.product-proof { position: absolute; z-index: 6; min-width: 190px; padding: 11px 13px; display: flex; align-items: center; gap: 10px; border: 1px solid #d8e4ef; border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 14px 34px rgba(17,51,91,.16); backdrop-filter: blur(8px); }
.product-proof > span { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; color: var(--blue); border-radius: 9px; background: #e8f2ff; font-size: 8px; font-weight: 900; letter-spacing: .5px; }
.product-proof > div { display: flex; flex-direction: column; gap: 2px; }.product-proof b { color: var(--navy); font-size: 10px; }.product-proof small { color: #718096; font-size: 8px; }
.product-proof--top { top: 10px; right: 3px; }.product-proof--bottom { bottom: -14px; left: 14px; }.product-proof--bottom > span { color: #08794a; background: #e1f7ec; }
.real-browser--story { overflow: visible; transform: perspective(1400px) rotateY(-1.5deg); transform-origin: right center; }
.real-browser--story img { overflow: hidden; border-radius: 0 0 14px 14px; }
.real-browser--story figcaption { position: absolute; z-index: 2; right: 18px; bottom: 18px; max-width: 275px; padding: 12px 15px; display: flex; flex-direction: column; gap: 3px; color: #fff; border-radius: 10px; background: rgba(5,46,93,.92); box-shadow: 0 10px 26px rgba(4,32,67,.2); }
.real-browser--story figcaption span { font-size: 11px; font-weight: 800; }.real-browser--story figcaption small { color: #d5e5f5; font-size: 8px; line-height: 1.4; }

.proof-strip { max-width: 1320px; margin: 0 auto; padding: 29px 34px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid #dce5ef; border-radius: 14px; background: #fff; box-shadow: 0 12px 42px rgba(19,51,87,.07); }.proof-strip > div { padding: 3px 26px; display: flex; flex-direction: column; gap: 6px; border-left: 1px solid #e2e9f1; }.proof-strip > div:first-child { border-left: 0; }.proof-strip strong { color: var(--navy); font-size: 15px; }.proof-strip span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.section { padding: 110px max(24px, calc((100vw - 1320px) / 2)); }.section--tint { background: linear-gradient(180deg, #f3f8fd, #f8fbff); }.section--dark { color: #fff; background: radial-gradient(circle at 85% 20%, rgba(15,132,210,.28), transparent 30%), linear-gradient(135deg, #062d5d, #071f40); }
.section-heading { margin-bottom: 48px; }.section-heading h2, .dashboard-story h2, .mobile-copy h2, .compliance-section h2, .faq-heading h2 { margin: 0; color: var(--navy); font-size: clamp(37px, 3.5vw, 54px); line-height: 1.08; letter-spacing: -2.1px; }.section-heading > p:last-child, .section-heading--split > p, .faq-heading > p { color: var(--muted); font-size: 18px; line-height: 1.65; }.section-heading--split { display: grid; grid-template-columns: 1fr .76fr; align-items: end; gap: 80px; }.section-heading--split > p { margin: 0 0 3px; }.section-heading--center { max-width: 800px; margin-right: auto; margin-left: auto; text-align: center; }.section-heading--center > p:last-child { max-width: 680px; margin: 20px auto 0; }.section-heading--inverse h2 { color: #fff; }.section-heading--inverse > p:last-child { color: #bfcfe2; }

.intro-section { padding-top: 120px; }.outcome-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }.outcome-grid article { min-height: 250px; padding: 30px; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }.outcome-grid article:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(22,56,96,.09); }.outcome-grid article > span { color: var(--blue); font-size: 12px; font-weight: 850; letter-spacing: 1px; }.outcome-grid h3 { margin: 48px 0 12px; color: var(--navy); font-size: 23px; }.outcome-grid p { margin: 0; color: var(--muted); line-height: 1.65; }
.people-story { margin-top: 80px; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(48px, 6vw, 90px); }.people-story figure { min-height: 510px; position: relative; margin: 0; overflow: hidden; border-radius: 18px; background: #dfe9f1; box-shadow: 0 24px 65px rgba(17,52,91,.13); }.people-story figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(5,31,60,.58)); pointer-events: none; }.people-story img { width: 100%; height: 100%; position: absolute; inset: 0; display: block; object-fit: cover; object-position: center; }.people-story figcaption { position: absolute; z-index: 2; right: 28px; bottom: 25px; left: 28px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; color: #fff; }.people-story figcaption span { font-size: 19px; font-weight: 800; }.people-story figcaption small { max-width: 210px; color: #d9e7f3; text-align: right; font-size: 11px; line-height: 1.45; }.people-story-copy h3 { margin: 0; color: var(--navy); font-size: clamp(32px, 3vw, 45px); line-height: 1.1; letter-spacing: -1.5px; }.people-story-copy > p:not(.eyebrow) { margin: 24px 0 30px; color: var(--muted); font-size: 17px; line-height: 1.7; }.people-points { display: flex; flex-direction: column; gap: 17px; }.people-points span { padding: 0 0 17px 22px; position: relative; display: flex; flex-direction: column; gap: 4px; border-bottom: 1px solid var(--line); }.people-points span::before { content: ""; position: absolute; top: 7px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--green); }.people-points b { color: var(--navy); font-size: 14px; }.people-points small { color: var(--muted); font-size: 12px; }
.solution-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }.solution-card { overflow: hidden; border: 1px solid #d7e2ee; border-radius: 16px; background: #fff; box-shadow: 0 11px 38px rgba(28,58,94,.06); }.solution-card > div:last-child { padding: 30px; }.card-kicker { margin: 0 0 9px !important; color: var(--blue) !important; font-size: 10px !important; font-weight: 850; letter-spacing: 1.5px; }.solution-card h3 { margin: 0 0 13px; color: var(--navy); font-size: 25px; }.solution-card p { margin: 0; color: var(--muted); line-height: 1.6; }.solution-card ul { margin: 22px 0 0; padding: 0; display: flex; flex-direction: column; gap: 9px; list-style: none; color: #425169; font-size: 13px; }.solution-card li::before { content: ""; width: 6px; height: 6px; margin-right: 9px; display: inline-block; border-radius: 50%; background: var(--green); vertical-align: 2px; }.solution-visual { height: 235px; position: relative; display: grid; place-items: end center; overflow: hidden; background: radial-gradient(circle at 25% 20%, rgba(255,255,255,.7), transparent 25%), linear-gradient(145deg, #d8edff, #eef7ff); }.solution-visual--mobile > span { width: 128px; height: 205px; padding: 20px 12px; display: flex; flex-direction: column; align-items: center; border: 6px solid #17304e; border-bottom: 0; border-radius: 22px 22px 0 0; background: #fff; box-shadow: 0 -2px 24px rgba(21,54,88,.15); }.solution-visual--mobile i { width: 38px; height: 4px; margin-bottom: 25px; border-radius: 4px; background: #23374f; }.solution-visual--mobile b { font-size: 28px; }.solution-visual--mobile small { margin-top: 5px; color: var(--green); font-size: 8px; }.solution-visual--mobile em { margin-top: 25px; padding: 9px 16px; color: #fff; border-radius: 6px; background: var(--blue); font-size: 8px; font-style: normal; }.solution-visual--terminal { background: radial-gradient(circle at 80% 10%, #d5f4e8, transparent 30%), linear-gradient(145deg, #e5f1fb, #f6fbff); }.solution-visual--terminal > span { width: 82%; height: 178px; padding: 24px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; border: 7px solid #17304e; border-bottom: 0; border-radius: 15px 15px 0 0; background: #fff; box-shadow: 0 -2px 24px rgba(21,54,88,.15); }.solution-visual--terminal b, .solution-visual--terminal em { grid-column: 1/-1; text-align: center; }.solution-visual--terminal b { color: var(--navy); font-size: 12px; }.solution-visual--terminal i { width: 37px; height: 37px; display: grid; place-items: center; color: var(--blue-deep); border-radius: 50%; background: #e6f1ff; font-size: 8px; font-style: normal; font-weight: 800; }.solution-visual--terminal em { padding: 7px; color: #fff; border-radius: 5px; background: var(--blue); font-size: 7px; font-style: normal; }.solution-visual--proximity { place-items: center; background: radial-gradient(circle at center, #e3fbf3, #ecf5fd 63%); }.solution-visual--proximity > span { position: relative; width: 160px; height: 160px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(7,85,201,.15); border-radius: 50%; background: rgba(255,255,255,.68); }.solution-visual--proximity > span::before, .solution-visual--proximity > span::after { content: ""; position: absolute; border: 1px solid rgba(7,85,201,.14); border-radius: 50%; }.solution-visual--proximity > span::before { inset: -22px; }.solution-visual--proximity > span::after { inset: -44px; }.solution-visual--proximity i { position: absolute; width: 70px; height: 70px; border: 9px solid var(--blue); border-top-color: transparent; border-radius: 50%; transform: rotate(-40deg); }.solution-visual--proximity i:nth-child(2) { width: 45px; height: 45px; border-width: 7px; }.solution-visual--proximity i:nth-child(3) { width: 13px; height: 13px; border: 0; background: var(--green); }.solution-visual--proximity b, .solution-visual--proximity small { position: absolute; z-index: 2; bottom: -25px; }.solution-visual--proximity b { padding: 8px 14px; color: var(--blue-deep); border: 1px solid #d7e3ee; border-radius: 8px; background: #fff; font-size: 9px; }.solution-visual--proximity small { bottom: -39px; color: #65748a; font-size: 7px; }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }.feature-grid article { min-height: 190px; padding: 28px; display: flex; gap: 20px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }.feature-grid article > span { flex: 0 0 46px; width: 46px; height: 46px; display: grid; place-items: center; color: var(--blue); border-radius: 10px; background: var(--soft-blue); font-size: 11px; font-weight: 850; letter-spacing: .5px; }.feature-grid h3 { margin: 2px 0 10px; color: var(--navy); font-size: 20px; }.feature-grid p { margin: 0; color: var(--muted); line-height: 1.6; }
.dashboard-story { display: grid; grid-template-columns: .72fr 1.28fr; align-items: center; gap: 80px; background: #f5f9fd; }.dashboard-story-copy > p:not(.eyebrow) { color: var(--muted); font-size: 17px; line-height: 1.65; }.check-list { margin: 30px 0; padding: 0; display: flex; flex-direction: column; gap: 18px; list-style: none; }.check-list li { display: flex; align-items: flex-start; gap: 13px; }.check-list li > span { flex: 0 0 22px; width: 22px; height: 22px; position: relative; border-radius: 50%; background: #ddf6e9; }.check-list li > span::after { content: ""; position: absolute; left: 7px; top: 4px; width: 6px; height: 10px; border: solid var(--green); border-width: 0 2px 2px 0; transform: rotate(45deg); }.check-list div { display: flex; flex-direction: column; gap: 4px; }.check-list small { color: var(--muted); font-size: 14px; }.dashboard-canvas { overflow: hidden; border: 1px solid #cbd8e6; border-radius: 15px; background: #fff; box-shadow: var(--shadow); transform: perspective(1200px) rotateY(-2deg); }.dashboard-canvas-top { height: 44px; padding: 0 18px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #e4eaf1; }.dashboard-canvas-top span { margin-right: auto; color: var(--blue-deep); font-size: 11px; font-weight: 800; }.dashboard-canvas-top span b { width: 17px; height: 17px; margin-right: 5px; display: inline-block; border: 2px solid var(--green); border-radius: 50%; vertical-align: -5px; }.dashboard-canvas-top > i { width: 24px; height: 7px; border-radius: 8px; background: #e1e8f0; }.dashboard-canvas-body { min-height: 390px; display: grid; grid-template-columns: 70px 1fr; }.dashboard-menu { padding: 27px 18px; display: flex; flex-direction: column; align-items: center; gap: 25px; background: linear-gradient(180deg, #073f7f, #062e5c); }.dashboard-menu i { width: 24px; height: 6px; border-radius: 4px; background: rgba(226,238,255,.55); }.dashboard-menu i:first-child { height: 25px; border-radius: 7px; background: #2c83e6; }.dashboard-main { padding: 25px; background: #f5f8fc; }.dashboard-title { display: flex; justify-content: space-between; }.dashboard-title > span { display: flex; flex-direction: column; gap: 4px; }.dashboard-title b { font-size: 17px; }.dashboard-title small { color: #7e8a9b; font-size: 8px; }.dashboard-title > i { width: 74px; height: 28px; border: 1px solid #dce4ed; border-radius: 6px; background: #fff; }.dashboard-metrics { margin: 20px 0 15px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }.dashboard-metrics > span { min-height: 85px; padding: 12px; display: flex; flex-direction: column; border: 1px solid #e0e7ef; border-radius: 7px; background: #fff; }.dashboard-metrics small { color: #7b8798; font-size: 6px; font-weight: 800; }.dashboard-metrics b { margin: 6px 0 4px; font-size: 21px; }.dashboard-metrics em { color: var(--green); font-size: 7px; font-style: normal; }.dashboard-metrics span:nth-child(3) em { color: var(--orange); }.dashboard-lower { display: grid; grid-template-columns: 1.5fr .75fr; gap: 10px; }.dashboard-lower > div { min-height: 185px; padding: 13px; display: flex; flex-direction: column; border: 1px solid #e0e7ef; border-radius: 7px; background: #fff; font-size: 9px; }.dashboard-bars { height: 118px; margin-top: 21px; display: flex; align-items: end; gap: 9px; border-bottom: 1px solid #dde5ed; background: repeating-linear-gradient(to bottom, transparent 0 28px, #eff3f6 29px); }.dashboard-bars i { flex: 1; border-radius: 3px 3px 0 0; background: var(--blue); }.dashboard-bars i:nth-child(1) { height: 45%; }.dashboard-bars i:nth-child(2) { height: 65%; }.dashboard-bars i:nth-child(3) { height: 58%; }.dashboard-bars i:nth-child(4) { height: 80%; }.dashboard-bars i:nth-child(5) { height: 68%; }.dashboard-bars i:nth-child(6) { height: 73%; }.dashboard-bars i:nth-child(7) { height: 87%; }.dashboard-ring { width: 95px; height: 95px; margin: 22px auto 10px; position: relative; border-radius: 50%; background: conic-gradient(var(--green) 0 92%, #e2e8ef 92%); }.dashboard-ring::after { content: ""; position: absolute; inset: 20px; border-radius: 50%; background: #fff; }.dashboard-lower > div:last-child small { text-align: center; color: var(--green); font-size: 7px; }

.steps-grid { margin: 65px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 42px; list-style: none; counter-reset: none; }.steps-grid li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 20px; }.steps-grid li:not(:last-child)::after { content: ""; position: absolute; top: 31px; left: 74px; right: -31px; height: 1px; background: rgba(255,255,255,.2); }.steps-grid li > span { position: relative; z-index: 1; width: 64px; height: 64px; display: grid; place-items: center; color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: #0a3d76; font-size: 19px; font-weight: 800; }.steps-grid small { color: #73c6ff; font-size: 9px; font-weight: 850; letter-spacing: 1.5px; }.steps-grid h3 { margin: 10px 0 10px; font-size: 21px; }.steps-grid p { margin: 0; color: #bfcfe2; line-height: 1.6; }
.mobile-section { display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: 95px; overflow: hidden; }.mobile-showcase { position: relative; min-height: 560px; display: flex; align-items: end; justify-content: center; }.mobile-showcase::before { content: ""; position: absolute; width: 470px; height: 470px; bottom: 15px; border-radius: 50%; background: linear-gradient(145deg, #e1f1ff, #e4f8ef); }.mobile-orbit { position: absolute; border: 1px solid rgba(7,85,201,.14); border-radius: 50%; }.mobile-orbit--one { width: 550px; height: 550px; bottom: -25px; }.mobile-orbit--two { width: 390px; height: 390px; bottom: 55px; }.app-phone { position: relative; overflow: hidden; border: 9px solid #14243a; border-radius: 35px; background: #fff; box-shadow: 0 25px 60px rgba(16,45,81,.22); }.app-phone::before { content: ""; position: absolute; z-index: 2; top: 9px; left: 50%; width: 56px; height: 7px; border-radius: 7px; background: #14243a; transform: translateX(-50%); }.app-phone > div { height: 100%; padding: 45px 21px 20px; display: flex; flex-direction: column; align-items: center; }.app-phone--front { z-index: 3; width: 235px; height: 475px; margin-left: -55px; }.app-phone--front small { color: #748196; font-size: 11px; }.app-phone--front b { margin: 44px 0 11px; color: var(--navy); font-size: 44px; }.app-phone--front span { width: 100%; padding: 15px; display: flex; align-items: center; gap: 9px; color: var(--green); border-radius: 10px; background: #e6f8ef; font-size: 11px; font-weight: 750; }.app-phone--front span i { width: 14px; height: 14px; border: 4px solid var(--green); border-radius: 50%; }.app-phone--front button { width: 100%; margin-top: 30px; padding: 15px; color: #fff; border: 0; border-radius: 9px; background: var(--blue); font-weight: 750; }.app-phone--front em { margin-top: 17px; color: #748196; font-size: 10px; font-style: normal; }.app-phone--back { z-index: 2; width: 210px; height: 425px; transform: translate(28px,-6px) rotate(-6deg); }.app-phone--back > div { align-items: stretch; }.app-phone--back small, .app-phone--back b { text-align: center; }.app-phone--back b { margin: 15px 0 30px; font-size: 20px; }.calendar-dots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; }.calendar-dots i { width: 24px; height: 24px; border-radius: 50%; background: #e7eef6; }.calendar-dots i:nth-child(3n) { background: #dff5eb; }.calendar-dots i:nth-child(5n) { background: #dcecff; }.mobile-copy > p:not(.eyebrow) { color: var(--muted); font-size: 18px; line-height: 1.65; }.app-features { margin: 34px 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }.app-features span { display: flex; flex-direction: column; gap: 5px; }.app-features b { color: var(--navy); font-size: 14px; }.app-features small { color: var(--muted); font-size: 12px; }.store-links { display: flex; flex-wrap: wrap; gap: 12px; }.store-links a { min-width: 155px; padding: 9px 16px; display: flex; flex-direction: column; color: #fff; border-radius: 8px; background: #10233e; }.store-links small { font-size: 8px; }.store-links strong { font-size: 15px; }
.mobile-showcase--real { align-items: center; padding-bottom: 22px; }
.mobile-showcase--real .real-phone--back { z-index: 2; width: 216px; transform: translate(34px,12px) rotate(-5deg); }
.mobile-showcase--real .real-phone--front { z-index: 3; width: 242px; margin-left: -44px; transform: translateY(-11px) rotate(1.5deg); }
.real-image-note { position: absolute; z-index: 5; right: 24px; bottom: 15px; padding: 8px 12px; color: #31506f; border: 1px solid #cdddea; border-radius: 99px; background: rgba(255,255,255,.94); box-shadow: 0 9px 25px rgba(18,50,87,.1); font-size: 9px; font-weight: 750; }
.compliance-section { display: grid; grid-template-columns: 260px 1fr; align-items: center; gap: 70px; border-top: 1px solid #dce5ef; border-bottom: 1px solid #dce5ef; background: #f7fbff; }.compliance-badge { width: 230px; height: 230px; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--blue-deep); border: 1px solid #c5dbed; border-radius: 50%; background: #fff; box-shadow: 0 18px 45px rgba(20,58,96,.08); }.compliance-badge::before, .compliance-badge::after { content: ""; position: absolute; border: 1px solid #d9e7f2; border-radius: 50%; }.compliance-badge::before { inset: 18px; }.compliance-badge::after { inset: 35px; }.compliance-badge span { z-index: 1; width: 42px; height: 50px; position: relative; border: 3px solid var(--blue); border-radius: 22px 22px 10px 10px; }.compliance-badge span::after { content: ""; position: absolute; left: 14px; top: 9px; width: 7px; height: 14px; border: solid var(--green); border-width: 0 3px 3px 0; transform: rotate(45deg); }.compliance-badge b { z-index: 1; margin-top: 10px; text-align: center; font-size: 14px; }.compliance-section > div:last-child { max-width: 880px; }.compliance-section > div:last-child > p:not(.eyebrow) { color: var(--muted); font-size: 17px; line-height: 1.7; }.inline-checks { margin: 28px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; list-style: none; }.inline-checks li { padding: 9px 13px; color: #33445b; border: 1px solid #d3e0ec; border-radius: 99px; background: #fff; font-size: 12px; font-weight: 700; }.inline-checks li::before { content: ""; width: 6px; height: 6px; margin-right: 7px; display: inline-block; border-radius: 50%; background: var(--green); vertical-align: 2px; }.legal-note { display: block; color: #7a8698; font-size: 11px; line-height: 1.5; }
.blog-section { background: linear-gradient(180deg, #f4f8fc, #fff); }.blog-heading > div:last-child p { margin: 0 0 18px; color: var(--muted); font-size: 17px; line-height: 1.65; }.blog-layout { display: grid; grid-template-columns: 1.05fr .95fr; gap: 22px; }.blog-card { overflow: hidden; border: 1px solid #d8e3ed; border-radius: 16px; background: #fff; box-shadow: 0 13px 38px rgba(23,57,96,.07); }.blog-card--featured { display: flex; flex-direction: column; }.blog-image { position: relative; display: block; overflow: hidden; background: #dfe8f0; }.blog-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .45s ease; }.blog-card:hover .blog-image img { transform: scale(1.025); }.blog-card--featured .blog-image { min-height: 360px; }.blog-card--featured .blog-image img { position: absolute; inset: 0; }.blog-image > span { position: absolute; top: 20px; left: 20px; padding: 8px 12px; color: #fff; border-radius: 99px; background: rgba(6,45,91,.86); backdrop-filter: blur(10px); font-size: 10px; font-weight: 800; letter-spacing: .6px; }.blog-card-content { padding: 29px; }.blog-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: #738096; font-size: 10px; font-weight: 650; }.blog-meta span:first-child { color: var(--blue); font-weight: 850; text-transform: uppercase; letter-spacing: .7px; }.blog-meta > *:not(:first-child)::before { content: ""; width: 3px; height: 3px; margin-right: 10px; display: inline-block; border-radius: 50%; background: #a9b5c3; vertical-align: 2px; }.blog-card h3 { margin: 15px 0 13px; color: var(--navy); font-size: 25px; line-height: 1.25; letter-spacing: -.5px; }.blog-card h3 a:hover { color: var(--blue); }.blog-card p { margin: 0 0 21px; color: var(--muted); line-height: 1.6; }.blog-card .text-link { font-size: 12px; }.blog-secondary { display: grid; grid-template-rows: 1fr 1fr; gap: 22px; }.blog-card--horizontal { min-height: 0; display: grid; grid-template-columns: 42% 58%; }.blog-card--horizontal .blog-image { min-height: 255px; }.blog-card--horizontal .blog-card-content { padding: 24px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }.blog-card--horizontal h3 { margin: 13px 0 20px; font-size: 19px; line-height: 1.3; }.blog-topics { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; }.blog-topics > span { margin-right: 3px; font-weight: 700; }.blog-topics a { padding: 8px 13px; color: #43546b; border: 1px solid #d7e2ed; border-radius: 99px; background: #fff; transition: color .2s ease, border-color .2s ease; }.blog-topics a:hover { color: var(--blue); border-color: #a9c5e6; }
.blog-index-hero { padding: 95px max(24px, calc((100vw - 1320px) / 2)) 70px; display: grid; grid-template-columns: 1fr 270px; align-items: end; gap: 80px; background: radial-gradient(circle at 82% 22%, rgba(93,185,255,.23), transparent 26%), linear-gradient(180deg, #f6fbff, #fff); }.blog-index-hero h1 { margin: 0; color: var(--navy); font-size: clamp(48px, 5vw, 74px); line-height: 1.04; letter-spacing: -3.2px; }.blog-index-hero h1 span { color: var(--blue); }.blog-index-hero > div > p:last-child { max-width: 710px; margin: 25px 0 0; color: var(--muted); font-size: 19px; line-height: 1.65; }.blog-index-hero aside { padding: 27px; display: flex; flex-direction: column; border: 1px solid #d5e2ed; border-radius: 14px; background: rgba(255,255,255,.84); box-shadow: 0 15px 40px rgba(21,55,94,.08); }.blog-index-hero aside strong { color: var(--blue); font-size: 43px; line-height: 1; }.blog-index-hero aside span { margin: 7px 0 18px; color: var(--navy); font-weight: 800; }.blog-index-hero aside small { color: var(--muted); line-height: 1.5; }
.blog-filter { padding: 0 max(24px, calc((100vw - 1320px) / 2)) 36px; display: flex; flex-wrap: wrap; gap: 9px; border-bottom: 1px solid #e1e8f0; }.blog-filter a { padding: 9px 14px; color: #46566d; border: 1px solid #d6e1ec; border-radius: 99px; background: #fff; font-size: 12px; font-weight: 700; }.blog-filter a:hover, .blog-filter a.active { color: #fff; border-color: var(--blue); background: var(--blue); }
.blog-index-grid { padding: 65px max(24px, calc((100vw - 1320px) / 2)) 90px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }.blog-index-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid #d9e3ed; border-radius: 15px; background: #fff; box-shadow: 0 10px 32px rgba(21,55,94,.06); }.blog-index-image { height: 235px; position: relative; display: block; overflow: hidden; background: #e5edf4; }.blog-index-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .4s ease; }.blog-index-card:hover .blog-index-image img { transform: scale(1.03); }.blog-index-image > span { position: absolute; bottom: 15px; left: 15px; padding: 7px 11px; color: #fff; border-radius: 99px; background: rgba(6,45,91,.88); font-size: 9px; font-weight: 800; }.blog-index-card > div { padding: 26px; display: flex; flex: 1; flex-direction: column; align-items: flex-start; }.blog-index-card h2 { margin: 14px 0 12px; color: var(--navy); font-size: 22px; line-height: 1.3; letter-spacing: -.45px; }.blog-index-card h2 a:hover { color: var(--blue); }.blog-index-card p { margin: 0 0 23px; color: var(--muted); line-height: 1.6; }.blog-index-card .text-link { margin-top: auto; font-size: 12px; }.blog-empty { max-width: 720px; margin: 80px auto; padding: 50px; text-align: center; border: 1px solid var(--line); border-radius: 16px; }.blog-empty h2 { color: var(--navy); }.blog-empty p { margin-bottom: 28px; color: var(--muted); }.blog-pagination { max-width: 1320px; margin: -35px auto 80px; padding-top: 28px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-top: 1px solid #dce4ed; }.blog-pagination a:last-child { justify-self: end; }.blog-pagination a { color: var(--blue); font-size: 13px; font-weight: 750; }.blog-pagination strong { color: var(--muted); font-size: 12px; }.blog-newsletter { max-width: 1320px; margin: 0 auto 90px; padding: 50px 58px; display: flex; align-items: center; justify-content: space-between; gap: 45px; color: #fff; border-radius: 18px; background: linear-gradient(135deg, #064995, #062d5d); }.blog-newsletter .eyebrow { color: #83d4ff; }.blog-newsletter h2 { margin: 0; font-size: 36px; letter-spacing: -1.2px; }.blog-newsletter p:last-child { margin: 13px 0 0; color: #c7d7e9; }
.blog-detail-page { padding-bottom: 90px; }.blog-breadcrumb { max-width: 1180px; margin: 0 auto; padding: 30px 0; display: flex; flex-wrap: wrap; gap: 9px; color: #718095; font-size: 11px; }.blog-breadcrumb a:hover { color: var(--blue); }.article-header { max-width: 1180px; margin: 0 auto; padding: 55px 0 70px; display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: 75px; }.article-category { margin: 0 0 18px; color: var(--blue); font-size: 11px; font-weight: 850; letter-spacing: 1.2px; text-transform: uppercase; }.article-header h1 { margin: 0; color: var(--navy); font-size: clamp(42px, 4.2vw, 64px); line-height: 1.06; letter-spacing: -2.5px; }.article-lead { margin: 25px 0; color: var(--muted); font-size: 18px; line-height: 1.65; }.article-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: #768397; font-size: 10px; }.article-meta span:not(:first-child)::before { content: ""; width: 4px; height: 4px; margin-right: 15px; display: inline-block; border-radius: 50%; background: #aeb9c6; vertical-align: 2px; }.article-header figure { height: 440px; margin: 0; overflow: hidden; border-radius: 17px; background: #e5edf4; box-shadow: 0 23px 60px rgba(18,51,89,.14); }.article-header figure img { width: 100%; height: 100%; display: block; object-fit: cover; }.article-layout { max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: 250px minmax(0, 720px); align-items: start; gap: 80px; }.article-aside { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 22px; }.article-aside > div { padding: 20px; border: 1px solid #dae4ed; border-radius: 12px; background: #f7faff; }.article-aside small { color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: 1.1px; }.article-aside p { margin: 10px 0 0; color: #4e5e74; font-size: 12px; line-height: 1.6; }.article-aside .text-link { font-size: 11px; }.article-tags { word-break: break-word; }.article-prose { color: #2f4057; font-size: 17px; line-height: 1.78; }.article-prose > *:first-child { margin-top: 0; }.article-prose h2 { margin: 50px 0 17px; color: var(--navy); font-size: 31px; line-height: 1.2; letter-spacing: -.8px; }.article-prose h3 { margin: 35px 0 13px; color: var(--navy); font-size: 23px; }.article-prose p { margin: 0 0 22px; }.article-prose ul, .article-prose ol { margin: 0 0 25px; padding-left: 23px; }.article-prose li { margin: 8px 0; }.article-prose a { color: var(--blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }.article-prose blockquote { margin: 30px 0; padding: 22px 26px; color: var(--blue-deep); border-left: 4px solid var(--green); background: #f2f8fc; }.article-prose strong { color: var(--navy); }.article-sources { margin-top: 55px; padding-top: 12px; border-top: 1px solid var(--line); }.article-sources h2 { font-size: 25px; }.article-footer-cta { max-width: 1180px; margin: 95px auto 0; padding: 45px 50px; display: flex; align-items: center; justify-content: space-between; gap: 50px; border: 1px solid #d6e2ed; border-radius: 16px; background: #f5f9fd; }.article-footer-cta h2 { max-width: 650px; margin: 0; color: var(--navy); font-size: 34px; line-height: 1.15; letter-spacing: -1px; }.article-footer-cta > div:last-child { display: flex; align-items: center; gap: 25px; white-space: nowrap; }.blog-unavailable { max-width: 760px; min-height: 600px; margin: 0 auto; padding: 120px 24px; text-align: center; }.blog-unavailable h1 { margin: 0; color: var(--navy); font-size: 50px; line-height: 1.1; }.blog-unavailable > p:not(.eyebrow) { margin: 25px 0 32px; color: var(--muted); font-size: 18px; line-height: 1.6; }.blog-unavailable > div { display: flex; justify-content: center; gap: 12px; }
.faq-section { display: grid; grid-template-columns: .72fr 1.28fr; align-items: start; gap: 100px; }.faq-heading { position: sticky; top: 120px; }.faq-heading > p { margin: 20px 0 28px; }.faq-list details { border-bottom: 1px solid #dce4ed; }.faq-list summary { position: relative; padding: 24px 46px 24px 0; color: var(--navy); cursor: pointer; list-style: none; font-size: 18px; font-weight: 750; }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary span::before, .faq-list summary span::after { content: ""; position: absolute; top: 34px; right: 8px; width: 14px; height: 2px; background: var(--blue); transition: transform .2s ease; }.faq-list summary span::after { transform: rotate(90deg); }.faq-list details[open] summary span::after { transform: rotate(0); }.faq-list details p { margin: -4px 55px 24px 0; color: var(--muted); line-height: 1.65; }
.cta-section { max-width: 1320px; margin: 0 auto 80px; padding: 62px 68px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 60px; color: #fff; border-radius: 18px; background: radial-gradient(circle at 80% 20%, rgba(55,168,235,.45), transparent 28%), linear-gradient(135deg, #064995, #062d5d); box-shadow: 0 24px 65px rgba(8,48,95,.2); }.cta-section .eyebrow { color: #8dd8ff; }.cta-section h2 { max-width: 790px; margin: 0; font-size: clamp(37px, 3.6vw, 55px); line-height: 1.05; letter-spacing: -2px; }.cta-section > div:first-child > p:last-child { max-width: 670px; margin: 20px 0 0; color: #c9d9eb; font-size: 17px; line-height: 1.6; }.cta-actions { display: flex; align-items: center; gap: 27px; }.cta-phone { display: flex; flex-direction: column; gap: 3px; }.cta-phone small { color: #b9cde2; font-size: 10px; }.cta-phone strong { font-size: 20px; }
.public-footer { color: #d1ddeb; background: #071d39; }.footer-main { max-width: 1320px; margin: 0 auto; padding: 70px 0 55px; display: grid; grid-template-columns: 1.8fr repeat(3, 1fr); gap: 65px; }.brand--footer { padding: 5px 11px; border-radius: 10px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.14); }.brand--footer .brand-logo { width: 156px; }.footer-brand p { max-width: 340px; color: #9fb1c6; line-height: 1.6; }.footer-main h2 { margin: 7px 0 20px; color: #fff; font-size: 13px; }.footer-main > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; font-size: 13px; }.footer-main a:hover { color: #fff; }.footer-main address { color: #9fb1c6; font-size: 12px; font-style: normal; line-height: 1.55; }.footer-bottom { max-width: 1320px; margin: 0 auto; padding: 22px 0 28px; display: flex; justify-content: space-between; color: #8195ad; border-top: 1px solid rgba(255,255,255,.1); font-size: 11px; }

.admin-body { min-width: 320px; background: var(--canvas); }
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 220px 1fr; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 22px 13px 18px; display: flex; flex-direction: column; color: #dbe8fb; background: linear-gradient(180deg, #073b77, #062956); }
.brand--inverse { margin: 0 6px 22px; padding: 4px 9px; justify-content: center; border-radius: 10px; background: #fff; box-shadow: 0 9px 24px rgba(1,19,43,.18); }.brand--inverse .brand-logo { width: 166px; }
.sidebar-nav { display: flex; flex-direction: column; gap: 3px; }
.sidebar-nav a { min-height: 43px; padding: 0 13px; display: flex; align-items: center; gap: 12px; border-radius: 7px; font-size: 14px; }
.sidebar-nav a > span { width: 20px; color: #fff; text-align: center; font-size: 18px; }.sidebar-nav a b { margin-left: auto; width: 21px; height: 21px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: var(--orange); font-size: 11px; }
.sidebar-nav a:hover, .sidebar-nav a:focus-visible, .sidebar-nav a.active { color: #fff; background: #0a59cb; }
.sidebar-collapse { margin-top: auto; padding: 10px 13px; color: #b8cae5; border: 0; background: transparent; text-align: left; cursor: pointer; }
.admin-workspace { min-width: 0; }
.admin-topbar { height: 70px; padding: 0 30px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e2e8f0; background: #fff; }
.admin-topbar button { min-height: 40px; padding: 0 14px; color: #2a3850; border: 1px solid #d7e0eb; border-radius: 7px; background: #fff; font-weight: 600; cursor: pointer; }
.topbar-actions { display: flex; align-items: center; gap: 13px; }.topbar-actions .avatar { width: 42px; padding: 0; border: 0; border-radius: 50%; background: #e2ecfa; }.notification-button { position: relative; border: 0 !important; font-size: 21px; }.notification-button i { position: absolute; top: 5px; right: 7px; width: 7px; height: 7px; border-radius: 50%; background: #df2e2e; }
.admin-content { padding: 26px 30px 42px; }
.dashboard-heading h1 { margin: 0 0 3px; font-size: 32px; letter-spacing: -1.2px; }.dashboard-heading p { margin: 0; color: var(--muted); }
.kpi-grid { margin: 22px 0 16px; display: grid; grid-template-columns: repeat(4, minmax(190px,1fr)); gap: 16px; }
.kpi-card { min-height: 130px; padding: 22px; display: flex; align-items: center; gap: 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 4px 15px rgba(25,48,80,.025); }
.kpi-card > div { display: flex; flex-direction: column; align-items: flex-start; }.kpi-card small { color: #53617a; }.kpi-card strong { margin: 4px 0 2px; font-size: 32px; }.kpi-card em, .kpi-card a { color: var(--blue-strong); font-size: 12px; font-style: normal; }.kpi-card em { color: var(--green); }
.kpi-icon { flex: 0 0 52px; width: 52px; height: 52px; display: grid; place-items: center; color: var(--blue-strong); border: 1px solid #d9e6f8; border-radius: 50%; background: #f3f7fd; font-size: 25px; }.kpi-icon--green { color: var(--green); border-color: #cdecdc; background: #f0fbf5; }.kpi-icon--orange { color: var(--orange); border-color: #f7dfc9; background: #fff8f1; }
.dashboard-grid { display: grid; gap: 16px; }.dashboard-grid--top { grid-template-columns: 1.55fr .92fr 1fr; }.dashboard-grid--bottom { margin-top: 16px; grid-template-columns: 1.25fr 1fr; }
.panel { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }.panel h2 { margin: 0; font-size: 16px; }.panel > header { display: flex; align-items: center; justify-content: space-between; }.panel header button { padding: 7px 10px; color: var(--muted); border: 1px solid var(--line); border-radius: 6px; background: #fff; }.panel header a { color: var(--blue-strong); font-size: 12px; font-weight: 700; }
.bar-chart { height: 190px; margin-top: 18px; padding: 14px 8px 0; display: flex; align-items: end; gap: 12px; border-bottom: 1px solid #dbe4ef; background: repeating-linear-gradient(to bottom, transparent 0 44px, #eef2f7 45px); }
.bar-chart div { height: 100%; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; }.bar-chart i { width: min(34px,70%); border-radius: 5px 5px 0 0; background: linear-gradient(#1780e8, #0754c5); }.bar-chart span { color: var(--muted); font-size: 10px; }
.status-content { min-height: 210px; display: flex; align-items: center; justify-content: center; gap: 28px; }.dashboard-donut { position: relative; width: 125px; height: 125px; flex: 0 0 125px; border-radius: 50%; background: conic-gradient(var(--green) 0 85%, var(--orange) 85% 93%, #cbd5e1 93%); }.dashboard-donut::after { content: ""; position: absolute; inset: 22%; border-radius: 50%; background: #fff; }.status-content ul { min-width: 135px; margin: 0; padding: 0; list-style: none; }.status-content li { padding: 7px 0; display: grid; grid-template-columns: 10px 1fr auto; gap: 8px; align-items: center; font-size: 11px; }.status-content li i, .activity-panel li > i { width: 8px; height: 8px; border-radius: 50%; }.green { background: var(--green); }.orange { background: var(--orange); }.gray { background: #aab6c7; }
.attention-panel { display: flex; flex-direction: column; gap: 10px; }.attention-panel h2 { margin-bottom: 3px; }.attention-panel > a { min-height: 66px; padding: 12px; display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; border: 1px solid #e0e7f0; border-radius: 8px; }.attention-panel > a > span { width: 36px; height: 36px; display: grid; place-items: center; color: var(--blue-strong); border-radius: 50%; background: #f0f5fd; }.attention-panel > a > span.warning { color: var(--orange); background: #fff7ee; }.attention-panel b { display: block; color: var(--blue-strong); font-size: 12px; }.attention-panel small { margin-top: 3px; display: block; color: var(--muted); font-size: 10px; line-height: 1.35; }
.table-wrap { overflow-x: auto; }.punches-panel table { width: 100%; margin-top: 15px; border-collapse: collapse; font-size: 11px; }.punches-panel th, .punches-panel td { padding: 10px 6px; border-top: 1px solid #e8edf3; text-align: left; white-space: nowrap; }.punches-panel th { color: #526078; font-weight: 600; }.punches-panel td > i { width: 28px; height: 28px; margin-right: 7px; display: inline-grid; place-items: center; border-radius: 50%; background: #e5edfa; font-style: normal; }
.badge { padding: 4px 10px; border-radius: 20px; }.badge--ok { color: #087844; background: #dff4e9; }.badge--warning { color: #b45309; background: #ffecd8; }
.activity-panel ul { margin: 18px 0 0; padding: 0; list-style: none; }.activity-panel li { padding: 13px 3px; display: grid; grid-template-columns: 9px 40px 1fr; gap: 10px; align-items: start; border-top: 1px solid #e9edf3; }.activity-panel time { color: #43516a; font-size: 11px; font-weight: 700; }.activity-panel b, .activity-panel small { display: block; font-size: 11px; }.activity-panel small { margin-top: 3px; color: var(--muted); }

*:focus-visible { outline: 3px solid rgba(21,116,220,.35); outline-offset: 3px; }

@media (max-width: 1180px) {
    .public-nav { display: none; }
    .public-actions { margin-left: auto; }
    .public-menu-toggle { display: grid; }
    .public-mobile-menu:not([hidden]) { display: block; }
    .hero { padding-inline: 40px; grid-template-columns: 1fr; }
    .hero-copy { max-width: 760px; }
    .product-stage { width: min(900px,100%); }
    .proof-strip { margin-inline: 40px; }
    .section { padding-inline: 40px; }
    .solution-grid { gap: 16px; }
    .solution-card > div:last-child { padding: 24px; }
    .people-story { gap: 45px; }
    .blog-layout { grid-template-columns: 1fr; }.blog-secondary { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }.blog-card--horizontal { display: flex; flex-direction: column; }.blog-card--horizontal .blog-image { min-height: 230px; }.blog-card--horizontal .blog-card-content { flex: 1; }
    .blog-index-hero, .blog-filter, .blog-index-grid { padding-right: 40px; padding-left: 40px; }.blog-pagination, .blog-newsletter, .blog-breadcrumb, .article-header, .article-footer-cta { margin-right: 40px; margin-left: 40px; }.article-layout { padding-right: 40px; padding-left: 40px; }
    .dashboard-story { grid-template-columns: 1fr; }
    .dashboard-story-copy { max-width: 720px; }
    .footer-main, .footer-bottom { margin-inline: 40px; }
    .cta-section { margin-inline: 40px; }
    .kpi-grid { grid-template-columns: repeat(2,1fr); }
    .dashboard-grid--top { grid-template-columns: 1fr 1fr; }.attention-panel { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
    .public-mobile-menu { top: 74px; }
}

@media (max-width: 640px) {
    .public-mobile-menu { top: 64px; }
    .public-mobile-menu__panel { width: calc(100% - 20px); max-height: calc(100vh - 80px); margin: 8px 10px 0; padding: 14px; border-radius: 17px; }
    .public-mobile-menu__panel nav a { min-height: 48px; font-size: 15px; }
    .public-mobile-menu__actions { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .public-header { min-height: 74px; padding: 6px 22px; }.public-header .brand-logo { width: 150px; }.link-access { display: none; }
    .hero { min-height: auto; padding: 58px 24px 70px; grid-template-columns: minmax(0,1fr); }.hero h1 { font-size: 45px; letter-spacing: -2px; }.hero-lead { font-size: 19px; }
    .product-stage { min-height: 430px; }.product-window { min-height: 350px; width: calc(100% - 35px); }.window-body { min-height: 308px; }.preview-content { padding: 16px; }.preview-kpis { grid-template-columns: repeat(3,1fr); }.preview-panels { grid-template-columns: 1fr; }.mini-status { display: none; }.phone-preview { width: 153px; min-height: 310px; transform: scale(.88); transform-origin: bottom right; }.floating-note--top { display: none; }
    .product-stage--real { min-height: 490px; }.real-browser--hero { width: calc(100% - 48px); transform: translateY(-50%); }.real-phone--hero { width: 150px; }.product-proof--top { display: none; }.real-browser--story { transform: none; }
    .proof-strip { margin: 0 24px; padding: 22px; grid-template-columns: 1fr 1fr; }.proof-strip > div { padding: 13px 20px; }.proof-strip > div:nth-child(3) { border-left: 0; }
    .section { padding: 78px 24px; }.section-heading--split { grid-template-columns: 1fr; gap: 20px; }.section-heading h2, .dashboard-story h2, .mobile-copy h2, .compliance-section h2, .faq-heading h2 { font-size: 40px; letter-spacing: -1.5px; }
    .outcome-grid, .solution-grid { grid-template-columns: 1fr; }.outcome-grid article { min-height: 215px; }.outcome-grid h3 { margin-top: 30px; }.solution-card { display: grid; grid-template-columns: .9fr 1.1fr; }.solution-visual { height: 100%; min-height: 300px; }
    .people-story { margin-top: 60px; grid-template-columns: 1fr; }.people-story figure { min-height: 470px; }.people-story-copy { max-width: 680px; }
    .feature-grid { grid-template-columns: 1fr 1fr; }
    .dashboard-story { gap: 45px; }.dashboard-canvas { transform: none; }.dashboard-canvas-body { grid-template-columns: 55px 1fr; }.dashboard-main { padding: 18px; }.dashboard-metrics { grid-template-columns: 1fr 1fr; }
    .steps-grid { grid-template-columns: 1fr; gap: 36px; }.steps-grid li:not(:last-child)::after { top: 72px; bottom: -28px; left: 31px; right: auto; width: 1px; height: auto; }
    .mobile-section { grid-template-columns: 1fr; gap: 55px; }.mobile-copy { max-width: 680px; }.mobile-showcase { order: 2; }.mobile-showcase--real .real-phone--back { width: 205px; }.mobile-showcase--real .real-phone--front { width: 230px; }
    .compliance-section { grid-template-columns: 1fr; gap: 40px; }.compliance-badge { width: 190px; height: 190px; }
    .blog-layout { grid-template-columns: 1fr; }.blog-card--featured .blog-image { min-height: 330px; }.blog-secondary { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
    .blog-index-hero { padding: 70px 24px 55px; grid-template-columns: 1fr; gap: 35px; }.blog-index-hero aside { width: min(300px,100%); }.blog-filter { padding: 0 24px 28px; }.blog-index-grid { padding: 50px 24px 70px; grid-template-columns: 1fr 1fr; }.blog-pagination { margin: -25px 24px 65px; }.blog-newsletter { margin: 0 24px 70px; padding: 40px; align-items: flex-start; flex-direction: column; }.blog-breadcrumb { margin: 0 24px; }.article-header { margin: 0 24px; padding: 40px 0 55px; grid-template-columns: 1fr; gap: 40px; }.article-header figure { height: 420px; }.article-layout { padding: 0 24px; grid-template-columns: 1fr; gap: 45px; }.article-aside { position: static; display: grid; grid-template-columns: 1fr 1fr; }.article-aside .text-link { grid-column: 1/-1; }.article-footer-cta { margin: 75px 24px 0; align-items: flex-start; flex-direction: column; }
    .faq-section { grid-template-columns: 1fr; gap: 45px; }.faq-heading { position: static; }
    .cta-section { margin: 0 24px 60px; padding: 45px 38px; grid-template-columns: 1fr; gap: 32px; }.cta-actions { flex-wrap: wrap; }
    .footer-main { margin-inline: 24px; padding-top: 55px; grid-template-columns: 1fr 1fr; gap: 45px; }.footer-brand { grid-column: 1/-1; }.footer-bottom { margin-inline: 24px; }
    .admin-shell { grid-template-columns: 76px 1fr; }.sidebar { padding-inline: 8px; }.sidebar-nav a:not(.active) { font-size: 0; }.brand--inverse { width: 50px; height: 50px; margin: 0 auto 22px; padding: 4px; border-radius: 12px; }.brand--inverse .brand-logo--full { display: none; }.brand--inverse .brand-symbol { width: 42px; height: 42px; display: block; object-fit: cover; border-radius: 50%; }.sidebar-nav a { justify-content: center; padding: 0; }.sidebar-nav a > span { font-size: 19px; }.sidebar-nav a b { position: absolute; margin: -26px -34px 0 0; }.sidebar-collapse span { display: none; }
    .admin-content { padding: 22px 18px 36px; }.admin-topbar { padding-inline: 18px; }.company-picker { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .dashboard-grid--top, .dashboard-grid--bottom { grid-template-columns: 1fr; }.attention-panel { grid-column: auto; }
}

@media (max-width: 560px) {
    .public-actions .button { display: none; }.public-header { justify-content: space-between; }.hero h1 { font-size: 39px; line-height: 1.08; }.hero-actions .button { width: 100%; }.trust-list { align-items: flex-start; flex-direction: column; }
    .product-stage { min-height: 330px; }.product-window { min-height: 290px; width: 100%; }.window-top { grid-template-columns: 1fr auto; }.window-top span { display: none; }.window-body { min-height: 248px; grid-template-columns: 45px 1fr; }.preview-sidebar { padding-inline: 8px; }.preview-content { padding: 12px; }.preview-kpis { grid-template-columns: 1fr 1fr; }.preview-kpis > div:last-child, .preview-panels, .phone-preview, .floating-note { display: none; }
    .product-stage--real { min-height: 355px; }.real-browser--hero { width: 100%; }.real-browser__bar { min-height: 33px; padding-inline: 10px; }.real-browser__bar b { font-size: 8px; }.real-browser__bar small { display: none; }.real-phone--hero { width: 112px; right: -5px; bottom: -4px; border-width: 5px; border-radius: 22px; }.product-proof { display: none; }.real-browser--story figcaption { display: none; }
    .proof-strip { grid-template-columns: 1fr; }.proof-strip > div { border-top: 1px solid #e2e9f1; border-left: 0; }.proof-strip > div:first-child { border-top: 0; }
    .section { padding-block: 68px; }.section-heading h2, .dashboard-story h2, .mobile-copy h2, .compliance-section h2, .faq-heading h2 { font-size: 35px; }.section-heading > p:last-child, .section-heading--split > p, .faq-heading > p { font-size: 16px; }
    .people-story figure { min-height: 380px; }.people-story figcaption { right: 20px; bottom: 18px; left: 20px; align-items: flex-start; flex-direction: column; gap: 5px; }.people-story figcaption small { text-align: left; }.people-story-copy h3 { font-size: 32px; }
    .solution-card { display: block; }.solution-visual { height: 235px; min-height: 0; }.feature-grid { grid-template-columns: 1fr; }.feature-grid article { min-height: 0; padding: 22px; flex-direction: column; }
    .dashboard-canvas-body { min-height: 330px; grid-template-columns: 42px 1fr; }.dashboard-menu { padding-inline: 9px; }.dashboard-main { padding: 12px; }.dashboard-lower { grid-template-columns: 1fr; }.dashboard-lower > div:last-child { display: none; }
    .steps-grid li { grid-template-columns: 52px 1fr; }.steps-grid li > span { width: 52px; height: 52px; }.steps-grid li:not(:last-child)::after { left: 25px; top: 60px; }
    .mobile-showcase { min-height: 450px; transform: scale(.82); transform-origin: center bottom; margin-top: -50px; }.mobile-showcase--real { min-height: 475px; margin-top: -20px; padding-bottom: 0; transform: none; }.mobile-showcase--real .real-phone--back { width: 170px; transform: translate(26px,10px) rotate(-5deg); }.mobile-showcase--real .real-phone--front { width: 188px; margin-left: -36px; }.real-image-note { display: none; }.app-features { grid-template-columns: 1fr; }.compliance-badge { margin: 0 auto; }.inline-checks { align-items: flex-start; flex-direction: column; }.faq-list summary { font-size: 16px; }.faq-list details p { margin-right: 15px; }
    .blog-card--featured .blog-image { min-height: 250px; }.blog-secondary { grid-template-columns: 1fr; }.blog-card--horizontal { display: block; }.blog-card--horizontal .blog-image { min-height: 220px; }.blog-card-content, .blog-card--horizontal .blog-card-content { padding: 22px; }.blog-card h3 { font-size: 21px; }.blog-card--horizontal h3 { font-size: 19px; }
    .blog-index-hero h1 { font-size: 42px; letter-spacing: -1.8px; }.blog-index-grid { grid-template-columns: 1fr; }.blog-index-image { height: 220px; }.blog-pagination { grid-template-columns: 1fr 1fr; gap: 18px; }.blog-pagination strong { grid-column: 1/-1; grid-row: 1; text-align: center; }.blog-pagination a { grid-row: 2; }.blog-newsletter { padding: 34px 25px; }.blog-newsletter h2 { font-size: 30px; }.article-header h1 { font-size: 39px; letter-spacing: -1.6px; }.article-header figure { height: 280px; }.article-aside { display: flex; }.article-prose { font-size: 16px; }.article-prose h2 { font-size: 27px; }.article-footer-cta { padding: 32px 25px; }.article-footer-cta h2 { font-size: 29px; }.article-footer-cta > div:last-child { width: 100%; align-items: flex-start; flex-direction: column; white-space: normal; }.blog-unavailable h1 { font-size: 39px; }.blog-unavailable > div { flex-direction: column; }
    .cta-section { padding: 38px 26px; }.cta-actions { align-items: flex-start; flex-direction: column; }.cta-actions .button { width: 100%; }.footer-main { grid-template-columns: 1fr; }.footer-brand { grid-column: auto; }.footer-bottom { align-items: flex-start; flex-direction: column; gap: 9px; }
    .kpi-grid { grid-template-columns: 1fr; }.admin-topbar .topbar-actions > button:first-child { display: none; }.dashboard-heading h1 { font-size: 27px; }.status-content { flex-direction: column; }.panel { padding: 15px; }
}

/* Public inner pages */
.footer-legal { max-width: 1320px; margin: -12px auto 0; padding: 0 0 25px; display: flex; justify-content: flex-end; gap: 20px; color: #9bacbf; font-size: 11px; }.footer-legal a:hover { color: #fff; }
.public-inner-page,.legal-page { color: var(--navy); background: #fff; }
.public-page-hero,.legal-hero { padding: clamp(68px,8vw,116px) max(24px,calc((100vw - 1180px)/2)); background: radial-gradient(circle at 84% 25%,rgba(122,201,255,.3),transparent 28%),linear-gradient(180deg,#f6fbff,#fff); }
.public-page-hero { display: grid; grid-template-columns: minmax(0,1fr) 330px; align-items: center; gap: clamp(45px,8vw,110px); }
.public-page-hero h1,.legal-hero h1,.public-status-card h1 { max-width: 760px; margin: 0; color: var(--navy); font-size: clamp(44px,5vw,68px); line-height: 1.04; letter-spacing: -2.8px; }
.public-page-hero > div > p:last-child,.legal-hero > p:last-child { max-width: 720px; margin: 24px 0 0; color: #5b6d84; font-size: 20px; line-height: 1.65; }
.public-page-hero--trial { background: radial-gradient(circle at 84% 20%,rgba(71,190,151,.25),transparent 28%),linear-gradient(180deg,#f5fbff,#fff); }
.public-contact-card,.trial-summary { padding: 28px; display: flex; flex-direction: column; gap: 11px; border: 1px solid #d7e5f2; border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 22px 55px rgba(14,57,96,.1); }
.public-contact-card > span { color: #6c7c91; font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }.public-contact-card a { color: var(--blue-deep); font-size: 22px; font-weight: 800; }.public-contact-card small { margin-top: 5px; color: #7b8ba0; }
.trial-summary strong { margin-bottom: 8px; color: var(--blue-deep); font-size: 22px; }.trial-summary span { padding: 11px 0 11px 28px; position: relative; color: #53677f; border-top: 1px solid #e8eef5; line-height: 1.45; }.trial-summary span:before { content: '\2713'; position: absolute; left: 2px; color: #168b5a; font-weight: 900; }
.public-form-section { max-width: 1180px; margin: 0 auto; padding: 90px 24px 115px; display: grid; grid-template-columns: minmax(280px,.78fr) minmax(520px,1.22fr); align-items: start; gap: clamp(55px,8vw,105px); }
.public-form-copy { position: sticky; top: 120px; }.public-form-copy h2 { margin: 0; font-size: clamp(34px,3.4vw,48px); line-height: 1.1; letter-spacing: -1.8px; }.public-form-copy > p:not(.eyebrow) { color: #61738a; font-size: 17px; line-height: 1.65; }.public-form-copy ul { margin: 28px 0 0; padding: 0; display: grid; gap: 13px; list-style: none; color: #42566f; }.public-form-copy li { padding-left: 27px; position: relative; }.public-form-copy li:before { content: '\2713'; position: absolute; left: 0; color: #168b5a; font-weight: 900; }
.public-process { margin-top: 30px; display: grid; gap: 11px; }.public-process span { padding: 14px 16px; color: #40546c; border: 1px solid #dce7f2; border-radius: 10px; background: #f9fbfd; }.public-process b { margin-right: 11px; color: var(--blue); font-size: 11px; letter-spacing: 1px; }
.public-form-card { padding: clamp(25px,4vw,42px); border: 1px solid #d6e2ee; border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgba(17,58,94,.11); }.public-form-card__heading { margin-bottom: 28px; display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }.public-form-card__heading span { font-size: 23px; font-weight: 850; }.public-form-card__heading small { color: #74869c; font-size: 11px; }
.public-inquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }.public-field { display: grid; align-content: start; gap: 7px; }.public-field--wide,.public-form-alert { grid-column: 1/-1; }.public-field label { color: #31445e; font-size: 12px; font-weight: 800; }.public-field input,.public-field textarea { box-sizing: border-box; width: 100%; padding: 13px 14px; color: #172a43; border: 1px solid #cdd9e6; border-radius: 9px; background: #fbfdff; font: inherit; outline: none; transition: border-color .18s ease,box-shadow .18s ease,background .18s ease; }.public-field input { height: 50px; }.public-field textarea { min-height: 145px; resize: vertical; line-height: 1.55; }.public-field input:focus,.public-field textarea:focus { border-color: #1476dc; background: #fff; box-shadow: 0 0 0 4px rgba(20,118,220,.11); }
.public-field--honeypot { width: 1px; height: 1px; position: absolute; left: -10000px; overflow: hidden; }.public-consent { display: grid; grid-template-columns: 20px 1fr; gap: 9px; color: #5d7087; font-size: 12px; line-height: 1.5; }.public-consent input { width: 17px; height: 17px; margin: 1px 0 0; }.public-consent label { font-weight: 500; }.public-consent a { color: var(--blue); text-decoration: underline; }.public-consent .field-error { grid-column: 2; }
.public-form-alert { margin: 0; padding: 13px 15px; color: #9f2f26; border: 1px solid #f1c2bc; border-radius: 9px; background: #fff4f2; font-size: 13px; }.public-form-alert:empty { display: none; }.public-form-alert ul { margin: 0; padding-left: 18px; }.public-form-actions { display: flex; align-items: center; gap: 18px; }.public-form-actions button { cursor: pointer; }.public-form-actions > span { color: #7c8ba0; font-size: 11px; }
.public-status-page { min-height: 72vh; padding: 95px 24px; display: grid; place-items: center; background: radial-gradient(circle at 50% 20%,rgba(147,220,193,.28),transparent 32%),#f7fbff; }.public-status-card { max-width: 760px; padding: clamp(34px,6vw,70px); text-align: center; border: 1px solid #d5e4f1; border-radius: 22px; background: #fff; box-shadow: 0 28px 80px rgba(17,58,94,.12); }.public-status-card h1 { font-size: clamp(38px,4.5vw,57px); }.public-status-card > p:not(.eyebrow) { margin: 24px auto 30px; color: #61748c; font-size: 18px; line-height: 1.65; }.public-status-card .hero-actions { justify-content: center; }.public-status-icon { width: 66px; height: 66px; margin: 0 auto 22px; display: grid; place-items: center; color: #0d8855; border-radius: 20px; background: #e0f7ec; font-size: 29px; font-weight: 900; }
.legal-hero { text-align: center; }.legal-hero h1 { margin: 0 auto; }.legal-hero .eyebrow { justify-content: center; }.legal-hero > p:last-child { margin-right: auto; margin-left: auto; }.legal-layout { max-width: 1120px; margin: 0 auto; padding: 75px 24px 115px; display: grid; grid-template-columns: 225px minmax(0,1fr); align-items: start; gap: 75px; }.legal-index { padding: 20px; position: sticky; top: 115px; display: grid; gap: 11px; border: 1px solid #dce6f0; border-radius: 13px; background: #f8fbfe; }.legal-index strong { margin-bottom: 7px; color: #213a59; font-size: 12px; text-transform: uppercase; letter-spacing: .8px; }.legal-index a { color: #60728a; font-size: 13px; }.legal-index a:hover { color: var(--blue); }.legal-content { color: #4f6178; font-size: 16px; line-height: 1.75; }.legal-content section { margin-bottom: 52px; scroll-margin-top: 120px; }.legal-content h2 { margin: 0 0 16px; color: var(--navy); font-size: 30px; letter-spacing: -1px; }.legal-content h3 { margin: 28px 0 8px; color: #263d5a; font-size: 19px; }.legal-content p { margin: 0 0 17px; }.legal-content a { color: var(--blue); text-decoration: underline; }.legal-content dl { display: grid; grid-template-columns: 130px 1fr; border-top: 1px solid #e1e9f1; }.legal-content dt,.legal-content dd { margin: 0; padding: 12px 0; border-bottom: 1px solid #e1e9f1; }.legal-content dt { color: #283e58; font-weight: 800; }
@media (max-width: 980px) { .public-page-hero { grid-template-columns: 1fr; }.public-contact-card,.trial-summary { max-width: 480px; }.public-form-section { grid-template-columns: 1fr; }.public-form-copy { position: static; }.legal-layout { grid-template-columns: 1fr; gap: 35px; }.legal-index { position: static; grid-template-columns: repeat(2,1fr); }.legal-index strong { grid-column: 1/-1; } }
@media (max-width: 620px) { .public-inquiry-form { grid-template-columns: 1fr; }.public-field--wide,.public-form-alert { grid-column: 1; }.public-form-card__heading,.public-form-actions { align-items: flex-start; flex-direction: column; }.public-page-hero,.legal-hero { padding-top: 58px; padding-bottom: 58px; }.public-page-hero h1,.legal-hero h1 { font-size: 41px; }.legal-content dl { grid-template-columns: 1fr; }.legal-content dt { padding-bottom: 0; border-bottom: 0; }.legal-content dd { padding-top: 3px; } }

/* Formularios privados comunes. */
.editor-page { color: #172b47; font-size: 15px; }
.editor-header { min-height: 112px; padding: 24px 26px; display: flex; align-items: center; justify-content: space-between; gap: 25px; border: 1px solid #dfe7f0; border-radius: 14px; background: linear-gradient(120deg,#fff 0,#fff 65%,#eef6ff 100%); box-shadow: 0 10px 30px rgba(27,54,87,.045); }.editor-header .eyebrow { color: #0b69ce; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }.editor-header h1 { margin: 5px 0 4px; font-size: clamp(26px,2.25vw,36px); line-height: 1.12; }.editor-header p { margin: 0; color: #667890; font-size: 14px; }
.editor-form { margin-top: 18px; display: grid; gap: 15px; }.editor-validation { margin: 0; padding: 14px 17px; color: #8f342f; border: 1px solid #efbdb8; border-radius: 10px; background: #fff4f2; }.editor-validation.validation-summary-valid { display: none; }.editor-validation ul { margin: 6px 0 0; }
.editor-card { padding: 24px 26px 27px; border: 1px solid #dfe7f0; border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(25,50,82,.035); }.editor-card > header { margin-bottom: 22px; display: flex; align-items: center; gap: 12px; }.editor-step { width: 38px; height: 38px; display: grid; place-items: center; color: #1268c7; border-radius: 10px; background: #eaf4ff; font-size: 11px; font-weight: 900; }.editor-card h2 { margin: 0; font-size: 19px; }.editor-card header p { margin: 3px 0 0; color: #78889d; font-size: 12px; }
.editor-grid { display: grid; gap: 16px; }.editor-grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }.editor-grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }.editor-grid--7 { grid-template-columns: repeat(7,minmax(80px,1fr)); }.editor-grid--compact { margin-top: 18px; padding-top: 18px; border-top: 1px solid #e9eef4; }.field-span-2 { grid-column: span 2; }.field-span-3 { grid-column: 1 / -1; }.editor-field-help { margin: 0; color: #667890; font-size: 12px; line-height: 1.55; }.editor-field-help--warning { padding: 10px 12px; color: #78521b; border: 1px solid #ead5aa; border-radius: 8px; background: #fff9ed; }.editor-field-help--warning strong { color: #68420d; }
.editor-grid label { min-width: 0; display: grid; gap: 7px; color: #52647b; font-size: 12px; font-weight: 800; }.editor-grid input,.editor-grid select,.editor-grid textarea { width: 100%; min-width: 0; height: 43px; padding: 0 12px; color: #1c334e; border: 1px solid #d3deea; border-radius: 8px; background: #fafbfd; font: inherit; font-size: 14px; font-weight: 600; box-sizing: border-box; }.editor-grid input:focus,.editor-grid select:focus,.editor-grid textarea:focus { border-color: #599bdd; outline: 3px solid rgba(18,105,198,.1); background: #fff; }.editor-hours input { text-align: center; }
.switch-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.switch-field { min-height: 68px; padding: 12px 13px; display: flex; align-items: flex-start; gap: 10px; border: 1px solid #e0e7ef; border-radius: 9px; background: #fbfcfe; cursor: pointer; }.switch-field input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: #0d6bc9; }.switch-field span { min-width: 0; }.switch-field strong,.switch-field small { display: block; }.switch-field strong { color: #2a405b; font-size: 12px; }.switch-field small { margin-top: 3px; color: #7c899a; font-size: 10px; line-height: 1.35; }.switch-field--danger { border-color: #f0d3cf; background: #fff9f8; }.switch-field--danger strong { color: #9a413a; }
.editor-actions { padding: 14px 16px; position: sticky; z-index: 20; bottom: 14px; display: flex; align-items: center; justify-content: flex-end; gap: 9px; border: 1px solid #d9e3ee; border-radius: 11px; background: rgba(255,255,255,.94); box-shadow: 0 14px 38px rgba(21,45,76,.13); backdrop-filter: blur(8px); }
@media (max-width: 1100px) { .editor-grid--7 { grid-template-columns: repeat(4,minmax(0,1fr)); }.switch-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .editor-header { align-items: flex-start; flex-direction: column; }.editor-grid--2,.editor-grid--3 { grid-template-columns: 1fr; }.editor-grid--7 { grid-template-columns: repeat(2,minmax(0,1fr)); }.field-span-2,.field-span-3 { grid-column: auto; }.switch-grid { grid-template-columns: 1fr; }.editor-card { padding: 20px; } }
.editor-grid textarea { min-height: 112px; height: auto; padding-block: 11px; resize: vertical; }.editor-display { min-height: 68px; padding: 12px 14px; display: grid; gap: 5px; align-content: center; border: 1px solid #dbe5ef; border-radius: 9px; background: #f6f9fc; }.editor-display span { color: #718096; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }.editor-display strong { color: #223a56; font-size: 14px; line-height: 1.45; }
.editor-image-preview img { display: block; max-width: 240px; max-height: 120px; width: auto; height: auto; object-fit: contain; border-radius: 8px; background: #fff; padding: 8px; border: 1px solid #dbe5ef; }
.editor-subsection { grid-column: 1 / -1; margin-top: 10px; padding-top: 18px; border-top: 1px solid #dbe5ef; }.editor-subsection h3 { margin: 0 0 4px; color: #173453; font-size: 18px; }.editor-subsection p { margin: 0; color: #66758a; font-size: 14px; }

/* Área privada 2026: componentes comunes para todos los módulos. */
.sr-only { width: 1px; height: 1px; padding: 0; position: absolute; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.admin-body .sidebar { overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; overscroll-behavior: contain; }
.admin-body .sidebar-nav { flex: 0 0 auto; }
.sidebar-context { margin: 0 2px 15px; padding: 12px; display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 9px; border: 1px solid rgba(255,255,255,.12); border-radius: 11px; background: rgba(255,255,255,.055); }
.sidebar-context-avatar { width: 40px; height: 40px; grid-row: 1 / span 2; object-fit: cover; border: 2px solid rgba(255,255,255,.22); border-radius: 50%; }
.sidebar-context-avatar--logo { object-fit: contain; padding: 4px; border-radius: 12px; background: #fff; box-sizing: border-box; }
.sidebar-context-avatar--fallback { display: grid; place-items: center; color: #0a56af; background: #eaf3ff; font-size: 15px; font-weight: 900; }
.sidebar-context-copy { min-width: 0; align-self: center; }.sidebar-context-copy strong,.sidebar-context-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.sidebar-context-copy strong { color: #fff; font-size: 12px; }.sidebar-context-copy small { margin-top: 3px; color: #9eb5d1; font-size: 9px; }
.employee-summary-link { color: inherit; text-decoration: none; }
.employee-summary-link:hover,.employee-summary-link:focus-visible { text-decoration: underline; text-underline-offset: .16em; }
.sidebar-context-back { grid-column: 2; color: #c9dcf4; font-size: 9px; font-weight: 750; }.sidebar-context-back:hover { color: #fff; }
.sidebar-nav .nav-badge { min-width: 22px; height: 22px; margin-left: auto; padding: 0 6px; display: inline-grid; place-items: center; color: #fff; border-radius: 20px; background: #e68a27; font-size: 10px; line-height: 1; }
.sidebar-nav .nav-badge.is-danger { background: #dc3545; }
.sidebar-subnav { margin: 2px 0 12px 38px; display: grid; gap: 4px; }
.sidebar-sub-link { min-height: 34px; width: calc(100% - 28px); padding: 0 13px; display: flex; align-items: center; color: #b9d1ed; border-radius: 8px; font-size: 12px; font-weight: 750; text-decoration: none; }
.sidebar-sub-link:hover,.sidebar-sub-link.active { color: #fff; background: rgba(255,255,255,.1); }
.sidebar-sub-link.active { background: rgba(18,103,214,.82); box-shadow: inset 3px 0 0 rgba(255,255,255,.35); }

.management-area { width: 100%; }
.management-page { position: relative; color: #172b47; font-size: 15px; line-height: 1.45; transition: opacity .18s ease; }
.management-page.is-loading,[data-management-content].is-loading { min-height: 360px; opacity: .45; pointer-events: none; }
.management-page.is-loading::after,[data-management-content].is-loading::after { content: ""; width: 34px; height: 34px; position: fixed; z-index: 10; top: 50%; left: calc(50% + 116px); border: 4px solid #d5e2f0; border-top-color: #0a68ce; border-radius: 50%; animation: dashboard-ajax-spin .7s linear infinite; }
.context-breadcrumb { margin-bottom: 18px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #7a899d; font-size: 12px; }.context-breadcrumb a { color: #1768bd; font-weight: 750; }.context-breadcrumb strong { color: #52647c; }
.management-header { min-height: 112px; padding: 24px 26px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border: 1px solid #dfe7f0; border-radius: 14px; background: linear-gradient(120deg,#fff 0,#fff 65%,#eef6ff 100%); box-shadow: 0 10px 30px rgba(27,54,87,.045); }
.management-header .eyebrow { color: #0b69ce; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }.management-header h1 { margin: 5px 0 4px; color: #162e4c; font-size: clamp(26px,2.25vw,36px); line-height: 1.12; }.management-header p { max-width: 760px; margin: 0; color: #667890; font-size: 14px; }
.management-header-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.admin-body .btn { min-height: 40px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid transparent; border-radius: 8px; font: inherit; font-size: 13px; font-weight: 800; line-height: 1; text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .12s ease,box-shadow .12s ease,background .12s ease; }.admin-body .btn:hover { transform: translateY(-1px); }.admin-body .btn-primary { color: #fff; background: linear-gradient(135deg,#0b70da,#0759bd); box-shadow: 0 8px 18px rgba(9,98,201,.18); }.admin-body .btn-primary:hover { color: #fff; background: #0757b8; }.admin-body .btn-secondary { color: #175caa; border-color: #cadced; background: #fff; }.admin-body .btn-secondary:hover { background: #edf6ff; }.admin-body .btn-quiet { color: #63758b; background: transparent; }.admin-body .btn-danger { color: #fff; background: #be443b; }.admin-body .btn-success { color:#fff; background:#0f8a5f; box-shadow:0 8px 18px rgba(15,138,95,.16); }.admin-body .btn-success:hover { color:#fff; background:#08764f; }.admin-body .btn-row { min-height: 34px; padding-inline: 11px; color: #0963c1; background: #edf6ff; font-size: 12px; }
.management-toolbar { margin: 18px 0 12px; padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #e0e7ef; border-radius: 11px; background: #fff; }
.management-search { min-width: min(520px,70%); display: flex; align-items: center; gap: 8px; }.management-search > span { color: #8291a4; font-size: 20px; }.management-search input { min-width: 180px; height: 40px; padding: 0 12px; flex: 1; color: #21354f; border: 1px solid #d5dfeb; border-radius: 8px; background: #f9fbfd; font: inherit; font-size: 14px; }.management-search input:focus { border-color: #5b9de2; outline: 3px solid rgba(20,110,205,.1); background: #fff; }
.management-toolbar select { height: 40px; min-width: 160px; padding: 0 36px 0 12px; color: #21354f; border: 1px solid #d5dfeb; border-radius: 8px; background: #f9fbfd; font: inherit; font-size: 14px; font-weight: 750; }
.management-toolbar select:focus { border-color: #5b9de2; outline: 3px solid rgba(20,110,205,.1); background: #fff; }
.license-filter-form{width:100%;min-width:0;flex:1 1 auto;flex-wrap:wrap}
.license-filter-form>span[aria-hidden="true"]{display:none}
.license-filter-form input[type="search"]{min-width:250px;flex:1 1 320px}
.license-filter-form select{min-width:145px;flex:0 1 175px}
.license-filter-form #license-centre-filter{flex-basis:215px}
.license-filter-form .btn{flex:0 0 auto}
.management-toolbar.expense-toolbar{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-items:stretch;gap:10px 12px;padding:12px 14px}
.expense-filter-form{grid-column:1;grid-row:1 / span 2;width:100%;min-width:0!important;display:grid!important;grid-template-columns:minmax(96px,.68fr) minmax(100px,.72fr) minmax(150px,1.18fr) minmax(145px,1.12fr) minmax(235px,1.85fr) minmax(140px,1fr) minmax(200px,1.55fr) minmax(145px,1.05fr) auto;grid-template-rows:auto 40px 40px;align-items:end;gap:5px 11px}
.expense-filter-form>span[aria-hidden="true"]{display:none}
.expense-filter-form label.sr-only{position:static!important;width:auto!important;height:auto!important;margin:0!important;padding:0 2px!important;overflow:hidden!important;clip:auto!important;clip-path:none!important;white-space:nowrap!important;text-overflow:ellipsis;color:#6f8197;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.expense-filter-form label[for="management-search-input"]{display:none!important}
.expense-filter-form label[for="expense-year-filter"],.expense-filter-form #expense-year-filter{grid-column:1}
.expense-filter-form label[for="expense-month-filter"],.expense-filter-form #expense-month-filter{grid-column:2}
.expense-filter-form label[for="management-status-filter"],.expense-filter-form #management-status-filter{grid-column:3}
.expense-filter-form label[for="expense-closure-filter"],.expense-filter-form #expense-closure-filter{grid-column:4}
.expense-filter-form label[for="expense-category-filter"],.expense-filter-form #expense-category-filter{grid-column:5}
.expense-filter-form label[for="expense-centre-filter"],.expense-filter-form #expense-centre-filter{grid-column:6}
.expense-filter-form label[for="expense-worker-filter"],.expense-filter-form #expense-worker-filter{grid-column:7}
.expense-filter-form label[for="expense-account-filter"],.expense-filter-form #expense-account-filter{grid-column:8}
.expense-filter-form label{grid-row:1}
.expense-filter-form input[type="search"],.expense-filter-form select{width:100%;min-width:0;height:40px;box-sizing:border-box}
.expense-filter-form input[type="search"]{grid-column:1 / 5;grid-row:3}
.expense-filter-form select{grid-row:2}
.expense-filter-form input[type="hidden"]{display:none}
.expense-filter-form .btn{height:40px;min-width:96px;justify-content:center;white-space:nowrap}
.expense-filter-form button[type="submit"]{grid-column:5;grid-row:3}
.expense-filter-form .btn-quiet{grid-column:6;grid-row:3;min-width:96px}
.expense-filter-form--closures{grid-template-columns:repeat(12,minmax(0,1fr))!important}
.expense-filter-form--closures label[for="expense-year-filter"],.expense-filter-form--closures #expense-year-filter{grid-column:1}
.expense-filter-form--closures label[for="expense-month-filter"],.expense-filter-form--closures #expense-month-filter{grid-column:2}
.expense-filter-form--closures label[for="management-status-filter"],.expense-filter-form--closures #management-status-filter{grid-column:3 / 5}
.expense-filter-form--closures label[for="expense-centre-filter"],.expense-filter-form--closures #expense-centre-filter{grid-column:5 / 7}
.expense-filter-form--closures label[for="expense-worker-filter"],.expense-filter-form--closures #expense-worker-filter{grid-column:7 / 10}
.expense-filter-form--closures label[for="expense-account-filter"],.expense-filter-form--closures #expense-account-filter{grid-column:10 / 13}
.expense-filter-form--closures input[type="search"]{grid-column:1 / 5;grid-row:3}
.expense-filter-form--closures button[type="submit"]{grid-column:5;grid-row:3}
.expense-filter-form--closures .btn-quiet{grid-column:6;grid-row:3}
.expense-toolbar .expense-filter-form--closures + .expense-view-tools{min-width:max-content}
.management-toolbar.expense-toolbar--accounts{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;align-items:end;column-gap:18px}
.expense-filter-form--accounts{grid-column:1;grid-row:1;grid-template-columns:minmax(280px,1.5fr) minmax(220px,1fr) minmax(150px,.65fr) auto auto!important;grid-template-rows:auto 40px;align-items:end}
.expense-filter-form--accounts label[for="management-search-input"]{display:block!important;grid-column:1;grid-row:1}
.expense-filter-form--accounts input[type="search"]{grid-column:1;grid-row:2}
.expense-filter-form--accounts label[for="expense-worker-filter"],.expense-filter-form--accounts #expense-worker-filter{grid-column:2}
.expense-filter-form--accounts label[for="management-status-filter"],.expense-filter-form--accounts #management-status-filter{grid-column:3}
.expense-filter-form--accounts label{grid-row:1}
.expense-filter-form--accounts select{grid-row:2}
.expense-filter-form--accounts button[type="submit"]{grid-column:4;grid-row:2}
.expense-filter-form--accounts .btn-quiet{grid-column:5;grid-row:2}
.expense-toolbar--accounts .expense-view-tools{grid-column:2;grid-row:1;align-self:end}
.expense-view-tools{grid-column:1;grid-row:2;width:auto;padding-top:0;justify-content:flex-end;justify-self:end;align-self:end;flex-wrap:nowrap;border-top:0;z-index:2}
.expense-view-tools>span{margin-right:auto}
.expense-view-tools .btn{height:40px;white-space:nowrap}
.expense-view-tools .employee-view-switch{flex:0 0 auto}
.management-total { padding-right: 7px; display: flex; align-items: baseline; gap: 6px; color: #7b899a; }.management-total strong { color: #183453; font-size: 20px; }.management-total span { font-size: 12px; }
.management-table-wrap { overflow-x: auto; border: 1px solid #dfe7f0; border-radius: 12px; background: #fff; box-shadow: 0 8px 24px rgba(25,50,82,.035); }
.management-table { width: 100%; border-collapse: collapse; }.management-table th,.management-table td { padding: 14px 15px; border-bottom: 1px solid #e9eef4; text-align: left; vertical-align: middle; }.management-table thead th { color: #738399; background: #f7f9fc; font-size: 11px; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }.management-table tbody th { min-width: 250px; font-weight: inherit; }.management-table tbody td { color: #51647c; font-size: 13px; }.management-table tbody tr:last-child th,.management-table tbody tr:last-child td { border-bottom: 0; }.management-table tbody tr:hover { background: #fbfdff; }
.management-identity { display: flex; align-items: center; gap: 11px; }.management-identity > img,.management-identity > span { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; object-fit: cover; color: #1268c3; border-radius: 10px; background: #eaf4ff; font-size: 13px; font-weight: 900; }.management-identity strong,.management-identity small { display: block; }.management-identity strong { max-width: 270px; overflow: hidden; color: #193653; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }.management-identity small { max-width: 310px; margin-top: 3px; overflow: hidden; color: #8290a3; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.management-page .status-pill { padding: 6px 9px; font-size: 10px; font-weight: 850; }.status-pill--success { color: #16744f; background: #e5f6ed; }.status-pill--warning { color: #9b5b10; background: #fff1d9; }.status-pill--danger { color: #a23c35; background: #ffe8e5; }.status-pill--info { color: #135fae; background: #e7f2ff; }.status-pill--muted,.status-pill--neutral { color: #68788c; background: #edf1f5; }
.management-row-action { width: 1%; text-align: right !important; }
.management-empty { padding: 65px 25px; display: grid; justify-items: center; color: #748499; border: 1px dashed #cedae7; border-radius: 12px; background: #fbfcfe; text-align: center; }.management-empty > span { width: 54px; height: 54px; display: grid; place-items: center; color: #1972ca; border-radius: 15px; background: #eaf4ff; font-size: 25px; }.management-empty h2 { margin: 15px 0 5px; color: #294561; font-size: 20px; }.management-empty p { margin: 0; }
.management-empty--compact { min-height: 0; padding: 22px 26px; grid-template-columns: 44px minmax(0,1fr); align-items: center; justify-items: start; column-gap: 15px; text-align: left; }
.management-empty--compact > span { width: 44px; height: 44px; grid-row: 1 / span 2; border-radius: 13px; font-size: 21px; }
.management-empty--compact h2 { margin: 0 0 3px; font-size: 18px; }
.management-empty--compact p { grid-column: 2; }
.management-pagination { margin-top: 15px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #66788f; font-size: 12px; }.management-pagination > div { display: flex; gap: 8px; }
.management-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(360px,1fr)); gap: 15px; }
.management-card-grid--admin { margin-top: 14px; }
.management-card-grid--expense-tickets { grid-template-columns: repeat(4,minmax(0,1fr)); justify-content: stretch; align-items: stretch; }
.admin-module-summary { margin: 14px 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.admin-module-summary article,.admin-module-summary > a { min-width: 0; padding: 14px 16px; display: grid; gap: 4px; color: inherit; border: 1px solid #dce7f2; border-radius: 14px; background: linear-gradient(135deg,#fff,#f8fbff); box-shadow: 0 10px 25px rgba(22,48,79,.045); text-decoration: none; }
.admin-module-summary > a { position: relative; cursor: pointer; transition: transform .15s ease,border-color .15s ease,box-shadow .15s ease; }
.admin-module-summary > a:hover { transform: translateY(-2px); border-color: #90bfe9; box-shadow: 0 12px 28px rgba(22,76,132,.09); }
.admin-module-summary > a:focus-visible { outline: 3px solid rgba(11,103,200,.22); outline-offset: 2px; }
.admin-module-summary span { color: #6b7f96; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.admin-module-summary strong { overflow: hidden; color: #173451; text-overflow: ellipsis; white-space: nowrap; font-size: 23px; line-height: 1.1; }
.admin-module-summary small { overflow: hidden; color: #6f8298; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.admin-module-summary .is-green { border-color: #b9e5d0; background: #f2fbf6; }.admin-module-summary .is-green strong { color: #08764f; }
.admin-module-summary .is-blue { border-color: #c5def7; background: #f3f8ff; }.admin-module-summary .is-blue strong { color: #0b67c8; }
.admin-module-summary .is-orange { border-color: #f1d2a7; background: #fff8ee; }.admin-module-summary .is-orange strong { color: #b75b15; }
.admin-module-summary .is-purple { border-color: #d7ccff; background: #f7f4ff; }.admin-module-summary .is-purple strong { color: #6648d9; }
.admin-module-summary .is-slate { border-color: #d9e1ea; background: #f7f9fc; }.admin-module-summary .is-slate strong { color: #475569; }
.management-card { min-width: 0; padding: 16px; display: flex; flex-direction: column; gap: 14px; border: 1px solid #dbe5ef; border-radius: 14px; background: linear-gradient(150deg,#fff 0,#fff 74%,#f5faff 100%); box-shadow: 0 10px 26px rgba(22,48,79,.045); }
.management-card--warning { border-color: #f5c58c; background: linear-gradient(150deg,#fff 0,#fffaf4 100%); }
.management-card--danger { border-color: #f0b6b0; background: linear-gradient(150deg,#fff 0,#fff6f5 100%); }
.management-card__header { min-width: 0; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: start; gap: 11px; }
.management-card__icon { width: 42px; height: 42px; display: grid; place-items: center; color: #0b67c8; border: 1px solid #d4e4f4; border-radius: 12px; background: #eaf4ff; font-size: 13px; font-weight: 900; }
.management-card__eyebrow { color: #0b67c8; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.management-card__header h2 { margin: 2px 0 3px; overflow: hidden; color: #183451; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; line-height: 1.22; }
.management-card__header p { margin: 0; overflow: hidden; color: #74859a; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.management-card__metrics,.management-card__timeline { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.management-card__metrics span,.management-card__timeline span { min-width: 0; padding: 10px; border: 1px solid #e0e8f1; border-radius: 10px; background: #f9fbfd; }
.management-card__metrics small,.management-card__timeline small { display: block; margin-bottom: 4px; color: #7c8ca0; font-size: 10px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.management-card__metrics strong,.management-card__timeline strong { display: block; overflow: hidden; color: #173755; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.management-card__metrics--vacations strong { font-size: 15px; }
.management-card__metrics--vacations { grid-template-columns: repeat(4,minmax(0,1fr)); }
.management-card__metrics--requests { grid-template-columns: 1.25fr .9fr 1fr .7fr; }
.management-card-grid--holidays { grid-template-columns: repeat(auto-fill,minmax(min(100%,310px),1fr)); align-items: stretch; }
.management-card--holidays { min-height: 220px; padding: 0; gap: 0; overflow: hidden; border-color: #dce5ef; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(22,48,79,.07); }
.holiday-sheet-card__header { min-width: 0; display: grid; grid-template-columns: 116px minmax(0,1fr); flex: 1; }
.holiday-sheet-card__calendar { min-width: 0; display: flex; flex-direction: column; align-items: center; color: #173755; border-right: 1px solid #dfe7f0; background: linear-gradient(180deg,#f8fbff 0,#edf5fd 100%); text-align: center; }
.holiday-sheet-card__month { width: 100%; min-height: 48px; padding: 9px 8px 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg,#0b67c8,#084c96); }
.holiday-sheet-card__month span { max-width: 100%; overflow: hidden; font-size: 11px; font-weight: 950; letter-spacing: .1em; line-height: 1.1; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.holiday-sheet-card__month small { margin-top: 3px; color: #dbeeff; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.holiday-sheet-card__calendar > strong { margin-top: 15px; color: #102f4e; font-size: 48px; font-weight: 950; line-height: .95; letter-spacing: -.05em; }
.holiday-sheet-card__weekday { margin: 8px 8px 15px; color: #60758d; font-size: 11px; font-weight: 900; text-transform: capitalize; }
.holiday-sheet-card__content { min-width: 0; padding: 18px 18px 16px; display: flex; flex-direction: column; justify-content: center; }
.holiday-sheet-card__meta { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.holiday-sheet-card__meta .status-pill { flex: 0 0 auto; }
.holiday-sheet-card__content h2 { margin: 12px 0 9px; overflow: visible; color: #173451; font-size: 19px; line-height: 1.22; white-space: normal; }
.holiday-sheet-card__scope { margin: 0; display: flex; align-items: center; gap: 7px; color: #687d94; font-size: 12px; font-weight: 800; }
.holiday-sheet-card__scope svg { width: 16px; height: 16px; flex: 0 0 16px; fill: #0b67c8; }
.management-card--holidays .management-card__actions { min-height: 51px; margin: 0; padding: 8px 13px; border-top: 1px solid #e5ecf3; background: #fbfdff; }
.management-card--holidays .employee-list-edit { border-color: #bcd8f2; background: #fff; }
.management-card__metrics--shifts { grid-template-columns: 1.2fr .8fr .8fr 1fr; }
.management-card__metrics--incident-types { grid-template-columns: .65fr .85fr 1.1fr 1fr; }
.management-card__metrics--expense-categories { grid-template-columns: 1fr 1.35fr .7fr .9fr; }
.management-card__metrics--centres { grid-template-columns: 1.35fr 1.05fr .9fr 1.15fr; }
.management-card__metrics--centre-periods { grid-template-columns: repeat(4,minmax(0,1fr)); }
.management-card--centres .management-card__metrics span:first-child strong { white-space: normal; line-height: 1.25; }
.shift-color-dot { width: 12px; height: 12px; display: inline-block; margin-right: 6px; vertical-align: -1px; border: 1px solid rgba(23,52,81,.18); border-radius: 999px; }
.management-card__metrics--expenses { grid-template-columns: .85fr .85fr 1fr; }
.expense-category-chip{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;vertical-align:middle;color:#183451;font-weight:850}
.expense-category-chip__icon{width:24px;height:24px;flex:0 0 24px;display:grid;place-items:center;border-radius:8px;background:var(--expense-category-color,#2f80ed);color:#fff;box-shadow:0 3px 9px rgba(23,52,81,.13)}
.management-identity > .expense-category-chip__icon{background:var(--expense-category-color,#2f80ed);color:#fff}
.expense-category-chip__icon i{width:14px;height:14px;display:block;font-size:11px;line-height:1}
.expense-category-chip__icon i svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.expense-category-chip__text{min-width:0;display:flex;flex-direction:column;gap:1px}
.expense-category-chip__label{min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.15}
.expense-category-chip__meta{display:block;color:#718198;font-size:9px;font-weight:700;line-height:1.15;white-space:nowrap}
.management-card--expenses .expense-category-metric>strong{display:block}
.management-card--expenses .expense-category-metric .expense-category-chip{width:100%;justify-content:flex-end}
.management-card--expenses .expense-category-metric .expense-category-chip__label{font-size:11px}
.management-table .expense-category-chip{max-width:100%}
.management-card__metrics--closures { grid-template-columns: .85fr 1.15fr 1.25fr 1.25fr .65fr .85fr 1fr; }
.expense-state-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.expense-state-strip .status-pill { white-space: nowrap; }
.admin-module-summary--expenses { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.admin-module-summary--expense-closures { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.admin-module-summary--requests { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.admin-module-summary--incidents { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.admin-module-summary--incident-types { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.admin-module-summary--incident-types > a { min-height: 78px; padding: 11px 14px; gap: 2px; }
.admin-module-summary--incident-types span { font-size: 10px; }
.admin-module-summary--incident-types strong { font-size: 21px; }
.admin-module-summary--incident-types small { font-size: 11px; }
.admin-module-summary--incident-types > a.is-active { border-color: #0b67c8; box-shadow: inset 0 0 0 1px #0b67c8,0 10px 24px rgba(11,103,200,.12); }
.admin-module-summary--incident-types > a.is-active::after { content: ""; width: 8px; height: 8px; position: absolute; top: 10px; right: 10px; border-radius: 999px; background: #0b67c8; box-shadow: 0 0 0 4px rgba(11,103,200,.1); }
.admin-module-summary--expenses > a,.admin-module-summary--expense-closures > a { min-height: 86px; }
.admin-module-summary--expenses > a.is-active,.admin-module-summary--expense-closures > a.is-active { border-color: #0b67c8; background: linear-gradient(135deg,#fff,#f8fbff); box-shadow: 0 10px 24px rgba(11,103,200,.08); }
.admin-module-summary--expenses > a.is-active::after,.admin-module-summary--expense-closures > a.is-active::after { content: ""; width: 8px; height: 8px; position: absolute; top: 11px; right: 11px; border-radius: 999px; background: #0b67c8; box-shadow: none; }
.admin-module-summary--requests > a.is-active { border-color:#0b67c8; background:linear-gradient(135deg,#fff,#f7fbff); box-shadow:0 10px 24px rgba(11,103,200,.08); }
.admin-module-summary--requests > a.is-active::after { content:""; width:8px; height:8px; position:absolute; top:11px; right:11px; border-radius:999px; background:#0b67c8; }
.management-card__note { margin: 0; padding: 10px 12px; color: #52667f; border: 1px solid #e8eef5; border-radius: 10px; background: #fbfdff; font-size: 12px; line-height: 1.45; }
.management-card__progress { height: 8px; overflow: hidden; border-radius: 999px; background: #e7edf4; }
.management-card__progress i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#0b67c8,#22a474); }
.management-card__actions { margin-top: auto; padding-top: 2px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.inline-action-form { margin: 0; display: inline-flex; }
.inline-action-form .employee-list-shortcut { font-size: 11px; font-weight: 900; }
.management-card__actions .inline-action-form .employee-list-shortcut { width: auto; min-width: 64px; padding-inline: 10px; }
.management-card__actions .employee-list-edit { flex: 0 0 36px; }
.management-card--incidents .management-card__icon { color:#b45309; border-color:#fed7aa; background:#fff7ed; }
.management-card--vacations .management-card__icon { color:#6846d9; border-color:#d7ccff; background:#f5f1ff; }
.management-card--employment-periods .management-card__icon { color:#08764f; border-color:#bfe8d3; background:#f2fbf6; }
.management-card--documents .management-card__icon { color:#0b67c8; border-color:#c9e1f9; background:#eef7ff; }
.management-card--requests .management-card__icon { color:#b75b15; border-color:#f1d2a7; background:#fff8ee; }
.management-card--holidays .management-card__icon { color:#b42318; border-color:#fecaca; background:#fff1f2; }
.management-card--shifts .management-card__icon { color:#0f766e; border-color:#b7ebe4; background:#effcf9; }
.management-card--expenses .management-card__icon { color:#b45309; border-color:#fed7aa; background:#fff7ed; }
.management-card--expense-closures .management-card__icon { color:#0f766e; border-color:#b7ebe4; background:#effcf9; }
.management-card--expenses{position:relative;overflow:hidden;padding:0;gap:0;border-color:#d8e3ef;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(22,48,79,.07)}
.management-card--expenses::before,.management-card--expenses::after{content:"";position:absolute;top:92px;width:22px;height:22px;border-radius:50%;background:#edf3f9;box-shadow:0 0 0 1px #d8e3ef;z-index:1}
.management-card--expenses::before{left:-12px}
.management-card--expenses::after{right:-12px}
.management-card--expenses.management-card--warning{border-color:#f2c07f;background:#fffaf4}
.management-card--expenses.management-card--danger{border-color:#f1aaa5;background:#fff8f7}
.management-card--expenses .management-card__header{padding:16px 18px 14px;grid-template-columns:42px minmax(0,1fr) auto;border-bottom:1px dashed #cbd8e6;background:linear-gradient(180deg,#fff 0,#f8fbfe 100%)}
.management-card--expenses.management-card--warning .management-card__header{background:linear-gradient(180deg,#fffdf8 0,#fff7eb 100%)}
.management-card--expenses.management-card--danger .management-card__header{background:linear-gradient(180deg,#fff 0,#fff1f0 100%)}
.management-card--expenses .management-card__icon{border-radius:50%;font-size:18px}
.management-card--expenses .management-card__header h2{font-size:17px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.management-card--expenses .management-card__header p{font-size:12px;font-weight:750;color:#657891}
.management-card--expenses .management-card__metrics--expenses{position:relative;margin:0;padding:16px 18px 12px;display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:8px;background:#fff}
.management-card--expenses .management-card__metrics--expenses::before{content:"";position:absolute;left:18px;right:18px;bottom:0;border-bottom:1px dashed #d7e1ec}
.management-card--expenses .management-card__metrics--expenses span{padding:0;border:0;border-radius:0;background:transparent}
.management-card--expenses .management-card__metrics--expenses small{margin-bottom:3px;color:#8291a4;font-size:9px;letter-spacing:.08em}
.management-card--expenses .management-card__metrics--expenses strong{font-size:13px;white-space:normal}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2){padding:10px 12px;border-radius:14px;background:#0b67c8;color:#fff;text-align:center;box-shadow:0 10px 22px rgba(11,103,200,.18)}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2) small,.management-card--expenses .management-card__metrics--expenses span:nth-child(2) strong{color:#fff}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2) strong{font-size:18px}
.management-card--expenses .expense-state-strip{padding:12px 18px 0;display:flex;flex-wrap:wrap;gap:7px}
.management-card--expenses .management-card__note{margin:12px 18px 0;padding:10px 0 0;border:0;border-top:1px dashed #d7e1ec;border-radius:0;background:transparent;color:#52667f}
.management-card--expenses .management-card__note strong{display:block;margin-bottom:2px;color:#183451}
.management-card--expenses .management-card__actions{margin-top:auto;padding:14px 18px 16px;border-top:1px dashed #d7e1ec;background:linear-gradient(180deg,#fff 0,#f9fbfe 100%)}
.management-card--expenses{border-radius:13px;background:#fffdfa;box-shadow:0 12px 24px rgba(22,48,79,.055)}
.management-card--expenses::before,.management-card--expenses::after{top:78px;background:#edf3f9}
.management-card--expenses .management-card__header{position:relative;display:block;padding:14px 16px 16px;text-align:center;border-bottom:1px dashed #cbd8e6;background:linear-gradient(180deg,#fffdf8 0,#fffaf1 100%)}
.management-card--expenses .management-card__icon{width:34px;height:34px;margin:0 auto 7px;font-size:16px}
.management-card--expenses .management-card__header .status-pill{position:absolute;top:14px;right:15px}
.management-card--expenses .management-card__eyebrow{display:block;color:#0b67c8;font-size:9px;letter-spacing:.16em}
.management-card--expenses .management-card__header h2{max-width:86%;margin:4px auto 5px;color:#102b49;font-size:15px;line-height:1.23;text-align:center;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.management-card--expenses .management-card__header p{display:block;max-width:94%;margin:0 auto;color:#5f7085;font-size:10.5px;font-weight:800;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.management-card--expenses .management-card__metrics--expenses{padding:14px 16px 9px;display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fffdfa}
.management-card--expenses .management-card__metrics--expenses::before{display:none}
.management-card--expenses .management-card__metrics--expenses span{min-height:0;padding:8px 0;border-bottom:1px dotted #d4dfeb}
.management-card--expenses .management-card__metrics--expenses span:nth-child(1){padding-right:12px}
.management-card--expenses .management-card__metrics--expenses span:nth-child(3){padding-left:12px;text-align:right}
.management-card--expenses .management-card__metrics--expenses small{font-size:9px;letter-spacing:.12em}
.management-card--expenses .management-card__metrics--expenses strong{font-size:13px;color:#183451}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2){grid-column:1 / -1;order:3;margin-top:8px;padding:12px 0 3px;display:flex;align-items:baseline;justify-content:space-between;border-top:2px dashed #cad9e8;border-bottom:0;border-radius:0;background:transparent;box-shadow:none;text-align:left}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2) small{margin:0;color:#52667f;font-size:12px}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2) small::before{content:"TOTAL ";color:#102b49}
.management-card--expenses .management-card__metrics--expenses span:nth-child(2) strong{color:#0b67c8;font-size:23px;line-height:1}
.management-card--expenses .expense-state-strip{padding:8px 16px 0;justify-content:center}
.management-card--expenses .expense-state-strip .status-pill{border-radius:4px;transform:rotate(-1deg)}
.management-card--expenses .management-card__note{margin:10px 16px 0;padding:10px 0 0;border-top:1px dotted #d4dfeb;color:#657891;font-size:11.5px;text-align:left}
.management-card--expenses .management-card__note::before{content:"Concepto";display:block;margin-bottom:3px;color:#8291a4;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.management-card--expenses .management-card__note--expense-concept{font-size:0}
.management-card--expenses .management-card__note--expense-concept::before{font-size:9px}
.management-card--expenses .management-card__note--expense-concept strong{font-size:11.5px}
.management-card--expenses .management-card__note--expense-concept + .management-card__note{display:none}
.management-card--expenses .management-card__actions{padding:13px 16px 15px;border-top:1px dashed #d7e1ec;background:#fffdfa}
.management-card--expenses .expense-ticket-download{background:#fff7ed;border-color:#fed7aa;color:#b45309}
.management-card--expenses .expense-ticket-worker-badge{max-width:calc(100% - 90px);margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.management-card--expenses.expense-state-pending{border-color:#f2c07f;background:#fffaf4}
.management-card--expenses.expense-state-approved{border-color:#9edfc5;background:#f5fcf9}
.management-card--expenses.expense-state-in-closure{border-color:#9ec9f5;background:#f4f9ff}
.management-card--expenses.expense-state-liquidated{border-color:#7ed8b1;background:#f1fbf7}
.management-card--expenses.expense-state-denied{border-color:#f1aaa5;background:#fff8f7}
.management-card--expenses.expense-state-pending .management-card__header{background:linear-gradient(180deg,#fffdf8 0,#fff7eb 100%)}
.management-card--expenses.expense-state-approved .management-card__header{background:linear-gradient(180deg,#fff 0,#f0fbf6 100%)}
.management-card--expenses.expense-state-in-closure .management-card__header{background:linear-gradient(180deg,#fff 0,#f1f7ff 100%)}
.management-card--expenses.expense-state-liquidated .management-card__header{background:linear-gradient(180deg,#fff 0,#ecfbf5 100%)}
.management-card--expenses.expense-state-denied .management-card__header{background:linear-gradient(180deg,#fff 0,#fff1f0 100%)}
.management-card--expenses.expense-state-pending::before,.management-card--expenses.expense-state-pending::after{background:#fff4e0;box-shadow:0 0 0 1px #f2c07f}
.management-card--expenses.expense-state-approved::before,.management-card--expenses.expense-state-approved::after{background:#e9f9f2;box-shadow:0 0 0 1px #9edfc5}
.management-card--expenses.expense-state-in-closure::before,.management-card--expenses.expense-state-in-closure::after{background:#eaf4ff;box-shadow:0 0 0 1px #9ec9f5}
.management-card--expenses.expense-state-liquidated::before,.management-card--expenses.expense-state-liquidated::after{background:#e4f8ef;box-shadow:0 0 0 1px #7ed8b1}
.management-card--expenses.expense-state-denied::before,.management-card--expenses.expense-state-denied::after{background:#fff0ef;box-shadow:0 0 0 1px #f1aaa5}
.management-card-grid--expense-compact{grid-template-columns:repeat(8,minmax(118px,1fr));gap:10px}
.management-card--expense-compact{min-height:0;border-radius:14px}
.management-card--expense-compact::before,.management-card--expense-compact::after{display:none}
.management-card--expense-compact .management-card__header{padding:11px 10px 9px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;text-align:left;border-bottom:1px dotted #d6e2ee;background:linear-gradient(180deg,#fffdf8 0,#fffaf1 100%)}
.management-card--expense-compact .management-card__icon{display:none}
.management-card--expense-compact .management-card__eyebrow{display:none}
.management-card--expense-compact .management-card__header .status-pill{position:static;align-self:start;padding:4px 6px;font-size:8px}
.management-card--expense-compact .management-card__header h2{max-width:none;margin:0;color:#102b49;font-size:12px;line-height:1.2;text-align:left;white-space:nowrap;display:block;overflow:hidden;text-overflow:ellipsis}
.management-card--expense-compact .management-card__header p{max-width:none;margin:3px 0 0;color:#6f8094;font-size:9px;line-height:1.2;text-align:left;white-space:nowrap;display:block;overflow:hidden;text-overflow:ellipsis}
.management-card--expense-compact .management-card__metrics--expenses{padding:9px 10px 7px;display:grid;grid-template-columns:1fr;gap:5px;background:#fffdfa}
.management-card--expense-compact .management-card__metrics--expenses span{padding:0;display:flex;align-items:center;justify-content:space-between;gap:6px;border:0}
.management-card--expense-compact .management-card__metrics--expenses span:nth-child(2){grid-column:auto;order:0;margin:2px 0 3px;padding:7px 8px;border:0;border-radius:10px;background:#0b67c8;text-align:left}
.management-card--expense-compact .management-card__metrics--expenses small{margin:0;font-size:8px;letter-spacing:.08em}
.management-card--expense-compact .management-card__metrics--expenses strong{max-width:72px;font-size:10px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.management-card--expense-compact .management-card__metrics--expenses span:nth-child(2){display:grid;grid-template-columns:1fr;gap:2px;justify-items:start}
.management-card--expense-compact .management-card__metrics--expenses span:nth-child(2) small{color:#d8ecff!important;font-size:8px}
.management-card--expense-compact .management-card__metrics--expenses span:nth-child(2) small::before{content:""}
.management-card--expense-compact .management-card__metrics--expenses span:nth-child(2) strong{max-width:none;width:100%;color:#fff!important;font-size:17px;line-height:1.05;text-align:right;overflow:visible;text-overflow:clip}
.management-card--expense-compact .expense-category-metric>strong{max-width:none;width:100%;overflow:visible}
.management-card--expense-compact .expense-category-chip{gap:4px}
.management-card--expense-compact .expense-category-chip__icon{width:18px;height:18px;flex-basis:18px;border-radius:6px}
.management-card--expense-compact .expense-category-chip__icon i{font-size:9px}
.management-card--expense-compact .expense-category-chip__label{max-width:76px;font-size:9px}
.management-card--expense-compact .expense-category-metric .expense-category-chip{justify-content:flex-end}
.management-card--expense-compact .expense-state-strip,.management-card--expense-compact .management-card__note{display:none}
.management-card--expense-compact .management-card__actions{min-height:54px;padding:7px 9px 9px;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px;border-top:1px dotted #d6e2ee;background:#fffdfa}
.management-card--expense-compact .expense-ticket-worker-badge{display:block;flex:1 0 100%;max-width:100%;min-width:0;margin:0 0 2px;padding:4px 6px;font-size:8px;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.management-card--expense-compact .employee-list-shortcut{width:24px;height:24px;flex:0 0 24px;border-radius:7px}
.management-card--expense-compact .employee-list-shortcut svg{width:13px;height:13px}
.management-card--expense-compact .management-card__actions .inline-action-form{width:22px;flex:0 0 22px}
.management-card--expense-compact .management-card__actions .inline-action-form .employee-list-shortcut,
.management-card--expense-compact .management-card__actions .employee-list-shortcut,
.management-card--expense-compact .management-card__actions .employee-list-edit{width:22px;min-width:0;height:22px;flex:0 0 22px;padding:0;border-radius:6px}
.management-card--expense-compact .management-card__actions .employee-list-shortcut svg{width:12px;height:12px}
.management-table-wrap--expenses{overflow-x:auto}
.management-table--expenses{width:100%;table-layout:fixed}
.management-table--expenses:not(.management-table--accounting){min-width:1220px}
.management-table--expenses:not(.management-table--accounting) th:nth-child(1),.management-table--expenses:not(.management-table--accounting) td:nth-child(1){width:18%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(2),.management-table--expenses:not(.management-table--accounting) td:nth-child(2){width:6%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(3),.management-table--expenses:not(.management-table--accounting) td:nth-child(3){width:8%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(4),.management-table--expenses:not(.management-table--accounting) td:nth-child(4){width:9%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(5),.management-table--expenses:not(.management-table--accounting) td:nth-child(5){width:6%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(6),.management-table--expenses:not(.management-table--accounting) td:nth-child(6){width:9%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(7),.management-table--expenses:not(.management-table--accounting) td:nth-child(7){width:6%;text-align:right}
.management-table--expenses:not(.management-table--accounting) th:nth-child(8),.management-table--expenses:not(.management-table--accounting) td:nth-child(8){width:7%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(9),.management-table--expenses:not(.management-table--accounting) td:nth-child(9){width:8%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(10),.management-table--expenses:not(.management-table--accounting) td:nth-child(10){width:6%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(11),.management-table--expenses:not(.management-table--accounting) td:nth-child(11){width:6%}
.management-table--expenses:not(.management-table--accounting) th:nth-child(12),.management-table--expenses:not(.management-table--accounting) td:nth-child(12){width:160px}
.management-table--expenses td,.management-table--expenses th{overflow:hidden;text-overflow:ellipsis}
.management-table--expenses .management-identity{min-width:0}
.management-table--expenses .management-identity>div{min-width:0}
.management-table--expenses .management-identity strong,.management-table--expenses .management-identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.management-table--expenses .employee-list-actions{max-width:none;display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap}
.management-table--expenses .employee-list-actions .inline-action-form{width:28px;flex:0 0 28px}
.management-table--expenses .employee-list-actions .inline-action-form .employee-list-shortcut,
.management-table--expenses .employee-list-actions .employee-list-shortcut{width:28px;min-width:0;height:28px;flex:0 0 28px;padding:0;border-radius:8px}
.management-table--expenses .employee-list-actions .employee-list-shortcut svg{width:14px;height:14px}
.management-card-grid--expense-closures{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:14px}
.management-card--expense-closures{position:relative;overflow:hidden;min-height:292px;padding:0;border-color:#cfe7e2;background:linear-gradient(160deg,#fff 0,#f8fffd 100%);box-shadow:0 12px 26px rgba(22,48,79,.055)}
.management-card--expense-closures::before,.management-card--expense-closures::after{content:"";position:absolute;top:112px;width:20px;height:20px;border-radius:50%;background:#edf3f9;box-shadow:0 0 0 1px #d8e5ef}
.management-card--expense-closures::before{left:-11px}
.management-card--expense-closures::after{right:-11px}
.management-card--expense-closures .management-card__header{padding:15px 16px 14px;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;border-bottom:1px dashed #cbdde8;background:linear-gradient(180deg,#fbfffe 0,#effbf8 100%)}
.management-card--expense-closures .management-card__icon{width:38px;height:38px;border-radius:13px;color:#0f766e;border-color:#b7ebe4;background:#effcf9}
.management-card--expense-closures .management-card__header h2{font-size:15px;line-height:1.25;white-space:nowrap}
.management-card--expense-closures .management-card__header p{font-size:11.5px;font-weight:800}
.management-card--expense-closures .management-card__header .status-pill{padding:5px 8px;font-size:9px}
.closure-card-summary{padding:14px 16px 0;display:grid;gap:10px}
.closure-card-summary__amount{padding:13px 14px;border:1px solid #c9e1f9;border-radius:14px;background:linear-gradient(135deg,#f4f9ff,#fff);text-align:center}
.closure-card-summary__amount small{display:block;margin-bottom:4px;color:#6d8096;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.closure-card-summary__amount strong{display:block;color:#0b67c8;font-size:24px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.closure-card-summary__facts{display:grid;grid-template-columns:.72fr .72fr 1.56fr;gap:7px}
.closure-card-summary__facts span,.closure-card-summary__scope span{min-width:0;padding:8px 9px;border:1px solid #e0e9f2;border-radius:10px;background:#fbfdff}
.closure-card-summary__facts small,.closure-card-summary__scope small{display:block;margin-bottom:3px;color:#8191a4;font-size:8.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.closure-card-summary__facts strong,.closure-card-summary__scope strong{display:block;color:#183451;font-size:11.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.closure-card-summary__scope{display:grid;gap:7px}
.management-card--expense-closures .management-card__actions{margin-top:auto;padding:12px 16px 15px;border-top:1px dashed #d7e4ef;background:linear-gradient(180deg,rgba(255,255,255,.55),#fff)}
.management-card--expense-closures .management-card__actions .inline-action-form .employee-list-shortcut,
.management-card--expense-closures .management-card__actions .employee-list-shortcut{width:30px;min-width:0;height:30px;flex:0 0 30px;padding:0;border-radius:8px}
.management-card--expense-closures .management-card__actions .employee-list-shortcut svg{width:14px;height:14px}
.management-card--expense-closures .management-card__actions .employee-list-shortcut span{display:none}
.management-card--expense-closures.closure-state-open{border-color:#f0c774;background:linear-gradient(160deg,#fff 0,#fffaf0 100%)}
.management-card--expense-closures.closure-state-closed{border-color:#91d9b7;background:linear-gradient(160deg,#fff 0,#f2fbf7 100%)}
.management-card--expense-closures.closure-state-reopened{border-color:#9cc7f2;background:linear-gradient(160deg,#fff 0,#f3f8ff 100%)}
.management-card--expense-closures.closure-state-open .management-card__header{background:linear-gradient(180deg,#fffdf7 0,#fff4da 100%)}
.management-card--expense-closures.closure-state-closed .management-card__header{background:linear-gradient(180deg,#fff 0,#ecfbf5 100%)}
.management-card--expense-closures.closure-state-reopened .management-card__header{background:linear-gradient(180deg,#fff 0,#edf6ff 100%)}
.management-card--expense-closures.closure-state-open::before,.management-card--expense-closures.closure-state-open::after{background:#fff3d5;box-shadow:0 0 0 1px #f0c774}
.management-card--expense-closures.closure-state-closed::before,.management-card--expense-closures.closure-state-closed::after{background:#e3f8ee;box-shadow:0 0 0 1px #91d9b7}
.management-card--expense-closures.closure-state-reopened::before,.management-card--expense-closures.closure-state-reopened::after{background:#e7f2ff;box-shadow:0 0 0 1px #9cc7f2}
.management-table-wrap--expense-closures{overflow-x:hidden}
.management-table--expense-closures{width:100%;table-layout:fixed}
.management-table--expense-closures th:nth-child(1),.management-table--expense-closures td:nth-child(1){width:14%}
.management-table--expense-closures th:nth-child(2),.management-table--expense-closures td:nth-child(2){width:8%}
.management-table--expense-closures th:nth-child(3),.management-table--expense-closures td:nth-child(3){width:11%}
.management-table--expense-closures th:nth-child(4),.management-table--expense-closures td:nth-child(4){width:15%}
.management-table--expense-closures th:nth-child(5),.management-table--expense-closures td:nth-child(5){width:12%}
.management-table--expense-closures th:nth-child(6),.management-table--expense-closures td:nth-child(6){width:6%;text-align:right}
.management-table--expense-closures th:nth-child(7),.management-table--expense-closures td:nth-child(7){width:8%;text-align:right}
.management-table--expense-closures th:nth-child(8),.management-table--expense-closures td:nth-child(8){width:9%}
.management-table--expense-closures th:nth-child(9),.management-table--expense-closures td:nth-child(9){width:7%}
.management-table--expense-closures th:nth-child(10),.management-table--expense-closures td:nth-child(10){width:10%}
.management-table--expense-closures td,.management-table--expense-closures th{overflow:hidden;text-overflow:ellipsis}
.management-table--expense-closures .management-identity{min-width:0}
.management-table--expense-closures .management-identity>div{min-width:0}
.management-table--expense-closures .management-identity strong,.management-table--expense-closures .management-identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.management-table--expense-closures .employee-list-actions{max-width:none;display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap}
.management-table--expense-closures .employee-list-actions .inline-action-form{width:28px;flex:0 0 28px}
.management-table--expense-closures .employee-list-actions .inline-action-form .employee-list-shortcut,
.management-table--expense-closures .employee-list-actions .employee-list-shortcut{width:28px;min-width:0;height:28px;flex:0 0 28px;padding:0;border-radius:8px}
.management-table--expense-closures .employee-list-actions .employee-list-shortcut svg{width:14px;height:14px}
.management-table--expenses tbody tr.expense-state-pending td,.management-table--expenses tbody tr.expense-state-pending th{background:#fffaf3}
.management-table--expenses tbody tr.expense-state-approved td,.management-table--expenses tbody tr.expense-state-approved th{background:#f6fcf9}
.management-table--expenses tbody tr.expense-state-in-closure td,.management-table--expenses tbody tr.expense-state-in-closure th{background:#f4f9ff}
.management-table--expenses tbody tr.expense-state-liquidated td,.management-table--expenses tbody tr.expense-state-liquidated th{background:#effaf5}
.management-table--expenses tbody tr.expense-state-denied td,.management-table--expenses tbody tr.expense-state-denied th{background:#fff7f7}
.management-table--expense-closures tbody tr.closure-state-open td,.management-table--expense-closures tbody tr.closure-state-open th{background:#fffaf0}
.management-table--expense-closures tbody tr.closure-state-closed td,.management-table--expense-closures tbody tr.closure-state-closed th{background:#f2fbf7}
.management-table--expense-closures tbody tr.closure-state-reopened td,.management-table--expense-closures tbody tr.closure-state-reopened th{background:#f3f8ff}
.management-table--expenses tbody tr.expense-state-pending th:first-child{box-shadow:inset 4px 0 0 #f59e0b}
.management-table--expenses tbody tr.expense-state-approved th:first-child{box-shadow:inset 4px 0 0 #22c55e}
.management-table--expenses tbody tr.expense-state-in-closure th:first-child{box-shadow:inset 4px 0 0 #3b82f6}
.management-table--expenses tbody tr.expense-state-liquidated th:first-child{box-shadow:inset 4px 0 0 #10b981}
.management-table--expenses tbody tr.expense-state-denied th:first-child{box-shadow:inset 4px 0 0 #ef4444}
.management-table--expense-closures tbody tr.closure-state-open th:first-child{box-shadow:inset 4px 0 0 #f59e0b}
.management-table--expense-closures tbody tr.closure-state-closed th:first-child{box-shadow:inset 4px 0 0 #10b981}
.management-table--expense-closures tbody tr.closure-state-reopened th:first-child{box-shadow:inset 4px 0 0 #3b82f6}
.editor-actions-secondary{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.editor-actions--split{justify-content:space-between}
@media (max-width:1500px){.management-card-grid--expense-tickets{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1180px){.management-card-grid--expense-tickets{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.management-card-grid--expense-tickets{grid-template-columns:1fr}}
@media (max-width:1500px){.management-card-grid--expense-closures{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1180px){.management-card-grid--expense-closures{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.management-card-grid--expense-closures{grid-template-columns:1fr}}
@media (max-width:1680px){.management-card-grid--expense-compact{grid-template-columns:repeat(6,minmax(124px,1fr))}}
@media (max-width:1300px){.management-card-grid--expense-compact{grid-template-columns:repeat(4,minmax(130px,1fr))}}
@media (max-width:760px){.management-card-grid--expense-compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-editor-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 20px; align-items: start; }
.admin-editor-main { min-width: 0; }
.admin-editor-form--centre .admin-editor-card .simple-editor-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.admin-editor-card .simple-editor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.admin-editor-card label,.admin-editor-card .editor-display { padding: 12px; border: 1px solid #dbe6f1; border-radius: 11px; background: #f9fbfe; }
.admin-editor-card label > span,.admin-editor-card .editor-display > span { color: #687c93; font-size: 11px; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; }
.admin-editor-card input:not([type="checkbox"]):not([type="file"]):not([type="color"]),.admin-editor-card select,.admin-editor-card textarea { width: 100%; min-height: 44px; margin-top: 7px; padding: 0 11px; color: #142f4e; border: 1px solid #cad9e8; border-radius: 9px; background: #fff; font: inherit; font-size: 14px; font-weight: 700; }
.admin-editor-card textarea { min-height: 110px; padding-top: 10px; resize: vertical; }
.admin-editor-card input[type="file"] { width: 100%; margin-top: 9px; padding: 9px; border: 1px dashed #bfd2e5; border-radius: 9px; background: #fff; }
.admin-editor-card input[type="color"] { width: 78px; height: 44px; margin-top: 7px; padding: 3px; border: 1px solid #cad9e8; border-radius: 9px; background: #fff; }
.admin-editor-card small { display: block; margin-top: 6px; color: #708399; font-size: 11px; line-height: 1.35; }
.admin-editor-card .switch-field { display: flex; align-items: center; gap: 12px; min-height: 68px; }
.admin-editor-card .switch-field input[type="checkbox"] { width: 20px; height: 20px; accent-color: #0b67c8; }
.admin-editor-card .editor-subsection { grid-column: 1 / -1; padding: 13px 14px; border: 1px solid #dbe6f1; border-radius: 12px; background: #f1f7fe; }
.admin-editor-card .editor-subsection h3 { margin: 0 0 4px; color: #173755; font-size: 16px; }
.admin-editor-card .editor-subsection p { margin: 0; color: #62778f; font-size: 12px; }
.admin-editor-card .field-span-2 { grid-column: 1 / -1; }
.admin-editor-help { position: sticky; top: 92px; }
.request-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:20px; align-items:start; }
.request-editor-main { min-width:0; display:grid; gap:16px; }
.request-editor-card { padding:18px 20px; }
.request-editor-card > header { margin-bottom:14px; }
.request-editor-grid { display:grid; gap:12px; }
.request-editor-grid--identity { grid-template-columns:1fr 1fr; }
.request-control--title { grid-column:1 / -1; }
.request-editor-grid--period { grid-template-columns:repeat(4,minmax(0,1fr)); }
.request-all-day-switch,.request-generate-switch { grid-column:span 2; }
.request-editor-grid--resolution { grid-template-columns:1fr 1fr; }
.request-notes-field,.request-upload-card,.request-file-error,.request-current-file { grid-column:1 / -1; }
.request-editor-card label,.request-current-file { padding:12px; border:1px solid #dbe6f1; border-radius:11px; background:#f9fbfe; }
.request-editor-card label > span,.request-current-file span { color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.request-editor-card input:not([type="checkbox"]),.request-editor-card select,.request-editor-card textarea { width:100%; min-height:44px; margin-top:7px; padding:0 11px; color:#142f4e; border:1px solid #cad9e8; border-radius:9px; background:#fff; font:inherit; font-size:14px; font-weight:700; }
.request-editor-card textarea { min-height:104px; padding-top:10px; resize:vertical; }
.request-editor-card small { display:block; margin-top:6px; color:#708399; font-size:11px; line-height:1.35; }
.request-readonly-card { min-width:0; padding:14px 15px; border:1px solid #dbe6f1; border-radius:12px; background:#f8fbff; }
.request-readonly-card > span { display:block; color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.request-readonly-card > strong { display:block; margin-top:7px; color:#142f4e; font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.request-readonly-card--wide { grid-column:1 / -1; }
.request-readonly-card--amount > strong { color:#0866c6; font-size:20px; }
.request-hour-bank-effect { grid-column:span 2; display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid #bfe8d6; border-radius:12px; background:#f0fbf6; color:#315b4c; }
.request-hour-bank-effect strong { flex:0 0 auto; color:#087f5b; }
.request-hour-bank-effect span { font-size:12px; line-height:1.45; }
.request-rejection-reason { grid-column:1 / -1; border-color:#efc4c0 !important; background:#fff8f7 !important; }
.request-rejection-reason[hidden] { display:none !important; }
.request-duration-picker { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:start; gap:9px; margin-top:7px; color:#142f4e; font-size:14px; font-weight:700; letter-spacing:normal; text-transform:none; }
.request-duration-picker > span { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:7px; }
.request-duration-picker select { min-width:0; margin-top:0!important; }
.request-duration-picker small { margin:0; color:#526a84; font-size:12px; font-weight:800; letter-spacing:normal; text-transform:none; }
.request-duration-picker > b { align-self:center; padding-bottom:18px; color:#73869c; font-size:20px; }
.request-editor-card label.is-disabled { opacity:.72; background:#f1f5f9; }
.request-editor-card label.is-disabled input:not([type="checkbox"]),.request-editor-card label.is-disabled select { background:#eef3f8; }
.request-current-file { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#f5fbff; }
.request-current-file strong { display:block; margin-top:5px; color:#173755; }
.request-upload-card { min-height:106px; padding:14px; display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:14px; border:2px dashed #bfd5ea; border-radius:13px; background:linear-gradient(135deg,#f8fbff,#eef7ff); outline:none; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.request-upload-card:focus,.request-upload-card.is-dragging { border-color:#0b70da; background:#edf7ff; box-shadow:0 0 0 5px rgba(11,112,218,.09); }
.request-upload-card.has-file { border-style:solid; border-color:#9ed9be; background:linear-gradient(135deg,#f7fffb,#edf9f3); }
.request-upload-card.has-error { border-color:#e29d96; background:#fff7f6; }
.request-upload-card__icon { width:48px; height:48px; display:grid; place-items:center; color:#0b67c8; border-radius:14px; background:#dceeff; font-size:24px; font-weight:950; }
.request-upload-card.has-file .request-upload-card__icon { color:#08764f; background:#dff5e9; }
.request-upload-card strong { margin-top:4px; display:block; overflow:hidden; color:#163653; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
.request-upload-card__clear { grid-column:2/4; justify-self:start; padding:0; color:#a34d45; border:0; background:transparent; font:inherit; font-size:11px; font-weight:850; cursor:pointer; }
.request-file-error { margin:0; padding:10px 12px; color:#9c3c35; border:1px solid #efc1bc; border-radius:9px; background:#fff5f4; font-size:12px; }
.request-editor-help { position:sticky; top:92px; }
.holiday-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.holiday-editor-main { min-width:0; display:grid; gap:16px; }
.holiday-editor-card { padding:18px 20px; }
.holiday-editor-card > header { margin-bottom:14px; }
.holiday-editor-grid { display:grid; grid-template-columns:1.4fr .8fr .45fr; gap:12px; }
.holiday-editor-card label { padding:12px; border:1px solid #dbe6f1; border-radius:11px; background:#f9fbfe; }
.holiday-editor-card label > span { color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.holiday-editor-card input:not([type="color"]) { width:100%; min-height:44px; margin-top:7px; padding:0 11px; color:#142f4e; border:1px solid #cad9e8; border-radius:9px; background:#fff; font:inherit; font-size:14px; font-weight:700; }
.holiday-editor-card input[type="color"] { width:100%; height:44px; margin-top:7px; padding:3px; border:1px solid #cad9e8; border-radius:9px; background:#fff; }
.holiday-editor-card small { display:block; margin-top:6px; color:#708399; font-size:11px; line-height:1.35; }
.holiday-scope-summary { display:grid; grid-template-columns:58px minmax(0,1fr); gap:14px; align-items:center; padding:14px; border:1px solid #dbe6f1; border-radius:12px; background:#f8fbff; }
.holiday-scope-summary small { margin:0; color:#0b67c8; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.holiday-scope-summary strong { display:block; margin-top:3px; color:#173755; font-size:18px; }
.holiday-scope-summary p { margin:4px 0 0; color:#687c93; font-size:12px; }
.holiday-editor-help { position:sticky; top:92px; }
.holiday-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 14px;padding:6px;border:1px solid #d7e4f1;border-radius:14px;background:#edf3f9}
.holiday-view-tabs>a{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;padding:9px 12px;color:#536a83;border:1px solid transparent;border-radius:10px;text-decoration:none;transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease}
.holiday-view-tabs>a>span:first-child{display:grid;width:34px;height:34px;place-items:center;color:#0b67c8;border-radius:9px;background:#deedfb;font-size:17px;font-weight:900}
.holiday-view-tabs>a span:last-child{min-width:0}
.holiday-view-tabs>a strong,.holiday-view-tabs>a small{display:block}
.holiday-view-tabs>a strong{font-size:13px;line-height:1.2}
.holiday-view-tabs>a small{margin-top:2px;color:#71849a;font-size:11px}
.holiday-view-tabs>a:hover{color:#0b5eb5;background:rgba(255,255,255,.65)}
.holiday-view-tabs>a.is-active{color:#0b5eb5;border-color:#c7dbef;background:#fff;box-shadow:0 5px 14px rgba(17,68,113,.08)}
.holiday-calendar-panel{margin:14px 0 18px;padding:16px;border:1px solid #d9e5f1;border-radius:15px;background:#fff;box-shadow:0 12px 30px rgba(24,48,80,.045)}
.holiday-calendar-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.holiday-calendar-panel>header small{display:block;color:#0b67c8;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.holiday-calendar-panel>header h2{margin:2px 0 0;color:#143253;font-size:22px;line-height:1.1}
.holiday-calendar-panel>header nav{display:flex;align-items:center;gap:8px}
.holiday-calendar-panel__controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.holiday-calendar-mode-switch{padding:4px;border:1px solid #d6e3ef;border-radius:10px;background:#edf3f9}
.holiday-calendar-mode-switch a{min-width:54px;padding:7px 11px;color:#5c7188;border-radius:7px;font-size:11px;font-weight:900;text-align:center;text-decoration:none}
.holiday-calendar-mode-switch a:hover{color:#0b67c8;background:rgba(255,255,255,.68)}
.holiday-calendar-mode-switch a.is-active{color:#fff;background:#0b67c8;box-shadow:0 4px 10px rgba(11,103,200,.2)}
.holiday-calendar-weekdays,.holiday-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.holiday-calendar-weekdays{margin-bottom:8px;color:#71849b;font-size:11px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;text-align:center}
.holiday-calendar-weekdays span:nth-last-child(-n+2){padding:4px 0;color:#526b84;border-radius:7px;background:#edf3f8}
.holiday-calendar-day{position:relative;min-height:96px;overflow:hidden;padding:9px;border:1px solid #dfe8f2;border-radius:12px;background:#fbfdff;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.holiday-calendar-day.is-weekend{border-color:#d4e0eb;background:#eef3f8}
.holiday-calendar-day.is-weekend::before{position:absolute;top:0;right:0;left:0;height:3px;background:#9db0c2;content:""}
.holiday-calendar-day:hover,.holiday-calendar-day:focus-visible{border-color:#8fc0ed;background:#f5faff;box-shadow:0 7px 18px rgba(16,75,127,.09);outline:none;transform:translateY(-1px)}
.holiday-calendar-day.is-outside{background:#f5f8fb;color:#9aabba}
.holiday-calendar-day.is-today{outline:2px solid rgba(11,103,200,.22);outline-offset:1px}
.holiday-calendar-day.has-events{background:#fffaf0;border-color:#f6d79d}
.holiday-calendar-day.has-events::before{background:#f1bd5c}
.holiday-calendar-day>strong{display:block;color:#163453;font-size:13px}
.holiday-calendar-day>div{display:grid;gap:5px;margin-top:7px}
.holiday-calendar-day button{display:block;width:100%;max-width:100%;padding:5px 7px;border:0;border-radius:999px;font:inherit;font-size:11px;font-weight:900;text-align:left;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.holiday-calendar-day button:focus-visible{outline:2px solid #0b67c8;outline-offset:2px}
.holiday-calendar-day span{color:#6e7f91;font-size:11px;font-weight:800}
.holiday-calendar-day .holiday-calendar-day__hint{display:block;margin-top:28px;color:#8193a7;font-size:10px;font-weight:800;opacity:0;transition:opacity .16s ease}
.holiday-calendar-day:hover .holiday-calendar-day__hint,.holiday-calendar-day:focus-visible .holiday-calendar-day__hint{opacity:1}
.holiday-calendar-panel--year{padding:18px;background:linear-gradient(145deg,#fff 0,#f8fbff 100%)}
.holiday-calendar-year-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.holiday-calendar-year-month{min-width:0;overflow:hidden;border:1px solid #dbe6f1;border-radius:14px;background:#fff;box-shadow:0 7px 18px rgba(20,58,92,.045)}
.holiday-calendar-year-month>header{padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:7px;border-bottom:1px solid #e3ebf3;background:linear-gradient(135deg,#f7fbff,#eef6fd)}
.holiday-calendar-year-month h3{margin:0;font-size:14px;line-height:1.2}
.holiday-calendar-year-month h3 a{color:#123b62;text-decoration:none}
.holiday-calendar-year-month h3 a:hover{color:#0b67c8;text-decoration:underline}
.holiday-calendar-year-month>header span{color:#6b8096;font-size:9px;font-weight:850;white-space:nowrap}
.holiday-calendar-year-weekdays,.holiday-calendar-year-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.holiday-calendar-year-weekdays{padding:7px 7px 3px;color:#8090a2;font-size:8px;font-weight:900;text-align:center}
.holiday-calendar-year-weekdays span:nth-last-child(-n+2){padding:2px 0;color:#526b84;border-radius:5px;background:#edf3f8}
.holiday-calendar-year-days{padding:3px 7px 9px}
.holiday-calendar-year-day{position:relative;min-width:0;min-height:28px;padding:0;display:grid;place-items:center;color:#26435f;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;font-size:9px;font-weight:850;cursor:pointer}
.holiday-calendar-year-day.is-weekend{color:#526b84;background:#edf3f8}
.holiday-calendar-year-day:hover,.holiday-calendar-year-day:focus-visible{color:#0b67c8;border-color:#a9ceef;background:#f1f7fd;outline:none}
.holiday-calendar-year-day.is-outside{cursor:default}
.holiday-calendar-year-day.is-today{color:#fff;background:#0b67c8;box-shadow:0 3px 8px rgba(11,103,200,.22)}
.holiday-calendar-year-day.has-events{color:#7a3c06;border-color:#f3cd85;background:#fff7e7}
.holiday-calendar-year-day.has-events.is-today{color:#fff;border-color:#0b67c8;background:#0b67c8}
.holiday-calendar-year-day>i{width:5px;height:5px;position:absolute;bottom:2px;left:50%;border:1px solid rgba(255,255,255,.85);border-radius:999px;transform:translateX(-50%)}
.holiday-calendar-year-day>small{position:absolute;top:1px;right:2px;color:#a0520b;font-size:6px;font-weight:950}
.holiday-editor-dialog{width:min(620px,calc(100vw - 28px));max-width:none;padding:0;color:#173451;border:0;border-radius:18px;background:#fff;box-shadow:0 30px 80px rgba(9,35,63,.28)}
.holiday-editor-dialog::backdrop{background:rgba(12,32,55,.58);backdrop-filter:blur(2px)}
.holiday-editor-dialog form{display:block;margin:0}
.holiday-editor-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 17px;border-bottom:1px solid #e0e9f2;background:linear-gradient(135deg,#f7fbff,#eef6fd)}
.holiday-editor-dialog header span{display:block;color:#0b67c8;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.holiday-editor-dialog header h2{margin:4px 0 0;color:#153454;font-size:24px;line-height:1.15}
.holiday-editor-dialog header p{margin:6px 0 0;color:#6b8097;font-size:12px}
.holiday-editor-dialog header>button{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;color:#526b84;border:0;border-radius:10px;background:#e4edf5;font:inherit;font-size:21px;font-weight:900;cursor:pointer}
.holiday-editor-dialog__body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(170px,.65fr);gap:12px;padding:20px 22px}
.holiday-editor-dialog__field{display:block;padding:12px;border:1px solid #dce7f1;border-radius:11px;background:#f8fbfe}
.holiday-editor-dialog__field--name{grid-column:1/-1}
.holiday-editor-dialog__field>span:first-child{display:block;color:#5f748b;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.holiday-editor-dialog__field input[type="text"]{width:100%;min-height:44px;margin-top:7px;padding:0 11px;color:#153454;border:1px solid #c8d9e9;border-radius:9px;background:#fff;font:inherit;font-size:14px;font-weight:750}
.holiday-editor-dialog__field .fn-date-shell{margin-top:7px;background:#fff}
.holiday-editor-dialog__field .fn-date-input{font-size:14px;font-weight:750}
.holiday-editor-dialog__field .fn-calendar-popover{right:auto;left:12px;z-index:120}
.holiday-editor-dialog__field small{display:block;margin-top:6px;color:#71849a;font-size:10px;line-height:1.35}
.holiday-color-control{display:flex;align-items:center;gap:9px;margin-top:7px}
.holiday-color-control input{width:54px;height:44px;padding:3px;border:1px solid #c8d9e9;border-radius:9px;background:#fff;cursor:pointer}
.holiday-color-control strong{color:#173451;font-size:13px;letter-spacing:.03em}
.holiday-editor-dialog__error{grid-column:1/-1;margin:0;padding:10px 12px;color:#9f3b35;border:1px solid #f0c2bd;border-radius:9px;background:#fff4f3;font-size:12px;font-weight:750}
.holiday-editor-dialog__help{grid-column:1/-1;padding:11px 13px;border-left:3px solid #0b67c8;border-radius:0 9px 9px 0;background:#eef6fd}
.holiday-editor-dialog__help strong{display:block;color:#174b7a;font-size:12px}
.holiday-editor-dialog__help p{margin:4px 0 0;color:#58718a;font-size:11px;line-height:1.45}
.holiday-editor-dialog footer{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px 18px;border-top:1px solid #e0e9f2}
.holiday-editor-dialog [data-holiday-submit]:disabled{cursor:wait;opacity:.6}

.holiday-import-dialog{width:min(1120px,calc(100vw - 32px));max-width:1120px;max-height:calc(100vh - 40px);padding:0;border:0;border-radius:24px;background:#fff;color:#17324f;box-shadow:0 28px 80px rgba(15,44,76,.28);overflow:hidden}
.holiday-import-dialog::backdrop{background:rgba(14,37,63,.58);backdrop-filter:blur(3px)}
.holiday-import-dialog>form{display:flex;max-height:calc(100vh - 40px);flex-direction:column}
.holiday-import-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 28px 20px;border-bottom:1px solid #dbe7f3;background:linear-gradient(135deg,#f8fbff,#edf6ff)}
.holiday-import-dialog__header>div>span{display:block;margin-bottom:6px;color:#0872ce;font-size:.74rem;font-weight:900;letter-spacing:.1em}
.holiday-import-dialog__header h2{margin:0;color:#142f4d;font-size:1.55rem}
.holiday-import-dialog__header p{max-width:780px;margin:7px 0 0;color:#607995;line-height:1.45}
.holiday-import-dialog__header>button{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid #cfdeec;border-radius:14px;background:#fff;color:#526e89;font-size:1.5rem;cursor:pointer}
.holiday-import-dialog__body{min-height:300px;padding:22px 28px;overflow:auto}
.holiday-import-dialog__controls{display:flex;align-items:flex-end;gap:12px;padding:14px;border:1px solid #d8e5f1;border-radius:16px;background:#f8fbfe}
.holiday-import-dialog__controls label{display:grid;gap:6px;color:#617994;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.holiday-import-dialog__controls select{min-width:130px;height:42px;padding:0 36px 0 12px;border:1px solid #c9dbea;border-radius:11px;background:#fff;color:#17324f;font-weight:800}
.holiday-import-dialog__controls>div{display:grid;gap:2px;margin-left:auto;text-align:right}
.holiday-import-dialog__controls>div small{color:#71869d}
.holiday-import-dialog__controls>div strong{color:#17324f}
.holiday-import-dialog__loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:190px;color:#526f8c}
.holiday-import-dialog__loading[hidden]{display:none}
.holiday-import-dialog__loading span{width:25px;height:25px;border:3px solid #d8e8f7;border-top-color:#0877d5;border-radius:50%;animation:holiday-import-spin .8s linear infinite}
@keyframes holiday-import-spin{to{transform:rotate(360deg)}}
.holiday-import-dialog__error,.holiday-import-dialog__warnings p{margin:14px 0 0;padding:12px 14px;border-radius:12px;font-weight:700}
.holiday-import-dialog__error{border:1px solid #f2b7b2;background:#fff3f2;color:#aa352c}
.holiday-import-dialog__warnings p{border:1px solid #f4d292;background:#fff8e8;color:#8a5b08}
.holiday-import-dialog__summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 10px}
.holiday-import-dialog__summary>div{display:flex;align-items:baseline;gap:7px}
.holiday-import-dialog__summary>div strong{color:#0872ce;font-size:1.45rem}
.holiday-import-dialog__summary>div span,.holiday-import-dialog__summary label{color:#5c7590;font-weight:700}
.holiday-import-dialog__summary label{display:flex;align-items:center;gap:8px;cursor:pointer}
.holiday-import-dialog__table-wrap{max-height:390px;border:1px solid #d8e5f1;border-radius:16px;overflow:auto}
.holiday-import-dialog table{width:100%;border-collapse:collapse;font-size:.88rem}
.holiday-import-dialog thead{position:sticky;top:0;z-index:1;background:#eff5fb;color:#60758d;text-align:left;text-transform:uppercase;font-size:.72rem;letter-spacing:.035em}
.holiday-import-dialog th,.holiday-import-dialog td{padding:12px 13px;border-bottom:1px solid #e3ecf4;vertical-align:top}
.holiday-import-dialog tbody tr:last-child td{border-bottom:0}
.holiday-import-dialog input[type=checkbox]{width:18px;height:18px;accent-color:#0875d1}
.holiday-import-row--duplicate,.holiday-import-row--inherited{background:#f8fbfd;color:#698096}
.holiday-import-row--conflict{background:#fff9ed}
.holiday-import-row__date{white-space:nowrap;font-weight:800;color:#274662}
.holiday-import-row__name{min-width:260px;font-weight:800;color:#17324f}
.holiday-import-row__name small,.holiday-import-row__name a,.holiday-import-row__status small{display:block;margin-top:4px;color:#71869b;font-size:.72rem;font-weight:600}
.holiday-import-row__name a{text-decoration:underline;text-decoration-color:#b8cadd;text-underline-offset:2px}
.holiday-import-status{display:inline-flex;padding:5px 9px;border-radius:999px;white-space:nowrap;font-size:.72rem;font-weight:900}
.holiday-import-status--available{background:#ddf6e9;color:#18764e}
.holiday-import-status--duplicate{background:#e9eff5;color:#586d82}
.holiday-import-status--inherited{background:#e5f2ff;color:#256798}
.holiday-import-status--conflict{background:#fff0cf;color:#95600a}
.holiday-import-dialog__attribution{display:flex;justify-content:space-between;gap:18px;margin:16px 0 0;color:#72869b;font-size:.76rem}
.holiday-import-dialog__attribution a{color:#0872ce;font-weight:800;white-space:nowrap}
.holiday-import-dialog__footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;border-top:1px solid #dbe7f3;background:#f7fafd}
.holiday-import-dialog__footer button:disabled{cursor:not-allowed;opacity:.55}
@media(max-width:760px){.holiday-import-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:18px}.holiday-import-dialog>form{max-height:calc(100vh - 16px)}.holiday-import-dialog__header,.holiday-import-dialog__body,.holiday-import-dialog__footer{padding-left:16px;padding-right:16px}.holiday-import-dialog__controls{align-items:stretch;flex-wrap:wrap}.holiday-import-dialog__controls label{flex:1}.holiday-import-dialog__controls select{width:100%}.holiday-import-dialog__controls>div{width:100%;margin-left:0;text-align:left}.holiday-import-dialog__summary{align-items:flex-start;flex-direction:column}.holiday-import-dialog__table-wrap{border:0;overflow:visible}.holiday-import-dialog table,.holiday-import-dialog tbody{display:block}.holiday-import-dialog thead{display:none}.holiday-import-dialog tr{display:grid;grid-template-columns:36px 92px 1fr;gap:3px 8px;margin-bottom:10px;padding:12px;border:1px solid #d9e6f1;border-radius:14px}.holiday-import-dialog td{padding:2px;border:0}.holiday-import-row__name{min-width:0}.holiday-import-row__scope{grid-column:2}.holiday-import-row__status{grid-column:3}.holiday-import-dialog__attribution{flex-direction:column}.holiday-import-dialog__attribution a{white-space:normal}}
@media (max-width:1180px){
    .holiday-calendar-year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
    .holiday-calendar-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
    .holiday-view-tabs>a{grid-template-columns:30px minmax(0,1fr);padding:8px}
    .holiday-view-tabs>a>span:first-child{width:30px;height:30px}
    .holiday-view-tabs>a small{display:none}
    .holiday-calendar-panel{overflow-x:auto;padding:12px}
    .holiday-calendar-panel>header{min-width:680px}
    .holiday-calendar-weekdays,.holiday-calendar-grid{min-width:680px}
    .holiday-calendar-panel--year{overflow:visible}
    .holiday-calendar-panel--year>header{min-width:0;align-items:flex-start;flex-direction:column}
    .holiday-calendar-panel--year .holiday-calendar-panel__controls{width:100%;justify-content:space-between}
    .holiday-editor-dialog__body{grid-template-columns:1fr;padding:16px}
    .holiday-editor-dialog__field--name,.holiday-editor-dialog__error,.holiday-editor-dialog__help{grid-column:auto}
    .holiday-editor-dialog header{padding:17px}
    .holiday-editor-dialog footer{padding:13px 16px 16px}
}
@media (max-width:520px){
    .holiday-calendar-panel--year{padding:12px}
    .holiday-calendar-panel--year .holiday-calendar-panel__controls{align-items:stretch;flex-direction:column}
    .holiday-calendar-panel--year .holiday-calendar-panel__controls>nav{justify-content:center}
    .holiday-calendar-year-grid{grid-template-columns:1fr}
    .holiday-calendar-year-day{min-height:34px}
}
.shift-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.shift-editor-main { min-width:0; display:grid; gap:16px; }
.shift-editor-card,.shift-usage-card { padding:18px 20px; }
.shift-editor-card > header,.shift-usage-card > header { margin-bottom:14px; }
.shift-editor-grid { display:grid; gap:12px; }
.shift-editor-grid--identity { grid-template-columns:minmax(0,1.5fr) .55fr minmax(260px,.95fr); }
.shift-editor-grid--time { grid-template-columns:repeat(4,minmax(0,1fr)); }
.shift-editor-card label { padding:12px; border:1px solid #dbe6f1; border-radius:11px; background:#f9fbfe; }
.shift-editor-card label > span { color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.shift-editor-card input:not([type="checkbox"]):not([type="color"]) { width:100%; min-height:44px; margin-top:7px; padding:0 11px; color:#142f4e; border:1px solid #cad9e8; border-radius:9px; background:#fff; font:inherit; font-size:14px; font-weight:700; }
.shift-editor-card input[type="color"] { width:100%; height:44px; margin-top:7px; padding:3px; border:1px solid #cad9e8; border-radius:9px; background:#fff; }
.shift-editor-card small { display:block; margin-top:6px; color:#708399; font-size:11px; line-height:1.35; }
.shift-active-switch,.shift-crosses-switch { align-items:center; }
.shift-preview-strip { margin-top:14px; display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; align-items:center; padding:12px; border:1px solid #dbe6f1; border-radius:12px; background:#f8fbff; }
.shift-preview-strip > span { width:42px; height:42px; border-radius:14px; background:var(--shift-preview-color,#3a87ad); box-shadow:0 10px 20px rgba(16,65,112,.12); }
.shift-preview-strip small { margin:0; color:#687c93; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.shift-preview-strip strong { display:block; margin-top:3px; color:#173755; font-size:17px; }
.shift-usage-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.shift-usage-summary span { min-width:0; padding:12px; border:1px solid #dbe6f1; border-radius:11px; background:#f9fbfe; }
.shift-usage-summary small { display:block; margin-bottom:5px; color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.shift-usage-summary strong { display:block; overflow:hidden; color:#173755; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.shift-editor-help { position:sticky; top:92px; }
.incident-type-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.incident-type-editor-main { min-width:0; display:grid; gap:16px; }
.incident-type-editor-card,.incident-type-usage-card { padding:18px 20px; }
.incident-type-editor-card > header,.incident-type-usage-card > header { margin-bottom:14px; }
.incident-type-editor-grid { display:grid; gap:12px; }
.incident-type-editor-grid--identity { grid-template-columns:.55fr minmax(0,1.6fr) .55fr .45fr; }
.incident-type-icon-field { grid-column:1/-1; }
.incident-type-icon-grid { grid-template-columns:repeat(auto-fill,minmax(44px,1fr)); max-height:190px; }
.incident-type-editor-card label { padding:12px; border:1px solid #dbe6f1; border-radius:11px; background:#f9fbfe; }
.incident-type-editor-card label > span { color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.incident-type-editor-card input:not([type="checkbox"]):not([type="color"]) { width:100%; min-height:44px; margin-top:7px; padding:0 11px; color:#142f4e; border:1px solid #cad9e8; border-radius:9px; background:#fff; font:inherit; font-size:14px; font-weight:700; }
.incident-type-editor-card input[type="color"] { width:100%; height:44px; margin-top:7px; padding:3px; border:1px solid #cad9e8; border-radius:9px; background:#fff; }
.incident-type-editor-card small { display:block; margin-top:6px; color:#708399; font-size:11px; line-height:1.35; }
.incident-type-preview-strip { margin-top:14px; display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; align-items:center; padding:12px; border:1px solid #dbe6f1; border-radius:12px; background:#f8fbff; }
.incident-type-preview-strip > span { width:42px; height:42px; display:grid; place-items:center; color:#fff; border-radius:14px; background:var(--incident-type-preview-color,#f97316); box-shadow:0 10px 20px rgba(16,65,112,.12); }
.incident-type-visual__icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.incident-type-inline-icon { display:inline-grid; place-items:center; width:28px; height:28px; margin-right:8px; border-radius:9px; vertical-align:middle; box-shadow:0 4px 10px rgba(22,58,92,.12); }
.incident-type-inline-icon svg { width:15px; height:15px; }
.incident-type-chip__icon { display:inline-grid; place-items:center; width:26px; height:26px; margin-right:2px; border-radius:8px; }
.incident-type-chip__icon svg { width:14px; height:14px; }
.incident-type-preview-strip small { margin:0; color:#687c93; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.incident-type-preview-strip strong { display:block; margin-top:3px; color:#173755; font-size:16px; }
.incident-type-behaviour-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.incident-type-switch { min-height:86px; align-items:center; }
.incident-type-editor-help { position:sticky; top:92px; }
.expense-category-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.expense-category-editor-main { min-width:0; display:grid; gap:16px; }
.expense-category-editor-card,.expense-category-usage-card { padding:18px 20px; }
.expense-category-editor-card > header,.expense-category-usage-card > header { margin-bottom:14px; }
.expense-category-editor-grid { display:grid; gap:12px; }
.expense-category-editor-grid--identity { grid-template-columns:minmax(0,1.55fr) .5fr minmax(260px,.95fr); }
.expense-category-editor-grid--visual { grid-template-columns:210px minmax(0,1fr); align-items:start; }
.expense-category-editor-card label { padding:12px; border:1px solid #dbe6f1; border-radius:11px; background:#f9fbfe; }
.expense-category-editor-card label > span { color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.expense-category-editor-card input:not([type="checkbox"]):not([type="color"]) { width:100%; min-height:44px; margin-top:7px; padding:0 11px; color:#142f4e; border:1px solid #cad9e8; border-radius:9px; background:#fff; font:inherit; font-size:14px; font-weight:700; }
.expense-category-editor-card input[type="color"] { width:100%; height:44px; margin-top:7px; padding:3px; border:1px solid #cad9e8; border-radius:9px; background:#fff; }
.expense-category-editor-card small { display:block; margin-top:6px; color:#708399; font-size:11px; line-height:1.35; }
.expense-category-icon-field { min-width:0; padding:14px; border:1px solid #dbe6f1; border-radius:12px; background:#f9fbfe; }
.expense-icon-picker-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.expense-icon-picker-heading > div:first-child > span { display:block; color:#687c93; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.expense-icon-picker-heading > div:first-child > small { margin-top:4px; }
.expense-icon-current { flex:0 0 auto; display:flex; align-items:center; gap:8px; min-height:42px; padding:7px 11px; color:#0867c9; border:1px solid #bdd8f2; border-radius:11px; background:#eef7ff; font-size:12px; font-weight:850; }
.expense-icon-current svg { width:24px; height:24px; }
.expense-icon-picker-tools { display:grid; gap:10px; margin-top:13px; }
.expense-category-editor-card .expense-icon-search { display:flex; align-items:center; gap:9px; min-width:0; padding:0 11px; border:1px solid #cad9e8; border-radius:10px; background:#fff; }
.expense-icon-search svg { flex:0 0 auto; width:20px; height:20px; color:#337bbd; }
.expense-category-editor-card .expense-icon-search input[type="search"] { min-width:0; min-height:42px; margin:0; padding:0; border:0; outline:0; background:transparent; box-shadow:none; font-size:13px; font-weight:650; }
.expense-icon-groups { display:flex; flex-wrap:wrap; gap:6px; }
.expense-icon-groups button { min-height:32px; padding:0 11px; color:#50677f; border:1px solid #d2deea; border-radius:999px; background:#fff; font:inherit; font-size:11px; font-weight:850; cursor:pointer; }
.expense-icon-groups button:hover { color:#075fba; border-color:#9fc8ee; background:#f3f9ff; }
.expense-icon-groups button.is-active { color:#fff; border-color:#086bd3; background:#086bd3; box-shadow:0 5px 13px rgba(8,107,211,.18); }
.expense-icon-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(48px,1fr)); gap:8px; max-height:272px; margin-top:12px; padding:3px 4px 3px 2px; overflow-y:auto; scrollbar-width:thin; }
.expense-icon-grid button { position:relative; display:grid; place-items:center; min-width:0; aspect-ratio:1; padding:9px; color:#34536f; border:1px solid #d6e2ee; border-radius:11px; background:#fff; cursor:pointer; transition:border-color .14s ease,background .14s ease,color .14s ease,transform .14s ease,box-shadow .14s ease; }
.expense-icon-grid button:hover { z-index:1; color:#086bd3; border-color:#8fc0ee; background:#f0f8ff; transform:translateY(-1px); box-shadow:0 7px 16px rgba(26,79,125,.12); }
.expense-icon-grid button.is-selected { color:#fff; border-color:#086bd3; background:#086bd3; box-shadow:0 7px 16px rgba(8,107,211,.23); }
.expense-icon-grid button.is-selected::after { content:"✓"; position:absolute; top:3px; right:5px; font-size:9px; font-weight:950; }
.expense-icon-grid button[hidden] { display:none; }
.expense-icon-grid svg,
.expense-icon-current svg,
.expense-category-preview-strip > span svg,
.expense-icon-search svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.expense-icon-grid svg { width:25px; height:25px; }
.expense-icon-empty { margin-top:12px; padding:15px; color:#61768c; border:1px dashed #c8d9e9; border-radius:10px; background:#fff; text-align:center; font-size:13px; font-weight:700; }
.expense-category-preview-strip { margin-top:14px; display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; align-items:center; padding:12px; border:1px solid #dbe6f1; border-radius:12px; background:#f8fbff; }
.expense-category-preview-strip > span { width:42px; height:42px; display:grid; place-items:center; color:#fff; font-weight:950; border-radius:14px; background:var(--expense-category-preview-color,#2f80ed); box-shadow:0 10px 20px rgba(16,65,112,.12); }
.expense-category-preview-strip > span svg { width:24px; height:24px; }
.expense-category-preview-strip small { margin:0; color:#687c93; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.expense-category-preview-strip strong { display:block; margin-top:3px; color:#173755; font-size:16px; }
.expense-category-preview-strip p { margin:3px 0 0; color:#708399; font-size:12px; }
.expense-category-active-switch { align-items:center; }
.expense-category-editor-help { position:sticky; top:92px; }
.admin-editor-form--expense .admin-editor-card .simple-editor-grid,
.admin-editor-form--document .admin-editor-card .simple-editor-grid,
.admin-editor-form--request .admin-editor-card .simple-editor-grid,
.admin-editor-form--incident .admin-editor-card .simple-editor-grid,
.admin-editor-form--vacation .admin-editor-card .simple-editor-grid,
.admin-editor-form--employment-period .admin-editor-card .simple-editor-grid,
.admin-editor-form--centre-period .admin-editor-card .simple-editor-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.admin-editor-form--expense .field-span-2,
.admin-editor-form--document .field-span-2,
.admin-editor-form--incident .field-span-2 { grid-column: 1 / -1; }
.admin-editor-form--expense .field-key-employeeinfo,
.admin-editor-form--expense .field-key-concept,
.admin-editor-form--expense .field-key-provider,
.admin-editor-form--expense .field-key-notes,
.admin-editor-form--expense .field-key-rejectionreason,
.admin-editor-form--expense .field-key-liquidationinfo,
.admin-editor-form--expense .field-key-attachment,
.admin-editor-form--expense .field-key-attachmentdownload,
.admin-editor-form--document .field-key-title,
.admin-editor-form--document .field-key-description,
.admin-editor-form--document .field-key-attachment,
.admin-editor-form--document .field-key-attachmentdownload,
.admin-editor-form--request .field-key-title,
.admin-editor-form--request .field-key-notes,
.admin-editor-form--request .field-key-attachmentdownload,
.admin-editor-form--incident .field-key-title,
.admin-editor-form--incident .field-key-notes { grid-column: 1 / -1; }
.admin-editor-form--expense .field-key-centrecode,
.admin-editor-form--expense .field-key-date,
.admin-editor-form--expense .field-key-categoryid,
.admin-editor-form--expense .field-key-documenttype,
.admin-editor-form--expense .field-key-documentnumber,
.admin-editor-form--expense .field-key-providertaxid,
.admin-editor-form--expense .field-key-currency,
.admin-editor-form--expense .field-key-status,
.admin-editor-form--document .field-key-categoryid,
.admin-editor-form--document .field-key-scope,
.admin-editor-form--document .field-key-centreid,
.admin-editor-form--document .field-key-employeeid,
.admin-editor-form--document .field-key-expirationdate,
.admin-editor-form--document .field-key-state,
.admin-editor-form--request .field-key-employeeid,
.admin-editor-form--request .field-key-incidenttypecode,
.admin-editor-form--request .field-key-startdate,
.admin-editor-form--request .field-key-enddate,
.admin-editor-form--request .field-key-hours,
.admin-editor-form--request .field-key-status,
.admin-editor-form--incident .field-key-incidenttypecode,
.admin-editor-form--incident .field-key-startdate,
.admin-editor-form--incident .field-key-enddate,
.admin-editor-form--incident .field-key-hours,
.admin-editor-form--vacation .field-key-year,
.admin-editor-form--vacation .field-key-assigneddays,
.admin-editor-form--vacation .field-key-assignedhours,
.admin-editor-form--vacation .field-key-carriedhours,
.admin-editor-form--vacation .field-key-carrieddaysinfo,
.admin-editor-form--vacation .field-key-imputeddaysinfo,
.admin-editor-form--vacation .field-key-availabledaysinfo,
.admin-editor-form--vacation .field-key-closedate,
.admin-editor-form--employment-period .field-key-startdate,
.admin-editor-form--employment-period .field-key-enddate { grid-column: span 2; }
.admin-editor-form--expense .field-key-taxsection { margin-top: 4px; background: linear-gradient(135deg,#eef7ff,#f8fbff); }
.admin-editor-form--expense [class*="field-key-tax"] { padding: 9px; background: #fff; }
.admin-editor-form--expense [class*="field-key-tax"] > span { min-height: 28px; display: flex; align-items: end; }
.admin-editor-form--expense [class*="field-key-tax"] input,
.admin-editor-form--expense [class*="field-key-tax"] select { min-height: 40px; font-size: 13px; }
.admin-editor-form--expense .field-key-tax1type,
.admin-editor-form--expense .field-key-tax2type,
.admin-editor-form--expense .field-key-tax3type,
.admin-editor-form--expense .field-key-tax1description,
.admin-editor-form--expense .field-key-tax2description,
.admin-editor-form--expense .field-key-tax3description { grid-column: span 2; }
.admin-editor-form--expense .field-key-baseamount input,
.admin-editor-form--expense .field-key-taxamount input,
.admin-editor-form--expense .field-key-total input,
.admin-editor-form--expense [class*="field-key-tax"] input[type="number"],
.admin-editor-form--vacation input[type="number"],
.admin-editor-form--incident .field-key-hours input { text-align: right; }
.admin-editor-form--expense .field-key-liquidationinfo { border-color: #b9d8f4; background: linear-gradient(135deg,#f3f9ff,#fff); }
.admin-editor-form--expense .field-key-liquidationinfo strong { display: block; margin-top: 6px; color: #0e3b66; font-size: 15px; line-height: 1.35; }
.admin-editor-form--expense .field-key-status select { color: #0b4d9a; }
.admin-editor-form--expense .field-key-rejectionreason textarea { min-height: 82px; }
.admin-editor-form--expense .field-key-notes textarea { min-height: 92px; }
.admin-editor-form--document .switch-field,
.admin-editor-form--request .switch-field,
.admin-editor-form--incident .switch-field { min-height: 58px; background: #f5fbff; }
.admin-editor-form--document .field-key-requiresreading,
.admin-editor-form--document .field-key-requiresacceptance,
.admin-editor-form--document .field-key-requiressignature,
.admin-editor-form--document .field-key-visibletoworker,
.admin-editor-form--incident .field-key-allday { grid-column: span 2; }

/* Editor de cierres de gastos. */
.expense-closure-editor-layout{grid-template-columns:minmax(0,1fr) minmax(300px,350px)}
.expense-closure-main{display:grid;gap:16px}
.expense-closure-card{padding:22px 24px}
.expense-closure-card>header{margin-bottom:16px}
.expense-closure-status{margin-bottom:16px;padding:14px 16px;display:grid;gap:4px;border:1px solid #d7e5f2;border-left-width:5px;border-radius:13px;background:#f8fbff}
.expense-closure-status strong{font-size:13px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.expense-closure-status span{font-size:13px;line-height:1.45}
.expense-closure-status.is-complete{color:#14583c;border-color:#91d9b7;border-left-color:#16a34a;background:linear-gradient(135deg,#f0fff7,#fbfffd)}
.expense-closure-status.is-incomplete{color:#8a2d25;border-color:#f1b6b1;border-left-color:#d6453d;background:linear-gradient(135deg,#fff5f4,#fffafa)}
.expense-closure-fields{display:grid;grid-template-columns:minmax(220px,1.35fr) minmax(150px,.55fr) minmax(190px,.8fr) minmax(190px,.8fr);gap:12px;align-items:stretch}
.closure-control{min-width:0;padding:12px;border:1px solid #dbe6f1;border-radius:12px;background:#f9fbfe}
.closure-control--wide{grid-column:span 1}
.closure-control--date{min-width:150px}
.closure-control.fn-date-control{gap:0;align-content:start}
.closure-control>span:not(.fn-date-shell){display:block;color:#687c93;font-size:10px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
.closure-control.fn-date-control>span{font-size:10px;letter-spacing:.06em}
.closure-control input:not([type="checkbox"]),.closure-control select{width:100%;min-width:0;min-height:42px;margin-top:7px;padding:0 11px;color:#142f4e;border:1px solid #cad9e8;border-radius:9px;background:#fff;font:inherit;font-size:14px;font-weight:800;box-sizing:border-box}
.closure-control .fn-date-shell{height:42px;margin-top:7px;display:grid;grid-template-columns:minmax(0,1fr) 40px;align-items:stretch;overflow:hidden;border-radius:9px;background:#fff}
.closure-control .fn-date-input{height:40px;min-height:40px;margin-top:0}
.closure-control .fn-date-trigger{width:40px;height:40px;align-self:stretch;border-radius:0 8px 8px 0}
.closure-control small{display:block;margin-top:6px;color:#71859b;font-size:11px;line-height:1.35}
.closure-control.is-valid{border-color:#9ed9be;background:#f4fff8}
.closure-control.is-invalid{border-color:#efb8b8;background:#fff7f6}
.closure-control.is-locked{border-color:#dbe6f1;background:#f4f7fb}
.closure-control.is-locked select{color:#61758c;background:#eef4fb;border-color:#d5e1ee;cursor:not-allowed}
.closure-control.is-locked small{color:#607890;font-weight:800}
.closure-control.is-required>span::after{content:" *";color:#d6453d}
.closure-control--switch{grid-column:1/-1;display:flex;align-items:flex-start;gap:12px;background:#f3f8ff}
.closure-control--switch input[type="checkbox"]{width:20px;height:20px;margin:2px 0 0;accent-color:#0b67c8}
.closure-control--switch strong,.closure-control--switch small{display:block}
.closure-control--switch strong{color:#173755;font-size:13px}
@media (max-width:900px){.expense-closure-fields{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.expense-closure-fields{grid-template-columns:1fr}}
.editor-card>header.expense-closure-lines-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.expense-closure-lines-header .expense-closure-total{justify-self:end}
.expense-closure-total{min-width:170px;padding:10px 14px;text-align:right;border:1px solid #bdd6ef;border-radius:12px;background:linear-gradient(135deg,#f8fbff,#eef7ff)}
.expense-closure-total small,.expense-closure-total span{display:block;color:#6f8399;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.expense-closure-total strong{display:block;margin:2px 0;color:#0964c1;font-size:23px;line-height:1}
.expense-closure-lines-toolbar{margin:0 0 12px;padding:11px 12px;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;border:1px solid #e0e9f2;border-radius:12px;background:#f8fbff}
.expense-closure-lines-toolbar .status-pill{margin-right:auto}
.expense-closure-hint{margin-right:auto;color:#697f96;font-size:12px;font-weight:800}
.expense-closure-table-wrap{overflow:auto;border:1px solid #dce7f2;border-radius:13px;background:#fff}
.expense-closure-table{width:100%;min-width:860px;border-collapse:collapse;table-layout:fixed}
.expense-closure-table th,.expense-closure-table td{padding:12px 13px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:middle}
.expense-closure-table th{color:#71859c;background:#f3f7fb;font-size:10px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
.expense-closure-table td{color:#28445f;font-size:13px}
.expense-closure-table tr:last-child td{border-bottom:0}
.expense-closure-table th:nth-child(1),.expense-closure-table td:nth-child(1){width:105px}
.expense-closure-table th:nth-child(2),.expense-closure-table td:nth-child(2){width:125px}
.expense-closure-table th:nth-child(3),.expense-closure-table td:nth-child(3){width:110px}
.expense-closure-table th:nth-child(6),.expense-closure-table td:nth-child(6){width:115px}
.expense-closure-table th:nth-child(7),.expense-closure-table td:nth-child(7){width:112px}
.expense-closure-table .numeric{text-align:right}
.closure-type-chip{display:inline-flex;align-items:center;max-width:100%;padding:5px 8px;color:#0b579f;border-radius:999px;background:#eaf4ff;font-size:10px;font-weight:900;white-space:nowrap}
.closure-line-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
.closure-line-actions .employee-list-shortcut{width:31px;min-width:31px;height:31px;padding:0;display:inline-grid;place-items:center;text-decoration:none}
.closure-line-actions .is-disabled{opacity:.45;cursor:not-allowed}
.expense-closure-empty{padding:28px!important;color:#7d8fa4!important;text-align:center!important;font-weight:800}
.expense-closure-modal[hidden]{display:none!important}
.expense-closure-modal{position:fixed;z-index:260;inset:0;padding:24px;display:grid;place-items:center;background:rgba(7,23,43,.52);backdrop-filter:blur(2px)}
.expense-closure-modal__card{width:min(1040px,calc(100vw - 34px));max-height:min(780px,calc(100vh - 34px));overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(9,31,56,.32)}
.expense-closure-modal__card>header{padding:20px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #e1ebf4;background:linear-gradient(135deg,#f8fbff,#eef7ff)}
.expense-closure-modal__card small{color:#0b67c8;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.expense-closure-modal__card h2{margin:3px 0;color:#172f4b;font-size:25px}
.expense-closure-modal__card p{margin:0;color:#60768d;font-size:13px}
.expense-closure-modal__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.closure-pending-add-all{min-height:38px;padding:0 15px;border-radius:10px}
.closure-pending-toggle{min-height:38px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;border:1px solid #cfe0f2;border-radius:10px;background:#f6faff;color:#173755;font-size:12px;font-weight:900;white-space:nowrap;cursor:pointer}
.closure-pending-toggle[hidden]{display:none!important}
.closure-pending-toggle input{width:16px;height:16px;margin:0;accent-color:#0b67c8}
.closure-pending-toggle.is-active,.closure-pending-toggle:has(input:checked){border-color:#75b5eb;background:#eaf5ff;box-shadow:0 0 0 3px rgba(20,110,205,.09);color:#075aa9}
.closure-pending-feedback{margin-top:7px!important;color:#17613f!important;font-size:12px!important;font-weight:850}
.closure-pending-feedback.is-error{color:#9a352f!important}
.expense-closure-modal .expense-closure-table-wrap{margin:18px;max-height:calc(100vh - 190px)}
.closure-pending-list{margin:18px;max-height:calc(100vh - 190px);overflow:auto;display:grid;gap:10px}
.closure-pending-ticket{position:relative;min-width:0;padding:13px 14px;display:grid;grid-template-columns:118px minmax(0,1fr) 130px auto;align-items:center;gap:14px;border:1px solid #bfe3ce;border-radius:14px;background:linear-gradient(135deg,#f8fffb,#fff);box-shadow:0 10px 24px rgba(16,49,83,.06)}
.closure-pending-ticket::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:999px;background:#1b9a5a}
.closure-pending-ticket.is-review-required{border-color:#f5d2a9;background:linear-gradient(135deg,#fffaf3,#fff)}
.closure-pending-ticket.is-review-required::before{background:#f59e0b}
.closure-pending-ticket__date{min-height:64px;padding:10px 11px;display:grid;align-content:center;gap:7px;border:1px solid #dce9f5;border-radius:12px;background:#f3f8ff}
.closure-pending-ticket__date strong{color:#163653;font-size:14px;font-weight:950;line-height:1.1}
.closure-pending-ticket__date span{width:max-content;max-width:100%;padding:5px 8px;color:#0b579f;border-radius:999px;background:#e3f1ff;font-size:10px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.closure-pending-ticket__main{min-width:0;display:grid;gap:5px}
.closure-pending-ticket__main strong{color:#162f4b;font-size:15px;font-weight:950;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.closure-pending-ticket__main span{color:#5f748b;font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.closure-pending-ticket__main em{width:max-content;max-width:100%;padding:4px 8px;border-radius:999px;background:#dff5e8;color:#12663d;font-style:normal;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.closure-pending-ticket.is-review-required .closure-pending-ticket__main em{background:#fff0d8;color:#9a5a00}
.closure-pending-ticket__amount{min-height:58px;padding:10px 12px;text-align:right;border:1px solid #c9def2;border-radius:12px;background:linear-gradient(135deg,#f8fbff,#eef7ff)}
.closure-pending-ticket__amount small{display:block;margin-bottom:4px;color:#72869d;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.closure-pending-ticket__amount strong{display:block;color:#0b67c8;font-size:20px;font-weight:950;line-height:1.05;white-space:nowrap}
.closure-pending-ticket__actions{display:flex;justify-content:flex-end;align-items:center;gap:7px;white-space:nowrap}
.closure-pending-ticket__actions .employee-list-shortcut{width:34px;min-width:34px;height:34px;padding:0;display:inline-grid;place-items:center;text-decoration:none}
.closure-pending-add{min-height:34px;padding:0 13px;border-radius:9px}
@media (max-width:760px){.closure-pending-ticket{grid-template-columns:1fr;align-items:stretch}.closure-pending-ticket__amount{text-align:left}.closure-pending-ticket__actions{justify-content:flex-start}}
body.modal-open{overflow:hidden}

/* Editor documental guiado. */
.document-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:18px}
.document-editor-main{min-width:0;display:grid;gap:15px}
.document-editor-card{padding:22px 24px}
.document-editor-card>header{margin-bottom:18px}
.document-editor-card label>span,.document-recipient-select>span{display:block;color:#61758c;font-size:10px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.document-editor-card label>span em{color:#8a9aac;font-size:9px;font-style:normal;font-weight:750;text-transform:none}
.document-editor-card input[type="text"],.document-editor-card input[type="search"],.document-editor-card input[type="date"],.document-editor-card select,.document-editor-card textarea{width:100%;min-width:0;min-height:44px;margin-top:7px;padding:0 11px;color:#142f4e;border:1px solid #cad9e8;border-radius:9px;background:#fff;box-sizing:border-box;font:inherit;font-size:14px;font-weight:700}
.document-editor-card textarea{min-height:92px;padding-top:10px;resize:vertical}
.document-editor-card input:focus,.document-editor-card select:focus,.document-editor-card textarea:focus{border-color:#4b96df;outline:3px solid rgba(20,110,205,.1)}
.document-editor-card label>small,.document-recipient-select>small{display:block;margin-top:6px;color:#708399;font-size:11px;line-height:1.4}
.document-editor-card .fn-date-shell{height:44px;border-radius:9px;background:#fff;box-sizing:border-box}
.document-editor-card .fn-date-shell .fn-date-input{height:42px;min-height:42px;margin-top:0;font-size:14px}
.document-editor-card .fn-date-shell .fn-date-trigger{height:42px;border-radius:0 8px 8px 0}
.document-dropzone{min-height:168px;padding:22px;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:18px;color:#254562;border:2px dashed #b8d0e6;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#eef7ff);outline:none;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.document-dropzone:focus,.document-dropzone.is-dragging{border-color:#0b70da;background:#edf7ff;box-shadow:0 0 0 5px rgba(11,112,218,.09)}
.document-dropzone.has-file{border-style:solid;border-color:#9ed9be;background:linear-gradient(135deg,#f7fffb,#edf9f3)}
.document-dropzone.has-error{border-color:#e29d96;background:#fff7f6}
.document-dropzone__icon{width:64px;height:64px;display:grid;place-items:center;color:#0b67c8;border-radius:17px;background:#dceeff}
.document-dropzone.has-file .document-dropzone__icon{color:#08764f;background:#dff5e9}
.document-dropzone__icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.document-dropzone__copy{min-width:0;display:grid;gap:5px}
.document-dropzone__copy strong{overflow:hidden;color:#163653;text-overflow:ellipsis;white-space:nowrap;font-size:17px}
.document-dropzone__copy span{color:#6c8198;font-size:12px}
.document-dropzone__browse{justify-self:end}
.document-dropzone__clear{grid-column:2/4;justify-self:start;padding:0;color:#a34d45;border:0;background:transparent;font:inherit;font-size:11px;font-weight:850;cursor:pointer}
.document-file-error{margin:9px 0 0;padding:10px 12px;color:#9c3c35;border:1px solid #efc1bc;border-radius:9px;background:#fff5f4;font-size:12px}
.document-current-file{margin-top:12px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #dbe6f1;border-radius:10px;background:#f8fbfe}
.document-current-file div{min-width:0}
.document-current-file span,.document-current-file strong{display:block}
.document-current-file span{color:#78899d;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.document-current-file strong{margin-top:3px;overflow:hidden;color:#213f5d;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.document-main-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.document-title-field,.document-description-field{grid-column:1/-1}
.document-scope-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.document-scope-option{position:relative;cursor:pointer}
.document-scope-option>input{position:absolute;opacity:0;pointer-events:none}
.document-editor-card .document-scope-option>span{min-height:102px;padding:14px;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;gap:4px 11px;color:#3d536b;border:1px solid #d8e4ef;border-radius:13px;background:#fafcff;font-size:12px;font-weight:400;letter-spacing:normal;text-transform:none;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.document-scope-option i{width:38px;height:38px;grid-column:1;grid-row:1/3;display:grid;place-items:center;color:#0b67c8;border-radius:11px;background:#e7f2ff;font-size:10px;font-style:normal;font-weight:950}
.document-scope-option strong{grid-column:2;grid-row:1;align-self:end;display:block;color:#173755;font-size:13px;line-height:1.25}
.document-scope-option small{grid-column:2;grid-row:2;display:block;color:#718398;font-size:10px;line-height:1.4}
.document-scope-option>input:checked+span{color:#0759a5;border-color:#6ba9e6;background:#eef7ff;box-shadow:0 0 0 3px rgba(20,110,205,.08)}
.document-scope-option>input:focus+span{outline:3px solid rgba(20,110,205,.12)}
.document-recipient-select{margin-top:13px;padding:13px;border:1px solid #dbe6f1;border-radius:12px;background:#f8fbfe}
.document-recipient-select[hidden]{display:none!important}
.document-worker-recipient{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(260px,1fr);gap:10px 13px}
.document-worker-recipient>small{grid-column:1/-1;margin-top:0}
.document-fixed-recipient{padding:14px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #cfe1f2;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#edf6ff)}
.document-fixed-recipient .employee-identity__avatar{width:58px;height:58px}
.document-fixed-recipient small,.document-fixed-recipient strong,.document-fixed-recipient p{display:block}
.document-fixed-recipient small{color:#0b67c8;font-size:9px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
.document-fixed-recipient strong{margin-top:3px;color:#163653;font-size:17px}
.document-fixed-recipient p{margin:4px 0 0;color:#6e8298;font-size:11px}
.document-requirement-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.document-requirement-option{position:relative;display:flex;cursor:pointer}
.document-requirement-option>input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.document-editor-card .document-requirement-option>span{width:100%;height:100%;min-height:112px;padding:16px 14px;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;align-content:start;gap:5px 10px;color:#203d5a;border:1px solid #dce6ef;border-radius:12px;background:#fafcff;box-sizing:border-box;font-size:12px;font-weight:400;letter-spacing:normal;text-transform:none}
.document-requirement-option i{width:36px;height:36px;grid-column:1;grid-row:1/3;align-self:start;display:grid;place-items:center;color:#62778e;border-radius:10px;background:#edf1f5;font-size:9px;font-style:normal;font-weight:950}
.document-requirement-option i svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.document-requirement-option strong{grid-column:2;grid-row:1;align-self:end;display:block;color:#203d5a;font-size:12px;line-height:1.25}
.document-requirement-option small{grid-column:2;grid-row:2;display:block;color:#73859a;font-size:10px;line-height:1.4}
.document-requirement-option>input[type="radio"]:checked+span{border-color:#75b5eb;background:#eef7ff;box-shadow:0 0 0 3px rgba(20,110,205,.07)}
.document-requirement-option>input[type="radio"]:checked+span i{color:#fff;background:#0b67c8}
.document-requirement-option>input[type="radio"]:focus+span{outline:3px solid rgba(20,110,205,.12)}
.document-visibility-option{margin-top:11px;padding:12px 14px;display:flex;align-items:flex-start;gap:11px;border:1px solid #d9e6f1;border-radius:11px;background:#f6fbff;cursor:pointer}
.document-visibility-option input[type="checkbox"]{width:19px;height:19px;margin:2px 0 0;accent-color:#0b67c8}
.document-visibility-option span{min-width:0}
.document-visibility-option strong,.document-visibility-option small{display:block}
.document-visibility-option strong{color:#213e5c;font-size:12px}
.document-editor-aside{position:sticky;top:92px;display:grid;gap:14px}
.document-live-summary{overflow:hidden;border:1px solid #d7e4ef;border-radius:14px;background:#fff;box-shadow:0 12px 30px rgba(23,54,88,.06)}
.document-live-summary>header{padding:14px 15px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #e2eaf2;background:#f8fbff}
.document-live-summary>header>span{width:34px;height:34px;display:grid;place-items:center;color:#fff;border-radius:10px;background:#1d9d6b;font-weight:950}
.document-live-summary header small,.document-live-summary header h2{display:block;margin:0}
.document-live-summary header small{color:#708399;font-size:8px;font-weight:950;letter-spacing:.09em}
.document-live-summary header h2{margin-top:2px;color:#173755;font-size:15px}
.document-live-summary dl{margin:0;padding:5px 14px 10px}
.document-live-summary dl>div{padding:9px 0;display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;border-bottom:1px solid #edf1f5}
.document-live-summary dl>div:last-child{border-bottom:0}
.document-live-summary dt{color:#788a9f;font-size:10px;font-weight:850}
.document-live-summary dd{margin:0;overflow:hidden;color:#203d5a;text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:850}
.document-editor-help{position:static}
.document-editor-help .editor-context-help__required ol{margin:9px 0 0;padding-left:18px;display:grid;gap:5px;color:#536a83;font-size:11px;line-height:1.45}
.document-editor-help__warning{margin:0 12px 12px;padding:11px 12px;color:#815012;border-left:3px solid #e4942f;border-radius:9px;background:#fff7eb}
.document-editor-help__warning strong{font-size:11px}
.document-editor-help__warning p{margin:4px 0 0;font-size:10px;line-height:1.45}
.document-editor-actions{justify-content:space-between}
.document-editor-actions__hint{color:#6d8096;font-size:11px}
.document-editor-actions .editor-actions-main{flex-wrap:wrap}

.admin-editor-form--employment-period .field-key-startdate { border-color: #bfe0c9; background: #f5fff8; }
.admin-editor-form--employment-period .field-key-enddate { border-color: #f0d2aa; background: #fffaf3; }
.admin-editor-form--vacation .field-key-imputeddaysinfo,
.admin-editor-form--vacation .field-key-carrieddaysinfo,
.admin-editor-form--vacation .field-key-availabledaysinfo { background: #f4f9ff; }
.admin-editor-form--vacation .field-key-imputeddaysinfo strong,
.admin-editor-form--vacation .field-key-carrieddaysinfo strong,
.admin-editor-form--vacation .field-key-availabledaysinfo strong { font-size: 20px; }
.admin-editor-form--vacation .field-key-availabledaysinfo.is-negative { border-color: #efb8b8; background: #fff3f3; }
.admin-editor-form--vacation .field-key-availabledaysinfo.is-negative strong { color: #b42318; }
.toast-region { position: fixed; z-index: 200; right: 20px; bottom: 20px; display: grid; gap: 9px; pointer-events: none; }.app-toast { max-width: 390px; padding: 13px 16px; color: #23415f; border: 1px solid #d5e2ef; border-left: 4px solid #1870ca; border-radius: 9px; background: #fff; box-shadow: 0 15px 45px rgba(20,43,70,.17); opacity: 0; transform: translateY(8px); transition: opacity .2s,transform .2s; font-size: 13px; font-weight: 700; }.app-toast.is-visible { opacity: 1; transform: translateY(0); }.app-toast--danger { color: #8e332e; border-left-color: #c44840; }.app-toast--success { color: #17613f; border-left-color: #1d9663; }
.confirm-dialog { max-width: min(440px,calc(100vw - 30px)); padding: 0; color: #243b57; border: 0; border-radius: 13px; box-shadow: 0 28px 80px rgba(14,32,55,.28); }.confirm-dialog::backdrop { background: rgba(7,23,43,.48); backdrop-filter: blur(2px); }.confirm-dialog form { padding: 25px; }.confirm-dialog strong { font-size: 20px; }.confirm-dialog p { margin: 10px 0 24px; color: #64768c; line-height: 1.55; }.confirm-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; }

@media (max-width: 1450px) {
    .management-toolbar.expense-toolbar {
        grid-template-rows:auto auto;
    }
    .expense-filter-form:not(.expense-filter-form--accounts) {
        grid-row:1;
        grid-template-columns:repeat(3,minmax(72px,.35fr) minmax(120px,1fr))!important;
        grid-template-rows:none!important;
        grid-auto-rows:40px;
        align-items:stretch;
    }
    .expense-filter-form:not(.expense-filter-form--accounts) > label,
    .expense-filter-form:not(.expense-filter-form--accounts) > select,
    .expense-filter-form:not(.expense-filter-form--accounts) > button,
    .expense-filter-form:not(.expense-filter-form--accounts) > .btn {
        grid-column:auto!important;
        grid-row:auto!important;
    }
    .expense-filter-form:not(.expense-filter-form--accounts) > label {
        display:flex;
        align-items:center;
        overflow:visible!important;
        white-space:normal!important;
        text-overflow:clip;
        line-height:1.2;
    }
    .expense-filter-form:not(.expense-filter-form--accounts) > input[type="search"] {
        grid-column:1 / -1!important;
        grid-row:auto!important;
    }
    .expense-toolbar .expense-filter-form--closures + .expense-view-tools {
        min-width:0;
    }
    .expense-view-tools {
        grid-row:2;
        width:100%;
        justify-self:stretch;
        flex-wrap:wrap;
    }
    .management-toolbar.expense-toolbar--accounts{grid-template-columns:1fr;grid-template-rows:auto auto}
    .expense-filter-form--accounts{grid-column:1;grid-row:1}
    .expense-toolbar--accounts .expense-view-tools{grid-column:1;grid-row:2;width:100%;justify-self:stretch}
}
@media (max-width: 1100px) {
    .management-header { align-items: flex-start; flex-direction: column; gap: 18px; }.management-header-actions { justify-content: flex-start; }
    .management-table { min-width: 900px; }
    .admin-module-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-module-summary--expenses,.admin-module-summary--expense-closures { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .management-toolbar.expense-toolbar--accounts{grid-template-columns:1fr;grid-template-rows:auto auto}
    .expense-filter-form--accounts{grid-column:1;grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto 40px auto 40px 40px}
    .expense-filter-form--accounts label[for="management-search-input"]{grid-column:1 / 3;grid-row:1}
    .expense-filter-form--accounts input[type="search"]{grid-column:1 / 3;grid-row:2}
    .expense-filter-form--accounts label[for="expense-worker-filter"]{grid-column:1;grid-row:3}
    .expense-filter-form--accounts #expense-worker-filter{grid-column:1;grid-row:4}
    .expense-filter-form--accounts label[for="management-status-filter"]{grid-column:2;grid-row:3}
    .expense-filter-form--accounts #management-status-filter{grid-column:2;grid-row:4}
    .expense-filter-form--accounts button[type="submit"]{grid-column:1;grid-row:5}
    .expense-filter-form--accounts .btn-quiet{grid-column:2;grid-row:5}
    .expense-toolbar--accounts .expense-view-tools{grid-column:1;grid-row:2;width:100%;justify-self:stretch}
    .admin-editor-layout { grid-template-columns: 1fr; }.admin-editor-help { position: static; }
    .request-editor-layout { grid-template-columns:1fr; }.request-editor-help{position:static}
    .holiday-editor-layout { grid-template-columns:1fr; }.holiday-editor-help{position:static}
    .shift-editor-layout { grid-template-columns:1fr; }.shift-editor-help{position:static}
    .incident-type-editor-layout { grid-template-columns:1fr; }.incident-type-editor-help{position:static}
    .expense-category-editor-layout { grid-template-columns:1fr; }.expense-category-editor-help{position:static}
    .shift-editor-grid--identity,.shift-editor-grid--time { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .document-editor-layout{grid-template-columns:1fr}.document-editor-aside{position:static;grid-template-columns:300px minmax(0,1fr)}
    .admin-editor-form--expense .admin-editor-card .simple-editor-grid,
    .admin-editor-form--document .admin-editor-card .simple-editor-grid,
    .admin-editor-form--incident .admin-editor-card .simple-editor-grid,
    .admin-editor-form--vacation .admin-editor-card .simple-editor-grid,
    .admin-editor-form--centre .admin-editor-card .simple-editor-grid,
    .admin-editor-form--employment-period .admin-editor-card .simple-editor-grid,
    .admin-editor-form--centre-period .admin-editor-card .simple-editor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
    .expense-filter-form:not(.expense-filter-form--accounts) {
        grid-template-columns:minmax(82px,.45fr) minmax(0,1fr)!important;
    }
    .sidebar-context { padding: 7px; display: block; }.sidebar-context-copy,.sidebar-context-back { display: none; }.sidebar-context-avatar { width: 40px; height: 40px; margin: auto; }
    .management-page.is-loading::after,[data-management-content].is-loading::after { left: 50%; }.management-toolbar { align-items: stretch; flex-direction: column; }.management-search { min-width: 100%; }.management-total { padding-left: 28px; }
    .request-editor-grid--identity,.request-editor-grid--period,.request-editor-grid--resolution{grid-template-columns:1fr}.request-control--title,.request-all-day-switch,.request-generate-switch,.request-notes-field,.request-upload-card,.request-file-error,.request-current-file,.request-readonly-card--wide,.request-hour-bank-effect,.request-rejection-reason{grid-column:auto}
    .request-upload-card{grid-template-columns:44px minmax(0,1fr)}.request-upload-card .btn{grid-column:1/-1}.request-upload-card__clear{grid-column:1/-1}
    .holiday-editor-grid{grid-template-columns:1fr}
    .shift-editor-grid--identity,.shift-editor-grid--time,.shift-usage-summary{grid-template-columns:1fr}
    .incident-type-editor-grid--identity,.incident-type-behaviour-grid{grid-template-columns:1fr}
    .expense-category-editor-grid--identity,.expense-category-editor-grid--visual{grid-template-columns:1fr}
    .admin-editor-form--centre .admin-editor-card .simple-editor-grid{grid-template-columns:1fr}
    .document-editor-aside{grid-template-columns:1fr}.document-main-fields,.document-scope-options,.document-requirement-options,.document-worker-recipient{grid-template-columns:1fr}.document-title-field,.document-description-field,.document-worker-recipient>small{grid-column:auto}
    .document-dropzone{grid-template-columns:54px minmax(0,1fr);padding:17px;gap:13px}.document-dropzone__icon{width:54px;height:54px}.document-dropzone__browse{width:100%;grid-column:1/-1}.document-dropzone__clear{grid-column:1/-1}
    .document-fixed-recipient{grid-template-columns:52px minmax(0,1fr)}.document-fixed-recipient>.status-pill{grid-column:2;justify-self:start}.document-editor-actions{align-items:stretch;flex-direction:column}.document-editor-actions .editor-actions-main{width:100%}.document-editor-actions .btn{flex:1}
}
@media (max-width: 560px) {
    .management-header { padding: 20px; }.management-header-actions,.management-header-actions .btn { width: 100%; }.management-search { align-items: stretch; flex-wrap: wrap; }.management-search > span { display: none; }.management-search input { width: 100%; flex-basis: 100%; }.management-search .btn { flex: 1; }.management-pagination { align-items: stretch; flex-direction: column; }.management-pagination > div,.management-pagination .btn { flex: 1; }.admin-module-summary { grid-template-columns: 1fr; }.management-card-grid { grid-template-columns: 1fr; }.management-card__header { grid-template-columns: 38px minmax(0,1fr); }.management-card__header .status-pill { grid-column: 1 / -1; justify-self: start; }.management-card__metrics,.management-card__timeline { grid-template-columns: 1fr; }.admin-editor-card .simple-editor-grid,.admin-editor-form--expense .admin-editor-card .simple-editor-grid,.admin-editor-form--document .admin-editor-card .simple-editor-grid,.admin-editor-form--incident .admin-editor-card .simple-editor-grid,.admin-editor-form--vacation .admin-editor-card .simple-editor-grid,.admin-editor-form--employment-period .admin-editor-card .simple-editor-grid,.admin-editor-form--centre-period .admin-editor-card .simple-editor-grid { grid-template-columns: 1fr; }.admin-editor-card .field-span-2,.admin-editor-form--expense .field-key-centrecode,.admin-editor-form--expense .field-key-date,.admin-editor-form--expense .field-key-categoryid,.admin-editor-form--expense .field-key-documenttype,.admin-editor-form--expense .field-key-documentnumber,.admin-editor-form--expense .field-key-providertaxid,.admin-editor-form--expense .field-key-currency,.admin-editor-form--expense .field-key-status,.admin-editor-form--expense .field-key-tax1type,.admin-editor-form--expense .field-key-tax2type,.admin-editor-form--expense .field-key-tax3type,.admin-editor-form--expense .field-key-tax1description,.admin-editor-form--expense .field-key-tax2description,.admin-editor-form--expense .field-key-tax3description,.admin-editor-form--document .field-key-categoryid,.admin-editor-form--document .field-key-scope,.admin-editor-form--document .field-key-centreid,.admin-editor-form--document .field-key-employeeid,.admin-editor-form--document .field-key-expirationdate,.admin-editor-form--document .field-key-state,.admin-editor-form--document .field-key-requiresreading,.admin-editor-form--document .field-key-requiresacceptance,.admin-editor-form--document .field-key-requiressignature,.admin-editor-form--document .field-key-visibletoworker,.admin-editor-form--incident .field-key-incidenttypecode,.admin-editor-form--incident .field-key-startdate,.admin-editor-form--incident .field-key-enddate,.admin-editor-form--incident .field-key-hours,.admin-editor-form--incident .field-key-allday,.admin-editor-form--vacation .field-key-year,.admin-editor-form--vacation .field-key-assigneddays,.admin-editor-form--vacation .field-key-assignedhours,.admin-editor-form--vacation .field-key-carriedhours,.admin-editor-form--vacation .field-key-consumedhoursinfo,.admin-editor-form--vacation .field-key-availablehoursinfo,.admin-editor-form--vacation .field-key-closedate,.admin-editor-form--employment-period .field-key-startdate,.admin-editor-form--employment-period .field-key-enddate,.admin-editor-form--centre-period .field-key-startdate,.admin-editor-form--centre-period .field-key-enddate { grid-column: auto; }
    .admin-module-summary--expenses,.admin-module-summary--expense-closures { grid-template-columns: 1fr; }
    .expense-filter-form--accounts{grid-template-columns:1fr!important;grid-template-rows:auto 40px auto 40px auto 40px 40px 40px}
    .expense-filter-form--accounts label[for="management-search-input"]{grid-column:1;grid-row:1}
    .expense-filter-form--accounts input[type="search"]{grid-column:1;grid-row:2}
    .expense-filter-form--accounts label[for="expense-worker-filter"]{grid-column:1;grid-row:3}
    .expense-filter-form--accounts #expense-worker-filter{grid-column:1;grid-row:4}
    .expense-filter-form--accounts label[for="management-status-filter"]{grid-column:1;grid-row:5}
    .expense-filter-form--accounts #management-status-filter{grid-column:1;grid-row:6}
    .expense-filter-form--accounts button[type="submit"]{grid-column:1;grid-row:7}
    .expense-filter-form--accounts .btn-quiet{grid-column:1;grid-row:8}
    .expense-toolbar--accounts .expense-view-tools{align-items:stretch;flex-wrap:wrap}
    .holiday-sheet-card__header{grid-template-columns:104px minmax(0,1fr)}
    .holiday-sheet-card__content{padding:16px 14px}
    .holiday-sheet-card__content h2{font-size:17px}
}

/* Personalización persistente del dashboard */
.dashboard-command-actions { flex-wrap: wrap; }
.dashboard-layout-actions { width: 100%; padding-top: 14px; position: absolute; z-index: 8; top: 100%; left: 0; right: 0; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; color: #5f7188; }
.dashboard-layout-actions[hidden] { display: none !important; }
.dashboard-layout-actions > span { margin-right: auto; font-size: 12px; line-height: 1.4; }
.dashboard-layout-actions button,.dashboard-widget-controls button { border: 1px solid #0d69ca; border-radius: 7px; background: #0d69ca; color: #fff; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.dashboard-layout-actions button { padding: 0 14px; }
.dashboard-layout-actions button:disabled,.dashboard-widget-controls button:disabled { opacity: .42; cursor: default; }
.dashboard-layout-status { color: #267553; font-size: 11px; text-align: right; }
.dashboard-layout-status.is-error { color: #b64232; }
.dashboard-widget-grid { margin-top: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-flow: dense; grid-auto-rows: 51px; align-items: stretch; column-gap: 18px; row-gap: 9px; }
.dashboard-widget-grid[hidden] { display: none !important; }
[data-dashboard-widget-zone][hidden],.dashboard-section-heading--analysis[hidden] { display: none !important; }
.dashboard-widget-grid > [data-dashboard-widget][hidden],
.employee-widget-grid > [data-employee-widget][hidden] { display: none !important; }
.dashboard-widget-grid > [data-dashboard-widget] { min-width: 0; min-height: 0; height: 100%; margin: 0; align-self: stretch; overflow: auto; scrollbar-gutter: stable; grid-row: span var(--dashboard-widget-rows,2); }
.dashboard-widget-grid > [data-dashboard-widget],
.employee-widget-grid > [data-employee-widget] {
    scrollbar-width: thin;
    scrollbar-color: #9eb7cf transparent;
}
.dashboard-widget-grid > [data-dashboard-widget]::-webkit-scrollbar,
.employee-widget-grid > [data-employee-widget]::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}
.dashboard-widget-grid > [data-dashboard-widget]::-webkit-scrollbar-track,
.employee-widget-grid > [data-employee-widget]::-webkit-scrollbar-track {
    margin-block: 8px;
    border-radius: 999px;
    background: transparent;
}
.dashboard-widget-grid > [data-dashboard-widget]::-webkit-scrollbar-thumb,
.employee-widget-grid > [data-employee-widget]::-webkit-scrollbar-thumb {
    min-height: 34px;
    border: 2px solid transparent;
    border-radius: 999px;
    background: #9eb7cf;
    background-clip: padding-box;
}
.dashboard-widget-grid > [data-dashboard-widget]::-webkit-scrollbar-thumb:hover,
.employee-widget-grid > [data-employee-widget]::-webkit-scrollbar-thumb:hover {
    background: #5f89ae;
    background-clip: padding-box;
}
.dashboard-widget-grid > [data-dashboard-widget][data-widget-height-mode="auto"] { overflow: hidden; scrollbar-gutter: auto; }
.dashboard-widget-grid > [data-dashboard-widget]:has(> .compact-empty),.dashboard-widget-grid > [data-dashboard-widget]:has(> .panel-v2-empty),.dashboard-widget-grid > [data-dashboard-widget]:has(> .intelligence-empty) { overflow: hidden; scrollbar-gutter: auto; }
.dashboard-widget-grid [data-dashboard-href] { cursor: pointer; }
.dashboard-widget-grid [data-dashboard-href]:hover,.dashboard-widget-grid [data-dashboard-href]:focus-visible { background-color: #f5f9fd; outline: none; }
.dashboard-widget-grid .worker-card[data-dashboard-href]:hover,.dashboard-widget-grid .worker-card[data-dashboard-href]:focus-visible { border-color: #9fc5ea; box-shadow: 0 8px 20px rgba(27,78,126,.1); transform: translateY(-1px); }
.dashboard-widget-grid .timeline-list [data-dashboard-href],.dashboard-widget-grid .request-list [data-dashboard-href],.dashboard-widget-grid .alert-list [data-dashboard-href],.dashboard-widget-grid .intelligence-list [data-dashboard-href],.dashboard-widget-grid .operations-table [data-dashboard-href] { transition: background-color .15s ease; }
.dashboard-widget-grid > .balance-card,.dashboard-widget-grid > .calendar-card,.dashboard-widget-grid > .today-card { overflow: hidden; scrollbar-gutter: auto; }
.dashboard-widget-grid > [data-widget-height="1"] { --dashboard-widget-rows: 2; }.dashboard-widget-grid > [data-widget-height="2"] { --dashboard-widget-rows: 4; }.dashboard-widget-grid > [data-widget-height="3"] { --dashboard-widget-rows: 6; }.dashboard-widget-grid > [data-widget-height="4"] { --dashboard-widget-rows: 8; }.dashboard-widget-grid > [data-widget-height="5"] { --dashboard-widget-rows: 10; }.dashboard-widget-grid > [data-widget-height="6"] { --dashboard-widget-rows: 12; }.dashboard-widget-grid > [data-widget-height="7"] { --dashboard-widget-rows: 14; }.dashboard-widget-grid > [data-widget-height="8"] { --dashboard-widget-rows: 16; }.dashboard-widget-grid > [data-widget-height="9"] { --dashboard-widget-rows: 18; }.dashboard-widget-grid > [data-widget-height="10"] { --dashboard-widget-rows: 20; }
.dashboard-widget-grid > .panel-v2 { height: 100%; }
.dashboard-widget-grid > .punches-card > .panel-v2__header { position: sticky; z-index: 7; top: 0; padding-bottom: 12px; background: #fff; }
.dashboard-widget-grid.is-layout-drop-at-end::after { content: "Soltar al final"; min-height: 90px; grid-column: 1/-1; display: grid; place-items: center; color: #147052; border: 2px dashed #28a872; border-radius: 12px; background: #f1fbf6; font-size: 12px; font-weight: 850; }
[data-dashboard-widget] { position: relative; }
.is-layout-editing [data-dashboard-widget].is-layout-editable { outline: 2px dashed #65a5e5; outline-offset: 3px; cursor: grab; transition: opacity .15s ease,outline-color .15s ease,transform .15s ease; }
.is-layout-editing [data-dashboard-widget].is-layout-editable:hover { outline-color: #0969ce; }
.is-layout-editing [data-dashboard-widget].is-layout-hidden { opacity: .43; filter: grayscale(.35); }
.is-layout-editing [data-dashboard-widget].is-layout-dragging { opacity: .42; cursor: grabbing; }
.is-layout-editing [data-dashboard-widget].is-layout-drop-target { outline-style: solid; outline-color: #16a06b; transform: translateY(-2px); }
.dashboard-widget-controls { position: absolute; z-index: 18; top: 9px; right: 9px; min-height: 34px; padding: 4px; display: flex; align-items: center; gap: 4px; border: 1px solid #b9d3ed; border-radius: 9px; background: rgba(255,255,255,.97); box-shadow: 0 7px 20px rgba(23,66,109,.15); }
.dashboard-widget-controls[hidden] { display: none !important; }
.dashboard-widget-controls button { min-width: 31px; height: 27px; padding: 0 8px; }
.dashboard-widget-controls button[data-layout-action="hide"] { color: #35516d; border-color: #d1deeb; background: #fff; }
.dashboard-widget-grip { width: 24px; display: grid; place-items: center; color: #5d7895; font-size: 16px; font-weight: 900; letter-spacing: -4px; cursor: grab; user-select: none; }
.dashboard-widget-width-control,.dashboard-widget-height-control { height: 27px; padding-left: 7px; display: flex; align-items: center; gap: 5px; color: #536b83; border-left: 1px solid #d7e2ed; font-size: 10px; font-weight: 800; }.dashboard-widget-width-control select,.dashboard-widget-height-control select { height: 25px; padding: 0 4px; color: #193b5f; border: 1px solid #bfd2e5; border-radius: 6px; background: #fff; font: inherit; font-weight: 900; cursor: pointer; }.dashboard-widget-width-control select { width: 40px; }.dashboard-widget-height-control select { width: 70px; }
.is-layout-editing .dashboard-quick-actions { padding-top: 51px; }
.is-layout-editing .dashboard-operations-grid > [data-dashboard-widget],.is-layout-editing .dashboard-v2-grid--hero > [data-dashboard-widget],.is-layout-editing .dashboard-v2-grid--middle > [data-dashboard-widget] { padding-top: 62px; }
.is-layout-editing .dashboard-v2-grid--activity,.is-layout-editing .workforce-panel,.is-layout-editing .dashboard-system-panel { padding-top: 57px; }
.is-layout-editing .dashboard-widget-grid > [data-dashboard-widget] { padding-top: 62px; }
.dashboard-widget-grid .dashboard-quick-actions { display: grid; align-content: stretch; overflow: hidden; scrollbar-gutter: auto; }
.dashboard-widget-grid .dashboard-quick-actions a { min-height: 0; grid-template-rows: auto auto; align-content: center; align-items: center; }
.dashboard-widget-grid [data-widget-width="1"].dashboard-quick-actions { grid-template-columns: 1fr; }
.dashboard-widget-grid [data-widget-width="2"].dashboard-quick-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dashboard-widget-grid [data-widget-width="3"].dashboard-quick-actions { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dashboard-widget-grid [data-widget-width="1"].forecast-panel .forecast-list { grid-template-columns: 1fr; }.dashboard-widget-grid [data-widget-width="2"].forecast-panel .forecast-list { grid-template-columns: repeat(2,minmax(0,1fr)); }.dashboard-widget-grid [data-widget-width="3"].forecast-panel .forecast-list { grid-template-columns: repeat(3,minmax(0,1fr)); }.dashboard-widget-grid [data-widget-width="4"].forecast-panel .forecast-list { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dashboard-today-overview { display: grid; grid-template-rows: auto minmax(0,1fr); container-type: inline-size; container-name: today-overview; scrollbar-gutter: auto; }
.dashboard-today-overview .dashboard-focus-heading { margin: 0 0 9px; align-items: center; }
.dashboard-today-overview .dashboard-focus-heading > div { min-width: 0; width: 100%; display: flex; align-items: baseline; gap: 10px; }
.dashboard-today-overview .dashboard-focus-heading h2 { flex: 0 0 auto; margin: 0; white-space: nowrap; }
.dashboard-today-overview .dashboard-focus-heading p { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-today-overview .operations-kpis { min-height: 0; height: 100%; margin: 0; align-items: stretch; }
.dashboard-today-overview .operation-kpi { min-height: 0; height: 100%; display: flex; flex-direction: column; }
.dashboard-today-overview .operation-kpi footer { margin-top: auto; }
.dashboard-widget-grid [data-widget-width="1"].dashboard-today-overview .operations-kpis { grid-template-columns: 1fr; }.dashboard-widget-grid [data-widget-width="2"].dashboard-today-overview .operations-kpis,.dashboard-widget-grid [data-widget-width="3"].dashboard-today-overview .operations-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
@container today-overview (max-width: 980px) {
    .operations-kpis { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    .dashboard-today-overview[data-widget-height="1"] .dashboard-focus-heading p,.dashboard-today-overview[data-widget-height="1"] .operation-kpi > p,.dashboard-today-overview[data-widget-height="1"] .operation-kpi footer { display: none; }
    .dashboard-today-overview[data-widget-height="1"] .operation-kpi { padding: 8px 10px; }
    .dashboard-today-overview[data-widget-height="1"] .operation-icon { width: 22px; height: 22px; }
    .dashboard-today-overview[data-widget-height="1"] .operation-kpi > strong { margin-top: 4px; font-size: 24px; }
}
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview { overflow: hidden; scrollbar-gutter: auto; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .dashboard-focus-heading { margin: 0 0 7px; align-items: center; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .dashboard-focus-heading span { font-size: 10px; line-height: 1.2; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .dashboard-focus-heading h2 { margin-top: 2px; font-size: 18px; line-height: 1.15; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .dashboard-focus-heading p { margin-top: 2px; font-size: 11px; line-height: 1.25; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operations-kpis { margin: 0; gap: 9px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-kpi { padding: 10px 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto auto; align-content: center; align-items: center; gap: 2px 12px; overflow: hidden; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-kpi::before { width: 46px; height: 46px; top: -22px; right: -18px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-icon { width: 25px; height: 25px; font-size: 9px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-kpi__top em { font-size: 10px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-kpi > strong { margin: 0; grid-column: 2; grid-row: 1 / span 2; font-size: 30px; line-height: 1; text-align: right; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-kpi > p { margin: 0; grid-column: 1; color: #6f7d90; font-size: 11px; line-height: 1.2; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview .operation-kpi footer { display: none; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview[data-widget-width="1"] .operations-kpis,.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview[data-widget-width="2"] .operations-kpis,.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview[data-widget-width="3"] .operations-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview[data-widget-width="1"] .dashboard-focus-heading span { display: none; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview[data-widget-width="1"] .dashboard-focus-heading p,.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview[data-widget-width="2"] .dashboard-focus-heading p { display: none; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview:not([data-widget-width="4"]) .operation-kpi { padding: 8px 10px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview:not([data-widget-width="4"]) .operation-icon { width: 22px; height: 22px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview:not([data-widget-width="4"]) .operation-kpi > strong { margin-top: 4px; font-size: 24px; }
.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview:not([data-widget-width="4"]) .operation-kpi > p,.dashboard-widget-grid [data-widget-height="1"].dashboard-today-overview:not([data-widget-width="4"]) .operation-kpi footer { display: none; }
.dashboard-widget-grid [data-widget-width="1"].dashboard-action-center .attention-header,.dashboard-widget-grid [data-widget-width="2"].dashboard-action-center .attention-header { flex-direction: column; }.dashboard-widget-grid [data-widget-width="1"].dashboard-action-center .attention-list,.dashboard-widget-grid [data-widget-width="2"].dashboard-action-center .attention-list { grid-template-columns: 1fr; }.dashboard-widget-grid [data-widget-width="1"].dashboard-action-center .attention-toolbar,.dashboard-widget-grid [data-widget-width="2"].dashboard-action-center .attention-toolbar { flex-wrap: wrap; }
.dashboard-widget-grid [data-widget-width="1"].punches-card .panel-v2__header,.dashboard-widget-grid [data-widget-width="2"].punches-card .panel-v2__header { flex-direction: column; }
.dashboard-widget-grid [data-widget-width="1"].punches-card .table-search,.dashboard-widget-grid [data-widget-width="2"].punches-card .table-search { width: 100%; }.dashboard-widget-grid [data-widget-width="1"].punches-card .table-search input,.dashboard-widget-grid [data-widget-width="2"].punches-card .table-search input { width: 100%; }
.dashboard-widget-grid [data-widget-width="1"] .system-grid,.dashboard-widget-grid [data-widget-width="2"] .system-grid,.dashboard-widget-grid [data-widget-width="1"] .data-quality-grid { grid-template-columns: 1fr; }
.dashboard-widget-grid [data-widget-width="2"] .data-quality-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid { grid-template-columns: 1fr; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .workforce-header,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .workforce-header { align-items: flex-start; flex-direction: column; }
.dashboard-widget-grid [data-widget-width="1"].calendar-card { overflow-x: auto; }.dashboard-widget-grid [data-widget-width="1"].calendar-card .calendar-grid { min-width: 680px; }

@media (max-width: 900px) {
    .dashboard-widget-controls { position: sticky; top: 6px; margin: 5px 5px 9px auto; width: max-content; }
    .is-layout-editing .dashboard-quick-actions,.is-layout-editing .dashboard-v2-grid--activity,.is-layout-editing .workforce-panel,.is-layout-editing .dashboard-system-panel { padding-top: 8px; }
    .is-layout-editing .dashboard-widget-grid > [data-dashboard-widget] { padding-top: 58px; }
}

@media (max-width: 1180px) {
    .dashboard-widget-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dashboard-widget-grid > [data-dashboard-widget] { grid-column: span 2 !important; }
    .dashboard-widget-grid > [data-widget-width="1"] { grid-column: span 1 !important; }
}
@media (max-width: 700px) {
    .dashboard-widget-grid { grid-template-columns: 1fr; }
    .dashboard-widget-grid > [data-dashboard-widget] { grid-column: span 1 !important; }
}

/* Panel configurable del centro */
.centre-dashboard-avatar{overflow:hidden;background:#f4f9ff}
.centre-dashboard-avatar img{width:100%;height:100%;object-fit:cover}
.dashboard-fixed-centre{min-width:235px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:7px 14px;border:1px solid #cbdced;border-radius:10px;background:#f7fbff}
.dashboard-fixed-centre span{color:#71849b;font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.dashboard-fixed-centre strong{max-width:260px;overflow:hidden;color:#17314f;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.centre-dashboard-overview{min-width:0}
.centre-dashboard-overview .panel-v2__header{align-items:center}
.centre-dashboard-overview__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:0 20px 20px}
.centre-dashboard-overview__grid article{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 11px;padding:14px;border:1px solid #d9e5f1;border-radius:12px;background:#f8fbfe}
.centre-dashboard-overview__grid article>a{grid-column:2;color:#0869c9;font-size:11px;font-weight:900;text-decoration:none}
.centre-dashboard-overview__grid article>a:hover{text-decoration:underline}
.centre-dashboard-overview__grid small{display:block;margin-bottom:3px;color:#71849b;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.centre-dashboard-overview__grid strong{display:block;overflow:hidden;color:#17314f;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.centre-dashboard-overview__grid p{min-height:30px;margin:3px 0 7px;color:#667a93;font-size:11px;line-height:1.35}
.centre-overview-icon{grid-row:1 / span 2;width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#e7f2ff;color:#0869c9;font-size:11px;font-weight:950}
.centre-overview-icon--holiday{background:#fff3df;color:#bd670e}
.centre-overview-icon--validation{background:#e7f8f0;color:#087c55}
@media (max-width:900px){
    .dashboard-fixed-centre{width:100%;min-width:0}
    .centre-dashboard-overview__grid{grid-template-columns:1fr}
}

/* Dashboard operativo 2026 */
.dashboard-commandbar { margin-bottom: 20px; display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; }
.company-commandbar { padding: 22px 24px; position: relative; align-items: center; flex-wrap: wrap; gap: 20px; border: 1px solid #dce5ef; border-radius: 16px; background: linear-gradient(135deg,#fff 0%,#f6faff 100%); box-shadow: 0 12px 34px rgba(19,53,88,.05); }
.company-dashboard-identity { min-width: 0; display: flex; align-items: center; gap: 16px; }.company-dashboard-identity__avatar { width: 70px; height: 70px; flex: 0 0 auto; position: relative; display: grid; place-items: center; overflow: hidden; color: #2c5f91; border: 4px solid #fff; border-radius: 50%; background: #e8f1fa; box-shadow: 0 0 0 1px #cfdae6; font-size: 20px; font-weight: 900; }.company-dashboard-identity__avatar.has-image { width: 92px; height: 66px; flex-basis: 92px; border: 1px solid #cfe0f1; border-radius: 18px; background-color: #fff; background-image: var(--company-logo); background-position: center; background-repeat: no-repeat; background-size: calc(100% - 14px) calc(100% - 14px); box-shadow: 0 10px 24px rgba(21,50,82,.09); }.company-dashboard-identity__avatar.has-image b { display: none; }.company-dashboard-identity h1 { margin: 3px 0 2px; overflow: hidden; color: #1b3555; font-size: 27px; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }.company-dashboard-identity p { margin: 0 0 8px; color: #718197; font-size: 13px; }
.company-dashboard-state { width: max-content; padding: 6px 10px; display: flex; align-items: center; gap: 7px; color: #17684d; border-radius: 999px; background: #e3f5ec; font-size: 11px; font-weight: 850; text-transform: uppercase; }.company-dashboard-state i { width: 8px; height: 8px; border-radius: 50%; background: #20a66f; box-shadow: 0 0 0 4px rgba(32,166,111,.13); }
.company-command-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }.is-layout-editing .company-commandbar { margin-bottom: 70px; }
.private-page-header.company-dashboard-compact-header {
    height:auto;
    min-height:78px;
    max-height:none;
    padding:13px 16px;
    display:block;
    flex:0 0 auto;
    overflow:visible;
}
.company-dashboard-compact-header__main {
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.company-dashboard-compact-header .employee-identity {
    gap:12px;
}
.company-dashboard-compact-header .employee-identity__avatar {
    width:44px;
    height:44px;
    flex-basis:44px;
    border-radius:11px;
    font-size:16px;
    box-shadow:inset 0 0 0 4px rgba(255,255,255,.72);
}
.company-dashboard-compact-header .employee-identity__avatar--company-logo {
    width:54px;
    height:44px;
    flex-basis:54px;
    border-radius:11px;
    box-shadow:0 5px 14px rgba(21,50,82,.08);
}
.company-dashboard-compact-header .employee-identity__avatar--company-logo img {
    padding:5px;
}
.company-dashboard-compact-header .panel-kicker {
    margin-bottom:3px;
    font-size:9px;
}
.company-dashboard-compact-header__title {
    min-width:0;
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:5px 10px;
}
.company-dashboard-compact-header .employee-identity h1 {
    font-size:21px;
    line-height:1.05;
}
.company-dashboard-inline-breadcrumb {
    min-width:0;
    margin-top:4px;
    display:flex;
    align-items:center;
    gap:4px;
    overflow:hidden;
    color:#8a98aa;
    font-size:10px;
    line-height:1.2;
    white-space:nowrap;
}
.company-dashboard-inline-breadcrumb a,
.company-dashboard-inline-breadcrumb strong {
    min-width:0;
    max-width:240px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.company-dashboard-inline-breadcrumb a {
    color:#1768bd;
    font-weight:750;
    text-decoration:none;
}
.company-dashboard-inline-breadcrumb a:hover,
.company-dashboard-inline-breadcrumb a:focus-visible {
    color:#0759a5;
    text-decoration:underline;
}
.company-dashboard-inline-breadcrumb strong {
    color:#596b80;
    font-weight:800;
}
.company-dashboard-compact-header__details {
    margin-top:11px;
    padding:10px 0 0 66px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border-top:1px solid #e3ebf3;
}
.company-dashboard-compact-header__details[hidden] {
    display:none !important;
}
.company-dashboard-compact-header__metadata {
    min-width:0;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
}
.company-dashboard-compact-header__metadata p {
    margin:0;
    color:#657991;
    font-size:12px;
}
.company-dashboard-compact-header__metadata .company-dashboard-state {
    padding:5px 9px;
    font-size:9px;
}
.company-dashboard-compact-header__secondary-actions {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
}
.company-dashboard-compact-header__secondary-actions .btn {
    min-height:34px;
    padding:7px 11px;
}
.company-dashboard-compact-header .company-dashboard-details-toggle {
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px;
    padding:0;
    display:grid;
    place-items:center;
    flex:0 0 38px;
}
.company-dashboard-compact-header .company-command-actions {
    gap:8px;
}
.company-dashboard-details-toggle__icon {
    width:9px;
    height:9px;
    display:block;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translateY(-2px) rotate(45deg);
    transition:transform .16s ease;
}
.company-dashboard-details-toggle[aria-expanded="true"] .company-dashboard-details-toggle__icon {
    transform:translateY(2px) rotate(225deg);
}
@media (min-width:681px) {
    .private-page-header.company-dashboard-compact-header.fn-help-anchor > .fn-help__launcher {
        top:16px;
    }
}
@media (max-width:900px) {
    .company-dashboard-compact-header__main {
        align-items:flex-start;
    }
    .company-dashboard-compact-header__details {
        padding-left:0;
        align-items:flex-start;
        flex-direction:column;
    }
    .company-dashboard-compact-header__secondary-actions {
        justify-content:flex-start;
    }
}
@media (max-width:680px) {
    .company-dashboard-compact-header__main {
        flex-direction:column;
        gap:11px;
    }
    .company-dashboard-compact-header .employee-identity {
        align-items:center;
    }
    .company-dashboard-compact-header .company-command-actions {
        width:100%;
        display:grid;
        grid-template-columns:1fr 1fr auto;
    }
    .company-dashboard-compact-header .company-command-actions .btn {
        width:100%;
    }
    .company-dashboard-compact-header .company-dashboard-details-toggle {
        width:38px;
        min-width:38px;
        grid-column:auto;
    }
    .company-dashboard-inline-breadcrumb a,
    .company-dashboard-inline-breadcrumb strong {
        max-width:115px;
    }
    .company-dashboard-compact-header__secondary-actions {
        width:100%;
    }
    .company-dashboard-compact-header__secondary-actions .btn {
        flex:1 1 auto;
    }
}
.dashboard-welcome h1 { margin: 5px 0 6px; color: #11243e; font-size: clamp(25px,2.25vw,35px); letter-spacing: -.035em; }
.dashboard-welcome p { margin: 0; color: #718096; font-size: 12px; }.dashboard-welcome p strong { color: #40516a; }
.dashboard-health { min-width: 202px; padding: 11px 14px; display: flex; align-items: center; gap: 11px; border: 1px solid #d7e9e0; border-radius: 10px; background: #f6fcf8; }
.dashboard-health > i { width: 10px; height: 10px; flex: 0 0 auto; border: 3px solid #d6f2e3; border-radius: 50%; background: #1ea366; box-sizing: content-box; }.dashboard-health strong,.dashboard-health small { display: block; }.dashboard-health strong { color: #286548; font-size: 10px; }.dashboard-health small { margin-top: 2px; color: #718a7c; font-size: 8px; }
.dashboard-filters { margin-bottom: 18px; padding: 10px 12px; display: grid; grid-template-columns: minmax(260px,1fr) auto auto auto; align-items: center; gap: 14px; border: 1px solid #dfe7f0; border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(18,45,78,.03); }
.dashboard-filter-form { display: flex; align-items: center; gap: 9px; }.dashboard-filter-form label { color: #768398; font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.dashboard-filter-form select { min-width: 190px; height: 36px; padding: 0 32px 0 11px; color: #21334d; border: 1px solid #d7e0eb; border-radius: 7px; background: #f9fbfd; font: inherit; font-size: 10px; font-weight: 750; }
.dashboard-filter-utilities { display: flex; align-items: center; justify-content: flex-end; gap: 14px; min-width: max-content; }
.period-tabs { padding: 3px; display: flex; gap: 2px; border-radius: 8px; background: #eef3f8; }.period-tabs a { min-width: 58px; padding: 7px 10px; color: #6c7b90; border-radius: 6px; font-size: 9px; font-weight: 800; text-align: center; }.period-tabs a.active { color: #fff; background: #0d67c9; box-shadow: 0 4px 10px rgba(13,103,201,.2); }
.period-navigator { display: flex; align-items: center; gap: 5px; }.period-navigator > a { width: 29px; height: 29px; display: grid; place-items: center; color: #55657b; border: 1px solid #dce4ee; border-radius: 7px; background: #fff; font-size: 19px; }.period-navigator > strong { min-width: 145px; color: #25364e; font-size: 10px; text-align: center; text-transform: capitalize; }.period-navigator .today-link { width: auto; padding: 0 10px; color: #0b67c9; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.operations-kpis { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.operation-kpi { min-width: 0; padding: 16px 17px 13px; position: relative; overflow: hidden; color: inherit; border: 1px solid #e0e7ef; border-radius: 12px; background: #fff; box-shadow: 0 8px 24px rgba(20,46,80,.035); text-decoration: none; cursor: pointer; transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease; }.operation-kpi:hover,.operation-kpi:focus-visible { border-color: #9fc5ea; box-shadow: 0 11px 27px rgba(20,46,80,.09); transform: translateY(-1px); outline: none; }.operation-kpi::before { content: ""; width: 82px; height: 82px; position: absolute; top: -36px; right: -25px; border-radius: 50%; background: var(--soft); }
.operation-kpi--blue { --accent:#176fd0; --soft:#e9f3ff; }.operation-kpi--green { --accent:#15865a; --soft:#e4f7ed; }.operation-kpi--orange { --accent:#c26727; --soft:#fff0e3; }.operation-kpi--violet { --accent:#7154bd; --soft:#f0ebff; }
.operation-kpi__top { display: flex; align-items: center; gap: 8px; }.operation-icon { width: 27px; height: 27px; display: grid; place-items: center; color: var(--accent); border-radius: 7px; background: var(--soft); font-size: 7px; font-weight: 900; letter-spacing: .03em; }.operation-kpi__top em { color: #738197; font-size: 9px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.operation-kpi > strong { margin-top: 10px; display: block; color: #162943; font-size: 29px; letter-spacing: -.04em; line-height: 1; }.operation-kpi > p { margin: 4px 0 13px; overflow: hidden; color: #6f7d90; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.operation-kpi footer { padding-top: 9px; display: flex; justify-content: space-between; gap: 8px; color: #7c899a; border-top: 1px solid #edf1f5; font-size: 8px; }.operation-kpi footer span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.operation-kpi footer b { flex: 0 0 auto; color: var(--accent); }
.dashboard-v2-grid { display: grid; gap: 18px; }.dashboard-v2-grid--hero { grid-template-columns: minmax(0,1.75fr) minmax(270px,.62fr); }.dashboard-v2-grid--middle { margin-top: 18px; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); }.dashboard-v2-grid--activity { margin-top: 18px; grid-template-columns: minmax(0,1.5fr) minmax(320px,.62fr); align-items: start; }
.panel-v2 { min-width: 0; padding: 19px; border: 1px solid #e0e7ef; border-radius: 12px; background: #fff; box-shadow: 0 8px 28px rgba(20,46,80,.035); }.panel-v2__header { margin-bottom: 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.panel-v2__header h2 { margin: 3px 0 0; color: #172a45; font-size: 15px; letter-spacing: -.015em; }.panel-v2__header p { margin: 4px 0 0; color: #8793a4; font-size: 9px; }.panel-kicker { color: #0f69ca; font-size: 7px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.chart-legend-v2,.calendar-legend { display: flex; align-items: center; gap: 12px; color: #67768b; font-size: 8px; }.chart-legend-v2 span::before,.calendar-legend span::before { content: ""; width: 7px; height: 7px; margin-right: 5px; display: inline-block; border-radius: 2px; }.chart-legend-v2 .theoretical::before { background: #c5d0dc; }.chart-legend-v2 .worked::before { background: #176fd0; }.chart-legend-v2 .incidence::before { background: #ef9643; }
.balance-totals { padding: 12px 14px; display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; border: 1px solid #e8edf3; border-radius: 9px; background: #f8fafc; }.balance-totals > div { padding-left: 13px; border-left: 1px solid #e1e7ee; }.balance-totals > div:first-child { padding-left: 0; border-left: 0; }.balance-totals small,.balance-totals strong { display: block; }.balance-totals small { color: #8793a3; font-size: 8px; }.balance-totals strong { margin-top: 3px; font-size: 13px; }.negative { color: #bd572d !important; }.positive { color: #138057 !important; }
.period-chart { height: 235px; margin-top: 17px; padding: 12px 5px 0; display: flex; align-items: stretch; gap: clamp(4px,1.2vw,15px); border-bottom: 1px solid #dce4ed; background: repeating-linear-gradient(to bottom,transparent 0 51px,#edf1f5 52px); }.period-chart__bucket { min-width: 0; flex: 1; display: grid; grid-template-rows: 1fr auto auto; justify-items: center; gap: 3px; }.period-chart__bars { width: 100%; height: 100%; display: flex; align-items: end; justify-content: center; gap: 3px; }.period-chart__bars i { width: min(14px,27%); min-height: 2px; border-radius: 3px 3px 0 0; }.period-chart__bars .theoretical { background: #c5d0dc; }.period-chart__bars .worked { background: linear-gradient(180deg,#2b8aeb,#0e61c3); }.period-chart__bars .incidence { background: #ef9643; }.period-chart__bucket > strong { max-width: 100%; overflow: hidden; color: #526278; font-size: 8px; text-overflow: ellipsis; text-transform: capitalize; white-space: nowrap; }.period-chart__bucket > small { margin-bottom: -15px; color: #9aa5b4; font-size: 7px; }
.today-card { display: flex; flex-direction: column; }.today-card .panel-v2__header { margin-bottom: 6px; }.today-donut { width: 137px; height: 137px; margin: 8px auto 15px; position: relative; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#1da36b 0 calc(var(--working)*1%),#1673d4 calc(var(--working)*1%) calc(var(--completed)*1%),#dce3eb calc(var(--completed)*1%) 100%); }.today-donut::after { content: ""; position: absolute; inset: 18px; border-radius: 50%; background: #fff; }.today-donut span { z-index: 1; text-align: center; }.today-donut strong,.today-donut small { display: block; }.today-donut strong { color: #162943; font-size: 26px; line-height: 1; }.today-donut small { margin-top: 4px; color: #8290a2; font-size: 8px; }
.status-breakdown { margin: auto 0 0; padding: 0; list-style: none; }.status-breakdown li { padding: 8px 3px; display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 9px; border-top: 1px solid #edf1f5; }.status-breakdown > li > i { width: 7px; height: 7px; border-radius: 50%; }.status-breakdown .green { background: #1da36b; }.status-breakdown .blue { background: #1673d4; }.status-breakdown .gray { background: #cbd5e0; }.status-breakdown strong,.status-breakdown small { display: block; }.status-breakdown strong { color: #34465f; font-size: 9px; }.status-breakdown small { margin-top: 2px; color: #929dab; font-size: 7px; }.status-breakdown b { color: #1e314c; font-size: 12px; }
.calendar-legend .ok::before { background: #2aa574; }.calendar-legend .pending::before { background: #e7ad45; }.calendar-legend .incidence::before { background: #e27042; }.calendar-weekdays,.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }.calendar-weekdays { margin-bottom: 5px; }.calendar-weekdays span { padding: 4px; color: #8b96a5; font-size: 7px; font-weight: 850; text-align: center; text-transform: uppercase; }.calendar-day,.calendar-pad { min-height: 54px; border-radius: 7px; }.calendar-day { padding: 7px; position: relative; border: 1px solid #e8edf3; background: #fbfcfd; }.calendar-day > strong { display: block; color: #33455d; font-size: 9px; }.calendar-day > span { margin-top: 8px; display: block; overflow: hidden; color: #8491a2; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.calendar-day > i { width: 5px; height: 5px; position: absolute; right: 6px; bottom: 6px; border-radius: 50%; }.calendar-day.is-complete > i { background: #28a271; }.calendar-day.is-pending > i { background: #e2aa42; }.calendar-day.has-incidence > i { background: #df6c3e; }.calendar-day.is-today { border-color: #237bda; box-shadow: inset 0 0 0 1px #237bda; }.calendar-day.is-today > strong { color: #0d65c3; }
.panel-v2-empty { min-height: 210px; display: grid; place-content: center; gap: 5px; color: #8390a1; border: 1px dashed #dce3eb; border-radius: 9px; background: #fafcfd; text-align: center; }.panel-v2-empty strong { color: #526176; font-size: 11px; }.panel-v2-empty span { font-size: 8px; }.difference-list { margin: 0; padding: 0; list-style: none; }.difference-list li { padding: 8px 0; display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 9px; border-top: 1px solid #edf1f5; }.difference-list li:first-child { border-top: 0; }.difference-rank { color: #94a0af; font-size: 8px; font-weight: 850; text-align: center; }.difference-list li > div { min-width: 0; }.difference-list strong,.difference-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.difference-list strong { color: #2c3e57; font-size: 9px; }.difference-list small { margin: 2px 0 5px; color: #929dab; font-size: 7px; }.difference-list div > i { max-width: 100%; height: 3px; display: block; border-radius: 3px; background: currentColor; opacity: .6; }.difference-list li > b { min-width: 43px; font-size: 9px; text-align: right; }
.table-search { display: flex; align-items: center; gap: 7px; }.table-search span { color: #8490a1; font-size: 8px; }.table-search input { width: 145px; height: 31px; padding: 0 10px; border: 1px solid #dae3ed; border-radius: 7px; background: #f9fbfd; font: inherit; font-size: 8px; outline: none; }.table-search input:focus { border-color: #2980da; box-shadow: 0 0 0 3px rgba(41,128,218,.1); }
.operations-table { width: 100%; border-collapse: collapse; }.operations-table th { padding: 8px 9px; color: #8b96a5; border-bottom: 1px solid #dfe6ee; background: #f8fafc; font-size: 7px; letter-spacing: .05em; text-align: left; text-transform: uppercase; }.operations-table td { padding: 10px 9px; color: #5b6a7e; border-bottom: 1px solid #edf1f5; font-size: 8px; }.operations-table td > b { color: #2f435e; }.employee-cell { display: flex; align-items: center; gap: 8px; }.employee-cell i { width: 26px; height: 26px; display: grid; place-items: center; color: #1569c5; border-radius: 7px; background: #eaf3fd; font-size: 7px; font-style: normal; font-weight: 900; }.employee-cell strong { max-width: 160px; overflow: hidden; color: #2c3e57; text-overflow: ellipsis; white-space: nowrap; }.status-pill { padding: 4px 7px; display: inline-flex; border-radius: 20px; font-size: 7px; font-weight: 850; }.status-pill--done { color: #277254; background: #e6f6ee; }.status-pill--working { color: #1264bd; background: #e7f1fc; }
.dashboard-side-stack { display: grid; gap: 18px; }.panel-count { min-width: 28px; height: 28px; display: grid; place-items: center; color: #0e65c3; border-radius: 8px; background: #eaf3fe; font-size: 11px; }.request-list,.alert-list { margin: 0; padding: 0; list-style: none; }.request-list li,.alert-list li { padding: 9px 2px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #edf1f5; }.request-list strong,.request-list small,.alert-list strong,.alert-list small { display: block; }.request-list strong,.alert-list strong { max-width: 170px; overflow: hidden; color: #30425b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.request-list small,.alert-list small { margin-top: 3px; color: #8d99a8; font-size: 7px; }.request-list li > i { color: #7d8b9f; font-size: 16px; font-style: normal; }.alert-list li > b { color: #bd5a2d; font-size: 8px; }.alerts-card.has-alerts { border-color: #f1d7c8; }.compact-empty { min-height: 68px; display: grid; place-content: center; color: #8a96a6; border-radius: 8px; background: #f8fafc; font-size: 8px; text-align: center; }.compact-empty--ok { display: flex; align-items: center; justify-content: center; gap: 7px; color: #34775a; background: #f1faf5; }.compact-empty--ok i { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #daf2e5; font-style: normal; font-weight: 900; }
.request-list li > .incident-type-inline-icon { flex: 0 0 auto; margin: 0; }
.request-list li > .incident-type-inline-icon + span { min-width: 0; flex: 1 1 auto; }

@media (max-width: 1220px) {
    .dashboard-filters { grid-template-columns: 1fr auto; }.dashboard-filter-utilities { grid-column: 1/-1; padding-top: 9px; border-top: 1px solid #edf1f5; }.period-navigator { justify-content: flex-end; }.operations-kpis { grid-template-columns: 1fr 1fr; }.dashboard-v2-grid--middle { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
    .dashboard-v2-grid--hero,.dashboard-v2-grid--activity { grid-template-columns: 1fr; }.today-card { min-height: auto; }.today-donut { margin-block: 10px; }.dashboard-commandbar { align-items: flex-start; }.company-commandbar { flex-direction: column; }.company-command-actions { width: 100%; justify-content: flex-start; }.calendar-day { min-height: 49px; }
}
@media (max-width: 700px) {
    .dashboard-commandbar { flex-direction: column; gap: 12px; }.company-commandbar { padding: 18px; }.company-dashboard-identity { align-items: flex-start; }.company-dashboard-identity__avatar { width: 58px; height: 58px; }.company-dashboard-identity h1 { font-size: 21px; white-space: normal; }.company-command-actions .btn { flex: 1; }.dashboard-health { width: 100%; }.dashboard-filters { grid-template-columns: 1fr; }.dashboard-filter-form { align-items: stretch; flex-direction: column; }.dashboard-filter-form select { width: 100%; }.period-tabs { width: 100%; }.period-tabs a { flex: 1; }.period-navigator { grid-column: auto; justify-content: center; }.dashboard-filter-utilities { align-items: stretch; flex-direction: column; }.dashboard-live-tools { justify-content: flex-start; }.operations-kpis { grid-template-columns: 1fr 1fr; gap: 9px; }.balance-totals { grid-template-columns: 1fr 1fr; gap: 10px; }.balance-totals > div:nth-child(3) { padding-left: 0; border-left: 0; }.chart-legend-v2,.calendar-legend { display: none; }.period-chart { height: 190px; gap: 3px; }.period-chart__bucket > small { display: none; }.calendar-card { overflow-x: auto; }.calendar-weekdays,.calendar-grid { min-width: 540px; }.panel-v2__header { flex-direction: column; }.table-search { width: 100%; }.table-search input { width: 100%; }.operations-table { min-width: 630px; }
}
@media (max-width: 440px) {
    .operations-kpis { grid-template-columns: 1fr; }.period-navigator > strong { min-width: 105px; }.operation-kpi { padding: 14px; }.panel-v2 { padding: 15px; }
}

.hours-objective { margin-top: 25px; padding: 12px 14px; position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 5px 15px; border: 1px solid #e4ebf2; border-radius: 9px; background: #fbfcfe; }.hours-objective strong,.hours-objective span { display: block; }.hours-objective strong { color: #344760; font-size: 9px; }.hours-objective div > span { margin-top: 3px; color: #8995a5; font-size: 8px; }.hours-objective > b { color: #176fd0; font-size: 13px; }.hours-objective > i { height: 6px; grid-column: 1/-1; overflow: hidden; border-radius: 8px; background: #e4eaf1; }.hours-objective > i > span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#1670d1,#2d91ed); }.hours-objective > i > span.is-complete { background: linear-gradient(90deg,#17875b,#2caf79); }
.panel-count--orange { color: #b55b25; background: #fff0e4; }.incidences-card .panel-v2__header p { margin-top: 5px; color: #75859a; font-size: 10px; }.incidences-card .panel-v2__header p strong { color: #354c67; }.incidence-card-actions { display: flex; align-items: center; gap: 8px; }.incidence-list { margin: 0; padding: 0; list-style: none; }.incidence-list li { padding: 9px 1px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; border-top: 1px solid #edf1f5; }.incidence-list li:first-child { border-top: 0; }.incidence-mark { width: 32px; height: 28px; display: grid; place-items: center; color: #b85b26; border-radius: 7px; background: #fff0e4; font-size: 7px; font-weight: 900; }.incidence-list li.is-vacation .incidence-mark { color: #176b52; background: #e5f5ed; }.incidence-list strong,.incidence-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.incidence-list strong { color: #30425b; font-size: 9px; }.incidence-list small { margin-top: 3px; color: #8d98a8; font-size: 7px; }.incidence-list small b { color: #a95a28; }.incidence-list li.is-vacation small b { color: #247157; }.incidence-list em { max-width: 80px; overflow: hidden; color: #8390a1; font-size: 7px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.workforce-panel { margin-top: 18px; }.workforce-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }.workforce-header h2 { margin: 3px 0 0; color: #172a45; font-size: 17px; }.workforce-header p { margin: 4px 0 0; color: #8793a4; font-size: 9px; }.workforce-summary { display: flex; align-items: center; gap: 14px; color: #68778b; font-size: 8px; }.workforce-summary span { display: flex; align-items: center; gap: 5px; white-space: nowrap; }.workforce-summary i { width: 6px; height: 6px; border-radius: 50%; }.workforce-summary i.is-working { background: #20a56c; }.workforce-summary i.is-out { background: #bec9d6; }.workforce-summary i.has-incidence { background: #df743e; }.workforce-summary b { color: #30425b; }
.workforce-toolbar { margin: 16px 0; padding: 11px 12px; display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; border: 1px solid #e5ebf2; border-radius: 9px; background: #f8fafc; }.worker-search-form { display: grid; gap: 5px; }.worker-search-form label { color: #758397; font-size: 7px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }.worker-search-form > div { display: flex; }.worker-search-form input { width: min(300px,50vw); height: 34px; padding: 0 11px; border: 1px solid #d5dfeb; border-radius: 7px 0 0 7px; background: #fff; font: inherit; font-size: 9px; outline: none; }.worker-search-form input:focus { border-color: #247bd4; box-shadow: 0 0 0 3px rgba(36,123,212,.1); }.worker-search-form button { height: 34px; padding: 0 14px; color: #fff; border: 0; border-radius: 0 7px 7px 0; background: #1268c7; font: inherit; font-size: 8px; font-weight: 850; cursor: pointer; }.working-filter { min-height: 34px; padding: 0 12px; display: inline-flex; align-items: center; gap: 7px; color: #52647a; border: 1px solid #d7e0ea; border-radius: 7px; background: #fff; font-size: 8px; font-weight: 800; }.working-filter i { width: 7px; height: 7px; border: 2px solid #8c9aab; border-radius: 50%; }.working-filter.active { color: #19704e; border-color: #bee3d0; background: #eef9f3; }.working-filter.active i { border-color: #20a56c; background: #20a56c; box-shadow: 0 0 0 3px rgba(32,165,108,.12); }
.worker-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; }.worker-card { min-width: 0; padding: 13px; position: relative; border: 1px solid #e1e8f0; border-radius: 10px; background: #fff; transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease; }.worker-card:hover { border-color: #cbd9e8; box-shadow: 0 8px 20px rgba(24,49,80,.07); transform: translateY(-1px); }.worker-card.is-working { border-top: 2px solid #26a873; }.worker-card__identity { padding-right: 2px; display: flex; align-items: center; gap: 10px; }.worker-card__identity > .worker-avatar { width: 42px; height: 42px; flex: 0 0 42px; position: relative; display: grid; place-items: center; overflow: hidden; color: #1168c6; border: 1px solid #dce8f5; border-radius: 11px; background: #eaf3fd; font-weight: 900; }.worker-card.is-working .worker-card__identity > .worker-avatar { color: #177550; border-color: #d3ebdf; background: #e8f7ef; }.worker-avatar__initials { font-size: 10px; }.worker-avatar__image { width: 100%; height: 100%; position: absolute; inset: 0; display: block; object-fit: cover; object-position: center; background: #eef3f8; }.worker-avatar__image[hidden] { display: none; }.worker-card__identity div { min-width: 0; }.worker-card__identity strong,.worker-card__identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.worker-card__identity strong { color: #2c3f58; font-size: 9px; }.worker-card__identity small { margin-top: 3px; color: #8a96a6; font-size: 7px; }
.worker-state { margin-top: 11px; padding: 5px 7px; display: inline-flex; align-items: center; gap: 5px; border-radius: 20px; font-size: 6px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }.worker-state i { width: 5px; height: 5px; border-radius: 50%; }.worker-state.working { color: #18734f; background: #e7f6ee; }.worker-state.working i { background: #20a56c; box-shadow: 0 0 0 2px rgba(32,165,108,.12); }.worker-state.out { color: #68788d; background: #eef2f6; }.worker-state.out i { background: #a9b5c3; }.worker-state.incidence { color: #9a431c; background: #fff0e5; }.worker-state.incidence i { background: #f97316; box-shadow: 0 0 0 2px rgba(249,115,22,.14); }.worker-card.has-incidence { border-top: 2px solid #f28a42; }.worker-incidence { margin: 7px 0 0 5px; padding: 5px 7px; display: inline-flex; color: #b45a27; border-radius: 20px; background: #fff0e5; font-size: 6px; font-weight: 850; }.worker-last { margin-top: 10px; padding-top: 9px; border-top: 1px solid #edf1f5; }.worker-last > span,.worker-last > strong,.worker-last > small { display: block; }.worker-last > span { color: #909baa; font-size: 6px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.worker-last > strong { margin-top: 4px; color: #465970; font-size: 8px; }.worker-last > small { margin-top: 4px; overflow: hidden; color: #929dab; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.workforce-empty { min-height: 150px; }
.workforce-footer { margin-top: 14px; padding-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 15px; color: #8793a3; border-top: 1px solid #e7edf3; font-size: 8px; }.workforce-footer nav { display: flex; align-items: center; gap: 9px; }.workforce-footer nav a { padding: 6px 9px; color: #1768c2; border: 1px solid #d9e3ee; border-radius: 6px; background: #fff; font-weight: 800; }.workforce-footer nav strong { color: #5a6a80; font-size: 8px; }.worker-incidence.is-empty,.worker-last small.is-empty,.workforce-footer nav.is-hidden { display: none; }.workforce-footer nav a.is-disabled { color: #a8b2bf; pointer-events: none; }

@media (max-width: 1250px) { .worker-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.workforce-header { align-items: flex-start; flex-direction: column; } }
@media (max-width: 900px) { .worker-grid { grid-template-columns: 1fr 1fr; }.workforce-summary { width: 100%; flex-wrap: wrap; }.workforce-toolbar { align-items: stretch; flex-direction: column; }.worker-search-form input { width: 100%; }.working-filter { align-self: flex-start; } }
@media (max-width: 560px) { .worker-grid { grid-template-columns: 1fr; }.workforce-footer { align-items: flex-start; flex-direction: column; }.workforce-footer nav { width: 100%; justify-content: space-between; }.workforce-summary { display: grid; grid-template-columns: 1fr 1fr; } }

/* Organización del dashboard por contexto */
.dashboard-organized { display: flex; flex-direction: column; }
.dashboard-organized > .employee-commandbar { order: 1; margin-bottom: 20px; }.dashboard-organized.is-layout-editing > .employee-commandbar { margin-bottom: 70px; overflow: visible; }.dashboard-organized > .dashboard-filters { order: 2; }.dashboard-organized > .dashboard-focus-heading { order: 3; }.dashboard-organized > .operations-kpis { order: 4; }.dashboard-organized > .dashboard-action-center { order: 5; }
.dashboard-organized > .dashboard-widget-library { order: 2; }
.dashboard-organized > .dashboard-section-heading--operations { order: 6; }.dashboard-organized > .dashboard-widget-grid,.dashboard-organized > .dashboard-operations-grid { order: 7; }.dashboard-organized > .dashboard-quick-actions { order: 8; }.dashboard-organized > .workforce-panel { order: 9; }.dashboard-organized > .dashboard-v2-grid--activity { order: 10; }
.dashboard-organized > .dashboard-section-heading--analysis { order: 11; }.dashboard-organized > .dashboard-v2-grid--hero { order: 12; }.dashboard-organized > .dashboard-v2-grid--middle { order: 13; }.dashboard-organized > .dashboard-system-panel { order: 14; }.dashboard-organized > .dashboard-detail-drawer,.dashboard-organized > .dashboard-detail-backdrop { order: 19; }.dashboard-organized > script { order: 20; }
.dashboard-organized > .workforce-panel { margin-top: 0; }.dashboard-organized > .dashboard-v2-grid--activity { margin-top: 18px; }.dashboard-organized > .dashboard-v2-grid--hero { margin-top: 0; }

.dashboard-widget-library {
    margin: 0 0 22px;
    padding: 20px;
    border: 1px solid #cddfed;
    border-radius: 17px;
    background: linear-gradient(135deg,#fff 0%,#f4f9fd 100%);
    box-shadow: 0 12px 30px rgba(31,66,101,.07);
}
.dashboard-widget-library[hidden] { display: none !important; }
.dashboard-widget-library > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 17px;
}
.dashboard-widget-library > header > div { min-width: 0; }
.dashboard-widget-library > header span {
    display: block;
    margin-bottom: 3px;
    color: #0870ce;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.dashboard-widget-library > header h2 {
    margin: 0;
    color: #152b46;
    font-size: 20px;
    line-height: 1.2;
}
.dashboard-widget-library > header p {
    max-width: 690px;
    margin: 5px 0 0;
    color: #687d95;
    font-size: 12px;
    line-height: 1.45;
}
.dashboard-widget-library > header > strong {
    flex: 0 0 auto;
    padding: 8px 11px;
    color: #31506e;
    border: 1px solid #d7e4ef;
    border-radius: 999px;
    background: #fff;
    font-size: 11px;
}
.dashboard-template-section {
    margin: 0 0 14px;
    padding: 13px;
    border: 1px solid #d8e6f1;
    border-radius: 14px;
    background: rgba(255,255,255,.9);
}
.dashboard-template-section > header { margin-bottom: 10px; }
.dashboard-template-section > header span {
    display: block;
    margin-bottom: 3px;
    color: #0870ce;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.dashboard-template-section > header h3 { margin: 0; color: #17314d; font-size: 17px; line-height: 1.2; }
.dashboard-template-section > header p { max-width: 820px; margin: 5px 0 0; color: #6b7f94; font-size: 11px; line-height: 1.45; }
.dashboard-template-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.dashboard-template-card {
    --template-accent: #1475ce;
    --template-soft: #edf6ff;
    min-width: 0;
    min-height: 174px;
    padding: 9px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #183550;
    border: 1px solid #d8e5f0;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 5px 14px rgba(28,67,104,.04);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.dashboard-template-card:hover { border-color: var(--template-accent); box-shadow: 0 10px 22px rgba(27,80,129,.11); transform: translateY(-2px); }
.dashboard-template-card:focus-visible { outline: 3px solid rgba(18,112,204,.22); outline-offset: 2px; }
.dashboard-template-card.is-selected { border-color: var(--template-accent); box-shadow: 0 0 0 2px var(--template-soft),0 9px 22px rgba(27,80,129,.1); }
.dashboard-template-card--personal { --template-accent: #0a875f; --template-soft: #e8f8f2; }
.dashboard-template-card--neutral { --template-accent: #62768b; --template-soft: #f0f3f6; }
.dashboard-template-card--green { --template-accent: #14966b; --template-soft: #e8f8f1; }
.dashboard-template-card--orange { --template-accent: #d77920; --template-soft: #fff4e8; }
.dashboard-template-card--purple { --template-accent: #7455bd; --template-soft: #f3effd; }
.dashboard-template-card--navy { --template-accent: #123d72; --template-soft: #eaf1f8; }
.dashboard-template-card__header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dashboard-template-card__header strong { min-width: 0; color: #16314d; font-size: 12px; line-height: 1.25; }
.dashboard-template-card__header em { flex: 0 0 auto; padding: 4px 7px; color: var(--template-accent); border-radius: 999px; background: var(--template-soft); font-size: 9px; font-style: normal; font-weight: 900; }
.dashboard-template-card__description { min-height: 30px; color: #6c8095; font-size: 9px; line-height: 1.35; }
.dashboard-template-preview {
    min-height: 52px;
    padding: 4px;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    grid-auto-flow: dense;
    grid-auto-rows: 2px;
    gap: 2px;
    overflow: hidden;
    border: 1px solid #dfe9f2;
    border-radius: 8px;
    background: #f7fafc;
}
.dashboard-template-preview__cell { min-width: 0; display: block; border-radius: 3px; background: #a8c9e9; }
.dashboard-template-preview__cell--daily { background: linear-gradient(135deg,#4b9ce3,#2e78c4); }
.dashboard-template-preview__cell--time { background: linear-gradient(135deg,#f2a24e,#dc7622); }
.dashboard-template-preview__cell--planning { background: linear-gradient(135deg,#7ecfae,#34a378); }
.dashboard-template-preview__cell--admin { background: linear-gradient(135deg,#a996df,#7454bd); }
.dashboard-template-preview__cell--analytics { background: linear-gradient(135deg,#67b9cc,#2589a2); }
.dashboard-template-card__footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dashboard-template-card__footer small { min-width: 0; color: #72869a; font-size: 9px; line-height: 1.3; }
.dashboard-template-card__footer b { flex: 0 0 auto; padding: 5px 7px; color: var(--template-accent); border-radius: 7px; background: var(--template-soft); font-size: 9px; }
.dashboard-widget-library__groups {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 13px;
}
.dashboard-widget-library__group {
    padding: 13px;
    border: 1px solid #dbe7f1;
    border-radius: 13px;
    background: rgba(255,255,255,.88);
}
.dashboard-widget-library__group > h3 {
    margin: 0 0 9px;
    color: #536b83;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.dashboard-widget-library__items {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px;
}
.dashboard-widget-library__item {
    min-width: 0;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 11px;
    color: #1d3854;
    border: 1px solid #d8e5f0;
    border-radius: 10px;
    background: #f8fbfe;
    text-align: left;
    cursor: pointer;
    transition: border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;
}
.dashboard-widget-library__item:hover {
    border-color: #82b8e8;
    background: #fff;
    box-shadow: 0 7px 18px rgba(25,92,151,.1);
    transform: translateY(-1px);
}
.dashboard-widget-library__item > span { min-width: 0; display: grid; gap: 2px; }
.dashboard-widget-library__item strong {
    overflow: hidden;
    color: #17324e;
    font-size: 12px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-widget-library__item small {
    overflow: hidden;
    color: #76899d;
    font-size: 10px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-widget-library__item > b {
    flex: 0 0 auto;
    padding: 6px 8px;
    color: #0867bf;
    border-radius: 7px;
    background: #e9f4ff;
    font-size: 10px;
}
@media (max-width: 1400px) {
    .dashboard-template-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1050px) {
    .dashboard-template-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dashboard-widget-library__groups { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
    .dashboard-widget-library { padding: 16px; }
    .dashboard-widget-library > header { flex-direction: column; gap: 10px; }
    .dashboard-template-section { padding: 13px; }
    .dashboard-template-grid { grid-template-columns: 1fr; }
    .dashboard-template-card { min-height: 170px; }
    .dashboard-widget-library__items { grid-template-columns: 1fr; }
}

/* Indicadores bÃ¡sicos configurables: una columna por dos unidades de alto. */
.dashboard-widget-grid > .dashboard-basic-kpi,
.employee-widget-grid > .employee-basic-kpi {
    --basic-kpi-color: #0874cc;
    --basic-kpi-soft: #eaf5ff;
    --kpi-progress: 0%;
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 15px 17px 14px;
    overflow: hidden;
    scrollbar-gutter: auto;
    border: 1px solid #dbe6f0;
    background:
        radial-gradient(circle at 105% -8%, var(--basic-kpi-soft) 0 38%, transparent 39%),
        linear-gradient(150deg, #fff 15%, #fbfdff 72%, var(--basic-kpi-soft) 155%);
    box-shadow: 0 10px 28px rgba(22, 55, 87, .07);
}
.dashboard-basic-kpi::before,
.employee-basic-kpi::before { content:""; position:absolute; right:-28px; bottom:-43px; width:118px; height:118px; border:20px solid var(--basic-kpi-soft); border-radius:50%; opacity:.72; pointer-events:none; }
.dashboard-basic-kpi::after,
.employee-basic-kpi::after { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:linear-gradient(180deg,var(--basic-kpi-color),transparent 92%); }
.dashboard-basic-kpi > header,
.employee-basic-kpi > header { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.dashboard-basic-kpi > header span,
.employee-basic-kpi > header span { min-width:0; overflow:hidden; color:#6b8095; font-size:10px; font-weight:900; letter-spacing:.075em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.dashboard-basic-kpi > header i,
.employee-basic-kpi > header i { display:grid; place-items:center; flex:0 0 36px; height:36px; color:#fff; border-radius:12px; background:var(--basic-kpi-color); box-shadow:0 7px 15px color-mix(in srgb,var(--basic-kpi-color) 24%,transparent); font-size:10px; font-style:normal; font-weight:950; }
.dashboard-basic-kpi > strong,
.employee-basic-kpi > strong { position:relative; z-index:1; display:block; margin-top:8px; overflow:hidden; color:var(--basic-kpi-color); font-size:37px; font-weight:950; letter-spacing:-.055em; line-height:1; text-overflow:ellipsis; text-shadow:0 5px 18px color-mix(in srgb,var(--basic-kpi-color) 14%,transparent); white-space:nowrap; }
.dashboard-basic-kpi > h2,
.employee-basic-kpi > h2 { position:relative; z-index:1; margin:6px 0 0; color:#173b5d; font-size:15px; font-weight:950; line-height:1.1; }
.dashboard-basic-kpi > p,
.employee-basic-kpi > p { position:relative; z-index:1; margin:5px 0 0; overflow:hidden; color:#71869a; font-size:11px; font-weight:650; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-basic-kpi > a,
.employee-basic-kpi > a { position:relative; z-index:1; align-self:flex-start; margin-top:auto; padding-top:6px; color:var(--basic-kpi-color); font-size:11px; font-weight:900; text-decoration:none; }
.basic-kpi-meter { position:relative; z-index:1; display:block; appearance:none; flex:0 0 7px; width:100%; height:7px; margin-top:auto; overflow:hidden; border:0; border-radius:999px; background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(255,255,255,.8) calc(25% - 1px) 25%),#e8eef4; box-shadow:inset 0 1px 2px rgba(26,55,83,.1); }
.basic-kpi-meter::-webkit-progress-bar { border-radius:inherit; background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(255,255,255,.8) calc(25% - 1px) 25%),#e8eef4; }
.basic-kpi-meter::-webkit-progress-value { border-radius:inherit; background:linear-gradient(90deg,color-mix(in srgb,var(--basic-kpi-color) 72%,#fff),var(--basic-kpi-color)); box-shadow:0 0 12px color-mix(in srgb,var(--basic-kpi-color) 28%,transparent); }
.basic-kpi-meter::-moz-progress-bar { border-radius:inherit; background:linear-gradient(90deg,color-mix(in srgb,var(--basic-kpi-color) 72%,#fff),var(--basic-kpi-color)); box-shadow:0 0 12px color-mix(in srgb,var(--basic-kpi-color) 28%,transparent); }
.dashboard-basic-kpi--green,.employee-basic-kpi--green { --basic-kpi-color:#15956a; --basic-kpi-soft:#e7f8f1; }
.dashboard-basic-kpi--orange,.employee-basic-kpi--orange { --basic-kpi-color:#d97706; --basic-kpi-soft:#fff3df; }
.dashboard-basic-kpi--red,.employee-basic-kpi--red { --basic-kpi-color:#d44551; --basic-kpi-soft:#ffedef; }
.dashboard-basic-kpi--violet,.employee-basic-kpi--violet { --basic-kpi-color:#7856c7; --basic-kpi-soft:#f1edff; }
.dashboard-basic-kpi--blue,.employee-basic-kpi--blue { --basic-kpi-color:#0874cc; --basic-kpi-soft:#eaf5ff; }
.is-layout-editing .dashboard-basic-kpi,
.is-employee-layout-editing .employee-basic-kpi { padding-top:72px; }
.is-layout-editing .dashboard-basic-kpi > header,
.is-employee-layout-editing .employee-basic-kpi > header { display:none; }
@media (max-width:680px) {
    .dashboard-basic-kpi > strong,.employee-basic-kpi > strong { font-size:32px; }
}
.dashboard-command-actions { display: flex; align-items: center; gap: 11px; }.dashboard-jump-nav { padding: 3px; display: flex; align-items: center; gap: 2px; border: 1px solid #dfe7ef; border-radius: 9px; background: #fff; }.dashboard-jump-nav a { padding: 7px 10px; color: #5e6e83; border-radius: 6px; font-size: 8px; font-weight: 850; }.dashboard-jump-nav a:hover,.dashboard-jump-nav a:focus { color: #0c65c4; background: #edf5fe; }
.dashboard-section-heading { margin: 25px 0 11px; scroll-margin-top: 20px; }.dashboard-section-heading > div { display: flex; align-items: center; gap: 10px; }.dashboard-section-heading > div > span { width: 27px; height: 27px; display: grid; place-items: center; color: #0f67c7; border-radius: 8px; background: #eaf3fe; font-size: 7px; font-weight: 900; }.dashboard-section-heading strong,.dashboard-section-heading p { display: block; }.dashboard-section-heading strong { color: #253952; font-size: 12px; }.dashboard-section-heading p { margin: 2px 0 0; color: #8491a3; font-size: 8px; }.dashboard-section-heading > i { height: 1px; margin-top: 9px; display: block; background: linear-gradient(90deg,#cbd9e8,rgba(203,217,232,0)); }.dashboard-section-heading--analysis { margin-top: 29px; }.dashboard-section-heading--analysis > div > span { color: #7654bb; background: #f0ebff; }.dashboard-section-heading--analysis > i { background: linear-gradient(90deg,#d9ceef,rgba(217,206,239,0)); }

@media (max-width: 900px) { .dashboard-command-actions { width: 100%; align-items: stretch; flex-direction: column; }.dashboard-jump-nav { align-self: flex-start; }.dashboard-commandbar { align-items: flex-start; flex-direction: column; }.dashboard-health { width: 100%; } }
@media (max-width: 520px) { .dashboard-jump-nav { width: 100%; }.dashboard-jump-nav a { flex: 1; text-align: center; }.dashboard-section-heading p { max-width: 280px; line-height: 1.4; } }

/* Calendario legible y con eventos */
.dashboard-organized .dashboard-v2-grid--middle { grid-template-columns: minmax(680px,1.35fr) minmax(310px,.65fr); align-items: start; }
.dashboard-organized .calendar-card { padding: 21px; }.dashboard-organized .calendar-weekdays,.dashboard-organized .calendar-grid { gap: 7px; }.dashboard-organized .calendar-weekdays { margin-bottom: 7px; }.dashboard-organized .calendar-weekdays span { padding: 6px 4px; color: #64748b; font-size: 9px; }
.dashboard-organized .calendar-day,.dashboard-organized .calendar-pad { min-height: 104px; }.dashboard-organized .calendar-day { padding: 9px; overflow: hidden; border-color: #dfe7ef; border-radius: 9px; background: #fff; }.dashboard-organized .calendar-day:nth-child(7n),.dashboard-organized .calendar-day:nth-child(7n - 1) { background: #fafbfd; }
.calendar-day__top { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; }.dashboard-organized .calendar-day__top > strong { color: #243850; font-size: 13px; }.calendar-day__top > small { color: #9aa5b3; font-size: 7px; font-weight: 800; text-transform: uppercase; }
.calendar-day__hours { margin-top: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }.calendar-day__hours > span { min-width: 0; padding: 5px 6px; display: block; border-radius: 6px; background: #f2f6fa; }.calendar-day__hours small,.calendar-day__hours b { display: block; }.calendar-day__hours small { color: #8995a4; font-size: 6px; font-weight: 800; text-transform: uppercase; }.calendar-day__hours b { margin-top: 2px; color: #3d5068; font-size: 8px; white-space: nowrap; }.calendar-day__hours span:last-child b { color: #1268c6; }
.calendar-day__empty { margin-top: 15px; color: #a2acb9; font-size: 7px; }.calendar-day__events { margin-top: 7px; display: grid; gap: 3px; }.calendar-event { max-width: 100%; padding: 3px 5px; display: block; overflow: hidden; border-radius: 4px; font-size: 6px; font-weight: 800; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }.calendar-event--holiday { color: var(--employee-calendar-holiday-text,#7c2d12); background: color-mix(in srgb,var(--employee-calendar-holiday,#f59e0b) 18%,#fff); }.calendar-event--incidence { color: var(--employee-calendar-incidence-text,#fff); background: var(--employee-calendar-incidence,#f97316); }.calendar-event--hours { color: #ae5727; background: #fff0e5; }
.dashboard-organized .calendar-day.is-today { border-color: #176fd0; box-shadow: inset 0 0 0 1px #176fd0,0 4px 12px rgba(23,111,208,.1); }.dashboard-organized .calendar-day.is-today .calendar-day__top > strong { width: 24px; height: 24px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: #176fd0; }.dashboard-organized .calendar-day.is-holiday { border-color: color-mix(in srgb,var(--employee-calendar-holiday,#f59e0b) 42%,#fff); background: color-mix(in srgb,var(--employee-calendar-holiday,#f59e0b) 13%,#fff); }.dashboard-organized .calendar-day.has-schedule-incidence { border-color: color-mix(in srgb,var(--employee-calendar-incidence,#f97316) 42%,#fff); box-shadow: inset 3px 0 var(--employee-calendar-incidence,#f97316); }
.calendar-legend .holiday::before { background: #d86270; }

@media (max-width: 1250px) { .dashboard-organized .dashboard-v2-grid--middle { grid-template-columns: 1fr; }.dashboard-organized .calendar-day,.dashboard-organized .calendar-pad { min-height: 96px; } }
@media (max-width: 700px) { .dashboard-organized .calendar-card { overflow-x: auto; }.dashboard-organized .calendar-weekdays,.dashboard-organized .calendar-grid { min-width: 700px; }.dashboard-organized .calendar-day,.dashboard-organized .calendar-pad { min-height: 102px; } }

/* Gráficos del dashboard */
.hours-chart-shell { height: 320px; margin-top: 17px; position: relative; border: 1px solid #e5ebf2; border-radius: 10px; background: linear-gradient(180deg,#fbfdff,#fff); }.hours-chart-shell canvas { width: 100%; height: 100%; display: block; cursor: crosshair; }.chart-empty-state { position: absolute; inset: 0; place-content: center; color: #8491a3; font-size: 10px; text-align: center; }.chart-empty-state:not([hidden]) { display: grid; }
.chart-legend-v2 .theoretical-line::before { width: 14px; height: 2px; border-radius: 2px; background: repeating-linear-gradient(90deg,#334a67 0 5px,transparent 5px 8px); vertical-align: middle; }.hours-chart-tooltip { min-width: 155px; padding: 10px 11px; position: absolute; z-index: 4; color: #4b5d73; border: 1px solid #dbe4ed; border-radius: 9px; background: rgba(255,255,255,.97); box-shadow: 0 12px 30px rgba(19,42,70,.16); pointer-events: none; }.hours-chart-tooltip > strong { margin-bottom: 6px; display: block; color: #213750; font-size: 10px; text-transform: capitalize; }.hours-chart-tooltip > span { padding: 3px 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; font-size: 8px; }.hours-chart-tooltip i { font-style: normal; }.hours-chart-tooltip b { color: #32465f; }.hours-chart-tooltip .worked i { color: #1268c7; }.hours-chart-tooltip .incidence i { color: #c66a27; }.hours-chart-tooltip .negative b { color: #bd572d; }.hours-chart-tooltip .positive b { color: #138057; }
.chart-accessible-table { width: 1px; height: 1px; margin: -1px; padding: 0; position: absolute; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }
.differences-card .difference-list li { padding: 10px 0; grid-template-columns: 24px minmax(0,1fr) 54px; }.differences-card .difference-list strong { font-size: 10px; }.differences-card .difference-list small { margin: 3px 0 7px; font-size: 7px; }.difference-track { height: 8px; position: relative; display: block; overflow: hidden; border-radius: 8px; background: linear-gradient(90deg,#fff3ed 0 49.5%,#cbd6e2 49.5% 50.5%,#edf8f2 50.5% 100%); }.difference-track::after { content: "0"; position: absolute; left: 50%; top: 9px; color: #9ca7b4; font-size: 6px; transform: translateX(-50%); }.difference-track > i { width: calc(var(--difference-width)*1%); height: 100%; position: absolute; top: 0; display: block; border-radius: 8px; opacity: 1; }.difference-track > i.positive { left: 50%; background: linear-gradient(90deg,#55bd8b,#16835a); }.difference-track > i.negative { right: 50%; background: linear-gradient(90deg,#c65533,#ed8a64); }.differences-card .difference-list li > b { font-size: 10px; }
.today-donut { width: 154px; height: 154px; flex-basis: 154px; box-shadow: 0 0 0 8px #f7f9fc; transform: rotate(-90deg); }.today-donut::after { inset: 20px; box-shadow: 0 2px 10px rgba(23,48,80,.06); }.today-donut span { transform: rotate(90deg); }.today-donut strong { font-size: 29px; }
.dashboard-widget-grid [data-widget-width="1"].today-card { padding: 18px; }
.dashboard-widget-grid [data-widget-width="1"].today-card .panel-v2__header { margin-bottom: 4px; }
.dashboard-widget-grid [data-widget-width="1"].today-card .today-donut { width: 112px; height: 112px; flex-basis: 112px; margin: 4px auto 10px; box-shadow: 0 0 0 5px #f7f9fc; }
.dashboard-widget-grid [data-widget-width="1"].today-card .today-donut::after { inset: 15px; }
.dashboard-widget-grid [data-widget-width="1"].today-card .today-donut strong { font-size: 25px; }
.dashboard-widget-grid [data-widget-width="1"].today-card .today-donut small { font-size: 10px; }
.dashboard-widget-grid [data-widget-width="1"].today-card .status-breakdown li { padding: 6px 2px; gap: 7px; }

@media (max-width: 700px) { .hours-chart-shell { height: 280px; margin-inline: -7px; }.chart-legend-v2 { display: flex; flex-wrap: wrap; }.hours-chart-tooltip { display: none; }.differences-card .difference-list li { grid-template-columns: 20px minmax(0,1fr) 48px; } }

/* Navegación y fines de semana del calendario */
.calendar-card__header { align-items: center; }.calendar-header-tools { display: grid; justify-items: end; gap: 9px; }.calendar-month-nav { display: flex; align-items: center; gap: 5px; }.calendar-month-nav > a { width: 29px; height: 29px; display: grid; place-items: center; color: #496078; border: 1px solid #d9e3ed; border-radius: 7px; background: #fff; font-size: 17px; font-weight: 800; }.calendar-month-nav > a:hover,.calendar-month-nav > a:focus { color: #0f67c7; border-color: #bcd5ef; background: #f1f7fe; }.calendar-month-nav > strong { min-width: 126px; color: #263b55; font-size: 10px; text-align: center; text-transform: capitalize; }.calendar-month-nav > .calendar-today-link { width: auto; padding: 0 10px; color: #0f67c7; font-size: 7px; letter-spacing: .04em; text-transform: uppercase; }
.calendar-legend .weekend::before { background: #91a4bb; }.dashboard-organized .calendar-weekdays span.is-weekend { color: #526b86; border-radius: 5px; background: #edf2f7; }.dashboard-organized .calendar-day.is-weekend { border-color: #d5e0eb; background: #f1f5f9; }.dashboard-organized .calendar-day.is-weekend .calendar-day__hours > span { background: #e6edf4; }.dashboard-organized .calendar-day.is-weekend .calendar-day__top > strong { color: #3d5873; }.dashboard-organized .calendar-day.is-weekend.is-holiday { border-color: color-mix(in srgb,var(--employee-calendar-holiday,#f59e0b) 42%,#fff); background: color-mix(in srgb,var(--employee-calendar-holiday,#f59e0b) 15%,#fff); }.dashboard-organized .calendar-day.is-weekend.is-today { border-color: #176fd0; }

@media (max-width: 850px) { .calendar-card__header { align-items: flex-start; }.calendar-header-tools { width: 100%; justify-items: stretch; }.calendar-month-nav { justify-content: space-between; }.calendar-legend { justify-content: flex-start; flex-wrap: wrap; } }

/* Calendario anual del trabajador */
.annual-calendar-page { display:grid; gap:18px; }
.annual-calendar-toolbar { padding:14px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #d8e4f1; border-radius:17px; background:#fff; box-shadow:0 12px 30px rgba(19,49,82,.055); }
.annual-calendar-year-nav { display:flex; align-items:center; gap:8px; }
.annual-calendar-year-nav > strong { min-width:96px; padding:10px 22px; color:#fff; border-radius:999px; background:#0b67c8; box-shadow:0 10px 22px rgba(11,103,200,.2); font-size:18px; text-align:center; }
.annual-calendar-page.is-month-view .annual-calendar-year-nav > strong { min-width:190px; text-transform:capitalize; }
.annual-calendar-view-toggle { padding:4px; display:flex; align-items:center; gap:4px; border:1px solid #d9e5f1; border-radius:12px; background:#edf3f9; }
.annual-calendar-view-toggle a { min-width:72px; padding:9px 14px; color:#52677f; border-radius:9px; font-size:12px; font-weight:900; text-align:center; text-decoration:none; }
.annual-calendar-view-toggle a.is-active { color:#fff; background:#0b67c8; box-shadow:0 8px 18px rgba(11,103,200,.2); }
.annual-calendar-year-select label { display:flex; align-items:center; gap:8px; }
.annual-calendar-year-select span { color:#687b93; font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.annual-calendar-year-select select { height:40px; min-width:110px; padding:0 12px; color:#173451; border:1px solid #cbd9e8; border-radius:10px; background:#f8fbff; font-weight:850; }
.annual-calendar-legend { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:9px; }
.annual-calendar-legend span { display:inline-flex; align-items:center; gap:6px; color:#52677f; font-size:12px; font-weight:800; }
.annual-calendar-legend span::before { content:""; width:10px; height:10px; border-radius:50%; background:#d5dfeb; }
.annual-calendar-legend .is-planned::before { width:14px; height:4px; border-radius:999px; background:#65c8af; }
.annual-calendar-legend .is-worked::before { background:#23a874; }.annual-calendar-legend .is-shift::before { width:18px; height:8px; border-radius:999px; background:#0b6fd3; }.annual-calendar-legend .is-holiday::before { background:#e2b83b; }.annual-calendar-legend .is-vacation::before { width:9px; height:9px; border-radius:3px; background:#7c5cff; transform:rotate(45deg); }.annual-calendar-legend .is-incidence::before { background:#d96b3a; }
.annual-calendar-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.annual-calendar-kpis article { min-height:76px; padding:14px 16px; display:grid; align-content:center; gap:5px; border:1px solid #dce7f2; border-radius:15px; background:#fff; box-shadow:0 10px 26px rgba(22,52,84,.045); }
.annual-calendar-kpis span { color:#71849b; font-size:12px; }
.annual-calendar-kpis strong { color:#142d49; font-size:20px; line-height:1.1; }
.annual-calendar-kpis small { color:#6d7e91; font-size:11px; }
.annual-calendar-month-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.annual-calendar-month-grid.is-single-month { grid-template-columns:minmax(0,1fr); }
.annual-calendar-month { min-width:0; padding:14px; border:1px solid #d9e5f1; border-radius:17px; background:#fff; box-shadow:0 14px 32px rgba(19,49,82,.055); }
.annual-calendar-month-grid.is-single-month .annual-calendar-month { padding:18px; }
.annual-calendar-month > header { margin-bottom:11px; padding-bottom:10px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px dashed #dbe5f0; }
.annual-calendar-month h2 { margin:0; color:#142d49; font-size:18px; line-height:1.1; }
.annual-calendar-month-grid.is-single-month .annual-calendar-month h2 { font-size:24px; text-transform:capitalize; }
.annual-calendar-month header span { color:#708197; font-size:12px; }
.annual-calendar-weekdays,.annual-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.annual-calendar-month-grid.is-single-month .annual-calendar-weekdays,.annual-calendar-month-grid.is-single-month .annual-calendar-days { gap:8px; }
.annual-calendar-weekdays { margin-bottom:6px; }
.annual-calendar-weekdays span { color:#63768d; font-size:11px; font-weight:900; text-align:center; text-transform:uppercase; }
.annual-calendar-day-wrap { min-width:0; position:relative; }
.annual-calendar-day { width:100%; min-height:52px; padding:4px 3px; display:grid; place-items:center; align-content:center; gap:2px; color:#29425e; border:1px solid #e0e8f1; border-radius:10px; background:#f8fafc; font:inherit; font-size:12px; font-weight:900; cursor:pointer; transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease; }
.annual-calendar-month-grid.is-single-month .annual-calendar-day { min-height:112px; padding:10px; place-items:stretch; align-content:start; justify-items:stretch; gap:8px; text-align:left; }
.annual-calendar-day:hover,.annual-calendar-day:focus-visible { outline:none; border-color:#91bee9; box-shadow:0 8px 18px rgba(11,103,200,.14); transform:translateY(-1px); }
.annual-calendar-day span { line-height:1; }
.annual-calendar-month-grid.is-single-month .annual-calendar-day > span { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.68); }
.annual-calendar-day small { min-height:8px; display:flex; align-items:center; justify-content:center; gap:2px; }
.annual-calendar-month-grid.is-single-month .annual-calendar-day small { justify-content:flex-start; gap:5px; }
.annual-calendar-shift-name { max-width:100%; min-width:0; padding:2px 5px; display:flex; align-items:center; justify-content:center; gap:2px; overflow:hidden; color:var(--shift-text,#fff); border-radius:999px; background:var(--shift-color,#0b6fd3); font-size:8px; font-style:normal; font-weight:950; line-height:1.2; }
.annual-calendar-month-grid.is-single-month .annual-calendar-shift-name { padding:4px 8px; justify-content:flex-start; font-size:11px; }
.annual-calendar-shift-name em { min-width:0; overflow:hidden; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.annual-calendar-shift-name sup { flex:0 0 auto; font-size:7px; line-height:1; }
.annual-calendar-day i { width:5px; height:5px; border-radius:50%; display:block; }
.annual-calendar-day .dot-planned { width:10px; height:3px; border-radius:999px; background:#65c8af; }
.annual-calendar-day .dot-work { background:#23a874; }.annual-calendar-day .dot-holiday { background:var(--holiday-color,#d7a928); }.annual-calendar-day .dot-vacation { width:6px; height:6px; border-radius:2px; background:var(--event-color,#7c5cff); transform:rotate(45deg); }.annual-calendar-day .dot-incidence { background:var(--event-color,#d96b3a); }
.annual-calendar-event-marker { width:18px; height:18px; display:inline-flex; flex:0 0 18px; align-items:center; justify-content:center; overflow:hidden; color:var(--event-text,#fff); border-radius:6px; background:var(--event-color,#d96b3a); box-shadow:0 3px 8px rgba(22,52,84,.14); }
.annual-calendar-event-marker__icon { width:12px; height:12px; display:grid; place-items:center; }
.annual-calendar-event-marker__icon i { width:auto; height:auto; display:block; border-radius:0; }
.annual-calendar-event-marker__icon svg { width:11px; height:11px; }
.annual-calendar-event-marker__label { display:none; }
.annual-calendar-month-grid.is-single-month .annual-calendar-day small { flex-wrap:wrap; }
.annual-calendar-month-grid.is-single-month .annual-calendar-event-marker { width:auto; max-width:100%; height:auto; min-height:28px; padding:5px 8px; flex:0 1 auto; justify-content:flex-start; gap:5px; border-radius:9px; }
.annual-calendar-month-grid.is-single-month .annual-calendar-event-marker__icon { width:16px; height:16px; flex:0 0 16px; }
.annual-calendar-month-grid.is-single-month .annual-calendar-event-marker__icon svg { width:15px; height:15px; }
.annual-calendar-month-grid.is-single-month .annual-calendar-event-marker__label { min-width:0; display:block; overflow:hidden; font-size:10px; font-weight:950; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.annual-calendar-day.is-outside { color:#a9b4c1; border-color:#edf2f7; background:#f7f9fb; opacity:.55; }
.annual-calendar-day.is-weekend:not(.is-outside) { background:#f1f5f9; }
.annual-calendar-day.has-planned:not(.has-work):not(.has-holiday):not(.has-vacation):not(.has-incidence) { border-color:#bfe4dc; background:#effaf7; }
.annual-calendar-day.has-shift { border-color:color-mix(in srgb,var(--shift-color,#0b6fd3) 34%,#dce7f2); background:color-mix(in srgb,var(--shift-color,#0b6fd3) 7%,#fff); }
.annual-calendar-day.has-work { color:#0e6247; border-color:#a7dfcb; background:#eaf8f1; }
.annual-calendar-day.has-holiday { color:var(--holiday-text,#765100); border-color:color-mix(in srgb,var(--holiday-color,#f59e0b) 45%,#fff); background:color-mix(in srgb,var(--holiday-color,#f59e0b) 14%,#fff); }
.annual-calendar-day.has-vacation { color:var(--event-color,#5036b3); border-color:color-mix(in srgb,var(--event-color,#7c5cff) 42%,#fff); background:color-mix(in srgb,var(--event-color,#7c5cff) 13%,#fff); box-shadow:inset 0 3px 0 var(--event-color,#7c5cff); }
.annual-calendar-day.has-incidence,.annual-calendar-day.has-typed-incidence { color:var(--event-color,#9a431c); border-color:color-mix(in srgb,var(--event-color,#f97316) 42%,#fff); background:color-mix(in srgb,var(--event-color,#f97316) 12%,#fff); box-shadow:inset 0 3px 0 var(--event-color,#f97316); }
.annual-calendar-day.is-today { border-color:#0b67c8; box-shadow:inset 0 0 0 2px #0b67c8; }
.annual-calendar-dialog { width:min(760px,calc(100vw - 32px)); max-height:min(82vh,760px); padding:0; overflow:hidden; border:0; border-radius:20px; background:#fff; box-shadow:0 28px 80px rgba(15,35,60,.34); }
.annual-calendar-dialog::backdrop { background:rgba(15,31,52,.48); backdrop-filter:blur(2px); }
.annual-calendar-dialog > form { position:absolute; top:12px; right:12px; z-index:2; }
.annual-calendar-dialog > form button { width:36px; height:36px; display:grid; place-items:center; color:#fff; border:0; border-radius:50%; background:#0b67c8; font-size:22px; font-weight:800; cursor:pointer; }
.annual-calendar-detail { max-height:82vh; padding:24px; overflow:auto; display:grid; gap:16px; }
.annual-calendar-detail > header { padding-right:48px; display:flex; align-items:center; gap:14px; }
.annual-calendar-detail > header > span { width:54px; height:54px; display:grid; place-items:center; color:#0b67c8; border-radius:16px; background:#eaf4ff; font-weight:950; text-transform:uppercase; }
.annual-calendar-detail header strong { color:#142d49; font-size:22px; text-transform:capitalize; }
.annual-calendar-detail header small { margin-top:3px; display:block; color:#72849a; font-size:12px; }
.annual-calendar-detail-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.annual-calendar-detail-kpis p { margin:0; padding:12px; display:grid; gap:4px; border:1px solid #dce7f2; border-radius:13px; background:#f8fbff; }
.annual-calendar-detail-kpis span { color:#6f8298; font-size:11px; }.annual-calendar-detail-kpis strong { color:#173451; font-size:15px; }
.annual-calendar-detail-section { display:grid; gap:9px; }
.annual-calendar-detail-section h3 { margin:0; color:#0b67c8; font-size:12px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.annual-calendar-detail-section > p { margin:0; padding:11px 13px; display:flex; justify-content:space-between; gap:12px; border:1px solid #e2eaf3; border-radius:12px; background:#fbfdff; }
.annual-calendar-event,.annual-calendar-punch { padding:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #dce7f2; border-radius:14px; background:#fff; }
.annual-calendar-holiday-line { border-color:color-mix(in srgb,var(--holiday-color,#f59e0b) 30%,#dce7f2) !important; background:color-mix(in srgb,var(--holiday-color,#f59e0b) 9%,#fff) !important; }
.annual-calendar-holiday-line strong { color:var(--holiday-text,#7c2d12) !important; }
.annual-calendar-event--vacation,.annual-calendar-event--incidence,.annual-calendar-event--rest,.annual-calendar-event--paid,.annual-calendar-event--full-day { border-color:color-mix(in srgb,var(--event-color,#f97316) 32%,#dce7f2); background:color-mix(in srgb,var(--event-color,#f97316) 9%,#fff); box-shadow:inset 4px 0 0 var(--event-color,#f97316); }
.annual-calendar-event--vacation strong,.annual-calendar-event--incidence strong,.annual-calendar-event--rest strong,.annual-calendar-event--paid strong,.annual-calendar-event--full-day strong { color:var(--event-color,#12304f); }
.annual-calendar-event--shift { border-color:color-mix(in srgb,var(--shift-color,#0b6fd3) 28%,#dce7f2); background:color-mix(in srgb,var(--shift-color,#0b6fd3) 7%,#fff); }
.annual-calendar-event--shift strong { color:var(--shift-color,#0b6fd3); }
.annual-calendar-event strong,.annual-calendar-punch strong { color:#12304f; font-size:14px; }
.annual-calendar-event small,.annual-calendar-punch small { margin-top:3px; display:block; color:#6e8095; font-size:12px; }
.annual-calendar-event p,.annual-calendar-punch p { margin:5px 0 0; color:#65778d; font-size:12px; }
.annual-calendar-punch.is-open { border-color:#f1b879; background:#fff8f0; }
.annual-calendar-punch strong { display:flex; align-items:center; gap:6px; }
.annual-calendar-punch strong a { width:21px; height:21px; display:inline-grid; place-items:center; color:#0b67c8; border-radius:50%; background:#eaf4ff; }
.annual-calendar-punch strong svg { width:14px; height:14px; fill:currentColor; }
.annual-calendar-empty { padding:18px; color:#78889a; border:1px dashed #d6e1ed; border-radius:14px; background:#f8fafc; text-align:center; }
@media (max-width:1300px) { .annual-calendar-month-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.annual-calendar-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px) { .annual-calendar-toolbar { align-items:stretch; flex-direction:column; }.annual-calendar-month-grid,.annual-calendar-kpis,.annual-calendar-detail-kpis { grid-template-columns:1fr; }.annual-calendar-month { overflow-x:auto; }.annual-calendar-weekdays,.annual-calendar-days { min-width:390px; } }
.company-incidence-calendar-page { display:grid; gap:16px; }
.company-incidence-calendar-toolbar { padding:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:14px; border:1px solid #d8e4f1; border-radius:17px; background:#fff; box-shadow:0 12px 30px rgba(19,49,82,.055); }
.company-incidence-calendar-filters { display:grid; grid-template-columns:minmax(190px,1.4fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(170px,.9fr) auto; align-items:end; gap:10px; }
.company-incidence-calendar-filters label { display:grid; gap:6px; min-width:0; }
.company-incidence-calendar-filters span { color:#687b93; font-size:11px; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.company-incidence-calendar-filters input,.company-incidence-calendar-filters select { width:100%; height:42px; padding:0 12px; color:#173451; border:1px solid #cbd9e8; border-radius:11px; background:#f8fbff; font-weight:800; }
.company-incidence-calendar-nav { display:flex; align-items:center; justify-content:flex-end; gap:8px; white-space:nowrap; }
.company-incidence-calendar-nav > strong { min-width:160px; color:#142d49; font-size:17px; font-weight:950; text-align:center; text-transform:capitalize; }
.company-incidence-calendar-tabs { padding:4px; display:inline-flex; gap:4px; border-radius:12px; background:#eaf1f8; }
.company-incidence-calendar-tabs a { min-width:74px; padding:10px 14px; color:#60748c; border-radius:9px; font-size:13px; font-weight:950; text-align:center; text-decoration:none; }
.company-incidence-calendar-tabs a.is-active { color:#fff; background:#0b67c8; box-shadow:0 9px 18px rgba(11,103,200,.2); }
.company-incidence-calendar-quickfilters { padding:8px; display:flex; flex-wrap:wrap; gap:8px; border:1px solid #d8e4f1; border-radius:15px; background:#fff; box-shadow:0 10px 24px rgba(22,52,84,.04); }
.company-incidence-calendar-quickfilters a { padding:9px 13px; color:#46607d; border-radius:11px; background:#f2f6fb; font-size:12px; font-weight:950; text-decoration:none; }
.company-incidence-calendar-quickfilters a.is-active { color:#fff; background:#0b67c8; box-shadow:0 8px 18px rgba(11,103,200,.18); }
.company-incidence-calendar-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.company-incidence-calendar-kpis--under-header { margin:16px 0 18px; }
.company-incidence-calendar-kpis article { min-height:78px; padding:13px 14px; display:grid; align-content:center; gap:4px; border:1px solid #dce7f2; border-radius:15px; background:#fff; box-shadow:0 10px 24px rgba(22,52,84,.045); }
.company-incidence-calendar-kpis span { color:#71849b; font-size:11px; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.company-incidence-calendar-kpis strong { min-width:0; overflow:hidden; color:#142d49; font-size:22px; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.company-incidence-calendar-kpis small { color:#6d7e91; font-size:11px; }
.company-incidence-calendar-insights { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:12px; }
.company-incidence-calendar-insights__main { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.company-incidence-calendar-insight,.company-incidence-calendar-ranking { padding:14px; display:grid; gap:6px; border:1px solid #dce7f2; border-radius:15px; background:#fff; box-shadow:0 10px 24px rgba(22,52,84,.04); }
.company-incidence-calendar-insight span,.company-incidence-calendar-ranking > span { color:#71849b; font-size:11px; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.company-incidence-calendar-insight strong { color:#142d49; font-size:24px; line-height:1; }
.company-incidence-calendar-insight small { color:#60748c; font-size:12px; }
.company-incidence-calendar-insight.is-green { border-color:#bbf7d0; background:#f0fdf4; }
.company-incidence-calendar-insight.is-orange { border-color:#fed7aa; background:#fff7ed; }
.company-incidence-calendar-insight.is-red { border-color:#fecaca; background:#fff1f2; }
.company-incidence-calendar-insight.is-blue { border-color:#bfdbfe; background:#eff6ff; }
.company-incidence-calendar-ranking { align-content:start; }
.company-incidence-calendar-ranking p { margin:0; padding:8px 0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 10px; border-top:1px solid #e5edf6; }
.company-incidence-calendar-ranking p:first-of-type { border-top:0; }
.company-incidence-calendar-ranking strong { min-width:0; overflow:hidden; color:#173451; font-size:12px; font-weight:950; text-overflow:ellipsis; white-space:nowrap; }
.company-incidence-calendar-ranking em { color:#0b67c8; font-size:12px; font-style:normal; font-weight:950; }
.company-incidence-calendar-ranking small { grid-column:1 / -1; color:#6b7d91; font-size:11px; }
.company-incidence-calendar-legend { padding:12px; display:flex; flex-wrap:wrap; gap:8px; border:1px solid #d8e4f1; border-radius:16px; background:#fff; box-shadow:0 10px 24px rgba(22,52,84,.04); }
.company-incidence-calendar-type-filter { min-height:38px; padding:8px 11px; display:inline-flex; align-items:center; gap:8px; color:#173451; border:1px solid #dce7f2; border-radius:12px; background:#f8fbff; text-decoration:none; }
.company-incidence-calendar-type-filter.is-active { border-color:#0b67c8; background:#eaf4ff; box-shadow:inset 4px 0 0 #0b67c8; }
.company-incidence-calendar-type-dot { width:11px; height:11px; flex:0 0 11px; border-radius:50%; background:var(--event-color,#0b67c8); box-shadow:0 0 0 3px color-mix(in srgb,var(--event-color,#0b67c8) 16%,#fff); }
.company-incidence-calendar-type-filter strong { max-width:170px; overflow:hidden; font-size:12px; font-weight:950; text-overflow:ellipsis; white-space:nowrap; }
.company-incidence-calendar-type-filter small { min-width:24px; padding:3px 7px; color:#60748c; border-radius:999px; background:#edf3f8; font-size:11px; font-weight:950; text-align:center; }
.company-incidence-calendar-board { padding:16px; border:1px solid #d8e4f1; border-radius:18px; background:#fff; box-shadow:0 14px 34px rgba(19,49,82,.055); }
.company-incidence-calendar-weekdays,.company-incidence-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.company-incidence-calendar-weekdays { margin-bottom:8px; }
.company-incidence-calendar-weekdays span { padding:9px; color:#63768d; border-radius:10px; background:#f3f7fb; font-size:12px; font-weight:950; text-align:center; text-transform:uppercase; }
.company-incidence-calendar-day { min-width:0; min-height:122px; position:relative; border:1px solid #dfe8f2; border-radius:15px; background:#fbfdff; box-shadow:0 8px 18px rgba(15,43,72,.035); overflow:hidden; }
.company-incidence-calendar-day > button { width:100%; height:100%; min-height:122px; padding:11px; display:grid; grid-template-rows:auto 1fr; gap:8px; color:inherit; border:0; background:transparent; font:inherit; text-align:left; cursor:pointer; }
.company-incidence-calendar-day > button:hover,.company-incidence-calendar-day > button:focus-visible { outline:none; background:rgba(11,103,200,.045); }
.company-incidence-calendar-day__number { width:26px; height:26px; display:grid; place-items:center; color:#16314f; border-radius:50%; background:#eef5fc; font-weight:950; }
.company-incidence-calendar-day__body { min-width:0; align-content:start; display:flex; flex-wrap:wrap; gap:5px; }
.company-incidence-calendar-day.is-outside { opacity:.45; background:#f7f9fb; }
.company-incidence-calendar-day.is-weekend:not(.is-outside) { background:#fff7ed; border-color:#f3dfc5; }
.company-incidence-calendar-day.is-today { border-color:#0b67c8; box-shadow:inset 0 0 0 2px #0b67c8,0 10px 22px rgba(11,103,200,.1); }
.company-incidence-calendar-day.has-holiday:not(.is-outside) { color:var(--event-text,#7c2d12); border-color:color-mix(in srgb,var(--event-color,#f59e0b) 36%,#dfe8f2); background:color-mix(in srgb,var(--event-color,#f59e0b) 14%,#fff); }
.company-incidence-calendar-day.has-incidence { border-color:color-mix(in srgb,var(--event-color,#f97316) 28%,#dfe8f2); background:linear-gradient(135deg,color-mix(in srgb,var(--event-color,#f97316) 9%,#fff) 0%,#fbfdff 48%,#fff 100%); box-shadow:0 8px 18px rgba(15,43,72,.035); }
.company-incidence-calendar-day.has-incidence::after { content:""; position:absolute; top:10px; right:10px; width:9px; height:9px; border:2px solid #fff; border-radius:50%; background:var(--event-color,#f97316); box-shadow:0 4px 10px rgba(15,43,72,.18); pointer-events:none; }
.company-incidence-calendar-chip { max-width:100%; min-width:30px; min-height:28px; padding:4px 7px; display:inline-flex; align-items:center; gap:5px; overflow:hidden; color:var(--event-text,#fff); border-radius:999px; background:var(--event-color,#0b67c8); box-shadow:0 5px 12px rgba(15,43,72,.08); font-size:10px; font-weight:950; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.company-incidence-calendar-chip.is-centre { border-radius:9px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.48),0 5px 12px rgba(15,43,72,.08); }
.company-incidence-calendar-chip__icon { width:15px; height:15px; display:grid; flex:0 0 15px; place-items:center; font-size:10px; }
.company-incidence-calendar-chip__icon svg { width:14px; height:14px; }
.company-incidence-calendar-chip__identity { min-width:15px; overflow:hidden; text-align:center; text-overflow:ellipsis; }
.company-incidence-calendar-chip.is-holiday { color:var(--event-text,#7c2d12); background:color-mix(in srgb,var(--event-color,#f59e0b) 18%,#fff); border:1px solid color-mix(in srgb,var(--event-color,#f59e0b) 35%,#fff); }
.company-incidence-calendar-more { padding:4px 7px; color:#65778d; border-radius:999px; background:#eef3f8; font-size:10px; font-weight:950; }
.company-incidence-calendar-detail .annual-calendar-event { box-shadow:inset 4px 0 0 var(--event-color,#0b67c8); }
.company-incidence-calendar-detail-card { align-items:center; justify-content:flex-start; gap:12px; }
.company-incidence-calendar-detail-card > div { min-width:0; flex:1; }
.company-incidence-calendar-detail-card .btn { flex:0 0 auto; padding:9px 13px; }
.company-incidence-calendar-detail-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; color:var(--event-text,#fff); border-radius:14px; background:var(--event-color,#0b67c8); box-shadow:0 8px 18px rgba(15,43,72,.12); font-size:12px; font-weight:950; letter-spacing:.02em; text-transform:uppercase; }
.company-incidence-calendar-scope { margin-left:5px; padding:3px 7px; color:#8a3d0b; border:1px solid #fed7aa; border-radius:999px; background:#fff7ed; font-size:9px; font-weight:950; text-transform:uppercase; vertical-align:middle; }
.company-incidence-calendar-affected { margin-top:8px; color:#29425e; }
.company-incidence-calendar-affected summary { width:max-content; max-width:100%; padding:5px 9px; color:#0b67c8; border:1px solid #bdd9f5; border-radius:9px; background:#f2f8ff; font-size:11px; font-weight:900; cursor:pointer; }
.company-incidence-calendar-affected > div { margin-top:7px; display:flex; flex-wrap:wrap; gap:6px; }
.company-incidence-calendar-affected a { min-width:150px; padding:6px 8px; display:flex; align-items:center; gap:7px; color:#173451; border:1px solid #dce7f2; border-radius:10px; background:#fff; text-decoration:none; }
.company-incidence-calendar-affected a:hover,.company-incidence-calendar-affected a:focus-visible { border-color:#8fc0ed; background:#f5faff; outline:none; }
.company-incidence-calendar-affected a span { width:26px; height:26px; display:grid; flex:0 0 26px; place-items:center; color:#fff; border-radius:50%; background:#0b67c8; font-size:9px; font-weight:950; }
.company-incidence-calendar-affected a strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.company-incidence-calendar-affected-empty { margin-top:7px; display:block; color:#7a899b; font-style:italic; }
.company-incidence-calendar-detail-card.is-holiday .company-incidence-calendar-detail-icon { color:var(--event-text,#7c2d12); background:color-mix(in srgb,var(--event-color,#f59e0b) 22%,#fff); border:1px solid color-mix(in srgb,var(--event-color,#f59e0b) 42%,#fff); }
.company-incidence-calendar-coverage { display:grid; gap:8px; }
.company-incidence-calendar-coverage article { padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #dce7f2; border-radius:12px; background:#f8fbff; }
.company-incidence-calendar-coverage article.is-alert { border-color:#fecaca; background:#fff1f2; }
.company-incidence-calendar-coverage strong { color:#173451; font-size:13px; }
.company-incidence-calendar-coverage small { display:block; color:#687b93; font-size:11px; }
.company-incidence-calendar-coverage span { min-width:58px; padding:6px 9px; color:#0b67c8; border-radius:999px; background:#eaf4ff; font-size:13px; font-weight:950; text-align:center; }
.company-incidence-calendar-coverage .is-alert span { color:#b91c1c; background:#fee2e2; }
.company-incidence-calendar-actions { display:flex; flex-wrap:wrap; gap:8px; }
@media (max-width:1380px) { .company-incidence-calendar-toolbar { grid-template-columns:1fr; }.company-incidence-calendar-nav { justify-content:flex-start; }.company-incidence-calendar-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }.company-incidence-calendar-insights { grid-template-columns:1fr; } }
@media (max-width:980px) { .company-incidence-calendar-filters { grid-template-columns:1fr 1fr; }.company-incidence-calendar-board { overflow-x:auto; }.company-incidence-calendar-weekdays,.company-incidence-calendar-days { min-width:860px; }.company-incidence-calendar-insights__main { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:680px) { .company-incidence-calendar-filters,.company-incidence-calendar-kpis,.company-incidence-calendar-insights__main { grid-template-columns:1fr; }.company-incidence-calendar-nav { flex-wrap:wrap; }.company-incidence-calendar-nav > strong { min-width:0; width:100%; text-align:left; } }
@media print { .private-sidebar,.admin-toolbar,.company-incidence-calendar-toolbar,.company-incidence-calendar-quickfilters,.breadcrumbs,.page-actions,.annual-calendar-dialog { display:none !important; }.private-main { margin:0 !important; }.company-incidence-calendar-page { gap:10px; }.company-incidence-calendar-board,.company-incidence-calendar-kpis article,.company-incidence-calendar-insight,.company-incidence-calendar-ranking,.company-incidence-calendar-legend { box-shadow:none !important; } }

/* Escala tipográfica legible del área privada */
.admin-body { font-size: 15px; }
.admin-body .company-form label { font-size: 12px; }.admin-body .company-form select { font-size: 15px; }.admin-body .today-chip { font-size: 14px; }.admin-body .user-menu strong { font-size: 14px; }.admin-body .user-menu small { font-size: 12px; }.admin-body .logout-form button { font-size: 13px; }
.dashboard-organized .dashboard-eyebrow { font-size: 12px; font-weight: 850; letter-spacing: .07em; }.dashboard-organized .dashboard-welcome p { font-size: 14px; }.dashboard-organized .dashboard-health strong { font-size: 13px; }.dashboard-organized .dashboard-health small { font-size: 11px; }.dashboard-organized .dashboard-jump-nav a { font-size: 11px; }
.dashboard-organized .dashboard-filter-form label { font-size: 12px; }.dashboard-organized .dashboard-filter-form select { font-size: 13px; }.dashboard-organized .period-tabs a { font-size: 12px; }.dashboard-organized .period-navigator > strong { font-size: 13px; }.dashboard-organized .period-navigator .today-link { font-size: 11px; }
.dashboard-organized .operation-kpi__top em { font-size: 12px; }.dashboard-organized .operation-icon { font-size: 10px; }.dashboard-organized .operation-kpi > strong { font-size: 34px; }.dashboard-organized .operation-kpi > p { font-size: 12px; }.dashboard-organized .operation-kpi footer { font-size: 11px; }
.dashboard-organized .dashboard-section-heading > div > span { font-size: 10px; }.dashboard-organized .dashboard-section-heading strong { font-size: 15px; }.dashboard-organized .dashboard-section-heading p { font-size: 12px; }
.dashboard-organized .panel-kicker { font-size: 10px; }.dashboard-organized .panel-v2__header h2 { font-size: 19px; }.dashboard-organized .panel-v2__header p { font-size: 12px; line-height: 1.45; }.dashboard-organized .chart-legend-v2,.dashboard-organized .calendar-legend { font-size: 11px; }
.dashboard-organized .balance-totals small { font-size: 11px; }.dashboard-organized .balance-totals strong { font-size: 16px; }.dashboard-organized .hours-objective strong { font-size: 12px; }.dashboard-organized .hours-objective div > span { font-size: 11px; }.dashboard-organized .hours-objective > b { font-size: 16px; }
.dashboard-organized .today-donut small { font-size: 11px; }.dashboard-organized .status-breakdown strong { font-size: 13px; }.dashboard-organized .status-breakdown small { font-size: 11px; }.dashboard-organized .status-breakdown b { font-size: 16px; }
.dashboard-organized .workforce-header h2 { font-size: 20px; }.dashboard-organized .workforce-header p { font-size: 12px; }.dashboard-organized .workforce-summary { font-size: 11px; }.dashboard-organized .worker-search-form label { font-size: 10px; }.dashboard-organized .worker-search-form input { font-size: 13px; }.dashboard-organized .worker-search-form button,.dashboard-organized .working-filter { font-size: 11px; }
.dashboard-organized .worker-card__identity strong { font-size: 13px; }.dashboard-organized .worker-card__identity small { font-size: 11px; }.dashboard-organized .worker-avatar__initials { font-size: 11px; }.dashboard-organized .worker-state { font-size: 9px; }.dashboard-organized .worker-incidence { font-size: 10px; }.dashboard-organized .worker-last > span { font-size: 9px; }.dashboard-organized .worker-last > strong { font-size: 12px; }.dashboard-organized .worker-last > small { font-size: 10px; }.dashboard-organized .workforce-footer,.dashboard-organized .workforce-footer nav strong { font-size: 11px; }
.dashboard-organized .operations-table th { font-size: 10px; }.dashboard-organized .operations-table td { font-size: 12px; }.dashboard-organized .employee-cell i { font-size: 10px; }.dashboard-organized .status-pill { font-size: 10px; }.dashboard-organized .table-search span,.dashboard-organized .table-search input { font-size: 11px; }
.dashboard-organized .request-list strong,.dashboard-organized .alert-list strong,.dashboard-organized .incidence-list strong { font-size: 12px; }.dashboard-organized .request-list small,.dashboard-organized .alert-list small,.dashboard-organized .incidence-list small { font-size: 10px; }.dashboard-organized .alert-list li > b,.dashboard-organized .incidence-list em { font-size: 10px; }.dashboard-organized .compact-empty { font-size: 11px; }.dashboard-organized .panel-count { font-size: 14px; }
.dashboard-organized .calendar-weekdays span { font-size: 11px; }.dashboard-organized .calendar-day__top > strong { font-size: 15px; }.dashboard-organized .calendar-day__top > small { font-size: 9px; }.dashboard-organized .calendar-day__hours small { font-size: 9px; }.dashboard-organized .calendar-day__hours b { font-size: 11px; }.dashboard-organized .calendar-day__empty { font-size: 10px; }.dashboard-organized .calendar-event { font-size: 9px; }.dashboard-organized .calendar-month-nav > strong { font-size: 13px; }.dashboard-organized .calendar-month-nav > .calendar-today-link { font-size: 10px; }
.dashboard-organized .differences-card .difference-list strong { font-size: 13px; }.dashboard-organized .differences-card .difference-list small { font-size: 10px; }.dashboard-organized .differences-card .difference-list li > b { font-size: 12px; }.dashboard-organized .difference-rank { font-size: 11px; }.dashboard-organized .panel-v2-empty strong { font-size: 14px; }.dashboard-organized .panel-v2-empty span { font-size: 11px; }
.dashboard-organized .hours-chart-tooltip > strong { font-size: 13px; }.dashboard-organized .hours-chart-tooltip > span { font-size: 11px; }

/* Actualización AJAX del dashboard */
.admin-content.dashboard-organized { position: relative; }.admin-content.dashboard-organized.is-ajax-loading { pointer-events: none; }.admin-content.dashboard-organized.is-ajax-loading::before { content: ""; height: 3px; position: fixed; z-index: 90; top: 0; right: 0; left: 0; background: linear-gradient(90deg,transparent 10%,#1672d2 48%,transparent 90%); background-size: 220% 100%; animation: dashboard-ajax-progress .9s linear infinite; }.is-ajax-updating { position: relative !important; pointer-events: none; }.is-ajax-updating::before { content: ""; position: absolute; z-index: 40; inset: 0; border-radius: inherit; background: rgba(248,250,252,.58); }.is-ajax-updating::after { content: ""; width: 26px; height: 26px; position: absolute; z-index: 41; top: 50%; left: 50%; margin: -13px 0 0 -13px; border: 3px solid #d7e5f3; border-top-color: #1268c7; border-radius: 50%; animation: dashboard-ajax-spin .65s linear infinite; }.dashboard-ajax-error { max-width: min(430px,calc(100vw - 30px)); padding: 13px 16px; position: fixed; z-index: 80; right: 20px; bottom: 20px; color: #8f321f; border: 1px solid #f0b9aa; border-radius: 10px; background: #fff5f2; box-shadow: 0 14px 38px rgba(57,25,18,.16); font-size: 13px; font-weight: 700; line-height: 1.45; }
@keyframes dashboard-ajax-spin { to { transform: rotate(360deg); } }
@keyframes dashboard-ajax-progress { from { background-position: 100% 0; } to { background-position: -120% 0; } }
@media (max-width: 560px) { .dashboard-ajax-error { right: 15px; bottom: 15px; } }

@media (max-width: 560px) { .dashboard-organized .operation-kpi > strong { font-size: 30px; }.dashboard-organized .panel-v2__header h2 { font-size: 17px; }.dashboard-organized .worker-card__identity strong { white-space: normal; }.dashboard-organized .dashboard-section-heading p { max-width: none; } }

/* Dashboard operativo 2026 */
.dashboard-live-tools { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.dashboard-live-tools button,.dashboard-live-tools select { min-height: 32px; border: 1px solid #cbd9e8; border-radius: 7px; background: #fff; color: #1d5f9f; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.dashboard-live-tools button { padding: 0 11px; background: #1268c7; color: #fff; border-color: #1268c7; }.dashboard-live-tools button.secondary { color: #315b87; background: #fff; border-color: #cbd9e8; }
.dashboard-live-tools label { display: flex; align-items: center; gap: 6px; color: #607188; font-size: 11px; font-weight: 750; }.dashboard-live-tools select { padding: 0 25px 0 8px; }

.dashboard-action-center { margin-top: 16px; padding: 20px; border-color: #d8e3ee; background: linear-gradient(135deg,#fff 0%,#f8fbff 100%); }
.attention-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }.attention-header h2 { margin: 4px 0; color: #172d49; font-size: 21px; }.attention-header p { margin: 0; color: #6f7e91; font-size: 12px; }
.attention-summary { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }.attention-summary span { padding: 8px 10px; display: flex; align-items: baseline; gap: 4px; color: #596a7e; border: 1px solid #dce5ee; border-radius: 8px; background: #fff; font-size: 10px; font-weight: 800; }.attention-summary b { color: #213c5c; font-size: 17px; }.attention-summary .critical { color: #9d382e; border-color: #efc9c5; background: #fff5f4; }.attention-summary .warning { color: #9a651d; border-color: #f0d7af; background: #fff9ef; }
.attention-toolbar { margin: 15px 0 10px; display: flex; gap: 6px; }.attention-toolbar button { padding: 6px 10px; color: #68788b; border: 1px solid #d9e3ed; border-radius: 20px; background: #fff; font: inherit; font-size: 10px; font-weight: 850; cursor: pointer; }.attention-toolbar button.active { color: #fff; border-color: #176dcb; background: #176dcb; }
.attention-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.attention-item { min-width: 0; padding: 11px 12px; display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 11px; border: 1px solid #e1e8ef; border-radius: 9px; background: #fff; }.attention-item[hidden] { display: none; }.attention-indicator { width: 8px; height: 32px; border-radius: 8px; background: #67a2dd; }.attention-item--critical .attention-indicator { background: #d85045; }.attention-item--warning .attention-indicator { background: #e5a33f; }.attention-item small,.attention-item strong,.attention-item p { display: block; }.attention-item small { color: #8a96a5; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }.attention-item strong { margin-top: 2px; color: #273d59; font-size: 13px; }.attention-item p { margin: 3px 0 0; color: #6f7d8f; font-size: 11px; line-height: 1.35; }.attention-item > a { padding: 7px 9px; color: #176ac5; border-radius: 6px; background: #eef6ff; font-size: 10px; font-weight: 850; white-space: nowrap; }.attention-clear { padding: 17px; display: flex; align-items: center; gap: 12px; color: #286f50; border: 1px solid #cbe7d8; border-radius: 9px; background: #f0faf5; }.attention-clear > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #d9f2e5; font-size: 18px; font-weight: 900; }.attention-clear p { margin: 3px 0 0; color: #607b6d; font-size: 11px; }

.dashboard-operations-grid { display: grid; grid-template-columns: minmax(320px,.9fr) minmax(340px,1.05fr) minmax(300px,.8fr); gap: 16px; align-items: start; }.dashboard-operations-grid > .panel-v2 { height: 100%; padding: 18px; }.panel-link { color: #176ac5; font-size: 10px; font-weight: 850; white-space: nowrap; }
.coverage-list { display: grid; gap: 10px; }.coverage-row { padding: 11px; border: 1px solid #e4eaf1; border-radius: 9px; background: #fbfcfe; }.coverage-row__title { display: flex; justify-content: space-between; gap: 10px; }.coverage-row__title strong { color: #273d58; font-size: 13px; }.coverage-row__title span { color: #176ac5; font-size: 12px; font-weight: 900; }.coverage-bar { height: 7px; margin: 8px 0 9px; overflow: hidden; border-radius: 8px; background: #e3eaf2; }.coverage-bar i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#1684d8,#20aa71); }.coverage-row dl { margin: 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 5px; }.coverage-row dl div { text-align: center; }.coverage-row dt { color: #8793a2; font-size: 8px; font-weight: 800; text-transform: uppercase; }.coverage-row dd { margin: 2px 0 0; color: #324760; font-size: 13px; font-weight: 900; }.coverage-row .has-missing dd { color: #c35d32; }
.dashboard-widget-grid [data-widget-width="1"].coverage-panel .coverage-row dl { grid-template-columns: 1fr 1fr; row-gap: 8px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .panel-v2__header { flex-direction: column; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-list { padding-right:2px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-event { grid-template-columns:48px 14px minmax(0,1fr); gap:6px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-clock { width:48px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-clock b { font-size:13px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-event-card { padding:9px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-event-card > header { grid-template-columns:32px minmax(0,1fr); gap:7px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-avatar { width:32px; height:32px; }
.dashboard-widget-grid [data-widget-width="1"].timeline-panel .timeline-kind { grid-column:2; justify-self:start; }
.timeline-list { max-height:410px; margin:0; padding:0 4px 0 0; overflow:auto; list-style:none; }
.timeline-event { min-width:0; padding:8px 0; position:relative; display:grid; grid-template-columns:56px 18px minmax(0,1fr); align-items:stretch; gap:8px; }
.timeline-event:focus-visible { outline:none; }
.timeline-clock { width:56px; align-self:start; overflow:hidden; color:#173b5f; border:1px solid #cfe0f0; border-radius:9px; background:#fff; box-shadow:0 4px 12px rgba(18,65,105,.06); text-align:center; }
.timeline-clock span { padding:3px 4px; display:block; color:#fff; background:#176ac5; font-size:8px; font-weight:950; letter-spacing:.035em; line-height:1.25; }
.timeline-clock b { padding:7px 3px 8px; display:block; font-size:15px; font-weight:950; line-height:1; }
.timeline-axis { min-height:64px; position:relative; display:flex; align-items:flex-start; justify-content:center; }
.timeline-axis::before { width:2px; position:absolute; top:-8px; bottom:-8px; left:50%; background:#dbe7f2; content:""; transform:translateX(-50%); }
.timeline-event:first-child .timeline-axis::before { top:12px; }
.timeline-event:last-child .timeline-axis::before { bottom:calc(100% - 13px); }
.timeline-axis i { width:10px; height:10px; margin-top:8px; position:relative; z-index:1; border:2px solid #fff; border-radius:50%; background:#607b98; box-shadow:0 0 0 3px #dfe8f1; }
.timeline-event--entry .timeline-axis i { background:#13a676; box-shadow:0 0 0 3px #d7f3e9; }
.timeline-event--exit .timeline-axis i { background:#4d7198; box-shadow:0 0 0 3px #e1e9f1; }
.timeline-event-card { min-width:0; padding:10px 11px; border:1px solid #dde7f0; border-radius:11px; background:#fbfdff; box-shadow:0 5px 14px rgba(23,62,98,.045); transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.timeline-event:hover .timeline-event-card,.timeline-event:focus-visible .timeline-event-card { border-color:#9fc6e9; background:#fff; box-shadow:0 8px 18px rgba(23,75,120,.09); transform:translateY(-1px); }
.timeline-event.is-anomalous .timeline-event-card { border-color:#efc7aa; background:#fff8f2; }
.timeline-event-card > header { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:9px; }
.timeline-avatar { width:36px; height:36px; position:relative; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:#e5eef8; color:#32618d; font-size:10px; }
.timeline-avatar img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.timeline-list strong,.timeline-list small,.timeline-list p { display:block; }
.timeline-list strong { overflow:hidden; color:#2d425e; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.timeline-list small { margin-top:2px; overflow:hidden; color:#66778a; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.timeline-list p { margin:7px 0 0; overflow:hidden; color:#7f8fa1; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.timeline-list p.timeline-location { display:flex; align-items:center; gap:3px; overflow:visible; }
.timeline-location > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.timeline-location .timeline-gps-icon { flex:0 0 17px; margin-left:1px; }
.timeline-event-card footer { min-height:0; display:flex; align-items:center; flex-wrap:wrap; }
.timeline-kind { padding:5px 7px; border-radius:6px; font-size:8px; font-weight:900; white-space:nowrap; }
.timeline-kind--entry { color:#17704d; background:#e7f6ee; }
.timeline-kind--exit { color:#49617d; background:#edf2f7; }
.forecast-list { display: grid; gap: 6px; }.forecast-list > article { padding: 8px 9px; display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 9px; border: 1px solid #e4eaf1; border-radius: 8px; }.forecast-list > article.has-events { border-color: #ebd2af; background: #fffaf2; }.forecast-list time { display: grid; place-items: center; border-radius: 6px; background: #eef4fa; color: #355878; }.forecast-list time b { font-size: 8px; text-transform: uppercase; }.forecast-list time span { font-size: 15px; font-weight: 900; }.forecast-list strong,.forecast-list small,.forecast-list em { display: block; }.forecast-list strong { color: #304760; font-size: 11px; }.forecast-list small { margin-top: 3px; color: #7c8999; font-size: 9px; line-height: 1.35; }.forecast-list em { margin-top: 3px; color: #b05c35; font-size: 9px; font-style: normal; font-weight: 800; }
.dashboard-quick-actions { margin-top: 14px; display: grid; grid-template-columns: repeat(5,1fr); gap: 9px; }.dashboard-quick-actions a { min-width: 0; padding: 11px; display: grid; grid-template-columns: 35px minmax(0,1fr); column-gap: 9px; border: 1px solid #dfe7ef; border-radius: 9px; background: #fff; transition: transform .15s ease,box-shadow .15s ease; }.dashboard-quick-actions a:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(28,59,92,.09); }.dashboard-quick-actions a > span { width: 35px; height: 35px; grid-row: 1/3; display: grid; place-items: center; color: #176ac5; border-radius: 8px; background: #edf6ff; font-size: 9px; font-weight: 900; }.dashboard-quick-actions strong { color: #293f59; font-size: 12px; }.dashboard-quick-actions small { margin-top: 2px; overflow: hidden; color: #7d8998; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.period-comparison { margin: 0 0 13px; padding: 9px 11px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 10px; align-items: center; border-radius: 8px; background: #f5f8fc; color: #65758a; font-size: 10px; }.period-comparison strong { color: #344a64; }.period-comparison > b { grid-row: 1/3; grid-column: 2; font-size: 15px; }.period-comparison > b.positive { color: #1e8a5e; }.period-comparison > b.negative { color: #c35142; }.period-comparison small { color: #8c98a6; font-size: 9px; }

.worker-view-toggle { margin-left: auto; display: inline-flex; padding: 3px; border: 1px solid #d8e2ec; border-radius: 7px; background: #fff; }.worker-view-toggle button { min-height: 27px; padding: 0 9px; color: #6b7b8e; border: 0; border-radius: 5px; background: transparent; font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }.worker-view-toggle button.active { color: #fff; background: #176ac5; }.worker-actions { margin-top: 10px; padding-top: 8px; display: flex; gap: 5px; border-top: 1px solid #edf1f5; }.worker-actions a { flex: 1; padding: 5px 4px; color: #176ac5; border-radius: 5px; background: #eff6fd; font-size: 9px; font-weight: 800; text-align: center; }
.worker-grid.is-list { grid-template-columns: 1fr; }.worker-grid.is-list .worker-card { display: grid; grid-template-columns: minmax(230px,1.2fr) auto auto minmax(180px,1fr) minmax(220px,.8fr); align-items: center; gap: 12px; }.worker-grid.is-list .worker-state,.worker-grid.is-list .worker-incidence,.worker-grid.is-list .worker-last,.worker-grid.is-list .worker-actions { margin: 0; }.worker-grid.is-list .worker-last,.worker-grid.is-list .worker-actions { padding: 0; border: 0; }

.dashboard-system-panel { margin-top: 18px; padding: 19px; }.system-overall { display: flex; align-items: center; gap: 6px; color: #257552; font-size: 11px; font-weight: 850; }.system-overall i { width: 8px; height: 8px; border-radius: 50%; background: #25a96f; box-shadow: 0 0 0 4px rgba(37,169,111,.12); }.system-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }.system-grid article { padding: 12px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; border: 1px solid #e0e7ee; border-radius: 9px; background: #fbfcfe; }.system-icon { width: 38px; height: 38px; display: grid; place-items: center; color: #176ac5; border-radius: 9px; background: #eaf4ff; font-size: 9px; font-weight: 900; }.system-icon--ok { color: #1d7954; background: #e8f7ef; }.system-icon--legacy { color: #8d6524; background: #fff5df; }.system-grid strong,.system-grid small { display: block; }.system-grid strong { color: #30445d; font-size: 12px; }.system-grid small { margin-top: 2px; color: #84909f; font-size: 9px; }.system-grid article > b,.system-grid article > a { color: #25805a; font-size: 10px; font-weight: 850; }.system-grid article > a { color: #176ac5; }.system-grid article.is-error > b { color: #bd4c3c; }.data-quality-grid { margin-top: 9px; display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }.data-quality-grid a { padding: 10px 12px; display: flex; align-items: baseline; gap: 7px; border-radius: 8px; background: #f4f7fa; }.data-quality-grid b { color: #354b65; font-size: 18px; }.data-quality-grid span { color: #748296; font-size: 10px; font-weight: 750; }
.dashboard-detail-backdrop { position: fixed; z-index: 90; inset: 0; background: rgba(16,30,49,.42); }.dashboard-detail-drawer { width: min(920px,calc(100vw - 30px)); height: 100vh; padding: 28px; position: fixed; z-index: 91; top: 0; right: 0; overflow: auto; background: #fff; box-shadow: -18px 0 50px rgba(22,40,62,.2); }.dashboard-detail-drawer h2 { margin: 5px 30px 20px 0; color: #203852; font-size: 23px; }.detail-close { width: 34px; height: 34px; position: absolute; top: 18px; right: 18px; color: #4d6076; border: 1px solid #d7e1eb; border-radius: 50%; background: #fff; font-size: 21px; cursor: pointer; }.detail-metrics { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }.detail-metrics div { padding: 12px; border-radius: 8px; background: #f4f7fa; }.detail-metrics small,.detail-metrics strong { display: block; }.detail-metrics small { color: #7b8999; font-size: 9px; font-weight: 800; text-transform: uppercase; }.detail-metrics strong { margin-top: 4px; color: #29435f; font-size: 18px; }.detail-note { margin-top: 12px; padding: 11px; color: #66788c; border-radius: 8px; background: #eef5fc; font-size: 11px; line-height: 1.5; }
.day-detail { color: #30445d; }.day-detail-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.day-detail-summary article { min-width: 0; padding: 14px; border: 1px solid #e1e8f0; border-radius: 11px; background: #f7f9fc; }.day-detail-summary small,.day-detail-summary strong { display: block; }.day-detail-summary small { color: #74849a; font-size: 11px; font-weight: 800; }.day-detail-summary strong { margin-top: 5px; color: #203b59; font-size: 22px; }.day-detail-summary strong span { color: #76869a; font-size: 11px; font-weight: 750; }.day-detail-summary article.is-negative strong,.day-balance.is-negative { color: #bd4d3d; }.day-detail-summary article.is-positive strong,.day-balance.is-positive { color: #1d8058; }.day-detail-summary article.is-warning { border-color: #efcf9c; background: #fff8ed; }.day-detail-summary article.is-warning strong { color: #a96122; }
.day-detail-context { margin-top: 12px; padding: 12px 14px; display: flex; flex-wrap: wrap; gap: 10px 24px; border: 1px solid #d8e7f6; border-radius: 10px; background: #f0f7fe; }.day-detail-context p { margin: 0; }.day-detail-context span,.day-detail-context strong { display: block; }.day-detail-context span { color: #55718e; font-size: 10px; font-weight: 850; text-transform: uppercase; }.day-detail-context strong { margin-top: 2px; color: #234a72; font-size: 13px; }
.day-detail-activity,.day-detail-incidences,.day-detail-workers { margin-top: 18px; padding-top: 18px; border-top: 1px solid #e4eaf1; }.day-detail-activity > header,.day-detail-workers > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }.day-detail h3 { margin: 3px 0 0; color: #203852; font-size: 18px; }.day-detail-workers > header p { margin: 3px 0 0; color: #74849a; font-size: 12px; }.day-detail-activity > header > span,.day-detail-workers > header > strong { color: #657890; font-size: 11px; font-weight: 800; }.day-detail-activity-grid { margin-top: 11px; display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }.day-detail-activity-grid article { padding: 12px; display: flex; align-items: baseline; gap: 8px; border-radius: 9px; background: #f4f7fa; }.day-detail-activity-grid strong { color: #176ac5; font-size: 22px; }.day-detail-activity-grid span { color: #64758a; font-size: 11px; }
.day-detail-incidences ul { margin: 11px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; list-style: none; }.day-detail-incidences li { min-width: 0; padding: 12px; border: 1px solid #eadfd2; border-radius: 10px; background: #fffdf9; }.day-detail-incidences li.is-vacation { border-color: #cce5d8; background: #f4fbf7; }.day-incidence-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.day-incidence-heading strong,.day-incidence-heading small { display: block; }.day-incidence-heading strong { color: #334a65; font-size: 12px; }.day-incidence-heading small { margin-top: 2px; color: #7e8a9a; font-size: 10px; }.day-incidence-heading > b { padding: 4px 6px; color: #9a5b27; border-radius: 5px; background: #fff0df; font-size: 8px; white-space: nowrap; }.day-detail-incidences li.is-vacation .day-incidence-heading > b { color: #1f7353; background: #e1f3e9; }.day-detail-incidences h4 { margin: 11px 0 0; color: #233f5d; font-size: 15px; }.day-incidence-title,.day-incidence-notes { margin: 4px 0 0; color: #65778c; font-size: 10px; line-height: 1.4; }.day-incidence-meta { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 5px; }.day-incidence-meta span { padding: 4px 6px; color: #566b83; border-radius: 5px; background: #eef3f7; font-size: 9px; font-weight: 750; }.day-incidence-notes { padding-top: 8px; border-top: 1px solid rgba(101,119,140,.14); }
.day-detail-table-wrap { margin-top: 12px; overflow-x: auto; border: 1px solid #dfe7ef; border-radius: 10px; }.day-detail-table { width: 100%; border-collapse: collapse; }.day-detail-table th { padding: 9px 10px; color: #718196; background: #f4f7fa; font-size: 9px; font-weight: 900; text-align: left; text-transform: uppercase; }.day-detail-table td { padding: 11px 10px; border-top: 1px solid #e7ecf2; font-size: 11px; vertical-align: middle; }.day-detail-table tbody tr:first-child td { border-top: 0; }.day-detail-table tbody tr.is-empty { background: #fbfcfd; }.day-detail-table td > strong,.day-detail-table td > small { display: block; }.day-detail-table td > strong { color: #2b435e; font-size: 12px; }.day-detail-table td > small { margin-top: 3px; color: #7f8c9c; font-size: 9px; line-height: 1.35; }.day-worker { min-width: 180px; display: flex; align-items: center; gap: 9px; }.day-worker > i { width: 38px; height: 38px; flex: 0 0 38px; position: relative; display: grid; place-items: center; overflow: hidden; color: #2c628f; border-radius: 50%; background: #e6f0fa; font-size: 10px; font-style: normal; font-weight: 850; }.day-worker > i img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }.day-worker strong,.day-worker small { display: block; }.day-worker strong { color: #263f5c; font-size: 12px; }.day-worker small { margin-top: 2px; color: #8491a0; font-size: 9px; }.day-worker-times { display: flex; align-items: center; gap: 5px; color: #2d4966; }.day-worker-times b { font-size: 12px; }.day-worker-times i { color: #9aa7b4; font-style: normal; }.day-worker-address { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.day-status { padding: 5px 7px; display: inline-flex; border-radius: 6px; font-size: 9px; font-weight: 850; white-space: nowrap; }.day-status.is-complete { color: #217552; background: #e8f6ef; }.day-status.is-open { color: #a45b20; background: #fff0dc; }.day-status.is-incidence { color: #8b5a25; background: #fff4e5; }.day-status.is-empty { color: #6f7d8e; background: #edf1f5; }.day-worker-incidence { max-width: 150px; margin-top: 4px!important; color: #9a612d!important; }
.day-detail-pagination { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #77879a; font-size: 10px; }.day-detail-pagination nav { display: flex; align-items: center; gap: 8px; }.day-detail-pagination a { padding: 6px 9px; color: #176ac5; border: 1px solid #d8e4ef; border-radius: 7px; background: #f7fbff; font-weight: 800; }.day-detail-pagination a.is-disabled { opacity: .45; pointer-events: none; }.day-detail-pagination strong { color: #425a74; }.day-detail-empty,.day-detail-loading,.day-detail-error { margin-top: 12px; padding: 28px; display: grid; place-items: center; color: #77889c; border: 1px dashed #d9e3ed; border-radius: 10px; background: #f8fafc; text-align: center; }.day-detail-empty strong,.day-detail-empty span,.day-detail-loading strong,.day-detail-loading span,.day-detail-error strong,.day-detail-error span { display: block; }.day-detail-loading i { width: 28px; height: 28px; margin-bottom: 9px; border: 3px solid #d7e7f6; border-top-color: #176ac5; border-radius: 50%; animation: day-detail-spin .8s linear infinite; }.day-detail-loading strong,.day-detail-error strong { color: #334b65; font-size: 13px; }.day-detail-loading span,.day-detail-error span { margin-top: 3px; font-size: 11px; }.day-detail-error { border-color: #efc8c1; background: #fff7f5; }.day-detail-error strong { color: #ad493b; }@keyframes day-detail-spin { to { transform: rotate(360deg); } }
.calendar-day[role="button"] { cursor: pointer; }.calendar-day[role="button"]:focus-visible,#hours-balance-chart:focus-visible { outline: 3px solid rgba(23,106,197,.28); outline-offset: 2px; }

@media (max-width: 1350px) { .dashboard-operations-grid { grid-template-columns: 1fr 1fr; }.forecast-panel { grid-column: 1/-1; }.forecast-list { grid-template-columns: repeat(4,1fr); }.dashboard-quick-actions { grid-template-columns: repeat(3,1fr); }.worker-grid.is-list .worker-card { grid-template-columns: minmax(220px,1fr) auto minmax(180px,1fr); }.worker-grid.is-list .worker-incidence { display: none; }.worker-grid.is-list .worker-actions { grid-column: 1/-1; } }
.system-overall.is-warning { color: #a65a20; }.system-overall.is-warning i { background: #e6a43a; box-shadow: 0 0 0 4px rgba(230,164,58,.15); }.system-grid article.has-pending { border-color: #edd9ba; background: #fffaf2; }.system-icon--warning { color: #98611f; background: #fff0d8; }.system-grid article > a { white-space: nowrap; }.system-grid article.has-pending > a { color: #a65a20; }.system-grid article > a:hover { text-decoration: underline; }
@media (max-width: 900px) { .attention-header { flex-direction: column; }.attention-summary { justify-content: flex-start; }.attention-list,.dashboard-operations-grid { grid-template-columns: 1fr; }.forecast-panel { grid-column: auto; }.forecast-list { grid-template-columns: 1fr 1fr; }.dashboard-quick-actions { grid-template-columns: 1fr 1fr; }.system-grid,.data-quality-grid { grid-template-columns: 1fr; }.worker-grid.is-list .worker-card { grid-template-columns: 1fr; }.worker-grid.is-list .worker-actions { grid-column: auto; }.dashboard-live-tools { justify-content: flex-start; } }
@media (max-width: 560px) { .attention-list,.forecast-list,.dashboard-quick-actions { grid-template-columns: 1fr; }.attention-item { grid-template-columns: 7px minmax(0,1fr); }.attention-item > a { grid-column: 2; justify-self: start; }.coverage-row dl { grid-template-columns: 1fr 1fr; row-gap: 8px; }.dashboard-action-center,.dashboard-operations-grid > .panel-v2,.dashboard-system-panel { padding: 14px; }.dashboard-detail-drawer { width: calc(100vw - 12px); padding: 22px; } }
@media (max-width: 760px) { .day-detail-summary { grid-template-columns: repeat(2,1fr); }.day-detail-incidences ul { grid-template-columns: 1fr; }.day-detail-table,.day-detail-table tbody,.day-detail-table tr,.day-detail-table td { display: block; }.day-detail-table thead { display: none; }.day-detail-table tr { padding: 10px; border-top: 1px solid #e3e9f0; }.day-detail-table tr:first-child { border-top: 0; }.day-detail-table td { padding: 6px 0 6px 94px; position: relative; border: 0; }.day-detail-table td::before { content: attr(data-label); width: 84px; position: absolute; left: 0; top: 7px; color: #7a899b; font-size: 9px; font-weight: 850; text-transform: uppercase; }.day-detail-pagination { align-items: flex-start; flex-direction: column; }.day-detail-pagination nav { width: 100%; justify-content: space-between; } }
@media (max-width: 480px) { .day-detail-summary,.day-detail-activity-grid { grid-template-columns: 1fr 1fr; }.day-detail-activity > header,.day-detail-workers > header { flex-direction: column; }.day-detail-activity-grid article { align-items: flex-start; flex-direction: column; gap: 1px; } }
.timeline-imported { margin:4px 5px 0 0; display:inline-flex; color:#7b6b9c; font-size:8px; font-weight:850; }

/* Jerarquía y legibilidad del panel */
.admin-content.dashboard-organized { font-size: 15px; line-height: 1.5; }
.admin-body .sidebar-nav a,.admin-body .sidebar-link { font-size: 14px; }.admin-body .company-form label { font-size: 12px; }.admin-body .company-form select { font-size: 14px; }.admin-body .user-menu strong { font-size: 13px; }.admin-body .user-menu small { font-size: 11px; }.admin-body .today-chip { font-size: 12px; }
.dashboard-focus-heading { margin: 4px 0 15px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.dashboard-focus-heading span { color: #1268c7; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.dashboard-focus-heading h2 { margin: 3px 0 0; color: #172d49; font-size: 23px; letter-spacing: -.025em; }
.dashboard-focus-heading p { margin: 3px 0 0; color: #68798e; font-size: 14px; }
.dashboard-focus-heading > small { color: #78879a; font-size: 12px; font-weight: 750; text-transform: capitalize; }
.dashboard-organized > .operations-kpis { margin-bottom: 28px; }
.dashboard-organized > .dashboard-action-center { margin: 0 0 38px; padding: 24px; }
.dashboard-organized > .dashboard-action-center.is-clear { border-color: #cfe5d9; background: linear-gradient(135deg,#fff 0%,#f4fbf7 100%); }
.dashboard-organized > .dashboard-section-heading--operations { margin-top: 0; }
.dashboard-organized > .dashboard-operations-grid { margin-bottom: 5px; }
.dashboard-organized > .workforce-panel { margin-top: 27px; }

.dashboard-organized .dashboard-welcome p { font-size: 15px; }.dashboard-organized .dashboard-eyebrow { font-size: 12px; }.dashboard-organized .dashboard-health strong { font-size: 13px; }.dashboard-organized .dashboard-health small { font-size: 11px; }
.dashboard-organized .dashboard-live-tools button,.dashboard-organized .dashboard-live-tools label,.dashboard-organized .dashboard-live-tools select,.dashboard-organized .dashboard-jump-nav a { font-size: 12px; }
.dashboard-organized .dashboard-filter-form label { font-size: 12px; }.dashboard-organized .dashboard-filter-form select { height: 41px; font-size: 14px; }.dashboard-organized .period-tabs a { padding: 9px 13px; font-size: 13px; }.dashboard-organized .period-navigator > strong { font-size: 14px; }.dashboard-organized .period-navigator .today-link { font-size: 12px; }
.dashboard-organized .operation-kpi { padding: 20px 20px 16px; }.dashboard-organized .operation-kpi__top em { font-size: 12px; }.dashboard-organized .operation-icon { width: 32px; height: 32px; font-size: 11px; }.dashboard-organized .operation-kpi > strong { margin-top: 13px; font-size: 36px; }.dashboard-organized .operation-kpi > p { margin-top: 6px; font-size: 14px; }.dashboard-organized .operation-kpi footer { padding-top: 11px; font-size: 12px; }
.dashboard-organized .attention-header h2 { font-size: 22px; }.dashboard-organized .attention-header p { font-size: 14px; }.dashboard-organized .attention-summary span { font-size: 11px; }.dashboard-organized .attention-summary b { font-size: 18px; }.dashboard-organized .attention-toolbar button { font-size: 11px; }.dashboard-organized .attention-item { padding: 14px; }.dashboard-organized .attention-item small { font-size: 10px; }.dashboard-organized .attention-item strong { font-size: 14px; }.dashboard-organized .attention-item p { font-size: 12px; line-height: 1.45; }.dashboard-organized .attention-item > a { font-size: 11px; }.dashboard-organized .attention-clear strong { font-size: 14px; }.dashboard-organized .attention-clear p { font-size: 12px; }
.dashboard-organized .attention-toolbar.is-compact { display: none; }
.dashboard-organized .dashboard-section-heading { margin-bottom: 16px; }.dashboard-organized .dashboard-section-heading > div > span { width: 32px; height: 32px; font-size: 11px; }.dashboard-organized .dashboard-section-heading strong { font-size: 18px; }.dashboard-organized .dashboard-section-heading p { font-size: 13px; }
.dashboard-organized .panel-v2 { padding: 22px; }.dashboard-organized .panel-kicker { font-size: 11px; }.dashboard-organized .panel-v2__header h2 { font-size: 20px; }.dashboard-organized .panel-v2__header p { font-size: 13px; line-height: 1.45; }.dashboard-organized .panel-link { font-size: 12px; }
.dashboard-organized .coverage-row__title strong { font-size: 14px; }.dashboard-organized .coverage-row__title span { font-size: 14px; }.dashboard-organized .coverage-row dt { font-size: 10px; }.dashboard-organized .coverage-row dd { font-size: 16px; }
.dashboard-organized .timeline-list strong { font-size: 14px; }.dashboard-organized .timeline-list small { font-size: 11px; }.dashboard-organized .timeline-list p { font-size: 11px; }.dashboard-organized .timeline-imported { font-size: 10px; }.dashboard-organized .timeline-kind { font-size: 9px; }
.dashboard-organized .forecast-list strong { font-size: 13px; }.dashboard-organized .forecast-list small { font-size: 11px; }.dashboard-organized .forecast-list em { font-size: 10px; }.dashboard-organized .forecast-list time b { font-size: 10px; }.dashboard-organized .forecast-list time span { font-size: 17px; }
.dashboard-organized .dashboard-quick-actions strong { font-size: 14px; }.dashboard-organized .dashboard-quick-actions small { font-size: 11px; }.dashboard-organized .dashboard-quick-actions a > span { font-size: 10px; }
.dashboard-organized .workforce-header h2 { font-size: 22px; }.dashboard-organized .workforce-header p { font-size: 13px; }.dashboard-organized .workforce-summary { font-size: 12px; }.dashboard-organized .worker-card__identity strong { font-size: 14px; }.dashboard-organized .worker-card__identity small { font-size: 12px; }.dashboard-organized .worker-state { font-size: 10px; }.dashboard-organized .worker-incidence { font-size: 11px; }.dashboard-organized .worker-last > span { font-size: 10px; }.dashboard-organized .worker-last > strong { font-size: 13px; }.dashboard-organized .worker-last > small { font-size: 11px; }.dashboard-organized .worker-actions a,.dashboard-organized .worker-view-toggle button { font-size: 11px; }
.dashboard-organized .operations-table th { font-size: 11px; }.dashboard-organized .operations-table td { font-size: 13px; }.dashboard-organized .table-search span,.dashboard-organized .table-search input { font-size: 12px; }.dashboard-organized .status-pill { font-size: 11px; }
.dashboard-organized .request-list strong,.dashboard-organized .alert-list strong,.dashboard-organized .incidence-list strong { font-size: 13px; }.dashboard-organized .request-list small,.dashboard-organized .alert-list small,.dashboard-organized .incidence-list small { font-size: 11px; }.dashboard-organized .compact-empty { font-size: 12px; }
.dashboard-organized .balance-totals small { font-size: 11px; }.dashboard-organized .balance-totals strong { font-size: 17px; }.dashboard-organized .period-comparison,.dashboard-organized .period-comparison small { font-size: 11px; }.dashboard-organized .hours-objective strong { font-size: 13px; }.dashboard-organized .hours-objective div > span { font-size: 12px; }
.dashboard-organized .status-breakdown strong { font-size: 14px; }.dashboard-organized .status-breakdown small { font-size: 12px; }.dashboard-organized .status-breakdown b { font-size: 17px; }.dashboard-organized .today-donut small { font-size: 12px; }
.dashboard-organized .calendar-weekdays span { font-size: 12px; }.dashboard-organized .calendar-day__top > strong { font-size: 16px; }.dashboard-organized .calendar-day__top > small { font-size: 10px; }.dashboard-organized .calendar-day__hours small { font-size: 10px; }.dashboard-organized .calendar-day__hours b { font-size: 12px; }.dashboard-organized .calendar-day__empty { font-size: 11px; }.dashboard-organized .calendar-event { font-size: 10px; }
.dashboard-organized .difference-list strong { font-size: 14px; }.dashboard-organized .difference-list small { font-size: 11px; }.dashboard-organized .difference-list li > b { font-size: 13px; }.dashboard-organized .panel-v2-empty strong { font-size: 15px; }.dashboard-organized .panel-v2-empty span { font-size: 12px; }
.dashboard-organized .system-grid strong { font-size: 13px; }.dashboard-organized .system-grid small { font-size: 11px; }.dashboard-organized .system-grid article > b,.dashboard-organized .system-grid article > a { font-size: 11px; }.dashboard-organized .data-quality-grid span { font-size: 11px; }

@media (max-width: 700px) { .dashboard-focus-heading { align-items: flex-start; flex-direction: column; gap: 5px; }.dashboard-organized > .dashboard-action-center { margin-bottom: 28px; padding: 18px; }.dashboard-organized .operation-kpi > strong { font-size: 32px; } }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Acceso y área privada 2026 */
.login-body { min-width: 320px; min-height: 100vh; color: #13233b; background: #f4f7fb; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(390px,.92fr) minmax(500px,1.08fr); }
.login-story { min-height: 100vh; padding: 42px clamp(42px,6vw,92px); display: flex; flex-direction: column; color: #fff; background: radial-gradient(circle at 76% 18%,rgba(44,154,242,.48),transparent 30%),radial-gradient(circle at 8% 92%,rgba(25,116,222,.38),transparent 32%),linear-gradient(145deg,#062a58,#063f84 62%,#0756ac); }
.login-brand { width: 190px; padding: 5px 13px; display: flex; border-radius: 12px; background: #fff; box-shadow: 0 14px 35px rgba(0,18,45,.24); }
.login-brand img { width: 100%; height: auto; }
.login-story > div { max-width: 610px; margin: auto 0; padding: 60px 0; }
.login-eyebrow,.login-card-kicker,.dashboard-eyebrow { color: #65c8ff; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.login-story h1 { margin: 18px 0 22px; font-size: clamp(43px,4.5vw,66px); line-height: 1.03; letter-spacing: -2.6px; }
.login-story p { max-width: 570px; margin: 0; color: #d2e4f8; font-size: 18px; line-height: 1.65; }
.login-story ul { margin: 32px 0 0; padding: 0; display: grid; gap: 14px; list-style: none; color: #edf6ff; font-size: 14px; }
.login-story li { display: flex; align-items: center; gap: 11px; }
.login-story li i { width: 24px; height: 24px; display: grid; place-items: center; color: #07529f; border-radius: 50%; background: #8bdbff; font-size: 12px; font-style: normal; font-weight: 900; }
.login-story > small { color: #9dbce0; }
.login-card-wrap { padding: 44px; display: grid; place-items: center; }
.login-card { width: min(470px,100%); padding: 48px; border: 1px solid #e1e8f1; border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(22,48,83,.11); }
.login-card-kicker { color: #0b69d4; }
.login-card h2 { margin: 10px 0 8px; font-size: 34px; letter-spacing: -1.2px; }
.login-card > p { margin: 0 0 28px; color: #64748b; line-height: 1.55; }
.login-form { display: grid; gap: 18px; }
.field-group { display: grid; gap: 7px; }
.field-group label { color: #27364e; font-size: 13px; font-weight: 750; }
.field-group input { width: 100%; height: 52px; padding: 0 15px; color: #17263e; border: 1px solid #cfdae7; border-radius: 9px; background: #fbfcfe; font: inherit; outline: none; transition: border-color .18s ease,box-shadow .18s ease; }
.field-group input:focus { border-color: #1476dc; box-shadow: 0 0 0 4px rgba(20,118,220,.11); }
.field-error { color: #b42318; font-size: 12px; }
.login-error { padding: 12px 14px; color: #9b2c22; border: 1px solid #fecaca; border-radius: 8px; background: #fff5f4; font-size: 13px; line-height: 1.45; }
.login-error ul { margin: 0; padding-left: 18px; }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #607087; font-size: 12px; }
.login-options a { color: #0965cb; font-weight: 700; }
.check-control { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.check-control input { accent-color: #0965cb; }
.login-submit { min-height: 53px; padding: 0 19px; display: flex; align-items: center; justify-content: space-between; color: #fff; border: 0; border-radius: 9px; background: linear-gradient(135deg,#0b70dc,#0756bc); box-shadow: 0 12px 25px rgba(9,101,203,.22); font: inherit; font-weight: 800; cursor: pointer; }
.login-submit:hover { background: linear-gradient(135deg,#0866ca,#064da9); }
.login-submit span { font-size: 21px; }
.login-signup { margin-top: 28px; padding: 20px; border: 1px solid #cfe2f7; border-radius: 13px; background: linear-gradient(145deg,#f5faff,#edf6ff); }
.login-signup > span { color: #0a67c7; font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.login-signup h3 { margin: 7px 0 6px; color: #132b4c; font-size: 19px; line-height: 1.25; }
.login-signup p { margin: 0 0 14px; color: #5d7089; font-size: 12px; line-height: 1.55; }
.login-signup a { min-height: 42px; padding: 0 14px; display: flex; align-items: center; justify-content: space-between; color: #075db9; border: 1px solid #b9d6f3; border-radius: 9px; background: #fff; font-size: 13px; font-weight: 850; text-decoration: none; }
.login-signup a:hover { color: #fff; border-color: #0969ce; background: #0969ce; }
.login-legacy { margin-top: 28px; padding-top: 22px; display: flex; justify-content: space-between; gap: 15px; border-top: 1px solid #e7edf4; color: #718096; font-size: 12px; }
.login-legacy a { color: #0965cb; font-weight: 800; }
.account-card > p { margin: 0 0 27px; color: #64748b; line-height: 1.6; }
.account-card .login-form + .account-security-note { margin-top: 22px; }
.account-security-note { margin: 22px 0 0; padding: 13px 14px; display: grid; grid-template-columns: 24px 1fr; gap: 9px; color: #5c6b80; border: 1px solid #dbe7f4; border-radius: 9px; background: #f5f9fe; }
.account-security-note > span { color: #0a6bcf; font-size: 15px; }.account-security-note p { margin: 0; font-size: 11px; line-height: 1.5; }
.account-back-link { margin-top: 22px; display: block; color: #0965cb; font-size: 12px; font-weight: 750; text-align: center; }
.account-status-icon { width: 58px; height: 58px; margin: -4px 0 22px; display: grid; place-items: center; color: #0965cb; border-radius: 16px; background: #e8f3ff; font-size: 25px; font-weight: 850; }.account-status-icon.is-success { color: #138152; background: #e3f7ed; }.account-status-icon.is-error { color: #b85424; background: #fff0e5; }.account-status-icon.is-mail { color: #0965cb; }
.account-primary-link { margin-top: 24px; text-decoration: none; }.account-primary-link:hover { color: #fff; }
.password-rules { margin: -4px 0 1px; display: flex; flex-wrap: wrap; gap: 6px; }.password-rules span { padding: 5px 8px; color: #587089; border-radius: 20px; background: #edf4fb; font-size: 9px; }.password-rules span::before { content: "✓"; margin-right: 4px; color: #168457; font-weight: 850; }

.admin-body { color: #15233a; background: #f4f7fb; }
.admin-shell { grid-template-columns: 232px minmax(0,1fr); }
.sidebar { padding: 21px 14px 18px; background: linear-gradient(180deg,#062f65,#062653); }
.sidebar-nav a,.sidebar-link { min-height: 45px; padding: 0 13px; display: flex; align-items: center; gap: 12px; border-radius: 8px; font-size: 13px; }
.sidebar-link > span { width: 20px; text-align: center; font-size: 17px; }
.sidebar-link small { margin-left: auto; color: #8ca6c7; font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.sidebar-link.is-coming { color: #9fb2cc; cursor: default; }
.sidebar-footer { margin-top: auto; padding: 10px 13px 2px; display: grid; gap: 8px; }
.sidebar-footer a { color: #fff; font-size: 12px; font-weight: 750; }
.sidebar-footer small { color: #8fa7c5; font-size: 9px; line-height: 1.4; }
.sidebar-footer-edit { min-height: 42px; color: #e8f1ff; border: 1px solid transparent; background: rgba(255,255,255,.04); }
.sidebar-footer-edit:hover,.sidebar-footer-edit:focus-visible { color: #fff; border-color: rgba(174,205,241,.28); outline: none; background: rgba(255,255,255,.09); }
.sidebar-footer-edit.active { color: #fff; border-color: rgba(143,197,255,.38); background: #176bd1; box-shadow: inset 3px 0 0 #8fc5ff; }
.sidebar-logout-form { margin: 0; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.12); }
.sidebar-logout-button { width: 100%; min-height: 44px; padding: 7px 9px; display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 9px; color: #e8f1ff; border: 1px solid rgba(174,205,241,.2); border-radius: 9px; background: rgba(255,255,255,.055); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; text-align: left; transition: background .15s ease,border-color .15s ease; }
.sidebar-logout-button:hover,.sidebar-logout-button:focus-visible { color: #fff; border-color: rgba(174,205,241,.42); outline: none; background: rgba(255,255,255,.1); }
.sidebar-logout-button__icon { width: 28px; height: 28px; display: grid; place-items: center; color: #c6ddf8; border-radius: 7px; background: rgba(143,197,255,.13); font-size: 16px; }
.sidebar-logout-button__copy { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-topbar { height: 76px; padding: 0 28px; }
.company-form { display: flex; min-width: 0; align-items: center; gap: 10px; }
.company-form label { color: #728097; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.company-selector-control { display: flex; min-width: 0; align-items: center; gap: 8px; }
.company-form select { width: clamp(290px,28vw,430px); max-width: 430px; height: 44px; padding: 0 38px 0 14px; color: #1c2a41; border: 1px solid #cfdbe8; border-radius: 9px; background: #fff; font: inherit; font-size: 14px; font-weight: 750; }
.company-form[aria-busy="true"] select,.company-form[aria-busy="true"] button { opacity: .58; pointer-events: none; }
.company-search-trigger { width: 44px; min-width: 44px; height: 44px; padding: 0 !important; display: grid; place-items: center; color: #0967ce !important; border-color: #c8d9eb !important; border-radius: 9px !important; }
.company-search-trigger:hover,.company-search-trigger:focus-visible { border-color: #75aae0 !important; background: #eef6ff !important; outline: none; }
.company-search-trigger svg,.company-search-field svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.company-search-dialog { width: min(620px,calc(100vw - 32px)); max-height: min(760px,calc(100vh - 36px)); padding: 0; color: #18314f; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 30px 90px rgba(7,29,55,.3); }
.company-search-dialog::backdrop { background: rgba(7,23,43,.5); backdrop-filter: blur(3px); }
.company-search-dialog__header { padding: 24px 24px 18px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e3eaf2; }
.company-search-dialog__header span,.company-search-dialog__header strong { display: block; }.company-search-dialog__header span { margin-bottom: 5px; color: #0967ce; font-size: 10px; font-weight: 900; letter-spacing: .09em; }.company-search-dialog__header strong { font-size: 21px; }.company-search-dialog__header p { margin: 5px 0 0; color: #6f7f93; font-size: 13px; }
.company-search-dialog__header button { width: 38px; height: 38px; flex: 0 0 38px; color: #607087; border: 1px solid #d9e3ed; border-radius: 9px; background: #fff; cursor: pointer; font-size: 24px; line-height: 1; }
.company-search-field { margin: 18px 24px 10px; padding: 0 14px; display: flex; align-items: center; gap: 10px; color: #68809a; border: 1px solid #cbd9e7; border-radius: 10px; background: #f9fbfd; }
.company-search-field:focus-within { color: #0967ce; border-color: #6ca9e6; box-shadow: 0 0 0 3px rgba(9,103,206,.1); }
.company-search-field input { width: 100%; height: 47px; min-width: 0; padding: 0; color: #172b47; border: 0; outline: 0; background: transparent; font: inherit; font-size: 15px; }
.company-search-results { max-height: min(430px,52vh); padding: 6px 24px 24px; display: grid; gap: 8px; overflow-y: auto; }
.company-search-result { width: 100%; min-height: 66px; padding: 10px 13px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; color: #1b314d; border: 1px solid #dce5ef; border-radius: 11px; background: #fff; cursor: pointer; text-align: left; }
.company-search-result[hidden] { display: none !important; }
.company-search-result:hover,.company-search-result:focus-visible { border-color: #80b4e7; outline: none; background: #f4f9ff; }.company-search-result.is-active { border-color: #9cc8ae; background: #f4fbf7; }
.company-search-result__initial { width: 42px; height: 42px; display: grid; place-items: center; color: #0967ce; border-radius: 10px; background: #e9f3ff; font-size: 16px; font-weight: 900; }.company-search-result__content { min-width: 0; }.company-search-result__content strong,.company-search-result__content small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.company-search-result__content strong { font-size: 14px; }.company-search-result__content small { margin-top: 4px; color: #78879a; font-size: 11px; }.company-search-result em { color: #0967ce; font-size: 11px; font-style: normal; font-weight: 850; }.company-search-result.is-active em { color: #18734b; }
.company-search-empty { margin: 8px 24px 24px; padding: 22px; color: #738398; border-radius: 10px; background: #f6f8fb; text-align: center; font-size: 13px; }
.company-empty { color: #7b889b; }
.topbar-actions { gap: 16px; }
.company-single-context { min-width:0; display:flex; align-items:center; gap:10px; }
.company-single-context__mark { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; color:#075fb7; border:1px solid #cfe0f1; border-radius:10px; background:#edf6ff; font-size:13px; font-weight:950; }
.company-single-context__copy { min-width:0; display:grid; gap:2px; }
.company-single-context__copy small { color:#728097; font-size:9px; font-weight:850; letter-spacing:.08em; line-height:1; text-transform:uppercase; }
.company-single-context__copy strong { max-width:min(34vw,430px); overflow:hidden; color:#1c2a41; font-size:14px; font-weight:850; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.today-chip { padding-right: 16px; color: #69778c; border-right: 1px solid #e1e7ef; font-size: 12px; text-transform: capitalize; }
.user-menu { min-width: 0; display: flex; align-items: center; gap: 9px; color: inherit; border-radius: 9px; text-decoration: none; }
.user-menu:hover,.user-menu:focus-visible { outline: none; color: #0758b8; }
.user-menu .avatar { width: 40px; height: 40px; display: grid; place-items: center; color: #0758b8; border-radius: 50%; background: #e3eefc; font-size: 12px; font-weight: 850; }
.user-menu > span:last-child { min-width: 0; max-width: min(300px,26vw); }
.user-menu strong,.user-menu small { display: block; line-height: 1.25; }.user-menu strong { overflow-wrap: anywhere; font-size: 12px; white-space: normal; }.user-menu small { margin-top: 2px; color: #8290a4; font-size: 9px; }
.topbar-admin-link { min-height: 34px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; color: #075fbe; border: 1px solid #bfd8f2; border-radius: 7px; background: #f4f9ff; font-size: 11px; font-weight: 850; text-decoration: none; }
.topbar-admin-link:hover,.topbar-admin-link:focus-visible { color: #fff; border-color: #0b6dd1; outline: none; background: #0b6dd1; }
.account-page--narrow { max-width: 900px; }
.companies-hub { color: #172b47; }
.companies-heading { margin-bottom: 20px; padding: 24px 26px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid #dfe7f0; border-radius: 14px; background: linear-gradient(120deg,#fff 0,#fff 65%,#eef6ff 100%); }
.companies-heading .eyebrow { color: #0b69ce; font-size: 11px; font-weight: 900; letter-spacing: .09em; }.companies-heading h1 { margin: 5px 0 4px; font-size: clamp(27px,2.2vw,36px); }.companies-heading p { margin: 0; color: #667890; font-size: 14px; }
.companies-count { padding: 8px 12px; color: #0758b8; border-radius: 999px; background: #e8f3ff; font-size: 13px; font-weight: 850; }
.company-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(430px,1fr)); gap: 18px; }
.company-card { padding: 22px; display: grid; gap: 18px; border: 1px solid #dce5ef; border-radius: 14px; background: #fff; box-shadow: 0 10px 30px rgba(27,54,87,.045); }.company-card.is-current { border-color: #8bbbe9; box-shadow: 0 12px 34px rgba(18,105,198,.1); }
.company-card-header { display: flex; align-items: center; gap: 14px; }.company-card-logo,.company-card-initial { width: 58px; height: 58px; flex: 0 0 58px; border: 1px solid #dce6f0; border-radius: 12px; background: #f7faff; object-fit: contain; }.company-card-initial { display: grid; place-items: center; color: #0758b8; background: #e8f3ff; font-size: 22px; font-weight: 900; }.company-card-header > div { min-width: 0; }.company-card-header span { color: #718096; font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.company-card-header h2 { margin: 3px 0; overflow: hidden; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }.company-card-header p { margin: 0; color: #6a7b90; font-size: 12px; }.current-company-badge { margin-left: auto; padding: 6px 9px; color: #17613f; border-radius: 999px; background: #e6f7ef; font-size: 10px; text-transform: uppercase; }
.company-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }.company-metrics div { padding: 12px; border-radius: 10px; background: #f5f8fc; }.company-metrics strong,.company-metrics span { display: block; }.company-metrics strong { font-size: 22px; }.company-metrics span { margin-top: 3px; color: #718096; font-size: 10px; line-height: 1.25; }
.company-attention { padding: 11px 13px; display: flex; justify-content: space-between; gap: 12px; color: #7c4a08; border: 1px solid #f0d39d; border-radius: 9px; background: #fff8e9; font-size: 12px; }.company-quick-links { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 700px) { .company-card-grid { grid-template-columns: 1fr; }.company-metrics { grid-template-columns: repeat(2,1fr); }.companies-heading { align-items: flex-start; flex-direction: column; } }
.apps-page { min-height: 70vh; padding: 72px max(24px,calc((100vw - 1180px)/2)) 80px; background: radial-gradient(circle at 82% 18%,#d9ecff 0,transparent 30%),#f7faff; }
.apps-hero { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr); align-items: center; gap: 70px; }.apps-hero-copy h1 { max-width: 720px; margin: 12px 0 18px; color: #102a47; font-size: clamp(42px,5vw,70px); line-height: 1.02; }.apps-hero-copy > p:not(.eyebrow) { max-width: 680px; color: #60748d; font-size: 18px; line-height: 1.65; }
.apps-phone { width: 260px; min-height: 500px; justify-self: center; padding: 12px; border: 7px solid #112a46; border-radius: 38px; background: #fff; box-shadow: 0 35px 80px rgba(13,49,84,.22); }.apps-phone-screen { min-height: 476px; padding: 72px 24px 28px; display: flex; align-items: center; flex-direction: column; border-radius: 25px; background: linear-gradient(160deg,#eef7ff,#fff 55%); }.apps-phone-screen img { width: 72px; height: 72px; }.apps-phone-screen span { margin-top: 12px; color: #0b64c0; font-weight: 900; }.apps-phone-screen strong { margin-top: 4px; color: #51677f; font-size: 12px; }.apps-clock { margin-top: 54px; color: #102a47; font-size: 42px; font-weight: 900; }.apps-punch-button { margin-top: 42px; padding: 15px 28px; color: #fff; border-radius: 999px; background: #076bce; font-size: 14px; font-weight: 850; }
.apps-transition { margin-top: 64px; display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.apps-transition > div { padding: 22px; border: 1px solid #dbe7f2; border-radius: 14px; background: #fff; }.apps-transition span { color: #0b69ce; font-size: 11px; font-weight: 900; }.apps-transition strong { margin: 7px 0; display: block; color: #173453; font-size: 18px; }.apps-transition p { margin: 0; color: #667b93; font-size: 14px; line-height: 1.5; }
@media (max-width: 760px) { .apps-hero { grid-template-columns: 1fr; }.apps-phone { display: none; }.apps-transition { grid-template-columns: 1fr; }.apps-page { padding-top: 48px; } }
.database-maintenance-page .editor-validation { margin: 18px 0 0; }.database-maintenance-page code { color: #31516f; font-size: 12px; }.database-safety-note { margin-top: 16px; padding: 16px 18px; color: #684a19; border: 1px solid #ecd5a9; border-radius: 11px; background: #fff9ed; }.database-safety-note strong { display: block; }.database-safety-note p { margin: 5px 0 0; font-size: 13px; }
.logout-form button { min-height: 34px; padding: 0 10px; color: #607087; border: 1px solid #dce4ee; border-radius: 7px; background: #fff; font-size: 11px; font-weight: 750; cursor: pointer; }
.admin-content { max-width: 1600px; margin: 0 auto; padding: 30px 30px 48px; }
.dashboard-heading--live { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.dashboard-eyebrow { color: #0a6ed8; }
.dashboard-heading--live h1 { margin-top: 6px; font-size: 34px; }
.dashboard-heading--live p { text-transform: capitalize; }
.live-status { padding: 8px 12px; display: flex; align-items: center; gap: 7px; color: #347054; border: 1px solid #cce9d9; border-radius: 30px; background: #f2fbf6; font-size: 10px; font-weight: 750; }
.live-status i { width: 7px; height: 7px; border-radius: 50%; background: #20a866; box-shadow: 0 0 0 4px rgba(32,168,102,.11); }
.kpi-grid--live { margin: 24px 0 18px; }
.kpi-grid--live .kpi-card { min-height: 122px; border-radius: 12px; box-shadow: 0 8px 24px rgba(23,48,80,.035); }
.kpi-grid--live .kpi-icon--blue { color: #116ed3; background: #edf5ff; }.kpi-grid--live .kpi-icon--violet { color: #7656c7; border-color: #e5dcfa; background: #f6f2ff; }
.kpi-grid--live .kpi-card em { color: #718096; }
.dashboard-grid--overview { grid-template-columns: minmax(0,1.65fr) minmax(300px,.72fr); }
.dashboard-grid--detail { margin-top: 18px; grid-template-columns: minmax(0,1.5fr) minmax(320px,.65fr); }
.panel { border-radius: 12px; box-shadow: 0 8px 28px rgba(22,46,78,.035); }
.panel header p { margin: 4px 0 0; color: #8290a4; font-size: 10px; }
.hours-panel--live { padding: 22px 22px 16px; }
.hours-panel--live > header { align-items: flex-start; }
.chart-legend { display: flex; gap: 13px; color: #637188; font-size: 9px; }.chart-legend span::before { content: ""; width: 7px; height: 7px; margin-right: 5px; display: inline-block; border-radius: 2px; }.chart-legend .planned::before { background: #c7d2df; }.chart-legend .worked::before { background: #1675dd; }.chart-legend .incidence::before { background: #f39a3f; }
.hours-summary { margin: 18px 0 0; padding: 13px 15px; display: grid; grid-template-columns: repeat(4,1fr); border-radius: 9px; background: #f7f9fc; }
.hours-summary > div { padding: 0 14px; border-left: 1px solid #e2e8f0; }.hours-summary > div:first-child { padding-left: 0; border-left: 0; }.hours-summary small,.hours-summary strong { display: block; }.hours-summary small { color: #7a879a; font-size: 9px; }.hours-summary strong { margin-top: 4px; font-size: 15px; }.hours-summary .is-negative strong { color: #c45a23; }.hours-summary .is-positive strong { color: #168457; }
.multi-bar-chart { height: 210px; margin-top: 18px; padding: 13px 7px 0; display: flex; align-items: stretch; gap: 10px; border-bottom: 1px solid #dce4ed; background: repeating-linear-gradient(to bottom,transparent 0 45px,#edf1f6 46px); }
.chart-day { min-width: 0; flex: 1; display: grid; grid-template-rows: 1fr auto auto; align-items: end; justify-items: center; gap: 3px; }.chart-day strong { color: #58667b; font-size: 9px; text-transform: capitalize; }.chart-day small { margin-bottom: -16px; color: #9aa5b5; font-size: 7px; }
.bar-cluster { width: 100%; height: 100%; display: flex; align-items: end; justify-content: center; gap: 3px; }.bar-cluster i { width: min(13px,25%); min-height: 2px; border-radius: 3px 3px 0 0; }.bar-cluster .planned { background: #c7d2df; }.bar-cluster .worked { background: linear-gradient(#2588ed,#0d60c5); }.bar-cluster .incidence { background: #f39a3f; }
.status-panel--live { padding: 22px; }.status-panel--live .status-content { min-height: 270px; flex-direction: column; gap: 19px; }.dashboard-donut--live { width: 148px; height: 148px; flex-basis: 148px; background: conic-gradient(#21a66c 0 calc(var(--working)*1%),#1675dd calc(var(--working)*1%) calc(var(--completed)*1%),#d6dee8 calc(var(--completed)*1%) 100%); }.dashboard-donut--live::after { inset: 18%; }.dashboard-donut--live span { position: absolute; inset: 25%; z-index: 1; display: grid; place-content: center; text-align: center; }.dashboard-donut--live strong,.dashboard-donut--live small { display: block; }.dashboard-donut--live strong { font-size: 25px; }.dashboard-donut--live small { color: #7b8798; font-size: 8px; }
.status-panel--live .status-content ul { width: 100%; }.status-panel--live .status-content li { grid-template-columns: 10px 1fr auto; padding: 6px 2px; font-size: 10px; }.blue { background: #1675dd; }
.punches-panel--live,.attention-panel--live { padding: 22px; }.record-count { color: #738197; font-size: 9px; }.punches-panel--live table { font-size: 10px; }.punches-panel--live td strong { font-weight: 750; }.badge--live { color: #0963c2; background: #e3f0ff; }.panel-empty { margin-top: 16px; padding: 32px; color: #7b899d; border: 1px dashed #d6e0eb; border-radius: 9px; background: #fafbfd; text-align: center; font-size: 11px; }
.attention-panel--live { gap: 9px; }.attention-panel--live > header { margin-bottom: 5px; }.attention-metric { padding: 13px; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 10px; border: 1px solid #e3e9f1; border-radius: 9px; }.attention-metric > span { width: 36px; height: 36px; display: grid; place-items: center; color: #166dc9; border-radius: 9px; background: #edf5ff; font-weight: 850; }.attention-metric.is-alert > span { color: #b85b1e; background: #fff2e6; }.attention-metric strong,.attention-metric small { display: block; }.attention-metric strong { font-size: 11px; }.attention-metric small { margin-top: 3px; color: #7d899a; font-size: 9px; line-height: 1.35; }
.open-punch-list { margin: 2px 0 0; padding: 0; list-style: none; }.open-punch-list li { padding: 7px 2px; display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid #edf1f5; font-size: 9px; }.open-punch-list strong { color: #b85b1e; }
.empty-dashboard { max-width: 650px; margin: 13vh auto; padding: 55px; border: 1px solid #e0e7f0; border-radius: 16px; background: #fff; box-shadow: 0 20px 55px rgba(20,45,77,.07); text-align: center; }.empty-dashboard > span { width: 58px; height: 58px; margin: 0 auto 20px; display: grid; place-items: center; color: #b85b1e; border-radius: 50%; background: #fff0e3; font-size: 24px; font-weight: 850; }.empty-dashboard h1 { margin: 0; font-size: 28px; }.empty-dashboard p { margin: 14px 0 25px; color: #6c7a8f; line-height: 1.6; }.empty-dashboard a { padding: 11px 17px; display: inline-flex; color: #fff; border-radius: 8px; background: #0967ce; font-weight: 750; }

@media (max-width: 1100px) {
    .login-shell { grid-template-columns: .85fr 1.15fr; }.login-story { padding-inline: 42px; }.login-story h1 { font-size: 46px; }
    .dashboard-grid--overview,.dashboard-grid--detail { grid-template-columns: 1fr; }.status-panel--live .status-content { min-height: auto; flex-direction: row; }.status-panel--live .status-content ul { width: auto; flex: 1; }
}
@media (max-width: 820px) {
    .login-shell { display: block; }.login-story { min-height: auto; padding: 28px 28px 40px; }.login-story > div { padding: 55px 0 25px; }.login-story h1 { font-size: 40px; }.login-story > small { display: none; }.login-card-wrap { padding: 35px 22px; }
    .sidebar-link:not(.active) small { display: none; }.sidebar-footer { padding-inline: 4px; }.sidebar-logout-button { min-height: 42px; padding: 6px; display: flex; justify-content: center; }.sidebar-logout-button__copy { display: none; }.sidebar-logout-button__icon { font-size: 14px; }
    .today-chip,.user-menu > span:last-child { display: none; }.company-form label { display: none; }.company-form select { width: min(34vw,260px); max-width: 260px; }
}
@media (max-width: 560px) {
    .login-story p,.login-story ul { font-size: 14px; }.login-card { padding: 32px 24px; }.login-options,.login-legacy { align-items: flex-start; flex-direction: column; }
    .admin-topbar { padding-inline: 13px; }.company-form select { width: min(42vw,180px); max-width: 180px; }.company-search-trigger { width: 40px; min-width: 40px; }.topbar-actions { gap: 7px; }.logout-form button { padding-inline: 7px; }.admin-content { padding: 22px 14px 36px; }
    .dashboard-heading--live { align-items: flex-start; flex-direction: column; gap: 13px; }.live-status { align-self: flex-start; }.hours-summary { grid-template-columns: 1fr 1fr; gap: 13px; }.hours-summary > div:nth-child(3) { padding-left: 0; border-left: 0; }.chart-legend { display: none; }.multi-bar-chart { gap: 3px; }.chart-day small { display: none; }
    .status-panel--live .status-content { flex-direction: column; }.status-panel--live .status-content ul { width: 100%; }.punches-panel--live,.attention-panel--live,.hours-panel--live,.status-panel--live { padding: 16px; }
}

/* Plantilla: buscador flexible, lista ordenada y paginación integrada. */
.workforce-toolbar .worker-search-form { min-width: 220px; flex: 1 1 auto; }
.workforce-toolbar .worker-search-form > div { width: 100%; }
.workforce-toolbar .worker-search-form input { width: 100%; min-width: 0; flex: 1 1 auto; }
.workforce-toolbar__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.workforce-toolbar__actions .worker-view-toggle { margin-left: 0; }
.worker-list-head { padding: 10px 16px; grid-column: 1/-1; display: grid; grid-template-columns: minmax(240px,1.3fr) 140px minmax(130px,.7fr) minmax(220px,1.1fr) auto; align-items: center; gap: 16px; color: #8390a1; border-bottom: 1px solid #dfe7ef; background: #f8fafc; font-size: 10px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.worker-list-head[hidden] { display: none; }
.worker-list-head span:last-child { min-width: 238px; text-align: right; }
.worker-grid.is-list { gap: 0; overflow: hidden; border: 1px solid #dfe7ef; border-radius: 11px; background: #fff; }
.worker-grid.is-list .worker-card { padding: 13px 16px; grid-template-columns: minmax(240px,1.3fr) 140px minmax(130px,.7fr) minmax(220px,1.1fr) auto; gap: 16px; border: 0; border-bottom: 1px solid #e7edf3; border-radius: 0; box-shadow: none; }
.worker-grid.is-list .worker-card:last-child { border-bottom: 0; }
.worker-grid.is-list .worker-card:hover { background: #f8fbfe; box-shadow: none; transform: none; }
.worker-grid.is-list .worker-card.is-working { border-top: 0; box-shadow: inset 3px 0 #26a873; }
.worker-grid.is-list .worker-card.has-incidence { border-top: 0; box-shadow: inset 3px 0 #f28a42; }
.worker-grid.is-list .worker-card__identity { grid-column: 1; }
.worker-grid.is-list .worker-state { grid-column: 2; justify-self: start; }
.worker-grid.is-list .worker-incidence { grid-column: 3; justify-self: start; }
.worker-grid.is-list .worker-last { min-width: 0; grid-column: 4; }
.worker-grid.is-list .worker-actions { min-width: 238px; grid-column: 5; justify-content: flex-end; }
.worker-grid.is-list .worker-actions a { min-width: 70px; flex: 0 0 auto; padding: 7px 10px; }
.workforce-panel.is-worker-list .workforce-footer { margin-top: 10px; padding: 11px 14px; border: 1px solid #e2e9f1; border-radius: 9px; background: #f8fafc; }

@media (max-width: 1350px) {
    .worker-list-head,.worker-grid.is-list .worker-card { grid-template-columns: minmax(220px,1fr) 130px minmax(190px,1fr) auto; }
    .worker-list-head span:nth-child(3) { display: none; }
    .worker-grid.is-list .worker-last { grid-column: 3; }
    .worker-grid.is-list .worker-actions { min-width: 220px; grid-column: 4; }
}
@media (max-width: 900px) {
    .workforce-toolbar .worker-search-form { width: 100%; min-width: 0; }
    .workforce-toolbar__actions { width: 100%; justify-content: space-between; }
    .worker-list-head { display: none; }
    .worker-grid.is-list { gap: 10px; overflow: visible; border: 0; border-radius: 0; background: transparent; }
    .worker-grid.is-list .worker-card { padding: 14px; grid-template-columns: 1fr; gap: 9px; border: 1px solid #e1e8f0; border-radius: 10px; }
    .worker-grid.is-list .worker-card__identity,.worker-grid.is-list .worker-state,.worker-grid.is-list .worker-incidence,.worker-grid.is-list .worker-last,.worker-grid.is-list .worker-actions { grid-column: 1; }
    .worker-grid.is-list .worker-incidence:not(.is-empty) { display: inline-flex; }
    .worker-grid.is-list .worker-last { padding-top: 9px; border-top: 1px solid #edf1f5; }
    .worker-grid.is-list .worker-actions { width: 100%; min-width: 0; padding-top: 8px; border-top: 1px solid #edf1f5; }
    .worker-grid.is-list .worker-actions a { min-width: 0; flex: 1; }
}
@media (max-width: 560px) {
    .workforce-toolbar__actions { align-items: stretch; flex-direction: column; }
    .workforce-toolbar__actions .worker-view-toggle { width: 100%; }
    .workforce-toolbar__actions .worker-view-toggle button { flex: 1; }
    .workforce-toolbar__actions .working-filter { align-self: stretch; justify-content: center; }
}
.dashboard-widget-grid [data-widget-width="3"].workforce-panel .worker-list-head,.dashboard-widget-grid [data-widget-width="3"].workforce-panel .worker-grid.is-list .worker-card { grid-template-columns: minmax(220px,1fr) 130px minmax(190px,1fr) auto; }
.dashboard-widget-grid [data-widget-width="3"].workforce-panel .worker-list-head span:nth-child(3),.dashboard-widget-grid [data-widget-width="3"].workforce-panel .worker-grid.is-list .worker-incidence { display: none; }
.dashboard-widget-grid [data-widget-width="3"].workforce-panel .worker-grid.is-list .worker-last { grid-column: 3; }
.dashboard-widget-grid [data-widget-width="3"].workforce-panel .worker-grid.is-list .worker-actions { min-width: 220px; grid-column: 4; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-list-head,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-list-head { display: none; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list { gap: 10px; overflow: visible; border: 0; background: transparent; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-card,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-card { grid-template-columns: 1fr; border: 1px solid #e1e8f0; border-radius: 10px; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-card__identity,.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-state,.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-incidence,.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-last,.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-actions,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-card__identity,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-state,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-incidence,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-last,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-actions { grid-column: 1; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-incidence:not(.is-empty),.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-incidence:not(.is-empty) { display: inline-flex; }
.dashboard-widget-grid [data-widget-width="1"].workforce-panel .worker-grid.is-list .worker-actions,.dashboard-widget-grid [data-widget-width="2"].workforce-panel .worker-grid.is-list .worker-actions { width: 100%; min-width: 0; }

/* Tarjetas de planificación y control operativo */
.dashboard-intelligence-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; align-items: start; }
.dashboard-intelligence-grid > .panel-v2 { height: 100%; }
.upcoming-absences-card,.punch-anomalies-card,.coverage-risk-card { grid-column: span 2; }
.absence-trend-card { grid-column: 1/-1; }
.intelligence-empty { min-height: 150px; display: grid; place-content: center; justify-items: center; gap: 6px; text-align: center; color: #718198; border: 1px dashed #d9e3ed; border-radius: 12px; background: #f9fbfd; }
.intelligence-empty > span { width: 34px; height: 34px; display: grid; place-items: center; color: #187052; border-radius: 50%; background: #e4f5ed; font-size: 11px; font-weight: 900; }
.intelligence-empty strong { color: #314861; font-size: 14px; }
.intelligence-empty small { max-width: 310px; font-size: 12px; line-height: 1.45; }
.intelligence-list,.expiry-list,.closure-list { margin: 0; padding: 0; list-style: none; }
.intelligence-list li { min-height: 61px; padding: 10px 2px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 11px; border-top: 1px solid #edf2f6; }
.intelligence-list li:first-child { border-top: 0; }
.intelligence-list li > div { min-width: 0; }
.intelligence-list strong,.intelligence-list small,.intelligence-list em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.intelligence-list strong { color: #283e59; font-size: 13px; }
.intelligence-list small { margin-top: 3px; color: #718198; font-size: 12px; }
.intelligence-list small b { color: #285981; }
.intelligence-list em { margin-top: 3px; color: #95a0ae; font-size: 11px; font-style: normal; }
.intelligence-list li > a,.expiry-list li > a,.closure-list li > a { width: 28px; height: 28px; display: grid; place-items: center; color: #176ac5; border-radius: 8px; background: #edf6ff; font-size: 18px; font-weight: 800; text-decoration: none; }
.intelligence-badge { width: 39px; height: 32px; display: grid; place-items: center; border-radius: 9px; font-size: 9px; font-weight: 900; letter-spacing: .04em; }
.intelligence-badge.is-vacation { color: #176b52; background: #e4f5ed; }
.intelligence-badge.is-incidence { color: #ad5420; background: #fff0e5; }
.quality-dot { width: 10px; height: 38px; border-radius: 7px; background: #6ea6df; }
.punch-quality-list li.is-critical .quality-dot { background: #d95c58; }
.punch-quality-list li.is-warning .quality-dot { background: #e7a23a; }
.punch-quality-list li.is-info .quality-dot { background: #6ea6df; }

.expiry-list li { min-height: 62px; padding: 9px 0; display: grid; grid-template-columns: 43px minmax(0,1fr) auto; align-items: center; gap: 10px; border-top: 1px solid #edf2f6; }
.expiry-list li:first-child { border-top: 0; }
.expiry-list time { height: 44px; display: grid; place-content: center; text-align: center; color: #255176; border-radius: 9px; background: #edf5fc; text-transform: uppercase; }
.expiry-list time b,.expiry-list time span { display: block; line-height: 1; }
.expiry-list time b { font-size: 17px; }.expiry-list time span { margin-top: 3px; font-size: 9px; font-weight: 800; }
.expiry-list li > div { min-width: 0; }
.expiry-list strong,.expiry-list small,.expiry-list em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.expiry-list strong { color: #2c425d; font-size: 13px; }.expiry-list small { margin-top: 3px; color: #8290a2; font-size: 11px; }.expiry-list em { margin-top: 4px; color: #b55d24; font-size: 11px; font-style: normal; font-weight: 800; }

.coverage-risk-list { display: grid; gap: 7px; }
.coverage-risk-list article { padding: 9px 11px; display: grid; grid-template-columns: 43px minmax(0,1fr) 45px; align-items: center; gap: 11px; border: 1px solid #e3eaf1; border-radius: 10px; background: #fbfcfe; }
.coverage-risk-list time { text-align: center; color: #345571; text-transform: uppercase; }.coverage-risk-list time b,.coverage-risk-list time span { display: block; }.coverage-risk-list time b { font-size: 9px; }.coverage-risk-list time span { font-size: 17px; font-weight: 850; }
.coverage-risk-list article > div { min-width: 0; }.coverage-risk-list article > div > strong { display: block; color: #2c425c; font-size: 12px; }.coverage-risk-list article > div > small { display: block; margin-top: 4px; color: #7d8b9e; font-size: 11px; }.coverage-risk-list article > div > em { display: block; margin-top: 3px; overflow: hidden; color: #8a5a1f; font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.coverage-risk-list article > b { color: #197153; font-size: 13px; text-align: right; }.coverage-risk-list article.is-medium > b { color: #b37722; }.coverage-risk-list article.is-high > b { color: #bd4b45; }.coverage-risk-list article.is-neutral > b { color: #728196; }
.risk-track { height: 5px; margin-top: 6px; display: block; overflow: hidden; border-radius: 5px; background: #e4eaf0; }.risk-track i { height: 100%; display: block; border-radius: inherit; background: #28a270; }.is-medium .risk-track i { background: #e1a23e; }.is-high .risk-track i { background: #d95c58; }.is-neutral .risk-track i { background: #8da1b7; }

.closure-list { display: grid; gap: 8px; }
.closure-list li { padding: 11px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; border: 1px solid #e3eaf1; border-radius: 10px; }
.closure-list li > span { width: 36px; height: 36px; display: grid; place-items: center; color: #b55b25; border-radius: 9px; background: #fff0e4; font-size: 15px; font-weight: 900; }
.closure-list li > div { min-width: 0; }.closure-list strong,.closure-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.closure-list strong { color: #2c425d; font-size: 12px; }.closure-list small { margin-top: 3px; color: #8090a2; font-size: 11px; }

.absence-chart-legend { display: flex; align-items: center; gap: 15px; color: #6f7f92; font-size: 12px; font-weight: 750; }
.absence-chart-legend span::before { content: ""; width: 9px; height: 9px; margin-right: 6px; display: inline-block; border-radius: 3px; vertical-align: -1px; }.absence-chart-legend .vacation::before { background: #1d9c6a; }.absence-chart-legend .other::before { background: #e69a37; }
.absence-trend-chart { height: 250px; padding: 18px 18px 0; display: grid; grid-template-columns: repeat(6,minmax(42px,1fr)); align-items: end; gap: clamp(12px,4vw,52px); border-left: 1px solid #dfe7ef; border-bottom: 1px solid #dfe7ef; background: repeating-linear-gradient(to top,transparent 0,transparent 49px,#eef2f6 50px); }
.absence-trend-column { height: 220px; display: grid; grid-template-rows: 22px 1fr 26px; justify-items: center; align-items: end; }.absence-trend-column > strong { color: #40546d; font-size: 12px; }.absence-trend-column > small { align-self: center; color: #62748a; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.absence-bars { width: min(54px,80%); height: 170px; display: flex; align-items: flex-end; justify-content: center; }.absence-bars i { width: 50%; min-height: 0; display: block; border-radius: 6px 6px 1px 1px; }.absence-bars i.vacation { background: linear-gradient(180deg,#38b982,#1c9364); }.absence-bars i.other { background: linear-gradient(180deg,#f2b55a,#df8c27); }
.absence-trend-summary { margin-top: 16px; display: flex; justify-content: center; gap: 28px; color: #728197; font-size: 12px; }.absence-trend-summary b { color: #2c425c; }

.dashboard-widget-grid [data-widget-width="1"] .intelligence-list li,.dashboard-widget-grid [data-widget-width="1"] .expiry-list li { grid-template-columns: auto minmax(0,1fr); }.dashboard-widget-grid [data-widget-width="1"] .intelligence-list li > a,.dashboard-widget-grid [data-widget-width="1"] .expiry-list li > a { display: none; }
.dashboard-widget-grid [data-widget-width="1"] .coverage-risk-list article { grid-template-columns: 38px minmax(0,1fr); }.dashboard-widget-grid [data-widget-width="1"] .coverage-risk-list article > b { grid-column: 2; text-align: left; }
.dashboard-widget-grid [data-widget-width="1"].absence-trend-card .panel-v2__header,.dashboard-widget-grid [data-widget-width="2"].absence-trend-card .panel-v2__header { flex-direction: column; }
.dashboard-widget-grid [data-widget-width="1"] .absence-trend-chart,.dashboard-widget-grid [data-widget-width="2"] .absence-trend-chart { gap: 7px; padding-inline: 7px; }.dashboard-widget-grid [data-widget-width="1"] .absence-bars,.dashboard-widget-grid [data-widget-width="2"] .absence-bars { width: 80%; }.dashboard-widget-grid [data-widget-width="1"] .absence-trend-summary { align-items: flex-start; flex-direction: column; gap: 5px; }
@media (max-width: 900px) { .dashboard-intelligence-grid { grid-template-columns: 1fr; }.dashboard-intelligence-grid > .panel-v2 { grid-column: auto; }.absence-chart-legend { flex-wrap: wrap; }.absence-trend-chart { gap: 10px; padding-inline: 8px; }.absence-trend-summary { align-items: flex-start; flex-direction: column; gap: 5px; } }
.admin-content.dashboard-organized { container-type:inline-size; container-name:company-dashboard; }
@container company-dashboard (max-width:1030px) { .dashboard-widget-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.dashboard-widget-grid > [data-dashboard-widget] { grid-column:span 2 !important; }.dashboard-widget-grid > [data-widget-width="1"] { grid-column:span 1 !important; }.dashboard-widget-grid > [data-dashboard-widget="pending-closure"] { grid-column:span 2 !important; } }
@container company-dashboard (max-width:680px) { .dashboard-widget-grid { grid-template-columns:minmax(0,1fr); }.dashboard-widget-grid > [data-dashboard-widget] { grid-column:span 1 !important; }.dashboard-widget-grid .calendar-card,.dashboard-widget-grid .punches-card { overflow-x:auto; }.dashboard-widget-grid .calendar-weekdays,.dashboard-widget-grid .calendar-grid { min-width:700px; }.dashboard-widget-grid .operations-table { min-width:630px; } }

/* Barra lateral ajustable y plegable. */
.admin-shell { --sidebar-width: 288px; grid-template-columns: var(--sidebar-width) minmax(0,1fr); }
.admin-shell,.sidebar { transition: grid-template-columns .2s ease,padding .2s ease; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar { padding: 21px 14px 18px; }
.admin-shell:not(.is-sidebar-collapsed) .brand--inverse { width: auto; height: auto; margin: 0 6px 12px; padding: 6px 10px; }
.admin-shell:not(.is-sidebar-collapsed) .brand--inverse .brand-logo--full { width: min(206px,100%); display: block; }
.admin-shell:not(.is-sidebar-collapsed) .brand--inverse .brand-symbol { display: none; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-context { padding: 12px; display: grid; grid-template-columns: 40px minmax(0,1fr); }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-context-copy,.admin-shell:not(.is-sidebar-collapsed) .sidebar-context-back { display: block; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-context-copy strong { display: -webkit-box; overflow: hidden; white-space: normal; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-context-copy small { margin-top: 4px; }
.sidebar-company-return { min-height: 58px; margin: 0 2px 15px; padding: 9px 11px; display: flex; align-items: center; gap: 10px; color: #0a4f9e; border: 1px solid #b9d7f3; border-radius: 10px; background: #edf6ff; box-shadow: 0 6px 16px rgba(1,24,52,.12); }
.sidebar-company-return:hover,.sidebar-company-return:focus-visible { color: #073d7d; border-color: #82b9eb; outline: none; background: #fff; }
.sidebar-company-return > span:first-child { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; color: #fff; border-radius: 9px; background: #0a67c7; font-size: 19px; font-weight: 900; }
.sidebar-company-return > span:last-child { min-width: 0; }.sidebar-company-return small,.sidebar-company-return strong { display: block; }.sidebar-company-return small { color: #4b78a7; font-size: 8px; font-weight: 900; letter-spacing: .08em; }.sidebar-company-return strong { margin-top: 3px; color: #163d67; font-size: 11px; line-height: 1.25; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-nav a,.admin-shell:not(.is-sidebar-collapsed) .sidebar-link { justify-content: flex-start; padding: 0 13px; font-size: 14px; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-footer { padding-inline: 13px; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-footer a { font-size: 12px; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-footer a::before { content: none; }
.admin-shell:not(.is-sidebar-collapsed) .sidebar-footer small { display: block; font-size: 9px; }
.sidebar-resizer { width: 9px; position: absolute; z-index: 40; top: 0; right: 0; bottom: 0; cursor: col-resize; touch-action: none; }
.sidebar-resizer::before { content: ""; width: 3px; height: 54px; position: absolute; top: calc(50% - 27px); right: 2px; border-radius: 4px; background: rgba(153,190,229,.45); }
.sidebar-resizer::after { content: ""; width: 2px; height: 72px; position: absolute; top: 50%; right: 0; border-radius: 4px; background: transparent; transform: translateY(-50%); transition: background .15s ease,box-shadow .15s ease; }
.sidebar-resizer:hover::after,.sidebar-resizer:focus-visible::after,.is-sidebar-resizing .sidebar-resizer::after { background: #61adf3; box-shadow: 0 0 0 2px rgba(97,173,243,.16); }
.sidebar-resizer:focus-visible { outline: none; }
.admin-body.is-sidebar-resizing,.admin-body.is-sidebar-resizing * { cursor: col-resize !important; user-select: none !important; transition: none !important; }
.admin-shell.is-sidebar-collapsed { --sidebar-width: 82px !important; }
.admin-shell.is-sidebar-collapsed .admin-content { width: 100%; max-width: none; margin-inline: 0; }
.admin-shell.is-sidebar-collapsed .sidebar { z-index: 120; padding-inline: 10px; }
.admin-shell.is-sidebar-collapsed .sidebar-resizer { width: 6px; }
.admin-shell.is-sidebar-collapsed .sidebar-resizer::before { right: 1px; }
.admin-shell.is-sidebar-collapsed .sidebar-resizer::after { right: 0; }
.admin-shell.is-sidebar-collapsed .brand--inverse { width: 47px; height: 47px; margin: 0 0 10px; padding: 3px; flex: 0 0 47px; box-sizing: border-box; border-radius: 12px; }
.admin-shell.is-sidebar-collapsed .brand--inverse .brand-logo--full { display: none; }
.admin-shell.is-sidebar-collapsed .brand--inverse .brand-symbol { width: 41px; height: 41px; display: block; object-fit: cover; border-radius: 50%; }
.admin-shell.is-sidebar-collapsed .sidebar-context { margin: 0 0 15px; padding: 4px; display: block; box-sizing: border-box; }
.admin-shell.is-sidebar-collapsed .sidebar-context-copy,.admin-shell.is-sidebar-collapsed .sidebar-context-back { display: none; }
.admin-shell.is-sidebar-collapsed .sidebar-context-avatar { width: 37px; height: 37px; margin: auto; }
.sidebar-context-avatar[hidden] { display: none !important; }
.admin-shell.is-sidebar-collapsed .sidebar-company-return { width: 48px; min-height: 48px; margin: 0 auto 14px; padding: 0; justify-content: center; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.1); box-shadow: none; }
.admin-shell.is-sidebar-collapsed .sidebar-company-return > span:first-child { width: 34px; height: 34px; }
.admin-shell.is-sidebar-collapsed .sidebar-company-return > span:last-child { display: none; }
.admin-shell.is-sidebar-collapsed .sidebar-nav a,.admin-shell.is-sidebar-collapsed .sidebar-link { width: 48px; position: relative; justify-content: center; gap: 0; margin-inline: auto; padding: 0; border-radius: 11px; font-size: 0; }
.admin-shell.is-sidebar-collapsed .sidebar-link > span { width: 24px; font-size: 19px; }
.admin-shell.is-sidebar-collapsed .sidebar-nav .nav-badge { min-width: 18px; height: 18px; padding: 0 4px; position: absolute; top: 3px; right: 2px; font-size: 8px; }
.sidebar-nav-heading { margin: 12px 13px 3px; padding-top: 10px; display: block; color: #8eabd0; border-top: 1px solid rgba(255,255,255,.12); font-size: 9px; font-weight: 900; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-nav > .sidebar-nav-heading:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-heading { height: 1px; margin: 9px 7px; padding: 0; overflow: hidden; border-top: 1px solid rgba(255,255,255,.14); font-size: 0; }
.sidebar-nav-group { margin: 2px 0; }
.sidebar-nav-group-toggle { width: 100%; min-height: 44px; padding: 0 13px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto auto; align-items: center; gap: 8px; color: #e8f1ff; border: 0; border-radius: 9px; background: transparent; font: inherit; font-size: 12px; font-weight: 800; text-align: left; cursor: pointer; transition: color .15s ease,background .15s ease; }
.sidebar-nav-group-toggle:hover { color: #fff; background: rgba(255,255,255,.09); }
.sidebar-nav-group-toggle:focus-visible { outline: 2px solid #8fc5ff; outline-offset: -2px; }
.sidebar-nav-group.is-current > .sidebar-nav-group-toggle { color: #fff; background: rgba(29,111,211,.34); }
.sidebar-nav-group-icon { width: 24px; height: 24px; display: grid; place-items: center; color: #bcd7f7; font-size: 16px; font-weight: 700; }
.sidebar-nav-group-toggle > span:nth-child(2) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-nav-group-toggle .nav-badge { position: static; }
.sidebar-nav-group-chevron { width: 18px; height: 18px; display: grid; place-items: center; color: #9ebddd; font-size: 21px; line-height: 1; transition: transform .18s ease; }
.sidebar-nav-group.is-expanded > .sidebar-nav-group-toggle .sidebar-nav-group-chevron { transform: rotate(90deg); }
.sidebar-nav-group-items { margin: 2px 0 6px 33px; padding-left: 7px; display: none; gap: 2px; border-left: 1px solid rgba(164,198,236,.24); }
.sidebar-nav-group.is-expanded .sidebar-nav-group-items { display: grid; }
.sidebar-nav-group-items .sidebar-link { min-height: 37px; padding: 0 9px; border-radius: 7px; font-size: 11px; }
.sidebar-nav-group-items .sidebar-link > span { width: 20px; font-size: 14px; }
.sidebar-nav-group-items .sidebar-link.active { background: #176bd1; box-shadow: inset 3px 0 0 #8fc5ff; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group { position: relative; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-toggle { width: 48px; min-height: 44px; margin-inline: auto; padding: 0; display: flex; justify-content: center; gap: 0; border-radius: 11px; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-toggle > span:nth-child(2),
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-chevron { display: none; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-toggle .nav-badge { position: absolute; top: 2px; right: 1px; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-items { width: 226px; margin: 0; padding: 8px; position: fixed; z-index: 100; left: 92px; display: none; border: 1px solid rgba(158,191,228,.34); border-radius: 10px; background: #0b376c; box-shadow: 0 16px 38px rgba(3,24,51,.28); }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-items::before { content: ""; width: 11px; position: absolute; top: -1px; bottom: -1px; left: -11px; background: transparent; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group.is-flyout-open .sidebar-nav-group-items,
.admin-shell.is-sidebar-collapsed .sidebar-nav-group:focus-within .sidebar-nav-group-items { display: grid; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-items .sidebar-link { width: 100%; max-width: none; justify-content: flex-start; gap: 8px; margin: 0; padding: 0 10px; box-sizing: border-box; font-size: 11px; }
.admin-shell.is-sidebar-collapsed .sidebar-nav-group-items .sidebar-link > span { font-size: 14px; }
.admin-shell.is-sidebar-collapsed .sidebar-footer { display: none; }
@media (max-width: 820px) { .sidebar-nav-heading { height: 1px; margin: 9px 7px; padding: 0; overflow: hidden; border-top: 1px solid rgba(255,255,255,.14); font-size: 0; } }
@media (max-width: 560px) { .admin-shell:not(.is-sidebar-collapsed) { --sidebar-width: 250px !important; } }

/* Listado avanzado de trabajadores */
.employee-overview { margin: 18px 0 12px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.employee-overview-item { min-width: 0; padding: 14px 15px; display: flex; align-items: center; gap: 11px; color: #203852; border: 1px solid #dce6f0; border-radius: 12px; background: #fff; box-shadow: 0 7px 22px rgba(25,50,82,.035); text-decoration: none; transition: border-color .15s,box-shadow .15s,transform .15s; }
.employee-overview-item:hover { border-color: #9bc3ea; box-shadow: 0 10px 26px rgba(20,91,164,.1); transform: translateY(-1px); }
.employee-overview-item.is-active { border-color: #2180db; box-shadow: 0 0 0 2px rgba(24,116,205,.1); }
.employee-overview-icon { width: 37px; height: 37px; flex: 0 0 37px; display: grid; place-items: center; border-radius: 10px; font-size: 10px; font-weight: 900; letter-spacing: .03em; }
.employee-overview-icon--blue { color: #0b67c6; background: #e8f3ff; }.employee-overview-icon--green { color: #12845a; background: #e4f7ee; }.employee-overview-icon--cyan { color: #087895; background: #e4f7fb; }.employee-overview-icon--orange { color: #b36119; background: #fff0e2; }.employee-overview-icon--grey { color: #647487; background: #edf1f5; }
.employee-overview-item strong,.employee-overview-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.employee-overview-item strong { color: #142f4e; font-size: 21px; line-height: 1.05; }.employee-overview-item small { margin-top: 4px; color: #6f8095; font-size: 11px; }
.employee-toolbar { padding: 13px; align-items: stretch; }
.employee-filter-form { min-width: 0; flex: 1; display: grid; grid-template-columns: minmax(220px,1.35fr) minmax(180px,.8fr) minmax(180px,.8fr) auto auto; }
.employee-filter-form > span { display: none; }.employee-filter-form input[type="search"],.employee-filter-form select { width: 100%; min-width: 0; height: 42px; color: #263c56; border: 1px solid #cfdae7; border-radius: 8px; background: #f9fbfd; font: inherit; font-size: 13px; }
.employee-filter-form select { padding: 0 34px 0 11px; }.employee-filter-form input[type="search"]:focus,.employee-filter-form select:focus { border-color: #3889d8; outline: 3px solid rgba(20,110,205,.1); background: #fff; }
.employee-view-tools { display: flex; align-items: center; gap: 12px; color: #75859a; font-size: 12px; white-space: nowrap; }.employee-view-tools > span strong { color: #173755; font-size: 18px; }
.employee-view-switch { height: 42px; padding: 3px; display: inline-flex; border: 1px solid #cbd9e8; border-radius: 9px; background: #f4f8fc; }.employee-view-switch a { width: 38px; display: grid; place-items: center; color: #55708c; border-radius: 6px; text-decoration: none; }.employee-view-switch a svg { width: 18px; height: 18px; fill: currentColor; }.employee-view-switch a.is-active { color: #fff; background: #0b67c8; box-shadow: 0 4px 10px rgba(11,103,200,.2); }
.employee-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(420px,1fr)); gap: 16px; }
.employee-card { min-width: 0; padding: 17px; display: flex; flex-direction: column; border: 1px solid #dbe5ef; border-radius: 14px; background: linear-gradient(150deg,#fff 0,#fff 72%,#f5faff 100%); box-shadow: 0 9px 26px rgba(22,48,79,.045); transition: border-color .15s,box-shadow .15s,transform .15s; }
.employee-card[data-card-href] { cursor: pointer; }
.employee-card[data-card-href]:focus-visible { border-color: #1b75cf; outline: 3px solid rgba(20,110,205,.18); box-shadow: 0 14px 34px rgba(18,74,132,.12); }
.employee-card[data-card-href] a,.employee-card[data-card-href] button { cursor: pointer; }.employee-card[data-card-href] input,.employee-card[data-card-href] select,.employee-card[data-card-href] textarea { cursor: auto; }
.employee-card:hover { border-color: #abcceb; box-shadow: 0 14px 34px rgba(18,74,132,.1); transform: translateY(-2px); }
.employee-card-main { min-width: 0; display: grid; grid-template-columns: 54px minmax(0,1fr) 34px; align-items: center; gap: 12px; }
.employee-card-avatar { width: 54px; height: 54px; display: grid; place-items: center; overflow: hidden; color: #1168c4; border: 1px solid #d4e2f0; border-radius: 50%; background: #eaf4ff; font-size: 17px; font-weight: 900; }.employee-card-avatar img,.employee-card-avatar > span { width: 100%; height: 100%; display: grid; place-items: center; object-fit: cover; }
.employee-card-avatar.is-fallback img,.employee-card-avatar.has-image > span { display: none; }
.employee-card-heading { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }.employee-card-heading > a { max-width: 100%; color: #183451; white-space: normal; overflow-wrap: anywhere; font-size: 15px; line-height: 1.28; font-weight: 850; }.employee-card-meta { width: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; }.employee-card-heading .status-pill { white-space: nowrap; }.employee-card-heading small { color: #8291a3; font-size: 11px; }
.employee-card-edit,.employee-list-edit { width: 34px; height: 34px; display: grid; place-items: center; color: #1769bd; border: 1px solid #d3e0ed; border-radius: 8px; background: #fff; text-decoration: none; }.employee-card-edit svg,.employee-list-edit svg { width: 16px; height: 16px; fill: currentColor; }.employee-card-edit:hover,.employee-list-edit:hover { border-color: #86b6e5; background: #edf6ff; }
.employee-card-details { margin: 16px 0 14px; padding: 0; display: grid; gap: 0; }.employee-card-details > div { min-width: 0; padding: 8px 0; display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 10px; border-bottom: 1px solid #edf1f5; }.employee-card-details > div:last-child { border-bottom: 0; }.employee-card-details dt { color: #8291a4; font-size: 10px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }.employee-card-details dd { min-width: 0; margin: 0; overflow: hidden; color: #344c67; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 650; }.employee-card-details dd a { color: #1769ba; }
.employee-card-actions { margin-top: auto; padding-top: 13px; display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; border-top: 1px solid #e7edf4; }.employee-card-actions a { min-width: 0; height: 38px; display: flex; align-items: center; justify-content: center; gap: 5px; overflow: hidden; color: #1762ad; border: 1px solid #d8e5f2; border-radius: 8px; background: #f7fbff; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 800; text-decoration: none; }.employee-card-actions a:hover { border-color: #8ebce7; background: #eaf5ff; }.employee-card-actions svg { width: 15px; height: 15px; flex: 0 0 15px; fill: currentColor; }
.employee-list-wrap { overflow: auto; border: 1px solid #d8e3ee; border-radius: 13px; background: #fff; box-shadow: 0 8px 25px rgba(25,50,82,.035); }.employee-list-wrap .management-table { min-width: 1120px; table-layout: fixed; border: 0; border-radius: 0; }.employee-list-wrap .management-table th:nth-child(1) { width: 29%; }.employee-list-wrap .management-table th:nth-child(2) { width: 15%; }.employee-list-wrap .management-table th:nth-child(3) { width: 18%; }.employee-list-wrap .management-table th:nth-child(4) { width: 17%; }.employee-list-wrap .management-table th:nth-child(5) { width: 12%; }.employee-list-wrap .management-table thead th { height: 48px; color: #64758b; background: #f3f7fb; border-bottom: 1px solid #d8e3ee; font-size: 10px; letter-spacing: .055em; }.employee-list-wrap .management-table tbody tr { height: 72px; transition: background .12s; }.employee-list-wrap .management-table tbody tr:nth-child(even) { background: #fbfdff; }.employee-list-wrap .management-table tbody tr:hover { background: #eef7ff; }.employee-list-wrap .management-table tbody td,.employee-list-wrap .management-table tbody th { border-bottom-color: #e4ebf2; vertical-align: middle; }.employee-list-wrap .management-identity > img,.employee-list-wrap .management-identity > span { border-radius: 50%; }.employee-list-wrap .management-identity strong { color: #183451; font-size: 13px; }.employee-list-wrap .management-identity small { margin-top: 4px; }.employee-list-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; white-space: nowrap; }
.employee-list-wrap .management-table tbody tr.employee-table-row--clickable { cursor: pointer; }
.employee-list-wrap .management-table tbody tr.employee-table-row--clickable:focus-visible { outline: 3px solid rgba(20,110,205,.22); outline-offset: -3px; background: #eef7ff; }
.employee-list-wrap .management-table tbody tr.employee-table-row--clickable a,.employee-list-wrap .management-table tbody tr.employee-table-row--clickable button { cursor: pointer; }
@media (max-width: 1100px) {
    .employee-overview { grid-template-columns: repeat(3,minmax(0,1fr)); }.employee-filter-form { grid-template-columns: minmax(220px,1fr) minmax(170px,.8fr); }.employee-filter-form .btn { min-width: 100px; }.employee-view-tools { align-self: center; }.employee-card-grid { grid-template-columns: repeat(auto-fit,minmax(360px,1fr)); }
}
@media (max-width: 820px) {
    .employee-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }.employee-view-tools { justify-content: space-between; }.employee-filter-form { display: grid; grid-template-columns: 1fr 1fr; }.employee-filter-form input[type="search"] { grid-column: 1 / -1; }.employee-filter-form > span { display: none; }
}
@media (max-width: 560px) {
    .employee-overview { grid-template-columns: 1fr; }.employee-filter-form { grid-template-columns: 1fr; }.employee-filter-form input[type="search"] { grid-column: auto; }.employee-filter-form .btn { width: 100%; }.employee-card-grid { grid-template-columns: 1fr; }.employee-card-actions { grid-template-columns: repeat(2,1fr); }.employee-card-details > div { grid-template-columns: 1fr; gap: 3px; }
}

/* Detalle operativo del listado de trabajadores */
.employee-card-grid--single { grid-template-columns: minmax(0,680px); }
.management-identity > span[hidden] { display: none !important; }
.employee-card-details dd.employee-activity { display: flex; align-items: center; gap: 8px; overflow: visible; }
.employee-activity > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.employee-map-link { flex: 0 0 auto; min-height: 28px; padding: 0 9px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: #0968c7; border: 1px solid #cfe1f3; border-radius: 8px; background: #f2f8ff; font-size: 10px; font-weight: 850; text-decoration: none; }
.employee-map-link:hover { color: #0758aa; border-color: #82b5e5; background: #e5f3ff; }
.employee-map-link svg { width: 14px; height: 14px; fill: currentColor; }
.employee-list-activity { display: flex; align-items: center; gap: 8px; }
.employee-list-activity > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.employee-map-link--icon { width: 32px; height: 32px; min-height: 32px; padding: 0; border-radius: 50%; }
.employee-list-wrap .management-table { min-width: 1220px; }
.employee-list-wrap .management-table th:nth-child(1) { width: 24%; }
.employee-list-wrap .management-table th:nth-child(2) { width: 13%; }
.employee-list-wrap .management-table th:nth-child(3) { width: 17%; }
.employee-list-wrap .management-table th:nth-child(4) { width: 17%; }
.employee-list-wrap .management-table th:nth-child(5) { width: 10%; }
.employee-list-wrap .management-table th:nth-child(6) { width: 19%; }
.employee-list-actions { gap: 6px; }
.employee-list-shortcut { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; color: #1769bd; border: 1px solid #d3e0ed; border-radius: 8px; background: #f7fbff; text-decoration: none; }
.employee-list-shortcut:hover { color: #0758aa; border-color: #86b6e5; background: #eaf5ff; }
.employee-list-shortcut--success { color: #08764f; border-color: #b9e5d0; background: #e9f8f0; }
.employee-list-shortcut--info { color: #0b67c8; border-color: #bfdaf5; background: #edf7ff; }
.employee-list-shortcut--danger { color: #a23c35; border-color: #efc0bb; background: #fff0ee; }
.employee-list-shortcut svg { width: 15px; height: 15px; fill: currentColor; }

/* Listado de trabajadores: filtros operativos y vistas */
.employee-overview--priority { margin: 12px 0 10px; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
.employee-overview--priority .employee-overview-item { min-height: 52px; padding: 8px 10px; gap: 8px; border-radius: 10px; }
.employee-overview--priority .employee-overview-icon { width: 31px; height: 31px; flex-basis: 31px; border-radius: 8px; font-size: 9px; }
.employee-overview--priority .employee-overview-item strong { font-size: 18px; }
.employee-overview--priority .employee-overview-item small { margin-top: 2px; font-size: 10px; }
.employee-overview-icon--red { color:#a8342d; background:#ffe9e6; }
.employee-overview-icon--purple { color:#6949b8; background:#efe9ff; }
.employee-overview-icon--yellow { color:#95620f; background:#fff3d9; }
.employee-overview-icon--slate { color:#4f6378; background:#e9eef5; }
.employee-export-link { height: 42px; white-space: nowrap; }
.employee-advanced-filters { align-self: center; min-width: 170px; color:#5f7187; font-size:12px; font-weight:800; }
.employee-advanced-filters summary { height:42px; padding:0 12px; display:flex; align-items:center; cursor:pointer; border:1px solid #cfdae7; border-radius:8px; background:#f8fbff; }
.employee-advanced-filters nav { position:absolute; z-index:20; margin-top:8px; width:min(520px,calc(100vw - 60px)); padding:10px; display:flex; flex-wrap:wrap; gap:8px; border:1px solid #d7e3ef; border-radius:10px; background:#fff; box-shadow:0 18px 45px rgba(24,52,83,.14); }
.employee-advanced-filters nav a { padding:8px 10px; color:#1762ad; border:1px solid #d8e5f2; border-radius:8px; background:#f7fbff; font-size:11px; text-decoration:none; }
.employee-advanced-filters nav a.is-active,.employee-advanced-filters nav a:hover { color:#fff; border-color:#0b67c8; background:#0b67c8; }
.employee-view-switch a { width: 40px; }

.employee-vacations-yearbar { margin-bottom:14px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.045); }
.employee-vacations-yearbar form { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
.employee-vacations-yearbar label { display:grid; gap:7px; color:#6d7f95; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.employee-vacations-yearbar select { min-width:130px; height:44px; padding:0 14px; border:1px solid #cbd9e8; border-radius:10px; background:#f8fbff; color:#10294a; font-size:16px; font-weight:900; }
.employee-vacations-method { min-width:220px; padding:12px 16px; display:grid; grid-template-columns:1fr auto; gap:2px 12px; align-items:center; border:1px solid #d9e6f3; border-radius:14px; background:#f7fbff; }
.employee-vacations-method span { color:#0b67c8; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.employee-vacations-method strong { color:#10294a; font-size:18px; }
.employee-vacations-method small { grid-column:1 / -1; color:#72869b; }
.employee-vacations-balance { margin-bottom:14px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.employee-vacations-balance article { min-height:124px; padding:18px; position:relative; overflow:hidden; border:1px solid #dbe7f4; border-radius:16px; background:#fff; box-shadow:0 12px 30px rgba(23,54,88,.055); }
.employee-vacations-balance article::after { content:""; position:absolute; right:-28px; top:-34px; width:90px; height:90px; border-radius:50%; background:rgba(11,103,200,.08); }
.employee-vacations-balance span { display:block; color:#6b7f96; font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.employee-vacations-balance strong { margin-top:10px; display:block; color:#10294a; font-size:28px; line-height:1.05; letter-spacing:-.025em; }
.employee-vacations-balance small { margin-top:8px; display:block; color:#71859c; font-size:13px; line-height:1.35; }
.employee-vacations-balance .is-good { border-color:#bce8d0; background:linear-gradient(135deg,#fff,#f2fff8); }
.employee-vacations-balance .is-good strong { color:#047857; }
.employee-vacations-balance .is-danger { border-color:#f0b7b7; background:linear-gradient(135deg,#fff,#fff5f5); }
.employee-vacations-balance .is-danger strong { color:#c24141; }
.employee-vacations-progress { margin-bottom:14px; padding:16px; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.045); }
.employee-vacations-progress > div { height:12px; overflow:hidden; border-radius:999px; background:#edf3f8; }
.employee-vacations-progress > div span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#0b67c8,#1fa971); }
.employee-vacations-progress dl { margin:14px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.employee-vacations-progress dt { color:#7a8da2; font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.employee-vacations-progress dd { margin:4px 0 0; color:#10294a; font-weight:900; }
.employee-vacations-month { margin-bottom:16px; padding:18px; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.045); }
.employee-vacations-month > header { margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid #e3edf6; }
.employee-vacations-month h2 { margin:4px 0; color:#10294a; font-size:24px; }
.employee-vacations-month p { margin:0; color:#6f8298; }
.employee-vacations-grid { display:grid; grid-template-columns:repeat(3,minmax(260px,1fr)); gap:12px; }
.employee-vacation-card { min-height:190px; padding:14px; display:grid; grid-template-columns:84px minmax(0,1fr); gap:12px; border:1px solid #dbe7f4; border-left:4px solid var(--vacation-color,#7c5cff); border-radius:14px; background:#fff; }
.vacation-datebox { min-height:150px; display:grid; place-items:center; align-content:center; border:1px solid color-mix(in srgb, var(--vacation-color,#7c5cff) 30%, #dbe7f4); border-radius:12px; background:color-mix(in srgb, var(--vacation-color,#7c5cff) 10%, #fff); color:#10294a; text-align:center; }
.vacation-datebox span,.vacation-datebox small { color:#5b7490; font-size:11px; font-weight:900; letter-spacing:.05em; }
.vacation-datebox strong { color:var(--vacation-color,#7c5cff); font-size:34px; line-height:1; }
.vacation-card-body { min-width:0; display:grid; gap:10px; }
.vacation-card-body header { display:flex; justify-content:space-between; gap:10px; }
.vacation-card-body h3 { margin:3px 0; color:#10294a; font-size:18px; }
.vacation-card-body p,.vacation-card-body small { margin:0; color:#667d95; line-height:1.35; }
.vacation-chip { align-self:start; padding:7px 10px; border-radius:999px; background:color-mix(in srgb, var(--vacation-color,#7c5cff) 13%, #fff); color:var(--vacation-color,#7c5cff); font-size:12px; font-weight:900; white-space:nowrap; }
.vacation-card-body dl { margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.vacation-card-body dl div { padding:10px; border:1px solid #dbe7f4; border-radius:10px; background:#f8fbff; }
.vacation-card-body dt { color:#75889e; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.vacation-card-body dd { margin:3px 0 0; color:#10294a; font-weight:900; }
.vacation-card-body footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.employee-vacations-readonly { padding:9px 12px; border-radius:9px; background:#eef4fb; color:#59718b; font-size:12px; font-weight:900; }
.employee-vacations-list { overflow:auto; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.045); }
.employee-vacations-list table { width:100%; min-width:980px; border-collapse:collapse; }
.employee-vacations-list th { padding:14px 16px; background:#f3f7fb; color:#6c7f94; font-size:11px; font-weight:900; letter-spacing:.08em; text-align:left; text-transform:uppercase; }
.employee-vacations-list td { padding:14px 16px; border-top:1px solid #e2edf7; color:#29405b; vertical-align:middle; }
.employee-vacations-list td strong { color:#10294a; }
.employee-vacations-list td small { margin-top:3px; display:block; color:#71859c; }
.vacation-dot { width:10px; height:10px; margin-right:8px; display:inline-block; border-radius:999px; vertical-align:middle; }

@media (max-width:1100px) {
    .employee-vacations-balance { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employee-vacations-grid { grid-template-columns:repeat(2,minmax(240px,1fr)); }
}
@media (max-width:720px) {
    .employee-vacations-yearbar,.employee-vacations-method { display:grid; grid-template-columns:1fr; }
    .employee-vacations-balance,.employee-vacations-progress dl,.employee-vacations-grid { grid-template-columns:1fr; }
    .employee-vacation-card { grid-template-columns:72px minmax(0,1fr); }
    .vacation-card-body dl { grid-template-columns:1fr; }
}

/* Configuración anual de vacaciones: formulario compacto y de lectura rápida. */
.admin-editor-form--vacation .admin-editor-layout { grid-template-columns:minmax(0,1fr) minmax(280px,340px); }
.admin-editor-form--vacation .admin-editor-main { width:100%; max-width:none; }
.admin-editor-form--vacation .admin-editor-help { max-height:calc(100vh - 110px); overflow-y:auto; scrollbar-width:thin; scrollbar-color:#b9cbe0 transparent; scrollbar-gutter:stable; }
.admin-editor-form--vacation .admin-editor-card { padding:18px 20px 20px; }
.admin-editor-form--vacation .admin-editor-card > header { margin-bottom:14px; }
.admin-editor-form--vacation .admin-editor-card .simple-editor-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.admin-editor-form--vacation .field-key-year,
.admin-editor-form--vacation .field-key-assigneddays,
.admin-editor-form--vacation .field-key-assignedhours,
.admin-editor-form--vacation .field-key-carriedhours,
.admin-editor-form--vacation .field-key-carrieddaysinfo,
.admin-editor-form--vacation .field-key-imputeddaysinfo,
.admin-editor-form--vacation .field-key-availabledaysinfo { grid-column:span 1; }
.admin-editor-form--vacation .field-key-closedate { grid-column:span 1; }
.admin-editor-form--vacation .admin-editor-card label,
.admin-editor-form--vacation .admin-editor-card .editor-display { min-height:58px; padding:9px 10px; }
.admin-editor-form--vacation .admin-editor-card input:not([type="checkbox"]):not([type="file"]):not([type="color"]),
.admin-editor-form--vacation .admin-editor-card select { min-height:38px; margin-top:5px; font-size:13px; }
.admin-editor-form--vacation .admin-editor-card .editor-subsection { padding:10px 12px; }
.admin-editor-form--vacation .admin-editor-card .editor-subsection h3 { margin-bottom:2px; font-size:14px; }
.admin-editor-form--vacation .admin-editor-card .editor-subsection p { font-size:11px; }
.admin-editor-form--vacation .field-key-imputeddaysinfo strong,
.admin-editor-form--vacation .field-key-carrieddaysinfo strong,
.admin-editor-form--vacation .field-key-availabledaysinfo strong { font-size:18px; }
@media (max-width:1100px) {
    .admin-editor-form--vacation .admin-editor-layout { grid-template-columns:1fr; }
    .admin-editor-form--vacation .admin-editor-help { max-height:none; overflow:visible; scrollbar-gutter:auto; }
}
@media (max-width:760px) {
    .admin-editor-form--vacation .admin-editor-card .simple-editor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
    .admin-editor-form--vacation .admin-editor-card .simple-editor-grid { grid-template-columns:1fr; }
    .admin-editor-form--vacation .field-key-closedate { grid-column:auto; }
}
.employee-card-actions { grid-template-columns: repeat(4,minmax(0,1fr)); }
.employee-card-details { grid-template-columns: 1fr; }
.employee-card-details dd { white-space: normal; overflow-wrap: anywhere; }
.employee-list-wrap .management-table { min-width: 1480px; }
.employee-list-wrap .management-table th:nth-child(1) { width: 22%; }
.employee-list-wrap .management-table th:nth-child(2) { width: 12%; }
.employee-list-wrap .management-table th:nth-child(3) { width: 16%; }
.employee-list-wrap .management-table th:nth-child(4) { width: 12%; }
.employee-list-wrap .management-table th:nth-child(5) { width: 15%; }
.employee-list-wrap .management-table th:nth-child(6) { width: 13%; }
.employee-list-wrap .management-table th:nth-child(7) { width: 8%; }
.employee-list-wrap .management-table th:nth-child(8) { width: 18%; }
.employee-list-actions { flex-wrap: wrap; max-width: 320px; }
.employee-list-wrap--compact .management-table { min-width: 1040px; table-layout: fixed; }
.employee-list-wrap--compact .management-table thead th:nth-child(1) { width: 32%; }
.employee-list-wrap--compact .management-table thead th:nth-child(2) { width: 18%; }
.employee-list-wrap--compact .management-table thead th:nth-child(3) { width: 18%; }
.employee-list-wrap--compact .management-table thead th:nth-child(4) { width: 32%; }
.employee-list-wrap--compact .management-table tbody td:nth-child(2),
.employee-list-wrap--compact .management-table tbody td:nth-child(3),
.employee-list-wrap--compact .management-table tbody td:nth-child(5),
.employee-list-wrap--compact .management-table tbody td:nth-child(6) { display: none; }
.employee-list-wrap--compact .management-table th,.employee-list-wrap--compact .management-table td { padding-top: 9px; padding-bottom: 9px; }
.employee-list-wrap--compact .management-table tbody tr { height: 54px; }
.employee-list-wrap--compact .management-identity > img,.employee-list-wrap--compact .management-identity > span { width: 32px; height: 32px; flex-basis: 32px; }
.employee-list-wrap--compact .management-identity strong { font-size: 12px; }
.employee-list-wrap--compact .management-identity small { font-size: 10px; }
.employee-list-wrap--compact .employee-list-shortcut { width: 30px; height: 30px; flex-basis: 30px; }
.employee-list-wrap--compact .management-row-action { text-align: right; }
.employee-list-wrap--compact .employee-list-actions { max-width: none; justify-content: flex-end; gap: 4px; flex-wrap: nowrap; }
@media (max-width: 560px) {
    .employee-card-grid--single { grid-template-columns: 1fr; }
    .employee-card-details dd.employee-activity { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 900px) {
    .employee-overview--priority { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .employee-view-tools { flex-wrap: wrap; }
}
@media (max-width: 560px) {
    .employee-overview--priority { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .employee-export-link { width: 100%; justify-content: center; }
}

/* Admin catalogue cards: compact module-specific layouts. */
.management-card-grid--admin { align-items: start; }
.management-card-grid--admin .management-card:not(.management-card--expenses):not(.management-card--expense-compact) .management-card__metrics strong,
.management-card-grid--admin .management-card:not(.management-card--expenses):not(.management-card--expense-compact) .management-card__timeline strong {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 1.25;
}
.centre-filter-form { min-width: min(780px,75%); flex: 1; }
.centre-filter-form input[type="search"] { min-width: 340px; }
.centre-filter-form select { min-width: 210px; }
.management-card-grid--centres { grid-template-columns: repeat(auto-fill,minmax(min(100%,560px),1fr)); justify-content: start; align-items: start; }
.management-card--centres { width: 100%; max-width: 760px; min-height: 0; padding: 0; gap: 0; overflow: hidden; border-radius: 16px; background: #fff; }
.centre-card__photo { height: 184px; position: relative; display: block; overflow: hidden; color: #fff; background: linear-gradient(135deg,#dceaf7,#b8cee2); text-decoration: none; }
.centre-card__photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(9,38,70,.02) 30%,rgba(9,38,70,.68) 100%); }
.centre-card__photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .28s ease; }
.centre-card__photo:hover img { transform: scale(1.025); }
.centre-card__photo-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: #5f83a7; background: radial-gradient(circle at 28% 26%,#f8fcff 0 8%,transparent 9%),linear-gradient(145deg,#eaf3fb,#c9dceb); }
.centre-card__photo-placeholder svg { width: 68px; height: 68px; fill: currentColor; opacity: .7; }
.centre-card__photo .status-pill { position: absolute; z-index: 2; top: 14px; right: 14px; box-shadow: 0 5px 16px rgba(13,40,70,.15); }
.centre-card__photo-code { position: absolute; z-index: 2; right: 16px; bottom: 13px; padding: 5px 9px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: rgba(10,41,75,.58); backdrop-filter: blur(5px); color: #fff; font-size: 10px; font-weight: 850; letter-spacing: .05em; }
.centre-card__header { padding: 18px 20px 0; display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.centre-card__header > div { min-width: 0; }
.centre-card__header h2 { margin: 3px 0 4px; color: #173451; font-size: 20px; line-height: 1.22; }
.centre-card__header h2 a { color: inherit; text-decoration: none; }
.centre-card__header h2 a:hover,.centre-card__header h2 a:focus-visible { color: #0b67c8; text-decoration: underline; text-underline-offset: .16em; }
.centre-card__header p { margin: 0; color: #74859a; font-size: 12px; line-height: 1.4; }
.centre-card__details { padding: 14px 20px 18px; display: grid; gap: 12px; }
.centre-card__address { min-width: 0; padding: 12px 13px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 11px; border: 1px solid #dbe7f2; border-radius: 12px; background: #f7fbff; }
.centre-card__detail-icon { width: 36px; height: 36px; display: grid; place-items: center; color: #0b67c8; border-radius: 10px; background: #e4f1ff; }
.centre-card__detail-icon svg { width: 17px; height: 17px; fill: currentColor; }
.centre-card__address > span:nth-child(2) { min-width: 0; }
.centre-card__address small,.centre-card__facts small { display: block; color: #7b8ba0; font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.centre-card__address strong { display: block; margin-top: 2px; color: #173755; font-size: 13px; line-height: 1.38; overflow-wrap: anywhere; }
.centre-card__address em { display: block; margin-top: 2px; color: #667a92; font-size: 11px; font-style: normal; line-height: 1.35; overflow-wrap: anywhere; }
.centre-card__address > a { min-height: 34px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px; color: #0b67c8; border: 1px solid #c7dcf1; border-radius: 9px; background: #fff; font-size: 11px; font-weight: 850; text-decoration: none; white-space: nowrap; }
.centre-card__address > a:hover { border-color: #81b6e7; background: #edf6ff; }
.centre-card__address > a svg { width: 14px; height: 14px; fill: currentColor; }
.centre-card__facts { display: grid; grid-template-columns: 1fr 1.35fr 1.25fr; gap: 8px; }
.centre-card__facts > span { min-width: 0; padding: 10px 11px; display: grid; grid-template-columns: 27px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 8px; align-content: center; border: 1px solid #e0e8f1; border-radius: 11px; background: #fbfcfe; }
.centre-card__facts svg { width: 19px; height: 19px; grid-row: 1 / span 2; align-self: center; fill: #2373bd; }
.centre-card__facts strong { display: block; margin-top: 2px; color: #173755; font-size: 12px; line-height: 1.32; overflow-wrap: anywhere; }
.management-card--centres .management-card__actions { margin: 0; padding: 12px 16px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; border-top: 1px solid #e6edf5; background: #fbfdff; }
.centre-card-action { min-width: 0; min-height: 38px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: #426079; border: 1px solid #d5e1ed; border-radius: 9px; background: #fff; font-size: 10px; font-weight: 850; text-decoration: none; white-space: nowrap; }
.centre-card-action:hover,.centre-card-action:focus-visible { color: #0b67c8; border-color: #8cbce8; background: #edf6ff; }
.centre-card-action svg { width: 14px; height: 14px; flex: 0 0 14px; fill: currentColor; }
.centre-card-action--primary { color: #fff; border-color: #0b67c8; background: #0b67c8; }
.centre-card-action--primary:hover,.centre-card-action--primary:focus-visible { color: #fff; border-color: #0757ad; background: #0757ad; }

.management-card-grid--requests { grid-template-columns: repeat(auto-fill,minmax(min(100%,320px),1fr)); align-items: stretch; grid-auto-rows: 1fr; }
.management-card--requests { width: 100%; max-width: none; min-height: 0; height: 100%; padding: 14px; gap: 10px; border-color: #efd3ac; background: linear-gradient(150deg,#fff 0,#fffcf8 100%); }
.management-card--requests .management-card__header { grid-template-columns: 40px minmax(0,1fr) auto; gap: 10px; }
.management-card--requests .management-card__icon { width: 40px; height: 40px; }
.management-card--requests .management-card__header h2 { margin-top: 1px; font-size: 16px; }
.management-card--requests .management-card__header p { margin-top: 2px; }
.management-card--requests .management-card__metrics--requests { grid-template-columns: .82fr 1.28fr .9fr; gap: 7px; }
.management-card--requests .management-card__metrics--requests span:first-child { display: none; }
.management-card--requests .management-card__metrics span { min-height: 56px; padding: 8px 9px; }
.management-card--requests .management-card__metrics small { margin-bottom: 3px; font-size: 9px; }
.management-card--requests .management-card__metrics strong { font-size: 13px; }
.management-card--requests .management-card__note { min-height: 38px; padding: 8px 10px; display: flex; align-items: center; line-height: 1.3; }
.management-card--requests .management-card__actions { margin-top: auto; min-height: 36px; padding-top: 0; gap: 7px; }
.management-card--requests .management-card__actions .btn { min-height: 36px; padding: 0 13px; }

.management-card-grid--incidents { grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); align-items: stretch; grid-auto-rows: auto; }
.management-card--incidents { width: 100%; max-width: none; min-height: 0; height: 100%; padding: 14px; gap: 9px; }
.management-card--incidents .management-card__header { grid-template-columns: 40px minmax(0,1fr) auto; gap: 10px; }
.management-card--incidents .management-card__icon { width: 40px; height: 40px; }
.management-card--incidents .management-card__header h2 { margin-top: 1px; font-size: 16px; }
.management-card--incidents .management-card__header p { margin-top: 2px; }
.incidence-card__summary { min-width: 0; padding: 10px 11px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; border: 1px solid #e0e8f1; border-radius: 10px; background: #f9fbfd; }
.incidence-card__summary > span { min-width: 0; }
.incidence-card__summary small { display: block; margin-bottom: 4px; color: #7c8ca0; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.incidence-card__summary strong { display: block; color: #173755; font-size: 13px; line-height: 1.25; }
.incidence-card__period strong { white-space: nowrap; }
.incidence-card__compute { padding-left: 14px; border-left: 1px solid #dce5ef; }
.incidence-card__compute strong { white-space: nowrap; }
.management-card--incidents .management-card__note { height: 64px; min-height: 64px; padding: 8px 10px; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-height: 1.3; }
.management-card--incidents .management-card__note.is-empty { color: #8a98aa; font-style: italic; }
.management-card--incidents .management-card__actions { margin-top: auto; min-height: 36px; padding-top: 0; gap: 7px; }

.management-card-grid--expense-categories { grid-template-columns: repeat(auto-fit,minmax(300px,380px)); justify-content: start; align-items: start; }
.management-card--expense-categories { max-width: 380px; min-height: 0; }
.management-card--expense-categories .management-card__header { grid-template-columns: 42px minmax(0,1fr) auto; }
.management-card--expense-categories .management-card__metrics--expense-categories { grid-template-columns: 1fr 1fr; gap: 8px; }
.management-card--expense-categories .management-card__metrics--expense-categories span { min-height: 56px; padding: 9px 10px; }
.management-card--expense-categories .management-card__metrics--expense-categories strong { display: flex; align-items: center; gap: 7px; overflow: visible; white-space: normal; line-height: 1.2; }
.management-card--expense-categories .management-card__metrics--expense-categories strong b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: inherit; }
.management-card--expense-categories .category-icon-metric i { width: 22px; height: 22px; flex: 0 0 22px; display: grid; place-items: center; color: #0b67c8; border-radius: 7px; background: #eaf4ff; font-size: 12px; }
.management-card--expense-categories .category-usage-metric { border-color: #c8e8d8; background: #f1fbf6; }
.management-card--expense-categories .category-usage-metric strong { color: #08764f; }

.management-table-wrap--centres { overflow-x: auto; }
.management-table--centres { min-width: 1120px; table-layout: fixed; }
.management-table--centres thead th:nth-child(1) { width: 28%; }
.management-table--centres thead th:nth-child(2) { width: 23%; }
.management-table--centres thead th:nth-child(3) { width: 16%; }
.management-table--centres thead th:nth-child(4) { width: 12%; }
.management-table--centres thead th:nth-child(5) { width: 16%; }
.management-table--centres thead th:nth-child(6) { width: 10%; }
.management-table--centres thead th:last-child { width: 188px; }
.management-table--centres th,
.management-table--centres td { padding: 12px 15px; }
.management-table--centres tbody tr { height: auto; }
.management-table--centres .management-identity strong { max-width: 280px; }
.management-table--centres .management-identity > img,.management-table--centres .management-identity > span { width: 52px; height: 44px; flex-basis: 52px; border-radius: 10px; }
.management-table--centres .management-identity > img { object-fit: cover; }
.management-table--centres .management-identity strong,.management-table--centres .management-identity small { max-width: none; overflow: visible; text-overflow: clip; white-space: normal; line-height: 1.3; }
.centre-list-address { display: grid; gap: 5px; }
.centre-list-address > span { color: #435b74; line-height: 1.38; overflow-wrap: anywhere; }
.centre-list-address > a { width: max-content; display: inline-flex; align-items: center; gap: 5px; color: #0b67c8; font-size: 10px; font-weight: 850; text-decoration: none; }
.centre-list-address > a:hover { text-decoration: underline; text-underline-offset: .14em; }
.centre-list-address > a svg { width: 12px; height: 12px; fill: currentColor; }
.management-table--centres .management-row-action { width: 188px; text-align: right !important; }
.management-table--centres .employee-list-actions { max-width: none; display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: nowrap; }
.management-table--centres .employee-list-shortcut { width: 32px; height: 32px; flex: 0 0 32px; }
.management-table--centres .employee-list-shortcut svg { width: 14px; height: 14px; }

/* Licencias: las acciones deben permanecer visibles y en una única fila. */
.management-table-wrap--licenses { overflow-x: auto; }
.management-table--licenses .management-row-action {
    width: 88px;
    min-width: 88px;
    white-space: nowrap;
}
.management-table--licenses .employee-list-actions {
    min-width: 74px;
    max-width: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 6px;
}
.management-table--licenses .employee-list-actions .inline-action-form,
.management-table--licenses .employee-list-actions .employee-list-shortcut {
    flex: 0 0 34px;
    margin: 0;
}

@media (max-width: 720px) {
    .management-card-grid--centres,
    .management-card-grid--expense-categories,
    .management-card-grid--requests,
    .management-card-grid--incidents { grid-template-columns: 1fr; }
    .management-card--centres,
    .management-card--expense-categories,
    .management-card--requests,
    .management-card--incidents { max-width: none; }
    .centre-filter-form { min-width: 0; width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
    .centre-filter-form > span { display: none; }
    .centre-filter-form input[type="search"] { min-width: 0; width: 100%; grid-column: 1 / -1; }
    .centre-filter-form select { min-width: 0; width: 100%; }
    .centre-card__photo { height: 160px; }
    .centre-card__facts { grid-template-columns: 1fr; }
    .management-card--centres .management-card__actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .centre-card-action--primary { grid-column: 1 / -1; }
}

@media (max-width: 420px) {
    .incidence-card__summary { grid-template-columns: 1fr; gap: 8px; }
    .incidence-card__compute { padding: 8px 0 0; border-top: 1px solid #dce5ef; border-left: 0; }
    .centre-card__address { grid-template-columns: 36px minmax(0,1fr); }
    .centre-card__address > a { grid-column: 1 / -1; justify-self: stretch; justify-content: center; }
}

/* Ordenación en listados */
.management-table thead th > .management-sort { min-width:0; display:inline-flex; align-items:center; gap:6px; color:inherit; text-decoration:none; }
.management-table thead th > .management-sort:hover { color:#0b67c8; }
.management-table thead th > .management-sort span::before { content:"↕"; color:#9aabbd; font-size:10px; line-height:1; }
.management-table thead th > .management-sort.is-active { color:#0b67c8; }
.management-table thead th > .management-sort.is-asc span::before { content:"↑"; color:#0b67c8; }
.management-table thead th > .management-sort.is-desc span::before { content:"↓"; color:#0b67c8; }

/* Ficha de trabajador */
.employee-editor-page { --employee-editor-blue:#0968c7; --employee-editor-ink:#132b49; --employee-editor-muted:#6d7f93; }
.employee-edit-hero { margin-top:16px; padding:28px 30px; display:flex; align-items:center; justify-content:space-between; gap:24px; border:1px solid #d7e3ef; border-radius:18px; background:linear-gradient(135deg,#ffffff 0%,#f4f9ff 100%); box-shadow:0 16px 45px rgba(25,56,94,.08); }
.employee-edit-identity { min-width:0; display:flex; align-items:center; gap:22px; }
.employee-edit-avatar { width:86px; height:86px; flex:0 0 86px; position:relative; display:grid; place-items:center; overflow:hidden; color:#0b65be; border:1px solid #cfe0f1; border-radius:50%; background:#eaf4ff; font-size:25px; font-weight:900; box-shadow:inset 0 0 0 8px rgba(255,255,255,.7); }
.employee-edit-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.employee-edit-avatar img + b { display:none; }
.employee-edit-identity h1 { margin:6px 0 0; color:var(--employee-editor-ink); font-size:32px; line-height:1.08; }
.employee-edit-identity p { margin:7px 0 0; color:var(--employee-editor-muted); font-size:14px; }
.employee-edit-summary { margin-top:13px; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.employee-edit-summary > span:not(.status-pill) { padding:7px 10px; color:#36506b; border:1px solid #dce7f2; border-radius:999px; background:#fff; font-size:12px; font-weight:800; }
.employee-edit-hero-actions { flex:0 0 auto; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.employee-editor-tabs { position:sticky; top:0; z-index:18; margin:18px 0 0; padding:8px; display:flex; gap:8px; border:1px solid #d8e3ef; border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 12px 28px rgba(20,49,84,.07); backdrop-filter:blur(8px); }
.employee-editor-tabs button { min-height:46px; padding:0 18px; display:inline-flex; align-items:center; gap:9px; color:#405670; border:1px solid transparent; border-radius:10px; background:transparent; font-size:13px; font-weight:900; cursor:pointer; }
.employee-editor-tabs button span { width:24px; height:24px; display:grid; place-items:center; color:#0b67c8; border-radius:8px; background:#eaf3ff; font-size:10px; letter-spacing:.05em; }
.employee-editor-tabs button.is-active { color:#fff; border-color:#0b67c8; background:#0b67c8; box-shadow:0 10px 22px rgba(12,103,200,.22); }
.employee-editor-tabs button.is-active span { color:#0b67c8; background:#fff; }
.employee-editor-tab-panel { display:none; margin-top:16px; }
.employee-editor-tab-panel.is-active { display:grid; gap:16px; }
.employee-editor-card { padding:26px; border-radius:18px; box-shadow:0 14px 36px rgba(20,49,84,.055); }
.employee-editor-card > header { align-items:flex-start; margin-bottom:22px; }
.employee-editor-card > header h2 { font-size:21px; }
.employee-editor-card > header p { font-size:13px; }
.employee-photo-layout { display:grid; grid-template-columns:minmax(260px,360px) minmax(0,1fr); gap:16px; margin-bottom:22px; }
.employee-photo-card { min-width:0; padding:18px; display:flex; align-items:center; gap:16px; border:1px solid #dce7f2; border-radius:15px; background:#f8fbff; }
.employee-photo-preview { width:112px; height:112px; flex:0 0 112px; display:grid; place-items:center; overflow:hidden; color:#0b67c8; border:1px solid #cfe0f1; border-radius:22px; background:#eaf4ff; font-size:28px; font-weight:950; }
.employee-photo-preview img { width:100%; height:100%; object-fit:cover; }
.employee-photo-card strong,.employee-photo-card small { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.employee-photo-card strong { color:#173250; font-size:17px; white-space:nowrap; }
.employee-photo-card small { margin-top:5px; color:#708196; font-size:12px; overflow-wrap:anywhere; }
.employee-photo-dropzone { min-height:150px; padding:18px; display:grid; place-items:center; align-content:center; gap:7px; color:#32506d; border:2px dashed #b9d2eb; border-radius:15px; background:linear-gradient(135deg,#f8fbff,#eef7ff); text-align:center; cursor:pointer; transition:border-color .15s,background .15s,transform .15s; }
.employee-photo-dropzone:hover,.employee-photo-dropzone.is-dragover { border-color:#0b67c8; background:#e9f5ff; transform:translateY(-1px); }
.employee-photo-dropzone input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.employee-photo-dropzone__icon { width:42px; height:42px; display:grid; place-items:center; color:#fff; border-radius:14px; background:#0b67c8; font-size:22px; font-weight:900; }
.employee-photo-dropzone strong { font-size:15px; }
.employee-photo-dropzone small { max-width:520px; color:#6e7f92; font-size:12px; }
.employee-photo-dropzone em { margin-top:4px; padding:6px 10px; color:#587088; border-radius:999px; background:#fff; font-size:11px; font-style:normal; font-weight:800; }
.employee-editor-highlight-grid { display:grid; grid-template-columns:170px minmax(280px,1fr) minmax(280px,1.2fr) minmax(260px,1fr); gap:12px; align-items:stretch; }
.employee-editor-highlight-grid--work { grid-template-columns:minmax(360px,1.15fr) minmax(320px,.85fr); }
.employee-editor-card label:not(.switch-field),.employee-editor-card .editor-display { min-width:0; padding:13px 14px; display:grid; gap:7px; align-content:start; border:1px solid #dce7f2; border-radius:12px; background:#f8fbff; }
.employee-editor-card label > span,.employee-editor-card .editor-display > span { color:#65778d; font-size:11px; font-weight:900; letter-spacing:.045em; text-transform:uppercase; }
.employee-editor-card label > small { color:#74859a; font-size:11px; line-height:1.35; }
.employee-editor-card input[type="text"],.employee-editor-card input[type="email"],.employee-editor-card input[type="tel"],.employee-editor-card input[type="number"],.employee-editor-card input[type="password"],.employee-editor-card select { width:100%; min-width:0; height:44px; padding:0 12px; color:#142d49; border:1px solid #cbd9e8; border-radius:10px; background:#fff; font-size:15px; font-weight:700; outline:none; box-sizing:border-box; }
.employee-editor-card input:focus,.employee-editor-card select:focus { border-color:#0b67c8; box-shadow:0 0 0 3px rgba(11,103,200,.12); }
.employee-editor-highlight-grid .employee-qr-field { grid-column:span 1; }
.employee-editor-highlight-grid .switch-field { min-height:74px; align-self:stretch; }
.employee-week-summary { margin:-4px 0 16px; padding:13px 15px; display:inline-flex; align-items:baseline; gap:9px; width:max-content; max-width:100%; border:1px solid #dbe7f2; border-radius:13px; background:#f6fbff; }
.employee-week-summary strong { color:#0b67c8; font-size:24px; }
.employee-week-summary span { color:#64778b; font-size:12px; font-weight:850; }
.employee-week-grid label { background:#f8fbff; }
.employee-annual-hours-grid { grid-template-columns:repeat(2,minmax(180px,260px)); justify-content:start; }
.employee-switch-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.employee-switch-grid--operations { grid-template-columns:repeat(3,minmax(0,1fr)); }
.employee-automation-group { margin-top:28px; padding-top:28px; display:grid; gap:18px; border-top:1px solid #dfe9f3; }
.employee-automation-group:first-of-type { margin-top:0; padding-top:0; border-top:0; }
.employee-automation-group__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.employee-automation-group__heading > div { min-width:0; display:flex; align-items:center; gap:11px; }
.employee-automation-group__heading > div > span { width:32px; height:32px; flex:0 0 32px; display:grid; place-items:center; color:#0b67c8; border-radius:10px; background:#e9f4ff; font-size:10px; font-weight:950; }
.employee-automation-group__heading h3 { margin:0; color:#173451; font-size:17px; line-height:1.2; }
.employee-automation-group__heading p { margin:2px 0 0; max-width:560px; color:#6a7e94; font-size:12px; line-height:1.55; text-align:right; }
.employee-automation-policy-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.employee-editor-card .employee-automation-policy-card { min-width:0; min-height:144px; margin:0; padding:18px; display:grid; grid-template-columns:auto minmax(0,1fr); gap:13px; align-items:flex-start; border:1px solid #d8e5f1; border-radius:15px; background:#f8fbff; }
.employee-editor-card .employee-automation-policy-card > input { margin-top:3px; }
.employee-editor-card .employee-automation-policy-card > span { min-width:0; display:flex; align-items:flex-start; flex-direction:column; gap:7px; color:inherit; font-size:inherit; font-weight:inherit; letter-spacing:normal; text-transform:none; }
.employee-automation-policy-card strong { color:#173451; font-size:14px; line-height:1.25; }
.employee-automation-policy-card small { color:#687c92; font-size:11px; font-weight:650; line-height:1.5; }
.employee-automation-policy-card em { margin-top:auto; padding:5px 8px; color:#496984; border-radius:999px; background:#e9f1f8; font-size:9px; font-style:normal; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.employee-automation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.employee-editor-card .employee-automation-card { min-width:0; min-height:178px; margin:0; padding:18px; display:grid; grid-template-columns:auto minmax(0,1fr); gap:13px; align-items:flex-start; border:1px solid #d8e5f1; border-radius:15px; background:#fff; }
.employee-editor-card .employee-automation-card > input { width:20px; height:20px; margin-top:2px; }
.employee-editor-card .employee-automation-card__copy { min-width:0; display:flex; align-items:flex-start; flex-direction:column; gap:8px; color:inherit; font-size:inherit; font-weight:inherit; letter-spacing:normal; text-transform:none; }
.employee-automation-card__meta { width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.employee-automation-card__meta b,
.employee-automation-card__meta em { padding:5px 8px; border-radius:999px; font-size:9px; font-style:normal; font-weight:900; letter-spacing:.04em; line-height:1; text-transform:uppercase; }
.employee-automation-card__meta b { color:#0868c9; background:#e9f4ff; }
.employee-automation-card__meta em { color:#587088; background:#edf2f7; text-align:right; }
.employee-automation-card__copy > strong { color:#173451; font-size:15px; line-height:1.25; }
.employee-automation-card__copy > small { color:#60758d; font-size:11px; font-weight:650; line-height:1.55; }
.employee-automation-card__note { margin-top:auto; padding-top:9px; width:100%; color:#718399; border-top:1px solid #e7eef5; font-size:10px; font-weight:700; line-height:1.45; }
.employee-automation-card.is-company-disabled { border-style:dashed; background:#f5f7f9; opacity:.78; }
.employee-automation-empty { grid-column:1/-1; margin:0; padding:18px; border:1px dashed #cbdbea; border-radius:14px; background:#f8fbff; }
.employee-app-menu-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.employee-access-display strong { overflow-wrap:anywhere; }
.employee-editor-identity-layout,
.employee-editor-work-layout,
.employee-editor-app-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:20px; align-items:start; }
.employee-editor-identity-main,
.employee-editor-work-main,
.employee-editor-app-main { min-width:0; display:grid; gap:16px; }
.employee-access-fields { margin-bottom:16px; }
.employee-access-fields .employee-qr-field { grid-column:span 2; }
.employee-access-fields .editor-field-help { margin:0; }
.employee-web-access-layout { padding-top:16px; display:grid; grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr); gap:12px; border-top:1px solid #e1eaf3; }
.employee-web-access-toggle { min-height:100%; }
.employee-web-access-link { min-width:0; padding:14px; display:grid; align-content:center; gap:7px; border:1px solid #dce7f2; border-radius:13px; background:#f8fbff; }
.employee-web-access-link p,.employee-web-access-link small { margin:0; color:#667a91; font-size:11px; line-height:1.45; }
.employee-web-access-link > label { padding:0; border:0; background:transparent; color:#536b84; font-size:11px; font-weight:900; text-transform:uppercase; }
.employee-web-access-state { width:max-content; max-width:100%; padding:5px 9px; color:#6a7c91; border-radius:999px; background:#e9eef4; font-size:10px; font-weight:950; }
.employee-web-access-state.is-active { color:#087453; background:#def6eb; }
.worker-portal-link { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.worker-portal-link input { width:100%; min-width:0; height:42px; padding:0 11px; color:#29445f; border:1px solid #cbd9e8; border-radius:9px; background:#fff; box-sizing:border-box; }
.employee-location-policies { margin-bottom:14px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.employee-centre-validation { padding:15px; border:1px solid #d7e4f1; border-radius:15px; background:linear-gradient(135deg,#f9fcff,#f3f8fd); }
.employee-centre-validation > header { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.employee-centre-validation > header div { min-width:0; display:grid; gap:3px; }
.employee-centre-validation > header div > span { color:#718399; font-size:9px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.employee-centre-validation > header div > strong { overflow:hidden; color:#173451; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.employee-centre-validation__count { flex:0 0 auto; padding:6px 9px; color:#305777; border:1px solid #d6e5f2; border-radius:999px; background:#fff; font-size:10px; font-weight:900; }
.employee-centre-validation__warning { margin:12px 0 0; padding:10px 12px; color:#8c5209; border-left:4px solid #e69126; border-radius:4px 10px 10px 4px; background:#fff5e8; font-size:11px; font-weight:750; line-height:1.45; }
.employee-centre-validation__warning[hidden] { display:none; }
.employee-centre-methods { margin-top:13px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.employee-centre-method { min-width:0; padding:11px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:9px; align-items:center; border:1px solid #dfe8f1; border-radius:12px; background:#fff; }
.employee-centre-method__icon { width:34px; height:34px; display:grid; place-items:center; color:#6f8297; border-radius:10px; background:#eef2f6; font-size:10px; font-weight:950; }
.employee-centre-method div { min-width:0; display:grid; gap:3px; }
.employee-centre-method strong { color:#25415f; font-size:12px; }
.employee-centre-method small { overflow:hidden; color:#7a8b9d; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.employee-centre-method.is-configured { border-color:#bde6d6; background:#f5fcf9; }
.employee-centre-method.is-configured .employee-centre-method__icon { color:#087453; background:#ddf5eb; }
.employee-centre-method.is-configured small { color:#39725f; }
.employee-centre-validation__footer { margin-top:13px; padding-top:13px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid #dfe8f1; }
.employee-centre-validation__footer p { margin:0; max-width:610px; color:#61768e; font-size:11px; line-height:1.45; }
.employee-centre-validation__footer [hidden] { display:none; }
.employee-editor-help-stack { min-width:0; }
.employee-editor-help-stack > [hidden] { display:none; }
.employee-editor-help { top:86px; gap:10px; overflow:visible; }
.employee-editor-help > header { padding:0 0 14px; display:grid; grid-template-columns:40px minmax(0,1fr); gap:10px; align-items:center; border-bottom:1px solid #e4edf5; }
.employee-editor-help > header .editor-help-icon { width:40px; height:40px; display:grid; place-items:center; color:#fff; border-radius:12px; background:#0b67c8; font-size:20px; font-weight:950; box-shadow:0 8px 18px rgba(11,103,200,.2); }
.employee-editor-help > header div { display:grid; gap:3px; }
.employee-editor-help > header div span { color:#708399; font-size:9px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.employee-editor-help > header div strong { color:#173451; font-size:16px; }
.employee-editor-help > section { padding:13px 14px; border:1px solid #e1eaf3; border-radius:13px; background:#fbfdff; }
.employee-editor-help > section:last-child { border-bottom:1px solid #e1eaf3; }
.employee-editor-help > section h3 { margin:0; color:#1a3c60; font-size:13px; line-height:1.3; }
.employee-editor-help > section p { margin:6px 0 0; color:#566e87; font-size:12px; line-height:1.58; }
.employee-editor-help > .employee-editor-help__warning { margin:0; padding:13px 14px; border:0; border-left:4px solid #e68a27; border-radius:4px 12px 12px 4px; background:#fff7ec; }
.employee-editor-help__warning h3 { color:#94530a !important; }
.employee-editor-actions { bottom:16px; }

/* Automatizaciones de empresa: resumen, paneles plegables y detalle bajo demanda. */
.admin-body .company-editor-card .company-automation-overview { margin-bottom:18px; padding:16px 18px; display:grid; grid-template-columns:repeat(3,minmax(120px,.38fr)) minmax(240px,1fr); gap:12px; align-items:center; border:1px solid #d8e5f1; border-radius:15px; background:#f5faff; }
.admin-body .company-editor-card .company-automation-overview > div { min-width:0; padding-right:12px; display:flex; align-items:baseline; gap:7px; border-right:1px solid #dce7f2; }
.admin-body .company-editor-card .company-automation-overview strong { color:#0b67c8; font-size:22px; line-height:1; }
.admin-body .company-editor-card .company-automation-overview span { color:#60748a; font-size:11px; font-weight:600; letter-spacing:0; text-transform:none; }
.admin-body .company-editor-card .company-automation-overview p { margin:0; color:#718398; font-size:11px; font-weight:400; line-height:1.5; }
.admin-body .company-editor-card .company-automation-panels { display:grid; gap:11px; }
.admin-body .company-editor-card .company-automation-panel { overflow:hidden; border:1px solid #d8e3ee; border-radius:15px; background:#fff; transition:border-color .18s ease,box-shadow .18s ease; }
.admin-body .company-editor-card .company-automation-panel.is-open { border-color:#afccea; box-shadow:0 8px 24px rgba(28,69,112,.07); }
.admin-body .company-editor-card .company-automation-panel > h3 { margin:0; }
.admin-body .company-editor-card .company-automation-panel > h3 > button { width:100%; min-height:82px; padding:14px 17px; display:grid; grid-template-columns:38px minmax(0,1fr) auto 18px; gap:13px; align-items:center; color:inherit; border:0; background:#f8fbfe; text-align:left; cursor:pointer; }
.admin-body .company-editor-card .company-automation-panel.is-open > h3 > button { background:#edf6ff; }
.admin-body .company-editor-card .company-automation-panel > h3 > button:hover { background:#f1f7fd; }
.admin-body .company-editor-card .company-automation-panel > h3 > button:focus-visible { outline:3px solid rgba(11,103,200,.2); outline-offset:-3px; }
.admin-body .company-editor-card .company-automation-panel__number { width:34px; height:34px; display:grid; place-items:center; color:#2875bd; border-radius:10px; background:#e7f2fc; font-size:10px; font-weight:700; }
.admin-body .company-editor-card .company-automation-panel__copy { min-width:0; display:grid; gap:3px; }
.admin-body .company-editor-card .company-automation-panel__copy strong { color:#203b55; font-size:15px; font-weight:700; line-height:1.25; }
.admin-body .company-editor-card .company-automation-panel__copy small { margin:0; color:#74869a; font-size:11px; font-weight:400; line-height:1.4; }
.admin-body .company-editor-card .company-automation-panel__count { padding:6px 9px; color:#60748a; border-radius:999px; background:#e9f0f6; font-size:10px; font-weight:600; letter-spacing:0; white-space:nowrap; text-transform:none; }
.admin-body .company-editor-card .company-automation-panel__chevron { width:9px; height:9px; border-right:2px solid #55718d; border-bottom:2px solid #55718d; transform:rotate(45deg) translateY(-2px); transition:transform .18s ease; }
.admin-body .company-editor-card .company-automation-panel.is-open .company-automation-panel__chevron { transform:rotate(225deg) translate(-1px,-1px); }
.admin-body .company-editor-card .company-automation-panel__body { padding:5px 16px 16px; display:grid; gap:9px; border-top:1px solid #e3ebf3; background:#fafcff; }
.admin-body .company-editor-card .company-automation-panel__body[hidden] { display:none; }
.admin-body .company-editor-card .company-automation-row { overflow:hidden; border:1px solid #e1e9f1; border-radius:11px; background:#fff; }
.admin-body .company-editor-card .company-automation-row.is-disabled { border-style:dashed; background:#f8fafc; }
.admin-body .company-editor-card .company-automation-row.is-configuring { border-color:#b5d2ed; box-shadow:0 5px 16px rgba(29,75,120,.06); }
.admin-body .company-editor-card .company-automation-row__summary { min-height:82px; padding:11px 13px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:12px; align-items:center; }
.admin-body .company-editor-card .company-automation-row--simple .company-automation-row__summary { grid-template-columns:minmax(0,1fr) auto; }
.admin-body .company-editor-card .company-automation-row__switch { min-height:0; margin:0; padding:0; align-items:flex-start; border:0; background:transparent; }
.admin-body .company-editor-card .company-automation-row__switch > span { min-width:0; font-weight:400; letter-spacing:0; text-transform:none; }
.admin-body .company-editor-card .company-automation-row__switch strong { color:#25415d; font-size:14px; font-weight:650; letter-spacing:0; line-height:1.3; text-transform:none; }
.admin-body .company-editor-card .company-automation-row__switch small { margin-top:4px; color:#77889b; font-size:11px; font-weight:400; letter-spacing:0; line-height:1.45; text-transform:none; }
.admin-body .company-editor-card .company-automation-row__badges { margin-bottom:6px; display:flex; flex-wrap:wrap; gap:5px; }
.admin-body .company-editor-card .company-automation-row__badges em { padding:0; color:#52789d; border-radius:0; background:transparent; font-size:9px; font-style:normal; font-weight:600; letter-spacing:0; line-height:1.2; text-transform:none; }
.admin-body .company-editor-card .company-automation-row__badges em + em::before { margin-right:5px; color:#a6b3c0; content:"·"; }
.admin-body .company-editor-card .company-automation-row__badges em.is-essential { color:#9a672c; background:transparent; }
.admin-body .company-editor-card .company-automation-row__status { padding:0; color:#7a8998; border-radius:0; background:transparent; font-size:10px; font-weight:600; line-height:1; text-transform:none; }
.admin-body .company-editor-card .company-automation-row.is-enabled .company-automation-row__status { color:#2b8667; background:transparent; }
.admin-body .company-editor-card .company-automation-row__status::before { width:6px; height:6px; margin-right:5px; display:inline-block; border-radius:50%; background:#aab6c1; content:""; vertical-align:1px; }
.admin-body .company-editor-card .company-automation-row.is-enabled .company-automation-row__status::before { background:#39a77f; }
.admin-body .company-editor-card .company-automation-row__configure { min-height:32px; padding:0 9px; color:#3c6e9f; border-color:#d7e3ee; background:#fbfdff; font-size:11px; font-weight:600; white-space:nowrap; }
.admin-body .company-editor-card .company-automation-row__note { margin:-3px 13px 12px 43px; color:#687d92; font-size:10px; line-height:1.45; }
.admin-body .company-editor-card .company-automation-row__settings { padding:14px 16px 16px 43px; display:grid; gap:12px; border-top:1px solid #e1eaf3; background:#f3f8fd; }
.admin-body .company-editor-card .company-automation-row__settings[hidden] { display:none; }
.admin-body .company-editor-card .company-automation-row__preference { min-height:58px; margin:0; border-color:#d3e1ee; background:#fff; }
.admin-body .company-editor-card .company-automation-row__settings .company-option-select { max-width:560px; display:grid; gap:7px; }
.admin-body .company-editor-card .company-automation-row__settings .company-option-select > span { color:#536b84; font-size:10px; font-weight:950; letter-spacing:.05em; text-transform:uppercase; }
.admin-body .company-editor-card .company-automation-row__settings .company-option-select select { width:100%; min-height:42px; padding:0 11px; color:#173451; border:1px solid #c8d8e7; border-radius:9px; background:#fff; font-size:13px; font-weight:800; }
.admin-body .company-editor-card .company-automation-row__technical { padding-top:2px; }
.admin-body .company-editor-card .company-automation-row__technical summary { width:max-content; color:#5e7185; font-size:10px; font-weight:900; cursor:pointer; }
.admin-body .company-editor-card .company-automation-row__technical > p { margin:8px 0 0; color:#7b694e; font-size:10px; line-height:1.45; }
.admin-body .company-editor-card .company-automation-row__technical > div { margin-top:10px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.admin-body .company-editor-card .company-automation-row__technical label { min-width:0; display:grid; gap:5px; }
.admin-body .company-editor-card .company-automation-row__technical label > span { color:#687d94; font-size:9px; font-weight:950; letter-spacing:.05em; text-transform:uppercase; }
.admin-body .company-editor-card .company-automation-row__technical textarea { width:100%; min-height:58px; padding:9px; resize:vertical; color:#29445f; border:1px solid #cbd9e8; border-radius:9px; background:#fff; font:11px/1.45 Consolas,monospace; box-sizing:border-box; }
/* Ajustes de las automatizaciones de partes de trabajo (fase 3). */
.admin-body .company-editor-card .company-work-report-settings { margin:0 0 12px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.admin-body .company-editor-card .company-work-report-settings label { min-width:0; display:grid; gap:5px; }
.admin-body .company-editor-card .company-work-report-settings label > span { color:#173451; font-size:12px; font-weight:800; }
.admin-body .company-editor-card .company-work-report-settings input { width:100%; min-height:40px; padding:0 11px; color:#173451; border:1px solid #c8d8e7; border-radius:9px; background:#fff; font-size:13px; box-sizing:border-box; }
.admin-body .company-editor-card .company-work-report-settings small { color:#5e7185; font-size:11px; line-height:1.4; }
@media (max-width:760px) { .admin-body .company-editor-card .company-work-report-settings { grid-template-columns:1fr; } }
@media (max-width:1380px) {
    .employee-editor-identity-layout,.employee-editor-work-layout,.employee-editor-app-layout { grid-template-columns:1fr; }
    .employee-editor-help { position:static; }
}
@media (max-width:1200px) {
    .employee-edit-hero { align-items:flex-start; flex-direction:column; }
    .employee-edit-hero-actions { width:100%; justify-content:flex-start; }
    .employee-photo-layout,.employee-editor-highlight-grid,.employee-switch-grid,.employee-app-menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employee-automation-policy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employee-editor-highlight-grid--work,.employee-centre-methods { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-body .company-editor-card .company-automation-overview { grid-template-columns:repeat(3,minmax(110px,1fr)); }
    .admin-body .company-editor-card .company-automation-overview p { grid-column:1/-1; }
}
@media (max-width:760px) {
    .employee-edit-identity { align-items:flex-start; flex-direction:column; }
    .employee-edit-identity h1 { font-size:26px; }
    .employee-editor-tabs { overflow:auto; }
    .employee-editor-tabs button { flex:0 0 auto; }
    .employee-photo-layout,.employee-editor-highlight-grid,.employee-switch-grid,.employee-app-menu-grid,.employee-annual-hours-grid,.employee-location-policies,.employee-centre-methods,.employee-web-access-layout { grid-template-columns:1fr; }
    .employee-automation-policy-grid,.employee-automation-grid { grid-template-columns:1fr; }
    .employee-automation-group__heading { flex-direction:column; gap:8px; }
    .employee-automation-group__heading p { max-width:none; text-align:left; }
    .admin-body .company-editor-card .company-automation-overview { padding:13px; grid-template-columns:1fr; }
    .admin-body .company-editor-card .company-automation-overview > div { padding:0 0 8px; border-right:0; border-bottom:1px solid #dce7f2; }
    .admin-body .company-editor-card .company-automation-overview p { grid-column:auto; }
    .admin-body .company-editor-card .company-automation-panel > h3 > button { min-height:88px; padding:12px; grid-template-columns:34px minmax(0,1fr) 16px; gap:10px; }
    .admin-body .company-editor-card .company-automation-panel__count { grid-column:2; width:max-content; }
    .admin-body .company-editor-card .company-automation-panel__chevron { grid-column:3; grid-row:1/3; }
    .admin-body .company-editor-card .company-automation-panel__body { padding:5px 9px 10px; }
    .admin-body .company-editor-card .company-automation-row__summary,
    .admin-body .company-editor-card .company-automation-row--simple .company-automation-row__summary { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
    .admin-body .company-editor-card .company-automation-row__switch { grid-column:1/-1; }
    .admin-body .company-editor-card .company-automation-row__status { grid-column:1; grid-row:2; margin-left:30px; width:max-content; }
    .admin-body .company-editor-card .company-automation-row__configure { grid-column:2; grid-row:2; }
    .admin-body .company-editor-card .company-automation-row__settings { padding:13px; }
    .admin-body .company-editor-card .company-automation-row__technical > div { grid-template-columns:1fr; }
    .employee-access-fields .employee-qr-field { grid-column:auto; }
    .employee-centre-validation > header,.employee-centre-validation__footer { align-items:flex-start; flex-direction:column; }
    .worker-portal-link { grid-template-columns:1fr; }
    .employee-editor-card { padding:20px; }
}
.history-hero-v2 { margin:0 0 18px; padding:24px; display:flex; align-items:center; justify-content:space-between; gap:22px; border:1px solid #d5e4f3; border-radius:18px; background:linear-gradient(135deg,#ffffff 0%,#f2f8ff 58%,#eaf5ff 100%); box-shadow:0 18px 42px rgba(19,55,91,.08); }
.history-hero-v2__main { min-width:0; display:flex; align-items:center; gap:18px; }
.history-avatar { position:relative; flex:0 0 auto; width:92px; height:92px; display:grid; place-items:center; overflow:hidden; border:1px solid #cfe0f2; border-radius:24px; background:#eef6ff; box-shadow:inset 0 0 0 6px rgba(255,255,255,.75),0 12px 28px rgba(28,73,117,.12); color:#0b67c8; font-size:28px; font-weight:950; letter-spacing:.02em; }
.history-avatar img { width:100%; height:100%; display:block; object-fit:cover; }
.history-title-block { min-width:0; }
.history-title-block .panel-kicker { margin-bottom:7px; display:block; }
.history-title-block h1 { margin:0; color:#132946; font-size:34px; line-height:1.08; letter-spacing:-.035em; }
.history-title-block p { margin:9px 0 0; color:#5d7189; font-size:15px; line-height:1.45; }
.history-pills { margin-top:13px; display:flex; flex-wrap:wrap; gap:8px; }
.history-pills span,.history-hero-v2 .employee-live-state { min-height:30px; padding:7px 11px; display:inline-flex; align-items:center; gap:6px; border:1px solid #dbe8f5; border-radius:999px; background:rgba(255,255,255,.82); color:#294461; font-size:12px; font-weight:900; }
.history-hero-v2 .employee-live-state i { width:7px; height:7px; border-radius:50%; background:#7b91a9; }
.history-hero-v2__actions { flex:0 0 auto; display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.history-hero-v2__actions .btn { min-height:42px; }
.history-control-v2 { margin:0 0 18px; padding:15px 18px; display:grid; grid-template-columns:auto minmax(280px,1fr) auto auto; align-items:center; gap:16px; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.05); }
.history-control-v2__stats { min-width:0; display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; color:#637891; font-size:12px; font-weight:800; }
.history-control-v2__stats span { min-height:34px; padding:8px 12px; display:inline-flex; align-items:center; gap:6px; border:1px solid #edf3f9; border-radius:999px; background:#f8fbff; white-space:nowrap; }
.history-control-v2__stats strong { color:#0e2c50; font-size:15px; font-weight:950; }
.history-control-v2 > .employee-history-updated { display:none; }
.employee-history-area .employee-commandbar { margin-bottom:0; }
.employee-history-hero .employee-command-actions { align-items: center; }
.employee-history-recalculate { margin: 0; }
.employee-history-toolbar { margin: 0 0 18px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #d9e6f3; border-radius: 15px; background: #fff; box-shadow: 0 10px 28px rgba(30,62,96,.05); }
.employee-history-year-form { display: flex; align-items: center; gap: 10px; }
.employee-history-year-form label { color: #64748b; font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.employee-history-year-form select { min-width: 130px; height: 42px; padding: 0 38px 0 14px; color: #17314f; border: 1px solid #c9daec; border-radius: 10px; background: #f8fbff; font-weight: 850; }
.employee-history-toolbar__actions { display: flex; align-items: center; gap: 8px; }
.employee-history-updated { color: #6d7f96; font-size: 12px; font-weight: 700; }
.employee-history-kpis { margin-bottom:18px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.employee-history-kpis article { position:relative; min-height:122px; padding:20px 20px 18px; overflow:hidden; border:1px solid #dce8f4; border-radius:17px; background:#fff; box-shadow:0 12px 30px rgba(32,61,91,.055); }
.employee-history-kpis article::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,#0b67c8,#23a6a0); }
.employee-history-kpis article::after { content:""; position:absolute; right:-26px; top:-32px; width:92px; height:92px; border-radius:50%; background:rgba(11,103,200,.08); }
.employee-history-kpis article:nth-child(2)::before { background:linear-gradient(90deg,#0e8a67,#28c18f); }
.employee-history-kpis article:nth-child(3)::before { background:linear-gradient(90deg,#e58a1f,#ffbd65); }
.employee-history-kpis article:nth-child(4)::before { background:linear-gradient(90deg,#4757d6,#7e92ff); }
.employee-history-kpis span { position:relative; z-index:1; display:block; color:#6c7f96; font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.employee-history-kpis strong { position:relative; z-index:1; margin-top:10px; display:block; color:#0f2848; font-size:27px; line-height:1.06; letter-spacing:-.025em; }
.employee-history-kpis small { position:relative; z-index:1; margin-top:9px; display:block; color:#70849c; font-size:13px; line-height:1.35; }
.employee-history-kpis article.is-positive strong,.employee-history-month .is-positive,.employee-history-week .is-positive,.employee-history-day.is-positive dd:last-child { color: #07825c; }
.employee-history-kpis article.is-negative strong,.employee-history-month .is-negative,.employee-history-week .is-negative,.employee-history-day.is-negative dd:last-child { color: #c84646; }
.employee-history-chart-panel { margin-bottom: 18px; }
.employee-history-legend { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: #60758d; font-size: 12px; font-weight: 800; }
.employee-history-legend span::before { content: ""; width: 9px; height: 9px; margin-right: 5px; display: inline-block; border-radius: 3px; vertical-align: -1px; }
.employee-history-legend .planned::before { background: #ff9fb7; }
.employee-history-legend .worked::before { background: #ffc47f; }
.employee-history-legend .incidence::before { background: #ffe09b; }
.employee-history-legend .complementary::before { background: #99d3ff; }
.employee-history-chart { min-height:340px; padding:34px 0 8px; display:grid; grid-template-columns:58px minmax(0,1fr); gap:12px; overflow-x:visible; overflow-y:visible; border-top:1px solid #edf3f9; }
.employee-history-chart__axis { height:250px; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; color:#5f7187; font-size:12px; font-weight:800; }
.employee-history-chart__plot { min-width:720px; display:grid; grid-template-columns:repeat(auto-fit,minmax(118px,1fr)); gap:18px; padding-right:4px; overflow:visible; background:repeating-linear-gradient(to bottom,#e6edf5 0,#e6edf5 1px,transparent 1px,transparent 62px); }
.employee-history-chart__month { min-width:118px; display:grid; align-items:end; gap:10px; text-align:center; }
.employee-history-chart__bars { position:relative; height:250px; padding:0 10px; display:flex; align-items:end; justify-content:center; gap:8px; border-bottom:1px solid #cfdbe7; }
.employee-history-chart__bars i { position:relative; flex:1 1 0; max-width:38px; min-width:22px; min-height:2px; border-radius:8px 8px 0 0; box-shadow:inset 0 -10px 16px rgba(255,255,255,.18); }
.employee-history-chart__tooltip { position:absolute; z-index:4; left:50%; top:14px; display:none; min-width:210px; padding:10px 11px; transform:translateX(-50%); border:1px solid #d5e3f1; border-radius:11px; background:#fff; color:#28415f; font-size:12px; font-weight:850; text-align:left; box-shadow:0 12px 30px rgba(22,49,78,.18); }
.employee-history-chart__month:first-child .employee-history-chart__tooltip { left:0; transform:none; }
.employee-history-chart__month:last-child .employee-history-chart__tooltip { left:auto; right:0; transform:none; }
.employee-history-chart__tooltip b { margin-bottom:6px; display:block; color:#122b49; font-size:13px; }
.employee-history-chart__tooltip em { display:flex; align-items:center; gap:7px; font-style:normal; line-height:1.55; }
.employee-history-chart__tooltip i { width:9px; min-width:9px; height:9px !important; flex:0 0 9px; border-radius:3px; box-shadow:none; }
.employee-history-chart__bars:hover .employee-history-chart__tooltip { display:grid; }
.employee-history-chart__bars .planned { background: #ff9fb7; }
.employee-history-chart__bars .worked { background: #ffc47f; }
.employee-history-chart__bars .incidence { background: #ffe09b; }
.employee-history-chart__bars .complementary { background: #99d3ff; }
.employee-history-chart__month strong { color:#405a77; font-size:13px; font-weight:900; text-transform:capitalize; }
.employee-history-detail { display: grid; gap: 18px; }
.employee-history-detail-toolbar { padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #d9e6f3; border-radius:15px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.05); }
.employee-history-detail-toolbar h2 { margin:4px 0 0; color:#142b49; font-size:20px; }
.employee-history-detail-toolbar .period-tabs { padding:4px; display:flex; gap:3px; border:1px solid #d6e3f0; border-radius:999px; background:#f5f9fe; }
.employee-history-detail-toolbar .period-tabs button { min-width:76px; padding:10px 15px; border:0; border-radius:999px; background:transparent; color:#496078; font-weight:900; cursor:pointer; }
.employee-history-detail-toolbar .period-tabs button.active { background:#0759a5; color:#fff; box-shadow:0 8px 20px rgba(7,89,165,.22); }
.employee-history-month { padding: 18px; border: 1px solid #d9e6f3; border-radius: 16px; background: #fff; box-shadow: 0 10px 28px rgba(30,62,96,.05); }
.employee-history-month > header { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.employee-history-month > header[role="button"] { cursor:pointer; }
.employee-history-month > header[role="button"]:hover h2 { color:#0759a5; }
.employee-history-detail.is-group-year .employee-history-month > header[role="button"]::after { content:"Abrir mes"; margin-left:auto; padding:7px 10px; border:1px solid #d5e6f6; border-radius:999px; background:#f0f7ff; color:#0759a5; font-size:11px; font-weight:900; }
.employee-history-month h2 { margin: 4px 0 0; color: #142b49; font-size: 22px; }
.employee-history-month p { margin: 5px 0 0; color: #6c7e94; font-size: 13px; }
.employee-history-month > header > strong { padding: 8px 13px; border: 1px solid #e3ebf4; border-radius: 999px; background: #f8fbff; font-size: 14px; }
.employee-history-weeks { display: grid; gap: 10px; }
.employee-history-week { border: 1px solid #e1ebf5; border-radius: 13px; background: #fbfdff; }
.employee-history-week summary { padding: 13px 15px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; cursor: pointer; color: #183150; font-weight: 850; }
.employee-history-week summary small { color: #73869c; font-size: 12px; }
.employee-history-week summary strong { padding: 6px 10px; border-radius: 999px; background: #fff; font-size: 12px; }
.employee-history-days { padding: 0 12px 12px; display: grid; gap: 8px; }
.employee-history-day { width: 100%; padding: 12px 13px; display: grid; grid-template-columns: minmax(230px,1.1fr) minmax(420px,2fr); gap: 14px; align-items: center; border: 1px solid #dfeaf5; border-radius: 12px; background: #fff; text-align: left; cursor: pointer; }
.employee-history-day:hover { border-color: #b9d4ef; box-shadow: 0 8px 18px rgba(35,74,118,.07); }
.employee-history-day > span strong { display: block; color: #17314f; font-size: 14px; text-transform: capitalize; }
.employee-history-day > span small { margin-top: 3px; display: block; overflow: hidden; color: #73869c; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.employee-history-day dl,.employee-history-day-totals { margin: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.employee-history-day dl div,.employee-history-day-totals div { padding: 8px 10px; border: 1px solid #edf2f7; border-radius: 10px; background: #f8fbff; }
.employee-history-day dt,.employee-history-day-totals dt { color: #73869c; font-size: 10px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.employee-history-day dd,.employee-history-day-totals dd { margin: 3px 0 0; color: #17314f; font-size: 13px; font-weight: 900; }
.employee-history-detail.is-group-year .employee-history-weeks { display:none; }
.employee-history-detail.is-group-year .employee-history-month > header { margin-bottom:0; }
.employee-history-detail.is-group-month .employee-history-days { display:none; }
.employee-history-detail.is-group-month .employee-history-week summary { cursor:pointer; }
.employee-history-detail.is-group-month .employee-history-week summary::after { content:"Abrir semana"; justify-self:end; padding:6px 9px; border:1px solid #d5e6f6; border-radius:999px; background:#f0f7ff; color:#0759a5; font-size:11px; font-weight:900; }
.employee-history-detail.is-group-week .employee-history-week[open] > summary { border-bottom:1px solid #e4edf6; }
.employee-history-modal[hidden] { display: none; }
.employee-history-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 28px; }
.employee-history-modal__backdrop { position: absolute; inset: 0; background: rgba(10,24,42,.55); }
.employee-history-modal__dialog { position: relative; width: min(900px,100%); max-height: 86vh; overflow: auto; padding: 24px; border-radius: 16px; background: #fff; box-shadow: 0 30px 70px rgba(0,0,0,.25); }
.employee-history-modal__close { position: absolute; top: 12px; right: 14px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: #eef5fc; color: #0f64bf; font-size: 24px; font-weight: 900; cursor: pointer; }
.employee-history-day-modal-content header { margin: 0 36px 16px 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.employee-history-day-modal-content h2 { margin: 4px 0 0; color: #142b49; font-size: 24px; }
.employee-history-day-modal-content p { margin: 5px 0 0; color: #6f8196; }
.employee-history-day-modal-content header > strong { padding: 9px 14px; border: 1px solid #b9edd7; border-radius: 999px; background: #effdf7; color: #07825c; font-size: 14px; }
.employee-history-day-totals { margin-bottom: 14px; }
.employee-history-day-observations { padding: 12px 14px; border: 1px solid #f4d9a8; border-radius: 12px; background: #fff8eb; color: #895d15; font-weight: 750; }
.employee-history-punch-list { margin: 0; padding: 0; display: grid; gap: 9px; list-style: none; }
.employee-history-punch-list li { padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #e0eaf5; border-radius: 12px; background: #fff; }
.employee-history-punch-list li.is-open { border-color: #f7cda5; background: #fff8f1; }
.employee-history-punch-list strong { color: #0e498a; font-size: 16px; }
.employee-history-punch-list small { margin-top: 4px; display: block; color: #6f8196; font-size: 12px; }
.employee-history-punch-list nav { display: flex; gap: 7px; }
.employee-history-punch-list a { padding: 8px 10px; border: 1px solid #cfe0f2; border-radius: 9px; background: #f2f7fd; color: #0f64bf; font-size: 12px; font-weight: 850; text-decoration: none; }
.history-recalc-modal[hidden],.history-recalc-busy[hidden] { display:none; }
.history-recalc-modal { position:fixed; inset:0; z-index:1100; display:grid; place-items:center; padding:28px; }
.history-recalc-busy { position:fixed; right:24px; bottom:24px; z-index:1100; display:block; padding:0; pointer-events:none; }
.history-recalc-modal__backdrop { position:absolute; inset:0; background:rgba(10,24,42,.58); backdrop-filter:blur(2px); }
.history-recalc-modal__dialog { position:relative; width:min(560px,100%); padding:28px; display:grid; gap:18px; border:1px solid #d7e6f5; border-radius:20px; background:#fff; box-shadow:0 32px 80px rgba(0,0,0,.28); }
.history-recalc-modal__icon { width:58px; height:58px; display:grid; place-items:center; border-radius:18px; background:linear-gradient(135deg,#eaf4ff,#dff8f5); color:#0b67c8; font-size:30px; font-weight:950; }
.history-recalc-modal h2 { margin:5px 0 0; color:#132946; font-size:26px; line-height:1.1; }
.history-recalc-modal p { margin:8px 0 0; color:#60758d; font-size:15px; line-height:1.45; }
.history-recalc-modal__actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.history-recalc-busy > div { width:min(360px,calc(100vw - 48px)); padding:16px 18px; display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:12px; row-gap:2px; text-align:left; border:1px solid #bdd7f0; border-radius:16px; background:#fff; box-shadow:0 18px 48px rgba(19,55,91,.2); }
.history-recalc-spinner { grid-row:span 2; width:32px; height:32px; border:4px solid #dbeafe; border-top-color:#0b67c8; border-radius:50%; animation:history-spin .8s linear infinite; }
.history-recalc-busy strong { color:#132946; font-size:16px; }
.history-recalc-busy p { margin:0; color:#60758d; font-size:12px; line-height:1.35; }
@keyframes history-spin { to { transform:rotate(360deg); } }
@media (max-width: 1100px) { .history-hero-v2 { align-items:flex-start; flex-direction:column; }.history-hero-v2__actions { justify-content:flex-start; }.history-control-v2 { grid-template-columns:1fr; align-items:flex-start; }.history-control-v2__stats { justify-content:flex-start; }.employee-history-chart { overflow-x:auto; }.employee-history-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }.employee-history-toolbar { align-items: flex-start; flex-direction: column; }.employee-history-day { grid-template-columns: 1fr; }.employee-history-day dl { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .history-hero-v2 { padding:20px; }.history-hero-v2__main { align-items:flex-start; flex-direction:column; }.history-avatar { width:78px; height:78px; border-radius:20px; }.history-title-block h1 { font-size:26px; }.history-hero-v2__actions,.history-hero-v2__actions .btn,.history-hero-v2__actions form { width:100%; }.history-hero-v2__actions .btn,.history-hero-v2__actions button { width:100%; justify-content:center; }.history-control-v2__stats span { width:100%; justify-content:space-between; }.employee-history-kpis { grid-template-columns: 1fr; }.employee-history-week summary { grid-template-columns: 1fr; }.employee-history-day-totals { grid-template-columns: 1fr 1fr; }.employee-history-punch-list li { align-items: flex-start; flex-direction: column; } }
@media print { .private-sidebar,.admin-topbar,.history-hero-v2__actions,.employee-command-actions,.employee-history-toolbar__actions,.employee-history-modal { display: none !important; }.admin-content,.admin-main { margin: 0 !important; padding: 0 !important; }.history-hero-v2,.history-control-v2,.employee-history-chart-panel,.employee-history-month,.employee-history-kpis article { box-shadow: none !important; } }

/* Área pública 2026: recorrido real, páginas de producto y contenidos comerciales */
.public-page-root { overflow-x: hidden; }
.product-tour { scroll-margin-top: 88px; }
.product-tour__tabs { margin: 34px 0 0; padding: 7px; display: flex; gap: 6px; overflow-x: auto; border: 1px solid #d7e4f1; border-radius: 14px; background: #f4f8fc; scrollbar-width: thin; }
.product-tour__tabs button { min-height: 46px; padding: 0 20px; flex: 1 0 auto; color: #5e7188; border: 0; border-radius: 10px; background: transparent; font: inherit; font-size: 13px; font-weight: 850; cursor: pointer; transition: color .18s ease,background .18s ease,box-shadow .18s ease; }
.product-tour__tabs button:hover { color: var(--blue-deep); background: #fff; }
.product-tour__tabs button[aria-selected="true"] { color: #fff; background: linear-gradient(135deg,#086bd0,#0759a5); box-shadow: 0 8px 20px rgba(7,89,165,.22); }
.product-tour__tabs button:focus-visible { outline: 3px solid rgba(7,105,207,.28); outline-offset: 2px; }
.product-tour__panels { margin-top: 18px; }
.product-tour__panel { min-height: 530px; padding: clamp(24px,4vw,46px); display: grid; grid-template-columns: minmax(240px,.62fr) minmax(0,1.38fr); align-items: center; gap: clamp(28px,5vw,65px); border: 1px solid #d5e3ef; border-radius: 24px; background: radial-gradient(circle at 90% 10%,rgba(117,202,255,.22),transparent 30%),linear-gradient(145deg,#fff,#f2f8fe); box-shadow: 0 28px 70px rgba(19,57,95,.11); }
.product-tour__panel[hidden] { display: none; }
.product-tour__copy { min-width: 0; }
.product-tour__copy .tour-number { width: 48px; height: 48px; margin-bottom: 24px; display: grid; place-items: center; color: var(--blue); border: 1px solid #cfe1f4; border-radius: 15px; background: #eef6ff; font-size: 13px; font-weight: 950; }
.product-tour__copy h3 { margin: 8px 0 18px; color: var(--ink); font-size: clamp(30px,3vw,44px); line-height: 1.06; letter-spacing: -1.6px; }
.product-tour__copy > p:not(.eyebrow) { color: #60738a; font-size: 16px; line-height: 1.65; }
.tour-points { margin: 24px 0 0; padding: 0; display: grid; gap: 11px; list-style: none; color: #314a65; font-size: 13px; font-weight: 800; }
.tour-points li { padding-left: 25px; position: relative; }
.tour-points li:before { content: '\2713'; position: absolute; left: 0; color: #118d5d; font-weight: 950; }
.tour-screen { margin: 0; min-width: 0; overflow: hidden; border: 1px solid #cbdcea; border-radius: 17px; background: #fff; box-shadow: 0 24px 50px rgba(15,49,84,.16); }
.tour-screen img { width: 100%; height: auto; display: block; }
.tour-screen figcaption { padding: 12px 16px; display: flex; justify-content: space-between; gap: 12px; color: #6e8198; background: #fff; font-size: 11px; font-weight: 800; }
.product-tour__panel--app { grid-template-columns: minmax(250px,.72fr) minmax(360px,1.28fr); }
.tour-app-screens { min-height: 440px; display: flex; justify-content: center; align-items: center; gap: 24px; }
.tour-app-screens figure { width: min(31%,220px); margin: 0; padding: 8px; border: 1px solid #c7d8e7; border-radius: 30px; background: #0c2540; box-shadow: 0 24px 48px rgba(10,39,70,.2); }
.tour-app-screens figure:first-child { transform: translateY(-16px) rotate(-3deg); }
.tour-app-screens figure:last-child { transform: translateY(16px) rotate(3deg); }
.tour-app-screens img { width: 100%; height: auto; display: block; border-radius: 22px; }
.tour-app-screens figcaption { padding: 10px 2px 4px; color: #dbeafa; text-align: center; font-size: 11px; font-weight: 850; }

.product-page-hero,.pricing-hero,.security-hero { max-width: 1440px; margin: 0 auto; padding: clamp(70px,8vw,118px) clamp(24px,5vw,72px); display: grid; grid-template-columns: minmax(0,.82fr) minmax(440px,1.18fr); align-items: center; gap: clamp(45px,6vw,90px); }
.product-page-hero { background: radial-gradient(circle at 74% 25%,rgba(104,193,255,.2),transparent 32%); }
.product-page-hero h1,.pricing-hero h1,.security-hero h1 { margin: 14px 0 22px; color: var(--ink); font-size: clamp(46px,5.5vw,75px); line-height: 1.01; letter-spacing: -3px; }
.product-page-hero h1 span { color: var(--blue); }
.product-page-hero > div > p:not(.eyebrow),.pricing-hero > div > p:not(.eyebrow),.security-hero > div > p:not(.eyebrow) { max-width: 650px; color: #5d7088; font-size: 19px; line-height: 1.6; }
.product-page-hero__visual { margin: 0; overflow: hidden; border: 1px solid #cadceb; border-radius: 20px; background: #fff; box-shadow: 0 30px 80px rgba(17,55,91,.18); transform: perspective(1200px) rotateY(-4deg) rotateX(1deg); }
.product-page-hero__visual img { width: 100%; height: auto; display: block; }
.product-page-hero__visual figcaption { padding: 15px 18px; display: flex; justify-content: space-between; gap: 15px; color: #6a7c92; font-size: 12px; }
.product-page-hero__visual figcaption strong { color: #17395e; }
.audience-grid,.use-case-grid,.modality-grid,.security-grid { margin-top: 38px; display: grid; gap: 18px; }
.audience-grid { grid-template-columns: repeat(3,1fr); }
.audience-grid article,.use-case-grid article,.modality-grid article,.security-grid article { padding: 28px; border: 1px solid #d5e2ef; border-radius: 17px; background: #fff; box-shadow: 0 16px 38px rgba(18,56,92,.07); }
.audience-grid article > span,.use-case-grid article > span,.modality-grid article > span,.security-grid article > span { width: 45px; height: 45px; display: grid; place-items: center; color: #0767c4; border-radius: 13px; background: #eaf4ff; font-size: 12px; font-weight: 950; }
.audience-grid h3,.use-case-grid h3,.modality-grid h3,.security-grid h3 { margin: 18px 0 9px; color: var(--ink); font-size: 22px; }
.audience-grid p,.use-case-grid p,.modality-grid p,.security-grid p { color: #63768d; line-height: 1.58; }
.audience-grid ul { margin: 18px 0 0; padding: 17px 0 0; display: grid; gap: 7px; border-top: 1px solid #e3eaf1; list-style: none; color: #40566f; font-size: 12px; font-weight: 800; }
.audience-grid li:before { content: '\2022'; margin-right: 8px; color: #168f61; }
.use-case-grid { grid-template-columns: repeat(4,1fr); }
.comparison-table { margin-top: 36px; overflow-x: auto; border: 1px solid #d5e2ef; border-radius: 17px; background: #fff; box-shadow: 0 18px 44px rgba(18,56,92,.08); }
.comparison-table table { width: 100%; min-width: 880px; border-collapse: collapse; }
.comparison-table th,.comparison-table td { padding: 17px 20px; text-align: left; border-bottom: 1px solid #e2e9f1; }
.comparison-table thead th { color: #61738a; background: #f5f8fc; font-size: 11px; letter-spacing: .7px; text-transform: uppercase; }
.comparison-table tbody th { color: #173654; font-size: 14px; }
.comparison-table td { color: #5f728a; font-size: 13px; }
.comparison-table tbody tr:last-child th,.comparison-table tbody tr:last-child td { border-bottom: 0; }
.comparison-table .yes { color: #0c8958; font-weight: 850; }

.pricing-hero { max-width: none; background: radial-gradient(circle at 83% 18%,rgba(51,179,139,.2),transparent 29%),linear-gradient(180deg,#f4faff,#fff); }
.price-formula { padding: 34px; border: 1px solid #cfe1ef; border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 26px 70px rgba(14,55,90,.13); }
.price-formula > span { color: #0870d3; font-size: 11px; font-weight: 950; letter-spacing: 1px; }
.price-formula div { margin: 18px 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; }
.price-formula strong { min-height: 92px; padding: 18px; display: grid; place-items: center; text-align: center; color: #173552; border: 1px solid #d7e4ef; border-radius: 15px; background: #f7fbff; font-size: 17px; line-height: 1.35; }
.price-formula i { color: #0d8d5b; font-size: 28px; font-style: normal; font-weight: 800; }
.price-formula small { color: #61758c; font-size: 12px; font-weight: 750; }
.pricing-steps ol { max-width: 1050px; margin: 40px auto 0; padding: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; list-style: none; }
.pricing-steps li { padding: 28px; display: flex; gap: 18px; border-top: 3px solid #0a6dcc; background: #f8fbfe; }
.pricing-steps li > span { color: #0a6dcc; font-size: 12px; font-weight: 950; }
.pricing-steps h3 { margin: 0 0 8px; color: var(--ink); font-size: 22px; }
.pricing-steps p { margin: 0; color: #64768d; line-height: 1.6; }
.pricing-card-grid { margin-top: 38px; display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.pricing-card-grid article { padding: 32px; display: flex; flex-direction: column; border: 1px solid #d4e2ee; border-radius: 19px; background: #fff; box-shadow: 0 18px 44px rgba(18,56,92,.08); }
.pricing-card-grid article > span { color: #597087; font-size: 10px; font-weight: 950; letter-spacing: 1px; }
.pricing-card-grid h3 { margin: 11px 0; color: var(--ink); font-size: 28px; }
.pricing-card-grid p { color: #62758b; line-height: 1.58; }
.pricing-card-grid ul { margin: 20px 0 28px; padding: 20px 0 0; display: grid; gap: 10px; border-top: 1px solid #e1e9f1; list-style: none; color: #344c65; font-size: 13px; font-weight: 800; }
.pricing-card-grid li:before { content: '\2713'; margin-right: 9px; color: #148b5d; }
.pricing-card-grid a { margin-top: auto; color: #0664bd; font-size: 13px; font-weight: 900; }
.pricing-card--featured { border-color: #62a9e8 !important; box-shadow: 0 22px 55px rgba(7,89,165,.16) !important; transform: translateY(-8px); }
.included-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: center; }
.included-section h2 { margin: 8px 0 15px; color: var(--ink); font-size: clamp(35px,4vw,51px); line-height: 1.07; letter-spacing: -1.8px; }
.included-section > div > p:not(.eyebrow) { color: #62758c; line-height: 1.6; }
.included-section > ul { margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; list-style: none; }
.included-section > ul li { min-height: 48px; padding: 0 15px 0 44px; position: relative; display: flex; align-items: center; color: #314a64; border: 1px solid #d7e3ef; border-radius: 11px; background: #f8fbfe; font-size: 13px; font-weight: 850; }
.included-section > ul li:before { content: '\2713'; width: 24px; height: 24px; position: absolute; left: 11px; display: grid; place-items: center; color: #0e8b5b; border-radius: 50%; background: #ddf5ea; }

.security-hero { max-width: none; background: radial-gradient(circle at 82% 20%,rgba(100,181,248,.25),transparent 30%),linear-gradient(180deg,#f4f9ff,#fff); }
.security-visual { min-height: 380px; position: relative; display: grid; place-items: center; }
.security-visual b { width: 200px; height: 200px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: linear-gradient(135deg,#0759a5,#0a77d8); box-shadow: 0 30px 70px rgba(7,89,165,.28); font-size: 15px; letter-spacing: 1px; }
.security-visual span { padding: 12px 17px; position: absolute; color: #244362; border: 1px solid #cfe0ef; border-radius: 999px; background: #fff; box-shadow: 0 12px 30px rgba(17,55,91,.12); font-size: 11px; font-weight: 900; }
.security-visual span:nth-child(1) { top: 20px; left: 20%; }.security-visual span:nth-child(2) { top: 45%; right: 2%; }.security-visual span:nth-child(3) { bottom: 24px; left: 15%; }
.security-grid { grid-template-columns: repeat(4,1fr); }
.security-detail { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); align-items: center; gap: 65px; }
.security-detail h2,.transition-section h2 { margin: 8px 0 18px; color: var(--ink); font-size: clamp(36px,4vw,52px); line-height: 1.05; letter-spacing: -1.8px; }
.security-detail > div > p:not(.eyebrow),.transition-section > div > p:not(.eyebrow) { color: #60738a; font-size: 16px; line-height: 1.65; }
.transition-section { display: grid; grid-template-columns: minmax(0,1fr) minmax(420px,.85fr); align-items: center; gap: 65px; }
.transition-flow { padding: 30px; display: grid; grid-template-columns: 1fr auto 1.2fr auto 1fr; align-items: center; gap: 10px; border: 1px solid #d4e2ee; border-radius: 18px; background: #f7fbff; }
.transition-flow span,.transition-flow strong { min-height: 80px; padding: 15px; display: grid; place-items: center; text-align: center; border-radius: 13px; }
.transition-flow span { color: #486079; background: #fff; border: 1px solid #dae5ef; font-size: 12px; font-weight: 850; }
.transition-flow strong { color: #fff; background: #0759a5; font-size: 14px; }
.transition-flow i { color: #0b76d8; font-style: normal; font-weight: 950; }

.video-section { display: grid; grid-template-columns: minmax(270px,.55fr) minmax(0,1.45fr); align-items: center; gap: 60px; background: linear-gradient(145deg,#082f5e,#061f3d); border-radius: 26px; }
.video-section__copy h2 { margin: 8px 0 17px; color: #fff; font-size: clamp(36px,4vw,52px); line-height: 1.06; letter-spacing: -1.8px; }
.video-section__copy > p:not(.eyebrow) { color: #c5d8ea; line-height: 1.65; }
.video-section__copy .text-link { color: #fff; }
.video-frame { overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 17px; background: #020c17; box-shadow: 0 25px 60px rgba(0,0,0,.28); }
.video-frame video { width: 100%; height: auto; display: block; aspect-ratio: 16/9; background: #020c17; }
.tour-button { gap: 10px; cursor: pointer; font: inherit; }
.tour-button > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: #e6f1fc; }
.tour-button > span::after { width: 0; height: 0; margin-left: 2px; content: ""; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid var(--blue); }
.public-body.tour-modal-open { overflow: hidden; }
.public-body.tour-modal-open .fn-chat { display: none; }
.tour-modal { position: fixed; inset: 0; z-index: 10000; padding: clamp(16px,3vw,42px); display: grid; place-items: center; }
.tour-modal[hidden] { display: none; }
.tour-modal__backdrop { position: absolute; inset: 0; background: rgba(3,20,40,.82); backdrop-filter: blur(8px); }
.tour-modal__dialog { box-sizing: border-box; width: min(1180px,100%); max-height: calc(100vh - clamp(32px,6vw,84px)); position: relative; overflow: auto; color: var(--navy); border: 1px solid rgba(255,255,255,.32); border-radius: 24px; background: #fff; box-shadow: 0 35px 110px rgba(0,17,37,.45); }
.tour-modal__header { padding: 25px 28px 22px; display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; border-bottom: 1px solid #dce7f1; background: linear-gradient(135deg,#f5faff,#fff); }
.tour-modal__header .eyebrow { margin: 0 0 7px; color: var(--blue); }
.tour-modal__header h2 { margin: 0; font-size: clamp(27px,3vw,40px); line-height: 1.08; letter-spacing: -1.2px; }
.tour-modal__header p:last-child { margin: 8px 0 0; color: #64778e; }
.tour-modal__close { width: 46px; height: 46px; flex: 0 0 auto; display: grid; place-items: center; cursor: pointer; color: #29425e; border: 1px solid #d4e1ed; border-radius: 13px; background: #edf4fa; font: 700 28px/1 Arial,sans-serif; transition: color .18s ease,background .18s ease,transform .18s ease; }
.tour-modal__close:hover,.tour-modal__close:focus-visible { color: #fff; background: var(--blue); transform: rotate(4deg); }
.tour-modal__video { padding: clamp(12px,2vw,22px); background: #061d36; }
.tour-modal__video video { width: 100%; height: auto; display: block; aspect-ratio: 16/9; border-radius: 14px; background: #020c17; }
.tour-modal__footer { min-height: 72px; padding: 12px 28px; display: flex; align-items: center; justify-content: flex-end; gap: 22px; border-top: 1px solid #dce7f1; }
.tour-modal__footer > span { color: #566b83; font-size: 14px; font-weight: 650; }
@media (max-width: 680px) {
    .tour-modal { padding: 8px; }
    .tour-modal__dialog { max-height: calc(100vh - 16px); border-radius: 18px; }
    .tour-modal__header { padding: 19px 18px 17px; }
    .tour-modal__header p:last-child { display: none; }
    .tour-modal__close { width: 40px; height: 40px; }
    .tour-modal__video { padding: 7px; }
    .tour-modal__footer { padding: 13px 17px; align-items: stretch; flex-direction: column; gap: 9px; }
    .tour-modal__footer .button { width: 100%; }
}
.pricing-preview { display: grid; grid-template-columns: minmax(270px,.67fr) minmax(0,1.33fr); align-items: center; gap: 65px; }
.pricing-preview__intro h2 { margin: 8px 0 18px; color: var(--ink); font-size: clamp(36px,4vw,53px); line-height: 1.06; letter-spacing: -1.8px; }
.pricing-preview__intro > p:not(.eyebrow) { margin-bottom: 25px; color: #60738a; line-height: 1.65; }
.pricing-preview__formula { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 11px; }
.pricing-preview__formula article { min-height: 180px; padding: 22px; border: 1px solid #d6e3ef; border-radius: 16px; background: #f8fbfe; }
.pricing-preview__formula article > span { color: #0b6dcc; font-size: 11px; font-weight: 950; }
.pricing-preview__formula h3 { margin: 24px 0 8px; color: #173653; font-size: 18px; }
.pricing-preview__formula p { margin: 0; color: #687a8f; font-size: 12px; line-height: 1.55; }
.pricing-preview__formula > i { color: #118a5d; font-size: 25px; font-style: normal; font-weight: 950; }

.apps-page--2026 { max-width: none; padding: 0; }
.apps-hero--real { max-width: 1420px; margin: 0 auto; padding: clamp(70px,8vw,115px) clamp(24px,5vw,70px); grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); }
.apps-real-showcase { min-height: 620px; position: relative; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle,rgba(86,183,249,.25),transparent 58%); }
.apps-real-phone { width: min(42%,270px); margin: 0; padding: 8px; position: absolute; border-radius: 35px; background: #0a1d31; box-shadow: 0 30px 70px rgba(12,42,73,.22); }
.apps-real-phone img { width: 100%; height: auto; display: block; border-radius: 27px; }
.apps-real-phone--back { left: 16%; transform: rotate(-6deg) translateY(16px); }
.apps-real-phone--front { right: 16%; z-index: 2; transform: rotate(5deg) translateY(-10px); }
.apps-real-showcase > span { position: absolute; bottom: 12px; color: #637890; font-size: 11px; font-weight: 850; }
.app-feature-story,.worker-web-story { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.55fr); align-items: center; gap: 75px; }
.app-feature-story h2,.worker-web-story h2 { margin: 8px 0 18px; color: var(--ink); font-size: clamp(38px,4vw,55px); line-height: 1.05; letter-spacing: -2px; }
.app-feature-story > div > p:not(.eyebrow),.worker-web-story > div > p:not(.eyebrow) { color: #61748b; font-size: 17px; line-height: 1.65; }
.app-feature-phone { width: min(100%,310px); margin: 0 auto; padding: 9px; border-radius: 38px; background: #0a2038; box-shadow: 0 30px 65px rgba(13,48,81,.22); }
.app-feature-phone img { width: 100%; height: auto; display: block; border-radius: 29px; }
.app-feature-phone figcaption { padding: 12px 4px 5px; color: #d7e7f7; text-align: center; font-size: 11px; font-weight: 850; }
.modality-grid { grid-template-columns: repeat(4,1fr); }
.worker-web-story { grid-template-columns: minmax(270px,.55fr) minmax(0,1.45fr); }

@media (max-width: 1120px) {
    .product-tour__panel,.product-tour__panel--app { grid-template-columns: 1fr; }
    .product-tour__panel { min-height: 0; }
    .product-tour__copy { max-width: 720px; }
    .product-page-hero,.pricing-hero,.security-hero { grid-template-columns: 1fr; }
    .product-page-hero__visual { transform: none; }
    .audience-grid,.pricing-card-grid { grid-template-columns: repeat(3,1fr); }
    .use-case-grid,.security-grid,.modality-grid { grid-template-columns: repeat(2,1fr); }
    .security-detail,.transition-section,.included-section,.video-section,.pricing-preview,.app-feature-story,.worker-web-story { grid-template-columns: 1fr; }
    .video-section__copy { max-width: 720px; }
    .apps-hero--real { grid-template-columns: 1fr; }
    .apps-real-showcase { min-height: 580px; }
}
@media (max-width: 760px) {
    .product-tour__tabs { margin-top: 24px; }
    .product-tour__tabs button { padding: 0 15px; }
    .product-tour__panel { padding: 22px 17px; border-radius: 18px; }
    .product-tour__copy .tour-number { margin-bottom: 16px; }
    .tour-app-screens { min-height: 390px; gap: 9px; }
    .tour-app-screens figure { width: min(42%,185px); }
    .product-page-hero,.pricing-hero,.security-hero { padding-top: 58px; padding-bottom: 65px; }
    .product-page-hero h1,.pricing-hero h1,.security-hero h1 { font-size: 42px; letter-spacing: -1.9px; }
    .product-page-hero { grid-template-columns: minmax(0,1fr); }
    .audience-grid,.use-case-grid,.pricing-card-grid,.security-grid,.modality-grid,.pricing-steps ol { grid-template-columns: 1fr; }
    .pricing-card--featured { transform: none; }
    .included-section > ul { grid-template-columns: 1fr; }
    .price-formula { padding: 23px 17px; }
    .price-formula div { grid-template-columns: 1fr; }
    .price-formula i { text-align: center; }
    .security-visual { min-height: 300px; transform: scale(.86); }
    .transition-flow { grid-template-columns: 1fr; }
    .transition-flow i { transform: rotate(90deg); text-align: center; }
    .video-section { border-radius: 0; }
    .pricing-preview__formula { grid-template-columns: 1fr; }
    .pricing-preview__formula > i { text-align: center; }
    .pricing-preview__formula article { min-height: 0; }
    .pricing-preview__formula h3 { margin-top: 12px; }
    .apps-real-showcase { min-height: 480px; }
    .apps-real-phone { width: min(49%,220px); }
    .apps-real-phone--back { left: 4%; }
    .apps-real-phone--front { right: 4%; }
}

/* Registros operativos del trabajador */
.employee-records-area { --records-blue:#0b67c8; --records-ink:#132946; --records-muted:#667b93; }
.employee-records-commandbar { margin-bottom:18px; }
.employee-records-summary { margin-bottom:16px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.employee-records-summary article { min-height:116px; padding:18px; position:relative; overflow:hidden; border:1px solid #dbe7f4; border-radius:16px; background:#fff; box-shadow:0 12px 30px rgba(23,54,88,.055); }
.employee-records-summary article::after { content:""; position:absolute; right:-28px; top:-34px; width:90px; height:90px; border-radius:50%; background:rgba(11,103,200,.08); }
.employee-records-summary span { display:block; color:#6b7f96; font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.employee-records-summary strong { margin-top:10px; display:block; color:var(--records-ink); font-size:27px; line-height:1.05; letter-spacing:-.025em; }
.employee-records-summary small { margin-top:8px; display:block; color:#71859c; font-size:13px; line-height:1.35; }
.employee-records-summary .is-warning { border-color:#f4d2ad; background:linear-gradient(135deg,#fff,#fff8f1); }
.employee-records-summary .is-warning strong { color:#c65a17; }
.employee-records-toolbar { margin-bottom:14px; padding:14px 16px; display:grid; grid-template-columns:auto minmax(280px,1fr); gap:16px; align-items:center; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.045); }
.employee-records-periods { padding:4px; display:inline-flex; gap:3px; border:1px solid #d5e2f0; border-radius:999px; background:#f5f9fe; }
.employee-records-periods a { min-width:86px; padding:10px 15px; display:inline-flex; justify-content:center; color:#38526e; border-radius:999px; font-size:13px; font-weight:900; text-decoration:none; }
.employee-records-periods a.active { color:#fff; background:#0759a5; box-shadow:0 8px 20px rgba(7,89,165,.22); }
.employee-records-nav { min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.employee-records-nav strong { min-width:220px; padding:0 12px; color:#132946; text-align:center; font-size:14px; font-weight:950; text-transform:capitalize; }
.btn-icon { width:42px; min-width:42px; padding-left:0 !important; padding-right:0 !important; justify-content:center; font-size:20px; }
.employee-records-filters { margin-bottom:16px; padding:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(30,62,96,.045); }
.employee-records-search { min-width:0; display:grid; grid-template-columns:minmax(280px,1fr) minmax(190px,240px) auto auto; gap:10px; align-items:end; }
.employee-records-search label { min-width:0; display:grid; gap:6px; }
.employee-records-search label span { color:#6b7f96; font-size:11px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.employee-records-search input,.employee-records-search select { width:100%; height:42px; padding:0 12px; color:#17314f; border:1px solid #cbd9e8; border-radius:10px; background:#f8fbff; font-size:14px; font-weight:750; box-sizing:border-box; }
.employee-records-search input:focus,.employee-records-search select:focus { border-color:#0b67c8; box-shadow:0 0 0 3px rgba(11,103,200,.12); outline:none; }
.employee-records-view { display:flex; gap:5px; padding:4px; border:1px solid #d5e2f0; border-radius:12px; background:#f5f9fe; }
.employee-records-view a { min-height:34px; padding:8px 10px; display:inline-flex; align-items:center; justify-content:center; color:#47617c; border-radius:9px; font-size:12px; font-weight:900; text-decoration:none; white-space:nowrap; }
.employee-records-view a.active { color:#fff; background:#0b67c8; box-shadow:0 8px 18px rgba(11,103,200,.2); }
.employee-records-view-tools { justify-content:flex-end; }
.employee-records-view-tools .employee-view-switch { flex:0 0 auto; }
.employee-records-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.employee-record-day { padding:16px; border:1px solid #dbe7f4; border-radius:17px; background:#fff; box-shadow:0 12px 30px rgba(23,54,88,.055); }
.employee-record-day.has-open { border-color:#f0c999; background:linear-gradient(135deg,#fff,#fffaf4); }
.employee-record-day > header { margin-bottom:12px; padding-bottom:12px; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; border-bottom:1px solid #edf2f7; }
.employee-record-day h2 { margin:4px 0 0; color:#132946; font-size:21px; line-height:1.15; }
.employee-record-day p { margin:5px 0 0; color:#6e839b; font-size:13px; }
.employee-record-day > header > strong { padding:8px 13px; border:1px solid #b9edd7; border-radius:999px; background:#effdf7; color:#07825c; font-size:13px; font-weight:950; white-space:nowrap; }
.employee-record-day ol { margin:0; padding:0; display:grid; gap:9px; list-style:none; }
.employee-record-day li { padding:13px; display:grid; grid-template-columns:minmax(170px,.8fr) minmax(220px,1fr) auto; gap:12px; align-items:center; border:1px solid #e0eaf5; border-radius:13px; background:#fff; }
.employee-record-day li.is-open { border-color:#f3c89a; background:#fff8f0; }
.record-line-main strong { color:#074a8d; font-size:17px; font-weight:950; }
.record-line-main strong span { color:#84a0bc; }
.record-line-main small,.record-line-meta small { margin-top:4px; display:block; color:#71859c; font-size:12px; }
.record-line-meta span { display:block; color:#243f5c; font-size:13px; font-weight:850; }
.employee-record-day nav { display:flex; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
.employee-record-day nav a,.employee-records-table nav a { min-height:32px; padding:7px 9px; display:inline-flex; align-items:center; border:1px solid #cfe0f2; border-radius:9px; background:#f2f7fd; color:#0f64bf; font-size:12px; font-weight:900; text-decoration:none; }
.employee-records-list { overflow:auto; border:1px solid #d9e6f3; border-radius:16px; background:#fff; box-shadow:0 12px 30px rgba(23,54,88,.055); }
.employee-records-table { width:100%; min-width:1080px; border-collapse:collapse; }
.employee-records-table th { padding:14px 16px; color:#70839a; background:#f5f8fc; border-bottom:1px solid #dce7f2; font-size:11px; font-weight:950; letter-spacing:.06em; text-align:left; text-transform:uppercase; }
.employee-records-table td { padding:14px 16px; border-bottom:1px solid #e7eef6; color:#28415e; font-size:13px; vertical-align:middle; }
.employee-records-table tr:last-child td { border-bottom:0; }
.employee-records-table tr.is-open td { background:#fff8f0; }
.employee-records-table td strong { color:#132946; font-weight:950; }
.employee-records-table td small { margin-top:3px; display:block; color:#788ba1; font-size:12px; }
.employee-records-table nav { margin-top:7px; display:flex; gap:6px; flex-wrap:wrap; }
.records-state { padding:6px 9px; display:inline-flex; border-radius:999px; font-size:11px; font-weight:950; }
.records-state.is-open { color:#c65a17; background:#fff0df; }
.records-state.is-closed { color:#07825c; background:#e8f8f1; }
.records-state.is-imported { color:#0b67c8; background:#e8f2ff; }
.employee-records-actions { text-align:right; }
.employee-records-empty { margin-top:16px; }
@media (max-width:1180px) {
    .employee-records-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employee-records-toolbar,.employee-records-filters { grid-template-columns:1fr; }
    .employee-records-nav { justify-content:flex-start; flex-wrap:wrap; }
    .employee-records-search { grid-template-columns:1fr 220px auto auto; }
    .employee-records-cards { grid-template-columns:1fr; }
}
@media (max-width:780px) {
    .employee-records-summary,.employee-records-search { grid-template-columns:1fr; }
    .employee-record-day li { grid-template-columns:1fr; }
    .employee-record-day nav { justify-content:flex-start; }
    .employee-records-periods { width:100%; }
    .employee-records-periods a { flex:1 1 0; min-width:0; }
    .employee-records-nav strong { min-width:0; width:100%; text-align:left; }
}

/* Tarjetas de registros: calendario lateral por día */
.employee-records-cards { grid-template-columns:minmax(0,1240px); justify-content:start; }
.employee-record-day { width:100%; max-width:1240px; display:grid; grid-template-columns:124px minmax(0,1fr); gap:16px; align-items:stretch; }
.employee-record-day-date { min-height:100%; padding:14px 10px; display:grid; place-items:center; align-content:center; gap:4px; border:1px solid #cfe1f3; border-radius:15px; background:linear-gradient(180deg,#f7fbff 0%,#eaf4ff 100%); color:#0b67c8; text-align:center; box-shadow:inset 0 0 0 6px rgba(255,255,255,.55); }
.employee-record-day.has-open .employee-record-day-date { border-color:#f1c99a; background:linear-gradient(180deg,#fffaf4 0%,#fff0df 100%); color:#c65a17; }
.employee-record-day-date span { color:#607a96; font-size:12px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.employee-record-day-date strong { display:block; color:inherit; font-size:42px; line-height:.95; font-weight:950; letter-spacing:-.05em; }
.employee-record-day-date em { color:#163352; font-size:15px; font-style:normal; font-weight:950; text-transform:uppercase; }
.employee-record-day-date small { color:#7b8fa5; font-size:11px; font-weight:850; }
.employee-record-day-content { min-width:0; display:grid; gap:11px; }
.employee-record-day-content > header { padding-bottom:11px; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; border-bottom:1px solid #edf2f7; }
.employee-record-day-content > header > strong { padding:8px 13px; border:1px solid #b9edd7; border-radius:999px; background:#effdf7; color:#07825c; font-size:13px; font-weight:950; white-space:nowrap; }
.employee-record-day.has-open .employee-record-day-content > header > strong { border-color:#f3c89a; background:#fff8f0; color:#c65a17; }
.record-gps-state { margin-top:6px; width:max-content; max-width:100%; padding:4px 8px; display:inline-flex; align-items:center; border-radius:999px; font-size:11px; font-style:normal; font-weight:900; }
.record-gps-state.has-gps { color:#087456; background:#e8f8f1; }
.record-gps-state.no-gps { color:#7b8fa5; background:#edf3f8; }
.employee-record-day nav a.record-map-link { border-color:#b9edd7; background:#effdf7; color:#087456; }
.employee-record-day nav a.record-map-link:hover { border-color:#0a8a63; background:#0a8a63; color:#fff; }
@media (max-width:780px) {
    .employee-record-day { grid-template-columns:1fr; }
    .employee-record-day-date { min-height:auto; grid-template-columns:auto auto auto auto; justify-content:start; padding:12px 14px; text-align:left; }
    .employee-record-day-date strong { font-size:34px; }
    .employee-record-day-content > header { flex-direction:column; }
}

/* Ajuste final: registros más compactos y sin ocupar todo el ancho */
.employee-records-cards { grid-template-columns:minmax(0,1080px); justify-content:start; }
.employee-record-day { max-width:1080px; padding:14px; grid-template-columns:96px minmax(0,1fr); gap:14px; }
.employee-record-day-date { padding:12px 8px; border-radius:14px; box-shadow:inset 0 0 0 5px rgba(255,255,255,.56); }
.employee-record-day-date strong { font-size:36px; }
.employee-record-day-date em { font-size:14px; }
.employee-record-day-content { gap:9px; }
.employee-record-day-content > header { padding-bottom:9px; }
.employee-record-day h2 { font-size:20px; }
.employee-record-day p { font-size:12px; }
.employee-record-day li { min-height:58px; padding:10px 11px; grid-template-columns:minmax(132px,170px) minmax(260px,1fr) max-content; gap:12px; }
.record-line-main strong { font-size:16px; }
.record-line-main small,.record-line-meta small { font-size:11px; }
.record-line-meta { min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:3px 8px; }
.record-line-meta .record-location-line { flex:1 1 100%; min-width:0; overflow:hidden; color:#193957; font-size:12px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.record-line-meta small { flex:1 1 auto; min-width:160px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.record-gps-state { margin-top:0; padding:3px 8px; font-size:10px; }
.employee-record-day nav { min-width:168px; justify-content:flex-end; gap:6px; }
.employee-record-day nav a,.employee-records-table nav a { min-height:30px; padding:6px 9px; font-size:11px; }
.employee-record-day nav a.record-map-link::before { content:""; width:6px; height:6px; margin-right:5px; border-radius:999px; background:currentColor; box-shadow:0 0 0 3px rgba(8,116,86,.12); }
@media (max-width:1180px) {
    .employee-records-cards { grid-template-columns:minmax(0,1fr); }
    .employee-record-day { max-width:none; }
}
@media (max-width:860px) {
    .employee-record-day { grid-template-columns:1fr; }
    .employee-record-day-date { min-height:auto; grid-template-columns:auto auto auto auto; justify-content:start; padding:12px 14px; text-align:left; }
    .employee-record-day li { grid-template-columns:1fr; }
    .employee-record-day nav { min-width:0; justify-content:flex-start; }
}

/* Rediseño definitivo de tarjetas de registros: formato contenido, no panorámico */
.employee-records-cards {
    grid-template-columns:minmax(0,820px);
    justify-content:start;
    gap:12px;
}
.employee-record-day {
    width:100%;
    max-width:820px;
    padding:12px;
    grid-template-columns:82px minmax(0,1fr);
    gap:12px;
    border-radius:18px;
}
.employee-record-day-date {
    padding:10px 6px;
    border-radius:13px;
    box-shadow:inset 0 0 0 4px rgba(255,255,255,.58);
}
.employee-record-day-date span { font-size:11px; }
.employee-record-day-date strong { font-size:33px; }
.employee-record-day-date em { font-size:13px; }
.employee-record-day-date small { font-size:10px; }
.employee-record-day-content { gap:8px; }
.employee-record-day-content > header {
    padding-bottom:8px;
    gap:10px;
}
.employee-record-day-content > header > strong {
    padding:7px 11px;
    font-size:12px;
}
.employee-record-day h2 {
    margin-top:2px;
    font-size:19px;
}
.employee-record-day p { font-size:12px; }
.employee-record-day li {
    min-height:0;
    padding:10px;
    grid-template-columns:120px minmax(0,1fr);
    gap:5px 12px;
    align-items:start;
    border-radius:12px;
}
.record-line-main {
    grid-row:1 / span 2;
    min-width:0;
}
.record-line-main strong {
    display:block;
    font-size:16px;
    line-height:1.2;
}
.record-time-line {
    display:flex !important;
    flex-wrap:wrap;
    align-items:center;
    gap:4px;
}
.record-time-point {
    display:inline-flex;
    align-items:center;
    gap:2px;
    white-space:nowrap;
}
.record-time-arrow {
    color:#86a0bb;
    font-weight:900;
}
.record-gps-icon {
    width:17px;
    min-width:17px;
    height:20px;
    min-height:20px !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#d64a3a !important;
    font-size:0 !important;
    font-weight:950 !important;
    line-height:1 !important;
    position:relative;
    text-decoration:none !important;
    opacity:.9;
    transition:opacity .15s ease, transform .15s ease;
}
.record-gps-icon svg {
    width:13px;
    height:13px;
    display:block;
    fill:currentColor;
    filter:drop-shadow(0 1px 1px rgba(19,41,70,.16));
}
.record-gps-icon:hover {
    opacity:1;
    transform:translateY(-1px);
}
.record-gps-icon:focus-visible {
    border-radius:7px !important;
    outline:2px solid #0b67c8;
    outline-offset:1px;
}
.record-line-main small {
    margin-top:5px;
    font-size:11px;
    line-height:1.25;
}
.record-line-meta {
    min-width:0;
    display:grid;
    gap:3px;
}
.record-line-meta .record-location-line {
    min-width:0;
    max-width:100%;
    overflow:hidden;
    color:#173657;
    font-size:12px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.record-line-meta small {
    min-width:0;
    max-width:100%;
    margin-top:0;
    overflow:hidden;
    color:#647a92;
    font-size:11px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.record-gps-state {
    width:max-content;
    margin-top:2px;
    padding:3px 7px;
    font-size:10px;
}
.employee-record-day nav {
    grid-column:2;
    min-width:0;
    margin-top:3px;
    justify-content:flex-start;
    gap:5px;
}
.employee-record-day nav a,
.employee-records-table nav a {
    min-height:28px;
    padding:6px 8px;
    border-radius:8px;
    font-size:11px;
}
.employee-record-day nav a.record-map-link::before {
    width:5px;
    height:5px;
    margin-right:5px;
}
@media (max-width:980px) {
    .employee-records-cards { grid-template-columns:minmax(0,1fr); }
    .employee-record-day { max-width:none; }
}
@media (max-width:720px) {
    .employee-record-day { grid-template-columns:1fr; }
    .employee-record-day-date {
        grid-template-columns:auto auto auto auto;
        justify-content:start;
        text-align:left;
    }
    .employee-record-day li { grid-template-columns:1fr; }
    .record-line-main { grid-row:auto; }
    .employee-record-day nav { grid-column:auto; }
}

/* Registros: dos tarjetas por fila en escritorio */
.employee-records-cards {
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:14px;
}
.employee-record-day {
    max-width:none;
    padding:12px;
    grid-template-columns:74px minmax(0,1fr);
    gap:10px;
}
.employee-record-day-date {
    padding:10px 5px;
    min-height:100%;
}
.employee-record-day-date strong { font-size:31px; }
.employee-record-day-date em { font-size:12px; }
.employee-record-day-content > header {
    align-items:center;
}
.employee-record-day h2 {
    font-size:18px;
}
.employee-record-day-content > header > strong {
    padding:6px 10px;
}
.employee-record-day li {
    grid-template-columns:142px minmax(0,1fr) auto;
    gap:8px 10px;
    align-items:center;
}
.record-line-main {
    grid-row:auto;
}
.record-time-line {
    flex-wrap:nowrap;
    gap:4px;
}
.record-line-meta {
    align-self:center;
}
.employee-record-day nav {
    grid-column:auto;
    margin-top:0;
    justify-content:flex-end;
}
.employee-record-day nav a {
    white-space:nowrap;
}
@media (max-width:1280px) {
    .employee-record-day li {
        grid-template-columns:132px minmax(0,1fr);
    }
    .employee-record-day nav {
        grid-column:2;
        justify-content:flex-start;
    }
}
@media (max-width:1120px) {
    .employee-records-cards {
        grid-template-columns:minmax(0,1fr);
    }
}
@media (max-width:720px) {
    .employee-record-day {
        grid-template-columns:1fr;
    }
    .employee-record-day li {
        grid-template-columns:1fr;
    }
    .record-time-line {
        flex-wrap:wrap;
    }
    .employee-record-day nav {
        grid-column:auto;
    }
}

/* Prueba de visualización: 4 tarjetas por fila */
.employee-records-cards {
    grid-template-columns:repeat(4,minmax(240px,1fr));
    gap:12px;
}
.employee-record-day {
    display:block;
    padding:12px;
}
.employee-record-day-date {
    min-height:auto;
    margin-bottom:10px;
    padding:9px 11px;
    display:grid;
    grid-template-columns:auto auto auto 1fr;
    align-items:center;
    justify-content:start;
    gap:6px;
    text-align:left;
}
.employee-record-day-date span,
.employee-record-day-date em,
.employee-record-day-date small {
    line-height:1;
}
.employee-record-day-date strong {
    font-size:28px;
    line-height:1;
}
.employee-record-day-date small {
    justify-self:end;
}
.employee-record-day-content > header {
    align-items:flex-start;
}
.employee-record-day-content > header > strong {
    padding:6px 9px;
}
.employee-record-day h2 {
    font-size:18px;
}
.employee-record-day li {
    display:grid;
    grid-template-columns:1fr auto;
    gap:6px 8px;
    padding:9px;
}
.record-line-main {
    min-width:0;
}
.record-time-line {
    flex-wrap:wrap;
}
.record-line-meta {
    grid-column:1 / -1;
}
.employee-record-day nav {
    grid-column:2;
    grid-row:1;
    align-self:start;
}
.employee-record-day nav a {
    min-height:26px;
    padding:5px 8px;
}
@media (max-width:1500px) {
    .employee-records-cards {
        grid-template-columns:repeat(3,minmax(250px,1fr));
    }
}
@media (max-width:1180px) {
    .employee-records-cards {
        grid-template-columns:repeat(2,minmax(260px,1fr));
    }
}
@media (max-width:760px) {
    .employee-records-cards {
        grid-template-columns:minmax(0,1fr);
    }
}

/* Vista lista de registros agrupada por día */
.employee-records-list {
    overflow:auto;
    border-radius:18px;
}
.employee-records-table {
    min-width:920px;
    border-collapse:separate;
    border-spacing:0;
}
.employee-records-table th {
    padding:13px 14px;
    background:#f4f8fd;
}
.employee-records-table td {
    padding:12px 14px;
    background:#fff;
}
.employee-records-table tbody tr:hover td:not(.employee-records-date-cell) {
    background:#f8fbff;
}
.employee-records-table tr.is-open td:not(.employee-records-date-cell) {
    background:#fff8f0;
}
.employee-records-date-cell {
    width:104px;
    padding:10px !important;
    vertical-align:top !important;
    background:#f7fbff !important;
    border-right:1px solid #dce8f5;
}
tr.is-open .employee-records-date-cell {
    background:#fff4e7 !important;
}
.record-list-date {
    min-height:92px;
    padding:10px 8px;
    display:grid;
    place-items:center;
    gap:2px;
    border:1px solid #cfe1f3;
    border-radius:14px;
    background:linear-gradient(180deg,#ffffff 0%,#eef6ff 100%);
    color:#0b67c8;
    text-align:center;
    box-shadow:inset 0 0 0 4px rgba(255,255,255,.55);
}
tr.is-open .record-list-date {
    border-color:#f0c999;
    background:linear-gradient(180deg,#ffffff 0%,#fff0df 100%);
    color:#c65a17;
}
.record-list-date span {
    color:#617a95;
    font-size:11px;
    font-weight:950;
    letter-spacing:.08em;
    line-height:1;
    text-transform:uppercase;
}
.record-list-date strong {
    color:inherit !important;
    font-size:32px;
    font-weight:950;
    line-height:.95;
}
.record-list-date em {
    color:#17314f;
    font-size:12px;
    font-style:normal;
    font-weight:950;
    line-height:1;
    text-transform:uppercase;
}
.record-list-date small {
    margin-top:5px !important;
    color:#6f8297 !important;
    font-size:10px !important;
    font-weight:850;
}
.record-list-date b {
    margin-top:4px;
    padding:4px 8px;
    border-radius:999px;
    background:#e9f5ff;
    color:#0b67c8;
    font-size:11px;
    font-weight:950;
    white-space:nowrap;
}
tr.is-open .record-list-date b {
    background:#fff8f0;
    color:#c65a17;
}
.record-list-time {
    min-width:180px;
}
.record-list-time .record-time-line {
    color:#074a8d;
    font-size:15px;
}
.record-list-time small {
    color:#71859c;
    font-size:11px;
}
.record-list-location {
    max-width:380px;
}
.record-list-location span {
    display:block;
    overflow:hidden;
    color:#173657;
    font-size:13px;
    font-weight:900;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.record-list-location small {
    overflow:hidden;
    color:#6e839b !important;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.employee-records-table .records-state {
    min-width:76px;
    justify-content:center;
}
.employee-records-table .employee-records-actions {
    width:92px;
    text-align:right;
}
.employee-records-table .employee-records-actions a {
    min-height:30px;
    padding:6px 10px;
}

/* Registros anuales: primer nivel agrupado por meses */
.employee-records-months {
    margin-top:16px;
    padding:18px;
    border:1px solid #d9e6f3;
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 30px rgba(23,54,88,.055);
}
.employee-records-months > header {
    margin-bottom:16px;
    padding-bottom:14px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    border-bottom:1px solid #e6eef7;
}
.employee-records-months h2 {
    margin:4px 0 0;
    color:#132946;
    font-size:27px;
    line-height:1.1;
}
.employee-records-months p {
    margin:6px 0 0;
    color:#6e839b;
    font-size:13px;
}
.employee-records-months > header > strong {
    padding:8px 12px;
    border:1px solid #cfe1f3;
    border-radius:999px;
    background:#f5f9fe;
    color:#173657;
    font-size:12px;
    font-weight:950;
    white-space:nowrap;
}
.employee-records-month-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.employee-records-month {
    min-width:0;
    padding:14px;
    display:block;
    overflow:hidden;
    border:1px solid #dce8f5;
    border-radius:15px;
    background:linear-gradient(145deg,#fff 0%,#f8fbff 100%);
    color:#173657;
    text-decoration:none;
    transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.employee-records-month:hover {
    border-color:#9ec4ea;
    box-shadow:0 14px 32px rgba(19,65,112,.1);
    transform:translateY(-2px);
}
.employee-records-month.has-open {
    border-color:#f0c999;
    background:linear-gradient(145deg,#fff 0%,#fff7ed 100%);
}
.employee-records-month.is-empty {
    opacity:.68;
}
.employee-records-month > span {
    width:42px;
    height:32px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#eaf4ff;
    color:#0b67c8;
    font-size:11px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.employee-records-month.has-open > span {
    background:#fff0df;
    color:#c65a17;
}
.employee-records-month strong {
    margin-top:12px;
    display:block;
    overflow:hidden;
    color:#132946;
    font-size:17px;
    font-weight:950;
    text-overflow:ellipsis;
    text-transform:capitalize;
    white-space:nowrap;
}
.employee-records-month small {
    margin-top:4px;
    display:block;
    color:#70849b;
    font-size:12px;
}
.employee-records-month dl {
    margin:13px 0 0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}
.employee-records-month dl div {
    min-width:0;
    padding:8px;
    border:1px solid #e4edf6;
    border-radius:10px;
    background:#fff;
}
.employee-records-month dt {
    color:#8292a6;
    font-size:9px;
    font-weight:950;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.employee-records-month dd {
    margin:4px 0 0;
    overflow:hidden;
    color:#173657;
    font-size:12px;
    font-weight:950;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.employee-records-month-list {
    display:grid;
    gap:8px;
}
.employee-records-month-row {
    min-width:0;
    padding:10px 12px;
    display:grid;
    grid-template-columns:74px minmax(180px,1fr) 105px 130px 105px auto;
    align-items:center;
    gap:12px;
    border:1px solid #dce8f5;
    border-radius:14px;
    background:#fff;
    color:#173657;
    text-decoration:none;
    transition:border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.employee-records-month-row:nth-child(even) {
    background:#fbfdff;
}
.employee-records-month-row:hover {
    border-color:#9ec4ea;
    background:#f7fbff;
    box-shadow:0 10px 24px rgba(19,65,112,.08);
    transform:translateY(-1px);
}
.employee-records-month-row.has-open {
    border-color:#f0c999;
    background:#fff8f0;
}
.employee-records-month-row.is-empty {
    opacity:.68;
}
.record-list-date--month {
    min-height:62px;
    padding:7px 6px;
}
.record-list-date--month strong {
    font-size:24px;
}
.record-list-date--month em {
    color:inherit;
}
.month-row-title {
    min-width:0;
}
.month-row-title strong {
    display:block;
    overflow:hidden;
    color:#132946;
    font-size:15px;
    font-weight:950;
    text-overflow:ellipsis;
    text-transform:capitalize;
    white-space:nowrap;
}
.month-row-title small,
.employee-records-month-row > span:not(.record-list-date):not(.month-row-title) small {
    display:block;
    color:#8292a6;
    font-size:10px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.employee-records-month-row > span:not(.record-list-date):not(.month-row-title) strong {
    display:block;
    margin-top:3px;
    overflow:hidden;
    color:#173657;
    font-size:13px;
    font-weight:950;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.employee-records-month-row > b {
    justify-self:end;
    min-height:30px;
    padding:7px 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #cfe0f2;
    border-radius:9px;
    background:#f2f7fd;
    color:#0f64bf;
    font-size:11px;
    font-weight:950;
    white-space:nowrap;
}
@media (max-width:1180px) {
    .employee-records-month-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .employee-records-month-row { grid-template-columns:70px minmax(160px,1fr) repeat(3,90px); }
    .employee-records-month-row > b { grid-column:2 / -1; justify-self:start; }
}
@media (max-width:860px) {
    .employee-records-month-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employee-records-months > header { flex-direction:column; }
    .employee-records-month-row { grid-template-columns:68px minmax(0,1fr) 90px; }
    .employee-records-month-row > span:nth-of-type(4),
    .employee-records-month-row > span:nth-of-type(5) { display:none; }
    .employee-records-month-row > b { grid-column:auto; }
}
@media (max-width:560px) {
    .employee-records-month-grid { grid-template-columns:1fr; }
    .employee-records-month-row { grid-template-columns:1fr; }
    .record-list-date--month { width:100%; grid-template-columns:auto auto auto; justify-content:start; text-align:left; }
    .employee-records-month-row > span:nth-of-type(4),
    .employee-records-month-row > span:nth-of-type(5) { display:block; }
    .employee-records-month-row > b { justify-self:stretch; }
}

/* Botón editar unificado con el listado de trabajadores */
.employee-records-page .employee-list-edit,
.employee-history-area .employee-list-edit {
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    border:1px solid #d3e0ed !important;
    border-radius:8px !important;
    background:#fff !important;
    color:#1769bd !important;
    font-size:0 !important;
    text-decoration:none !important;
}
.employee-records-page .employee-list-edit svg,
.employee-history-area .employee-list-edit svg {
    width:16px !important;
    height:16px !important;
    fill:currentColor !important;
}
.employee-records-page .employee-list-edit:hover,
.employee-history-area .employee-list-edit:hover {
    border-color:#86b6e5 !important;
    background:#edf6ff !important;
    color:#0758aa !important;
}

/* Editor de fichajes */
.punch-edit-hero {
    margin-bottom:20px;
}
.punch-edit-avatar {
    background:linear-gradient(145deg,#eaf4ff,#d9ecff);
    color:#0b67c8;
}
.punch-editor-layout {
    display:grid;
    gap:18px;
}
.punch-editor-layout--with-help {
    grid-template-columns:minmax(0,1fr) 310px;
    align-items:start;
}
.punch-editor-main {
    min-width:0;
    display:grid;
    gap:18px;
}
.punch-editor-layout--with-help .punch-editor-summary-grid {
    grid-template-columns:minmax(0,1.1fr) minmax(0,.95fr) minmax(150px,.7fr);
}
.punch-editor-card {
    border-radius:18px;
}
.punch-editor-summary-grid {
    display:grid;
    grid-template-columns:minmax(260px,1.2fr) minmax(260px,1fr) minmax(220px,.8fr);
    gap:14px;
    align-items:stretch;
}
.punch-worker-card,
.punch-duration-card,
.punch-worker-select {
    min-width:0;
    padding:14px;
    display:grid;
    align-content:center;
    gap:5px;
    border:1px solid #d9e6f3;
    border-radius:14px;
    background:linear-gradient(145deg,#fff,#f8fbff);
}
.punch-worker-card > span,
.punch-duration-card > span,
.punch-worker-select > span,
.fn-date-control > span,
.punch-notes-field > span {
    color:#718299;
    font-size:11px;
    font-weight:950;
    letter-spacing:.055em;
    text-transform:uppercase;
}
.punch-worker-card strong,
.punch-duration-card strong {
    overflow:hidden;
    color:#132946;
    font-size:16px;
    font-weight:950;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.punch-duration-card strong {
    color:#0b67c8;
    font-size:24px;
}
.punch-worker-card small,
.punch-duration-card small,
.fn-date-control small {
    color:#74879e;
    font-size:12px;
}
.punch-time-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    align-items:stretch;
}
.punch-time-grid > .fn-date-control,
.punch-time-grid > .punch-time-control {
    min-width:0;
    min-height:110px;
    padding:12px 14px;
    align-content:start;
    border:1px solid #d9e6f3;
    border-radius:14px;
    background:#f8fbff;
}
.punch-time-grid > .fn-date-control:nth-of-type(1),
.punch-time-grid > .punch-time-control:nth-of-type(2) {
    border-color:#cfe4fb;
    background:linear-gradient(145deg,#f6fbff,#eef7ff);
}
.punch-time-grid > .fn-date-control:nth-of-type(3),
.punch-time-grid > .punch-time-control:nth-of-type(4) {
    border-color:#f0dcc8;
    background:linear-gradient(145deg,#fffaf5,#fff4e8);
}
.punch-time-grid > .fn-date-control:nth-of-type(1)::after,
.punch-time-grid > .fn-date-control:nth-of-type(3)::after {
    content:"";
    width:8px;
    height:8px;
    position:absolute;
    top:14px;
    right:14px;
    border-radius:50%;
}
.punch-time-grid > .fn-date-control:nth-of-type(1)::after {
    background:#0b67c8;
}
.punch-time-grid > .fn-date-control:nth-of-type(3)::after {
    background:#d97706;
}
.punch-time-control {
    display:grid;
    gap:7px;
}
.punch-time-control > span {
    color:#718299;
    font-size:11px;
    font-weight:950;
    letter-spacing:.055em;
    text-transform:uppercase;
}
.punch-time-control input[type="time"] {
    width:100%;
    min-height:46px;
    padding:0 12px;
    color:#17314f;
    border:1px solid #cbd9e8;
    border-radius:12px;
    background:#f8fbff;
    font-size:15px;
    font-weight:850;
}
.punch-time-control input[type="time"]::-webkit-calendar-picker-indicator {
    opacity:.9;
}
.punch-time-control input[type="time"]:focus {
    border-color:#0b67c8;
    background:#fff;
    box-shadow:0 0 0 3px rgba(11,103,200,.12);
    outline:none;
}
.punch-time-control small {
    color:#74879e;
    font-size:12px;
}
.punch-time-grid > .fn-date-control small,
.punch-time-grid > .punch-time-control small {
    min-height:30px;
    display:block;
    line-height:1.25;
}
.editor-actions--split {
    justify-content:space-between;
}
.editor-actions-main {
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
}
.punch-delete-button {
    box-shadow:0 8px 18px rgba(190,68,59,.18);
}
.punch-imported-switch {
    grid-column:1 / -1;
}
.punch-notes-field {
    display:grid;
    gap:8px;
}
.punch-notes-field textarea {
    min-height:132px;
    resize:vertical;
}
.editor-context-help {
    position:sticky;
    top:86px;
    padding:18px;
    display:grid;
    gap:13px;
    border:1px solid #d7e4f1;
    border-radius:18px;
    background:#fff;
    box-shadow:0 16px 38px rgba(19,49,82,.08);
}
.editor-context-help__heading {
    padding-bottom:13px;
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border-bottom:1px solid #e7eef6;
}
.editor-context-help__heading > span {
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    color:#fff;
    border-radius:12px;
    background:#0b67c8;
    box-shadow:0 8px 18px rgba(11,103,200,.22);
    font-size:20px;
    font-weight:950;
}
.editor-context-help__heading small {
    display:block;
    color:#6f839a;
    font-size:10px;
    font-weight:950;
    letter-spacing:.09em;
}
.editor-context-help__heading h2 {
    margin:3px 0 0;
    color:#173451;
    font-size:17px;
    line-height:1.25;
}
.editor-context-help__required {
    padding:13px;
    border:1px solid #cfe3f8;
    border-radius:14px;
    background:#f1f8ff;
}
.editor-context-help__required > strong {
    color:#0b5eae;
    font-size:12px;
    font-weight:950;
}
.editor-context-help__required ul {
    margin:8px 0 0;
    padding-left:18px;
    color:#51677f;
    font-size:12px;
    line-height:1.55;
}
.editor-context-help__required li + li {
    margin-top:5px;
}
.editor-context-help > article {
    padding:13px;
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    gap:9px;
    border:1px solid #e3ebf4;
    border-radius:13px;
    background:#fbfdff;
}
.editor-context-help__number {
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border-radius:9px;
    background:#eaf4ff;
    font-size:10px;
    font-weight:950;
}
.editor-context-help article strong {
    color:#193a5d;
    font-size:13px;
    line-height:1.35;
}
.editor-context-help article p,
.editor-context-help__notice p {
    margin:4px 0 0;
    color:#61758c;
    font-size:12px;
    line-height:1.58;
}
.editor-context-help__notice {
    padding:12px 13px;
    border-left:4px solid #e68a27;
    border-radius:4px 12px 12px 4px;
    background:#fff7ec;
}
.editor-context-help__notice strong {
    color:#9a5500;
    font-size:12px;
}
@media (max-width:1240px) {
    .punch-editor-layout--with-help {
        grid-template-columns:1fr;
    }
    .editor-context-help {
        position:static;
    }
}
@media (max-width:760px) {
    .punch-editor-layout--with-help .punch-editor-summary-grid {
        grid-template-columns:1fr;
    }
}

/* Calendario reutilizable FicharNet */
.fn-date-control {
    position:relative;
    display:grid;
    gap:7px;
}
.fn-date-shell {
    display:grid;
    grid-template-columns:minmax(0,1fr) 42px;
    align-items:center;
    overflow:visible;
    border:1px solid #cbd9e8;
    border-radius:12px;
    background:#f8fbff;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.fn-date-shell:focus-within {
    border-color:#0b67c8;
    background:#fff;
    box-shadow:0 0 0 3px rgba(11,103,200,.12);
}
.fn-date-input {
    width:100%;
    min-height:44px;
    padding:0 12px;
    color:#17314f;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    font-size:15px;
    font-weight:850;
    outline:none;
}
.fn-date-input::-webkit-calendar-picker-indicator {
    display:none;
    opacity:0;
    -webkit-appearance:none;
}
.fn-date-input::-webkit-inner-spin-button,
.fn-date-input::-webkit-clear-button {
    display:none;
}
.fn-date-input {
    appearance:textfield;
    -webkit-appearance:none;
}
.fn-date-trigger {
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border:0;
    border-left:1px solid #dbe6f2;
    border-radius:0 11px 11px 0;
    background:#eef6ff;
    cursor:pointer;
}
.fn-date-trigger:hover {
    background:#deefff;
}
.fn-date-trigger svg {
    width:18px;
    height:18px;
    fill:currentColor;
}
.fn-calendar-popover {
    width:292px;
    padding:12px;
    position:absolute;
    z-index:80;
    top:calc(100% + 8px);
    right:0;
    border:1px solid #cfddec;
    border-radius:16px;
    background:#fff;
    box-shadow:0 18px 45px rgba(19,41,70,.18);
}
.fn-calendar-popover[hidden] {
    display:none;
}
.fn-calendar-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:10px;
}
.fn-calendar-head strong {
    color:#132946;
    font-size:14px;
    font-weight:950;
    text-transform:capitalize;
}
.fn-calendar-head button {
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border:1px solid #cfe0f2;
    border-radius:9px;
    background:#f2f7fd;
    font-size:17px;
    font-weight:950;
    cursor:pointer;
}
.fn-calendar-week,
.fn-calendar-days {
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:5px;
}
.fn-calendar-week span {
    padding:5px 0;
    color:#7a8ca1;
    font-size:10px;
    font-weight:950;
    text-align:center;
    text-transform:uppercase;
}
.fn-calendar-days button {
    height:34px;
    color:#173657;
    border:1px solid transparent;
    border-radius:10px;
    background:#f7fbff;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}
.fn-calendar-days button:hover {
    border-color:#9ec4ea;
    background:#eaf4ff;
}
.fn-calendar-days button.is-weekend {
    background:#fff6ed;
    color:#b65a18;
}
.fn-calendar-days button.is-today {
    border-color:#0b67c8;
}
.fn-calendar-days button.is-selected {
    background:#0b67c8;
    color:#fff;
    box-shadow:0 8px 18px rgba(11,103,200,.22);
}
.fn-calendar-days button.is-outside {
    opacity:.38;
}
@media (max-width:980px) {
    .punch-editor-summary-grid,
    .punch-time-grid {
        grid-template-columns:1fr;
    }
}
@media (max-width:560px) {
    .fn-calendar-popover {
        width:min(292px,calc(100vw - 48px));
        right:auto;
        left:0;
    }
}

/* Navegación contextual y cabeceras coherentes del área privada */
.admin-workspace {
    min-width:0;
    overflow-x:clip;
}
.admin-content {
    width:100%;
    box-sizing:border-box;
}
.admin-content.employee-context-area {
    max-width:1600px;
    margin-right:auto;
    margin-left:auto;
}
.management-page,
.editor-page,
.companies-hub {
    width:100%;
    min-width:0;
    box-sizing:border-box;
}
.context-breadcrumb {
    width:100%;
    height:34px;
    min-height:34px;
    max-height:34px;
    margin:0 0 14px;
    padding:0 2px;
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:6px;
    overflow:hidden;
    box-sizing:border-box;
    color:#8391a4;
    font-size:12px;
    line-height:1.35;
}
.context-breadcrumb a,
.context-breadcrumb strong {
    min-width:0;
    flex:0 1 auto;
    max-width:min(330px,100%);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.context-breadcrumb a {
    padding:5px 7px;
    color:#1768bd;
    border-radius:7px;
    font-weight:800;
    text-decoration:none;
}
.context-breadcrumb a:hover,
.context-breadcrumb a:focus-visible {
    color:#0759a5;
    background:#eaf4ff;
}
.context-breadcrumb > span {
    color:#a7b3c1;
    font-size:15px;
    line-height:1;
}
.context-breadcrumb strong {
    padding:5px 7px;
    color:#344b66;
    border:1px solid #dce7f2;
    border-radius:7px;
    background:#f5f9fd;
    font-weight:900;
}
.private-page-header {
    width:100%;
    max-width:100%;
    min-width:0;
    height:144px;
    min-height:144px;
    max-height:144px;
    margin-top:0;
    flex:0 0 144px;
    box-sizing:border-box;
}
.private-page-header > :first-child {
    min-width:0;
}
.private-page-header .panel-kicker,
.private-page-header .eyebrow {
    margin:0 0 5px;
    display:block;
    color:#0b69ce;
    font-size:11px;
    font-weight:900;
    line-height:1.2;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.employee-commandbar {
    padding:24px 26px;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border:1px solid #d7e3ef;
    border-radius:18px;
    background:linear-gradient(135deg,#ffffff 0%,#f4f9ff 100%);
    box-shadow:0 16px 45px rgba(25,56,94,.08);
    overflow:hidden;
}
.employee-identity {
    min-width:0;
    display:flex;
    align-items:center;
    gap:18px;
}
.employee-identity__avatar {
    width:78px;
    height:78px;
    flex:0 0 78px;
    position:relative;
    display:grid;
    place-items:center;
    overflow:hidden;
    color:#0b65be;
    border:1px solid #cfe0f1;
    border-radius:50%;
    background:#eaf4ff;
    font-size:23px;
    font-weight:950;
    box-shadow:inset 0 0 0 7px rgba(255,255,255,.72);
}
.employee-identity__avatar img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.employee-identity__avatar img.is-hidden {
    display:none;
}
.employee-identity__avatar--logo {
    color:#0b65be;
    border-radius:18px;
    background:#fff;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.85), 0 10px 24px rgba(21,50,82,.09);
}
.employee-identity__avatar--logo img {
    object-fit:contain;
    padding:8px;
    box-sizing:border-box;
}
.employee-identity__avatar--company-logo {
    width:92px;
    height:66px;
    flex-basis:92px;
    border:1px solid #cfe0f1;
    border-radius:18px;
    box-shadow:0 10px 24px rgba(21,50,82,.09);
}
.employee-identity__avatar--company-logo b {
    display:none;
}
.employee-identity__avatar--company-logo img {
    padding:7px;
}
.employee-identity > div {
    min-width:0;
}
.employee-identity h1 {
    margin:0;
    color:#132b49;
    font-size:30px;
    line-height:1.08;
    letter-spacing:-.025em;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.employee-identity p {
    margin:5px 0 0;
    color:#657991;
    font-size:14px;
}
.employee-live-state {
    margin-top:9px;
    width:max-content;
    max-width:100%;
    padding:6px 10px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#50657d;
    border-radius:999px;
    background:#edf3f9;
    font-size:12px;
    font-weight:900;
    text-transform:none;
}
.employee-live-state i {
    width:8px;
    height:8px;
    flex:0 0 8px;
    border-radius:50%;
    background:#94a6ba;
}
.employee-live-state.is-working { color:#137251; background:#ddf7ea; }
.employee-live-state.is-working i { background:#20af73; box-shadow:0 0 0 4px rgba(32,175,115,.14); }
.employee-live-state.is-absence { color:#a45522; background:#fff0e4; }
.employee-live-state.is-absence i { background:#df8b34; }
.employee-live-state.is-complete { color:#1768b6; background:#e9f3fd; }
.employee-live-state.is-complete i { background:#277dce; }
.employee-command-actions {
    flex:0 0 auto;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
}
.admin-content > *,
.management-page > *,
.editor-page > *,
.companies-hub > * {
    max-width:100%;
    box-sizing:border-box;
}
.employee-records-area {
    min-width:0;
    overflow-x:hidden;
}
.employee-records-page {
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
}
.employee-records-page > .employee-records-commandbar {
    width:100%;
    max-width:100%;
}
.employee-records-toolbar,
.employee-records-filters,
.employee-records-search {
    min-width:0;
}
.admin-content.employee-dashboard-area > .context-breadcrumb {
    margin-bottom:-6px;
}
.admin-content.dashboard-organized.company-dashboard-page {
    padding-top:10px;
}
.dashboard-organized > .context-breadcrumb {
    order:0;
}
.employee-records-page > .context-breadcrumb {
    margin-bottom:14px;
}

@media (max-width:1100px) {
    .private-page-header {
        height:auto;
        min-height:144px;
        max-height:none;
        flex-basis:auto;
    }
    .employee-commandbar {
        align-items:flex-start;
        flex-direction:column;
    }
    .employee-identity {
        width:100%;
        align-self:stretch;
    }
    .employee-identity > div {
        flex:1 1 auto;
    }
    .employee-command-actions {
        width:100%;
        justify-content:flex-start;
    }
}

@media (max-width:760px) {
    .context-breadcrumb {
        height:auto;
        min-height:30px;
        max-height:none;
        margin-bottom:11px;
        flex-wrap:wrap;
        overflow:visible;
        gap:3px;
        font-size:11px;
    }
    .admin-content.employee-dashboard-area > .context-breadcrumb {
        margin-bottom:-9px;
    }
    .context-breadcrumb a,
    .context-breadcrumb strong {
        max-width:min(220px,100%);
        padding:4px 5px;
    }
    .private-page-header {
        min-height:0;
    }
    .employee-commandbar {
        padding:18px;
    }
    .employee-identity {
        align-items:flex-start;
    }
    .employee-identity__avatar {
        width:58px;
        height:58px;
        flex-basis:58px;
        font-size:18px;
        box-shadow:inset 0 0 0 5px rgba(255,255,255,.72);
    }
    .employee-identity h1 {
        font-size:21px;
        white-space:normal;
        overflow:visible;
        overflow-wrap:anywhere;
        text-overflow:clip;
    }
    .employee-command-actions .btn {
        flex:1;
    }
}

.journey-management { display:grid; gap:18px; }
.journey-toolbar { align-items:end; gap:14px; }
.journey-filter-form { min-width:0; flex:1 1 auto; display:grid; grid-template-columns:120px minmax(220px,320px) minmax(260px,1fr) auto auto; gap:10px; align-items:end; }
.journey-filter-form label { min-width:0; display:grid; gap:6px; }
.journey-filter-form label > span { color:#64758b; font-size:11px; font-weight:900; letter-spacing:.055em; text-transform:uppercase; }
.journey-filter-form select,.journey-filter-form input { width:100%; height:42px; min-width:0; padding:0 12px; color:#183451; border:1px solid #cbd9e8; border-radius:9px; background:#fff; font-size:14px; font-weight:750; box-sizing:border-box; }
.journey-filter-form select:focus,.journey-filter-form input:focus { border-color:#0b67c8; box-shadow:0 0 0 3px rgba(11,103,200,.12); outline:none; }
.journey-view-tools { height:42px; flex:0 0 auto; display:flex; align-items:center; justify-content:flex-end; gap:13px; align-self:end; color:#61758e; white-space:nowrap; }
.journey-view-tools > span strong { color:#183451; font-size:19px; }
.journey-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.journey-card { min-width:0; padding:18px; display:grid; gap:16px; border:1px solid #d9e5f1; border-radius:16px; background:#fff; box-shadow:0 12px 28px rgba(21,52,86,.055); }
.journey-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:13px; border-bottom:1px solid #e7edf4; }
.journey-card h2 { margin:4px 0 3px; color:#142d49; font-size:24px; letter-spacing:-.02em; }
.journey-card p { margin:0; color:#6b7d92; font-size:13px; }
.journey-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.journey-card-meta > strong { margin-left:auto; padding:8px 12px; color:#075aa8; border-radius:999px; background:#edf6ff; font-size:14px; }
.journey-time-chip { display:inline-flex; align-items:center; gap:7px; padding:8px 10px; color:#164268; border:1px solid #d8e5f2; border-radius:999px; background:#f8fbff; font-size:13px; font-weight:850; }
.journey-time-chip svg { width:16px; height:16px; fill:#0b67c8; }
.journey-week-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.journey-day-box { position:relative; min-height:72px; padding:10px 8px; display:grid; align-content:center; gap:3px; border:1px dashed #d3deea; border-radius:12px; background:repeating-linear-gradient(135deg,#f5f8fc 0,#f5f8fc 7px,#eef3f8 7px,#eef3f8 14px); color:#8a99aa; text-align:center; opacity:.72; }
.journey-day-box::after { content:""; position:absolute; inset:8px; border-radius:9px; border:1px solid rgba(132,149,169,.16); pointer-events:none; }
.journey-day-box.is-active { border:1px solid #8fc2f3; background:linear-gradient(180deg,#e8f4ff 0,#f7fbff 100%); color:#173b5f; box-shadow:inset 0 3px 0 #0b67c8,0 8px 18px rgba(11,103,200,.08); opacity:1; }
.journey-day-box.is-active::after { display:none; }
.journey-day-box > span { color:#7d8ea2; font-size:12px; font-weight:950; }
.journey-day-box.is-active > span { color:#075aa8; }
.journey-day-box > strong { min-height:19px; color:#98a5b4; font-size:14px; }
.journey-day-box.is-active > strong { color:#0b3761; font-size:15px; }
.journey-day-box > small { color:#8f9dae; font-size:10px; font-weight:800; text-transform:uppercase; }
.journey-day-box.is-active > small { color:#516a85; }
.journey-list-wrap .management-table { min-width:980px; table-layout:fixed; }
.journey-list-table th:nth-child(1) { width:24%; }
.journey-list-table th:nth-child(2) { width:17%; }
.journey-list-table th:nth-child(3) { width:28%; }
.journey-list-table th:nth-child(4) { width:13%; }
.journey-list-table th:nth-child(5) { width:10%; }
.journey-list-table th:nth-child(6) { width:8%; }
.journey-list-period { display:grid; gap:4px; }
.journey-list-period strong { color:#183451; font-size:15px; }
.journey-list-period small { color:#70829a; font-size:12px; }
.journey-time-inline { color:#0a477e; font-size:16px; font-weight:900; }
.journey-days-inline { display:flex; align-items:center; gap:6px; }
.journey-row-actions { display:inline-flex; flex-wrap:nowrap; align-items:center; gap:6px; white-space:nowrap; }
.journey-row-actions > .employee-list-shortcut { flex:0 0 auto; }
.journey-viewday-button { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.journey-viewday-button svg { width:17px; height:17px; fill:currentColor; }
html.journey-calendar-open { overflow:hidden; }
.journey-calendar-modal { position:fixed; inset:0; z-index:10050; display:grid; place-items:center; padding:16px; }
.journey-calendar-modal[hidden] { display:none; }
.journey-calendar-modal__backdrop { position:absolute; inset:0; background:rgba(12,31,54,.48); }
.journey-calendar-modal__panel { position:relative; width:min(100%,760px); max-height:calc(100vh - 32px); overflow:auto; padding:20px 22px 22px; border-radius:20px; background:#fff; box-shadow:0 30px 70px rgba(12,31,54,.3); }
.journey-calendar-modal__header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.journey-calendar-modal__header h2 { margin:2px 0 0; color:#142d49; font-size:21px; }
.journey-calendar-modal__close { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; color:#516a85; border:1px solid #d9e5f1; border-radius:11px; background:#f7fbff; font-size:24px; line-height:1; cursor:pointer; }
.journey-calendar-modal__close:hover { color:#0b67c8; border-color:#0b67c8; }
.journey-day-step { width:36px; height:36px; display:grid; place-items:center; color:#0b67c8; border:1px solid #cddbeb; border-radius:10px; background:#f5f9fe; font-size:20px; font-weight:900; line-height:1; cursor:pointer; }
.journey-day-step:hover { border-color:#0b67c8; background:#eaf4ff; }
.journey-day-warning { margin:0; padding:8px 12px; color:#8a4b00; border:1px solid #f3d29a; border-radius:10px; background:#fff7e8; font-size:13px; font-weight:800; }
.journey-day-loading { margin:24px 0; color:#64778f; font-size:13px; text-align:center; }
.journey-color-0 { --journey-color:#0b67c8; } .journey-color-1 { --journey-color:#1f9d55; } .journey-color-2 { --journey-color:#e07b00; }
.journey-color-3 { --journey-color:#8a4fd1; } .journey-color-4 { --journey-color:#d6336c; } .journey-color-5 { --journey-color:#0f9aa8; }
.journey-month-head { display:grid; grid-template-columns:36px 1fr 36px auto; align-items:center; gap:8px; margin-bottom:10px; }
.journey-month-head strong { color:#142d49; font-size:17px; text-align:center; }
.journey-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.journey-month-weekday { color:#8796a8; font-size:12px; font-weight:900; text-align:center; }
.journey-month-day { min-width:0; min-height:64px; padding:6px 3px; display:grid; justify-items:center; align-content:start; gap:4px; color:#183451; border:1px solid #e1eaf4; border-radius:11px; background:#fff; }
.journey-month-day.is-empty { color:#a0acba; background:repeating-linear-gradient(135deg,#f7f9fc 0,#f7f9fc 5px,#eef3f8 5px,#eef3f8 10px); }
.journey-month-day.is-today { border-color:#0b67c8; box-shadow:0 0 0 2px rgba(11,103,200,.22); }
.journey-month-day.is-today .journey-month-number { color:#fff; border-radius:999px; background:#0b67c8; }
.journey-month-day.has-overlap { border-color:#e0a133; background:#fff7e8; }
.journey-month-day { font:inherit; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.journey-month-day:hover { border-color:#8fc2f3; }
.journey-month-day.is-selected { border-color:#0b67c8; background:#eaf4ff; box-shadow:0 0 0 3px rgba(11,103,200,.3); }
.journey-month-legend-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin:16px 0 8px; }
.journey-month-legend-head .journey-month-legend-title { margin:0; }
.journey-day-note { margin:8px 0 0; color:#64778f; font-size:12px; }
.journey-month-legend + .journey-day-warning { margin-top:8px; }
.journey-month-number { min-width:22px; padding:1px 5px; font-size:13px; font-weight:900; text-align:center; }
.journey-month-dots { min-height:8px; display:flex; flex-wrap:wrap; justify-content:center; gap:3px; }
.journey-month-dots i,.journey-month-legend i { width:8px; height:8px; flex:0 0 8px; display:inline-block; border-radius:50%; background:var(--journey-color,#0b67c8); }
.journey-month-hours { font-size:11px; font-weight:800; white-space:nowrap; }
.journey-month-summary { margin:14px 0 4px; display:flex; flex-wrap:wrap; gap:8px; }
.journey-month-summary span { padding:7px 12px; color:#516a85; border:1px solid #d9e5f1; border-radius:999px; background:#f7fbff; font-size:13px; font-weight:700; }
.journey-month-summary strong { margin-left:4px; color:#0a477e; }
.journey-month-summary .is-warning { color:#8a4b00; border-color:#f3d29a; background:#fff7e8; }
.journey-month-legend-title { margin:16px 0 8px; color:#142d49; font-size:15px; }
.journey-month-legend { margin:0; padding:0; list-style:none; display:grid; gap:6px; }
.journey-month-legend li { display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid #e1eaf4; border-left:4px solid var(--journey-color,#0b67c8); border-radius:11px; background:#fff; }
.journey-month-legend li i { width:10px; height:10px; flex-basis:10px; }
.journey-month-legend li span { min-width:0; display:grid; gap:2px; }
.journey-month-legend li strong { color:#183451; font-size:14px; }
.journey-month-legend li small { color:#64778f; font-size:12px; }
.journey-month-legend li em { margin-left:auto; color:#0a477e; font-size:13px; font-style:normal; font-weight:800; white-space:nowrap; }
@media (max-width: 600px) {
    .journey-calendar-modal__panel { padding:16px 12px; }
    .journey-month-grid { gap:3px; }
    .journey-month-day { min-height:52px; padding:4px 1px; }
    .journey-month-hours { font-size:9px; }
    .journey-month-head { grid-template-columns:36px 1fr 36px; }
    .journey-month-today { grid-column:1 / -1; }
}
.journey-days-inline span { width:30px; height:30px; display:grid; place-items:center; color:#9aa7b6; border:1px dashed #d5dfeb; border-radius:9px; background:repeating-linear-gradient(135deg,#f7f9fc 0,#f7f9fc 5px,#eef3f8 5px,#eef3f8 10px); font-size:12px; font-weight:900; opacity:.72; }
.journey-days-inline span.is-active { color:#075aa8; border-style:solid; border-color:#8fc2f3; background:#eaf4ff; box-shadow:inset 0 2px 0 #0b67c8; opacity:1; }
.journey-total-card { width:min(100%,390px); margin-top:16px; padding:14px 16px; display:flex; align-items:center; gap:13px; border:1px solid #d9e5f1; border-radius:17px; background:#fff; box-shadow:0 14px 28px rgba(21,52,86,.06); }
.journey-total-card__icon { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; color:#0b67c8; border-radius:14px; background:#eaf4ff; }
.journey-total-card__icon svg { width:23px; height:23px; fill:currentColor; }
.journey-total-card div { min-width:0; display:grid; gap:3px; }
.journey-total-card strong { color:#142d49; font-size:15px; line-height:1.2; }
.journey-total-card strong small { color:#6e8095; font-size:12px; font-weight:800; }
.journey-total-card p { margin:0; color:#64778f; font-size:12px; }
.journey-total-card > b { margin-left:auto; padding:9px 13px; color:#fff; border-radius:999px; background:#0b67c8; box-shadow:0 10px 18px rgba(11,103,200,.2); font-size:20px; line-height:1; white-space:nowrap; }
.journey-edit-hero .employee-edit-avatar,.journey-edit-avatar { background:linear-gradient(135deg,#eaf4ff,#f7fbff); color:#075aa8; }
.journey-editor-layout { display:grid; gap:18px; }
.incident-editor-layout { width:100%; display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:18px; align-items:start; }
.incident-editor-main { min-width:0; display:grid; gap:18px; }
.incident-centre-scope-note { padding:13px 16px; display:grid; gap:3px; color:#21466b; border:1px solid #bdd9f5; border-radius:12px; background:#f2f8ff; box-shadow:inset 4px 0 0 #0b67c8; }
.incident-centre-scope-note strong { font-size:13px; }
.incident-centre-scope-note span { font-size:12px; line-height:1.4; }
.incident-centre-vacation-warning { display:grid; gap:4px; color:#854d0e; border-color:#f5c36b; background:#fff9e9; box-shadow:inset 4px 0 0 #f59e0b; }
.incident-centre-vacation-warning[hidden] { display:none; }
.incident-centre-vacation-warning strong { color:#713f12; }
.incident-editor-card { padding:22px 26px; border-radius:18px; }
.incident-editor-card > header { margin-bottom:14px; padding-bottom:10px; align-items:center; border-bottom:1px solid #edf2f7; }
.incident-editor-card > header h2 { font-size:22px; }
.incident-editor-card > header p { font-size:13px; }
.incident-editor-scope-grid { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(320px,1fr); gap:12px; align-items:stretch; }
.incident-editor-scope-grid .incident-type-select { grid-column:1/-1; }
.incident-editor-scope-grid label,
.incident-context-card,
.incident-period-grid label:not(.switch-field),
.incident-notes-field { min-width:0; padding:12px 14px; display:grid; gap:7px; align-content:start; border:1px solid #dce7f2; border-radius:12px; background:#f8fbff; }
.incident-editor-scope-grid label > span,
.incident-context-card > span,
.incident-period-grid label > span,
.incident-notes-field > span { color:#65778d; font-size:11px; font-weight:900; letter-spacing:.045em; text-transform:uppercase; }
.incident-editor-scope-grid label > small,
.incident-period-grid label > small,
.incident-notes-field > small,
.incident-context-card > small { color:#74859a; font-size:11px; line-height:1.35; }
.incident-context-card strong { color:#14304f; font-size:17px; }
.incident-editor-scope-grid input,
.incident-editor-scope-grid select,
.incident-period-grid input,
.incident-notes-field textarea { width:100%; min-width:0; color:#142d49; border:1px solid #cbd9e8; border-radius:10px; background:#fff; font-size:15px; font-weight:800; box-sizing:border-box; outline:none; }
.incident-editor-scope-grid input,
.incident-editor-scope-grid select,
.incident-period-grid input { height:38px; padding:0 11px; }
.incident-notes-field textarea { min-height:116px; padding:12px; resize:vertical; line-height:1.45; }
.incident-editor-scope-grid input:focus,
.incident-editor-scope-grid select:focus,
.incident-period-grid input:focus,
.incident-notes-field textarea:focus { border-color:#0b67c8; box-shadow:0 0 0 3px rgba(11,103,200,.12); }
.incident-period-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; align-items:stretch; }
.incident-all-day-switch { grid-column:auto; min-height:64px; padding:12px 14px; display:flex; align-items:center; gap:12px; border:1px solid #dce7f2; border-radius:12px; background:#f8fbff; }
.admin-editor-form--incident .incident-all-day-switch { min-height:64px; align-items:center; background:#f8fbff; }
.admin-editor-form--incident .incident-all-day-switch input[type="checkbox"],
.admin-editor-form--incident .incident-marker-switch input[type="checkbox"] { flex:0 0 auto; width:18px; height:18px; margin:0; accent-color:#0b67c8; }
.incident-all-day-switch.is-on,
.incident-all-day-switch:has(input[type="checkbox"]:checked) { border-color:#b7d7f5; background:#f3f9ff; box-shadow:inset 3px 0 0 #0b67c8; }
.incident-hours-field.is-muted { opacity:.72; background:#f3f6fa; }
.incident-period-grid .incident-duration-picker { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:7px; color:#142f4e; font-size:14px; font-weight:700; letter-spacing:normal; text-transform:none; }
.incident-duration-picker > span { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px; }
.incident-period-grid .incident-duration-picker input { height:38px; margin:0; padding:0 9px; text-align:right; }
.incident-duration-picker small { color:#526a84; font-size:11px; font-weight:800; letter-spacing:normal; text-transform:none; }
.incident-duration-picker > b { color:#73869c; font-size:20px; line-height:1; }
.incident-marker-grid { margin-top:10px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.incident-marker-switch { min-height:58px; padding:10px 12px; display:flex; align-items:center; gap:10px; border:1px solid #dce7f2; border-radius:12px; background:#f8fbff; transition:border-color .15s,background .15s,box-shadow .15s; }
.admin-editor-form--incident .incident-marker-switch { min-height:58px; align-items:center; background:#f8fbff; }
.incident-marker-switch > span { min-width:0; display:grid; gap:2px; }
.incident-marker-switch strong { color:#173451; font-size:13px; letter-spacing:.02em; }
.incident-marker-switch small { color:#6f8196; font-size:10px; line-height:1.3; }
.incident-marker-switch.is-on,
.incident-marker-switch:has(input[type="checkbox"]:checked) { border-color:#a9dfc0; background:#f0fbf5; box-shadow:inset 3px 0 0 #14a66a; }
.incident-editor-help { align-self:start; }
.journey-editor-card { border-radius:18px; }
.journey-editor-main-grid { display:grid; grid-template-columns:minmax(280px,1.3fr) 180px 180px 180px; gap:12px; align-items:start; }
.journey-editor-main-grid label,.journey-editor-day { min-width:0; padding:13px 14px; display:grid; gap:7px; border:1px solid #dce7f2; border-radius:13px; background:#f8fbff; }
.journey-editor-main-grid label > span,.journey-day-hours > span { color:#65778d; font-size:11px; font-weight:900; letter-spacing:.045em; text-transform:uppercase; }
.journey-editor-main-grid label > small { color:#74859a; font-size:11px; line-height:1.35; }
.journey-editor-main-grid input,.journey-day-hours output { width:100%; height:44px; min-width:0; padding:0 12px; color:#142d49; border:1px solid #cbd9e8; border-radius:10px; background:#fff; font-size:15px; font-weight:800; box-sizing:border-box; outline:none; }
.journey-editor-main-grid input:focus,.journey-day-hours input:focus { border-color:#0b67c8; box-shadow:0 0 0 3px rgba(11,103,200,.12); }
.journey-time-error { margin:10px 2px 0; color:#b93838; font-size:12px; font-weight:800; }
.journey-editor-summary-strip { margin-top:14px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.journey-editor-summary-strip span { padding:13px 14px; display:grid; gap:3px; border:1px solid #dce7f2; border-radius:13px; background:#fff; }
.journey-editor-summary-strip strong { color:#0b3761; font-size:18px; }
.journey-editor-summary-strip small { color:#71849b; font-size:11px; font-weight:800; text-transform:uppercase; }
.journey-editor-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.journey-editor-day { padding:12px; border-style:dashed; background:repeating-linear-gradient(135deg,#f7f9fc 0,#f7f9fc 7px,#eef3f8 7px,#eef3f8 14px); opacity:.78; transition:border-color .15s,background .15s,opacity .15s,box-shadow .15s; }
.journey-editor-day.is-active { border-style:solid; border-color:#8fc2f3; background:linear-gradient(180deg,#edf6ff,#fff); box-shadow:inset 0 3px 0 #0b67c8; opacity:1; }
.journey-day-toggle { display:grid; gap:7px; cursor:pointer; }
.journey-day-toggle input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; }
.journey-day-toggle span { width:38px; height:38px; display:grid; place-items:center; color:#8796a8; border:1px dashed #ccd8e6; border-radius:12px; background:#fff; font-weight:950; }
.journey-editor-day.is-active .journey-day-toggle span { color:#fff; border-color:#0b67c8; background:#0b67c8; box-shadow:0 8px 16px rgba(11,103,200,.18); }
.journey-day-toggle strong { color:#7a8ba0; font-size:14px; }
.journey-editor-day.is-active .journey-day-toggle strong { color:#173451; }
.journey-day-hours { display:grid; gap:6px; }
.journey-editor-layout--compact { width:100%; display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:18px; align-items:start; }
.journey-editor-main { min-width:0; display:grid; gap:18px; }
.journey-editor-card--compact { padding:26px; border-radius:18px; }
.journey-editor-card--compact > header { margin-bottom:16px; padding-bottom:12px; align-items:center; border-bottom:1px solid #edf2f7; }
.journey-editor-card--compact > header h2 { font-size:22px; }
.journey-editor-card--compact > header p { font-size:13px; }
.journey-editor-card--compact .journey-editor-main-grid { grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); gap:12px; align-items:stretch; }
.journey-editor-card--compact .journey-editor-main-grid label { min-height:88px; padding:13px 14px; gap:7px; border-radius:12px; }
.journey-editor-card--compact .journey-editor-main-grid input,
.journey-editor-card--compact .journey-editor-main-grid select { width:100%; height:39px; min-width:0; padding:0 10px; color:#142d49; border:1px solid #cbd9e8; border-radius:10px; background:#fff; font-size:14px; font-weight:800; box-sizing:border-box; outline:none; }
.journey-editor-card--compact .journey-editor-main-grid input:focus,
.journey-editor-card--compact .journey-editor-main-grid select:focus { border-color:#0b67c8; box-shadow:0 0 0 3px rgba(11,103,200,.12); }
.journey-editor-card--compact .journey-time-control input { width:150px; justify-self:start; text-align:center; }
.journey-period-select { grid-row:span 1; }
.journey-editor-card--compact .journey-editor-main-grid label > small { max-width:520px; }
.journey-editor-card--compact .journey-editor-summary-strip { margin-top:14px; grid-template-columns:minmax(150px,.45fr) minmax(180px,.55fr) minmax(220px,1fr); }
.journey-editor-card--compact .journey-editor-summary-strip span { padding:12px 14px; gap:4px; }
.journey-editor-card--compact .journey-editor-summary-strip small { order:0; }
.journey-editor-card--compact .journey-editor-summary-strip strong { order:1; font-size:17px; }
.journey-days-panel { width:100%; display:grid; grid-template-columns:minmax(420px,1fr) minmax(280px,.68fr); gap:14px; align-items:start; }
.journey-days-panel--horizontal { grid-template-columns:repeat(7,minmax(104px,1fr)); gap:10px; }
.journey-day-group { min-width:0; padding:10px; display:grid; gap:8px; border:1px solid #dce7f2; border-radius:16px; background:#f8fbff; }
.journey-day-group--weekend { border-color:#f1d3ad; background:#fff8ef; }
.journey-day-group h3 { margin:0 0 2px; color:#173451; font-size:13px; font-weight:950; letter-spacing:.035em; text-transform:uppercase; }
.journey-editor-day-row { min-height:50px; padding:7px 8px; display:grid; grid-template-columns:minmax(0,1fr) 82px; gap:8px; align-items:center; border:1px dashed #d6e1ed; border-radius:12px; background:#fff; opacity:.74; transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,opacity .18s ease,transform .18s ease; }
.journey-editor-day-row--horizontal { min-height:142px; padding:11px; grid-template-columns:1fr; align-content:space-between; gap:10px; background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 7px,#eef3f8 7px,#eef3f8 14px); }
.journey-editor-day-row--horizontal.is-weekend { border-color:#f1d3ad; background:repeating-linear-gradient(135deg,#fffaf3 0,#fffaf3 7px,#fff1df 7px,#fff1df 14px); }
.journey-editor-day-row--horizontal.is-inactive { border-style:dashed; border-color:#d6e1ed; background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 7px,#eef3f8 7px,#eef3f8 14px); box-shadow:none; opacity:.62; }
.journey-editor-day-row--horizontal.is-weekend.is-inactive { border-color:#f1d3ad; background:repeating-linear-gradient(135deg,#fffaf3 0,#fffaf3 7px,#fff1df 7px,#fff1df 14px); }
.journey-editor-day-row.is-active,
.journey-editor-day-row:has(.journey-day-switch input[type="checkbox"]:checked) { border-style:solid; border-color:#9ac8f4; background:linear-gradient(90deg,#eef7ff,#fff); opacity:1; box-shadow:inset 3px 0 0 #0b67c8; }
.journey-editor-day-row--horizontal.is-active,
.journey-editor-day-row--horizontal:has(.journey-day-switch input[type="checkbox"]:checked) { background:linear-gradient(180deg,#eef7ff,#fff); box-shadow:inset 0 4px 0 #0b67c8,0 10px 20px rgba(11,103,200,.08); transform:translateY(-1px); }
.journey-editor-day-row--horizontal.is-weekend.is-active,
.journey-editor-day-row--horizontal.is-weekend:has(.journey-day-switch input[type="checkbox"]:checked) { border-color:#f1bd82; background:linear-gradient(180deg,#fff4e7,#fff); box-shadow:inset 0 4px 0 #db7800; }
.journey-day-group--weekend .journey-editor-day-row.is-active,
.journey-day-group--weekend .journey-editor-day-row:has(.journey-day-switch input[type="checkbox"]:checked) { border-color:#f1bd82; background:linear-gradient(90deg,#fff4e7,#fff); box-shadow:inset 3px 0 0 #db7800; }
.journey-day-switch { min-width:0; display:grid; grid-template-columns:42px 28px minmax(0,1fr); gap:8px; align-items:center; cursor:pointer; }
.journey-editor-day-row--horizontal .journey-day-switch { grid-template-columns:1fr; justify-items:center; gap:7px; text-align:center; }
.journey-day-switch input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; }
.journey-switch-ui { width:40px; height:24px; position:relative; display:block; border:1px solid #cbd8e6; border-radius:999px; background:#dfe7ef; box-shadow:inset 0 1px 3px rgba(20,42,70,.12); transition:background .15s,border-color .15s; }
.journey-switch-ui::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(20,42,70,.22); transition:transform .15s; }
.journey-day-switch input[type="checkbox"]:checked + .journey-switch-ui { border-color:#0b67c8; background:#0b67c8; }
.journey-day-switch input[type="checkbox"]:checked + .journey-switch-ui::after { transform:translateX(16px); }
.journey-day-switch b { width:28px; height:28px; display:grid; place-items:center; color:#7c8da2; border-radius:9px; background:#edf2f7; font-size:12px; font-weight:950; }
.journey-editor-day-row--horizontal .journey-day-switch b { width:34px; height:34px; font-size:13px; }
.journey-editor-day-row.is-active .journey-day-switch b,
.journey-editor-day-row:has(.journey-day-switch input[type="checkbox"]:checked) .journey-day-switch b { color:#fff; background:#0b67c8; }
.journey-day-group--weekend .journey-editor-day-row.is-active .journey-day-switch b,
.journey-day-group--weekend .journey-editor-day-row:has(.journey-day-switch input[type="checkbox"]:checked) .journey-day-switch b { background:#db7800; }
.journey-day-switch strong { min-width:0; color:#51657c; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.journey-editor-day-row--horizontal .journey-day-switch strong { width:100%; font-size:13px; text-align:center; }
.journey-editor-day-row.is-active .journey-day-switch strong,
.journey-editor-day-row:has(.journey-day-switch input[type="checkbox"]:checked) .journey-day-switch strong { color:#173451; }
.journey-day-hours--compact { gap:4px; }
.journey-editor-day-row--horizontal .journey-day-hours--compact { width:100%; justify-items:center; text-align:center; }
.journey-day-hours--compact > span { font-size:10px; }
.journey-day-hours--compact output { height:32px; padding:0 7px; display:grid; place-items:center; text-align:center; font-size:13px; }
.journey-editor-day-row--horizontal .journey-day-hours--compact output { max-width:102px; }
.journey-editor-day-row--horizontal.is-inactive .journey-day-hours--compact output { color:#8a99aa; border-color:#d9e3ee; background:#f1f5f9; opacity:1; }
.journey-editor-help { align-self:start; }
@media (max-width:1180px) {
    .journey-card-grid { grid-template-columns:1fr; }
    .journey-filter-form { grid-template-columns:120px minmax(220px,1fr) minmax(220px,1fr); }
    .journey-editor-main-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .journey-editor-week { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .incident-editor-layout { grid-template-columns:1fr; }
    .incident-editor-help { position:static; }
    .journey-editor-layout--compact { grid-template-columns:1fr; }
    .journey-editor-help { position:static; }
    .journey-editor-card--compact .journey-editor-main-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .journey-days-panel { grid-template-columns:1fr; }
}
@media (max-width:760px) {
    .journey-toolbar { flex-direction:column; }
    .journey-filter-form,.journey-editor-main-grid,.journey-editor-summary-strip,.incident-editor-scope-grid,.incident-period-grid,.incident-marker-grid { grid-template-columns:1fr; }
    .journey-week-grid,.journey-editor-week { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .journey-view-tools { justify-content:space-between; }
    .journey-editor-card--compact .journey-editor-main-grid,
    .journey-editor-card--compact .journey-editor-summary-strip,
    .journey-editor-day-row { grid-template-columns:1fr; }
    .incident-all-day-switch { grid-column:auto; }
    .journey-day-switch { grid-template-columns:52px 30px minmax(0,1fr); }
}
/* Onboarding / registro guiado */
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
.register-page .public-form-section{padding-top:72px}
.register-card{align-self:start}
.register-login-link{margin-top:24px;padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #e1eaf3;color:#718198;font-size:12px}
.register-login-link a{color:#0868cb;font-weight:850;text-decoration:none}
.register-login-link a:hover{text-decoration:underline}
.register-summary span{position:relative;padding-left:28px}
.register-summary span:before{content:'\2713';position:absolute;left:0;top:0;color:#078b5b;font-weight:900}
.register-summary span:before{content:'✓';position:absolute;left:0;top:0;color:#078b5b;font-weight:900}
.public-register-form{gap:18px}
.register-summary span:before{content:'\2713'}
.public-consent{grid-column:1/-1;display:flex;align-items:flex-start;gap:12px;padding:14px 15px;border:1px solid #d6e2ee;border-radius:12px;background:#f8fbff;color:#31445e;font-size:13px;font-weight:750;line-height:1.45}
.public-consent input{width:18px;height:18px;margin-top:1px;accent-color:#0b69ce;flex:0 0 auto}
.register-validation-line{margin-top:-10px}
.register-validation-line:empty{display:none}
.public-field .field-validation-error,.register-validation-line .field-validation-error{color:#b33b32;font-size:12px;font-weight:800}
.onboarding-area{max-width:1580px}
.onboarding-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#fff,#eef7ff);border:1px solid #d3e2f2;border-radius:22px;padding:28px 32px;margin-bottom:22px;box-shadow:0 14px 36px rgba(11,49,86,.07)}
.onboarding-hero h1{margin:6px 0 8px;font-size:40px;line-height:1.05;color:#142b49}
.onboarding-hero p{margin:0;color:#627891;font-size:16px}
.onboarding-steps{display:flex;gap:10px;list-style:none;margin:0;padding:0}
.onboarding-steps li{display:flex;align-items:center;gap:8px;border:1px solid #d2e2f2;background:#fff;border-radius:999px;padding:10px 14px;color:#697f96;font-weight:800}
.onboarding-steps li span{display:grid;place-items:center;width:32px;height:32px;border-radius:12px;background:#edf5ff;color:#0767d8;font-size:13px}
.onboarding-steps li.is-active{border-color:#0b6bdc;color:#122b49;box-shadow:0 8px 20px rgba(7,103,216,.13)}
.onboarding-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.onboarding-card,.onboarding-help{background:#fff;border:1px solid #d3e2f2;border-radius:22px;box-shadow:0 12px 28px rgba(12,45,78,.06)}
.onboarding-card{padding:28px}
.onboarding-help{padding:24px;position:sticky;top:92px}
.onboarding-help h3{font-size:22px;margin:6px 0 10px;color:#142b49}
.onboarding-help p,.onboarding-help li{color:#61758b;line-height:1.55}
.onboarding-help ul{padding-left:20px;margin:14px 0 0}
.onboarding-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}
.onboarding-form-grid .form-field--wide{grid-column:1/-1}
.onboarding-form-grid .form-field{display:grid;gap:8px;min-width:0}
.onboarding-form-grid .form-field label{color:#64758a;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.onboarding-form-grid .form-field input,.onboarding-form-grid .form-field select{box-sizing:border-box;width:100%;min-width:0;height:52px;padding:0 14px;color:#102a49;border:1px solid #c9d9ea;border-radius:12px;background:#f9fcff;font:inherit;font-size:15px;font-weight:750;outline:none}
.onboarding-form-grid .form-field input:focus,.onboarding-form-grid .form-field select:focus{border-color:#0b6bdc;background:#fff;box-shadow:0 0 0 4px rgba(11,107,220,.12)}
.onboarding-form-grid .field-validation-error{color:#b33b32;font-size:12px;font-weight:800}
.onboarding-actions{margin-top:24px;justify-content:flex-end}
.onboarding-card .section-heading{display:flex;align-items:flex-start;gap:16px;border-bottom:1px solid #e3edf7;padding-bottom:18px}
.onboarding-card .section-heading>span{display:grid;place-items:center;min-width:46px;height:46px;border-radius:14px;background:#eaf4ff;color:#0767d8;font-weight:900}
.onboarding-card .section-heading h2{font-size:30px;margin:0 0 6px;color:#142b49}
.onboarding-card .section-heading p{margin:0;color:#687d94;font-size:15px}
@media (max-width:1100px){
  .onboarding-hero{align-items:flex-start;flex-direction:column}
  .onboarding-layout{grid-template-columns:1fr}
  .onboarding-help{position:static}
}
@media (max-width:760px){
  .onboarding-steps{flex-direction:column;width:100%}
  .onboarding-form-grid{grid-template-columns:1fr}
  .onboarding-hero h1{font-size:32px}
}
@media (max-width:640px){
  .public-header{min-height:64px;padding:6px 14px;gap:12px}
  .public-header .brand-logo{width:132px}
  .register-page .public-page-hero{padding:38px 18px 30px;gap:22px}
  .register-page .public-page-hero h1{font-size:34px;letter-spacing:-1.4px}
  .register-page .public-page-hero>div>p:last-child{margin-top:16px;font-size:16px;line-height:1.5}
  .register-summary{width:100%;max-width:none;padding:20px}
  .register-page .public-form-section{padding:28px 16px 70px;gap:24px}
  .register-page .public-form-copy h2{font-size:31px;letter-spacing:-1px}
  .register-page .public-form-copy>p:not(.eyebrow){font-size:15px;line-height:1.55}
  .register-card{padding:22px 18px;border-radius:18px}
  .register-login-link{align-items:flex-start;flex-direction:column}
  .public-register-form{grid-template-columns:1fr;gap:15px}
  .public-register-form .public-field,.public-register-form .public-field--wide,.public-register-form .public-form-alert{grid-column:1}
  .public-register-form input{font-size:16px}
  .public-consent{grid-column:1;padding:13px;font-size:13px}
  .public-form-actions .button,.public-form-submit{width:100%;justify-content:center}
  .admin-shell{--sidebar-width:0px!important;display:block}
  .admin-shell .sidebar{display:none}
  .admin-workspace{min-width:0}
  .admin-topbar{position:sticky;top:0;z-index:45;min-height:auto;padding:8px 10px;gap:8px;align-items:stretch;flex-direction:column}
  .company-form{width:100%;display:grid;gap:6px}
  .company-form label{display:block;font-size:10px}
  .company-selector-control{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:7px}
  .company-form select{width:100%;max-width:none}
  .topbar-actions{width:100%;justify-content:space-between}
  .user-menu{min-width:0}
  .admin-content.onboarding-area{padding:16px 12px 34px}
  .onboarding-hero{padding:20px 16px;border-radius:18px;margin-bottom:16px}
  .onboarding-hero h1{font-size:29px;letter-spacing:-.8px}
  .onboarding-hero p{font-size:14px;line-height:1.45}
  .onboarding-steps{display:grid;grid-template-columns:1fr;gap:8px}
  .onboarding-steps li{min-height:44px;padding:8px 10px;border-radius:14px;font-size:13px}
  .onboarding-steps li span{width:28px;height:28px;border-radius:9px}
  .onboarding-layout{gap:14px}
  .onboarding-card,.onboarding-help{border-radius:18px}
  .onboarding-card{padding:18px 14px}
  .onboarding-help{padding:18px 16px}
  .onboarding-card .section-heading{gap:11px;padding-bottom:14px}
  .onboarding-card .section-heading>span{min-width:36px;height:36px;border-radius:11px}
  .onboarding-card .section-heading h2{font-size:23px;line-height:1.1}
  .onboarding-card .section-heading p{font-size:13px;line-height:1.45}
  .onboarding-form-grid{gap:13px;margin-top:18px}
  .onboarding-form-grid .form-field input,.onboarding-form-grid .form-field select{height:50px;font-size:16px}
  .onboarding-actions{position:static;margin:18px 0 0;padding:0;background:transparent;border:0;box-shadow:none}
  .onboarding-actions .btn{width:100%;min-height:48px}
}
@media (max-width:390px){
  .register-page .public-page-hero h1{font-size:30px}
  .register-page .public-form-section{padding-inline:12px}
  .register-card{padding-inline:14px}
  .admin-content.onboarding-area{padding-inline:8px}
  .onboarding-card{padding-inline:12px}
}

/* Navegación privada adaptable. El mismo panel sirve a empresa, centro y trabajador. */
.mobile-nav-toggle,
.mobile-nav-backdrop {
  display: none;
}

@media (max-width: 820px) {
  .admin-body.is-mobile-nav-open {
    overflow: hidden;
  }

  .admin-shell {
    --sidebar-width: 0px !important;
    display: block;
  }

  .admin-shell .sidebar {
    display: flex !important;
    position: fixed;
    z-index: 130;
    inset: 0 auto 0 0;
    width: min(86vw, 320px) !important;
    max-width: 320px;
    height: 100dvh;
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
    transform: translateX(-105%);
    visibility: hidden;
    box-shadow: 18px 0 48px rgba(7, 37, 76, .28);
    transition: transform .22s ease, visibility 0s linear .22s;
    outline: none;
  }

  .admin-shell.is-mobile-nav-open .sidebar {
    transform: translateX(0);
    visibility: visible;
    transition: transform .22s ease;
  }

  .admin-shell .sidebar-resizer {
    display: none;
  }

  .mobile-nav-backdrop {
    position: fixed;
    z-index: 120;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(4, 24, 50, .55);
    backdrop-filter: blur(2px);
    cursor: pointer;
  }

  .mobile-nav-backdrop:not([hidden]) {
    display: block;
  }

  .mobile-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 92px;
    min-height: 44px;
    padding: 9px 13px;
    border: 1px solid #c9d9ed;
    border-radius: 12px;
    background: #fff;
    color: #0b4f9c;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 5px 16px rgba(18, 68, 125, .08);
  }

  .mobile-nav-toggle:focus-visible {
    outline: 3px solid rgba(18, 112, 216, .24);
    outline-offset: 2px;
  }

  .mobile-nav-toggle__icon {
    display: grid;
    gap: 4px;
    width: 19px;
  }

  .mobile-nav-toggle__icon i {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
  }

  .admin-topbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    min-height: 68px;
    height: auto;
    gap: 10px;
    padding: 9px 14px;
  }

  .admin-topbar .company-form,
  .admin-topbar .company-empty {
    min-width: 0;
  }

  .admin-topbar .topbar-actions {
    min-width: 0;
  }

  .admin-content {
    padding-inline: 16px;
  }
}

@media (max-width: 640px) {
  .admin-topbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    padding: 8px 10px;
  }

  .admin-topbar .company-form,
  .admin-topbar .company-empty {
    width: 100%;
  }

  .admin-topbar .topbar-actions {
    grid-column: 1 / -1;
  }

  .admin-content {
    padding: 16px 10px 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .admin-shell .sidebar {
    transition: none;
  }
}

/* Gestor documental: filtros comunes, KPI compactos y explorador de archivos */
.document-explorer-filters{margin:18px 0 12px}
.document-explorer-search{grid-template-columns:minmax(250px,1.4fr) minmax(105px,135px) minmax(155px,220px) minmax(135px,170px) auto auto}
.document-explorer-search--with-workers{grid-template-columns:minmax(220px,1.3fr) minmax(100px,120px) minmax(135px,180px) minmax(160px,220px) minmax(125px,155px) auto auto}
.document-explorer-search .btn{min-height:42px}
.document-explorer-view-tools{align-self:end;white-space:nowrap}
.document-view-icon{position:relative;width:18px;height:18px;display:block}
.document-view-icon--explorer{background:linear-gradient(90deg,currentColor 0 42%,transparent 42% 58%,currentColor 58%),linear-gradient(0deg,currentColor 0 42%,transparent 42% 58%,currentColor 58%);border-radius:2px}
.document-view-icon--list::before,.document-view-icon--list::after{content:"";position:absolute;left:0;right:0;height:3px;border-radius:2px;background:currentColor;box-shadow:0 7px 0 currentColor,0 14px 0 currentColor}
.document-view-icon--list::after{display:none}

.admin-module-summary--documents{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.admin-module-summary--documents article,.admin-module-summary--documents>a{min-height:76px;padding:10px 12px;display:grid;gap:2px;border:1px solid #dce7f2;border-radius:12px;background:linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 6px 18px rgba(22,48,79,.035)}
.admin-module-summary--documents>a{position:relative;color:inherit;text-decoration:none;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.admin-module-summary--documents>a:hover{transform:translateY(-2px);border-color:#85b9ed;box-shadow:0 11px 24px rgba(22,76,132,.11)}
.admin-module-summary--documents>a:focus-visible{outline:3px solid rgba(11,103,200,.25);outline-offset:2px}
.admin-module-summary--documents>a.is-active{border-color:#0b67c8;box-shadow:inset 0 -3px 0 #0b67c8,0 9px 22px rgba(11,103,200,.12)}
.admin-module-summary--documents>a.is-active::after{content:"";position:absolute;right:9px;top:9px;width:7px;height:7px;border-radius:50%;background:#0b67c8;box-shadow:0 0 0 4px rgba(11,103,200,.11)}
.admin-module-summary--documents span{font-size:9px;letter-spacing:.075em}
.admin-module-summary--documents strong{font-size:19px;line-height:1}
.admin-module-summary--documents small{font-size:10px}
.management-pagination__actions{align-items:center;flex-wrap:wrap}
.management-page-size{margin-right:4px}
.management-page-size label{display:flex;align-items:center;gap:7px;color:#657990;font-size:11px;font-weight:800;white-space:nowrap}
.management-page-size select{height:34px;min-width:70px;padding:0 28px 0 10px;color:#173553;border:1px solid #cfddea;border-radius:8px;background:#fff;font:inherit;font-weight:900;cursor:pointer}
.management-page-size select:focus{border-color:#4b96df;outline:3px solid rgba(11,103,200,.12)}
.management-pagination__numbers{display:flex;align-items:center;gap:4px}
.management-pagination__numbers>a,.management-pagination__numbers>span{min-width:34px;height:34px;padding:0 7px;display:grid;place-items:center;color:#42617f;border:1px solid #d7e3ef;border-radius:8px;background:#fff;font-size:11px;font-weight:900;text-decoration:none}
.management-pagination__numbers>a:hover{color:#0759a5;border-color:#8cbbe9;background:#edf6ff}
.management-pagination__numbers>span[aria-hidden="true"]{min-width:20px;padding:0;color:#8392a3;border-color:transparent;background:transparent}
.management-pagination__numbers>.is-active{color:#fff;border-color:#0b67c8;background:#0b67c8;box-shadow:0 5px 12px rgba(11,103,200,.2)}

.document-explorer{margin-top:14px;overflow:hidden;border:1px solid #d6e2ef;border-radius:16px;background:#fff;box-shadow:0 14px 34px rgba(23,54,88,.055)}
.document-explorer__header{min-height:54px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #dfe8f2;background:#fbfdff}
.document-explorer__header>div{min-width:0;display:flex;align-items:center;gap:10px}
.document-explorer__header p{min-width:0;margin:0;display:flex;align-items:center;gap:8px;color:#6b7f95;font-size:13px}
.document-explorer__header p strong{color:#173553;font-weight:950}
.document-explorer__header p span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-explorer__header>span{color:#73869c;font-size:12px;font-weight:850;white-space:nowrap}
.document-explorer__location-icon{position:relative;width:21px;height:15px;display:block;border-radius:3px;background:#0b67c8}
.document-explorer__location-icon::before{content:"";position:absolute;left:2px;top:-4px;width:9px;height:6px;border-radius:3px 3px 0 0;background:#0b67c8}
.document-explorer__body{min-width:0;display:grid;grid-template-columns:220px minmax(0,1fr)}
.document-explorer__sidebar{padding:14px 10px;border-right:1px solid #e0e8f1;background:#f7f9fc}
.document-explorer__sidebar nav{display:grid;gap:3px}
.document-explorer__sidebar nav+nav{margin-top:18px;padding-top:14px;border-top:1px solid #dde6ef}
.document-explorer__nav-title{padding:0 10px 7px;color:#8090a3;font-size:9px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.document-explorer__sidebar a{min-width:0;min-height:38px;padding:7px 9px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;color:#3d536c;border-radius:9px;font-size:12px;font-weight:800;text-decoration:none}
.document-explorer__sidebar a:hover{color:#0b67c8;background:#edf5ff}
.document-explorer__sidebar a.is-active{color:#0759a5;background:#e4f0fd;box-shadow:inset 3px 0 0 #0b67c8}
.document-explorer__sidebar a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-explorer__sidebar a b{min-width:22px;color:#718398;text-align:right;font-size:11px}
.document-folder-icon{position:relative;width:17px;height:12px;display:block;border-radius:2px;background:#4a96e4}
.document-folder-icon::before{content:"";position:absolute;left:1px;top:-3px;width:8px;height:5px;border-radius:2px 2px 0 0;background:inherit}
.document-folder-icon--pending{background:#e99a38}
.document-folder-icon--draft{background:#8a9aad}
.document-folder-icon--archive{background:#7964d7}
.document-folder-icon--category{background:#39a980}
.document-folder-icon--worker{width:15px;height:15px;border-radius:50%;background:#3b7fc4}
.document-folder-icon--worker::before{left:4px;top:-4px;width:7px;height:7px;border-radius:50%;background:#3b7fc4}
.document-explorer__workers{overflow:visible}
.document-worker-search{padding:0 4px 6px;position:relative;display:block}
.document-worker-search::before{content:"";width:11px;height:11px;position:absolute;z-index:1;left:14px;top:10px;border:2px solid #7990a8;border-radius:50%;pointer-events:none}
.document-worker-search::after{content:"";width:6px;height:2px;position:absolute;z-index:1;left:24px;top:22px;transform:rotate(45deg);border-radius:2px;background:#7990a8;pointer-events:none}
.document-worker-search input{width:100%;height:36px;padding:0 9px 0 31px;color:#203d5b;border:1px solid #d2dfec;border-radius:9px;background:#fff;font:inherit;font-size:11px}
.document-worker-search input:focus{border-color:#4b96df;outline:3px solid rgba(11,103,200,.1)}
.document-explorer__worker-list{height:410px;max-height:410px;display:grid;align-content:start;grid-auto-rows:minmax(38px,max-content);gap:3px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.document-explorer__worker-list>[hidden]{display:none!important}
.document-worker-empty{padding:12px 9px;color:#7a8ca0;font-size:11px;line-height:1.4}
.document-folder-icon--empty{width:52px;height:36px;background:#b8c6d6}
.document-folder-icon--empty::before{top:-8px;width:24px;height:10px}
.document-explorer__files{min-width:0;background:#fff}
.document-explorer__empty{min-height:360px;padding:48px 24px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}
.document-explorer__empty h2{margin:20px 0 6px;color:#173553;font-size:20px}
.document-explorer__empty p{max-width:440px;margin:0 0 18px;color:#70849a;font-size:13px;line-height:1.5}
.document-icon-grid{min-height:360px;padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));align-content:start;gap:12px}
.document-icon-item{position:relative;min-width:0;min-height:154px;padding:12px 8px 9px;display:grid;place-items:center;border:1px solid transparent;border-radius:12px;background:#fff;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.document-icon-item:hover,.document-icon-item:focus-within{border-color:#cfe0f2;background:#f7fbff;box-shadow:0 8px 20px rgba(23,54,88,.07)}
.document-icon-item__pending-badge{position:absolute;z-index:2;left:7px;top:7px;max-width:calc(100% - 14px);padding:5px 8px;overflow:hidden;color:#9b5b10;border:1px solid #f0cf9f;border-radius:999px;background:#fff4df;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:950;line-height:1}
.document-icon-item__pending-badge::before{content:"!";margin-right:4px}
.document-icon-item__open{width:100%;min-width:0;display:grid;justify-items:center;gap:10px;color:#173553;text-align:center;text-decoration:none}
.document-icon-item__open strong{width:100%;min-height:34px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-weight:900;line-height:1.4;overflow-wrap:anywhere}
.document-large-file-icon{position:relative;width:68px;height:84px;display:grid;place-items:end center;padding-bottom:13px;color:#0b67c8;border:2px solid #b9d7f5;border-radius:8px;background:#edf6ff;box-sizing:border-box;box-shadow:0 6px 14px rgba(32,75,120,.07)}
.document-large-file-icon::after{content:"";position:absolute;right:-2px;top:-2px;width:20px;height:20px;border-left:2px solid #b9d7f5;border-bottom:2px solid #b9d7f5;border-radius:0 7px 0 5px;background:#fff}
.document-large-file-icon i{font-size:11px;font-style:normal;font-weight:950;letter-spacing:.04em}
.document-explorer__columns,.document-file-row{display:grid;grid-template-columns:minmax(290px,1.2fr) minmax(230px,1fr) minmax(155px,.62fr) minmax(190px,.72fr) 150px;align-items:center}
.document-explorer__columns{min-height:44px;padding:0 16px;color:#61758c;border-top:1px solid #e3ebf3;border-bottom:1px solid #dbe6f1;background:linear-gradient(180deg,#fbfdff,#f3f7fb);font-size:9px;font-weight:950;letter-spacing:.075em;text-transform:uppercase}
.document-explorer__columns>*:not(:first-child){padding-left:16px}
.document-explorer__columns>.management-sort{min-width:0;display:flex;align-items:center;gap:7px;color:inherit;text-decoration:none}
.document-explorer__columns>.management-sort:hover{color:#0b67c8}
.document-explorer__columns>.management-sort span::before{content:"↕";color:#9aabbd;font-size:11px;line-height:1}
.document-explorer__columns>.management-sort.is-active{color:#0b67c8}
.document-explorer__columns>.management-sort.is-asc span::before{content:"↑";color:#0b67c8}
.document-explorer__columns>.management-sort.is-desc span::before{content:"↓";color:#0b67c8}
.document-file-row{min-height:92px;padding:12px 16px;border-bottom:1px solid #e3ebf3;background:#fff;transition:background .16s ease,box-shadow .16s ease}
.document-file-row:last-child{border-bottom:0}
.document-file-row:nth-child(even){background:#fbfdff}
.document-file-row:hover{position:relative;background:#f1f7fe;box-shadow:inset 3px 0 0 #78afe5}
.document-file-row--warning{box-shadow:inset 3px 0 0 #e99a38}
.document-file-row__name{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:13px}
.document-file-row__name>div{min-width:0}
.document-file-row__name a{display:block;overflow:hidden;color:#102f4f;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:950;text-decoration:none}
.document-file-row__name a:hover{color:#0b67c8;text-decoration:underline}
.document-file-row__name p{max-width:500px;margin:4px 0 0;overflow:hidden;color:#708399;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.document-file-row__name small{margin-top:6px;padding:4px 8px;display:inline-flex;color:#247052;border-radius:999px;background:#e7f6ef;font-size:9px;font-weight:900}
.document-file-icon{position:relative;width:38px;height:48px;display:grid;place-items:end center;padding-bottom:8px;color:#0b67c8;border:1px solid #b9d7f5;border-radius:6px;background:#edf6ff;box-sizing:border-box;box-shadow:0 5px 12px rgba(31,75,120,.06)}
.document-file-icon::after{content:"";position:absolute;right:-1px;top:-1px;width:10px;height:10px;border-left:1px solid #b9d7f5;border-bottom:1px solid #b9d7f5;border-radius:0 4px 0 3px;background:#fff}
.document-file-icon i{font-size:8px;font-style:normal;font-weight:950;letter-spacing:.04em}
.document-file-type--pdf{color:#c73e3e;border-color:#f1b9b9;background:#fff0f0}
.document-file-type--pdf::after{border-color:#f1b9b9}
.document-file-type--image{color:#7a4ed0;border-color:#d8c7f5;background:#f7f1ff}
.document-file-type--image::after{border-color:#d8c7f5}
.document-file-type--word{color:#2569b5;border-color:#b9d7f5;background:#edf6ff}
.document-file-type--word::after{border-color:#b9d7f5}
.document-file-type--excel{color:#16805d;border-color:#b8e2d3;background:#eefaf5}
.document-file-type--excel::after{border-color:#b8e2d3}
.document-file-type--archive{color:#b66a1d;border-color:#efd0ac;background:#fff6e9}
.document-file-type--archive::after{border-color:#efd0ac}
.document-file-type--text,.document-file-type--file,.document-file-type--empty{color:#66798e;border-color:#ced9e5;background:#f5f7fa}
.document-file-type--text::after,.document-file-type--file::after,.document-file-type--empty::after{border-color:#ced9e5}
.document-file-row__destination,.document-file-row__date,.document-file-row__status{min-width:0;padding-left:14px}
.document-file-row__destination small,.document-file-row__date small{display:none}
.document-file-row__destination strong,.document-file-row__date strong{display:block;overflow:hidden;color:#213f5e;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:900}
.document-file-row__date span{margin-top:4px;display:block;overflow:hidden;color:#788ba0;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.document-file-row__status{display:grid;justify-items:start;gap:5px}
.document-file-row__status small{max-width:100%;overflow:hidden;color:#6f8298;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.document-file-row__status small strong{color:#3a5674}
.document-file-row__actions{padding-left:14px;display:flex;justify-content:flex-end;gap:6px}
.document-file-action{min-height:32px;padding:7px 9px;display:inline-flex;align-items:center;justify-content:center;color:#0b67c8;border:1px solid #cbdff3;border-radius:8px;background:#f4f9ff;font-size:10px;font-weight:950;text-decoration:none}
.document-file-action:hover{border-color:#0b67c8;background:#eaf4ff}
.document-file-action--edit{width:auto;padding:7px 9px;font-size:10px}
.document-file-action--edit::before{display:none}

.btn-danger{color:#fff;border-color:#cf3d50;background:#cf3d50}
.btn-danger:hover{border-color:#ad263b;background:#ad263b}

.fn-admin-page{display:grid;gap:18px;padding:22px 28px 40px;color:#142238}
.fn-admin-hero{min-height:128px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #d7e4f2;border-radius:22px;background:linear-gradient(135deg,#fff 0%,#f1f7ff 100%);box-shadow:0 18px 42px rgba(19,48,80,.07)}
.fn-admin-hero--dashboard{min-height:104px;padding:22px 26px}
.fn-admin-hero h1{margin:4px 0 0;font-size:34px;line-height:1.05;font-weight:950;color:#142238}
.fn-admin-hero p{max-width:760px;margin:8px 0 0;color:#5f738b;font-size:15px;line-height:1.45}
.fn-admin-hero-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.fn-admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fn-admin-kpi{min-height:116px;padding:18px;border:1px solid #dce7f2;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(19,48,80,.055)}
.fn-admin-kpis--compact .fn-admin-kpi{min-height:88px;padding:15px 18px;text-decoration:none}
.fn-admin-kpi span,.fn-admin-card .eyebrow{display:block;color:#70849b;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.fn-admin-kpi strong{margin-top:8px;display:block;color:#0b67c8;font-size:30px;font-weight:950;line-height:1}
.fn-admin-kpis--compact .fn-admin-kpi strong{font-size:26px}
.fn-admin-kpis--compact .fn-admin-kpi--text strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:22px}
.fn-admin-kpi small{margin-top:9px;display:block;color:#6c7f95;font-size:12px;line-height:1.35}
.fn-admin-kpi--warning{border-color:#f4c789;background:#fff8ef}
.fn-admin-kpi--warning strong{color:#c45a13}
.fn-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fn-admin-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:16px}
.fn-admin-card{min-width:0;padding:22px;border:1px solid #dce7f2;border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(19,48,80,.055)}
.fn-admin-card--wide{grid-column:1/-1}
.fn-admin-card--actions{padding:20px}
.fn-admin-card--health{padding:20px}
.fn-admin-card--audit{padding:20px}
.fn-admin-card header{margin-bottom:15px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fn-admin-card h2{margin:4px 0 0;color:#142238;font-size:22px;font-weight:950;line-height:1.12}
.fn-admin-card p{margin:6px 0 0;color:#61758c;font-size:13px;line-height:1.45}
.fn-admin-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fn-admin-action-grid a{min-height:68px;padding:13px 14px;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;color:#142238;border:1px solid #d9e6f2;border-radius:16px;background:#f8fbff;text-decoration:none;font-weight:900}
.fn-admin-action-grid a:hover{border-color:#0b67c8;background:#eef7ff}
.fn-admin-action-grid i{width:38px;height:38px;display:grid;place-items:center;color:#0b67c8;border-radius:12px;background:#eaf4ff;font-size:10px;font-style:normal;font-weight:950;letter-spacing:.04em}
.fn-admin-action-grid strong{display:block;color:#142238;font-size:15px}
.fn-admin-action-grid small{display:block;min-width:0;margin-top:3px;overflow:hidden;color:#64788f;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:750}
.fn-admin-stack{display:grid;gap:10px}
.fn-admin-health-list{display:grid;gap:10px}
.fn-admin-health-list a{min-height:64px;padding:12px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;column-gap:12px;color:#142238;border:1px solid #dfe8f2;border-radius:15px;background:#f8fbff;text-decoration:none}
.fn-admin-health-list a:hover{border-color:#0b67c8;background:#eef7ff}
.fn-admin-health-list a>span{grid-row:1/3;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eaf4ff;color:#0b67c8;font-size:20px;font-weight:950}
.fn-admin-health-list a.is-warning>span{color:#c45a13;background:#fff0dc}
.fn-admin-health-list a.is-ok>span{color:#137b57;background:#e5f7ee}
.fn-admin-health-list strong{display:block;font-size:14px}
.fn-admin-health-list small{display:block;min-width:0;overflow:hidden;color:#667b92;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.fn-admin-list,.fn-admin-list-row{display:grid;gap:10px}
.fn-admin-list-row{padding:12px 0;border-bottom:1px solid #e8eef5;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.fn-admin-list-row:last-child{border-bottom:0}
.fn-admin-list-row strong{display:block;color:#173553;font-size:14px}
.fn-admin-list-row small{display:block;color:#788ba0;font-size:12px}
.fn-admin-toolbar{padding:12px;border:1px solid #dce7f2;border-radius:16px;background:#fff;box-shadow:0 12px 28px rgba(19,48,80,.045)}
.fn-admin-list-toolbar{padding:12px;display:flex;align-items:center;gap:12px;border:1px solid #dce7f2;border-radius:16px;background:#fff;box-shadow:0 12px 28px rgba(19,48,80,.045)}
.fn-admin-summary-status,.fn-admin-diagnostic-status{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #d6e4f1;border-radius:16px;background:#f8fbff;color:#496078}
.fn-admin-summary-status p,.fn-admin-diagnostic-status div{margin:0;display:flex;flex-direction:column;gap:3px}
.fn-admin-summary-status strong,.fn-admin-diagnostic-status strong{color:#16314f;font-size:14px}
.fn-admin-summary-status span,.fn-admin-diagnostic-status span{font-size:13px;line-height:1.4}
.fn-admin-background-form{display:none}
.fn-admin-refresh-busy[hidden]{display:none}
.fn-admin-refresh-busy{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:24px}
.fn-admin-refresh-busy__backdrop{position:absolute;inset:0;background:rgba(10,27,48,.62);backdrop-filter:blur(3px)}
.fn-admin-refresh-busy__card{position:relative;width:min(560px,calc(100vw - 32px));padding:30px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:22px;border:1px solid #cae0f5;border-radius:22px;background:#fff;box-shadow:0 34px 90px rgba(4,24,48,.34)}
.fn-admin-refresh-busy__card h2{margin:5px 0 8px;color:#132946;font-size:24px;line-height:1.15}
.fn-admin-refresh-busy__card p{margin:0;color:#60758d;font-size:14px;line-height:1.5}
.fn-admin-refresh-spinner{width:58px;height:58px;border:6px solid #dcecfb;border-top-color:#0967ce;border-right-color:#21a87a;border-radius:50%;animation:fn-admin-refresh-spin .85s linear infinite}
@keyframes fn-admin-refresh-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.fn-admin-refresh-spinner{animation-duration:1.8s}}
.fn-admin-diagnostic-status.is-ready{border-color:#bfe8d5;background:#f1fbf6}
.fn-admin-diagnostic-status.is-ready strong{color:#08784d}
.fn-admin-diagnostic-status.is-pending{border-color:#f1d39a;background:#fffaf0}
.fn-admin-diagnostic-status.is-pending strong{color:#9a5800}
.fn-admin-search-grow{min-width:220px;flex:1 1 auto}
.fn-admin-filter-group{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}
.fn-admin-list-toolbar input,.fn-admin-list-toolbar select{min-height:44px;padding:0 13px;color:#122844;border:1px solid #cbdced;border-radius:10px;background:#fbfdff;font:inherit;font-size:14px;font-weight:750;box-sizing:border-box}
.fn-admin-list-toolbar input{width:100%}
.fn-admin-list-toolbar select{min-width:132px}
.fn-admin-table-card{border:1px solid #dce7f2;border-radius:16px;overflow:auto;background:#fff}
.fn-admin-table{width:100%;border-collapse:collapse}
.fn-admin-table thead{display:table-header-group}
.fn-admin-table tbody{display:table-row-group}
.fn-admin-table tr{display:table-row}
.fn-admin-table th,.fn-admin-table td{display:table-cell}
.fn-admin-table th{padding:14px 16px;color:#70849b;text-align:left;background:#f4f8fc;border-bottom:1px solid #dce7f2;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle}
.fn-admin-table td{padding:14px 16px;border-bottom:1px solid #e7eef6;color:#2c4865;font-size:13px;vertical-align:middle}
.fn-admin-table td strong{display:block;color:#132a45;font-size:13px;font-weight:950}
.fn-admin-table td small{display:block;margin-top:3px;color:#72859c;font-size:11px;font-weight:700}
.fn-admin-table tr:last-child td{border-bottom:0}
.fn-admin-table tr.clickable-row{cursor:pointer}
.fn-admin-table tr.clickable-row:hover{background:#f8fbff}
.fn-admin-table th a.fn-admin-sort{display:inline-flex;align-items:center;gap:5px;color:inherit;text-decoration:none}
.fn-admin-table th a.fn-admin-sort::after{content:"↕";color:#9aacc0;font-size:10px}
.fn-admin-table th a.fn-admin-sort.is-asc,.fn-admin-table th a.fn-admin-sort.is-desc{color:#0b67c8}
.fn-admin-table th a.fn-admin-sort.is-asc::after{content:"↑";color:#0b67c8}
.fn-admin-table th a.fn-admin-sort.is-desc::after{content:"↓";color:#0b67c8}
.fn-admin-table--companies th:last-child,.fn-admin-table--companies td:last-child,.fn-admin-table--users th:last-child,.fn-admin-table--users td:last-child{text-align:right}
.fn-admin-table--companies{min-width:1380px;table-layout:fixed}
.fn-admin-table--companies th:nth-child(1){width:58px}
.fn-admin-table--companies th:nth-child(2){width:270px}
.fn-admin-table--companies th:nth-child(3){width:118px}
.fn-admin-table--companies th:nth-child(4){width:220px}
.fn-admin-table--companies th:nth-child(5){width:116px}
.fn-admin-table--companies th:nth-child(6){width:84px}
.fn-admin-table--companies th:nth-child(7){width:150px}
.fn-admin-table--companies th:nth-child(8),.fn-admin-table--companies th:nth-child(9){width:82px}
.fn-admin-table--companies th:nth-child(10){width:104px}
.fn-admin-table--companies th:nth-child(11){width:236px}
.fn-admin-company-cell{min-width:0;display:flex;align-items:center;gap:10px}
.fn-admin-company-cell>span:last-child{min-width:0}
.fn-admin-company-cell strong,.fn-admin-table td{overflow:hidden;text-overflow:ellipsis}
.fn-admin-table td{white-space:nowrap}
.fn-admin-table td small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-admin-table-link{color:#0b67c8;text-decoration:none;font-weight:950}
.fn-admin-table-link:hover{text-decoration:underline}
.fn-admin-icon-btn{position:relative;width:38px;height:38px;display:inline-grid;place-items:center;color:#0b67c8;border:1px solid #cbdced;border-radius:10px;background:#f4f9ff;text-decoration:none}
.fn-admin-icon-btn:hover{color:#fff;border-color:#0b67c8;background:#0b67c8}
.fn-admin-icon-btn svg{width:18px;height:18px;fill:currentColor}
.fn-admin-icon-btn span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
.fn-admin-pagination{padding:12px 2px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#64788f;font-size:13px}
.fn-admin-pagination nav{display:flex;align-items:center;gap:10px}
.fn-admin-pagination strong{color:#18334f;font-weight:950}
.fn-admin-pagination .is-disabled{opacity:.45;pointer-events:none}
.fn-admin-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fn-admin-company{min-height:176px;padding:18px;border:1px solid #dce7f2;border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(19,48,80,.055)}
.fn-admin-company header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px}
.fn-admin-company h2{margin:0;color:#142238;font-size:19px;font-weight:950}
.fn-admin-company p{margin:6px 0 0;color:#6d8097;font-size:12px}
.fn-admin-company-logo{width:54px;height:54px;display:grid;place-items:center;flex:0 0 auto;color:#0b67c8;border:1px solid #cfe0f0;border-radius:15px;background:#eaf4ff;font-size:18px;font-weight:950;overflow:hidden}
.fn-admin-company-logo.has-image{background-color:#fff;background-image:var(--company-logo);background-position:center;background-repeat:no-repeat;background-size:contain;color:transparent}
.fn-admin-company-logo--table{width:38px;height:38px;border-radius:11px;font-size:13px}
.fn-admin-company-logo--hero{width:84px;height:84px;border-radius:24px;font-size:28px;box-shadow:0 10px 24px rgba(18,56,94,.08)}
.fn-admin-company-logo--preview{width:138px;height:92px;border-radius:18px;background-color:#f8fbff;background-size:contain}
.fn-admin-company-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}
.fn-admin-hero-chips{margin-top:10px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.fn-admin-hero-chips>span:not(.status-pill){padding:6px 10px;color:#334f6c;border:1px solid #d9e6f2;border-radius:999px;background:#f7fbff;font-size:12px;font-weight:850}
.fn-admin-company-tabs{padding:0 10px;display:flex;align-items:flex-end;gap:4px;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid #cbdced;scrollbar-width:thin}
.fn-admin-company-tabs a{min-width:220px;margin-bottom:-1px;padding:12px 16px 11px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;color:#5a7087;border:1px solid transparent;border-bottom-color:#cbdced;border-radius:13px 13px 0 0;background:transparent;text-decoration:none;transition:color .16s ease,background .16s ease,border-color .16s ease}
.fn-admin-company-tabs--sections a{min-width:174px}
.fn-admin-company-tabs a:hover{color:#0b67c8;background:#f4f9fe}
.fn-admin-company-tabs a.is-active{position:relative;z-index:1;color:#0b67c8;border-color:#cbdced;border-bottom-color:#fff;background:#fff;box-shadow:0 -5px 16px rgba(19,62,103,.045)}
.fn-admin-company-tabs a.is-active::after{content:"";height:3px;position:absolute;left:14px;right:14px;top:0;border-radius:0 0 4px 4px;background:#0b67c8}
.fn-admin-company-tabs i{width:32px;height:32px;display:grid;place-items:center;color:#607991;border-radius:9px;background:#e8eff6;font-size:10px;font-style:normal;font-weight:950}
.fn-admin-company-tabs a.is-active i{color:#fff;background:#0b67c8}
.fn-admin-company-tabs strong,.fn-admin-company-tabs small{display:block}
.fn-admin-company-tabs strong{font-size:12px;white-space:nowrap}
.fn-admin-company-tabs small{margin-top:2px;color:#72869b;font-size:10px}
.fn-admin-company-tab-panel{min-width:0}
.fn-admin-company-tab-panel.is-hidden{display:none!important}
div.fn-admin-company-tab-panel{display:grid;gap:16px}
.fn-admin-company-edit-panel{display:grid;gap:18px}
.fn-admin-company-edit-panel[hidden],[data-company-settings-companion][hidden]{display:none!important}
.fn-admin-company-edit-panel>header{padding-bottom:15px;border-bottom:1px solid #e0e9f2}
.fn-admin-company-status-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.fn-company-status-toggle{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;border:1px solid #cfe9dc;border-radius:14px;background:#f2fbf6;cursor:pointer;transition:background .2s,border-color .2s}
.fn-company-status-toggle.is-blocked{border-color:#edcfcc;background:#fff5f4}
.fn-company-status-toggle__text{display:grid;gap:2px;text-align:right}
.fn-company-status-toggle__text strong{color:#14663f;font-size:14px}
.fn-company-status-toggle.is-blocked .fn-company-status-toggle__text strong{color:#b42318}
.fn-company-status-toggle__text small{color:#6b7f95;font-size:11px}
.fn-company-status-toggle input[type="checkbox"]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.fn-ios-switch{position:relative;width:51px;height:31px;flex:0 0 51px;border-radius:999px;background:#d7dee7;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);transition:background .2s}
.fn-ios-switch::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.22);transition:transform .2s}
.fn-company-status-toggle input[type="checkbox"]:checked+.fn-ios-switch{background:#34c759}
.fn-company-status-toggle input[type="checkbox"]:checked+.fn-ios-switch::after{transform:translateX(20px)}
.fn-company-status-toggle input[type="checkbox"]:focus-visible+.fn-ios-switch{outline:3px solid rgba(11,103,200,.35);outline-offset:2px}
.fn-admin-company-block-reason{display:grid;gap:12px;padding:14px 16px;border:1px solid #edcfcc;border-radius:14px;background:#fff8f7}
.fn-admin-company-block-reason[hidden]{display:none}
.fn-admin-company-block-reason>p{margin:0;color:#7a271a;font-size:13px}
@media (max-width:700px){.fn-admin-company-status-header{flex-direction:column}.fn-company-status-toggle{align-self:stretch;justify-content:space-between}.fn-company-status-toggle__text{text-align:left}}
@media (prefers-reduced-motion:reduce){.fn-ios-switch,.fn-ios-switch::after,.fn-company-status-toggle{transition:none}}
.fn-admin-company-save{margin-top:4px;padding-top:18px;border-top:1px solid #e0e9f2}
.fn-admin-section-intro{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #dce7f2;border-radius:18px;background:linear-gradient(135deg,#fff,#f3f8fd)}
.fn-admin-section-intro h2{margin:4px 0 0;color:#142238;font-size:22px;font-weight:950}
.fn-admin-section-intro p{margin:6px 0 0;color:#647990;font-size:13px}
.fn-admin-scope-badge{flex:0 0 auto;padding:8px 11px;color:#76470d;border:1px solid #f1d39b;border-radius:999px;background:#fff8e8;font-size:11px;font-weight:950}
.fn-admin-setting-group{padding:17px;display:grid;gap:14px;border:1px solid #dbe7f2;border-radius:17px;background:#f9fcff}
.fn-admin-setting-group>header{display:flex;align-items:flex-start;gap:11px}
.fn-admin-setting-group>header>span{width:32px;height:32px;display:grid;place-items:center;flex:0 0 32px;color:#0868c9;border-radius:10px;background:#e6f2ff;font-size:10px;font-weight:950}
.fn-admin-setting-group>header>div{min-width:0}
.fn-admin-setting-group>header h3{margin:0;color:#16314e;font-size:16px;font-weight:950}
.fn-admin-setting-group>header p{margin:4px 0 0;color:#6b7f95;font-size:12px;line-height:1.45}
.fn-admin-setting-group>header>em{margin-left:auto;padding:5px 8px;color:#835307;border:1px solid #efd69e;border-radius:999px;background:#fff8e8;font-size:9px;font-style:normal;font-weight:950;text-transform:uppercase}
.fn-admin-setting-group--internal{border-color:#efd7a7;background:#fffcf5}
.fn-admin-setting-group--blocking{border-color:#efc5c0;background:#fff9f8}
.fn-admin-setting-group--blocking>header>span{color:#b73c34;background:#ffe9e6}
.fn-admin-setting-group--blocking>header>em{color:#a3312b;border-color:#edbbb6;background:#fff0ee}
.fn-admin-blocking-layout{display:grid;gap:13px}
.fn-admin-switch-card--danger{min-height:68px;border-color:#edcfcc;background:#fff}
.fn-admin-switch-card--danger input[type=checkbox]{accent-color:#c84239}
.fn-admin-switch-card--danger:has(input:checked){color:#9d302a;border-color:#e7a49e;background:#fff0ee;box-shadow:inset 4px 0 0 #c84239}
.fn-admin-textarea{min-width:0;display:grid;gap:7px;color:#61768d;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-admin-textarea>small{color:#6f8297;font-size:11px;font-weight:700;letter-spacing:0;line-height:1.5;text-transform:none}
.fn-admin-textarea textarea{width:100%;min-height:118px;padding:13px 14px;color:#17314f;border:1px solid #c7d9ea;border-radius:12px;background:#fff;box-sizing:border-box;font:inherit;font-size:13px;font-weight:700;letter-spacing:0;line-height:1.5;text-transform:none;resize:vertical}
.fn-admin-textarea textarea:focus{outline:3px solid rgba(11,103,200,.15);border-color:#0b67c8}
.fn-admin-textarea--block textarea{min-height:138px;border-color:#e4c3c0;background:#fffdfd}
.fn-admin-textarea--block textarea:focus{outline-color:rgba(200,66,57,.14);border-color:#c84239}
.fn-admin-check-grid label>span{min-width:0;display:grid;gap:3px}
.fn-admin-check-grid label strong{color:#173553;font-size:13px}
.fn-admin-check-grid label small{color:#70849b;font-size:11px;font-weight:700;line-height:1.4}
.fn-admin-check-grid label:has(input:checked){border-color:#acd8c5;background:#f0fbf6}
.fn-admin-check-grid label.danger:has(input:checked){border-color:#f1b7b1;background:#fff3f1}
.fn-admin-automation-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.fn-admin-automation-feature{padding:15px;display:grid;align-content:start;gap:12px;border:1px solid #dbe7f2;border-radius:15px;background:#fff}
.fn-admin-automation-feature>p{margin:0;padding:10px 12px;color:#62768d;border-radius:11px;background:#f4f8fc;font-size:11px;line-height:1.45}
.fn-admin-switch-card{min-height:58px;padding:12px;display:flex;align-items:flex-start;gap:10px;color:#173553;border:1px solid #dbe7f2;border-radius:13px;background:#f8fbff;cursor:pointer}
.fn-admin-switch-card input[type=checkbox]{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:#0b67c8}
.fn-admin-switch-card>span{display:grid;gap:3px}
.fn-admin-switch-card strong{font-size:13px}
.fn-admin-switch-card small{color:#70849b;font-size:11px;line-height:1.4}
.fn-admin-switch-card:has(input:checked){border-color:#a9d9c5;background:#effbf6}
.fn-admin-field-block{display:grid;gap:6px;color:#657b91;font-size:10px;font-weight:950;letter-spacing:.05em;text-transform:uppercase}
.fn-admin-field-block select{width:100%;min-height:42px;padding:0 11px;color:#17314f;border:1px solid #cbdced;border-radius:10px;background:#fff;font:inherit;font-size:12px;font-weight:850;text-transform:none}
.fn-admin-field-block small{color:#70849b;font-size:11px;font-weight:700;letter-spacing:0;line-height:1.4;text-transform:none}
.fn-admin-automation-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.fn-admin-automation-card{padding:15px;display:grid;align-content:start;gap:13px;border:1px solid #dbe7f2;border-radius:16px;background:#fff}
.fn-admin-automation-card.is-enabled{border-color:#aedcc9;box-shadow:inset 3px 0 0 #1ca678}
.fn-admin-automation-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fn-admin-automation-card>header div{min-width:0}
.fn-admin-automation-card>header span{color:#0b67c8;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.fn-admin-automation-card h3{margin:4px 0 0;color:#17314f;font-size:15px;font-weight:950}
.fn-admin-automation-card p{margin:5px 0 0;color:#657a90;font-size:11px;line-height:1.45}
.fn-admin-automation-card>header em{padding:5px 8px;flex:0 0 auto;color:#687b90;border-radius:999px;background:#eef2f6;font-size:9px;font-style:normal;font-weight:950}
.fn-admin-automation-card.is-enabled>header em{color:#087555;background:#e7f8f0}
.fn-admin-automation-card__controls{display:grid;gap:8px}
.fn-admin-automation-card footer{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.fn-admin-automation-card details{width:100%;color:#526b84;font-size:11px}
.fn-admin-automation-card summary{cursor:pointer;font-weight:900}
.fn-admin-automation-card details label{margin-top:9px;display:grid;gap:5px;color:#657b91;font-size:10px;font-weight:900}
.fn-admin-automation-card textarea{width:100%;padding:9px;color:#18314d;border:1px solid #cbdced;border-radius:9px;background:#fbfdff;box-sizing:border-box;font:12px/1.4 Consolas,monospace;resize:vertical}
.fn-admin-essential-badge{padding:5px 8px;color:#6b42bc;border-radius:999px;background:#f1ebff;font-size:9px;font-weight:950}
.fn-admin-context-list{margin:0;padding:0;display:grid;gap:9px;list-style:none}
.fn-admin-context-list li{padding:11px 12px;display:grid;gap:3px;border:1px solid #dce7f2;border-radius:12px;background:#f8fbff}
.fn-admin-context-list strong{color:#173553;font-size:12px}
.fn-admin-context-list span{color:#647990;font-size:11px;line-height:1.45}
.fn-admin-context-list--numbered{counter-reset:admin-help}
.fn-admin-context-list--numbered li{position:relative;padding-left:46px;counter-increment:admin-help}
.fn-admin-context-list--numbered li::before{content:counter(admin-help);width:25px;height:25px;position:absolute;left:11px;top:11px;display:grid;place-items:center;color:#0b67c8;border-radius:8px;background:#e6f2ff;font-size:9px;font-weight:950}
.fn-admin-info-note{padding:13px 14px;color:#315879;border-left:3px solid #0b67c8;border-radius:0 12px 12px 0;background:#eef7ff}
.fn-admin-info-note strong{display:block;color:#16466f;font-size:12px}
.fn-admin-info-note p{margin:4px 0 0;color:#496b88;font-size:11px;line-height:1.45}
.fn-admin-subtitle{margin:16px 0 8px;color:#173553;font-size:14px;font-weight:950}
.fn-admin-check-grid--one{grid-template-columns:1fr}
.fn-admin-user-audit-summary{grid-column:1/-1}
.fn-admin-automation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.fn-admin-automation-grid>label{min-height:112px;padding:17px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:13px;border:1px solid #d8e5f2;border-radius:15px;background:#f8fbff;cursor:pointer}
.fn-admin-automation-grid input{margin-top:3px;accent-color:#0b67c8}
.fn-admin-automation-grid strong,.fn-admin-automation-grid small{display:block}
.fn-admin-automation-grid strong{color:#17324f;font-size:14px}
.fn-admin-automation-grid small{margin-top:6px;color:#647b91;font-size:11px;line-height:1.5}
.fn-admin-company-metrics{margin:14px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fn-admin-company-metrics span{padding:9px;border-radius:12px;background:#f4f8fc;text-align:center;color:#2d4864;font-size:11px}
.fn-admin-company-metrics b{display:block;min-height:20px;overflow:hidden;color:#0b67c8;text-overflow:ellipsis;white-space:nowrap;font-size:18px}
.fn-admin-company-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.fn-admin-kpi--link{color:inherit;text-decoration:none}
.fn-admin-kpi--link:hover{border-color:#0b67c8;background:#f8fbff}
.fn-admin-kpi-date{font-size:22px!important;line-height:1.12!important}
.fn-admin-logo-editor{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px}
.fn-admin-logo-drop{min-height:92px;padding:14px;display:grid;align-content:center;gap:8px;color:#173553;border:1px dashed #bdd3e8;border-radius:18px;background:#f8fbff;font-size:13px;font-weight:900;letter-spacing:0;text-transform:none}
.fn-admin-logo-drop input{padding:10px;background:#fff}
.fn-admin-logo-drop small{color:#72859c;font-size:11px;font-weight:750}
.fn-admin-logo-actions{justify-content:flex-start}
.fn-admin-table--company-users{min-width:980px}
.fn-admin-help-text{margin:14px 0 0;color:#64788f;font-size:13px}
.fn-admin-help-text a{color:#0b67c8;font-weight:850}
.fn-admin-form{display:grid;gap:14px}
.fn-admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fn-admin-form-grid.one{grid-template-columns:1fr}
.fn-admin-form-grid .wide{grid-column:1/-1}
.fn-admin-form-grid label,.fn-admin-form>label{display:grid;gap:6px;color:#6d8097;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-admin-form input,.fn-admin-form select,.fn-admin-form textarea,.fn-admin-toolbar input,.fn-admin-toolbar select{min-height:44px;padding:0 13px;color:#122844;border:1px solid #cbdced;border-radius:10px;background:#fbfdff;font:inherit;font-size:14px;font-weight:750;box-sizing:border-box}
.fn-admin-form textarea{min-height:96px;padding:12px 13px;resize:vertical}
.fn-admin-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fn-admin-check-grid label{min-height:56px;padding:12px;display:flex;align-items:center;gap:10px;border:1px solid #dbe7f2;border-radius:14px;background:#f8fbff;color:#173553;font-size:13px;font-weight:850;letter-spacing:0;text-transform:none}
.fn-admin-check-grid input{width:18px;height:18px;min-height:0}
@media(max-width:720px){
    .fn-admin-company-tabs{padding:0;gap:2px}
    .fn-admin-company-tabs a{min-width:0;flex:1;padding:11px 8px 10px;grid-template-columns:26px minmax(0,1fr);gap:6px}
    .fn-admin-company-tabs i{width:26px;height:26px;border-radius:8px;font-size:9px}
    .fn-admin-company-tabs strong{white-space:normal;line-height:1.15}
    .fn-admin-company-tabs small{display:none}
}
@media(max-width:460px){
    .fn-admin-company-tabs a{display:flex;align-items:center;justify-content:center;text-align:center}
    .fn-admin-company-tabs i{display:none}
    .fn-admin-automation-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
    .fn-admin-automation-feature-grid,.fn-admin-automation-catalog{grid-template-columns:1fr}
    .fn-admin-section-intro{align-items:flex-start;flex-direction:column}
}
.fn-admin-ai-hero{background:radial-gradient(circle at 88% 18%,rgba(19,181,134,.16),transparent 28%),linear-gradient(135deg,#fff 0%,#eef7ff 100%)}
.fn-admin-kpis--ai .fn-admin-ai-kpi{position:relative;overflow:hidden;padding-left:72px}
.fn-admin-kpis--ai{grid-template-columns:repeat(6,minmax(0,1fr))}
.fn-admin-ai-kpi i{position:absolute;left:18px;top:18px;width:40px;height:40px;display:grid;place-items:center;color:#0b67c8;border:1px solid #cfe1f3;border-radius:14px;background:#eaf4ff;font-size:11px;font-style:normal;font-weight:950;letter-spacing:.04em}
.fn-admin-ai-kpi::after{content:"";position:absolute;right:-22px;top:-26px;width:92px;height:92px;border-radius:50%;background:rgba(11,103,200,.055)}
.fn-admin-ai-kpi--cost i{color:#08765a;background:#e9f8f1;border-color:#bee9d7}
.fn-admin-ai-kpi--cost strong{color:#08765a}
.fn-admin-ai-kpi--average i{color:#6f46d9;background:#f1ecff;border-color:#d8ccff}
.fn-admin-ai-kpi--average strong{color:#5b3ab8}
.fn-admin-ai-filter-card{padding:16px}
.fn-admin-ai-filter-form{display:grid;grid-template-columns:minmax(128px,.55fr) minmax(128px,.55fr) minmax(250px,1.35fr) minmax(145px,.7fr) minmax(170px,.82fr) minmax(135px,.65fr) auto;align-items:end;gap:12px}
.fn-admin-ai-filter-form label{min-width:0;display:grid;gap:6px;color:#6d8097;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-admin-ai-filter-form input,.fn-admin-ai-filter-form select{width:100%;min-height:44px;padding:0 13px;color:#122844;border:1px solid #cbdced;border-radius:11px;background:#fbfdff;font:inherit;font-size:14px;font-weight:800;box-sizing:border-box}
.fn-admin-ai-filter-form input:focus,.fn-admin-ai-filter-form select:focus{outline:3px solid rgba(11,103,200,.16);border-color:#0b67c8;background:#fff}
.fn-admin-ai-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
.fn-admin-ai-count{padding:9px 13px;color:#0b67c8;border:1px solid #d3e6f8;border-radius:999px;background:#eff7ff;font-size:13px;font-weight:950;white-space:nowrap}
.fn-admin-table--ai-log{min-width:1500px;table-layout:fixed}
.fn-admin-table--ai-log th:nth-child(1){width:140px}
.fn-admin-table--ai-log th:nth-child(2){width:190px}
.fn-admin-table--ai-log th:nth-child(3){width:210px}
.fn-admin-table--ai-log th:nth-child(4){width:110px}
.fn-admin-table--ai-log th:nth-child(5){width:110px}
.fn-admin-table--ai-log th:nth-child(6){width:130px}
.fn-admin-table--ai-log th:nth-child(7){width:100px}
.fn-admin-table--ai-log th:nth-child(8){width:135px}
.fn-admin-table--ai-log th:nth-child(9){width:135px}
.fn-admin-table--ai-log th:nth-child(10){width:90px}
.fn-admin-table--ai-log th:nth-child(11){width:auto}
.fn-admin-table--ai-log td:nth-child(3) small{white-space:normal;overflow-wrap:anywhere}
.fn-admin-table--ai-log td:nth-child(11){white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}
.fn-admin-table--ai-log td:nth-child(8),.fn-admin-table--ai-log td:nth-child(9),.fn-admin-table--ai-log td:nth-child(10){text-align:right}
.fn-admin-ai-source,.fn-admin-ai-model,.fn-admin-ai-duration{display:inline-flex;align-items:center;max-width:100%;padding:6px 9px;color:#183451;border:1px solid #dbe7f2;border-radius:999px;background:#f7fbff;font-size:12px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fn-admin-ai-model{color:#075fc2;background:#eef7ff;border-color:#d3e7fb}
.fn-admin-ai-duration{justify-content:flex-end;color:#536a82;background:#f4f7fa}
.fn-admin-ai-config{display:grid;gap:16px}
.fn-admin-ai-rate-card{padding:18px 20px}
.fn-admin-rate-state{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:950}
.fn-admin-rate-state.is-current{color:#087a52;background:#e7f8f0}
.fn-admin-rate-state.is-stale{color:#a85808;background:#fff1dc}
.fn-admin-rate-summary{margin:14px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.fn-admin-rate-summary>div{min-width:0;padding:12px 14px;border:1px solid #dbe7f2;border-radius:14px;background:#f8fbff}
.fn-admin-rate-summary span{display:block;margin-bottom:5px;color:#71849a;font-size:9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-admin-rate-summary strong{display:block;color:#152d4a;font-size:13px;overflow-wrap:anywhere}
.fn-admin-rate-help{margin:0 0 14px;padding:11px 13px;color:#536d87;border-left:3px solid #1875d1;border-radius:0 12px 12px 0;background:#eef7ff;font-size:12px;line-height:1.5}
.fn-admin-rate-help a{margin-left:8px;color:#075fc2;font-weight:900}
.fn-admin-rate-form{display:grid;grid-template-columns:minmax(220px,340px) auto;align-items:end;gap:12px}
.fn-admin-rate-form label{display:grid;gap:5px;color:#516980;font-size:11px;font-weight:900}
.fn-admin-rate-form label small{font-weight:500}
.fn-admin-section-heading{align-items:center!important}
.fn-admin-ai-models-card{padding:22px}
.fn-admin-ai-model-list{display:grid;gap:12px}
.fn-admin-ai-tariff{padding:14px;display:grid;grid-template-columns:minmax(230px,.9fr) minmax(360px,1.15fr) minmax(300px,1fr) 138px;align-items:stretch;gap:12px;border:1px solid #dbe7f2;border-radius:18px;background:linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 12px 28px rgba(19,48,80,.045)}
.fn-admin-ai-tariff:hover{border-color:#bcd5ef;box-shadow:0 16px 34px rgba(19,48,80,.07)}
.fn-admin-ai-tariff__identity,.fn-admin-ai-tariff__prices,.fn-admin-ai-tariff__notes,.fn-admin-ai-tariff__state{min-width:0;display:grid;gap:9px}
.fn-admin-ai-tariff__identity{align-content:start}
.fn-admin-ai-tariff__prices{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start}
.fn-admin-ai-tariff__notes{grid-template-columns:1fr;align-content:start}
.fn-admin-ai-tariff__state{align-content:center;justify-items:stretch}
.fn-admin-ai-provider{width:max-content;padding:5px 9px;color:#0b67c8;border:1px solid #cfe2f5;border-radius:999px;background:#edf7ff;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.fn-admin-ai-tariff label{min-width:0;display:grid;gap:5px;color:#6d8097;font-size:9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-admin-ai-tariff input,.fn-admin-ai-tariff textarea{width:100%;min-height:38px;padding:0 11px;color:#122844;border:1px solid #cbdced;border-radius:10px;background:#fff;font:inherit;font-size:13px;font-weight:800;box-sizing:border-box}
.fn-admin-ai-tariff textarea{min-height:76px;padding:10px 11px;resize:vertical}
.fn-admin-ai-tariff input:focus,.fn-admin-ai-tariff textarea:focus,.fn-admin-modal input:focus,.fn-admin-modal textarea:focus{outline:3px solid rgba(11,103,200,.16);border-color:#0b67c8}
.fn-admin-switch{min-height:38px!important;padding:8px 10px;display:flex!important;align-items:center;justify-content:flex-start;gap:8px;color:#173553!important;border:1px solid #dce8f3;border-radius:12px;background:#fff;font-size:12px!important;font-weight:900!important;letter-spacing:0!important;text-transform:none!important}
.fn-admin-switch input[type=checkbox]{width:16px;min-height:0;height:16px;accent-color:#0b67c8}
.fn-admin-switch:has(input:checked){border-color:#a8d8c5;background:#effbf6;color:#097b56!important}
@media(max-width:900px){.fn-admin-rate-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fn-admin-rate-form{grid-template-columns:1fr}}
.fn-admin-modal{width:min(860px,calc(100vw - 32px));max-height:min(88vh,820px);padding:0;overflow:hidden;color:#142238;border:0;border-radius:22px;background:#fff;box-shadow:0 32px 90px rgba(9,29,54,.34)}
.fn-admin-modal::backdrop{background:rgba(8,25,47,.52);backdrop-filter:blur(3px)}
.fn-admin-modal__form{display:grid;gap:0}
.fn-admin-modal__header,.fn-admin-modal__footer{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f7fbff}
.fn-admin-modal__header{border-bottom:1px solid #dce7f2}
.fn-admin-modal__header h2{margin:4px 0 0;color:#142238;font-size:24px;font-weight:950;line-height:1.1}
.fn-admin-modal__header p{margin:6px 0 0;color:#62768d;font-size:13px}
.fn-admin-modal__close{width:40px;height:40px;display:grid;place-items:center;color:#60758d;border:1px solid #d5e2ef;border-radius:12px;background:#fff;font-size:24px;font-weight:900;line-height:1;cursor:pointer}
.fn-admin-modal__close:hover{color:#0b67c8;background:#eef7ff}
.fn-admin-modal__body{padding:22px;display:grid;gap:14px;overflow:auto}
.fn-admin-modal__footer{border-top:1px solid #dce7f2;justify-content:flex-end;background:#fff}
.fn-admin-danger-zone{margin-top:22px;padding:22px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;border:1px solid #f1b9b5;border-radius:20px;background:linear-gradient(135deg,#fff 0%,#fff6f5 100%);box-shadow:0 14px 34px rgba(154,39,30,.06)}
.fn-admin-danger-zone__icon{width:48px;height:48px;display:grid;place-items:center;color:#fff;border-radius:15px;background:#c9362b;font-size:24px;font-weight:950;box-shadow:0 10px 24px rgba(201,54,43,.22)}
.fn-admin-danger-zone h2{margin:4px 0 0;color:#6f1f1a;font-size:21px;font-weight:950}
.fn-admin-danger-zone p{max-width:920px;margin:7px 0 0;color:#6d514f;font-size:13px;line-height:1.5}
.fn-admin-danger-zone ul{margin:10px 0 0;padding-left:18px;color:#725654;font-size:12px;line-height:1.55}
.fn-admin-danger-zone code{padding:2px 5px;border-radius:5px;background:#fff;color:#8d2820}
.fn-admin-backup-sequence{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.fn-admin-backup-sequence>span{min-width:0;padding:13px;display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;border:1px solid #d9e6f2;border-radius:14px;background:#f7fbff}
.fn-admin-backup-sequence b{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;color:#fff;border-radius:9px;background:#0b67c8;font-size:12px}
.fn-admin-backup-sequence strong{font-size:12px}
.fn-admin-backup-sequence small{margin-top:2px;color:#6a7f96;font-size:10px}
.fn-admin-warning-note{padding:14px 16px;border:1px solid #f1cc87;border-left:4px solid #e69717;border-radius:12px;background:#fff9ed}
.fn-admin-warning-note strong{display:block;color:#84500a;font-size:13px}
.fn-admin-warning-note p{margin:5px 0 0;color:#755d38;font-size:12px;line-height:1.5}
.fn-admin-confirm-phrase,.fn-admin-archive-upload{display:grid;gap:7px;color:#354e69;font-size:12px;font-weight:850}
.fn-admin-confirm-phrase input,.fn-admin-archive-upload input{min-height:44px;padding:10px 12px;border:1px solid #cbdcec;border-radius:11px;background:#fff;color:#142238;font:inherit}
.fn-admin-company-archives{margin-top:22px;padding:0;overflow:hidden}
.fn-admin-company-archives>.fn-admin-section-heading{margin:0;padding:20px 22px;border-bottom:1px solid #dce7f2;background:#f8fbff}
.fn-admin-company-archives .management-table-wrap{border:0;border-radius:0}
.fn-admin-table--archives td{vertical-align:middle}
.fn-admin-table--archives td>small{display:block;margin-top:4px;color:#73869c;font-size:10px}
.fn-admin-table--archives code{display:inline-block;max-width:150px;overflow:hidden;color:#174d83;text-overflow:ellipsis;vertical-align:middle}
.fn-admin-archive-empty{padding:28px;display:grid;place-items:center;gap:6px;color:#71859b;text-align:center}
.fn-admin-archive-empty strong{color:#29445f;font-size:15px}
.fn-admin-scope-badge{padding:7px 10px;color:#275170;border:1px solid #d1e1ef;border-radius:999px;background:#fff;font-size:11px;font-weight:900;white-space:nowrap}
.fn-admin-archive-upload input[type=file]{padding:9px;background:#f8fbff}
@media(max-width:900px){
  .fn-admin-danger-zone{grid-template-columns:auto minmax(0,1fr)}
  .fn-admin-danger-zone>.btn{grid-column:1/-1;width:100%}
  .fn-admin-backup-sequence{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .fn-admin-danger-zone{grid-template-columns:1fr}
  .fn-admin-danger-zone__icon{width:42px;height:42px}
  .fn-admin-backup-sequence{grid-template-columns:1fr}
}
.fn-admin-company-user-modal{width:min(760px,calc(100vw - 32px))}
.fn-admin-company-user-modal .fn-admin-modal__header{margin:0}
.fn-admin-company-user-search{display:grid;gap:7px}
.fn-admin-company-user-search>label{color:#637990;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.fn-admin-company-user-search>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}
.fn-admin-company-user-search input{width:100%;min-height:46px;padding:0 14px;color:#122844;border:1px solid #bfd4e8;border-radius:12px;background:#fbfdff;font:inherit;font-size:14px;font-weight:800;box-sizing:border-box}
.fn-admin-company-user-search small{color:#6e8196;font-size:11px;line-height:1.45}
.fn-admin-company-user-status{min-height:38px;padding:10px 12px;color:#58718a;border:1px solid #dde8f2;border-radius:11px;background:#f7faff;font-size:12px;font-weight:800;box-sizing:border-box}
.fn-admin-company-user-status.is-loading{color:#0b67c8;border-color:#c5def6;background:#eff7ff}
.fn-admin-company-user-status.is-ready{color:#087555;border-color:#bce6d5;background:#effbf6}
.fn-admin-company-user-status.is-empty{color:#8a641c;border-color:#f0dfb8;background:#fffaf0}
.fn-admin-company-user-status.is-error{color:#b3332d;border-color:#f0c7c4;background:#fff4f3}
.fn-admin-company-user-results{max-height:min(390px,48vh);display:grid;gap:8px;overflow:auto}
.fn-admin-company-user-results[hidden]{display:none}
.fn-admin-company-user-result{min-width:0;padding:11px 12px;display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:11px;border:1px solid #d9e6f2;border-radius:13px;background:#fff}
.fn-admin-company-user-result:hover{border-color:#a8cbea;background:#fbfdff}
.fn-admin-company-user-result__avatar{width:44px;height:44px;display:grid;place-items:center;color:#0b67c8;border-radius:13px;background:#eaf4ff;font-size:16px;font-weight:950}
.fn-admin-company-user-result__identity{min-width:0}
.fn-admin-company-user-result__identity strong,.fn-admin-company-user-result__identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-admin-company-user-result__identity strong{color:#17324f;font-size:14px}
.fn-admin-company-user-result__identity small{margin-top:4px;color:#6d8197;font-size:11px}
.fn-admin-company-user-result__meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px}
.fn-admin-company-user-result__badge{padding:5px 8px;color:#45617d;border-radius:999px;background:#eef3f8;font-size:9px;font-weight:950;white-space:nowrap}
.fn-admin-company-user-result__badge.is-role{color:#0b67c8;background:#eaf4ff}
.fn-admin-company-user-result__badge.is-success{color:#087555;background:#e7f8f0}
.fn-admin-company-user-result__badge.is-warning{color:#9a5d0b;background:#fff0d6}
.fn-admin-company-user-assign-form{display:none}
@media(max-width:680px){
    .fn-admin-section-heading{align-items:flex-start!important;flex-direction:column}
    .fn-admin-section-heading>.btn{width:100%}
    .fn-admin-company-user-search>div{grid-template-columns:1fr}
    .fn-admin-company-user-result{grid-template-columns:40px minmax(0,1fr) auto}
    .fn-admin-company-user-result__avatar{width:40px;height:40px}
    .fn-admin-company-user-result__meta{grid-column:2/-1;justify-content:flex-start}
    .fn-admin-company-user-result>.btn{grid-column:1/-1;width:100%}
}
.inline-form{display:inline-flex;margin:0}
.row-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}
.fn-admin-table--companies{min-width:1180px}
.fn-admin-table--companies th:nth-child(1){width:54px}
.fn-admin-table--companies th:nth-child(2){width:250px}
.fn-admin-table--companies th:nth-child(3){width:105px}
.fn-admin-table--companies th:nth-child(4){width:205px}
.fn-admin-table--companies th:nth-child(5){width:105px}
.fn-admin-table--companies th:nth-child(6){width:72px}
.fn-admin-table--companies th:nth-child(7){width:130px}
.fn-admin-table--companies th:nth-child(8),.fn-admin-table--companies th:nth-child(9){width:68px}
.fn-admin-table--companies th:nth-child(10){width:88px}
.fn-admin-table--companies th:nth-child(11){width:255px}
.fn-admin-table--companies th:last-child,.fn-admin-table--companies td:last-child{position:sticky;right:0;z-index:3;background:#fff;box-shadow:-10px 0 18px rgba(17,47,78,.06)}
.fn-admin-table--companies th:last-child{z-index:4;background:#f4f8fc}
.fn-admin-table--companies td.row-actions{display:table-cell;white-space:nowrap}
.fn-admin-table--companies td.row-actions .fn-admin-icon-btn{margin-left:6px}
.fn-admin-table--companies .fn-admin-icon-btn{width:34px;height:34px;border-radius:9px}
.fn-admin-table--companies .fn-admin-icon-btn svg{width:16px;height:16px}
.fn-admin-table--companies .fn-admin-enter-user-btn{min-height:34px;padding:0 11px;white-space:nowrap;font-size:11px}
.fn-admin-table--users{min-width:1180px;table-layout:fixed}
.fn-admin-table--users th:nth-child(1){width:230px}
.fn-admin-table--users th:nth-child(2){width:225px}
.fn-admin-table--users th:nth-child(3){width:220px}
.fn-admin-table--users th:nth-child(4){width:82px}
.fn-admin-table--users th:nth-child(5){width:108px}
.fn-admin-table--users th:nth-child(6){width:104px}
.fn-admin-table--users th:nth-child(7){width:150px}
.fn-admin-table--users th:nth-child(8){width:190px}
.fn-admin-table--users th:last-child,.fn-admin-table--users td:last-child{position:sticky;right:0;z-index:3;background:#fff;box-shadow:-10px 0 18px rgba(17,47,78,.06)}
.fn-admin-table--users th:last-child{z-index:4;background:#f4f8fc}
.fn-admin-table--users tr:hover td:last-child{background:#f8fbff}
.fn-admin-table--users td.row-actions{display:table-cell;overflow:visible;white-space:nowrap}
.fn-admin-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.fn-admin-table--users .btn{min-height:36px;padding:8px 11px;font-size:12px}
.fn-admin-role-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;color:#496078;border:1px solid #d9e4ef;border-radius:999px;background:#f3f7fb;font-size:11px;font-weight:950}
.fn-admin-role-pill.is-admin{color:#6a38be;border-color:#dfd0fb;background:#f4edff}
.fn-admin-role-pill.is-manager{color:#0759a5;border-color:#b9d9f8;background:#eaf4ff}
.fn-admin-readonly-user{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fn-admin-readonly-user>div,.fn-admin-role-readonly{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid #d7e3ef;border-radius:14px;background:#f8fbfe}
.fn-admin-readonly-user span{color:#687c94;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.fn-admin-readonly-user>p{grid-column:1/-1;margin:0;padding:13px 16px;border-radius:12px;background:#eef6ff;color:#365875}
.fn-admin-role-readonly strong{font-size:20px;color:#12345a}
.fn-admin-role-readonly p{margin:0;color:#60758d}
.fn-admin-row-protected{background:#fafbfd}
.fn-admin-protected-label{display:inline-flex;padding:7px 10px;border-radius:999px;background:#eef2f6;color:#607086;font-weight:850}
.fn-admin-impersonation-users{display:grid;gap:10px}
.fn-admin-impersonation-user{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:12px;border:1px solid #d5e3f2;border-radius:14px;background:#fff;color:#17324f;text-align:left;cursor:pointer}
.fn-admin-impersonation-user:hover,.fn-admin-impersonation-user:focus-visible{border-color:#0d70d5;background:#f2f8ff;outline:none}
.fn-admin-impersonation-user>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:3px}
.fn-admin-impersonation-user strong,.fn-admin-impersonation-user small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-admin-impersonation-user b{color:#086acb}
.impersonation-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 22px 0;padding:13px 16px;border:1px solid #f0c06f;border-radius:14px;background:#fff8e8;box-shadow:0 8px 24px rgba(38,67,98,.08);color:#6c4812}
.impersonation-banner>div{display:flex;min-width:0;flex-direction:column;gap:3px}
.impersonation-banner strong{font-size:15px;color:#523407}
.impersonation-banner span{font-size:13px}
@media(max-width:760px){
  .fn-admin-readonly-user{grid-template-columns:1fr}
  .fn-admin-readonly-user>p{grid-column:auto}
  .impersonation-banner{align-items:stretch;flex-direction:column;margin:10px 12px 0}
  .impersonation-banner .btn{width:100%}
}
.fn-admin-user-identity{display:flex;align-items:center;gap:14px}
.fn-admin-user-identity>span:last-child{min-width:0}
.fn-admin-user-avatar{width:62px;height:62px;flex:0 0 62px;display:grid;place-items:center;color:#075fc2;border:1px solid #c7ddf2;border-radius:18px;background:linear-gradient(145deg,#edf7ff,#fff);font-size:24px;font-weight:950;box-shadow:0 10px 24px rgba(18,104,195,.08)}
.fn-admin-user-tabs{padding:7px;display:flex;align-items:center;gap:7px;overflow-x:auto;border:1px solid #dce7f2;border-radius:17px;background:#fff;box-shadow:0 12px 28px rgba(19,48,80,.045)}
.fn-admin-user-tabs a{min-height:46px;padding:9px 14px;display:inline-flex;align-items:center;gap:9px;color:#496078;border:1px solid transparent;border-radius:12px;text-decoration:none;font-size:13px;font-weight:900;white-space:nowrap}
.fn-admin-user-tabs a:hover{color:#075fc2;background:#f1f7fd}
.fn-admin-user-tabs a.is-active{color:#fff;border-color:#0b67c8;background:#0b67c8;box-shadow:0 8px 20px rgba(11,103,200,.18)}
.fn-admin-user-tabs a span{width:25px;height:25px;display:grid;place-items:center;color:#0b67c8;border-radius:8px;background:#eaf4ff;font-size:9px;font-weight:950}
.fn-admin-user-tabs a.is-active span{color:#0b67c8;background:#fff}
.fn-admin-user-tabs a b{min-width:24px;padding:3px 7px;color:#0b67c8;border-radius:999px;background:#eaf4ff;font-size:10px;text-align:center}
.fn-admin-user-panel{padding:24px}
.fn-admin-check-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.fn-admin-check-grid--two label>span{display:grid;gap:2px}
.fn-admin-check-grid--two label strong{color:#173553;font-size:13px}
.fn-admin-check-grid--two label small{color:#70849b;font-size:11px;font-weight:700}
.fn-admin-user-companies-table{border:1px solid #dce7f2;border-radius:15px;overflow:auto}
.fn-admin-user-companies-table .fn-admin-table{min-width:860px}
.fn-admin-user-companies-table th:last-child,.fn-admin-user-companies-table td:last-child{width:230px;text-align:right}
.fn-admin-user-company-modal{width:min(760px,calc(100vw - 32px))}
.fn-admin-company-search{display:grid;gap:6px;color:#6d8097;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-admin-company-search input{width:100%;min-height:46px;padding:0 14px;color:#122844;border:1px solid #bfd4e8;border-radius:12px;background:#fbfdff;font:inherit;font-size:14px;font-weight:800;box-sizing:border-box}
.fn-admin-company-results{max-height:430px;display:grid;gap:8px;overflow:auto}
.fn-admin-company-result{padding:11px 12px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;border:1px solid #dce7f2;border-radius:14px;background:#f9fcff}
.fn-admin-company-result[hidden]{display:none}
.fn-admin-company-result__avatar{width:42px;height:42px;display:grid;place-items:center;color:#075fc2;border-radius:12px;background:#e9f4ff;font-size:16px;font-weight:950}
.fn-admin-company-result__body{min-width:0}
.fn-admin-company-result__body strong,.fn-admin-company-result__body small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-admin-company-result__body strong{color:#173553;font-size:13px}
.fn-admin-company-result__body small{margin-top:3px;color:#71849a;font-size:11px}
.fn-admin-company-no-results[hidden]{display:none}
.fn-admin-user-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fn-admin-role-warning{padding:14px;color:#79551b;border:1px solid #f1d596;border-radius:14px;background:#fff9e9}
.fn-admin-role-warning strong{display:block;font-size:13px}
.fn-admin-role-warning p{margin:4px 0 0;color:#7f6741;font-size:12px;line-height:1.45}
.fn-admin-role-card header{align-items:center}
@media (max-width:760px){
    .fn-admin-user-tabs{display:grid;grid-template-columns:1fr}
    .fn-admin-user-tabs a{justify-content:flex-start;width:100%;box-sizing:border-box}
    .fn-admin-user-security-grid,.fn-admin-check-grid--two{grid-template-columns:1fr}
    .fn-admin-user-panel header{align-items:flex-start;flex-direction:column}
    .fn-admin-company-result{align-items:flex-start;grid-template-columns:auto minmax(0,1fr)}
    .fn-admin-company-result form{grid-column:1 / -1;width:100%}
    .fn-admin-company-result form .btn{width:100%}
    .fn-admin-user-company-modal{width:min(100%,calc(100vw - 24px))}
}
.btn-danger-soft{color:#b42318!important;border-color:#ffd0c9!important;background:#fff3f1!important}
.empty-state{min-height:90px;display:grid;place-items:center;color:#718398;border:1px dashed #cbdced;border-radius:16px;background:#f8fbff;font-size:14px;text-align:center}
.empty-state-inline{padding:16px;color:#31765d;border:1px solid #caecd9;border-radius:14px;background:#f0fbf5;font-size:13px;font-weight:850}
.export-menu{position:relative;display:inline-flex}
.export-menu summary{list-style:none;cursor:pointer;user-select:none}
.export-menu summary::-webkit-details-marker{display:none}
.export-menu[open] summary{color:#0758b8;border-color:#9fc5ef;background:#f4f9ff}
.export-menu nav{min-width:150px;padding:7px;position:absolute;right:0;top:calc(100% + 8px);z-index:40;display:grid;gap:4px;border:1px solid #cbd9e8;border-radius:13px;background:#fff;box-shadow:0 18px 38px rgba(15,47,80,.18)}
.export-menu nav::before{content:"";width:12px;height:12px;position:absolute;right:18px;top:-7px;border-left:1px solid #cbd9e8;border-top:1px solid #cbd9e8;background:#fff;transform:rotate(45deg)}
.export-menu nav a{padding:10px 12px;position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#17314f;border-radius:9px;text-decoration:none;font-size:13px;font-weight:900}
.export-menu nav a:hover,.export-menu nav a:focus-visible{outline:none;color:#0758b8;background:#eef6ff}
.expense-worker-groups{display:grid;gap:16px;margin-top:16px}
.expense-worker-groups__header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid #dce7f2;border-radius:20px;background:linear-gradient(135deg,#fff,#f4f9ff);box-shadow:0 12px 30px rgba(19,48,80,.045)}
.expense-worker-groups__header h2{margin:4px 0 0;color:#142238;font-size:22px;font-weight:950;line-height:1.1}
.expense-worker-groups__header p{margin:5px 0 0;color:#63778e;font-size:13px}
.expense-worker-group{padding:18px;border:1px solid #dce7f2;border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(19,48,80,.055)}
.expense-worker-group>summary{display:grid;grid-template-columns:minmax(220px,1fr) auto 24px;align-items:center;gap:10px 14px;cursor:pointer;list-style:none}
.expense-worker-group>summary>div:first-child{min-width:0}
.expense-worker-group>summary::-webkit-details-marker{display:none}
.expense-worker-group>summary::after{content:"";grid-column:3;grid-row:1;width:10px;height:10px;justify-self:center;border-right:2px solid #1268c3;border-bottom:2px solid #1268c3;transform:rotate(45deg);transition:transform .18s ease}
.expense-worker-group[open]>summary{margin-bottom:14px}
.expense-worker-group[open]>summary::after{transform:rotate(-135deg)}
.expense-worker-group .eyebrow{display:block;color:#0b67c8;font-size:10px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.expense-worker-group h2{margin:4px 0 0;color:#142238;font-size:21px;font-weight:950;line-height:1.12}
.expense-worker-group p{margin:5px 0 0;color:#63778e;font-size:13px}
.expense-worker-group__amount{grid-column:2;grid-row:1;justify-self:end;width:160px;padding:10px 15px;border:1px solid #b9ddff;border-radius:16px;background:linear-gradient(135deg,#f2f8ff,#fff);text-align:right;box-shadow:0 10px 22px rgba(18,104,195,.08)}
.expense-worker-group__amount span{display:block;color:#6f8197;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.expense-worker-group__amount strong{display:block;margin-top:3px;color:#075fc2;font-size:24px;font-weight:950;line-height:1}
.expense-worker-group__totals{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:7px;padding-top:8px;border-top:1px dashed #dbe6f1}
.expense-worker-group__table{overflow:hidden;border:1px solid #e0e8f1;border-radius:15px}
.expense-worker-group__table .management-table{width:100%;margin:0;border:0;border-radius:0;table-layout:fixed}
.expense-worker-group__table .management-table th,.expense-worker-group__table .management-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.expense-worker-group__table .management-table th:nth-child(1),.expense-worker-group__table .management-table td:nth-child(1){width:92px}
.expense-worker-group__table .management-table th:nth-child(2),.expense-worker-group__table .management-table td:nth-child(2){width:auto}
.expense-worker-group__table .management-table th:nth-child(3),.expense-worker-group__table .management-table td:nth-child(3){width:112px}
.expense-worker-group__table .management-table th:nth-child(4),.expense-worker-group__table .management-table td:nth-child(4){width:150px}
.expense-worker-group__table .management-table th:nth-child(5),.expense-worker-group__table .management-table td:nth-child(5){width:92px;text-align:right}
.expense-worker-group__table .management-table th:nth-child(6),.expense-worker-group__table .management-table td:nth-child(6){width:96px}
.expense-worker-group__table .management-table th:nth-child(7),.expense-worker-group__table .management-table td:nth-child(7){width:112px}
.expense-worker-group__table .management-table th:nth-child(8),.expense-worker-group__table .management-table td:nth-child(8){width:168px}
.expense-worker-group__table .employee-list-actions{max-width:none;display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap}
.expense-worker-group__table .inline-action-form{width:28px;flex:0 0 28px}
.expense-worker-group__table .inline-action-form .employee-list-shortcut,
.expense-worker-group__table .employee-list-shortcut{width:28px;min-width:0;height:28px;flex:0 0 28px;padding:0;border-radius:8px}
.expense-worker-group__table .employee-list-shortcut svg{width:14px;height:14px}

@media (max-width:1280px){
  .fn-admin-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fn-admin-ai-filter-form{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fn-admin-ai-filter-form__company{grid-column:span 2}
  .fn-admin-ai-filter-actions{justify-content:flex-start}
  .document-explorer-filters{grid-template-columns:1fr}
  .document-explorer-search{grid-template-columns:repeat(3,minmax(0,1fr))}
  .document-explorer-view-tools{justify-content:flex-end}
  .admin-module-summary--documents{grid-template-columns:repeat(3,minmax(0,1fr))}
  .document-explorer__body{grid-template-columns:190px minmax(0,1fr)}
  .document-explorer__columns,.document-file-row{grid-template-columns:minmax(260px,1.4fr) minmax(150px,.75fr) 125px minmax(180px,.85fr) 112px}
}
@media (max-width:980px){
  .fn-admin-page{padding:18px}
  .fn-admin-hero{align-items:flex-start;flex-direction:column}
  .fn-admin-company-hero{grid-template-columns:auto minmax(0,1fr);align-items:center}
  .fn-admin-company-hero .fn-admin-hero-actions{grid-column:1/-1;width:100%;justify-content:flex-start}
  .fn-admin-list-toolbar{align-items:stretch;flex-direction:column}
  .fn-admin-ai-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fn-admin-ai-filter-form__company{grid-column:1/-1}
  .fn-admin-ai-filter-actions{grid-column:1/-1;justify-content:flex-start}
  .fn-admin-filter-group{width:100%;margin-left:0;flex-wrap:wrap}
  .fn-admin-filter-group select{flex:1 1 160px}
  .fn-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fn-admin-grid,.fn-admin-dashboard-grid,.fn-admin-company-grid{grid-template-columns:1fr}
  .fn-admin-form-grid,.fn-admin-check-grid,.fn-admin-action-grid{grid-template-columns:1fr}
  .management-toolbar.traceability-toolbar{grid-template-columns:1fr}
  .traceability-view-tools{width:100%;justify-content:flex-end}
  .traceability-card summary{grid-template-columns:5px 36px minmax(0,1fr) auto;gap:10px}
  .traceability-card summary .status-pill{grid-column:3/5;justify-self:start}
  .traceability-card__body{padding-left:15px}
  .traceability-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .document-explorer-search{grid-template-columns:repeat(2,minmax(0,1fr))}
  .document-explorer-search .btn{width:100%}
  .document-explorer__body{grid-template-columns:1fr}
  .document-explorer__sidebar{padding:10px;border-right:0;border-bottom:1px solid #e0e8f1}
  .document-explorer__sidebar nav{display:flex;overflow:auto}
  .document-explorer__sidebar nav+nav{margin-top:8px;padding-top:8px}
  .document-explorer__nav-title{display:none}
  .document-explorer__sidebar a{min-width:max-content;grid-template-columns:20px auto auto}
  .document-explorer__columns{display:none}
  .document-file-row{grid-template-columns:minmax(250px,1.35fr) minmax(150px,.8fr) minmax(190px,1fr) auto}
  .document-file-row__date{display:none}
}
@media (max-width:680px){
  .fn-admin-page{padding:14px 10px}
  .fn-admin-hero{padding:20px}
  .fn-admin-hero h1{font-size:28px}
  .fn-admin-filter-group{align-items:stretch;flex-direction:column}
  .fn-admin-filter-group .btn,.fn-admin-filter-group select,.fn-admin-filter-group .employee-view-switch{width:100%}
  .fn-admin-ai-filter-form{grid-template-columns:1fr}
  .fn-admin-ai-filter-actions{align-items:stretch;flex-direction:column}
  .fn-admin-ai-filter-actions .btn{width:100%}
  .fn-admin-kpis--ai .fn-admin-ai-kpi{padding-left:62px}
  .export-menu,.export-menu summary{width:100%}
  .export-menu summary{justify-content:center}
  .export-menu nav{left:0;right:auto;width:100%}
  .fn-admin-kpis{grid-template-columns:1fr}
  .fn-admin-card{padding:16px}
  .fn-admin-table th,.fn-admin-table td{padding:12px 10px}
  .traceability-view-tools{justify-content:space-between}
  .traceability-card summary{grid-template-columns:5px minmax(0,1fr);align-items:start}
  .traceability-card__icon{display:none}
  .traceability-card__impact,.traceability-card summary .status-pill{grid-column:2;justify-self:start}
  .traceability-compare,.traceability-detail-grid{grid-template-columns:1fr}
  .document-explorer-search{grid-template-columns:1fr}
  .document-explorer-view-tools{width:100%;justify-content:space-between}
  .admin-module-summary--documents{grid-template-columns:repeat(2,minmax(0,1fr))}
  .document-explorer__header{align-items:flex-start;padding:12px;flex-direction:column;gap:5px}
  .document-file-row{padding:13px;grid-template-columns:1fr auto;gap:10px}
  .document-file-row__name{grid-column:1/-1}
  .document-file-row__destination{padding-left:0}
  .document-file-row__destination small{margin-bottom:3px;display:block;color:#8292a5;font-size:8px;font-weight:950;text-transform:uppercase}
  .document-file-row__status{padding-left:0}
  .document-file-row__status small{white-space:normal}
  .document-file-row__actions{grid-column:1/-1;padding-left:0;justify-content:flex-start}
  .management-card-grid--expense-tickets{grid-template-columns:1fr}
}

/* Tarjeta de trabajador inspirada en una credencial/DNI laboral. */
.employee-card-grid{
  grid-template-columns:repeat(auto-fit,minmax(470px,1fr));
  gap:18px;
}
.employee-card-grid--single{
  grid-template-columns:minmax(0,720px);
}
.employee-card{
  min-height:264px;
  padding:43px 18px 14px;
  position:relative;
  overflow:hidden;
  border:1px solid #cbdbea;
  border-radius:18px;
  background:
    radial-gradient(circle at 92% 12%,rgba(30,126,209,.11) 0,rgba(30,126,209,.11) 44px,transparent 45px),
    linear-gradient(135deg,#fff 0,#fff 68%,#f1f7fd 100%);
  box-shadow:0 13px 30px rgba(19,52,84,.08);
}
.employee-card::before{
  content:"FICHARNET  ·  IDENTIFICACIÓN DEL TRABAJADOR";
  height:31px;
  padding:0 18px;
  position:absolute;
  inset:0 0 auto;
  display:flex;
  align-items:center;
  color:#fff;
  background:linear-gradient(90deg,#075cae 0,#0d74d2 66%,#1297bd 100%);
  font-size:9px;
  font-weight:950;
  letter-spacing:.12em;
}
.employee-card::after{
  content:"FN";
  position:absolute;
  right:23px;
  bottom:54px;
  color:rgba(20,105,184,.045);
  font-size:70px;
  font-weight:950;
  line-height:1;
  pointer-events:none;
}
.employee-card:hover{
  border-color:#83b4df;
  box-shadow:0 17px 38px rgba(18,74,132,.14);
  transform:translateY(-2px);
}
.employee-card-main{
  grid-template-columns:78px minmax(0,1fr) 34px;
  align-items:start;
  gap:14px;
}
.employee-card-avatar{
  width:78px;
  height:92px;
  border:3px solid #fff;
  border-radius:12px;
  background:#eaf4ff;
  box-shadow:0 0 0 1px #c8daeb,0 8px 18px rgba(23,66,107,.13);
  font-size:24px;
}
.employee-card-heading{
  padding-top:3px;
  gap:7px;
}
.employee-card-heading > a{
  color:#122f4e;
  font-size:18px;
  line-height:1.18;
  font-weight:950;
}
.employee-card-meta{
  align-items:flex-start;
  flex-direction:column;
  gap:8px;
}
.employee-card-heading small{
  color:#61758d;
  font-size:11px;
  font-weight:750;
}
.employee-card-edit{
  width:34px;
  height:34px;
  border-color:#c9dced;
  border-radius:10px;
  box-shadow:0 3px 9px rgba(22,73,120,.06);
}
.employee-card-details{
  margin:10px 0 9px 92px;
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
}
.employee-card-details > div{
  padding:5px 0;
  display:block;
  border-bottom:1px solid #e4ebf2;
}
.employee-card-details > div:nth-child(3){
  grid-column:1/-1;
}
.employee-card-details dt{
  margin-bottom:3px;
  color:#71849a;
  font-size:8px;
  letter-spacing:.095em;
}
.employee-card-details dd{
  color:#203d5c;
  font-size:11px;
  font-weight:800;
}
.employee-card-details dd.employee-activity{
  min-height:26px;
}
.employee-card-actions{
  padding-top:9px;
  position:relative;
  z-index:1;
  border-top:1px solid #dce7f1;
}
.employee-card-actions a{
  height:34px;
  border-color:#d1e1ef;
  border-radius:9px;
  background:rgba(247,251,255,.9);
}

@media (max-width:720px){
  .employee-card-grid{
    grid-template-columns:1fr;
  }
  .employee-card{
    min-height:0;
    padding:46px 16px 16px;
  }
  .employee-card-main{
    grid-template-columns:72px minmax(0,1fr) 34px;
    gap:12px;
  }
  .employee-card-avatar{
    width:72px;
    height:88px;
  }
  .employee-card-details{
    margin-left:0;
    grid-template-columns:1fr;
  }
  .employee-card-details > div:nth-child(3){
    grid-column:auto;
  }
}

@media (max-width:460px){
  .employee-card::before{
    padding:0 15px;
    font-size:8px;
    letter-spacing:.08em;
  }
  .employee-card-main{
    grid-template-columns:64px minmax(0,1fr) 32px;
  }
  .employee-card-avatar{
    width:64px;
    height:80px;
  }
  .employee-card-heading > a{
    font-size:16px;
  }
  .employee-card-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
/* Licencias: tarjetas de dispositivo y asignación guiada. */
.management-card--licenses .management-card__icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: #e8f3ff;
    color: #0767c8;
    font-size: .78rem;
    letter-spacing: .04em;
}

.management-card__metrics--licenses {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.license-card-access {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #dbe7f3;
    border-radius: 12px;
    background: #f8fbfe;
}

.license-card-access span {
    min-width: 0;
}

.license-card-access small,
.license-card-access strong {
    display: block;
}

.license-card-access small {
    margin-bottom: 3px;
    color: #71839a;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.license-card-access strong {
    overflow: hidden;
    color: #173657;
    font-size: .84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.license-assignment-dialog {
    width: min(980px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    padding: 0;
    overflow: auto;
    border: 0;
    border-radius: 20px;
    color: #102d4f;
    box-shadow: 0 26px 80px rgba(10, 42, 76, .25);
}

.license-assignment-dialog::backdrop {
    background: rgba(8, 31, 58, .58);
    backdrop-filter: blur(3px);
}

.license-assignment-dialog > form {
    margin: 0;
}

.license-assignment-dialog__header,
.license-assignment-dialog__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 26px;
}

.license-assignment-dialog__header {
    border-bottom: 1px solid #dce7f2;
}

.license-assignment-dialog__header h2 {
    margin: 3px 0;
    color: #102d4f;
    font-size: 1.65rem;
}

.license-assignment-dialog__header p {
    margin: 0;
    color: #647b96;
}

.license-dialog-close {
    display: grid;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    padding: 0;
    place-items: center;
    border: 1px solid #cfdeed;
    border-radius: 12px;
    background: #fff;
    color: #385675;
    font-size: 1.55rem;
    cursor: pointer;
}

.license-assignment-dialog__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 285px;
    gap: 22px;
    padding: 24px 26px;
    background: #f6f9fc;
}

.license-assignment-main {
    min-width: 0;
}

.license-search-field,
.license-assignment-settings > label {
    display: grid;
    gap: 6px;
}

.license-search-field > span:first-child,
.license-assignment-settings legend {
    color: #173657;
    font-size: 1rem;
    font-weight: 800;
}

.license-search-field > small,
.license-assignment-settings label > small {
    color: #6b8099;
    font-size: .79rem;
}

.license-search-control {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
    padding: 0 14px;
    border: 2px solid #b8cce2;
    border-radius: 12px;
    background: #fff;
}

.license-search-control:focus-within {
    border-color: #0871d8;
    box-shadow: 0 0 0 4px rgba(8, 113, 216, .1);
}

.license-search-control svg {
    width: 21px;
    fill: #6f87a0;
}

.license-search-control input {
    width: 100%;
    min-height: 48px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #102d4f;
    font: inherit;
    font-weight: 750;
    text-transform: uppercase;
}

.license-search-control button {
    min-height: 38px;
    padding: 0 18px;
    border: 0;
    border-radius: 9px;
    background: #086fd3;
    color: #fff;
    font: inherit;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
}

.license-search-control button:hover {
    background: #075db1;
}

.license-search-status {
    min-height: 24px;
    margin: 9px 2px 6px;
    color: #6a7f98;
    font-size: .79rem;
}

.license-search-status.is-loading {
    color: #0767c8;
}

.license-search-status.is-success {
    color: #09865d;
}

.license-search-status.is-error,
.license-search-status.is-empty {
    color: #b74638;
}

.license-search-results {
    display: grid;
    max-height: 238px;
    margin-bottom: 14px;
    overflow: auto;
    border: 1px solid #d6e3f0;
    border-radius: 13px;
    background: #fff;
}

.license-search-result {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 11px 13px;
    border: 0;
    border-bottom: 1px solid #e7eef6;
    background: #fff;
    color: #173657;
    text-align: left;
    cursor: pointer;
}

.license-search-result:last-child {
    border-bottom: 0;
}

.license-search-result:hover,
.license-search-result:focus-visible {
    z-index: 1;
    outline: 2px solid #1681e8;
    outline-offset: -2px;
    background: #edf6ff;
}

.license-search-result__platform,
.license-selected__platform {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: #e7f2fd;
    color: #086bcf;
    font-size: .7rem;
    font-weight: 900;
}

.license-search-result__identity,
.license-search-result__identity strong,
.license-search-result__identity small {
    display: block;
    min-width: 0;
}

.license-search-result__identity strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.license-search-result__identity small,
.license-search-result__access {
    color: #71849a;
    font-size: .75rem;
}

.license-selected {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    margin: 10px 0 18px;
    padding: 14px;
    border: 1px solid #91d9bd;
    border-radius: 14px;
    background: #ecfaf4;
}

.license-selected[hidden],
.license-search-results[hidden] {
    display: none;
}

.license-selected__platform {
    width: 50px;
    height: 50px;
    background: #d8f4e8;
    color: #087554;
}

.license-selected div small,
.license-selected div strong,
.license-selected div span {
    display: block;
}

.license-selected div small {
    color: #477663;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.license-selected div strong {
    margin: 2px 0;
}

.license-selected div span {
    color: #587b6d;
    font-size: .76rem;
}

.license-selected button {
    border: 0;
    background: transparent;
    color: #0767c8;
    font-weight: 800;
    cursor: pointer;
}

.license-assignment-settings {
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 18px;
    border: 1px solid #d4e2ef;
    border-radius: 14px;
    background: #fff;
}

.license-assignment-settings:disabled {
    opacity: .55;
}

.license-assignment-settings legend {
    padding: 0 7px;
}

.license-assignment-settings select {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #bdd0e2;
    border-radius: 10px;
    background: #fff;
    color: #173657;
    font: inherit;
    font-weight: 700;
}

.license-mode-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.license-mode-options label {
    display: block;
    cursor: pointer;
}

.license-mode-options input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.license-mode-options label > span {
    display: grid;
    min-height: 82px;
    align-content: center;
    gap: 4px;
    padding: 12px;
    border: 1px solid #d4e2ef;
    border-radius: 12px;
    background: #f8fbfe;
}

.license-mode-options input:checked + span {
    border-color: #0871d8;
    background: #eaf4ff;
    box-shadow: inset 0 0 0 1px #0871d8;
}

.license-mode-options strong {
    font-size: .84rem;
}

.license-mode-options small {
    color: #667d96;
    font-size: .72rem;
    line-height: 1.35;
}

.license-assignment-help {
    align-self: start;
    padding: 18px;
    border: 1px solid #d4e2ef;
    border-radius: 15px;
    background: #fff;
}

.license-assignment-help__icon {
    display: grid;
    float: left;
    width: 38px;
    height: 38px;
    margin-right: 10px;
    place-items: center;
    border-radius: 11px;
    background: #0871d8;
    color: #fff;
    font-weight: 900;
}

.license-assignment-help h3 {
    margin: 2px 0 18px;
    font-size: 1rem;
}

.license-assignment-help ol {
    clear: both;
    margin: 0;
    padding-left: 20px;
    color: #526d89;
    font-size: .79rem;
    line-height: 1.55;
}

.license-assignment-help li + li {
    margin-top: 9px;
}

.license-assignment-help__note {
    margin-top: 17px;
    padding: 13px;
    border-left: 3px solid #f29b2e;
    border-radius: 8px;
    background: #fff6e9;
    color: #7c5521;
}

.license-assignment-help__note p {
    margin: 5px 0 0;
    font-size: .74rem;
    line-height: 1.45;
}

.license-assignment-dialog__footer {
    justify-content: flex-end;
    border-top: 1px solid #dce7f2;
    background: #fff;
}

@media (max-width: 760px) {
    .license-assignment-dialog__body {
        grid-template-columns: 1fr;
    }

    .license-mode-options {
        grid-template-columns: 1fr;
    }

    .license-search-result {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .license-search-result__access {
        grid-column: 2;
    }
}

.expense-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 18px;
    align-items: start;
}

.expense-editor-main {
    display: grid;
    gap: 18px;
}

.expense-editor-card {
    border-radius: 18px;
    padding: 24px 26px;
}

.expense-editor-card > header {
    align-items: flex-start;
    gap: 13px;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid #edf2f7;
}

.expense-editor-card > header h2 {
    font-size: 22px;
}

.expense-editor-card > header p {
    max-width: 760px;
    font-size: 13px;
}

.expense-status-badge {
    margin-left: auto;
    padding: 8px 14px;
    border-radius: 999px;
    color: #9a5b00;
    background: #fff2cc;
    font-weight: 900;
    font-size: 13px;
}

.expense-required-alert {
    margin-bottom: 16px;
    padding: 13px 15px;
    border: 1px solid #ffb4b4;
    border-radius: 14px;
    color: #9b1c1c;
    background: #fff3f3;
}

.expense-required-alert.is-ok {
    border-color: #9ee6bf;
    color: #087443;
    background: #ecfff5;
}

.expense-required-alert strong,
.expense-required-alert span {
    display: block;
}

.expense-required-alert strong {
    margin-bottom: 4px;
    font-size: 12px;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.expense-capture-grid,
.expense-fiscal-grid,
.expense-review-grid {
    display: grid;
    gap: 12px;
}

.expense-capture-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.expense-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.expense-fiscal-grid {
    grid-template-columns: minmax(220px, 1.25fr) minmax(170px, .7fr) minmax(170px, .7fr) minmax(120px, .48fr);
}

.expense-control {
    min-width: 0;
    padding: 13px 14px;
    display: grid;
    gap: 7px;
    align-content: start;
    border: 1px solid #dce7f2;
    border-radius: 13px;
    background: #f8fbff;
}

.expense-control--exchange[hidden] {
    display: none;
}

.expense-control--exchange {
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 14px;
    align-items: start;
}

.expense-control--exchange > label {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.expense-control--exchange > label > span {
    color: #64788f;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.expense-exchange-source {
    grid-column: 1 / -1;
    margin: 0;
    color: #607890;
    font-size: 11px;
    line-height: 1.45;
}

.expense-control.is-required {
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.expense-control.is-required.is-missing {
    border-color: #ff9f9f;
    background: #fff5f5;
    box-shadow: inset 4px 0 0 #ff5a66;
}

.expense-control.is-required.is-complete {
    border-color: #8be2b4;
    background: #effff7;
    box-shadow: inset 4px 0 0 #12b886;
}

.expense-control--wide {
    grid-column: 1 / -1;
}

.expense-control--provider-name {
    grid-column: span 3;
}

.expense-control--display {
    background: #eef7ff;
}

.expense-control > span {
    color: #64788f;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.expense-control input,
.expense-control select,
.expense-control textarea {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 0 11px;
    color: #142d49;
    border: 1px solid #cbd9e8;
    border-radius: 10px;
    background: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    box-sizing: border-box;
}

.expense-control.is-required.is-missing input,
.expense-control.is-required.is-missing select,
.expense-control.is-required.is-missing textarea,
.expense-control.is-required.is-missing .fn-date-shell {
    border-color: #ff9f9f;
    background: #fffafa;
}

.expense-control.is-required.is-complete input,
.expense-control.is-required.is-complete select,
.expense-control.is-required.is-complete textarea,
.expense-control.is-required.is-complete .fn-date-shell {
    border-color: #8be2b4;
    background: #f7fffb;
}

.expense-control textarea {
    min-height: 90px;
    padding-top: 10px;
    resize: vertical;
}

.expense-control small {
    color: #71849a;
    font-size: 11px;
    line-height: 1.35;
}

.expense-upload-card {
    margin-top: 14px;
    padding: 16px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    border: 1px dashed #b9d1ea;
    border-radius: 16px;
    background: #f7fbff;
}

.expense-upload-card.is-dragging {
    border-color: #0b67c8;
    background: #edf7ff;
}

.expense-upload-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #0b67c8;
    background: #e5f1ff;
    font-size: 24px;
    font-weight: 900;
}

.expense-upload-card p {
    margin: 4px 0;
    color: #62758c;
    font-size: 13px;
}

.expense-upload-card small {
    color: #546b83;
    font-weight: 800;
}

.expense-upload-card input[type="file"] {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    opacity: 0;
    pointer-events: none;
}

.expense-current-file {
    margin-top: 10px;
    justify-self: start;
}

.expense-ai-panel {
    margin-top: 14px;
    padding: 16px;
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #bde6ff;
    border-radius: 16px;
    background: linear-gradient(135deg, #dff6ff, #eefbff);
}

.expense-ai-panel--manual {
    border-color: #dce7f2;
    background: #f8fbff;
}

.expense-ai-panel.is-trial {
    border-color: #f2cf82;
    background: linear-gradient(135deg, #fff7df, #fffbef);
}

.expense-ai-trial-chip {
    margin-left: 7px;
    padding: 3px 7px;
    display: inline-flex;
    vertical-align: middle;
    border-radius: 999px;
    color: #8b5504;
    background: #fde7a7;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .07em;
}

.expense-ai-panel p {
    margin: 4px 0 0;
    color: #47637e;
    line-height: 1.45;
}

.expense-ai-panel span {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.expense-ai-modal[hidden] {
    display: none !important;
}

.expense-ai-modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(8, 30, 54, .42);
    backdrop-filter: blur(4px);
}

.expense-ai-modal__card {
    width: min(430px, 100%);
    padding: 28px;
    border: 1px solid #cfe0f1;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(14, 45, 74, .22);
    text-align: center;
}

.expense-ai-modal__card h2 {
    margin: 14px 0 8px;
    color: #102744;
    font-size: 24px;
}

.expense-ai-modal__card p {
    margin: 0;
    color: #526a84;
    line-height: 1.45;
}

.expense-ai-modal__card small {
    display: block;
    margin-top: 14px;
    color: #70839a;
    font-weight: 800;
}

.expense-ai-spinner {
    width: 54px;
    height: 54px;
    display: inline-block;
    border-radius: 999px;
    border: 5px solid #e4f0fb;
    border-top-color: #0b67c8;
    animation: expense-ai-spin .8s linear infinite;
}

.admin-editor-form--expense.is-ai-processing {
    cursor: progress;
}

@keyframes expense-ai-spin {
    to { transform: rotate(360deg); }
}

.expense-tax-lines {
    display: grid;
    gap: 10px;
}

.expense-tax-line {
    padding: 12px;
    display: grid;
    grid-template-columns: minmax(128px, .8fr) minmax(180px, 1.35fr) repeat(4, minmax(95px, .7fr)) auto;
    gap: 9px;
    align-items: end;
    border: 1px solid #d9e6f3;
    border-radius: 14px;
    background: #fbfdff;
}

.expense-tax-line.is-required.is-missing {
    border-color: #ff9f9f;
    background: #fff6f6;
    box-shadow: inset 4px 0 0 #ff5a66;
}

.expense-tax-line.is-required.is-complete {
    border-color: #8be2b4;
    background: #f2fff8;
    box-shadow: inset 4px 0 0 #12b886;
}

.expense-tax-line.is-empty {
    opacity: .72;
}

.expense-tax-line label,
.expense-accounting-summary label {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.expense-tax-line .expense-tax-total-control {
    padding: 8px;
    border: 1px solid #9bc7f5;
    border-radius: 13px;
    background: linear-gradient(180deg, #eef7ff 0%, #e7f2ff 100%);
    box-shadow: inset 3px 0 0 #0b70d9;
}

.expense-tax-line span,
.expense-accounting-summary span {
    color: #667990;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.expense-tax-line input,
.expense-tax-line select,
.expense-accounting-summary input {
    width: 100%;
    min-width: 0;
    height: 39px;
    padding: 0 10px;
    border: 1px solid #cbd9e8;
    border-radius: 10px;
    color: #142d49;
    background: #fff;
    font-size: 14px;
    font-weight: 800;
    box-sizing: border-box;
}

.expense-tax-line .expense-tax-total-control input {
    border-color: #0b70d9;
    color: #005eb8;
    background: #ffffff;
    font-size: 16px;
    box-shadow: 0 0 0 3px rgba(11, 112, 217, .1);
}

.expense-tax-line .expense-tax-total-control input[readonly] {
    cursor: not-allowed;
    border-color: #8eb9e5;
    background: #e9f3fd;
    box-shadow: none;
}

.expense-tax-line.is-required.is-missing input,
.expense-tax-line.is-required.is-missing select,
.expense-accounting-summary label.is-required.is-missing input {
    border-color: #ff9f9f;
    background: #fffafa;
}

.expense-tax-line.is-required.is-complete input,
.expense-tax-line.is-required.is-complete select,
.expense-accounting-summary label.is-required.is-complete input {
    border-color: #8be2b4;
    background: #f7fffb;
}

.admin-editor-form--expense .btn.is-disabled,
.admin-editor-form--expense .btn:disabled {
    opacity: .55;
    cursor: not-allowed;
    box-shadow: none;
}

.expense-save-requirements {
    max-width: min(560px, 55vw);
    color: #a52b2b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.expense-tax-remove {
    height: 39px;
}

.expense-accounting-summary {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.expense-accounting-summary label {
    padding: 13px;
    border: 1px solid #dce7f2;
    border-radius: 14px;
    background: #f8fbff;
}

.expense-accounting-summary input {
    color: #0057ad;
    font-size: 18px;
    text-align: right;
}

.expense-editor-help {
    position: sticky;
    top: 92px;
}

.expense-editor-form .fn-date-shell,
.admin-editor-form--expense .fn-date-shell {
    min-height: 42px;
    margin-top: 0;
    border-radius: 10px;
    background: #fff;
}

.admin-editor-form--expense .fn-date-input {
    min-height: 40px;
    margin-top: 0;
}

@media (max-width: 1240px) {
    .expense-editor-layout {
        grid-template-columns: 1fr;
    }

    .expense-editor-help {
        position: static;
    }
}

@media (max-width: 980px) {
    .expense-fiscal-grid,
    .expense-tax-line {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .expense-control--exchange {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .expense-exchange-source {
        grid-column: 1 / -1;
    }

    .expense-control--provider-name {
        grid-column: 1 / -1;
    }

    .expense-tax-remove {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .expense-editor-card {
        padding: 20px;
    }

    .expense-capture-grid,
    .expense-fiscal-grid,
    .expense-review-grid,
    .expense-accounting-summary,
    .expense-tax-line,
    .expense-upload-card {
        grid-template-columns: 1fr;
    }

    .expense-ai-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .expense-ai-panel .btn,
    .expense-upload-card .btn {
        width: 100%;
    }

    .expense-control--exchange {
        grid-template-columns: 1fr;
    }

    .expense-exchange-source {
        grid-column: auto;
    }
}
.company-punch-page {
    display: grid;
    gap: 16px;
}

.company-punch-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}

.company-punch-kpi {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 8px;
    row-gap: 1px;
    align-items: baseline;
    padding: 9px 12px;
    border: 1px solid #d7e4f4;
    border-radius: 16px;
    background: #fff;
    color: #173153;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(15, 45, 81, .05);
}

.company-punch-kpi span {
    color: #6b7d94;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.company-punch-kpi strong {
    color: #0966d3;
    font-size: 1.35rem;
    line-height: 1;
}

.company-punch-kpi small {
    grid-column: 1 / -1;
    color: #60748f;
    font-weight: 700;
}

.company-punch-kpi.is-active {
    border-color: #9fc9f2;
    background: linear-gradient(135deg, #f3f9ff, #fff);
    box-shadow: 0 12px 26px rgba(13, 107, 215, .07);
}

.company-punch-kpi.is-green strong { color: #06845a; }
.company-punch-kpi.is-blue strong { color: #0d6bd7; }
.company-punch-kpi.is-orange strong { color: #c45719; }
.company-punch-kpi.is-red strong { color: #c83e3e; }
.company-punch-kpi.is-purple strong { color: #6d46c7; }

.company-punch-period {
    display: grid;
    grid-template-columns: auto minmax(280px, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin-top: 2px;
    padding: 12px 14px;
    border: 1px solid #d7e4f4;
    border-radius: 18px;
    background: #fff;
}

.company-punch-period-tabs {
    display: flex;
    gap: 4px;
    align-items: center;
    padding: 4px;
    border: 1px solid #d4e3f4;
    border-radius: 16px;
    background: #f3f8fe;
}

.company-punch-period-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 12px;
    color: #173153;
    font-size: .92rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.company-punch-period-tabs a.is-active {
    background: #0d6bd7;
    color: #fff;
    box-shadow: 0 10px 24px rgba(13, 107, 215, .22);
}

.company-punch-period__nav,
.company-punch-period__actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.company-punch-period__nav {
    justify-content: center;
}

.company-punch-period__nav strong {
    min-width: 220px;
    text-align: center;
    color: #102a4c;
    text-transform: capitalize;
}

.company-punch-period__actions {
    justify-content: flex-end;
}

.company-punch-date-menu {
    position: relative;
}

.company-punch-date-menu summary {
    list-style: none;
    cursor: pointer;
}

.company-punch-date-menu summary::-webkit-details-marker {
    display: none;
}

.company-punch-date-popover {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: minmax(210px, 1fr) auto;
    gap: 8px;
    align-items: end;
    min-width: 370px;
    padding: 12px;
    border: 1px solid #cfe0f2;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15, 45, 81, .18);
}

.company-punch-date-popover label {
    display: grid;
    gap: 5px;
    margin: 0;
}

.company-punch-date-popover label span {
    color: #6b7d94;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.company-punch-date-popover .fn-date-shell {
    background: #f8fbff;
}

.company-punch-date-popover .fn-calendar-popover {
    left: 0;
    right: auto;
    width: 304px;
    z-index: 95;
}

.company-punch-date-popover .fn-calendar-head strong {
    font-size: 15px;
}

.company-punch-date-popover .fn-calendar-days button {
    height: 36px;
    font-size: 13px;
}

.company-punch-totals-strip {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 0;
    padding: 0 10px;
    color: #60748f;
    font-size: .88rem;
    font-weight: 800;
}

.company-punch-totals-strip--bottom {
    margin-top: 10px;
    padding: 0 4px;
}

.company-punch-totals-strip span {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid #dbe8f5;
    border-radius: 999px;
    background: #fff;
}

.company-punch-totals-strip strong {
    color: #102a4c;
}

.company-punch-totals-strip .is-negative { color: #c83e3e; }
.company-punch-totals-strip .is-positive { color: #06845a; }

.company-punch-period__totals {
    justify-content: flex-end;
    flex-wrap: wrap;
    padding-top: 8px;
    border-top: 1px solid #e4eef8;
    color: #60748f;
    font-size: .9rem;
    font-weight: 800;
}

.company-punch-period__totals strong {
    color: #102a4c;
}

.company-punch-period__totals .is-negative { color: #c83e3e; }
.company-punch-period__totals .is-positive { color: #06845a; }

.company-punch-toolbar {
    padding: 10px;
}

.company-punch-filter-form {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(190px, .32fr) minmax(180px, .28fr) auto;
    gap: 10px;
    align-items: end;
    width: 100%;
}

.company-punch-filter-form > span[aria-hidden="true"] {
    display: none;
}

.company-punch-filter-form label {
    display: grid;
    gap: 6px;
    margin: 0;
}

.company-punch-filter-form label span {
    color: #6b7d94;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.company-punch-filter-form input,
.company-punch-filter-form select {
    min-height: 44px;
}

.company-punch-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding: 0 2px;
}

.company-punch-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid #d7e4f4;
    background: #fff;
    color: #39506d;
    font-size: .82rem;
    font-weight: 800;
}

.company-punch-legend span::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #d7e4f4;
}

.company-punch-legend .is-worked::before { background: #1f8a5f; }
.company-punch-legend .is-open::before { background: #f59e0b; }
.company-punch-legend .is-missing::before { background: #d94a4a; }
.company-punch-legend .is-incidence::before { background: #7c3aed; }
.company-punch-legend .is-holiday::before { background: #0ea5e9; }
.company-punch-legend .is-off::before { background: #b7c5d7; }

.company-punch-legend--bottom {
    justify-content: flex-end;
    margin-top: 8px;
    padding: 2px 4px 0;
}

.company-punch-legend--bottom span {
    min-height: 26px;
    padding: 4px 9px;
    font-size: .78rem;
}

.company-punch-scrollbar {
    overflow-x: auto;
    overflow-y: hidden;
    height: 18px;
    margin: 0 0 8px;
    border: 1px solid #d7e4f4;
    border-radius: 999px;
    background: #f6faff;
}

.company-punch-scrollbar[hidden] {
    display: none !important;
}

.company-punch-scrollbar > div {
    height: 1px;
}

.company-punch-matrix-wrap {
    overflow-x: auto;
    overflow-y: visible;
    border: 1px solid #d7e4f4;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 46px rgba(15, 45, 81, .06);
}

.company-punch-matrix {
    width: 100%;
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0;
}

.company-punch-page.is-month .company-punch-matrix {
    width: max-content;
    min-width: 100%;
}

.company-punch-matrix th,
.company-punch-matrix td {
    border-bottom: 1px solid #e3edf7;
    border-right: 1px solid #e3edf7;
    vertical-align: top;
}

.company-punch-matrix thead th {
    position: sticky;
    top: 0;
    z-index: 4;
    padding: 8px 8px;
    background: #f4f8fd;
    color: #173153;
    font-size: .86rem;
    text-align: center;
}

.company-punch-matrix thead th strong,
.company-punch-matrix thead th small {
    display: block;
}

.company-punch-matrix thead th small {
    margin-top: 3px;
    color: #6b7d94;
    font-weight: 800;
}

.company-punch-worker-head,
.company-punch-worker-cell {
    position: sticky;
    left: 0;
    z-index: 8;
    width: 270px;
    min-width: 270px;
    background: #fff;
    box-shadow: 10px 0 18px rgba(15, 45, 81, .08);
}

.company-punch-worker-head {
    z-index: 12;
    background: #f4f8fd !important;
    text-align: left !important;
}

.company-punch-worker-cell {
    padding: 8px;
}

.company-punch-worker {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    color: #173153;
    text-align: left;
    text-decoration: none;
}

.company-punch-worker img,
.company-punch-worker > span {
    width: 38px;
    height: 38px;
    border: 1px solid #cfe0f2;
    border-radius: 14px;
    background: #eaf4ff;
    object-fit: cover;
}

.company-punch-worker > span {
    display: grid;
    place-items: center;
    color: #0d6bd7;
    font-weight: 900;
}

.company-punch-worker strong,
.company-punch-worker small,
.company-punch-worker em {
    display: block;
    min-width: 0;
}

.company-punch-worker strong {
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .9rem;
    white-space: nowrap;
}

.company-punch-worker small {
    color: #7487a0;
    font-size: .76rem;
    font-style: normal;
}

.company-punch-worker-totals {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid #e3edf7;
    color: #173153;
    font-size: .78rem;
    font-weight: 900;
}

.company-punch-worker-totals small {
    color: #6b7d94;
}

.company-punch-cell {
    width: 152px;
    min-width: 152px;
    height: 90px;
    padding: 4px;
    background: #fff;
}

.company-punch-page.is-month .company-punch-worker-head,
.company-punch-page.is-month .company-punch-worker-cell {
    width: 285px;
    min-width: 285px;
}

.company-punch-page.is-month .company-punch-cell {
    width: 198px;
    min-width: 198px;
}

.company-punch-page.is-month .company-punch-cell-button {
    min-height: 88px;
    padding: 7px 8px;
}

.company-punch-page.is-month .company-punch-cell-line,
.company-punch-page.is-month .company-punch-cell-incidence {
    grid-template-columns: minmax(126px, 1fr) auto;
    gap: 6px;
}

.company-punch-page.is-month .company-punch-cell-line strong,
.company-punch-page.is-month .company-punch-cell-incidence strong {
    font-size: .75rem;
}

.company-punch-page.is-month .company-punch-cell-line small,
.company-punch-page.is-month .company-punch-cell-incidence small {
    font-size: .68rem;
}

.company-punch-cell-button {
    display: grid;
    gap: 4px;
    width: 100%;
    min-height: 82px;
    padding: 7px;
    border: 1px solid #d8e4f0;
    border-radius: 12px;
    background: #fff;
    color: #173153;
    text-align: left;
    cursor: pointer;
}

.company-punch-cell-button span {
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.company-punch-cell-button strong {
    overflow: hidden;
    text-overflow: ellipsis;
    color: #102a4c;
    font-size: .82rem;
    white-space: nowrap;
}

.company-punch-cell-button small {
    color: #60748f;
    font-size: .68rem;
    font-weight: 800;
}

.company-punch-cell-lines {
    display: grid;
    gap: 3px;
}

.company-punch-cell-line,
.company-punch-cell-incidence {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px;
    align-items: center;
    padding: 2px 0;
    border-bottom: 1px solid rgba(16, 42, 76, .08);
}

.company-punch-cell-line strong,
.company-punch-cell-incidence strong {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 2px;
    color: #064f9e;
    font-size: .76rem;
    line-height: 1.15;
    white-space: nowrap;
}

.company-punch-cell-line strong span {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: 0;
    text-transform: none;
}

.company-punch-cell-line.is-open strong {
    color: #c45719;
}

.company-punch-cell-line small,
.company-punch-cell-incidence small {
    color: #60748f;
    font-size: .66rem;
    white-space: nowrap;
}

.company-punch-cell-lines em {
    color: #60748f;
    font-size: .72rem;
    font-style: normal;
    font-weight: 800;
}

.company-punch-cell-total {
    justify-self: end;
    padding: 2px 7px;
    border-radius: 999px;
    background: #fff;
    color: #173153;
    font-size: .7rem;
    font-weight: 900;
}

.company-punch-cell-muted {
    display: grid;
    gap: 2px;
    color: #60748f;
}

.company-punch-cell-muted strong {
    color: inherit;
    font-size: .76rem;
}

.company-punch-cell .gps-link {
    width: 14px;
    height: 14px;
    color: #0b63c7;
}

.company-punch-cell.is-worked .company-punch-cell-button {
    border-color: #9fe3c8;
    background: #effcf6;
}

.company-punch-cell.is-open .company-punch-cell-button {
    border-color: #f8c786;
    background: #fff7ed;
}

.company-punch-cell.is-missing .company-punch-cell-button {
    border-color: #f4b5b5;
    background: #fff2f2;
}

.company-punch-cell.is-incidence .company-punch-cell-button {
    border-color: #d9c7ff;
    background: #f7f2ff;
}

.company-punch-cell.is-holiday .company-punch-cell-button {
    border-color: #9bdcf6;
    background: #ecf9ff;
}

.company-punch-cell.is-off .company-punch-cell-button {
    border-style: dashed;
    background: #f6f8fb;
    color: #7487a0;
}

.company-punch-cell.is-today .company-punch-cell-button {
    box-shadow: inset 0 0 0 2px #0d6bd7;
}

.company-punch-dialog {
    width: min(760px, calc(100vw - 28px));
    padding: 0;
    border: 0;
    border-radius: 22px;
    box-shadow: 0 30px 90px rgba(9, 33, 67, .28);
}

.company-punch-dialog::backdrop {
    background: rgba(9, 24, 48, .42);
}

.company-punch-dialog form[method="dialog"] {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
}

.company-punch-dialog form[method="dialog"] button {
    width: 38px;
    height: 38px;
    border: 1px solid #cfe0f2;
    border-radius: 12px;
    background: #fff;
    color: #173153;
    font-size: 1.4rem;
    line-height: 1;
}

.company-punch-detail {
    display: grid;
    gap: 16px;
    padding: 26px;
}

.company-punch-detail header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding-right: 44px;
}

.company-punch-detail header span {
    color: #0d6bd7;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.company-punch-detail h3,
.company-punch-detail h4,
.company-punch-detail p {
    margin: 0;
}

.company-punch-detail h3 {
    margin-top: 4px;
    color: #102a4c;
    font-size: 1.55rem;
}

.company-punch-detail header p {
    color: #6b7d94;
    font-weight: 700;
}

.company-punch-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.company-punch-detail-grid span {
    padding: 12px;
    border: 1px solid #d7e4f4;
    border-radius: 14px;
    background: #f8fbff;
}

.company-punch-detail-grid small,
.company-punch-detail-grid strong {
    display: block;
}

.company-punch-detail-grid small {
    color: #6b7d94;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.company-punch-detail-grid strong {
    color: #102a4c;
    font-size: 1.05rem;
}

.company-punch-detail section {
    display: grid;
    gap: 10px;
}

.company-punch-detail h4 {
    color: #102a4c;
    font-size: 1rem;
}

.company-punch-detail-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.company-punch-detail-add {
    min-height: 34px !important;
    padding-inline: 11px !important;
    font-size: .78rem !important;
}

.company-punch-detail-add svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

.company-punch-detail-line,
.company-punch-incident {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 12px;
    border: 1px solid #d7e4f4;
    border-radius: 14px;
    background: #fff;
}

.company-punch-detail-line.is-open {
    border-color: #f8c786;
    background: #fff7ed;
}

.company-punch-detail-line strong {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    color: #0b5db8;
    font-size: 1.05rem;
}

.company-punch-detail-line small,
.company-punch-incident small {
    display: block;
    margin-top: 3px;
    color: #6b7d94;
    font-weight: 800;
}

.company-punch-detail-line p {
    margin-top: 5px;
    color: #60748f;
    font-size: .9rem;
}

.gps-link {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: #e7f3ff;
    color: #0b5db8;
}

.gps-link svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.company-punch-incident {
    border-left: 5px solid var(--incident-color, #f97316);
}

.company-punch-incident > span {
    color: #102a4c;
    font-weight: 900;
}

.company-punch-detail-note,
.company-punch-empty {
    padding: 12px;
    border-radius: 14px;
    background: #f4f8fd;
    color: #60748f;
    font-weight: 700;
}

@media (max-width: 1180px) {
    .company-punch-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .company-punch-period {
        grid-template-columns: 1fr;
    }

    .company-punch-period-tabs,
    .company-punch-period__nav,
    .company-punch-period__actions,
    .company-punch-totals-strip,
    .company-punch-period__totals {
        justify-content: flex-start;
    }

    .company-punch-filter-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .company-punch-kpis,
    .company-punch-detail-grid,
    .company-punch-filter-form {
        grid-template-columns: 1fr;
    }

    .company-punch-period__nav {
        flex-wrap: wrap;
    }

    .company-punch-period-tabs,
    .company-punch-period__actions {
        width: 100%;
    }

    .company-punch-period-tabs a {
        flex: 1 1 auto;
        width: 100%;
    }

    .company-punch-date-menu,
    .company-punch-date-menu summary,
    .company-punch-period__actions > .btn {
        flex: 1 1 auto;
    }

    .company-punch-date-popover {
        left: 0;
        right: auto;
        min-width: min(320px, calc(100vw - 48px));
    }

    .company-punch-period__nav strong {
        min-width: 0;
    }

    .company-punch-detail-section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .company-punch-detail-add {
        width: 100%;
    }
}
.centre-identity-avatar{overflow:hidden}
.centre-identity-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}
.centre-editor-address-grid{grid-template-columns:180px minmax(0,1fr) minmax(0,1fr)}
.centre-image-uploader{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;align-items:center;padding:18px;border:1px dashed #bdd6f0;border-radius:18px;background:linear-gradient(180deg,#f8fbff 0,#fff 100%);transition:border-color .15s,background .15s}
.centre-image-uploader.is-dragging{border-color:#0b67c8;background:#eef6ff}
.centre-image-preview{width:118px;height:118px;display:grid;place-items:center;overflow:hidden;color:#0b67c8;border:1px solid #cde1f5;border-radius:24px;background:#eef6ff;font-size:28px;font-weight:900}
.centre-image-preview img{width:100%;height:100%;display:block;object-fit:cover}
.centre-image-uploader__body{min-width:0;display:grid;gap:7px}
.centre-image-uploader__body strong{color:#102b49;font-size:16px}
.centre-image-uploader__body p,.centre-image-uploader__body small{margin:0;color:#677b92;font-size:12px;font-weight:750}
.centre-image-uploader__actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:3px}
.centre-image-uploader input[type=file]{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.centre-delete-actions{justify-content:space-between;margin-top:14px;border-color:#f2c2bd;background:#fff8f7}
.centre-delete-actions span{color:#8d3a35;font-size:12px;font-weight:850}
@media (max-width:760px){.centre-editor-address-grid{grid-template-columns:1fr}.centre-image-uploader{grid-template-columns:1fr}.centre-image-preview{width:100%;height:150px}.centre-delete-actions{align-items:stretch;flex-direction:column}.centre-delete-actions .btn{width:100%}}
/* Servicio de tareas automáticas */
.fn-jobs-service-state {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #d9e5f1;
    border-radius: 16px;
    display: flex;
    gap: 12px;
    min-width: 260px;
    padding: 13px 16px;
}

.fn-jobs-service-state strong,
.fn-jobs-service-state small {
    display: block;
}

.fn-jobs-service-state small {
    color: #6b7f96;
    margin-top: 3px;
}

.fn-jobs-state-dot {
    background: #d64b45;
    border-radius: 50%;
    box-shadow: 0 0 0 6px rgba(214, 75, 69, .11);
    height: 10px;
    width: 10px;
}

.fn-jobs-service-state.is-online .fn-jobs-state-dot {
    background: #16a36f;
    box-shadow: 0 0 0 6px rgba(22, 163, 111, .12);
}

.fn-jobs-service-error {
    align-items: flex-start;
    background: #fff4f2;
    border: 1px solid #efb4ae;
    border-radius: 16px;
    color: #8d302b;
    display: flex;
    gap: 12px;
    margin: 18px 0;
    padding: 14px 16px;
}

.fn-jobs-service-error > span {
    align-items: center;
    background: #d94e47;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 26px;
    font-weight: 900;
    height: 26px;
    justify-content: center;
}

.fn-jobs-service-error p {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
}

.fn-jobs-mode {
    align-items: center;
    background: #fff7e9;
    border: 1px solid #f1c77c;
    border-radius: 18px;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin: 18px 0;
    padding: 20px 22px;
}

.fn-jobs-mode.is-production {
    background: #eefaf5;
    border-color: #9fdfc5;
}

.fn-jobs-mode h2 {
    margin: 5px 0 4px;
}

.fn-jobs-mode p {
    color: #5f7289;
    margin: 0;
    max-width: 820px;
}

.fn-jobs-mode-form,
.fn-jobs-task-form {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.fn-jobs-mode-form label,
.fn-jobs-task-form label {
    color: #60738a;
    display: grid;
    font-size: 12px;
    font-weight: 800;
    gap: 5px;
}

.fn-jobs-mode-form select,
.fn-jobs-task-form select,
.fn-jobs-task-form input[type="time"],
.fn-jobs-task-form input[type="number"] {
    background: #fff;
    border: 1px solid #c9dced;
    border-radius: 10px;
    color: #17304f;
    min-height: 40px;
    padding: 8px 10px;
}

.fn-toggle-line {
    align-items: center !important;
    display: flex !important;
    flex-direction: row;
    min-height: 40px;
}

.fn-toggle-line input[type="checkbox"] {
    height: 18px;
    width: 18px;
}

.fn-jobs-catalog {
    display: grid;
    gap: 22px;
    margin: 18px 0;
}

.fn-jobs-category {
    min-width: 0;
}

.fn-jobs-category-header {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 0 4px;
}

.fn-jobs-category-icon {
    align-items: center;
    background: #e7f2ff;
    border: 1px solid #cae0f4;
    border-radius: 12px;
    color: #0d67bf;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.fn-jobs-category[data-job-category="people"] .fn-jobs-category-icon {
    background: #ecf8f3;
    border-color: #c8eadb;
    color: #16825b;
}

.fn-jobs-category[data-job-category="expenses"] .fn-jobs-category-icon {
    background: #fff6e8;
    border-color: #f3dcb8;
    color: #b86b13;
}

.fn-jobs-category[data-job-category="system"] .fn-jobs-category-icon {
    background: #f2efff;
    border-color: #ddd5fa;
    color: #6751bc;
}

.fn-jobs-category-header h2 {
    color: #17304f;
    font-size: 17px;
    margin: 2px 0 0;
}

.fn-jobs-category-header p {
    color: #687d94;
    font-size: 11px;
    margin: 3px 0 0;
}

.fn-jobs-category-count {
    background: #f5f8fb;
    border: 1px solid #dbe6ef;
    border-radius: 999px;
    color: #61778e;
    font-size: 10px;
    font-weight: 900;
    padding: 6px 10px;
    white-space: nowrap;
}

.fn-jobs-task-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 10px 0 0;
}

.fn-jobs-task {
    overflow: hidden;
    padding: 0;
    min-width: 0;
}

.fn-jobs-task[open] {
    border-color: #afd0ef;
    box-shadow: 0 14px 32px rgba(24, 67, 108, .09);
}

.fn-jobs-task-summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
    min-height: 92px;
    padding: 16px 18px;
    transition: background-color .18s ease;
}

.fn-jobs-task-summary::-webkit-details-marker {
    display: none;
}

.fn-jobs-task-summary:hover {
    background: #f8fbff;
}

.fn-jobs-task[open] > .fn-jobs-task-summary {
    background: #f5f9fe;
    border-bottom: 1px solid #dce8f3;
}

.fn-jobs-task-title,
.fn-jobs-task-title > span,
.fn-jobs-task-title > strong {
    display: block;
}

.fn-jobs-task-title > strong {
    color: #132f4f;
    font-size: 17px;
    margin-top: 5px;
}

.fn-jobs-task-summary-description {
    color: #687d94;
    font-size: 11px;
    line-height: 1.4;
    margin-top: 5px;
    max-width: 520px;
}

.fn-jobs-task-summary-meta {
    display: grid;
    gap: 10px;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: .7fr 1.15fr 1fr;
}

.fn-jobs-task-summary-meta > span {
    background: #f6f9fc;
    border: 1px solid #dce7f2;
    border-radius: 11px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 58px;
    min-width: 0;
    padding: 8px 11px;
}

.fn-jobs-task-summary-meta small {
    color: #73869b;
    display: block;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.fn-jobs-task-summary-meta strong {
    color: #17304f;
    display: block;
    font-size: 13px;
    font-weight: 800;
    margin-top: 4px;
    overflow-wrap: anywhere;
}

.fn-jobs-task-summary-meta em {
    color: #73869b;
    font-size: 10px;
    font-style: normal;
    margin-top: 3px;
}

.fn-jobs-task-toggle {
    align-items: center;
    color: #156ec9;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    gap: 9px;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    text-transform: uppercase;
}

.fn-jobs-task-toggle i {
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    display: block;
    height: 9px;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .18s ease;
    width: 9px;
}

.fn-jobs-task-toggle-close {
    display: none;
}

.fn-jobs-task[open] .fn-jobs-task-toggle-open {
    display: none;
}

.fn-jobs-task[open] .fn-jobs-task-toggle-close {
    display: inline;
}

.fn-jobs-task[open] .fn-jobs-task-toggle i {
    transform: rotate(225deg) translate(-2px, -2px);
}

.fn-jobs-task-body {
    display: grid;
    gap: 16px;
    padding: 16px 18px 18px;
}

.fn-jobs-section-heading {
    align-items: center;
    display: flex;
    gap: 10px;
    grid-column: 1 / 4;
}

.fn-jobs-section-heading > span {
    align-items: center;
    background: #e3f1ff;
    border-radius: 9px;
    color: #116bc4;
    display: inline-flex;
    flex: 0 0 32px;
    font-size: 10px;
    font-weight: 900;
    height: 32px;
    justify-content: center;
}

.fn-jobs-section-heading strong {
    color: #17304f;
    display: block;
    font-size: 13px;
}

.fn-jobs-section-heading p {
    color: #62778e;
    font-size: 11px;
    margin: 2px 0 0;
}

.fn-jobs-task-form {
    border-top: 1px solid #e1ebf4;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(145px, 1.15fr) minmax(105px, .75fr) minmax(125px, .85fr) minmax(115px, .8fr);
    padding-top: 14px;
}

.fn-jobs-task-form > input[type="hidden"] {
    display: none;
}

.fn-jobs-setting-active {
    align-self: center;
    gap: 9px !important;
    grid-column: 4;
    justify-self: end;
    min-height: auto;
    padding: 5px 0;
}

.fn-jobs-setting-active strong,
.fn-jobs-setting-active small {
    display: block;
}

.fn-jobs-setting-active strong {
    color: #17304f;
    font-size: 12px;
}

.fn-jobs-save-row {
    grid-column: 1 / -1;
}

.fn-jobs-setting-help {
    color: #6f8298;
    font-size: 10px;
    font-weight: 700;
    grid-column: 1 / -1;
    margin-top: -5px;
}

.fn-jobs-save-row {
    align-items: center;
    border-top: 1px solid #e7eef5;
    display: flex;
    justify-content: flex-end;
    padding-top: 12px;
}

.fn-jobs-task-execution {
    align-items: center;
    background: #f5f9fd;
    border: 1px solid #d8e5f1;
    border-radius: 12px;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 12px 13px;
}

.fn-jobs-task-execution-copy strong,
.fn-jobs-task-execution-copy p {
    display: block;
}

.fn-jobs-task-execution-copy strong {
    color: #17304f;
    font-size: 12px;
    margin-top: 3px;
}

.fn-jobs-task-execution-copy p {
    color: #6c8097;
    font-size: 10px;
    margin: 2px 0 0;
}

.fn-jobs-run-form {
    margin: 0;
    text-align: right;
}

.fn-jobs-test-run {
    align-items: center;
    background: #f4f8fd;
    border: 1px solid #d5e4f2;
    border-radius: 12px;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-top: 12px;
    padding: 10px 12px;
}

.fn-jobs-test-run strong,
.fn-jobs-test-run span {
    display: block;
}

.fn-jobs-test-run strong {
    color: #17304f;
    font-size: 12px;
}

.fn-jobs-test-run span {
    color: #6f8298;
    font-size: 10px;
    margin-top: 2px;
}

.fn-jobs-test-run form {
    flex: 0 0 auto;
    margin: 0;
}

.fn-jobs-list-card > header {
    align-items: center;
}

.fn-jobs-list-total {
    background: #eef6ff;
    border: 1px solid #cee2f5;
    border-radius: 999px;
    color: #0d64ba;
    font-size: 11px;
    font-weight: 900;
    padding: 7px 11px;
    white-space: nowrap;
}

.fn-jobs-list-toolbar {
    align-items: end;
    background: #f7fafd;
    border: 1px solid #dce7f1;
    border-radius: 14px;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(240px, 2fr) minmax(210px, 1.25fr) minmax(145px, .8fr) auto;
    margin: 14px 0;
    padding: 12px;
}

.fn-jobs-list-toolbar label,
.fn-jobs-modal-form label {
    color: #657a91;
    display: grid;
    font-size: 10px;
    font-weight: 900;
    gap: 5px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fn-jobs-list-toolbar input,
.fn-jobs-list-toolbar select,
.fn-jobs-modal-form input[type="time"],
.fn-jobs-modal-form input[type="number"],
.fn-jobs-modal-form select {
    background: #fff;
    border: 1px solid #c9dced;
    border-radius: 10px;
    box-sizing: border-box;
    color: #17304f;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    min-height: 42px;
    padding: 8px 11px;
    text-transform: none;
    width: 100%;
}

.fn-jobs-table {
    min-width: 1040px;
}

.fn-jobs-table th button {
    align-items: center;
    background: none;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 900;
    gap: 5px;
    padding: 0;
    text-align: left;
    text-transform: uppercase;
}

.fn-jobs-table th[aria-sort="ascending"] button,
.fn-jobs-table th[aria-sort="descending"] button {
    color: #086bc9;
}

.fn-jobs-table tbody tr[data-job-row]:hover {
    background: #f7fbff;
}

.fn-jobs-table tbody tr[data-job-row][hidden],
.fn-jobs-table tbody tr[data-job-empty][hidden] {
    display: none !important;
}

.fn-jobs-table td {
    vertical-align: middle;
}

.fn-jobs-table th:nth-child(1) { width: 18%; }
.fn-jobs-table th:nth-child(2) { width: 13%; }
.fn-jobs-table th:nth-child(3) { width: 8%; }
.fn-jobs-table th:nth-child(4) { width: 15%; }
.fn-jobs-table th:nth-child(5),
.fn-jobs-table th:nth-child(6) { width: 13%; }
.fn-jobs-table th:nth-child(7) { width: 10%; }
.fn-jobs-table th:nth-child(8) { width: 7%; }

.fn-jobs-table td:first-child > strong {
    line-height: 1.3;
    white-space: normal;
}

.fn-jobs-table td:first-child .fn-table-subline {
    display: -webkit-box;
    line-height: 1.35;
    overflow: hidden;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.fn-jobs-table th:last-child,
.fn-jobs-table td:last-child {
    background: #fff;
    box-shadow: -10px 0 18px -16px rgba(20, 52, 84, .8);
    position: sticky;
    right: 0;
    z-index: 2;
}

.fn-jobs-table th:last-child {
    background: #f5f8fc;
    z-index: 3;
}

.fn-jobs-table tbody tr[data-job-row]:hover td:last-child {
    background: #f7fbff;
}

.fn-jobs-code {
    background: #f1f5f9;
    border-radius: 6px;
    color: #64778d;
    display: inline-block;
    font-size: 9px;
    margin-top: 5px;
    padding: 3px 5px;
}

.fn-jobs-category-pill {
    align-items: center;
    color: #49657f;
    display: inline-flex;
    font-size: 10px;
    font-weight: 800;
    gap: 6px;
    line-height: 1.25;
}

.fn-jobs-category-pill b {
    align-items: center;
    background: #e7f2ff;
    border-radius: 7px;
    color: #0d67bf;
    display: inline-flex;
    flex: 0 0 27px;
    font-size: 9px;
    height: 27px;
    justify-content: center;
}

.fn-jobs-category-pill--people b { background: #e6f7ef; color: #16825b; }
.fn-jobs-category-pill--expenses b { background: #fff2de; color: #b86b13; }
.fn-jobs-category-pill--system b { background: #eeeaff; color: #6751bc; }
.fn-jobs-category-pill--other b { background: #eef1f5; color: #64748b; }

.fn-jobs-edit-button {
    min-height: 36px;
    padding: 0 12px;
}

.fn-jobs-editor-modal {
    width: min(840px, calc(100vw - 32px));
}

.fn-jobs-modal-summary {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fn-jobs-modal-summary > span {
    background: #f6f9fc;
    border: 1px solid #dce7f2;
    border-radius: 12px;
    min-width: 0;
    padding: 10px 12px;
}

.fn-jobs-modal-summary small,
.fn-jobs-modal-summary strong {
    display: block;
}

.fn-jobs-modal-summary small {
    color: #71849a;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.fn-jobs-modal-summary strong {
    color: #17304f;
    font-size: 12px;
    margin-top: 4px;
    overflow-wrap: anywhere;
}

.fn-jobs-modal-form {
    border: 1px solid #dce7f2;
    border-radius: 14px;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 14px;
}

.fn-jobs-modal-form > input[type="hidden"] {
    display: none;
}

.fn-jobs-modal-form label small {
    color: #77899e;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
}

.fn-jobs-modal-active {
    background: #eff9f5;
    border: 1px solid #cbe9dc;
    border-radius: 11px;
    grid-column: 1 / -1;
    justify-self: end;
    min-height: 40px;
    padding: 7px 10px;
}

.fn-jobs-modal-active strong,
.fn-jobs-modal-active small {
    display: block;
}

.fn-jobs-modal-active strong {
    color: #156647;
    font-size: 11px;
}

.fn-jobs-modal-manual {
    align-items: center;
    background: #f5f9fd;
    border: 1px solid #d8e5f1;
    border-radius: 13px;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 12px 14px;
}

.fn-jobs-modal-manual strong {
    color: #17304f;
    display: block;
    font-size: 12px;
    margin-top: 3px;
}

.fn-jobs-modal-manual p {
    color: #6c8097;
    font-size: 10px;
    margin: 2px 0 0;
}

.fn-jobs-modal-manual form {
    flex: 0 0 auto;
    margin: 0;
}

@media (max-width: 900px) {
    .fn-jobs-list-toolbar {
        grid-template-columns: 1fr 1fr;
    }

    .fn-jobs-modal-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 620px) {
    .fn-jobs-list-toolbar,
    .fn-jobs-modal-summary,
    .fn-jobs-modal-form {
        grid-template-columns: 1fr;
    }

    .fn-jobs-modal-active {
        grid-column: 1;
        justify-self: stretch;
    }

    .fn-jobs-modal-manual {
        align-items: stretch;
        flex-direction: column;
    }

    .fn-jobs-modal-manual .btn {
        width: 100%;
    }
}

.fn-table-subline {
    color: #7a8da2;
    display: block;
    font-size: 11px;
    margin-top: 2px;
}

.fn-jobs-detail {
    max-width: 320px;
    white-space: normal;
}

.fn-jobs-help {
    margin-top: 18px;
}

.fn-jobs-help-steps {
    display: grid;
    gap: 14px;
    margin: 18px 0;
    padding-left: 24px;
}

.fn-jobs-help-steps p {
    color: #60738a;
    margin: 4px 0;
}

.fn-jobs-help pre {
    background: #102a47;
    border-radius: 12px;
    color: #eaf4ff;
    margin: 8px 0;
    overflow-x: auto;
    padding: 14px 16px;
    white-space: pre-wrap;
}

@media (max-width: 1280px) {
    .fn-jobs-task-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fn-jobs-mode {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 860px) {
    .fn-jobs-task-summary { gap: 12px; }

    .fn-jobs-task-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fn-jobs-section-heading {
        grid-column: 1;
    }

    .fn-jobs-setting-active {
        grid-column: 2;
    }
}

@media (max-width: 760px) {
    .fn-jobs-category-header {
        align-items: start;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .fn-jobs-category-count {
        grid-column: 2;
        justify-self: start;
    }

    .fn-jobs-task-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .fn-jobs-task-summary-meta {
        grid-template-columns: 1fr;
    }

    .fn-jobs-task-execution,
    .fn-jobs-test-run {
        align-items: stretch;
        flex-direction: column;
    }

    .fn-jobs-task-execution form,
    .fn-jobs-task-execution .btn,
    .fn-jobs-test-run form,
    .fn-jobs-test-run .btn {
        width: 100%;
    }

    .fn-jobs-task-form {
        grid-template-columns: 1fr;
    }

    .fn-jobs-section-heading,
    .fn-jobs-setting-active {
        grid-column: 1;
    }

    .fn-jobs-setting-active {
        justify-self: start;
    }
}
.monthly-reports-area{display:grid;gap:18px}
.monthly-reports-area .management-breadcrumbs{margin-bottom:-2px}
.monthly-reports-header{min-height:142px}
.monthly-report-kpis{
    display:grid;
    grid-template-columns:1.15fr .8fr 1fr 1fr 1fr;
    gap:12px;
}
.monthly-report-kpis article{
    min-width:0;
    padding:18px 20px;
    display:grid;
    gap:6px;
    border:1px solid #d7e3ef;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(22,53,87,.06);
}
.monthly-report-kpis span,
.monthly-report-list .panel-kicker,
.monthly-report-period label,
.monthly-report-filters label{
    color:#667a92;
    font-size:11px;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.monthly-report-kpis strong{color:#142d4c;font-size:22px;line-height:1.15}
.monthly-report-kpis small{color:#70839a;font-size:12px}
.monthly-report-kpis .is-negative strong,.monthly-report-table .is-negative{color:#c7433d}
.monthly-report-kpis .is-positive strong,.monthly-report-table .is-positive{color:#14805b}
.monthly-report-period,
.monthly-report-filter-panel,
.monthly-report-list{
    border:1px solid #d7e3ef;
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 34px rgba(22,53,87,.055);
}
.monthly-report-period{
    min-height:82px;
    padding:12px 14px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:24px;
}
.monthly-report-period__navigation,
.monthly-report-period__picker{
    display:flex;
    align-items:center;
    gap:7px;
}
.monthly-report-period__navigation{
    width:max-content;
    max-width:100%;
    padding:5px;
    border:1px solid #d9e5f0;
    border-radius:14px;
    background:#f6faff;
}
.monthly-report-period__navigation>div{min-width:176px;text-align:center}
.monthly-report-period__summary{
    min-height:42px;
    padding:5px 18px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid #dee8f2;
    border-left:1px solid #dee8f2;
}
.monthly-report-period__summary span{display:block;color:#71849a;font-size:11px}
.monthly-report-period__summary strong{display:block;margin-top:2px;color:#17304f;font-size:15px}
.monthly-report-period .btn{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.monthly-report-period .btn-icon{width:42px;min-width:42px;padding-inline:0;text-align:center}
.monthly-report-period .is-disabled{opacity:.42;cursor:not-allowed}
.monthly-report-period label,.monthly-report-filters label{display:grid;gap:5px}
.monthly-report-period__picker{
    padding:8px;
    display:grid;
    align-items:end;
    border:1px solid #d9e5f0;
    border-radius:14px;
    background:#f8fbfe;
}
.monthly-report-period__picker--month{
    grid-template-columns:112px 82px auto;
}
.monthly-report-period__picker--year{
    grid-template-columns:92px auto;
}
.monthly-report-period select,
.monthly-report-filters select,
.monthly-report-filters input{
    height:42px;
    padding:0 13px;
    color:#18314f;
    border:1px solid #cfdeed;
    border-radius:10px;
    background:#fbfdff;
    font:700 13px/1 inherit;
    box-sizing:border-box;
}
.monthly-report-filter-panel{padding:14px 16px}
.monthly-report-filters{
    display:grid;
    grid-template-columns:minmax(320px,1fr) minmax(190px,.32fr) 150px 120px auto auto;
    align-items:end;
    gap:10px;
}
.monthly-report-list{overflow:hidden}
.monthly-report-list>header{
    padding:20px 22px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    border-bottom:1px solid #dce6f0;
    background:linear-gradient(135deg,#fff 0%,#f7fbff 100%);
}
.monthly-report-list h2{margin:4px 0;color:#142d4c;font-size:22px}
.monthly-report-list p{margin:0;color:#6d8199;font-size:13px}
.monthly-report-legal-note{
    max-width:390px;
    padding:9px 12px;
    color:#365b7f;
    border-radius:10px;
    background:#eaf5ff;
    font-size:12px;
    font-weight:700;
}
.monthly-report-table-wrap{overflow-x:auto}
.monthly-report-table{width:100%;border-collapse:collapse}
.monthly-report-table th{
    padding:13px 15px;
    color:#647991;
    background:#f3f7fb;
    font-size:11px;
    font-weight:900;
    letter-spacing:.045em;
    text-align:left;
    text-transform:uppercase;
    white-space:nowrap;
}
.monthly-report-table th a{color:inherit;text-decoration:none}
.monthly-report-table td{
    padding:14px 15px;
    color:#405975;
    border-top:1px solid #e0e8f1;
    font-size:13px;
    vertical-align:middle;
    white-space:nowrap;
}
.monthly-report-table td:first-child{min-width:220px;white-space:normal}
.monthly-report-table td strong{display:block;color:#18314f;font-size:14px}
.monthly-report-table td small{display:block;margin-top:3px;color:#8192a5}
.monthly-report-status{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
}
.monthly-report-status.is-provisional{color:#a35a05;background:#fff0d7}
.monthly-report-status.is-definitive{color:#147253;background:#def5e9}
.monthly-report-actions{text-align:right;min-width:280px}
.monthly-report-actions__inner{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.monthly-report-bulk-form,.monthly-report-regenerate-form{display:inline-flex;margin:0}
.monthly-report-actions .btn{white-space:nowrap}
.monthly-report-empty{height:120px;text-align:center;color:#72859b!important}
.monthly-report-pagination{
    padding:15px 20px;
    display:flex;
    justify-content:flex-end;
    gap:7px;
    border-top:1px solid #dce6f0;
}
.monthly-report-pagination a{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    color:#1768b8;
    border:1px solid #cbddec;
    border-radius:9px;
    background:#fff;
    font-weight:900;
    text-decoration:none;
}
.monthly-report-pagination a.is-active{color:#fff;border-color:#0e6bc7;background:#0e6bc7}
@media (max-width:1180px){
    .monthly-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
    .monthly-report-filters{grid-template-columns:minmax(260px,1fr) repeat(3,minmax(140px,.35fr));}
    .monthly-report-filters .btn{grid-row:2}
}
@media (max-width:820px){
    .monthly-reports-header,.monthly-report-list>header{align-items:stretch;flex-direction:column}
    .monthly-report-period{grid-template-columns:1fr;gap:10px}
    .monthly-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .monthly-report-period__navigation{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) 42px auto}
    .monthly-report-period__navigation>div{min-width:0}
    .monthly-report-period__picker{width:100%;display:grid;box-sizing:border-box}
    .monthly-report-period__picker--month{grid-template-columns:minmax(0,1fr) 92px auto}
    .monthly-report-period__picker--year{grid-template-columns:minmax(0,1fr) auto}
    .monthly-report-filters{grid-template-columns:1fr 1fr}
    .monthly-report-search{grid-column:1/-1}
    .monthly-report-filters .btn{grid-row:auto}
    .monthly-report-legal-note{max-width:none}
    .monthly-report-table thead{display:none}
    .monthly-report-table,.monthly-report-table tbody,.monthly-report-table tr,.monthly-report-table td{display:block}
    .monthly-report-table tr{padding:14px;border-top:1px solid #e0e8f1}
    .monthly-report-table td{padding:6px 0;border:0;white-space:normal}
    .monthly-report-table td:before{content:attr(data-label);min-width:100px;margin-right:12px;display:inline-block;color:#72859b;font-size:10px;font-weight:900;text-transform:uppercase}
    .monthly-report-table td:first-child{min-width:0}
    .monthly-report-actions{text-align:left;min-width:0}
    .monthly-report-actions__inner{justify-content:flex-start}
}
@media (max-width:560px){
    .monthly-report-kpis,.monthly-report-filters{grid-template-columns:1fr}
    .monthly-report-search{grid-column:auto}
    .monthly-report-period__navigation{grid-template-columns:42px minmax(0,1fr) 42px}
    .monthly-report-period__navigation>.btn:not(.btn-icon){grid-column:1/-1;width:100%}
    .monthly-report-period__picker--month{grid-template-columns:minmax(0,1fr) 86px}
    .monthly-report-period__picker--year{grid-template-columns:1fr}
    .monthly-report-period__picker .btn{grid-column:1/-1;width:100%}
    .monthly-report-bulk-form{flex:1 1 100%}
    .monthly-report-bulk-form .btn{width:100%}
}

/* Administración global del chatbot */
.fn-chat-admin-page{gap:16px}
.fn-chat-admin-hero{
    min-height:118px;
    background:
        radial-gradient(circle at 88% 18%,rgba(30,173,139,.15),transparent 28%),
        linear-gradient(135deg,#fff 0%,#eef7ff 100%);
}
.fn-chat-admin-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.fn-chat-admin-kpi{position:relative;min-height:108px;padding:17px 15px 15px 62px;overflow:hidden}
.fn-chat-admin-kpi>i{
    width:34px;
    height:34px;
    position:absolute;
    left:15px;
    top:17px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border:1px solid #cfe1f3;
    border-radius:11px;
    background:#eaf4ff;
    font-size:10px;
    font-style:normal;
    font-weight:950;
    letter-spacing:.03em;
}
.fn-chat-admin-kpi>strong{font-size:25px}
.fn-chat-admin-kpi.is-success>i{color:#08765a;border-color:#bee9d7;background:#e9f8f1}
.fn-chat-admin-kpi.is-success>strong{color:#08765a}
.fn-chat-admin-kpi.is-lead>i{color:#6f46d9;border-color:#d8ccff;background:#f1ecff}
.fn-chat-admin-kpi.is-lead>strong{color:#5b3ab8}
.fn-chat-admin-kpi.is-cost>i{color:#08765a;border-color:#bee9d7;background:#e9f8f1}
.fn-chat-admin-kpi.is-cost>strong{color:#08765a;font-size:22px}
.fn-chat-admin-kpi.is-warning{border-color:#f4c789;background:#fff8ef}
.fn-chat-admin-kpi.is-warning>i{color:#b75b12;border-color:#f0c78d;background:#fff0da}
.fn-chat-admin-kpi.is-warning>strong{color:#b75b12}
.fn-chat-admin-filter-card{padding:16px}
.fn-chat-admin-filter{
    display:grid;
    grid-template-columns:minmax(280px,1.45fr) repeat(4,minmax(130px,.55fr)) auto;
    align-items:end;
    gap:11px;
}
.fn-chat-admin-filter label,
.fn-chat-admin-settings-form label{
    min-width:0;
    display:grid;
    gap:6px;
    color:#6d8097;
    font-size:10px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.fn-chat-admin-filter input,
.fn-chat-admin-filter select,
.fn-chat-admin-settings-form input:not([type="checkbox"]),
.fn-chat-admin-settings-form textarea{
    width:100%;
    min-height:44px;
    padding:0 13px;
    color:#122844;
    border:1px solid #cbdced;
    border-radius:11px;
    background:#fbfdff;
    box-sizing:border-box;
    font:inherit;
    font-size:14px;
    font-weight:750;
}
.fn-chat-admin-settings-form textarea{min-height:88px;padding:11px 13px;line-height:1.45;resize:vertical}
.fn-chat-admin-filter input:focus,
.fn-chat-admin-filter select:focus,
.fn-chat-admin-settings-form input:not([type="checkbox"]):focus,
.fn-chat-admin-settings-form textarea:focus{
    outline:3px solid rgba(11,103,200,.15);
    border-color:#0b67c8;
    background:#fff;
}
.fn-chat-admin-filter__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
.fn-chat-admin-card-heading{margin-bottom:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.fn-chat-admin-card-heading p{margin-top:6px}
.fn-chat-admin-count{
    padding:8px 12px;
    display:inline-flex;
    align-items:center;
    color:#0b67c8;
    border:1px solid #d3e6f8;
    border-radius:999px;
    background:#eff7ff;
    font-size:12px;
    font-weight:950;
    white-space:nowrap;
}
.fn-chat-admin-list-card{padding:20px}
.fn-chat-admin-table-wrap{border-radius:15px}
.fn-chat-admin-table{min-width:1000px;table-layout:fixed}
.fn-chat-admin-table th:nth-child(1){width:82px}
.fn-chat-admin-table th:nth-child(2){width:178px}
.fn-chat-admin-table th:nth-child(3){width:88px}
.fn-chat-admin-table th:nth-child(4){width:142px}
.fn-chat-admin-table th:nth-child(5){width:116px}
.fn-chat-admin-table th:nth-child(6){width:68px;text-align:right}
.fn-chat-admin-table th:nth-child(7){width:98px;text-align:right}
.fn-chat-admin-table th:nth-child(8){width:108px}
.fn-chat-admin-table th:nth-child(9){width:52px}
.fn-chat-admin-page .fn-chat-admin-table td{padding:13px 14px;overflow:visible;text-overflow:clip}
.fn-chat-admin-table td:nth-child(6),
.fn-chat-admin-table td:nth-child(7){text-align:right}
.fn-chat-admin-table tbody tr:hover{background:#f8fbff}
.fn-chat-admin-date strong{font-variant-numeric:tabular-nums}
.fn-chat-admin-client{min-width:0;display:flex;align-items:center;gap:10px}
.fn-chat-admin-client>span:last-child{min-width:0}
.fn-chat-admin-avatar{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    flex:0 0 36px;
    color:#0b67c8;
    border:1px solid #cae0f4;
    border-radius:11px;
    background:#eaf4ff;
    font-size:10px;
    font-weight:950;
}
.fn-chat-admin-channel{
    padding:6px 8px;
    display:inline-flex;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}
.fn-chat-admin-channel.is-public{color:#6a42c8;background:#f0ebff}
.fn-chat-admin-channel.is-company{color:#0c65b9;background:#e8f3ff}
.fn-chat-admin-channel.is-worker{color:#08765a;background:#e4f7ef}
.fn-chat-admin-channel.is-neutral{color:#65778a;background:#edf2f6}
.fn-chat-admin-intent strong{white-space:normal;line-height:1.25}
.fn-chat-admin-number strong,.fn-chat-admin-cost strong{font-variant-numeric:tabular-nums}
.fn-chat-admin-page .status-pill{
    padding:6px 8px;
    align-items:center;
    font-size:10px;
    line-height:1.15;
    white-space:normal;
}
.fn-chat-admin-action-cell{text-align:right}
.fn-chat-admin-view-link{
    min-width:48px;
    height:34px;
    padding:0 9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    color:#0b67c8;
    border:1px solid #c8dff2;
    border-radius:9px;
    background:#f4f9ff;
    font-size:11px;
    font-weight:950;
    text-decoration:none;
}
.fn-chat-admin-view-link b{font-size:18px;line-height:1}
.fn-chat-admin-view-link:hover{color:#fff;border-color:#0b67c8;background:#0b67c8}
.fn-chat-admin-empty-row:hover{background:#fff!important}
.fn-chat-admin-empty-row td{padding:28px!important}
.fn-chat-admin-empty{min-height:150px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center}
.fn-chat-admin-empty>span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border-radius:13px;
    background:#eaf4ff;
    font-size:20px;
    font-weight:950;
}
.fn-chat-admin-empty strong{font-size:15px!important}
.fn-chat-admin-empty small{margin:0!important}
.fn-chat-admin-pagination{margin-top:12px}
.fn-chat-admin-section-nav{
    padding:0 10px;
    display:flex;
    align-items:flex-end;
    gap:4px;
    overflow-x:auto;
    overflow-y:hidden;
    border-bottom:1px solid #cbdced;
    scrollbar-width:thin;
}
.fn-chat-admin-section-nav a{
    min-width:190px;
    margin-bottom:-1px;
    padding:12px 16px 11px;
    display:grid;
    grid-template-columns:32px minmax(0,1fr);
    align-items:center;
    gap:10px;
    color:#5a7087;
    border:1px solid transparent;
    border-bottom-color:#cbdced;
    border-radius:13px 13px 0 0;
    background:transparent;
    text-decoration:none;
    transition:color .16s ease,background .16s ease,border-color .16s ease;
}
.fn-chat-admin-section-nav a:hover{color:#0b67c8;background:#f4f9fe}
.fn-chat-admin-section-nav a.is-active{
    position:relative;
    z-index:1;
    color:#0b67c8;
    border-color:#cbdced;
    border-bottom-color:#fff;
    background:#fff;
    box-shadow:0 -5px 16px rgba(19,62,103,.045);
}
.fn-chat-admin-section-nav a.is-active::after{
    content:"";
    height:3px;
    position:absolute;
    left:14px;
    right:14px;
    top:0;
    border-radius:0 0 4px 4px;
    background:#0b67c8;
}
.fn-chat-admin-section-nav i{
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    color:#607991;
    border-radius:9px;
    background:#e8eff6;
    font-size:10px;
    font-style:normal;
    font-weight:950;
}
.fn-chat-admin-section-nav a.is-active i{color:#fff;background:#0b67c8}
.fn-chat-admin-section-nav strong,.fn-chat-admin-section-nav small{display:block}
.fn-chat-admin-section-nav strong{font-size:12px;white-space:nowrap}
.fn-chat-admin-section-nav small{margin-top:2px;color:#72869b;font-size:10px}
.fn-chat-admin-tab-panel{min-width:0}
.fn-chat-admin-tab-panel[hidden]{display:none!important}
div.fn-chat-admin-tab-panel{display:grid;gap:16px}
.fn-chat-admin-knowledge{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:16px;
}
.fn-chat-admin-knowledge__icon{
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border:1px solid #cfe1f3;
    border-radius:15px;
    background:#eaf4ff;
    font-size:12px;
    font-weight:950;
}
.fn-chat-admin-knowledge__icon.is-ready{color:#08765a;border-color:#bee9d7;background:#e9f8f1}
.fn-chat-admin-knowledge__icon.is-error{color:#a23c35;border-color:#f3c1bd;background:#ffe8e5}
.fn-chat-admin-knowledge h2{margin:3px 0 0}
.fn-chat-admin-document-list{margin-top:10px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.fn-chat-admin-document-list span{padding:5px 8px;color:#48637d;border:1px solid #dce7f2;border-radius:8px;background:#f7fafc;font-size:10px;font-weight:800}
.fn-chat-admin-knowledge-manager{padding:22px}
.fn-chat-admin-knowledge-metrics{
    margin-bottom:15px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}
.fn-chat-admin-knowledge-metrics>div{
    min-width:0;
    padding:13px 14px;
    display:grid;
    gap:3px;
    border:1px solid #dfe9f2;
    border-radius:13px;
    background:#f8fbfd;
}
.fn-chat-admin-knowledge-metrics span{color:#71869c;font-size:9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-chat-admin-knowledge-metrics strong{overflow:hidden;color:#14314d;font-size:18px;line-height:1.1;text-overflow:ellipsis}
.fn-chat-admin-knowledge-metrics small{color:#7b8ea1;font-size:10px}
.fn-chat-admin-knowledge-notice{
    margin-bottom:15px;
    padding:13px 15px;
    display:flex;
    align-items:flex-start;
    gap:11px;
    color:#31536f;
    border:1px solid #cfe3f5;
    border-radius:14px;
    background:#f2f8ff;
}
.fn-chat-admin-knowledge-notice>span{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    flex:0 0 24px;
    color:#fff;
    border-radius:50%;
    background:#0b67c8;
    font-size:12px;
    font-weight:950;
}
.fn-chat-admin-knowledge-notice strong{display:block;color:#163b5e;font-size:12px}
.fn-chat-admin-knowledge-notice p{margin:3px 0 0;font-size:11px;line-height:1.45}
.fn-chat-admin-knowledge-test{
    margin-bottom:15px;
    padding:17px;
    border:1px solid #d7e6f3;
    border-radius:16px;
    background:linear-gradient(135deg,#f9fcff,#eef7ff);
}
.fn-chat-admin-knowledge-test__heading h3{margin:3px 0 0;color:#17324d;font-size:16px}
.fn-chat-admin-knowledge-test__heading p{margin:4px 0 0;font-size:11px}
.fn-chat-admin-knowledge-test__form{
    margin-top:13px;
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(155px,.28fr) auto;
    align-items:end;
    gap:10px;
}
.fn-chat-admin-knowledge-test__form label,
.fn-chat-admin-knowledge-editor__form label{
    min-width:0;
    display:grid;
    gap:6px;
    color:#6d8097;
    font-size:10px;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.fn-chat-admin-knowledge-test__form input,
.fn-chat-admin-knowledge-test__form select,
.fn-chat-admin-knowledge-editor__form input:not([type="checkbox"]),
.fn-chat-admin-knowledge-editor__form select,
.fn-chat-admin-knowledge-editor__form textarea{
    width:100%;
    min-height:44px;
    padding:0 13px;
    color:#122844;
    border:1px solid #cbdced;
    border-radius:11px;
    background:#fff;
    box-sizing:border-box;
    font:inherit;
    font-size:14px;
    font-weight:700;
}
.fn-chat-admin-knowledge-test__form input:focus,
.fn-chat-admin-knowledge-test__form select:focus,
.fn-chat-admin-knowledge-editor__form input:not([type="checkbox"]):focus,
.fn-chat-admin-knowledge-editor__form select:focus,
.fn-chat-admin-knowledge-editor__form textarea:focus{outline:3px solid rgba(11,103,200,.15);border-color:#0b67c8}
.fn-chat-admin-knowledge-test__empty{margin-top:12px;padding:12px;display:grid;gap:3px;color:#6b7f93;border:1px dashed #c3d8ea;border-radius:12px;background:#fff;font-size:11px}
.fn-chat-admin-knowledge-test__empty strong{color:#244966;font-size:12px}
.fn-chat-admin-knowledge-results{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fn-chat-admin-knowledge-results article{min-width:0;padding:11px 12px;border:1px solid #dbe7f1;border-radius:12px;background:#fff}
.fn-chat-admin-knowledge-results article>div{display:flex;align-items:center;gap:7px}
.fn-chat-admin-knowledge-results article span{padding:3px 6px;color:#0b67c8;border-radius:6px;background:#eaf4ff;font-size:8px;font-weight:950}
.fn-chat-admin-knowledge-results article strong{overflow:hidden;color:#203f5b;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.fn-chat-admin-knowledge-results article p{margin:6px 0 0;color:#667d91;font-size:10px;line-height:1.45}
.fn-chat-admin-knowledge-documents{display:grid;gap:8px}
.fn-chat-admin-knowledge-document{
    overflow:hidden;
    border:1px solid #dbe6f0;
    border-radius:15px;
    background:#fff;
}
.fn-chat-admin-knowledge-document.is-customized{border-color:#9bc9e9;box-shadow:inset 3px 0 #0b67c8}
.fn-chat-admin-knowledge-document>summary{
    padding:13px 14px;
    display:grid;
    grid-template-columns:38px minmax(230px,1fr) minmax(180px,auto) auto 52px;
    align-items:center;
    gap:11px;
    cursor:pointer;
    list-style:none;
}
.fn-chat-admin-knowledge-document>summary::-webkit-details-marker{display:none}
.fn-chat-admin-knowledge-document[open]>summary{border-bottom:1px solid #dfe9f2;background:#f8fbfe}
.fn-chat-admin-knowledge-document__icon{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border-radius:11px;
    background:#eaf4ff;
    font-size:10px;
    font-weight:950;
}
.fn-chat-admin-knowledge-document__title{min-width:0}
.fn-chat-admin-knowledge-document__title strong,.fn-chat-admin-knowledge-document__title small{display:block}
.fn-chat-admin-knowledge-document__title strong{overflow:hidden;color:#18324d;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.fn-chat-admin-knowledge-document__title small{margin-top:3px;overflow:hidden;color:#7a8ea2;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.fn-chat-admin-knowledge-document__audiences{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px}
.fn-chat-admin-knowledge-document__audiences i{padding:4px 6px;color:#536e87;border-radius:999px;background:#edf3f8;font-size:8px;font-style:normal;font-weight:900}
.fn-chat-admin-knowledge-document__toggle{color:#0b67c8;font-size:10px}
.fn-chat-admin-knowledge-document[open] .fn-chat-admin-knowledge-document__toggle{font-size:0}
.fn-chat-admin-knowledge-document[open] .fn-chat-admin-knowledge-document__toggle::after{content:"Cerrar";font-size:10px}
.fn-chat-admin-knowledge-editor{padding:17px;background:#fbfdff}
.fn-chat-admin-knowledge-editor__form{display:grid;gap:15px}
.fn-chat-admin-knowledge-editor__fields{display:grid;grid-template-columns:minmax(240px,1fr) minmax(165px,.35fr) minmax(150px,.3fr);gap:10px}
.fn-chat-admin-knowledge-editor__form label>small{color:#7b8ea3;font-size:10px;font-weight:700;letter-spacing:0;line-height:1.35;text-transform:none}
.fn-chat-admin-knowledge-audiences{margin:0;padding:0;border:0}
.fn-chat-admin-knowledge-audiences legend{margin-bottom:7px;color:#6d8097;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.fn-chat-admin-knowledge-audiences{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.fn-chat-admin-knowledge-audiences legend{grid-column:1/-1}
.fn-chat-admin-knowledge-audiences label{
    min-height:54px;
    padding:9px 10px;
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid #dce7f1;
    border-radius:11px;
    background:#fff;
    cursor:pointer;
}
.fn-chat-admin-knowledge-audiences input{width:16px;height:16px;flex:0 0 16px;accent-color:#0b67c8}
.fn-chat-admin-knowledge-audiences strong,.fn-chat-admin-knowledge-audiences small{display:block;letter-spacing:0;text-transform:none}
.fn-chat-admin-knowledge-audiences strong{color:#294a66;font-size:11px}
.fn-chat-admin-knowledge-audiences small{margin-top:2px;color:#7a8da1;font-size:9px;font-weight:650}
.fn-chat-admin-knowledge-content textarea{min-height:320px!important;padding:13px!important;line-height:1.55;resize:vertical}
.fn-chat-admin-knowledge-editor__actions{
    padding-top:13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border-top:1px solid #e1e9f1;
}
.fn-chat-admin-knowledge-editor__actions>small{color:#71859a;font-size:10px}
.fn-chat-admin-knowledge-reset{
    margin-top:14px;
    padding:12px 13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border:1px solid #f1d0aa;
    border-radius:12px;
    background:#fff9f0;
}
.fn-chat-admin-knowledge-reset strong,.fn-chat-admin-knowledge-reset small{display:block}
.fn-chat-admin-knowledge-reset strong{color:#6e461b;font-size:11px}
.fn-chat-admin-knowledge-reset small{margin-top:2px;color:#8c714f;font-size:10px}
.fn-chat-admin-settings-card{padding:22px}
.fn-chat-admin-settings-form{display:grid;gap:18px}
.fn-chat-admin-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fn-chat-admin-settings-group{
    min-width:0;
    padding:17px;
    display:grid;
    align-content:start;
    gap:14px;
    border:1px solid #dce7f2;
    border-radius:16px;
    background:#f9fbfd;
}
.fn-chat-admin-settings-group--wide{grid-column:1/-1}
.fn-chat-admin-settings-title{display:flex;align-items:center;gap:10px}
.fn-chat-admin-settings-title>span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    color:#0b67c8;
    border-radius:10px;
    background:#eaf4ff;
    font-size:10px;
    font-weight:950;
}
.fn-chat-admin-settings-title strong{display:block;color:#18324d;font-size:14px}
.fn-chat-admin-settings-title small{display:block;margin-top:2px;color:#73869b;font-size:11px}
.fn-chat-admin-model-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.fn-chat-admin-model-costs>div{min-width:0;padding:9px 10px;border:1px solid #dce7f1;border-radius:10px;background:#fff}
.fn-chat-admin-model-costs span,.fn-chat-admin-model-costs strong,.fn-chat-admin-model-costs small{display:block}
.fn-chat-admin-model-costs span{color:#74889d;font-size:8px;font-weight:950;letter-spacing:.055em;text-transform:uppercase}
.fn-chat-admin-model-costs strong{margin-top:3px;overflow:hidden;color:#173b59;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.fn-chat-admin-model-costs small{margin-top:1px;color:#8394a5;font-size:8px}
.fn-chat-admin-pricing-link{padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#0b67c8;border:1px solid #cfe1f2;border-radius:10px;background:#eef7ff;font-size:10px;font-weight:900;text-decoration:none}
.fn-chat-admin-pricing-link:hover{border-color:#0b67c8;background:#e3f1ff}
.fn-chat-admin-pricing-link b{font-size:17px}
.fn-chat-admin-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fn-chat-admin-settings-form label>small{color:#7b8ea3;font-size:10px;font-weight:700;letter-spacing:0;line-height:1.35;text-transform:none}
.fn-chat-admin-switch{
    min-height:64px;
    padding:11px 13px;
    position:relative;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center;
    column-gap:11px!important;
    border:1px solid #d8e5f1;
    border-radius:13px;
    background:#fff;
    text-transform:none!important;
}
.fn-chat-admin-switch input{position:absolute;opacity:0;pointer-events:none}
.fn-chat-admin-switch>span{
    width:42px;
    height:24px;
    position:relative;
    grid-row:1/3;
    border-radius:999px;
    background:#aab8c7;
    transition:background .18s ease;
}
.fn-chat-admin-switch>span::after{
    content:"";
    width:18px;
    height:18px;
    position:absolute;
    left:3px;
    top:3px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 5px rgba(20,45,70,.25);
    transition:transform .18s ease;
}
.fn-chat-admin-switch input:checked+span{background:#168661}
.fn-chat-admin-switch input:checked+span::after{transform:translateX(18px)}
.fn-chat-admin-switch input:focus-visible+span{outline:3px solid rgba(11,103,200,.22)}
.fn-chat-admin-switch>strong{align-self:end;color:#18324d;font-size:13px;letter-spacing:0}
.fn-chat-admin-switch>small{align-self:start;margin:0!important}
.fn-chat-admin-settings-actions{
    padding-top:15px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border-top:1px solid #e1eaf2;
}
.fn-chat-admin-settings-actions>small{color:#71849a;font-size:11px}
.fn-chat-admin-key-actions{
    margin-top:16px;
    padding:14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    border:1px solid #f1d1ab;
    border-radius:14px;
    background:#fff9f0;
}
.fn-chat-admin-key-actions strong{display:block;color:#6f481e;font-size:13px}
.fn-chat-admin-key-actions small{display:block;margin-top:3px;color:#8b704f;font-size:11px}

/* Ficha de conversación */
.fn-chat-admin-detail-hero{min-height:108px}
.fn-chat-admin-hero-meta{margin-top:11px;display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.fn-chat-admin-hero-meta span{padding:6px 9px;color:#3b5874;border:1px solid #d5e3f0;border-radius:999px;background:rgba(255,255,255,.72);font-size:11px;font-weight:850}
.fn-chat-admin-detail-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.fn-chat-admin-detail-summary .fn-admin-kpi{min-height:100px;padding:16px}
.fn-chat-admin-detail-summary .fn-admin-kpi strong{overflow-wrap:anywhere;font-size:23px;line-height:1.08}
.fn-chat-admin-detail-summary .fn-chat-admin-kpi-cost strong{color:#08765a;font-size:21px}
.fn-chat-admin-audit-status{
    padding:18px 20px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:15px;
    color:#2d4c67;
    border:1px solid #d8e5f1;
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 30px rgba(19,48,80,.045);
}
.fn-chat-admin-audit-status__icon{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border-radius:14px;
    background:#eaf4ff;
    font-size:19px;
}
.fn-chat-admin-audit-status h2{margin:3px 0 0;color:#17314d;font-size:17px}
.fn-chat-admin-audit-status p{margin:4px 0 0;color:#61778e;font-size:12px;line-height:1.4}
.fn-chat-admin-audit-status small{margin-top:5px;display:block;color:#5f758c;font-size:10px;font-weight:850}
.fn-chat-admin-audit-status.is-sent{border-color:#c4e7d6;background:#f5fcf8}
.fn-chat-admin-audit-status.is-sent .fn-chat-admin-audit-status__icon{color:#08765a;background:#dff5e9}
.fn-chat-admin-audit-status.is-failed{border-color:#f1c5c0;background:#fff7f6}
.fn-chat-admin-audit-status.is-failed .fn-chat-admin-audit-status__icon{color:#a23c35;background:#ffe5e2}
.fn-chat-admin-audit-status.is-pending{border-color:#efd5a9;background:#fffaf1}
.fn-chat-admin-audit-status.is-pending .fn-chat-admin-audit-status__icon{color:#a95d09;background:#fff0d4}
.fn-chat-admin-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.8fr);gap:16px}
.fn-chat-admin-context-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.fn-chat-admin-context-grid>div{min-width:0;padding:11px 13px;border:1px solid #e2eaf2;border-radius:12px;background:#f8fbfd}
.fn-chat-admin-context-grid dt{color:#788ba0;font-size:9px;font-weight:950;letter-spacing:.065em;text-transform:uppercase}
.fn-chat-admin-context-grid dd{margin:5px 0 0;overflow-wrap:anywhere;color:#18324d;font-size:13px;font-weight:850;line-height:1.3}
.fn-chat-admin-timeline{margin:0;padding:0;display:grid;gap:0;list-style:none}
.fn-chat-admin-timeline li{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px}
.fn-chat-admin-timeline li:not(:last-child){padding-bottom:18px}
.fn-chat-admin-timeline li:not(:last-child)::before{content:"";width:2px;position:absolute;left:7px;top:13px;bottom:0;background:#dbe7f1}
.fn-chat-admin-timeline li>span{width:14px;height:14px;position:relative;z-index:1;border:3px solid #d4e7f8;border-radius:50%;background:#0b67c8;box-sizing:border-box}
.fn-chat-admin-timeline small{display:block;color:#74889e;font-size:9px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
.fn-chat-admin-timeline strong{margin-top:3px;display:block;color:#18324d;font-size:12px}
.fn-chat-admin-timeline p{margin-top:3px;overflow-wrap:anywhere;font-size:11px}
.fn-chat-admin-conversation-summary{margin-top:16px;padding:12px;border:1px solid #d9e8f6;border-radius:12px;background:#f1f8ff}
.fn-chat-admin-conversation-summary span,.fn-chat-admin-rating span{display:block;color:#6e8298;font-size:9px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
.fn-chat-admin-conversation-summary p{margin-top:5px;color:#2d4b67;font-size:12px}
.fn-chat-admin-rating{margin-top:10px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;border-radius:12px;background:#fff7e8}
.fn-chat-admin-rating strong{color:#9b620d;font-size:14px}
.fn-chat-admin-transcript-card{padding:22px}
.fn-chat-admin-page .fn-chat-admin-transcript{display:grid;gap:14px}
.fn-chat-admin-page .fn-chat-admin-message{
    max-width:82%;
    padding:0;
    display:grid;
    grid-template-columns:36px minmax(0,1fr);
    align-items:start;
    gap:9px;
    border:0;
    background:transparent;
}
.fn-chat-admin-page .fn-chat-admin-message--user{margin-left:auto;margin-right:0;grid-template-columns:minmax(0,1fr) 36px}
.fn-chat-admin-page .fn-chat-admin-message--user .fn-chat-admin-message__author{grid-column:2}
.fn-chat-admin-page .fn-chat-admin-message--user .fn-chat-admin-message__body{grid-column:1;grid-row:1}
.fn-chat-admin-message__author{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    color:#08765a;
    border:1px solid #bfe6d6;
    border-radius:11px;
    background:#e5f7ef;
    font-size:10px;
    font-weight:950;
}
.fn-chat-admin-message--user .fn-chat-admin-message__author{color:#0b67c8;border-color:#c8dff3;background:#eaf4ff}
.fn-chat-admin-message__body{
    min-width:0;
    padding:14px 15px;
    border:1px solid #dbe7ef;
    border-radius:5px 16px 16px 16px;
    background:#f6fbf8;
}
.fn-chat-admin-message--user .fn-chat-admin-message__body{border-radius:16px 5px 16px 16px;background:#f2f7fc}
.fn-chat-admin-page .fn-chat-admin-message header{
    margin:0 0 8px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    color:#71849a;
    font-size:10px;
}
.fn-chat-admin-page .fn-chat-admin-message header strong{color:#17324d;font-size:11px}
.fn-chat-admin-page .fn-chat-admin-message header time{margin-left:auto;font-variant-numeric:tabular-nums}
.fn-chat-admin-page .fn-chat-admin-message header span{padding:3px 6px;border-radius:999px;background:#e7eef5;font-size:8px;font-weight:900}
.fn-chat-admin-page .fn-chat-admin-message__body>p{margin:0;color:#294762;font-size:13px;line-height:1.58;white-space:pre-wrap}
.fn-chat-admin-message__links{margin-top:11px;padding-top:9px;border-top:1px solid #dce7ef}
.fn-chat-admin-message__links>span{display:block;color:#71849a;font-size:9px;font-weight:950;letter-spacing:.05em;text-transform:uppercase}
.fn-chat-admin-message__links>div{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.fn-chat-admin-message__links a{padding:6px 8px;color:#0b67c8;border:1px solid #cde0f2;border-radius:8px;background:#fff;font-size:10px;font-weight:900;text-decoration:none}
.fn-chat-admin-message__links a:hover{border-color:#0b67c8;background:#edf6ff}
.fn-chat-admin-message__sources{margin-top:9px;color:#667c92;font-size:10px}
.fn-chat-admin-message__sources summary{cursor:pointer;font-weight:850}
.fn-chat-admin-message__sources p{margin:5px 0 0!important;padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.8);font-size:10px!important}
.fn-chat-admin-message__error{margin-top:9px;padding:8px 9px;display:grid;gap:2px;color:#963645;border-radius:8px;background:#ffe8ec;font-size:10px}
.fn-chat-admin-transcript-empty{
    min-height:210px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:8px;
    color:#5f758c;
    border:1px dashed #cbdced;
    border-radius:16px;
    background:#f8fbfe;
    text-align:center;
}
.fn-chat-admin-transcript-empty>span{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    color:#0b67c8;
    border-radius:15px;
    background:#eaf4ff;
    font-size:25px;
    font-weight:950;
}
.fn-chat-admin-transcript-empty strong{color:#17324d;font-size:15px}
.fn-chat-admin-transcript-empty p{max-width:480px;margin:0!important;font-size:12px!important}

@media (max-width:1360px){
    .fn-chat-admin-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
    .fn-chat-admin-filter{grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(135px,.6fr))}
    .fn-chat-admin-filter__search{grid-column:span 1}
    .fn-chat-admin-filter__actions{grid-column:span 1}
}
@media (max-width:1080px){
    .fn-chat-admin-knowledge-editor__fields{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(145px,.45fr))}
    .fn-chat-admin-detail-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
    .fn-chat-admin-detail-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
    .fn-chat-admin-section-nav{padding-inline:4px}
    .fn-chat-admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fn-chat-admin-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fn-chat-admin-filter__search{grid-column:1/-1}
    .fn-chat-admin-filter__actions{grid-column:1/-1;justify-content:flex-start}
    .fn-chat-admin-knowledge{grid-template-columns:auto minmax(0,1fr)}
    .fn-chat-admin-knowledge>.status-pill{grid-column:2;justify-self:start}
    .fn-chat-admin-knowledge-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fn-chat-admin-knowledge-test__form{grid-template-columns:1fr minmax(160px,.35fr)}
    .fn-chat-admin-knowledge-test__form .btn{grid-column:1/-1;justify-self:start}
    .fn-chat-admin-knowledge-results{grid-template-columns:1fr}
    .fn-chat-admin-knowledge-document>summary{grid-template-columns:38px minmax(0,1fr) auto 52px}
    .fn-chat-admin-knowledge-document__audiences{grid-column:2/5;grid-row:2;justify-content:flex-start}
    .fn-chat-admin-knowledge-editor__fields{grid-template-columns:1fr 1fr}
    .fn-chat-admin-knowledge-editor__fields .is-wide{grid-column:1/-1}
    .fn-chat-admin-knowledge-audiences{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fn-chat-admin-settings-grid{grid-template-columns:1fr}
    .fn-chat-admin-settings-group--wide{grid-column:auto}
    .fn-chat-admin-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fn-chat-admin-audit-status{grid-template-columns:auto minmax(0,1fr)}
    .fn-chat-admin-audit-status .inline-form{grid-column:2}
    .fn-chat-admin-page .fn-chat-admin-message{max-width:94%}
}
@media (max-width:560px){
    .fn-chat-admin-section-nav{padding-inline:0;overflow:visible}
    .fn-chat-admin-section-nav a{min-width:0;padding:11px 5px 10px;display:flex;flex:1 1 0;justify-content:center;text-align:center}
    .fn-chat-admin-section-nav i{display:none}
    .fn-chat-admin-section-nav strong{font-size:10px;line-height:1.15;white-space:normal}
    .fn-chat-admin-section-nav small{display:none}
    .fn-chat-admin-summary,
    .fn-chat-admin-filter,
    .fn-chat-admin-detail-summary,
    .fn-chat-admin-context-grid,
    .fn-chat-admin-field-pair{grid-template-columns:1fr}
    .fn-chat-admin-filter__search,
    .fn-chat-admin-filter__actions{grid-column:auto}
    .fn-chat-admin-filter__actions{align-items:stretch;flex-direction:column}
    .fn-chat-admin-filter__actions .btn{width:100%}
    .fn-chat-admin-card-heading{align-items:flex-start;flex-direction:column}
    .fn-chat-admin-pagination{align-items:stretch;flex-direction:column}
    .fn-chat-admin-knowledge{grid-template-columns:1fr}
    .fn-chat-admin-knowledge>.status-pill{grid-column:auto}
    .fn-chat-admin-knowledge-manager{padding:16px}
    .fn-chat-admin-knowledge-metrics{grid-template-columns:1fr 1fr}
    .fn-chat-admin-knowledge-test{padding:14px}
    .fn-chat-admin-knowledge-test__form{grid-template-columns:1fr}
    .fn-chat-admin-knowledge-test__form .btn{grid-column:auto;width:100%}
    .fn-chat-admin-knowledge-document>summary{grid-template-columns:34px minmax(0,1fr) auto;padding:11px}
    .fn-chat-admin-knowledge-document__icon{width:34px;height:34px}
    .fn-chat-admin-knowledge-document__title{grid-column:2/4;grid-row:1}
    .fn-chat-admin-knowledge-document__audiences{grid-column:2/4;grid-row:3;justify-content:flex-start}
    .fn-chat-admin-knowledge-document>summary>.status-pill{grid-column:2;grid-row:2;justify-self:start}
    .fn-chat-admin-knowledge-document__toggle{grid-column:3;grid-row:2}
    .fn-chat-admin-knowledge-editor{padding:13px}
    .fn-chat-admin-knowledge-editor__fields,
    .fn-chat-admin-knowledge-audiences{grid-template-columns:1fr}
    .fn-chat-admin-knowledge-editor__fields .is-wide,
    .fn-chat-admin-knowledge-audiences legend{grid-column:auto}
    .fn-chat-admin-knowledge-editor__actions,
    .fn-chat-admin-knowledge-reset{align-items:stretch;flex-direction:column}
    .fn-chat-admin-knowledge-editor__actions .btn,
    .fn-chat-admin-knowledge-reset .btn{width:100%}
    .fn-chat-admin-settings-actions,.fn-chat-admin-key-actions{align-items:stretch;flex-direction:column}
    .fn-chat-admin-settings-actions .btn,.fn-chat-admin-key-actions .btn{width:100%}
    .fn-chat-admin-audit-status{grid-template-columns:1fr}
    .fn-chat-admin-audit-status .inline-form{grid-column:auto}
    .fn-chat-admin-audit-status .btn{width:100%}
    .fn-chat-admin-page .fn-chat-admin-message,
    .fn-chat-admin-page .fn-chat-admin-message--user{max-width:100%;grid-template-columns:30px minmax(0,1fr)}
    .fn-chat-admin-page .fn-chat-admin-message--user .fn-chat-admin-message__author{grid-column:1}
    .fn-chat-admin-page .fn-chat-admin-message--user .fn-chat-admin-message__body{grid-column:2}
    .fn-chat-admin-message__author{width:30px;height:30px;border-radius:9px;font-size:8px}
    .fn-chat-admin-page .fn-chat-admin-message header{align-items:flex-start;flex-wrap:wrap}
    .fn-chat-admin-page .fn-chat-admin-message header time{width:100%;margin-left:0}
}

/* Favoritos del menú de empresa */
.sidebar-favorites {
    margin:0 2px 13px;
    padding:9px;
    position:relative;
    flex:0 0 auto;
    border:1px solid rgba(164,198,236,.2);
    border-radius:12px;
    background:rgba(255,255,255,.045);
    transition:border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
.sidebar-favorites__header {
    margin-bottom:7px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    color:#a9c5e5;
    font-size:10px;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.sidebar-favorites__header span { min-width:0; display:flex; align-items:center; gap:6px; }
.sidebar-favorites__header b { color:#ffc658; font-size:14px; line-height:1; }
.sidebar-favorites__header small { color:#7598bd; font-size:9px; letter-spacing:.04em; }
.sidebar-favorites__grid {
    min-height:43px;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:5px;
}
.sidebar-favorites__empty {
    min-height:43px;
    margin:0;
    padding:7px 8px;
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px dashed rgba(164,198,236,.28);
    border-radius:9px;
    color:#8dabcc;
    font-size:10.5px;
    font-weight:750;
    line-height:1.25;
    text-align:center;
}
.sidebar-favorites__empty span {
    width:19px;
    height:19px;
    flex:0 0 19px;
    display:grid;
    place-items:center;
    border-radius:6px;
    background:rgba(255,255,255,.08);
    color:#d8e9fb;
    font-size:15px;
}
.sidebar-favorites__status {
    height:10px;
    margin-top:3px;
    display:block;
    color:#83cdb5;
    font-size:9px;
    font-weight:800;
    line-height:10px;
    text-align:right;
}
.sidebar-favorites__status.is-error { color:#ffc0ba; }
.sidebar-favorite-item { min-width:0; position:relative; border-radius:8px; }
.sidebar-favorite-link {
    min-width:0;
    min-height:40px;
    padding:6px 28px 6px 8px;
    display:flex;
    align-items:center;
    gap:6px;
    overflow:hidden;
    border:1px solid rgba(164,198,236,.13);
    border-radius:8px;
    background:rgba(255,255,255,.065);
    color:#eaf3ff;
    font-size:12px;
    font-weight:850;
    line-height:1.1;
    text-decoration:none;
    transition:background .15s ease,border-color .15s ease;
}
.sidebar-favorite-link:hover {
    border-color:rgba(143,197,255,.38);
    background:rgba(255,255,255,.12);
    color:#fff;
}
.sidebar-favorite-link.active { border-color:#2f86e8; background:#176bd1; color:#fff; }
.sidebar-favorite-link > span:first-child {
    width:17px;
    flex:0 0 17px;
    color:#bcd7f7;
    font-size:15px;
    text-align:center;
}
.sidebar-favorite-link.active > span:first-child { color:#fff; }
.sidebar-favorite-link__label {
    min-width:0;
    flex:1 1 auto;
    white-space:normal;
}
.sidebar-favorite-link .nav-badge { margin-left:auto; position:static; flex:0 0 auto; }
.sidebar-favorite-link .premium-nav-badge {
    margin-left:auto;
    padding:2px 4px;
    flex:0 0 auto;
    font-size:6px;
}
.sidebar-favorite-remove {
    width:22px;
    height:29px;
    padding:0;
    position:absolute;
    z-index:2;
    top:4px;
    right:3px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:6px;
    background:transparent;
    color:#ffc658;
    font-size:13px;
    cursor:pointer;
    opacity:.75;
}
.sidebar-favorite-remove:hover,
.sidebar-favorite-remove:focus-visible {
    background:rgba(255,255,255,.12);
    color:#fff0b8;
    opacity:1;
    outline:none;
}
.sidebar-favorite-candidate { min-width:0; position:relative; }
.sidebar-favorite-candidate > .sidebar-link {
    width:100%;
    /* Reserva dos huecos independientes: contador del módulo y estrella. */
    padding-right:68px;
}
.admin-shell:not(.is-sidebar-collapsed) .sidebar-nav .sidebar-favorite-candidate > .sidebar-link {
    padding-right:72px;
}
.admin-shell:not(.is-sidebar-collapsed) .sidebar-favorite-candidate > .sidebar-link .nav-badge {
    margin:0;
    position:absolute;
    top:50%;
    right:39px;
    transform:translateY(-50%);
}
.sidebar-favorite-toggle {
    width:29px;
    height:29px;
    padding:0;
    position:absolute;
    z-index:2;
    top:50%;
    right:4px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#8fabca;
    font-size:16px;
    cursor:pointer;
    opacity:0;
    transform:translateY(-50%);
    transition:opacity .14s ease,color .14s ease,background .14s ease;
}
.sidebar-favorite-candidate:hover .sidebar-favorite-toggle,
.sidebar-favorite-candidate:focus-within .sidebar-favorite-toggle,
.sidebar-favorite-toggle.is-selected { opacity:1; }
.sidebar-favorite-toggle:hover,
.sidebar-favorite-toggle:focus-visible {
    background:rgba(255,255,255,.11);
    color:#fff;
    outline:none;
}
.sidebar-favorite-toggle.is-selected { color:#ffc658; }
.sidebar-favorite-candidate > .sidebar-link { cursor:pointer; }

.admin-shell.is-sidebar-collapsed .sidebar-favorites { width:48px; margin-inline:auto; padding:5px; }
.admin-shell.is-sidebar-collapsed .sidebar-favorites.is-empty { display:none; }
.admin-shell.is-sidebar-collapsed .sidebar-favorites__header { margin-bottom:5px; justify-content:center; }
.admin-shell.is-sidebar-collapsed .sidebar-favorites__header span {
    width:22px;
    display:block;
    overflow:hidden;
    font-size:0;
    text-align:center;
}
.admin-shell.is-sidebar-collapsed .sidebar-favorites__header b { font-size:14px; }
.admin-shell.is-sidebar-collapsed .sidebar-favorites__header small,
.admin-shell.is-sidebar-collapsed .sidebar-favorites__status { display:none; }
.admin-shell.is-sidebar-collapsed .sidebar-favorites__grid {
    min-height:0;
    grid-template-columns:30px;
    justify-content:center;
    gap:4px;
}
.admin-shell.is-sidebar-collapsed .sidebar-favorite-link {
    width:30px;
    min-height:30px;
    padding:0;
    justify-content:center;
    font-size:0;
}
.admin-shell.is-sidebar-collapsed .sidebar-favorite-link > span:first-child { width:auto; font-size:15px; }
.admin-shell.is-sidebar-collapsed .sidebar-favorite-link__label,
.admin-shell.is-sidebar-collapsed .sidebar-favorite-link .premium-nav-badge { display:none; }
.admin-shell.is-sidebar-collapsed .sidebar-favorite-link .nav-badge {
    position:absolute;
    top:-3px;
    right:-3px;
}
.admin-shell.is-sidebar-collapsed .sidebar-favorite-remove,
.admin-shell.is-sidebar-collapsed .sidebar-favorite-toggle { display:none; }

@media (hover:none), (pointer:coarse) {
    .sidebar-favorite-toggle { opacity:1; }
}
/* Gastos V3: navegación y maestro de medios de pago. */
.expense-module-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
}

.expense-module-tabs a {
    border: 1px solid #c8d9ec;
    border-radius: .65rem;
    color: #31506f;
    font-weight: 800;
    padding: .62rem .82rem;
    text-decoration: none;
    background: #fff;
}

.expense-module-tabs a:hover,
.expense-module-tabs a.is-active {
    background: #e9f3ff;
    border-color: #70adf0;
    color: #0864c6;
}

.expense-account-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22rem;
    gap: 1.15rem;
    align-items: start;
}

.expense-account-editor-main {
    display: grid;
    gap: 1rem;
}

.expense-account-editor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.expense-account-editor-grid label,
.expense-account-notes {
    display: grid;
    gap: .42rem;
    color: #243b59;
    font-weight: 800;
}

.expense-account-editor-grid small,
.expense-account-notes small {
    color: #70839b;
    font-weight: 500;
}

.expense-account-type-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: .9rem;
}

.expense-account-type-option {
    min-height: 108px;
    position: relative;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 22px;
    gap: .8rem;
    align-items: center;
    padding: 1rem;
    overflow: hidden;
    border: 1px solid #d2e0ef;
    border-radius: .9rem;
    background: linear-gradient(145deg, #fff 0%, #f7fafe 100%);
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

.expense-account-type-option:hover {
    transform: translateY(-1px);
    border-color: #9fc5ea;
    box-shadow: 0 8px 20px rgba(27, 76, 125, .07);
}

.expense-account-type-option:has(input:checked) {
    border-color: #2582df;
    background: linear-gradient(145deg, #f5faff 0%, #eaf4ff 100%);
    box-shadow: 0 0 0 2px rgba(20, 112, 210, .09), 0 9px 22px rgba(20, 112, 210, .08);
}

.expense-account-type-option:has(input:focus-visible),
.expense-account-switch-option:has(input:focus-visible) {
    outline: 3px solid rgba(11, 103, 200, .2);
    outline-offset: 2px;
}

.expense-account-type-option__icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    color: #176cc0;
    border: 1px solid #cfe2f5;
    border-radius: 13px;
    background: #edf6ff;
    font-size: .78rem;
    font-weight: 950;
    letter-spacing: .02em;
}

.expense-account-type-option[data-account-type="cash"] .expense-account-type-option__icon {
    color: #08764f;
    border-color: #bde5cf;
    background: #ebf9f2;
    font-size: 1.15rem;
}

.expense-account-type-option[data-account-type="personal"] .expense-account-type-option__icon {
    color: #ad5b10;
    border-color: #f2d4ac;
    background: #fff7ea;
}

.expense-account-type-option[data-account-type="other"] .expense-account-type-option__icon {
    color: #6251b5;
    border-color: #d9d0f4;
    background: #f6f2ff;
    font-size: 1rem;
}

.expense-account-type-option__copy,
.expense-account-switch-option__copy {
    min-width: 0;
    display: grid;
    gap: .28rem;
}

.expense-account-type-option__copy strong,
.expense-account-switch-option__copy strong {
    color: #183451;
    font-size: .86rem;
    line-height: 1.25;
    text-transform: none;
}

.expense-account-type-option__copy small,
.expense-account-switch-option__copy small {
    color: #627893;
    font-size: .75rem;
    font-weight: 500;
    line-height: 1.4;
    text-transform: none;
}

.expense-account-type-option__check {
    width: 21px;
    height: 21px;
    display: grid;
    place-items: center;
    border: 2px solid #b7c8da;
    border-radius: 999px;
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.expense-account-type-option__check::after {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: inherit;
    background: transparent;
    transform: scale(.5);
    transition: background .16s ease, transform .16s ease;
}

.expense-account-type-option:has(input:checked) .expense-account-type-option__check {
    border-color: #1470d2;
    box-shadow: 0 0 0 3px rgba(20, 112, 210, .1);
}

.expense-account-type-option:has(input:checked) .expense-account-type-option__check::after {
    background: #1470d2;
    transform: scale(1);
}

.expense-account-switches {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.expense-account-switch-option {
    min-height: 92px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid #d2e0ef;
    border-radius: .9rem;
    background: linear-gradient(145deg, #fff 0%, #f8fafd 100%);
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.expense-account-switch-option:hover {
    border-color: #a9c8e6;
}

.expense-account-switch-option:has(input:checked) {
    border-color: #62a8e9;
    background: #f1f8ff;
    box-shadow: 0 0 0 2px rgba(20, 112, 210, .06);
}

.expense-account-switch-option__control {
    width: 44px;
    height: 25px;
    padding: 3px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    border-radius: 999px;
    background: #c9d3df;
    box-shadow: inset 0 0 0 1px rgba(23, 52, 81, .08);
    transition: background .18s ease;
}

.expense-account-switch-option__control i {
    width: 19px;
    height: 19px;
    display: block;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 2px 5px rgba(22, 48, 79, .22);
    transition: transform .18s ease;
}

.expense-account-switch-option:has(input:checked) .expense-account-switch-option__control {
    background: #1470d2;
}

.expense-account-switch-option:has(input:checked) .expense-account-switch-option__control i {
    transform: translateX(19px);
}

.expense-account-notes > span {
    color: #627893;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.expense-account-notes textarea {
    width: 100%;
    min-height: 92px;
    padding: .8rem .9rem;
    resize: vertical;
    color: #183451;
    border: 1px solid #c8d9ec;
    border-radius: .75rem;
    background: #fff;
    font: inherit;
    font-weight: 600;
    line-height: 1.45;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.expense-account-notes textarea:focus {
    border-color: #2582df;
    box-shadow: 0 0 0 3px rgba(20, 112, 210, .1);
    outline: none;
}

.expense-account-notes textarea::placeholder {
    color: #8b9aae;
    font-weight: 500;
}

.expense-account-usage {
    margin-top: .8rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .2rem .75rem;
    align-items: baseline;
    padding: .9rem 1rem;
    border: 1px solid #e0e9f3;
    border-radius: .8rem;
    background: #f5f8fc;
    color: #27425f;
}

.expense-account-usage span {
    color: #71849c;
    font-size: .72rem;
    font-weight: 850;
}

.expense-account-usage strong {
    color: #183451;
    font-size: .9rem;
}

.expense-account-usage small {
    grid-column: 1 / -1;
    color: #71849c;
    font-size: .72rem;
    line-height: 1.4;
}

.expense-account-card__summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.expense-account-card__summary > span {
    min-width: 0;
    display: grid;
    gap: .2rem;
    padding: .7rem;
    border-radius: .65rem;
    background: #f4f8fc;
    border: 1px solid #dbe6f2;
}

.expense-account-card__summary small {
    color: #7589a1;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.management-card-grid--expense-accounts {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 440px));
    justify-content: start;
    align-items: start;
}

.management-card--expense-accounts {
    gap: 0;
    overflow: hidden;
    padding: 0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(22, 48, 79, .06);
}

.management-card--expense-accounts .management-card__header {
    padding: 16px 17px 14px;
    align-items: center;
    border-bottom: 1px solid #e3ebf4;
    background: linear-gradient(135deg, #fff 0%, #f5f9fe 100%);
}

.management-card--expense-accounts .management-card__header h2 {
    font-size: 16px;
}

.management-card--expense-accounts .expense-account-card__summary {
    margin: 14px 17px 0;
    gap: 0;
    overflow: hidden;
    border: 1px solid #dbe6f2;
    border-radius: 12px;
    background: #f7fafd;
}

.management-card--expense-accounts .expense-account-card__summary > span {
    min-height: 64px;
    padding: 10px 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.management-card--expense-accounts .expense-account-card__summary > span:nth-child(odd) {
    border-right: 1px solid #dbe6f2;
}

.management-card--expense-accounts .expense-account-card__summary > span:nth-child(-n+2) {
    border-bottom: 1px solid #dbe6f2;
}

.management-card--expense-accounts .expense-account-card__summary strong {
    overflow: hidden;
    color: #173755;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.management-card--expense-accounts .management-card__note {
    margin: 11px 17px 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.management-card--expense-accounts .management-card__actions {
    margin-top: 12px;
    padding: 10px 17px 14px;
    border-top: 1px solid #edf1f6;
    background: #fbfdff;
}

@media (max-width: 1000px) {
    .expense-account-editor-layout { grid-template-columns: 1fr; }
    .expense-account-editor-layout .editor-context-help { position: static; }
}

@media (max-width: 720px) {
    .expense-account-editor-grid,
    .expense-account-type-grid,
    .expense-account-switches,
    .expense-account-card__summary { grid-template-columns: 1fr; }
    .management-card-grid--expense-accounts { grid-template-columns: 1fr; }
    .management-card--expense-accounts .expense-account-card__summary > span {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid #dbe6f2;
    }
    .management-card--expense-accounts .expense-account-card__summary > span:last-child {
        border-bottom: 0;
    }
    .expense-module-tabs { width: 100%; }
}

/* Administración de facturación por empresa y usuario. */
.fn-admin-billing-status {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    padding: 5px 9px;
    color: #52677c;
    border: 1px solid #d7e1eb;
    border-radius: 999px;
    background: #f4f7fa;
    font-size: 10px;
    font-weight: 850;
    line-height: 1.2;
    white-space: normal;
}

.fn-admin-billing-status--billed {
    color: #08714a;
    border-color: #bde8d5;
    background: #e9f8f1;
}

.fn-admin-billing-status--missing {
    color: #9a5a09;
    border-color: #f1d3a9;
    background: #fff6e8;
}

.fn-admin-billing-status--exempt {
    color: #566b80;
    border-color: #d6e0e9;
    background: #edf2f7;
}

.fn-admin-billing-status--incomplete {
    color: #a03d4f;
    border-color: #efc6cf;
    background: #fff0f3;
}

.fn-admin-company-card-status {
    display: grid;
    justify-items: end;
    gap: 6px;
}

.fn-admin-table--companies.has-billing {
    min-width: 1370px;
}

.fn-admin-table--companies.has-billing th:nth-child(10) { width: 170px; }
.fn-admin-table--companies.has-billing th:nth-child(11) { width: 100px; }
.fn-admin-table--companies.has-billing th:nth-child(12) { width: 255px; }

.fn-admin-table--companies td .fn-admin-billing-status + small {
    display: block;
    max-width: 165px;
    margin-top: 5px;
    overflow: hidden;
    color: #718397;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fn-admin-billing-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr);
    gap: 16px;
}

.fn-admin-billing-account-card,
.fn-admin-billing-exemption-card,
.fn-admin-billing-user-account,
.fn-admin-billing-user-add {
    display: grid;
    align-content: start;
    gap: 16px;
}

.fn-admin-billing-account-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.fn-admin-billing-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #dbe6f1;
    border-radius: 12px;
    background: #f7faff;
}

.fn-admin-billing-summary > div {
    min-width: 0;
    padding: 13px;
    border-right: 1px solid #dbe6f1;
}

.fn-admin-billing-summary > div:last-child { border-right: 0; }
.fn-admin-billing-summary span,
.fn-admin-billing-summary strong { display: block; }
.fn-admin-billing-summary span { color: #6f8296; font-size: 10px; font-weight: 800; }
.fn-admin-billing-summary strong { margin-top: 5px; color: #173d60; font-size: 20px; }

.fn-admin-billing-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.fn-admin-billing-chip-list span {
    padding: 6px 9px;
    color: #1d5f94;
    border-radius: 999px;
    background: #eaf5ff;
    font-size: 10px;
    font-weight: 800;
}

.fn-admin-billing-assign-form,
.fn-admin-billing-user-add__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
}

.fn-admin-billing-user-add__form {
    grid-template-columns: minmax(180px, .8fr) minmax(250px, 1.2fr) auto;
}

.fn-admin-billing-assign-form label,
.fn-admin-billing-user-add__form label {
    display: grid;
    gap: 6px;
    color: #516a81;
    font-size: 10px;
    font-weight: 850;
}

.fn-admin-billing-assign-form select,
.fn-admin-billing-user-add__form select {
    width: 100%;
    min-height: 42px;
    padding: 0 11px;
    color: #1c3d5b;
    border: 1px solid #cbd9e7;
    border-radius: 9px;
    background: #fbfdff;
    font: inherit;
}

.fn-admin-billing-exempt-form { display: flex; flex-wrap: wrap; gap: 9px; margin-top: auto; }
.fn-admin-billing-exempt-form .fn-admin-textarea { width: 100%; }
.fn-admin-billing-exempt-form .fn-admin-textarea textarea { min-height: 92px; }
.fn-admin-billing-user-panel,
.fn-admin-billing-account-list { display: grid; gap: 16px; }

.fn-admin-billing-company-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.fn-admin-billing-company-list a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 3px 10px;
    padding: 11px;
    color: #173d60;
    border: 1px solid #dbe6f0;
    border-radius: 10px;
    background: #fbfdff;
    text-decoration: none;
}

.fn-admin-billing-company-list a:hover { border-color: #89bae1; background: #f2f8fd; }
.fn-admin-billing-company-list a > span { grid-row: 1 / span 2; padding: 6px 8px; color: #0870c5; border-radius: 8px; background: #e8f4fd; font-size: 10px; font-weight: 900; }
.fn-admin-billing-company-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.fn-admin-billing-company-list small { color: #72869a; font-size: 9px; }

@media (max-width: 950px) {
    .fn-admin-billing-grid { grid-template-columns: 1fr; }
    .fn-admin-billing-user-add__form { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
    .fn-admin-billing-summary,
    .fn-admin-billing-company-list,
    .fn-admin-billing-assign-form { grid-template-columns: 1fr; }
    .fn-admin-billing-summary > div { border-right: 0; border-bottom: 1px solid #dbe6f1; }
    .fn-admin-billing-summary > div:last-child { border-bottom: 0; }
    .fn-admin-billing-account-card__header { flex-direction: column; }
}

/* Visualización enriquecida de los KPI compactos. El color se reserva al dato;
   el contenedor conserva el acabado neutro del resto de paneles. */
.dashboard-widget-grid > .dashboard-basic-kpi,
.employee-widget-grid > .employee-basic-kpi {
    gap: 10px;
    padding: 16px 17px;
    border: 1px solid #dbe6f0;
    background: #fff;
    box-shadow: 0 8px 24px rgba(22, 55, 87, .055);
}
.dashboard-basic-kpi::before,
.employee-basic-kpi::before,
.dashboard-basic-kpi::after,
.employee-basic-kpi::after { content: none; }
.dashboard-basic-kpi > .basic-kpi-heading,
.employee-basic-kpi > .basic-kpi-heading { position:relative; z-index:1; min-width:0; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.basic-kpi-heading > div { min-width:0; }
.dashboard-basic-kpi > .basic-kpi-heading span,
.employee-basic-kpi > .basic-kpi-heading span { display:block; min-width:0; overflow:hidden; color:var(--basic-kpi-color); font-size:9px; font-weight:950; letter-spacing:.09em; line-height:1.15; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.basic-kpi-heading h2 { margin:4px 0 0; color:#17334f; font-size:16px; font-weight:950; letter-spacing:-.018em; line-height:1.1; }
.basic-kpi-heading p { margin:5px 0 0; overflow:hidden; color:#71849a; font-size:10px; font-weight:600; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.basic-kpi-heading > a { flex:0 0 auto; padding:4px 0; color:var(--basic-kpi-color); font-size:9px; font-weight:950; text-decoration:none; }
.basic-kpi-visual { min-height:88px; padding:10px 12px; display:flex; align-items:center; gap:13px; border:1px solid #dce7f1; border-radius:13px; background:linear-gradient(135deg,#fff,var(--basic-kpi-soft)); }
.basic-kpi-ring { --kpi-value:0; position:relative; flex:0 0 65px; width:65px; height:65px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--basic-kpi-color) calc(var(--kpi-value) * 1%),#e5edf4 0); }
.basic-kpi-ring::after { content:""; position:absolute; inset:8px; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 1px rgba(208,221,233,.7); }
.basic-kpi-ring strong { position:relative; z-index:1; color:var(--basic-kpi-color); font-size:16px; font-weight:950; letter-spacing:-.035em; }
.basic-kpi-visual__copy { min-width:0; display:grid; gap:5px; }
.basic-kpi-visual__copy strong { overflow:hidden; color:#203a57; font-size:13px; font-weight:950; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.basic-kpi-visual__copy span { color:#6f8398; font-size:10px; font-weight:650; line-height:1.35; }
.basic-kpi-number-row { min-height:39px; display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.basic-kpi-number-row > strong { min-width:0; overflow:hidden; color:var(--basic-kpi-color); font-size:31px; font-weight:950; letter-spacing:-.05em; line-height:1; text-overflow:ellipsis; white-space:nowrap; }
.basic-kpi-number-row > span { padding-bottom:3px; color:#6f8398; font-size:9px; font-weight:850; text-align:right; }
.dashboard-basic-kpi > .basic-kpi-meter,
.employee-basic-kpi > .basic-kpi-meter { margin:0; }
.basic-kpi-pairs { margin-top:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.basic-kpi-pairs > span { min-width:0; padding:7px 8px; display:grid; gap:2px; border-radius:9px; background:#f4f7fa; }
.basic-kpi-pairs small { overflow:hidden; color:#74879b; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.basic-kpi-pairs strong { overflow:hidden; color:#203a57; font-size:11px; font-weight:950; text-overflow:ellipsis; white-space:nowrap; }
.basic-kpi-scale { margin-top:auto; display:grid; gap:6px; }
.basic-kpi-scale > i { position:relative; height:9px; display:block; border-radius:999px; background:linear-gradient(90deg,#1da776 0 32%,#efb744 58%,#de5961 100%); box-shadow:inset 0 1px 2px rgba(23,49,75,.14); }
.basic-kpi-scale > i::after { content:""; position:absolute; top:50%; left:var(--kpi-marker); width:13px; height:13px; border:3px solid #fff; border-radius:50%; background:var(--basic-kpi-color); box-shadow:0 2px 8px rgba(19,50,80,.28); transform:translate(-50%,-50%); }
.basic-kpi-scale > div,
.basic-kpi-axis > div { display:flex; align-items:center; justify-content:space-between; color:#8091a3; font-size:8px; font-weight:800; }
.basic-kpi-balance { padding:11px 12px; display:grid; place-items:center; gap:3px; border-radius:13px; background:#f4f7fa; text-align:center; }
.basic-kpi-balance small { color:#6f8297; font-size:9px; }
.basic-kpi-balance strong { max-width:100%; overflow:hidden; color:var(--basic-kpi-color); font-size:27px; font-weight:950; letter-spacing:-.045em; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.basic-kpi-balance span { color:#8191a2; font-size:8px; }
.basic-kpi-axis { display:grid; gap:5px; }
.basic-kpi-axis > i { position:relative; height:8px; display:block; overflow:hidden; border-radius:999px; background:linear-gradient(90deg,#fbe7e9 0 50%,#e3f4ed 50% 100%); }
.basic-kpi-axis > i::after { content:""; position:absolute; z-index:2; top:-2px; bottom:-2px; left:50%; width:2px; border-radius:2px; background:#fff; box-shadow:0 0 0 1px rgba(117,137,157,.25); transform:translateX(-50%); }
.basic-kpi-axis > i > b { position:absolute; top:0; bottom:0; max-width:50%; border-radius:999px; background:var(--basic-kpi-color); }
.basic-kpi-axis.is-positive > i > b { left:50%; }
.basic-kpi-axis.is-negative > i > b { right:50%; }
.basic-kpi-caption { margin-top:auto; padding:7px 9px; color:#6f8398; border-radius:9px; background:#f4f7fa; font-size:8px; font-weight:750; text-align:center; }
.basic-kpi-flow { margin-top:auto; display:grid; grid-template-columns:auto minmax(12px,1fr) auto; align-items:center; gap:7px; }
.basic-kpi-flow > span { padding:6px 8px; color:#77899b; border:1px solid #dbe5ee; border-radius:999px; background:#f7f9fb; font-size:8px; font-weight:900; }
.basic-kpi-flow > span.is-done { color:#147452; border-color:#bde7d4; background:#eaf8f1; }
.basic-kpi-flow > span.is-active { color:#9e5808; border-color:#f3d49f; background:#fff5e5; }
.basic-kpi-flow > i { height:2px; background:linear-gradient(90deg,#8fd4b7,#e5b45e); }
@media (max-width:680px) {
    .basic-kpi-number-row > strong { font-size:28px; }
    .basic-kpi-ring { flex-basis:61px; width:61px; height:61px; }
}

/* Cabecera compacta compartida: integra la ruta bajo el título y mantiene
   los datos secundarios plegables con una preferencia común por usuario. */
/* Capa de compatibilidad. La fuente autoritativa es Content/private-header.css. */
@layer private-header-legacy {
.admin-content.admin-content--compact-header {
    padding-top:10px !important;
}
.admin-content--compact-header .private-header-page {
    margin-top:0 !important;
}
.admin-content--compact-header .fn-admin-page.private-header-page {
    padding-top:0 !important;
}
.private-page-header--compact,
.fn-admin-hero.private-page-header--compact {
    width:100%;
    height:auto !important;
    min-height:78px !important;
    max-height:none !important;
    margin-top:0;
    padding:13px 56px 13px 16px !important;
    position:relative;
    display:flex !important;
    flex:0 0 auto !important;
    flex-flow:row wrap !important;
    align-items:center !important;
    justify-content:space-between;
    gap:12px 18px;
    overflow:visible !important;
    box-sizing:border-box;
}
.private-page-header--compact .employee-identity,
.private-page-header--compact .employee-edit-identity,
.private-page-header--compact .fn-admin-user-identity {
    min-width:0;
    flex:1 1 360px;
    gap:12px;
}
.private-page-header--compact > .private-page-header-compact__title-host,
.private-page-header--compact .private-page-header-compact__title-host {
    min-width:0;
    flex:1 1 300px;
}
.private-page-header--compact .employee-identity__avatar,
.private-page-header--compact .employee-edit-avatar,
.private-page-header--compact .fn-admin-user-avatar,
.private-page-header--compact .security-header__icon {
    width:44px;
    height:44px;
    flex:0 0 44px;
    border-radius:11px;
    font-size:15px;
    box-shadow:inset 0 0 0 4px rgba(255,255,255,.72);
}
.private-page-header--compact .employee-identity__avatar--company-logo,
.private-page-header--compact .fn-admin-company-logo--hero {
    width:54px;
    height:44px;
    flex:0 0 54px;
    border-radius:11px;
    box-shadow:0 5px 14px rgba(21,50,82,.08);
}
.private-page-header--compact .employee-identity__avatar--company-logo img {
    padding:5px;
}
.private-page-header--compact .panel-kicker,
.private-page-header--compact .eyebrow {
    margin:0 0 3px;
    font-size:9px;
}
.private-page-header--compact h1,
.fn-admin-hero.private-page-header--compact h1 {
    margin:0;
    overflow:hidden;
    color:#17314f;
    font-size:21px !important;
    line-height:1.08;
    letter-spacing:-.022em;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.private-page-header-compact__breadcrumb,
.private-page-header--compact .private-page-header-compact__breadcrumb {
    width:auto;
    height:auto;
    min-height:0;
    max-height:none;
    margin:4px 0 0 !important;
    padding:0;
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:4px;
    overflow:hidden;
    color:#8a98aa;
    font-size:10px;
    line-height:1.2;
    white-space:nowrap;
}
.private-page-header-compact__breadcrumb a,
.private-page-header-compact__breadcrumb strong,
.private-page-header-compact__breadcrumb span {
    min-width:0;
    max-width:220px;
    margin:0;
    padding:0 !important;
    overflow:hidden;
    border:0 !important;
    border-radius:0;
    background:transparent !important;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:10px !important;
    line-height:1.2 !important;
}
.private-page-header-compact__breadcrumb a {
    color:#1768bd;
    font-weight:750;
    text-decoration:none;
}
.private-page-header-compact__breadcrumb a:hover,
.private-page-header-compact__breadcrumb a:focus-visible {
    color:#0759a5;
    background:transparent;
    text-decoration:underline;
}
.private-page-header-compact__breadcrumb strong {
    color:#596b80;
    font-weight:800;
}
.private-page-header-compact__actions {
    min-width:0;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:8px;
}
.private-page-header-compact__actions .btn {
    min-height:38px;
    padding:8px 12px;
}
.private-page-header-compact__toggle {
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px !important;
    padding:0 !important;
    display:grid !important;
    place-items:center;
    flex:0 0 38px;
}
.private-page-header-compact__toggle-icon {
    width:9px;
    height:9px;
    display:block;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translateY(-2px) rotate(45deg);
    transition:transform .16s ease;
}
.private-page-header-compact__toggle[aria-expanded="true"] .private-page-header-compact__toggle-icon {
    transform:translateY(2px) rotate(225deg);
}
.private-page-header-compact__details {
    width:100%;
    min-width:0;
    margin-top:0;
    padding:10px 0 0;
    display:flex;
    flex:1 0 100%;
    align-items:center;
    justify-content:space-between;
    gap:12px 18px;
    border-top:1px solid #e3ebf3;
}
.private-page-header-compact__details[hidden] {
    display:none !important;
}
.private-page-header-compact__metadata {
    min-width:0;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 10px;
}
.private-page-header-compact__metadata > p,
.private-page-header-compact__metadata p {
    max-width:760px;
    margin:0;
    color:#657991;
    font-size:12px;
    line-height:1.4;
}
.private-page-header-compact__metadata .employee-live-state,
.private-page-header-compact__metadata .company-dashboard-state,
.private-page-header-compact__metadata .companies-count,
.private-page-header-compact__metadata .security-state,
.private-page-header-compact__metadata .worker-portal-state,
.private-page-header-compact__metadata .fn-jobs-service-state {
    margin:0;
    padding:5px 9px;
    font-size:9px;
}
.private-page-header-compact__metadata .fn-admin-hero-chips,
.private-page-header-compact__metadata .employee-edit-summary,
.private-page-header-compact__metadata .private-page-header__badges {
    margin:0;
}
.private-page-header-compact__secondary-actions {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:8px;
}
.private-page-header-compact__secondary-actions .btn {
    min-height:34px;
    padding:7px 11px;
}
@media (min-width:681px) {
    .private-page-header--compact.fn-help-anchor > .fn-help__launcher,
    .fn-admin-hero.private-page-header--compact.fn-help-anchor > .fn-help__launcher {
        top:23px;
    }
}
@media (max-width:900px) {
    .private-page-header--compact,
    .fn-admin-hero.private-page-header--compact {
        align-items:flex-start !important;
    }
    .private-page-header-compact__actions {
        justify-content:flex-start;
    }
    .private-page-header-compact__details {
        align-items:flex-start;
        flex-direction:column;
    }
    .private-page-header-compact__secondary-actions {
        justify-content:flex-start;
    }
}
@media (max-width:680px) {
    .private-page-header--compact,
    .fn-admin-hero.private-page-header--compact {
        padding:13px 54px 13px 14px !important;
        flex-direction:column !important;
        flex-wrap:nowrap !important;
        gap:11px;
    }
    .private-page-header--compact .employee-identity,
    .private-page-header--compact .employee-edit-identity,
    .private-page-header--compact .fn-admin-user-identity,
    .private-page-header--compact > .private-page-header-compact__title-host {
        width:100%;
        flex:0 1 auto;
    }
    .private-page-header--compact h1,
    .fn-admin-hero.private-page-header--compact h1 {
        overflow:visible;
        font-size:20px !important;
        overflow-wrap:anywhere;
        text-overflow:clip;
        white-space:normal;
    }
    .private-page-header-compact__breadcrumb {
        width:100%;
    }
    .private-page-header-compact__breadcrumb a,
    .private-page-header-compact__breadcrumb strong,
    .private-page-header-compact__breadcrumb span {
        max-width:115px;
    }
    .private-page-header-compact__actions {
        width:100%;
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    }
    .private-page-header-compact__actions .btn {
        width:100%;
    }
    .private-page-header-compact__toggle {
        width:38px !important;
        min-width:38px;
        justify-self:start;
    }
    .private-page-header-compact__secondary-actions {
        width:100%;
    }
    .private-page-header-compact__details {
        width:100%;
        flex:0 0 auto;
    }
    .private-page-header-compact__metadata {
        width:100%;
    }
    .private-page-header-compact__metadata > p,
    .private-page-header-compact__metadata p,
    .private-page-header-compact__metadata .employee-live-state,
    .private-page-header-compact__metadata .company-dashboard-state {
        width:auto;
        max-width:100%;
        overflow-wrap:anywhere;
        white-space:normal;
    }
    .private-page-header-compact__secondary-actions .btn {
        flex:1 1 auto;
    }
    .company-single-context__mark {
        display:none;
    }
    .company-single-context__copy strong {
        max-width:34vw;
    }
}
}

/* Resumen de empresa: jerarquía tipográfica más serena y limitada al dashboard. */
.admin-content.dashboard-organized .dashboard-eyebrow,
.admin-content.dashboard-organized .dashboard-focus-heading span,
.admin-content.dashboard-organized .panel-kicker,
.admin-content.dashboard-organized .dashboard-section-heading > div > span,
.admin-content.dashboard-organized .operation-kpi__top em,
.admin-content.dashboard-organized .dashboard-basic-kpi > header span {
    font-weight:600;
    letter-spacing:.055em;
}
.admin-content.dashboard-organized .dashboard-focus-heading h2,
.admin-content.dashboard-organized .attention-header h2,
.admin-content.dashboard-organized .panel-v2__header h2,
.admin-content.dashboard-organized .workforce-header h2,
.admin-content.dashboard-organized .dashboard-section-heading strong {
    font-weight:700;
}
.admin-content.dashboard-organized .dashboard-welcome p,
.admin-content.dashboard-organized .dashboard-focus-heading p,
.admin-content.dashboard-organized .attention-header p,
.admin-content.dashboard-organized .panel-v2__header p,
.admin-content.dashboard-organized .dashboard-section-heading p,
.admin-content.dashboard-organized .operation-kpi > p,
.admin-content.dashboard-organized .attention-item p,
.admin-content.dashboard-organized .worker-card__identity small,
.admin-content.dashboard-organized .worker-last > small,
.admin-content.dashboard-organized .timeline-list small,
.admin-content.dashboard-organized .timeline-list p,
.admin-content.dashboard-organized .forecast-list small,
.admin-content.dashboard-organized .request-list small,
.admin-content.dashboard-organized .alert-list small,
.admin-content.dashboard-organized .incidence-list small,
.admin-content.dashboard-organized .difference-list small,
.admin-content.dashboard-organized .status-breakdown small,
.admin-content.dashboard-organized .system-grid small,
.admin-content.dashboard-organized .panel-v2-empty span {
    font-weight:400;
}
.admin-content.dashboard-organized .dashboard-health strong,
.admin-content.dashboard-organized .attention-item strong,
.admin-content.dashboard-organized .coverage-row__title strong,
.admin-content.dashboard-organized .timeline-list strong,
.admin-content.dashboard-organized .forecast-list strong,
.admin-content.dashboard-organized .dashboard-quick-actions strong,
.admin-content.dashboard-organized .worker-card__identity strong,
.admin-content.dashboard-organized .request-list strong,
.admin-content.dashboard-organized .alert-list strong,
.admin-content.dashboard-organized .incidence-list strong,
.admin-content.dashboard-organized .difference-list strong,
.admin-content.dashboard-organized .status-breakdown strong,
.admin-content.dashboard-organized .employee-cell strong,
.admin-content.dashboard-organized .system-grid strong,
.admin-content.dashboard-organized .panel-v2-empty strong {
    font-weight:600;
}
.admin-content.dashboard-organized .dashboard-filter-form label,
.admin-content.dashboard-organized .worker-search-form label,
.admin-content.dashboard-organized .table-search span,
.admin-content.dashboard-organized .operations-table th,
.admin-content.dashboard-organized .worker-list-head,
.admin-content.dashboard-organized .coverage-row dt,
.admin-content.dashboard-organized .attention-item small,
.admin-content.dashboard-organized .calendar-weekdays span,
.admin-content.dashboard-organized .calendar-day__hours small {
    font-weight:600;
}
.admin-content.dashboard-organized .worker-last > span {
    font-weight:500;
    letter-spacing:0;
    text-transform:none;
}
.admin-content.dashboard-organized .worker-last > strong {
    font-weight:500;
}
.admin-content.dashboard-organized .dashboard-live-tools button,
.admin-content.dashboard-organized .dashboard-live-tools label,
.admin-content.dashboard-organized .dashboard-live-tools select,
.admin-content.dashboard-organized .dashboard-jump-nav a,
.admin-content.dashboard-organized .period-tabs a,
.admin-content.dashboard-organized .period-navigator > strong,
.admin-content.dashboard-organized .panel-link,
.admin-content.dashboard-organized .attention-toolbar button,
.admin-content.dashboard-organized .attention-item > a,
.admin-content.dashboard-organized .dashboard-quick-actions a > span,
.admin-content.dashboard-organized .worker-search-form button,
.admin-content.dashboard-organized .working-filter,
.admin-content.dashboard-organized .worker-view-toggle button,
.admin-content.dashboard-organized .worker-actions a,
.admin-content.dashboard-organized .workforce-footer nav strong,
.admin-content.dashboard-organized .workforce-footer nav a {
    font-weight:600;
}
.admin-content.dashboard-organized .operation-kpi > strong,
.admin-content.dashboard-organized .dashboard-basic-kpi > strong,
.admin-content.dashboard-organized .attention-summary b,
.admin-content.dashboard-organized .coverage-row dd,
.admin-content.dashboard-organized .panel-count,
.admin-content.dashboard-organized .balance-totals strong,
.admin-content.dashboard-organized .status-breakdown b,
.admin-content.dashboard-organized .difference-list li > b,
.admin-content.dashboard-organized .today-donut strong,
.admin-content.dashboard-organized .data-quality-grid b {
    font-weight:700;
}
.admin-content.dashboard-organized .dashboard-basic-kpi > h2,
.admin-content.dashboard-organized .dashboard-basic-kpi > a,
.admin-content.dashboard-organized .coverage-row__title span,
.admin-content.dashboard-organized .forecast-list time span,
.admin-content.dashboard-organized .calendar-day__top > strong,
.admin-content.dashboard-organized .calendar-day__hours b {
    font-weight:600;
}
.admin-content.dashboard-organized .worker-state,
.admin-content.dashboard-organized .worker-incidence,
.admin-content.dashboard-organized .status-pill,
.admin-content.dashboard-organized .timeline-kind,
.admin-content.dashboard-organized .calendar-event,
.admin-content.dashboard-organized .forecast-list em {
    font-weight:700;
}

/* Últimos fichajes: selector de alcance y fechas legibles, también en módulos estrechos. */
.recent-punches-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px; }
.recent-punches-tools form { margin:0; }
.recent-punches-tools .btn { white-space:nowrap; }
.recent-punch-time { display:flex; flex-direction:column; gap:3px; white-space:nowrap; }
.recent-punch-time > span { color:#62758d; font-size:.9em; }

/* Modal de generación de descargas (PDF/Excel/CSV de gastos) */
.download-progress-dialog{width:min(420px,calc(100vw - 32px));padding:0;border:0;border-radius:22px;background:#fff;color:#142238;box-shadow:0 28px 70px rgba(15,38,66,.28)}
.download-progress-dialog::backdrop{background:rgba(15,31,52,.45);backdrop-filter:blur(2px)}
.download-progress-dialog__body{padding:30px 28px 24px;display:grid;justify-items:center;gap:8px;text-align:center}
.download-progress-dialog__icon{width:64px;height:64px;margin-bottom:6px;display:grid;place-items:center;border-radius:50%;background:#eaf4ff}
.download-progress-dialog__spinner{width:34px;height:34px;border:4px solid #cfe3f8;border-top-color:#0b67c8;border-radius:50%;animation:download-progress-spin .8s linear infinite}
.download-progress-dialog h2{margin:0;color:#142238;font-size:19px;font-weight:950}
.download-progress-dialog p{margin:0;color:#61758c;font-size:13px;line-height:1.5}
.download-progress-dialog small{min-height:16px;color:#8a9bb0;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.download-progress-dialog .btn{margin-top:8px;min-width:120px}
.download-progress-dialog.is-done .download-progress-dialog__icon{background:#e5f7ee}
.download-progress-dialog.is-done .download-progress-dialog__spinner{width:30px;height:16px;border:0;border-left:4px solid #1f9a6a;border-bottom:4px solid #1f9a6a;border-radius:0;transform:translateY(-4px) rotate(-45deg);animation:none}
.download-progress-dialog.is-error .download-progress-dialog__icon{background:#fdecea}
.download-progress-dialog.is-error .download-progress-dialog__spinner{width:auto;height:auto;border:0;border-radius:0;animation:none}
.download-progress-dialog.is-error .download-progress-dialog__spinner::before{content:"!";color:#b3261e;font-size:30px;font-weight:950;line-height:1}
@keyframes download-progress-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.download-progress-dialog__spinner{animation-duration:2.4s}}
/* Menú de exportar de filas: flota sobre la página para no quedar recortado por la tabla */
.export-menu nav.is-floating{position:fixed;right:auto;width:max-content;max-width:calc(100vw - 16px);z-index:1000}
.export-menu nav.is-floating::before{display:none}

/* Manuales y guías (área de clientes). */
.guides-admin-page { display: grid; gap: 18px; }
.guides-admin-manual { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 26px; align-items: center; padding: 24px; border: 1px solid #d7e3ef; border-radius: 18px; background: linear-gradient(120deg, #fff 0, #fff 60%, #edf6ff 100%); }
.guides-admin-manual img, .guides-admin-card img { display: block; width: 100%; height: auto; border: 1px solid #dce5ef; border-radius: 8px; box-shadow: 0 10px 24px rgba(16, 45, 80, .12); }
.guides-admin-manual h2 { margin: 6px 0 8px; color: #16314f; font-size: 24px; }
.guides-admin-manual p, .guides-admin-card p { margin: 0 0 10px; color: #5e6b7f; line-height: 1.5; }
.guides-admin-meta { display: block; margin-bottom: 14px; color: #71839a; font-size: 12px; font-weight: 700; }
.guides-admin-title { margin: 10px 0 0; color: #16314f; font-size: 20px; }
.guides-admin-intro { margin: 0; color: #5e6b7f; }
.guides-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 16px; }
.guides-admin-card { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; align-items: start; padding: 18px; border: 1px solid #d8e3ee; border-radius: 16px; background: #fff; }
.guides-admin-number { color: #14a45b; font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.guides-admin-card h3 { margin: 4px 0 6px; color: #16314f; font-size: 17px; }
@media (max-width: 640px) { .guides-admin-manual, .guides-admin-card { grid-template-columns: 1fr; } .guides-admin-manual img { max-width: 200px; } .guides-admin-card img { max-width: 150px; } }