@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');

:root {
    --navy: #10243e;
    --navy-2: #183553;
    --blue: #2563eb;
    --blue-soft: #eaf1ff;
    --green: #15976b;
    --green-soft: #e8f8f1;
    --amber: #d9860b;
    --amber-soft: #fff5dc;
    --red: #dc3f4f;
    --red-soft: #ffedf0;
    --ink: #1c2735;
    --muted: #708096;
    --line: #e5eaf0;
    --surface: #ffffff;
    --canvas: #f4f6f9;
    --shadow: 0 10px 30px rgba(20, 39, 64, .07);
}

* { box-sizing: border-box; }
html { height: 100%; }
body {
    min-height: 100%;
    margin: 0;
    color: var(--ink);
    background: var(--canvas);
    font-family: "DM Sans", sans-serif;
    font-size: 14px;
}
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, select { cursor: pointer; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, .brand { font-family: "Manrope", sans-serif; }

.app-shell { min-height: 100vh; display: flex; }
.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 20;
    display: flex;
    width: 250px;
    flex-direction: column;
    color: #dce8f5;
    background: var(--navy);
}
.brand {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    min-height: 132px;
    padding: 12px 16px;
    color: white;
    border-bottom: 1px solid rgba(255,255,255,.08);
    text-align: center;
}
.brand-mark {
    display: inline-grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    color: white;
    background: var(--blue);
    border-radius: 11px;
    font: 800 21px/1 "Manrope", sans-serif;
    box-shadow: 0 7px 18px rgba(37,99,235,.28);
}
.brand-logo {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    padding: 5px;
    object-fit: contain;
    background: white;
    border: 1px solid rgba(16, 36, 62, .1);
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(8, 24, 43, .18);
}
.brand .brand-logo { width: 198px; height: 72px; flex: 0 0 72px; padding: 5px 10px; }
.brand strong { display: block; font-size: 16px; line-height: 1.05; letter-spacing: .06em; }
.brand small { display: block; margin-top: 3px; color: #91a8c2; font: 500 10px "DM Sans", sans-serif; letter-spacing: .04em; }
.nav {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px 14px;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(143, 169, 197, .5) transparent;
}
.nav::-webkit-scrollbar { width: 6px; }
.nav::-webkit-scrollbar-track { background: transparent; }
.nav::-webkit-scrollbar-thumb { background: rgba(143, 169, 197, .42); border-radius: 20px; }
.nav::-webkit-scrollbar-thumb:hover { background: rgba(177, 199, 222, .7); }
.nav-label { margin: 21px 12px 8px; color: #718aa4; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.nav-label:first-child { margin-top: 0; }
.nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    margin: 3px 0;
    padding: 0 13px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    transition: .18s ease;
}
a.nav-item:hover { color: white; background: rgba(255,255,255,.06); }
.nav-item.active { color: white; background: var(--blue); box-shadow: 0 8px 20px rgba(15,31,50,.22); }
.nav-item.disabled { color: #7289a1; cursor: default; }
.nav-item small { margin-left: auto; color: #738da8; font-size: 9px; text-transform: uppercase; }
.nav-icon { width: 20px; color: currentColor; font-size: 18px; text-align: center; }
.nav-dropdown { margin: 7px 0; }
.nav-dropdown.configuration-menu { order: 100; }
.nav-dropdown:first-of-type { margin-top: 16px; }
.nav-dropdown-toggle { display: flex; min-height: 46px; align-items: center; gap: 12px; padding: 0 13px; cursor: pointer; color: #b9c9da; border-radius: 9px; font-size: 13px; font-weight: 700; list-style: none; transition: .18s ease; }
.nav-dropdown-toggle::-webkit-details-marker { display: none; }
.nav-dropdown-toggle:hover,.nav-dropdown[open]>.nav-dropdown-toggle { color: white; background: rgba(255,255,255,.055); }
.nav-chevron { margin-left: auto; color: #7990aa; font-size: 15px; transition: transform .18s ease; }
.nav-dropdown[open] .nav-chevron { transform: rotate(180deg); }
.nav-submenu { margin: 5px 0 10px 14px; padding-left: 8px; border-left: 1px solid rgba(150,177,205,.2); }
.nav-submenu .nav-label { display: none; }
.nav-submenu .nav-item { min-height: 41px; gap: 9px; margin: 2px 0; padding: 0 10px; font-size: 12.5px; }
.nav-submenu .nav-icon { width: 17px; font-size: 14px; }
.nav-nested { margin: 3px 0; }
.nav-nested-toggle { display: flex; min-height: 41px; align-items: center; gap: 9px; padding: 0 10px; cursor: pointer; color: #c7d5e5; border-radius: 8px; font-size: 12.5px; font-weight: 700; list-style: none; transition: .18s ease; }
.nav-nested-toggle::-webkit-details-marker { display: none; }
.nav-nested-toggle:hover,.nav-nested[open]>.nav-nested-toggle { color: #fff; background: rgba(255,255,255,.055); }
.nav-nested .nav-chevron { margin-left: auto; font-size: 12px; transition: transform .18s ease; }
.nav-nested[open]>.nav-nested-toggle .nav-chevron { transform: rotate(180deg); }
.nav-nested-menu { margin: 2px 0 6px 13px; padding-left: 7px; border-left: 1px dashed rgba(150,177,205,.25); }
.nav-nested-menu .nav-item { min-height: 37px; margin: 2px 0; padding: 0 9px; font-size: 11.75px; }
.sidebar-footer { padding: 16px; border-top: 1px solid rgba(255,255,255,.08); }
.user-mini { display: flex; align-items: center; gap: 10px; min-width: 0; }
.user-mini img, .user-mini .avatar { width: 36px; height: 36px; }
.user-mini > span:last-child { min-width: 0; }
.user-mini strong, .user-mini small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-mini strong { color: white; font-size: 12px; }
.user-mini small { margin-top: 2px; color: #8ea5bd; font-size: 10px; }
.logout-button { margin: 12px 0 0; padding: 0; color: #9fb3c7; background: none; border: 0; font-size: 11px; }
.logout-button:hover { color: white; }

.main { width: calc(100% - 250px); min-width: 0; margin-left: 250px; }
.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 90px;
    padding: 0 34px;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
}
.topbar h1 { margin: 2px 0 0; font-size: 21px; }
.eyebrow { margin: 0; color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.today { color: var(--muted); font-size: 12px; text-transform: capitalize; }
.menu-button { display: none; border: 0; background: transparent; font-size: 24px; }
.content { width: 100%; max-width: none; margin: 0; padding: 20px 22px 36px; }

.welcome-row, .page-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.welcome-row h2, .page-actions h2 { margin: 5px 0; font-size: 27px; }
.welcome-row p, .page-actions p { margin-bottom: 0; color: var(--muted); }
.page-actions.compact { align-items: center; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 22px; }
.stats-grid.dashboard-grid { grid-template-columns: repeat(6, 1fr); gap: 13px; }
.stat-card {
    display: flex;
    align-items: center;
    gap: 15px;
    min-height: 105px;
    padding: 20px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--shadow);
}
.stat-card.pending { border-style: dashed; box-shadow: none; }
.stat-icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 12px; font-size: 21px; }
.stat-icon.blue { color: var(--blue); background: var(--blue-soft); }
.stat-icon.green { color: var(--green); background: var(--green-soft); }
.stat-icon.gray { color: var(--muted); background: #edf1f5; }
.stat-icon.amber { color: var(--amber); background: var(--amber-soft); }
.stat-icon.red { color: var(--red); background: var(--red-soft); }
.stat-card strong, .stat-card span { display: block; }
.stat-card strong { margin-bottom: 2px; font: 800 23px "Manrope", sans-serif; }
.stat-card div span { color: var(--muted); font-size: 12px; }

.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; padding: 24px 26px; border-bottom: 1px solid var(--line); }
.panel-heading h3 { margin: 5px 0 0; }
.phase-list { display: grid; grid-template-columns: repeat(4, 1fr); padding: 26px; }
.phase { position: relative; display: flex; gap: 12px; min-width: 0; }
.phase:not(:last-child)::after { position: absolute; top: 17px; right: 12px; left: 48px; height: 1px; content: ""; background: var(--line); }
.phase > span { z-index: 1; display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; color: var(--muted); background: #eef2f6; border-radius: 50%; font-weight: 700; }
.phase.completed > span { color: white; background: var(--green); }
.phase div { z-index: 1; padding-right: 20px; background: white; }
.phase strong, .phase small { display: block; }
.phase strong { margin: 1px 0 4px; font-size: 12px; }
.phase small { color: var(--muted); font-size: 10px; }

.dashboard-people-layout { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(285px, .65fr); gap: 18px; margin-top: 22px; align-items: stretch; }
.dashboard-people-layout.single { grid-template-columns: 1fr; }
.birthday-calendar-panel { min-width: 0; overflow: hidden; }
.birthday-calendar-panel .panel-heading { padding: 18px 20px; }
.birthday-calendar-heading small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.birthday-calendar-navigation { display: flex; align-items: center; gap: 10px; }
.birthday-calendar-navigation strong { min-width: 125px; color: var(--navy); font: 800 12px "Manrope", sans-serif; text-align: center; text-transform: capitalize; }
.birthday-calendar-navigation .button { width: 34px; min-height: 34px; padding: 0; color: var(--blue); background: var(--blue-soft); border-color: #d7e4ff; font-size: 21px; line-height: 1; }
.birthday-calendar-navigation .button:hover { color: white; background: var(--blue); }
.birthday-calendar-scroll { overflow-x: auto; scrollbar-width: thin; }
.birthday-calendar { display: grid; min-width: 700px; grid-template-columns: repeat(7, minmax(100px, 1fr)); background: var(--line); gap: 1px; }
.birthday-weekday { padding: 8px 9px; color: #5f7084; background: #f5f8fb; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.birthday-day { position: relative; min-height: 96px; padding: 7px; background: white; }
.birthday-day.is-empty { background: #fafbfd; }
.birthday-day.has-birthdays { background: #fbfdff; }
.birthday-day.is-today { box-shadow: inset 0 0 0 2px var(--blue); }
.birthday-day-number { display: grid; width: 21px; height: 21px; margin: 0 0 5px auto; place-items: center; color: var(--muted); border-radius: 50%; font: 700 9px "Manrope", sans-serif; }
.birthday-day.is-today .birthday-day-number { color: white; background: var(--blue); }
.birthday-people { display: grid; gap: 4px; }
.birthday-person { display: flex; min-width: 0; align-items: center; gap: 5px; padding: 3px 5px; color: var(--navy); background: var(--blue-soft); border-radius: 7px; }
.birthday-person img, .birthday-avatar { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; object-fit: cover; color: white; background: var(--blue); border-radius: 6px; font-size: 8px; font-weight: 800; }
.birthday-person > span:last-child { overflow: hidden; font-size: 9px; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }

.new-workers-panel { min-width: 0; overflow: hidden; }
.new-workers-panel .panel-heading { padding: 18px 20px; }
.new-workers-heading small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; text-transform: capitalize; }
.new-workers-count { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 11px; font: 800 15px "Manrope", sans-serif; }
.new-workers-list { max-height: 550px; padding: 5px 16px; overflow-y: auto; scrollbar-width: thin; }
.new-worker-card { display: flex; min-width: 0; align-items: center; gap: 10px; padding: 13px 2px; border-bottom: 1px solid var(--line); }
.new-worker-card:last-child { border-bottom: 0; }
.new-worker-card img, .new-worker-avatar { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; object-fit: cover; color: white; background: var(--blue); border-radius: 11px; font: 800 13px "Manrope", sans-serif; }
.new-worker-card > div { min-width: 0; flex: 1; }
.new-worker-card strong, .new-worker-card small, .new-worker-card time { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.new-worker-card strong { color: var(--navy); font-size: 11px; }
.new-worker-card small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.new-worker-card time { margin-top: 4px; color: #91a0b1; font-size: 8px; }
.new-worker-status { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; }
.new-worker-status.active { background: var(--green); }
.new-worker-status.inactive { background: var(--red); }
.new-workers-empty { display: grid; min-height: 245px; padding: 30px; place-items: center; align-content: center; text-align: center; }
.new-workers-empty > span { display: grid; width: 48px; height: 48px; margin-bottom: 12px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 13px; font-size: 21px; }
.new-workers-empty strong { color: var(--navy); font-size: 12px; }
.new-workers-empty small { max-width: 210px; margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.5; }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 9px;
    font-weight: 600;
    transition: .18s ease;
}
.button.primary { color: white; background: var(--blue); box-shadow: 0 7px 18px rgba(37,99,235,.18); }
.button.primary:hover { background: #174fc8; transform: translateY(-1px); }
.button.secondary { color: var(--ink); background: white; border-color: var(--line); }
.button.secondary:hover { border-color: #bec9d6; }
.button.danger { color: var(--red); background: var(--red-soft); border-color: #f1bcc3; }
.button.danger:hover { background: #ffdde2; }
.inline-delete-form { display: inline-flex; margin: 0; }
.button.text { color: var(--muted); background: transparent; }
.button.full { width: 100%; }
.alert { margin-bottom: 20px; padding: 13px 16px; border-radius: 10px; }
.alert.success { color: #087450; background: var(--green-soft); border: 1px solid #c0ebd9; }
.alert.error { color: #ad2938; background: var(--red-soft); border: 1px solid #facbd1; }
.alert ul { margin: 7px 0 0; padding-left: 20px; }
.badge { display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border-radius: 99px; font-size: 10px; font-weight: 700; }
.badge.active { color: #087450; background: var(--green-soft); }
.badge.inactive { color: #9d3944; background: var(--red-soft); }
.badge.late { color: #a96806; background: var(--amber-soft); }
.badge.lunch { color: #1763b6; background: #e8f3ff; }
.badge.neutral { color: #4d6075; background: #edf1f5; }

.filters { display: flex; gap: 10px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.filters select { min-width: 170px; }
.user-import-panel { margin-bottom: 22px; overflow: hidden; }
.user-import-header { display: flex; align-items: center; gap: 14px; padding: 21px 22px; border-bottom: 1px solid var(--line); }
.user-import-icon, .user-import-file-icon { display: grid; flex: 0 0 auto; place-items: center; color: var(--blue); background: var(--blue-soft); font-weight: 800; }
.user-import-icon { width: 42px; height: 42px; border-radius: 12px; font-size: 20px; }
.user-import-copy { min-width: 0; flex: 1; }
.user-import-copy h2 { margin: 4px 0 3px; color: var(--navy); font-size: 17px; }
.user-import-copy p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.user-import-header .button { margin-left: auto; white-space: nowrap; }
.user-import-form { display: flex; align-items: center; gap: 13px; padding: 18px 22px; background: #fcfdff; }
.user-import-file { display: flex; min-width: 0; flex: 1; align-items: center; gap: 10px; padding: 7px 9px; color: var(--muted); background: white; border: 1px dashed #b8c9df; border-radius: 10px; cursor: pointer; transition: .18s ease; }
.user-import-file:hover, .user-import-file:focus-within { border-color: var(--blue); background: #fbfdff; box-shadow: 0 0 0 3px var(--blue-soft); }
.user-import-file-icon { width: 31px; height: 31px; border-radius: 8px; font-size: 14px; }
.user-import-file > span:not(.user-import-file-icon) { min-width: 155px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.user-import-file input[type="file"] { min-width: 0; flex: 1; height: 36px; padding: 3px; color: var(--muted); font-size: 10px; outline: none; background: transparent; border: 0; cursor: pointer; }
.user-import-file input[type="file"]::file-selector-button { height: 29px; margin-right: 8px; padding: 0 11px; color: var(--blue); background: var(--blue-soft); border: 0; border-radius: 6px; font-size: 9px; font-weight: 800; cursor: pointer; }
.user-import-note { padding: 11px 22px 16px; color: var(--muted); border-top: 1px solid #edf1f6; background: #fcfdff; font-size: 10px; line-height: 1.5; }
.user-import-note strong { color: var(--navy); }
.user-import-error { margin: 0 22px 18px; font-size: 11px; line-height: 1.5; }
.search-box { display: flex; flex: 1; align-items: center; gap: 8px; min-width: 250px; padding: 0 13px; border: 1px solid var(--line); border-radius: 9px; }
.search-box:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.search-box span { color: var(--muted); font-size: 20px; }
.search-box input { width: 100%; height: 40px; outline: none; border: 0; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px 17px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
th { color: #7a8899; background: #fafbfd; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
td { font-size: 12px; }
td small.block { display: block; margin-top: 3px; color: var(--muted); }
.user-cell { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.user-cell img, .avatar { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; object-fit: cover; color: var(--blue); background: var(--blue-soft); border-radius: 10px; font-weight: 700; }
.user-cell strong, .user-cell small { display: block; }
.user-cell small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.actions-cell { text-align: right; white-space: nowrap; }
.actions-cell form { display: inline; }
.icon-button { display: inline-grid; width: 31px; height: 31px; padding: 0; place-items: center; color: #5d6c7e; background: white; border: 1px solid var(--line); border-radius: 7px; }
.icon-button:hover { color: var(--blue); border-color: #aac0f3; background: var(--blue-soft); }
.icon-button.danger:hover { color: var(--red); border-color: #f1b8c0; background: var(--red-soft); }
.empty-state { padding: 55px; color: var(--muted); text-align: center; }
.pagination { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 10px 20px; color: var(--muted); font-size: 11px; }
.pagination nav > div:first-child { display: none; }
.pagination nav > div:last-child { display: flex; align-items: center; gap: 12px; }
.pagination nav p { margin: 0; }
.pagination nav span[aria-current="page"] span, .pagination nav a { display: inline-flex; min-width: 30px; min-height: 30px; align-items: center; justify-content: center; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; }
.pagination nav span[aria-current="page"] span { color: white; background: var(--blue); border-color: var(--blue); }
.pagination svg { width: 14px; }

.form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 270px; align-items: start; gap: 20px; }
.form-main { display: grid; gap: 20px; }
.form-section { padding: 24px; }
.section-heading { display: flex; gap: 12px; margin-bottom: 22px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.section-heading > span { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 8px; font-size: 11px; font-weight: 700; }
.section-heading h3, .form-side h3 { margin: 0 0 3px; font-size: 15px; }
.section-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.field { display: block; }
.field.span-2 { grid-column: span 2; }
.form-grid > .span-2 { grid-column: span 2; }
.family-toggle { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.family-toggle .switch-line { margin-bottom: 0; }
.conditional-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; padding: 16px; border: 1px dashed var(--blue); border-radius: 12px; background: var(--blue-soft); }
.conditional-fields[hidden] { display: none; }
.family-list { display: grid; grid-column: 1 / -1; gap: 12px; }
.family-card { padding: 14px; border: 1px solid #cbdafb; border-radius: 11px; background: var(--surface); }
.family-card-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; color: var(--navy); }
.family-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.equipment-batch-list { display: grid; gap: 16px; margin-bottom: 16px; }
.equipment-batch-card { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--canvas); }
.field > span { display: block; margin-bottom: 7px; color: #4f5f72; font-size: 11px; font-weight: 600; }
.field input, .field select, .field textarea, .filters select {
    width: 100%;
    height: 43px;
    padding: 0 12px;
    color: var(--ink);
    outline: none;
    background: white;
    border: 1px solid var(--line);
    border-radius: 8px;
}
.field textarea { height: auto; min-height: 92px; padding-top: 11px; resize: vertical; }
.field input[type="file"] {
    height: 46px;
    padding: 5px 7px;
    color: var(--muted);
    cursor: pointer;
    background: #fbfcfe;
}
.field input[type="file"]::file-selector-button {
    height: 34px;
    margin-right: 10px;
    padding: 0 14px;
    color: var(--blue);
    background: var(--blue-soft);
    border: 0;
    border-radius: 7px;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    transition: .18s ease;
}
.field input[type="file"]::file-selector-button:hover { color: white; background: var(--blue); }
.field input:focus, .field select:focus, .field textarea:focus, .filters select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.field small, .help { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; }
.sticky { position: sticky; top: 20px; }
.photo-preview { display: grid; width: 118px; height: 118px; margin: 20px auto; place-items: center; overflow: hidden; color: var(--blue); background: var(--blue-soft); border: 4px solid white; border-radius: 50%; box-shadow: 0 0 0 1px var(--line); font: 800 36px "Manrope", sans-serif; }
.photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.upload-button { position: relative; overflow: hidden; }
.upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.form-side .help { text-align: center; }
.form-side hr { margin: 22px 0; border: 0; border-top: 1px solid var(--line); }
.switch-line { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 22px; }
.switch-line strong, .switch-line small { display: block; }
.switch-line strong { font-size: 12px; }
.switch-line small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.switch-line input[type="checkbox"] { width: 36px; height: 19px; accent-color: var(--green); }

.login-page { background: var(--navy); }
.login-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(400px, 1.05fr) minmax(460px, .95fr); }
.login-visual {
    position: relative;
    display: flex;
    overflow: hidden;
    padding: 50px clamp(45px, 7vw, 105px);
    flex-direction: column;
    justify-content: space-between;
    color: white;
    background:
        radial-gradient(circle at 20% 70%, rgba(37,99,235,.5), transparent 28%),
        radial-gradient(circle at 88% 10%, rgba(66,136,255,.25), transparent 24%),
        linear-gradient(145deg, #0d1c30, #153554);
}
.login-visual::after { position: absolute; right: -110px; bottom: -180px; width: 450px; height: 450px; content: ""; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02); }
.login-brand { z-index: 1; display: flex; align-items: center; gap: 16px; font: 800 24px "Manrope", sans-serif; letter-spacing: .08em; }
.login-brand .brand-logo { width: 74px; height: 74px; flex-basis: 74px; padding: 8px; border-radius: 17px; box-shadow: 0 14px 32px rgba(0,0,0,.25); }
.mobile-brand .brand-logo { width: 54px; height: 54px; flex-basis: 54px; padding: 6px; }
.login-message { z-index: 1; max-width: 530px; }
.login-kicker { display: block; margin-bottom: 17px; color: #87b2ff; font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.login-message h1 { max-width: 510px; margin-bottom: 20px; font-size: clamp(38px, 4.4vw, 64px); line-height: 1.06; letter-spacing: -.045em; }
.login-message p { max-width: 460px; color: #abc0d5; font-size: 16px; line-height: 1.7; }
.login-footer { z-index: 1; margin: 0; color: #6f8ba6; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.login-form-wrap { display: grid; place-items: center; padding: 35px; background: white; }
.login-form { width: min(100%, 390px); }
.mobile-brand { display: none; }
.login-form h2 { margin: 8px 0; font-size: 31px; }
.form-intro { margin-bottom: 28px; color: var(--muted); }
.login-form .field { margin-bottom: 17px; }
.check-line { display: flex; align-items: center; gap: 8px; margin: 5px 0 24px; color: var(--muted); font-size: 12px; }
.check-line input { accent-color: var(--blue); }
.support-note { margin: 20px 0 0; color: #98a4b2; font-size: 10px; text-align: center; }

.catalog-tabs {
    display: inline-flex;
    gap: 5px;
    margin-bottom: 20px;
    padding: 5px;
    background: #e9edf3;
    border-radius: 11px;
}
.catalog-tabs a { display: flex; align-items: center; gap: 8px; min-height: 39px; padding: 0 15px; color: #607085; border-radius: 8px; font-size: 12px; font-weight: 600; }
.catalog-tabs a.active { color: var(--navy); background: white; box-shadow: 0 3px 10px rgba(20,39,64,.08); }
.catalog-tabs a span { font-size: 17px; }
.catalog-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); align-items: start; gap: 20px; }
.catalog-create .field { margin-bottom: 17px; }
.catalog-switch { padding: 5px 0 18px; }
.catalog-list { overflow: hidden; }
.catalog-list-heading { display: flex; align-items: center; justify-content: space-between; min-height: 83px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.catalog-list-heading h3 { margin: 0 0 3px; font-size: 15px; }
.catalog-list-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.catalog-big-icon { display: grid; width: 42px; height: 42px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 11px; font-size: 20px; }
.catalog-items { padding: 7px 20px; }
.catalog-item { display: flex; align-items: center; gap: 7px; min-height: 76px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.catalog-item:last-child { border-bottom: 0; }
.catalog-edit-form { display: flex; flex: 1; align-items: center; gap: 12px; min-width: 0; }
.catalog-item-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: #5b6e83; background: #f0f3f7; border-radius: 9px; font-size: 17px; }
.catalog-fields { display: grid; flex: 1; min-width: 0; grid-template-columns: minmax(140px, .8fr) minmax(160px, 1.2fr); align-items: center; gap: 8px; }
.catalog-fields input { min-width: 0; height: 35px; padding: 0 9px; outline: none; background: transparent; border: 1px solid transparent; border-radius: 7px; font-size: 12px; }
.catalog-fields input:first-child { font-weight: 600; }
.catalog-fields input:hover { background: #fafbfd; border-color: var(--line); }
.catalog-fields input:focus { background: white; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.catalog-fields small { grid-column: 1 / -1; padding-left: 9px; color: var(--muted); font-size: 9px; }
.catalog-status { display: flex; width: 78px; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; }
.catalog-status input { accent-color: var(--green); }
.icon-button.save { color: var(--green); }
.work-group-schedule { min-width: 0; margin: 0 0 17px; padding: 14px; border: 1px solid #cfd9e6; border-radius: 11px; background: #fbfcfe; }
.work-group-schedule legend { padding: 0 6px; color: var(--navy); font-size: 11px; font-weight: 800; }
.work-group-schedule .form-grid { gap: 11px; }
.work-group-schedule .field { min-width: 0; }
.work-group-schedule .field > span { font-size: 10px; }
.work-group-schedule .field input, .work-group-schedule .field select { min-width: 0; font-size: 11px; }
.group-rotation-fields { margin-top: 13px; padding-top: 13px; border-top: 1px dashed #cfd9e6; }
.group-rotation-fields[hidden] { display: none; }
.work-group-schedule .switch-line { margin: 13px 0 0; padding: 11px 0 0; border-top: 1px solid #e7edf4; }
.work-group-create { min-width: 0; }
.work-group-item { align-items: flex-start; padding: 17px 0; }
.work-group-item .catalog-edit-form { align-items: flex-start; }
.work-group-item .catalog-fields { display: block; min-width: 0; }
.work-group-item .catalog-fields > input { display: inline-block; width: min(280px, 100%); margin: 0 14px 6px 0; background: #fff; border-color: var(--line); }
.work-group-item .catalog-fields > small { display: block; padding: 0; }
.work-group-item .work-group-schedule { max-width: 560px; margin: 11px 0 8px; }
.work-group-item .work-group-schedule .form-grid { grid-template-columns: 1fr 1fr; }
.shift-create-grid { margin-bottom: 17px; }
.shift-inline-fields { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.shift-inline-fields label span { display: block; margin: 0 0 4px 3px; color: var(--muted); font-size: 8px; font-weight: 600; text-transform: uppercase; }
.shift-inline-fields label input { width: 100%; background: white; border-color: var(--line); }
.work-days-field { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 17px; padding: 0; border: 0; }
.work-days-field legend { width: 100%; margin-bottom: 6px; color: #4f5f72; font-size: 11px; font-weight: 600; }
.work-days-field label { cursor: pointer; }
.work-days-field input { position: absolute; opacity: 0; pointer-events: none; }
.work-days-field label span { display: grid; min-width: 34px; height: 30px; padding: 0 7px; place-items: center; color: var(--muted); background: #f5f7fa; border: 1px solid var(--line); border-radius: 7px; font-size: 9px; font-weight: 700; }
.work-days-field input:checked + span { color: var(--blue); background: var(--blue-soft); border-color: #a9c3f7; }
.work-days-field.inline-days { grid-column: 1 / -1; margin: 3px 0 0; }
.work-days-field.inline-days legend { font-size: 8px; text-transform: uppercase; }
.work-days-field.inline-days label span { min-width: 27px; height: 25px; padding: 0 5px; font-size: 8px; }
.special-schedules { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 4px 0 16px; }
.special-schedules-heading { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 2px; }
.special-schedules-heading strong { color: var(--text); font-size: 12px; }
.special-schedules-heading small { color: var(--muted); font-size: 9px; }
.catalog-create .special-schedules { grid-template-columns: 1fr; }
.special-schedule-card { min-width: 0; margin: 0; padding: 14px; border: 1px solid #dbe3ed; border-radius: 12px; background: linear-gradient(180deg, #fbfcfe, #f5f8fc); box-shadow: 0 5px 14px rgba(20, 39, 64, .04); }
.special-schedule-card legend { padding: 0 7px; color: var(--navy); font-size: 11px; font-weight: 800; }
.special-check { display: flex !important; min-height: 34px; align-items: center; gap: 8px; padding: 7px 10px; color: var(--text); background: #fff; border: 1px solid var(--line); border-radius: 9px; font-size: 10px; font-weight: 700; cursor: pointer; }
.special-check input[type="hidden"] { display: none; }
.special-check input[type="checkbox"], .catalog-fields .special-check input[type="checkbox"] { width: 16px; min-width: 16px; height: 16px; margin: 0; padding: 0; accent-color: var(--blue); border: 0; box-shadow: none; }
.special-schedule-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 9px; }
.special-schedule-fields > label:not(.special-check) { display: flex; min-width: 0; flex-direction: column; }
.special-schedule-fields > label > span { display: block; margin: 0 0 5px 2px; color: #66778b; font-size: 8px; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
.special-schedule-fields input[type="time"], .special-schedule-fields input[type="number"], .catalog-fields .special-schedule-fields input[type="time"], .catalog-fields .special-schedule-fields input[type="number"] { width: 100%; min-width: 0; height: 38px; padding: 0 10px; color: var(--text); outline: none; background: #fff; border: 1px solid #d7e0eb; border-radius: 9px; font: 600 11px "Manrope", sans-serif; }
.special-schedule-fields input[type="time"]:hover, .special-schedule-fields input[type="number"]:hover { border-color: #b8c7d9; }
.special-schedule-fields input[type="time"]:focus, .special-schedule-fields input[type="number"]:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.special-schedule-fields .lunch-check { grid-column: 1 / -1; }
.update-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); align-items: start; gap: 20px; margin-bottom: 20px; }
.update-upload-panel .field { margin-bottom: 15px; }
.update-manifest-note { display: flex; margin-bottom: 14px; padding: 11px 13px; flex-direction: column; gap: 2px; color: #36506d; background: #edf5ff; border: 1px solid #c7ddfb; border-radius: 10px; font-size: 10px; }
.update-manifest-note code { color: var(--blue); font-weight: 800; }
.update-file-picker { position: relative; display: flex; min-height: 145px; margin: 4px 0 16px; padding: 22px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; overflow: hidden; color: var(--muted); background: linear-gradient(180deg, #fbfdff, #f3f7fc); border: 2px dashed #aebdd0; border-radius: 15px; cursor: pointer; text-align: center; transition: .18s ease; }
.update-file-picker:hover { color: var(--blue); background: var(--blue-soft); border-color: var(--blue); transform: translateY(-1px); }
.update-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.update-file-icon { display: grid; width: 46px; height: 46px; margin-bottom: 3px; place-items: center; color: var(--blue); background: #fff; border: 1px solid #cfe0fb; border-radius: 13px; box-shadow: 0 6px 16px rgba(37, 99, 235, .12); font-size: 22px; }
.update-file-picker strong { max-width: 100%; overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.update-file-picker small { font-size: 9px; }
.update-package-guide { padding: 22px; }
.update-package-guide h3 { margin: 6px 0 14px; }
.update-package-guide pre { overflow: auto; margin: 0 0 15px; padding: 14px; color: #dbeafe; background: var(--navy); border-radius: 11px; font: 10px/1.65 Consolas, monospace; }
.update-package-guide ul { margin: 0; padding-left: 17px; color: var(--muted); font-size: 10px; line-height: 1.65; }
.update-package-guide code { color: var(--navy); font-weight: 700; }
.update-warning { display: flex; margin-top: 16px; padding: 11px; flex-direction: column; gap: 3px; color: #8a5a00; background: #fff8e8; border: 1px solid #f1d79b; border-radius: 9px; font-size: 9px; line-height: 1.45; }
.update-warning strong { font-size: 10px; }
.update-history { overflow: hidden; }
.update-apply-form { display: flex; min-width: 210px; align-items: center; gap: 6px; margin-bottom: 6px; }
.update-apply-form input { width: 135px; height: 32px; padding: 0 8px; border: 1px solid var(--line); border-radius: 7px; font-size: 9px; }
.update-error { max-width: 280px; margin-top: 5px; color: #b42335; white-space: normal; }
.system-version { display: block; margin-top: 8px; color: #7890aa; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.request-template-list, .request-submission-list { overflow: hidden; }
.request-builder-layout { display: grid; grid-template-columns: minmax(0, 1fr) 370px; align-items: start; gap: 20px; }
.request-general-card { margin-bottom: 18px; }
.request-general-card .field { margin-bottom: 15px; }
.request-fields-panel { overflow: hidden; }
.request-fields-heading { display: flex; min-height: 76px; padding: 16px 20px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.request-fields-heading > div { display: grid; grid-template-columns: 34px 1fr; align-items: center; column-gap: 9px; }
.request-fields-heading small { grid-column: 2; color: var(--muted); font-size: 9px; }
.request-step { display: grid; width: 34px; height: 34px; grid-row: span 2; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 9px; font-weight: 800; }
#requestFields { padding: 14px; background: #f2f5f9; }
.request-field-card { margin-bottom: 12px; padding: 14px; background: #fff; border: 1px solid #d9e2ed; border-radius: 12px; box-shadow: 0 4px 12px rgba(21, 43, 70, .04); }
.request-field-card:last-child { margin-bottom: 0; }
.request-field-toolbar { display: flex; margin-bottom: 12px; align-items: center; gap: 8px; }
.request-field-toolbar > div { display: flex; margin-left: auto; gap: 4px; }
.field-grip { color: #a3afbd; letter-spacing: -3px; }
.request-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.request-field-grid .field { margin: 0; }
.request-required-check { display: flex; min-height: 34px; margin-top: 10px; padding: 7px 10px; align-items: center; gap: 7px; color: var(--text); background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; font-size: 10px; font-weight: 700; cursor: pointer; }
.request-required-check input[type="hidden"] { display: none; }
.request-required-check input[type="checkbox"] { width: 15px; height: 15px; accent-color: var(--blue); }
.select-options, .file-options { margin-top: 10px; padding: 11px; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; }
.select-options .field { margin: 0; }
.request-builder-save { margin-top: 16px; }
.request-live-preview { position: sticky; top: 90px; max-height: calc(100vh - 115px); padding: 20px; overflow: auto; }
.request-preview-head { padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.request-preview-head h3 { margin: 5px 0; }
.request-preview-head p { margin: 0; color: var(--muted); font-size: 10px; }
#requestPreviewFields { display: flex; padding-top: 15px; flex-direction: column; gap: 13px; }
.preview-field strong { display: block; margin-bottom: 5px; color: var(--text); font-size: 9px; }
.preview-control, .preview-file { height: 34px; background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; }
.preview-control.tall { height: 65px; }
.preview-file { display: grid; place-items: center; color: var(--blue); border-style: dashed; font-size: 9px; font-weight: 700; }
.preview-checkbox { color: var(--muted); font-size: 10px; }
.preview-range { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.preview-range i { height: 34px; background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; }
.request-section-title { margin-bottom: 12px; }
.request-section-title h3 { margin: 4px 0; }
.request-template-picker { margin-bottom: 22px; }
.request-template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.request-template-option { display: flex; min-height: 118px; padding: 16px; align-items: flex-start; gap: 11px; color: var(--text); background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 6px 17px rgba(22, 43, 68, .04); transition: .18s ease; }
.request-template-option:hover { border-color: #a9c8fa; box-shadow: 0 10px 24px rgba(37, 99, 235, .1); transform: translateY(-2px); }
.request-template-option > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 10px; }
.request-template-option div { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 4px; }
.request-template-option strong { font-size: 12px; }
.request-template-option small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.request-template-option em { color: var(--blue); font-size: 8px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.request-template-option > b { margin-left: auto; color: #a7b3c1; }
.request-fill-layout, .request-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 20px; }
.request-fill-form { padding: 22px; }
.request-instructions { margin-bottom: 20px; padding: 14px; color: #36506d; background: #eef6ff; border: 1px solid #c9def8; border-radius: 10px; }
.request-instructions p { margin: 5px 0 0; font-size: 10px; line-height: 1.55; }
.request-dynamic-field { margin-bottom: 18px; }
.request-dynamic-field > label:first-child { display: flex; margin-bottom: 6px; flex-direction: column; gap: 2px; color: var(--text); font-size: 10px; font-weight: 700; }
.request-dynamic-field > label b { color: #d0394d; }
.request-dynamic-field > label small { color: var(--muted); font-size: 8px; font-weight: 400; }
.request-dynamic-field > input, .request-dynamic-field > textarea, .request-dynamic-field > select, .request-date-range input { width: 100%; min-height: 42px; padding: 9px 11px; color: var(--text); outline: none; background: #fff; border: 1px solid #d5dfeb; border-radius: 9px; font: 11px "Manrope", sans-serif; }
.request-dynamic-field > input:focus, .request-dynamic-field > textarea:focus, .request-dynamic-field > select:focus, .request-date-range input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.request-date-range { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.request-date-range label span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.request-confirm-check { display: flex !important; min-height: 42px; padding: 9px 11px; align-items: center; gap: 8px; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.request-confirm-check input[type="hidden"] { display: none; }
.request-confirm-check input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--blue); }
.request-upload-control { position: relative; display: flex !important; min-height: 105px; padding: 15px; align-items: center; justify-content: center; flex-direction: column !important; color: var(--muted) !important; background: #f8fafc; border: 1px dashed #aebdd0; border-radius: 11px; cursor: pointer; }
.request-upload-control input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.request-upload-control > span { color: var(--blue); font-size: 22px; }
.request-upload-control > strong { color: var(--text); font-size: 10px; }
.request-fill-help, .request-review-result { padding: 20px; }
.request-fill-help h3 { margin: 5px 0 9px; }
.request-fill-help p { color: var(--muted); font-size: 10px; line-height: 1.6; }
.request-fill-help dl { margin: 16px 0 0; }
.request-fill-help dl div { display: flex; padding: 9px 0; justify-content: space-between; border-top: 1px solid var(--line); font-size: 10px; }
.request-answer-list { overflow: hidden; }
.request-status-banner { display: flex; padding: 16px 20px; align-items: center; justify-content: space-between; background: #f4f6f9; border-bottom: 1px solid var(--line); }
.request-status-banner span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.request-status-banner.approved { color: #147a48; background: #eefbf4; }
.request-status-banner.rejected { color: #a92c3b; background: #fff1f2; }
.request-answer { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 15px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.request-answer > span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.request-answer > div > strong { color: var(--text); font-size: 11px; line-height: 1.5; }
.request-file-link { display: flex; margin-bottom: 6px; padding: 9px 11px; align-items: center; gap: 8px; color: var(--text); background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; }
.request-file-link > span { color: var(--blue); font-size: 16px; }
.request-file-link small { margin-left: auto; color: var(--muted); font-size: 8px; }
.request-review-card .field { margin-bottom: 14px; }
.request-review-result p { color: var(--text); font-size: 11px; line-height: 1.6; }
.request-review-result small { color: var(--muted); font-size: 8px; }

.settings-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 20px; }
.settings-help { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.mail-server-settings .alert{margin-bottom:18px}.mail-field-disabled{opacity:.48}.mail-field-disabled input,.mail-field-disabled select{pointer-events:none}.mail-cron-note{display:grid;grid-template-columns:40px 1fr;gap:13px;align-items:start;margin-top:18px;padding:15px;border:1px solid #cddcf4;border-radius:13px;background:#f3f7ff}.mail-cron-note>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#dfeaff;color:#275fbe;font-size:1.15rem}.mail-cron-note strong{display:block;color:#17365d}.mail-cron-note p{margin:4px 0 10px;color:var(--muted);font-size:.78rem}.mail-cron-note code{display:block;padding:10px 12px;border-radius:9px;background:#152942;color:#dbeafe;font-size:.72rem;white-space:normal;overflow-wrap:anywhere}
.logo-preview {
    display: grid;
    width: 180px;
    height: 130px;
    margin: 20px auto;
    padding: 15px;
    place-items: center;
    overflow: hidden;
    color: var(--blue);
    background:
        linear-gradient(45deg, #f3f5f8 25%, transparent 25%),
        linear-gradient(-45deg, #f3f5f8 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #f3f5f8 75%),
        linear-gradient(-45deg, transparent 75%, #f3f5f8 75%);
    background-position: 0 0, 0 8px, 8px -8px, -8px 0;
    background-size: 16px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    font: 800 38px "Manrope", sans-serif;
}
.logo-preview img { width: 100%; height: 100%; object-fit: contain; }
.favicon-preview {
    display: grid;
    width: 72px;
    height: 72px;
    margin: 18px auto;
    place-items: center;
    overflow: hidden;
    background: #f7f9fb;
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(15, 35, 62, .08);
}
.favicon-preview img { width: 46px; height: 46px; object-fit: contain; }
.settings-preview { margin-bottom: 20px; padding: 15px; background: #f7f9fb; border: 1px solid var(--line); border-radius: 10px; }
.settings-preview span, .settings-preview strong, .settings-preview small { display: block; }
.settings-preview span { margin-bottom: 8px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.settings-preview strong { color: var(--navy); font: 800 18px "Manrope", sans-serif; }
.settings-preview small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.attendance-location-switch { margin-bottom: 15px; }
.attendance-map-toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 11px; }
.attendance-map-toolbar span { color: var(--muted); font-size: 10px; }
.attendance-control-map { width: 100%; height: 360px; margin-bottom: 17px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #e8eef5; }
.attendance-control-points { display: grid; gap: 18px; margin: 18px 0; }
.attendance-control-point { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #f8fafc; box-shadow: 0 8px 24px rgba(15, 35, 65, .05); }
.attendance-control-point-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.attendance-control-point-heading > div { display: grid; gap: 3px; }
.attendance-control-point-heading strong { color: var(--ink); font-size: 15px; }
.attendance-control-point-heading small { color: var(--muted); }
.attendance-policy-fallback { margin-top: 16px; }
.attendance-control-point .attendance-control-map { height: 270px; margin-bottom: 15px; }
.attendance-location-fields { margin-top: 0; }

.self-mark-layout { display: grid; grid-template-columns: minmax(310px, 390px) minmax(0, 1fr); align-items: start; gap: 20px; }
.self-mark-card { overflow: hidden; }
.self-mark-clock { padding: 25px; color: white; background: linear-gradient(145deg, #15385f, #2563eb); text-align: center; }
.self-mark-clock small, .self-mark-clock strong, .self-mark-clock span { display: block; }
.self-mark-clock small { color: #bed2ee; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.self-mark-clock strong { margin: 5px 0; font: 800 37px "Manrope", sans-serif; letter-spacing: .04em; }
.self-mark-clock span { color: #d9e6f6; font-size: 10px; text-transform: capitalize; }
.self-mark-person { display: flex; align-items: center; gap: 11px; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.self-mark-person img, .self-mark-person > span { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; object-fit: cover; color: var(--blue); background: var(--blue-soft); border-radius: 11px; font-weight: 800; }
.self-mark-person strong, .self-mark-person small { display: block; }.self-mark-person strong { font-size: 12px; }.self-mark-person small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.self-mark-next { padding: 20px 20px 8px; text-align: center; }.self-mark-next small, .self-mark-next strong { display: block; }.self-mark-next small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.self-mark-next strong { margin-top: 5px; color: var(--navy); font: 800 19px "Manrope", sans-serif; }.self-mark-next p { margin: 6px 0 0; color: #64748b; font-size: 10px; line-height: 1.5; }
.self-mark-card form { padding: 12px 20px 21px; }.self-mark-button { min-height: 54px; font-size: 13px; }.self-mark-button:disabled { cursor: not-allowed; opacity: .55; }
.self-location-status { display: flex; align-items: center; gap: 9px; margin-top: 11px; padding: 10px; color: #53677e; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; }.self-location-status > span { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 7px; }.self-location-status strong, .self-location-status small { display: block; }.self-location-status strong { font-size: 9px; }.self-location-status small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.35; }.self-location-status.error { color: #b42318; background: #fff4f2; border-color: #fecaca; }
.self-mark-events { padding: 21px; }.self-event-list { display: grid; gap: 10px; }.self-event-list article { display: flex; align-items: center; gap: 11px; min-height: 66px; padding: 12px; background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; }.self-event-list article > span { display: grid; width: 33px; height: 33px; flex: 0 0 33px; place-items: center; color: #718399; background: white; border: 1px solid var(--line); border-radius: 9px; font-weight: 800; }.self-event-list article.completed > span { color: white; background: #15976b; border-color: #15976b; }.self-event-list article > div { flex: 1; min-width: 0; }.self-event-list strong, .self-event-list small { display: block; }.self-event-list strong { font-size: 11px; }.self-event-list small { margin-top: 3px; color: var(--muted); font-size: 9px; }.location-state { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; font-size: 8px; font-style: normal; font-weight: 800; }.location-state.inside { color: #087450; background: #e7f8f1; }.location-state.outside { color: #b42318; background: #fff0ed; }.location-state.missing { color: #9a6700; background: #fff8df; }.location-state.unconfigured { color: #53677e; background: #eaf0f6; }
.self-mark-alert strong, .self-mark-alert span, .self-mark-alert small { display: block; }.self-mark-alert span { margin-top: 4px; }.self-mark-alert small { margin-top: 5px; opacity: .8; }
.attendance-location-marks { display: grid; min-width: 150px; gap: 6px; }
.attendance-location-mark { padding: 7px 8px; background: #f8fafc; border: 1px solid var(--line); border-left: 3px solid #94a3b8; border-radius: 7px; }
.attendance-location-mark.inside { border-left-color: #15976b; }.attendance-location-mark.outside { background: #fff8f6; border-left-color: #dc3545; }.attendance-location-mark.missing { background: #fffaf0; border-left-color: #e0a100; }
.attendance-location-mark span { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.attendance-location-mark strong { font-size: 8px; }.attendance-location-mark small { color: var(--muted); font-size: 7px; }.attendance-location-mark em { display: block; margin-top: 3px; color: #607287; font-size: 7px; font-style: normal; font-weight: 700; }.attendance-location-mark.outside em { color: #b42318; }.attendance-location-mark a { display: inline-block; margin-top: 3px; color: var(--blue); font-size: 7px; font-weight: 700; }

.roles-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); align-items: start; gap: 20px; }
.role-create { position: sticky; top: 20px; }
.role-create .field { margin-bottom: 17px; }
.role-list { display: grid; gap: 17px; }
.role-card { position: relative; padding: 22px; }
.role-card-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; }
.role-symbol { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 11px; font: 800 17px "Manrope", sans-serif; }
.role-card-heading > div { flex: 1; min-width: 0; }
.role-name-input { width: 100%; max-width: 280px; height: 31px; padding: 0 7px; outline: none; background: transparent; border: 1px solid transparent; border-radius: 6px; font: 700 16px "Manrope", sans-serif; }
.role-name-input:hover { border-color: var(--line); }
.role-name-input:focus { background: white; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.role-card-heading p { margin: 1px 0 0 7px; color: var(--muted); font-size: 10px; }
.role-description { margin-bottom: 18px; }
.permission-picker { margin-top: 18px; }
.permission-picker.compact-picker { max-height: 520px; margin: 20px 0; padding-right: 5px; overflow-y: auto; }
.permission-picker-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.permission-search { flex: 1; }
.permission-search > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.permission-search input { width: 100%; height: 40px; padding: 0 12px; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 9px; outline: none; }
.permission-search input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.permission-toolbar-actions { display: flex; gap: 3px; }
.permission-toolbar-actions .button { min-height: 38px; padding: 0 9px; font-size: 9px; }
.permission-scope-help { margin: 0 0 12px; padding: 9px 11px; color: #5a6d82; background: #f8fafc; border: 1px solid var(--line); border-radius: 9px; font-size: 10px; line-height: 1.45; }
.permission-scope-help span, .permission-item em { display: inline-flex; align-items: center; color: #1d5ed3; background: #eaf1ff; border: 1px solid #ccdcff; border-radius: 999px; font-style: normal; font-weight: 800; }
.permission-scope-help span { margin-right: 4px; padding: 2px 7px; font-size: 8px; text-transform: uppercase; }
.permission-module-list { display: grid; gap: 9px; }
.permission-module { overflow: hidden; background: #f8fafc; border: 1px solid var(--line); border-radius: 11px; }
.permission-module[hidden] { display: none; }
.permission-module > summary { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 9px 12px; cursor: pointer; list-style: none; }
.permission-module > summary::-webkit-details-marker { display: none; }
.permission-module[open] > summary { background: white; border-bottom: 1px solid var(--line); }
.permission-module-icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 8px; font: 800 12px "Manrope", sans-serif; }
.permission-module-title { flex: 1; min-width: 0; }
.permission-module-title strong, .permission-module-title small { display: block; }
.permission-module-title strong { color: var(--navy); font-size: 12px; }
.permission-module-title small { margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 500; }
.permission-selected-count { flex: 0 0 auto; padding: 4px 7px; color: #53667b; background: white; border: 1px solid var(--line); border-radius: 999px; font-size: 8px; font-weight: 800; }
.permission-chevron { color: #74859a; font-size: 21px; line-height: 1; transform: rotate(90deg); transition: transform .15s ease; }
.permission-module[open] .permission-chevron { transform: rotate(-90deg); }
.permission-module-body { padding: 12px; }
.permission-module-actions { display: flex; justify-content: flex-end; gap: 6px; margin-bottom: 10px; }
.permission-module-actions button { padding: 5px 8px; color: var(--blue); background: white; border: 1px solid #d4e0f4; border-radius: 7px; cursor: pointer; font-size: 8px; font-weight: 800; }
.permission-submodule + .permission-submodule { margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line); }
.permission-submodule h4 { margin: 0 0 8px; color: #697b90; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.permission-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.compact-picker .permission-items { grid-template-columns: 1fr; }
.permission-item { display: flex; align-items: flex-start; gap: 8px; min-width: 0; margin: 0; padding: 9px; cursor: pointer; background: white; border: 1px solid #e2e8f0; border-radius: 8px; }
.permission-item:hover { border-color: #bfd1f1; box-shadow: 0 4px 12px rgba(16,36,62,.05); }
.permission-item[hidden] { display: none; }
.permission-item input { width: 15px; height: 15px; flex: 0 0 15px; margin-top: 1px; accent-color: var(--blue); }
.permission-item > span { min-width: 0; color: #48596c; font-size: 11px; line-height: 1.3; }
.permission-item strong { font-weight: 700; }
.permission-item em { margin-left: 4px; padding: 1px 6px; vertical-align: 1px; font-size: 7px; letter-spacing: .03em; text-transform: uppercase; }
.permission-item small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 400; line-height: 1.4; }
.role-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--line); }
.button.text.role-delete-button { margin-right: auto; color: var(--red); background: #fff5f6; border-color: #f7c7ce; font-weight: 800; }
.button.text.role-delete-button:hover { color: #b42335; background: #ffe8eb; border-color: #efa5b0; }
.role-delete { position: absolute; right: 165px; bottom: 22px; }
.role-delete .button { min-height: 42px; color: var(--red); }

.date-filter { display: flex; align-items: flex-end; gap: 8px; }
.date-filter label span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.date-filter input { height: 42px; padding: 0 11px; color: var(--ink); background: white; border: 1px solid var(--line); border-radius: 8px; }
.attendance-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 13px; margin-bottom: 20px; }
.attendance-stats article { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 15px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.attendance-stats .stat-icon { width: 38px; height: 38px; flex: 0 0 38px; font-size: 16px; }
.attendance-stats strong, .attendance-stats small { display: block; }
.attendance-stats strong { font: 800 19px "Manrope", sans-serif; }
.attendance-stats small { margin-top: 1px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.attendance-layout { display: grid; grid-template-columns: 335px minmax(0, 1fr); align-items: start; gap: 20px; }
.check-in-panel { position: sticky; top: 20px; overflow: hidden; }
.check-in-panel form { padding: 21px; }
.check-in-panel .field { margin-bottom: 16px; }
.check-in-clock { padding: 23px; color: white; background: linear-gradient(140deg, #163b68, #2563eb); text-align: center; }
.check-in-clock span, .check-in-clock strong, .check-in-clock small { display: block; }
.check-in-clock span { color: #bcd1ef; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.check-in-clock strong { margin: 5px 0; font: 800 32px "Manrope", sans-serif; letter-spacing: .04em; }
.check-in-clock small { color: #d5e4f7; font-size: 10px; text-transform: capitalize; }
.worker-shift { margin: -4px 0 16px; padding: 12px; background: var(--blue-soft); border: 1px solid #d5e2fc; border-radius: 9px; }
.worker-shift span, .worker-shift strong, .worker-shift small { display: block; }
.worker-shift span { color: var(--blue); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.worker-shift strong { margin: 4px 0 2px; color: var(--navy); font-size: 12px; }
.worker-shift small { color: var(--muted); font-size: 9px; }
.location-button { display: flex; width: 100%; align-items: center; gap: 10px; margin-bottom: 17px; padding: 11px; color: #5e7085; background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 9px; text-align: left; }
.location-button > span:first-child { display: grid; width: 29px; height: 29px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 7px; font-size: 17px; }
.location-button strong, .location-button small { display: block; }
.location-button strong { font-size: 10px; }
.location-button small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.location-button.captured { color: var(--green); background: var(--green-soft); border-color: #9cdcc4; border-style: solid; }
.check-in-submit:disabled { cursor: not-allowed; opacity: .55; }
.server-note { margin: 10px 0 0; color: var(--muted); font-size: 8px; text-align: center; }
.attendance-list { min-width: 0; overflow: hidden; }
.attendance-list.full-width { grid-column: 1 / -1; }
.live-badge { display: inline-flex; align-items: center; gap: 6px; color: var(--green); font-size: 10px; font-weight: 700; }
.live-badge i { width: 7px; height: 7px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 4px var(--green-soft); }
.time-value { font: 700 14px "Manrope", sans-serif; }
.map-link { color: var(--blue); font-size: 10px; font-weight: 600; }
.muted { color: var(--muted); }
.observation-cell { max-width: 180px; color: var(--muted); }
.lunch-board { overflow: hidden; }
.lunch-table { min-width: 1080px; }
.lunch-table tr.at-lunch-row td { background: #fffdf7; }
.lunch-action-heading { min-width: 250px; }
.lunch-action-cell { min-width: 250px; }
.event-form { display: flex; align-items: center; gap: 7px; }
.event-form input { width: 130px; height: 36px; padding: 0 9px; outline: none; background: white; border: 1px solid var(--line); border-radius: 7px; font-size: 10px; }
.event-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.event-form .button { min-height: 36px; padding: 0 11px; font-size: 10px; white-space: nowrap; }
.button.lunch-start { color: #8b5b08; background: var(--amber-soft); border-color: #f2d99c; }
.button.lunch-start:hover { background: #ffedbd; }
.completed-event { color: var(--green); font-size: 10px; font-weight: 700; }
.event-note { display: block; max-width: 150px; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.checkout-board { overflow: hidden; }
.checkout-table { min-width: 1180px; }
.checkout-table tr.completed-row td { background: #fbfefc; }
.checkout-action-heading, .checkout-action-cell { min-width: 250px; }
.button.checkout-button { color: white; background: var(--green); border-color: var(--green); }
.button.checkout-button:hover { background: #0f7e59; }
.blocked-event { color: var(--amber); font-size: 10px; font-weight: 700; }

.history-range { display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; color: #536479; background: white; border: 1px solid var(--line); border-radius: 9px; font-size: 11px; font-weight: 600; text-transform: capitalize; }
.history-range i { color: var(--blue); font-style: normal; }
.history-filters { margin-bottom: 18px; padding: 20px; }
.history-filters form { display: grid; grid-template-columns: .75fr 2.25fr; gap: 26px; }
.filter-section { display: grid; align-items: end; gap: 11px; }
.period-section { grid-template-columns: 1fr 1fr; }
.detail-section { grid-template-columns: repeat(3, 1fr); }
.filter-title { display: flex; grid-column: 1 / -1; align-items: center; gap: 9px; margin-bottom: 2px; }
.filter-title > span { display: grid; width: 29px; height: 29px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 7px; font-size: 9px; font-weight: 700; }
.filter-title strong, .filter-title small { display: block; }
.filter-title strong { color: var(--navy); font-size: 11px; }
.filter-title small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.history-filter-actions { display: flex; align-items: center; gap: 3px; }
.history-stats { display: grid; grid-template-columns: repeat(6, 1fr); margin-bottom: 18px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); }
.history-stats article { padding: 16px 18px; border-right: 1px solid var(--line); }
.history-stats article:last-child { border-right: 0; }
.history-stats span, .history-stats strong, .history-stats small { display: block; }
.history-stats span { color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.history-stats strong { margin: 5px 0 1px; font: 800 18px "Manrope", sans-serif; }
.history-stats small { color: var(--muted); font-size: 9px; }
.green-text { color: var(--green); }
.amber-text { color: var(--amber); }
.blue-text { color: var(--blue); }
.history-results { overflow: hidden; }
.history-table { min-width: 1150px; }
.history-table td:first-child { text-transform: capitalize; white-space: nowrap; }

.export-actions { display: flex; gap: 8px; }
.button.excel-button { color: #087450; background: var(--green-soft); border-color: #acdcca; }
.button.excel-button:hover { background: #d8f3e8; }
.button.pdf-button { color: #b02f3e; background: var(--red-soft); border-color: #f1bcc3; }
.button.pdf-button:hover { background: #ffdde2; }
.report-filter-panel { margin-bottom: 18px; padding: 19px; }
.report-filters { display: grid; grid-template-columns: repeat(6, 1fr) auto auto; align-items: end; gap: 10px; }
.absence-note { margin: 12px 0 0; color: var(--muted); font-size: 9px; }
.report-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 18px; }
.report-kpis article { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 14px; background: white; border: 1px solid var(--line); border-radius: 11px; box-shadow: var(--shadow); }
.kpi-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 8px; font-size: 14px; font-weight: 700; }
.kpi-icon.blue { color: var(--blue); background: var(--blue-soft); }
.kpi-icon.green { color: var(--green); background: var(--green-soft); }
.kpi-icon.amber { color: var(--amber); background: var(--amber-soft); }
.kpi-icon.red { color: var(--red); background: var(--red-soft); }
.kpi-icon.violet { color: #7c3aed; background: #f0eafe; }
.report-kpis small, .report-kpis strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-kpis small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.report-kpis strong { margin-top: 3px; font: 800 16px "Manrope", sans-serif; }
.report-results { overflow: hidden; }
.report-table { min-width: 1050px; }

.personal-dashboard-grid .stat-card strong { font-size: 16px; }
.personal-summary-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .5fr); gap: 18px; }
.personal-timeline, .month-personal-summary { overflow: hidden; }
.personal-events { display: grid; grid-template-columns: repeat(4, 1fr); padding: 25px; }
.personal-events > div { position: relative; display: flex; align-items: center; gap: 10px; }
.personal-events > div:not(:last-child)::after { position: absolute; z-index: 0; top: 16px; right: 6px; left: 39px; height: 2px; content: ""; background: var(--line); }
.personal-events > div > span { z-index: 1; display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: var(--muted); background: #eef2f6; border-radius: 50%; font-size: 10px; font-weight: 700; }
.personal-events > div.done > span { color: white; background: var(--green); }
.personal-events > div > div { z-index: 1; padding-right: 12px; background: white; }
.personal-events strong, .personal-events small { display: block; }
.personal-events strong { font-size: 11px; }
.personal-events small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.month-personal-summary dl { margin: 0; padding: 14px 22px 22px; }
.month-personal-summary dl div { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--line); }
.month-personal-summary dl div:last-child { border-bottom: 0; }
.month-personal-summary dt { color: var(--muted); font-size: 10px; }
.month-personal-summary dd { margin: 0; color: var(--navy); font: 700 13px "Manrope", sans-serif; }

.kiosk-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.kiosk-heading h2 { margin: 5px 0; font-size: 27px; }
.kiosk-heading p { margin: 0; color: var(--muted); }
.kiosk-live-clock { min-width: 210px; text-align: right; }
.kiosk-live-clock span, .kiosk-live-clock strong { display: block; text-transform: capitalize; }
.kiosk-live-clock span { color: var(--muted); font-size: 10px; }
.kiosk-live-clock strong { margin-top: 3px; color: var(--navy); font: 800 27px "Manrope", sans-serif; letter-spacing: .05em; }
.kiosk-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); align-items: start; gap: 20px; }
.kiosk-main { display: grid; gap: 16px; }
.scanner-panel { padding: 28px; text-align: center; }
.scanner-visual { position: relative; display: grid; width: 70px; height: 70px; margin: 0 auto 14px; place-items: center; overflow: hidden; color: var(--blue); background: var(--blue-soft); border-radius: 18px; }
.scanner-visual i { font-size: 29px; font-style: normal; }
.scanner-visual span { position: absolute; z-index: 1; right: 7px; left: 7px; height: 2px; background: var(--red); box-shadow: 0 0 8px var(--red); animation: scan-line 1.8s ease-in-out infinite; }
@keyframes scan-line { 0%, 100% { top: 15px; } 50% { top: 53px; } }
.scanner-panel h3 { margin: 0 0 5px; font-size: 18px; }
.scanner-panel > p { margin: 0 0 22px; color: var(--muted); font-size: 11px; }
.scanner-panel form { display: flex; max-width: 700px; margin: auto; gap: 9px; }
.scan-input-wrap { display: flex; flex: 1; align-items: center; gap: 10px; height: 55px; padding: 0 13px; background: white; border: 2px solid #cfd9e6; border-radius: 11px; transition: .18s; }
.scan-input-wrap:focus-within { border-color: var(--blue); box-shadow: 0 0 0 4px var(--blue-soft); }
.scan-input-wrap > span { color: var(--blue); font-size: 25px; }
.scan-input-wrap input { width: 100%; height: 100%; outline: none; border: 0; font-size: 18px; font-weight: 600; }
.scan-input-wrap kbd { padding: 5px 7px; color: var(--muted); background: #f1f4f7; border: 1px solid var(--line); border-radius: 5px; font: 700 8px "DM Sans", sans-serif; }
.scan-submit { min-height: 55px; }
.scan-result { display: flex; min-height: 125px; align-items: center; gap: 17px; padding: 20px; border: 1px solid; border-radius: 14px; box-shadow: var(--shadow); }
.scan-result.success { color: #075f43; background: #edfbf5; border-color: #9fe0c8; }
.scan-result.warning { color: #805506; background: #fff9e9; border-color: #efd28d; }
.scan-result.error { color: #9c2937; background: #fff1f3; border-color: #efb6bf; }
.scan-person-photo, .scan-result-icon { display: grid; width: 70px; height: 70px; flex: 0 0 70px; place-items: center; overflow: hidden; color: currentColor; background: rgba(255,255,255,.75); border-radius: 15px; font: 800 26px "Manrope", sans-serif; }
.scan-person-photo img { width: 100%; height: 100%; object-fit: cover; }
.scan-person-data { flex: 1; }
.scan-person-data small { font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.scan-person-data h3 { margin: 4px 0 3px; color: var(--navy); font-size: 20px; }
.scan-person-data p { margin: 0; font-size: 11px; }
.scan-person-data .scan-message { margin-top: 8px; font-weight: 600; }
.scan-time { min-width: 110px; text-align: right; }
.scan-time span, .scan-time strong { display: block; }
.scan-time span { font-size: 8px; font-weight: 700; text-transform: uppercase; }
.scan-time strong { margin-top: 3px; font: 800 25px "Manrope", sans-serif; }
.scan-empty-result { display: flex; min-height: 92px; align-items: center; justify-content: center; gap: 12px; color: var(--muted); background: white; border: 1px dashed #cbd5e1; border-radius: 13px; }
.scan-empty-result > span { display: grid; width: 36px; height: 36px; place-items: center; color: var(--green); background: var(--green-soft); border-radius: 9px; }
.scan-empty-result strong, .scan-empty-result small { display: block; }
.scan-empty-result strong { color: var(--ink); font-size: 11px; }
.scan-empty-result small { margin-top: 2px; font-size: 9px; }
.marking-sequence { display: flex; align-items: center; justify-content: center; gap: 15px; padding: 15px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.marking-sequence > div { display: flex; align-items: center; gap: 8px; }
.marking-sequence > div > span { display: grid; width: 27px; height: 27px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 50%; font-size: 9px; font-weight: 700; }
.marking-sequence strong, .marking-sequence small { display: block; }
.marking-sequence strong { font-size: 10px; }
.marking-sequence small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.marking-sequence > i { color: #b3bfcc; font-style: normal; }
.recent-marks { overflow: hidden; }
.recent-mark-list { padding: 5px 18px; }
.recent-mark-list article { display: flex; align-items: center; gap: 10px; min-height: 64px; border-bottom: 1px solid var(--line); }
.recent-mark-list article:last-child { border-bottom: 0; }
.recent-avatar { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 9px; font-size: 11px; font-weight: 700; }
.recent-mark-list article div { flex: 1; min-width: 0; }
.recent-mark-list strong, .recent-mark-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recent-mark-list strong { font-size: 10px; }
.recent-mark-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.recent-mark-list time { color: var(--navy); font: 700 11px "Manrope", sans-serif; }
.kiosk-help { margin: 8px 18px 18px; padding: 13px; color: #587087; background: #f4f8fc; border-radius: 9px; }
.kiosk-help strong { font-size: 9px; }
.kiosk-help p { margin: 4px 0 0; font-size: 8px; line-height: 1.5; }

@media (max-width: 1100px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .stats-grid.dashboard-grid { grid-template-columns: repeat(3, 1fr); }
    .phase-list { grid-template-columns: repeat(2, 1fr); gap: 25px; }
    .phase:nth-child(2)::after { display: none; }
    .catalog-layout { grid-template-columns: 280px minmax(0, 1fr); }
    .catalog-fields { grid-template-columns: 1fr; }
    .catalog-fields small { grid-column: auto; }
    .shift-inline-fields { grid-template-columns: repeat(2, 1fr); }
    .special-schedules { grid-template-columns: 1fr; }
    .update-layout { grid-template-columns: 1fr; }
    .request-builder-layout, .request-fill-layout, .request-detail-layout { grid-template-columns: 1fr; }
    .request-live-preview { position: static; max-height: none; }
    .request-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .settings-layout { grid-template-columns: minmax(0, 1fr) 270px; }
    .roles-layout { grid-template-columns: 280px minmax(0, 1fr); }
    .permission-picker { grid-template-columns: 1fr; }
    .attendance-stats { grid-template-columns: repeat(3, 1fr); }
    .attendance-layout { grid-template-columns: 300px minmax(0, 1fr); }
    .history-filters form { grid-template-columns: 1fr; }
    .detail-section { grid-template-columns: repeat(3, 1fr); }
    .history-stats { grid-template-columns: repeat(3, 1fr); }
    .history-stats article:nth-child(3) { border-right: 0; }
    .history-stats article:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
    .report-filters { grid-template-columns: repeat(3, 1fr); }
    .report-kpis { grid-template-columns: repeat(4, 1fr); }
    .personal-summary-layout { grid-template-columns: 1fr; }
    .dashboard-people-layout { grid-template-columns: 1fr; }
    .kiosk-layout { grid-template-columns: minmax(0, 1fr) 300px; }
    .marking-sequence { gap: 8px; }
}
@media (max-width: 820px) {
    .sidebar { transform: translateX(-100%); box-shadow: 15px 0 40px rgba(0,0,0,.15); transition: transform .2s ease; }
    .sidebar.open { transform: translateX(0); }
    .main { width: 100%; margin-left: 0; }
    .topbar { height: 76px; padding: 0 20px; justify-content: flex-start; gap: 14px; }
    .topbar .today { margin-left: auto; }
    .menu-button { display: block; }
    .content { padding: 16px 14px 28px; }
    .form-layout { grid-template-columns: 1fr; }
    .form-side { grid-row: 1; }
    .sticky { position: static; }
    .login-shell { grid-template-columns: 1fr; background: white; }
    .login-visual { display: none; }
    .login-form-wrap { padding: 28px; }
    .mobile-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 50px; color: var(--navy); font: 800 19px "Manrope", sans-serif; letter-spacing: .08em; }
    .catalog-layout { grid-template-columns: 1fr; }
    .settings-layout { grid-template-columns: 1fr; }
    .roles-layout { grid-template-columns: 1fr; }
    .role-create { position: static; }
    .self-mark-layout { grid-template-columns: 1fr; }
    .permission-items { grid-template-columns: 1fr; }
    .permission-picker-toolbar { align-items: stretch; flex-direction: column; }
    .permission-toolbar-actions { justify-content: flex-end; }
    .attendance-layout { grid-template-columns: 1fr; }
    .check-in-panel { position: static; }
    .detail-section { grid-template-columns: repeat(2, 1fr); }
    .report-kpis { grid-template-columns: repeat(3, 1fr); }
    .personal-events { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .personal-events > div:nth-child(2)::after { display: none; }
    .kiosk-layout { grid-template-columns: 1fr; }
    .attendance-map-toolbar { align-items: stretch; flex-direction: column; }
    .attendance-control-map { height: 300px; }
}
@media (max-width: 580px) {
    .today { display: none; }
    .welcome-row, .page-actions { align-items: stretch; flex-direction: column; }
    .birthday-calendar-heading { align-items: stretch; flex-direction: column; gap: 16px; }
    .birthday-calendar-navigation { justify-content: space-between; }
    .stats-grid, .phase-list, .form-grid { grid-template-columns: 1fr; }
    .request-template-grid, .request-field-grid, .request-date-range { grid-template-columns: 1fr; }
    .request-answer { grid-template-columns: 1fr; gap: 6px; }
    .request-fields-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
    .field.span-2, .form-grid > .span-2 { grid-column: auto; }
    .conditional-fields { grid-template-columns: 1fr; }
    .family-card-grid { grid-template-columns: 1fr; }
    .phase::after { display: none; }
    .filters { flex-direction: column; }
    .search-box { min-width: 0; }
    .pagination { align-items: flex-start; flex-direction: column; gap: 10px; }
    .catalog-tabs { display: flex; overflow-x: auto; }
    .catalog-tabs a { flex: 0 0 auto; }
    .catalog-item, .catalog-edit-form { align-items: flex-start; }
    .catalog-item-icon { display: none; }
    .catalog-edit-form { flex-wrap: wrap; }
    .catalog-fields { width: 100%; flex-basis: 100%; }
    .role-card-heading { align-items: flex-start; flex-wrap: wrap; }
    .role-card-heading .catalog-status { margin-left: 54px; }
    .role-delete { position: static; margin-top: 8px; text-align: right; }
    .attendance-heading, .date-filter { align-items: stretch; }
    .date-filter { flex-direction: column; }
    .attendance-stats { grid-template-columns: repeat(2, 1fr); }
    .stats-grid.dashboard-grid { grid-template-columns: 1fr; }
    .history-range { align-self: flex-start; }
    .period-section, .detail-section { grid-template-columns: 1fr; }
    .history-stats { grid-template-columns: repeat(2, 1fr); }
    .history-stats article:nth-child(3) { border-right: 1px solid var(--line); }
    .history-stats article:nth-child(even) { border-right: 0; }
    .history-stats article:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
    .report-heading { align-items: stretch; }
    .export-actions { flex-direction: column; }
    .report-filters { grid-template-columns: 1fr; }
    .report-kpis { grid-template-columns: repeat(2, 1fr); }
    .personal-events { grid-template-columns: 1fr; }
    .personal-events > div::after { display: none; }
    .kiosk-heading { align-items: flex-start; flex-direction: column; }
    .kiosk-live-clock { text-align: left; }
    .scanner-panel { padding: 20px; }
    .scanner-panel form { flex-direction: column; }
    .marking-sequence { align-items: stretch; flex-direction: column; }
    .marking-sequence > i { display: none; }
    .scan-result { align-items: flex-start; flex-wrap: wrap; }
    .scan-time { width: 100%; text-align: left; }
}

/* Carnets del personal */
.inline-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.carnet-filter-panel { margin-bottom: 24px; }
.employee-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(430px, 1fr)); align-items: start; gap: 26px; }
.employee-card-item { display: grid; justify-items: center; gap: 10px; }
.employee-id-card {
    position: relative;
    width: 428px;
    height: 270px;
    overflow: hidden;
    color: #14243a;
    background:
        radial-gradient(circle at 92% 8%, rgba(30, 110, 184, .13), transparent 30%),
        #fff;
    border: 1px solid #dce4ed;
    border-radius: 17px;
    box-shadow: 0 14px 35px rgba(16, 38, 64, .14);
}
.card-accent { position: absolute; z-index: 2; inset: 0 auto 0 0; width: 7px; background: linear-gradient(180deg, var(--red), #be1f2d); }
.employee-card-header { display: flex; height: 61px; align-items: center; justify-content: space-between; padding: 0 18px 0 25px; color: white; background: linear-gradient(110deg, #10233e, #173b64); }
.employee-card-brand { display: flex; min-width: 0; align-items: center; gap: 10px; }
.employee-card-brand > img, .employee-card-brand > span { width: 35px; height: 35px; flex: 0 0 35px; object-fit: contain; border-radius: 8px; }
.employee-card-brand > span { display: grid; place-items: center; color: var(--navy); background: white; font: 800 18px "Manrope", sans-serif; }
.employee-card-brand strong, .employee-card-brand small { display: block; }
.employee-card-brand strong { overflow: hidden; font: 800 17px "Manrope", sans-serif; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.employee-card-brand small { margin-top: 2px; color: #b8c9dc; font-size: 7px; font-weight: 700; letter-spacing: .16em; }
.employee-card-status { padding: 5px 7px; border-radius: 20px; font-size: 6px; font-weight: 800; letter-spacing: .11em; }
.employee-card-status.active { color: #d9fff2; background: rgba(26, 178, 126, .23); border: 1px solid rgba(105, 231, 188, .35); }
.employee-card-status.inactive { color: #ffe2e5; background: rgba(215, 52, 70, .25); border: 1px solid rgba(255, 135, 148, .35); }
.employee-card-body { display: grid; grid-template-columns: 82px minmax(0, 1fr) 80px; height: 151px; align-items: center; gap: 13px; padding: 13px 18px 9px 25px; }
.employee-card-photo { display: grid; width: 82px; height: 105px; place-items: center; overflow: hidden; color: #1d5f9e; background: #eaf2fa; border: 3px solid white; border-radius: 12px; box-shadow: 0 4px 13px rgba(18, 52, 84, .16); font: 800 31px "Manrope", sans-serif; }
.employee-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.employee-card-info { min-width: 0; }
.employee-card-info > small { color: var(--red); font-size: 6px; font-weight: 800; letter-spacing: .17em; }
.employee-card-info h3 { display: -webkit-box; overflow: hidden; margin: 3px 0; color: #10233e; font: 800 16px/1.12 "Manrope", sans-serif; text-transform: uppercase; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.employee-card-info > p { overflow: hidden; margin: 0 0 7px; color: #557087; font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.employee-card-info dl { display: grid; margin: 0; gap: 3px; }
.employee-card-info dl div { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 4px; }
.employee-card-info dt { color: #8b9bab; font-size: 6px; font-weight: 800; text-transform: uppercase; }
.employee-card-info dd { overflow: hidden; margin: 0; font-size: 7px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.employee-card-qr { text-align: center; }
.employee-card-qr img { display: block; width: 75px; height: 75px; padding: 3px; background: white; border: 1px solid #dce4ed; border-radius: 7px; }
.employee-card-qr small { display: block; margin-top: 3px; color: #637b91; font-size: 6px; font-weight: 800; letter-spacing: .13em; }
.employee-card-footer { display: flex; height: 58px; align-items: center; gap: 12px; padding: 6px 18px 7px 25px; background: #f1f5f9; border-top: 1px solid #e0e7ef; }
.employee-card-barcode { width: 218px; text-align: center; }
.employee-card-barcode img { display: block; width: 100%; height: 30px; object-fit: fill; }
.employee-card-barcode span { display: block; margin-top: 1px; color: #20364f; font: 700 7px "DM Sans", sans-serif; letter-spacing: .24em; }
.employee-card-footer > small { margin-left: auto; color: #77899a; font-size: 5px; font-weight: 800; letter-spacing: .12em; text-align: right; }
.card-view-link { color: var(--blue); font-size: 9px; font-weight: 700; text-decoration: none; }
.card-view-link:hover { text-decoration: underline; }
.single-employee-card { display: grid; min-height: 430px; place-items: center; padding: 45px; background: linear-gradient(145deg, #e8eef5, #f7f9fb); border: 1px solid var(--line); border-radius: 16px; }

/* Cuenta personal */
.profile-account-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); align-items: start; gap: 20px; }
.profile-account-card, .profile-password-card { padding: 24px; }
.profile-account-heading { display: flex; align-items: center; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.profile-account-heading > img, .profile-account-heading > span { display: grid; width: 78px; height: 78px; flex: 0 0 78px; place-items: center; object-fit: cover; color: var(--blue); background: var(--blue-soft); border-radius: 18px; font: 800 28px "Manrope", sans-serif; }
.profile-account-heading small { color: var(--red); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.profile-account-heading h3 { margin: 5px 0 2px; color: var(--navy); font-size: 21px; }
.profile-account-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.profile-account-data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding-top: 8px; }
.profile-account-data div { min-width: 0; padding: 13px 10px; border-bottom: 1px solid var(--line); }
.profile-account-data dt { margin-bottom: 4px; color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.profile-account-data dd { overflow: hidden; margin: 0; color: var(--ink); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.profile-family { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.profile-family h4 { margin: 0 0 10px; color: var(--navy); }
.profile-family > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.profile-family span { color: var(--muted); font-size: 12px; text-align: right; }
.profile-equipment strong small { display: block; margin-top: 3px; color: var(--muted); font-weight: 600; }
.profile-password-card h3 { margin: 5px 0; color: var(--navy); font-size: 19px; }
.profile-password-card > p { margin: 0 0 20px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.profile-password-form { display: grid; gap: 14px; }
.profile-password-form .button { justify-self: start; margin-top: 4px; }
.field-error { color: var(--red) !important; }

@media (max-width: 580px) {
    .employee-card-grid { grid-template-columns: 1fr; }
    .employee-card-item { width: 100%; overflow-x: auto; justify-items: start; padding-bottom: 5px; }
    .single-employee-card { overflow-x: auto; justify-content: start; padding: 24px 12px; }
    .card-page-actions .inline-actions { align-items: stretch; flex-direction: column; }
    .profile-account-layout { grid-template-columns: 1fr; }
    .profile-account-data { grid-template-columns: 1fr; }
}

@media print {
    @page { size: A4 portrait; margin: 10mm; }
    body { background: white !important; }
    .sidebar, .topbar, .no-print, .alert { display: none !important; }
    .app-shell, .main, .content { display: block !important; width: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: white !important; }
    .employee-card-grid { display: grid; grid-template-columns: repeat(2, 85.6mm); justify-content: center; gap: 7mm 6mm; }
    .employee-card-item { position: relative; display: block; width: 85.6mm; height: 53.98mm; break-inside: avoid; page-break-inside: avoid; }
    .employee-id-card { position: absolute; top: 0; left: 0; width: 428px; height: 270px; border-radius: 17px; box-shadow: none; transform: scale(.755); transform-origin: top left; break-inside: avoid; page-break-inside: avoid; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    .single-employee-card { position: relative; display: block; width: 85.6mm; height: 53.98mm; min-height: 0; margin: 0 auto; padding: 0; background: white; border: 0; }
}

/* Reclutamiento */
.recruitment-created-link { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(420px,1.35fr); align-items:center; gap:20px; margin-bottom:18px; padding:19px 22px; border-color:#b8cdf8; }
.recruitment-created-link strong,.recruitment-created-link small { display:block; }.recruitment-created-link strong { color:var(--navy); }.recruitment-created-link small { margin-top:4px; color:var(--muted); font-size:9px; }
.recruitment-link-copy { display:flex; gap:8px; }.recruitment-link-copy input,.recruitment-link-actions input { min-width:0; flex:1; padding:0 12px; border:1px solid var(--line); border-radius:9px; background:#f8fafc; }
.recruitment-create-panel,.recruitment-list-panel { margin-bottom:20px; padding:22px; }.recruitment-link-form { margin-bottom:14px; }.recruitment-link-form textarea { min-height:82px; }
.recruitment-filters { display:grid; grid-template-columns:minmax(220px,1fr) 190px auto; align-items:end; gap:10px; margin-bottom:18px; }
.recruitment-list { display:grid; gap:11px; }.recruitment-link-card { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 0; border-bottom:1px solid var(--line); }.recruitment-link-card:last-child { border-bottom:0; }
.recruitment-link-main { min-width:220px; }.recruitment-link-main h3 { margin:6px 0 3px; color:var(--navy); font-size:13px; }.recruitment-link-main p,.recruitment-link-main small { display:block; margin:0; color:var(--muted); font-size:9px; }.recruitment-link-main small { margin-top:4px; }
.recruitment-status { display:inline-flex; padding:4px 8px; color:#775909; background:#fff3c4; border-radius:999px; font-size:8px; font-weight:800; text-transform:uppercase; }.recruitment-status.used { color:#0b6849; background:#d9f5e9; }.recruitment-status.expired,.recruitment-status.cancelled { color:#9b3542; background:#fee4e7; }
.recruitment-link-actions { display:flex; min-width:320px; align-items:center; justify-content:flex-end; gap:7px; }.recruitment-link-actions form { margin:0; }.icon-button.danger { color:#b52e41; }
.recruitment-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:start; gap:20px; }.recruitment-detail-section { margin-bottom:18px; padding:22px; }
.recruitment-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:0; overflow:hidden; background:var(--line); border:1px solid var(--line); border-radius:11px; }.recruitment-data-grid>div { min-height:64px; padding:12px 14px; background:white; }.recruitment-data-grid .wide { grid-column:1/-1; }.recruitment-data-grid dt { color:var(--muted); font-size:8px; font-weight:700; text-transform:uppercase; }.recruitment-data-grid dd { margin:5px 0 0; color:var(--navy); font-size:10px; line-height:1.5; overflow-wrap:anywhere; }
.recruitment-family-row { display:grid; grid-template-columns:1fr 150px 150px; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); font-size:9px; }.recruitment-family-row:last-child { border-bottom:0; }.recruitment-family-row span { color:var(--muted); }.muted-copy { color:var(--muted); font-size:9px; }
.recruitment-file-card { position:sticky; top:18px; padding:22px; text-align:center; }.recruitment-photo { display:grid; width:150px; height:150px; margin:0 auto 15px; place-items:center; overflow:hidden; color:white; background:var(--blue); border-radius:18px; font-size:44px; font-weight:800; }.recruitment-photo img { width:100%; height:100%; object-fit:cover; }.recruitment-file-card h3 { margin:0 0 4px; }.recruitment-file-card>small { display:block; color:var(--muted); font-size:9px; line-height:1.5; }
.recruitment-cv-box { display:flex; align-items:center; gap:10px; margin:18px 0; padding:12px; text-align:left; background:#f6f8fb; border:1px solid var(--line); border-radius:10px; }.recruitment-cv-box>span { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; color:var(--blue); background:var(--blue-soft); border-radius:8px; font-size:9px; font-weight:800; }.recruitment-cv-box strong,.recruitment-cv-box small { display:block; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.recruitment-cv-box strong { font-size:9px; }.recruitment-cv-box small { margin-top:3px; color:var(--muted); font-size:7px; }
.recruitment-document-list { display:grid; gap:10px; margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }.recruitment-document-item { padding:12px; background:#f8fafc; border:1px solid var(--line); border-radius:12px; }.recruitment-document-item .recruitment-cv-box { margin:0 0 10px; padding:0; background:transparent; border:0; }.recruitment-document-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.recruitment-document-actions .button { width:100%; min-height:34px; padding:0 9px; font-size:8px; }
@media(max-width:980px){.recruitment-detail-layout{grid-template-columns:1fr}.recruitment-file-card{position:static;grid-row:1}.recruitment-created-link{grid-template-columns:1fr}.recruitment-link-card{align-items:flex-start;flex-direction:column}.recruitment-link-actions{width:100%;min-width:0;justify-content:flex-start}}
@media(max-width:620px){.recruitment-filters,.recruitment-data-grid{grid-template-columns:1fr}.recruitment-data-grid .wide{grid-column:auto}.recruitment-link-actions{align-items:stretch;flex-direction:column}.recruitment-link-actions input{min-height:40px}.recruitment-family-row{grid-template-columns:1fr}.recruitment-link-copy{flex-direction:column}.recruitment-link-copy input{min-height:42px}}

/* Banco y constructor de procesos */
.process-filter-panel { margin-bottom: 20px; padding: 16px; }
.process-filter-panel .filters select { min-width: 180px; }
.process-bank-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.process-card { display: flex; min-height: 275px; flex-direction: column; padding: 21px; }
.process-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.process-code { color: var(--blue); font: 800 10px "Manrope", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.process-card h3 { margin: 18px 0 8px; color: var(--navy); font-size: 17px; line-height: 1.3; }
.process-card > p { flex: 1; margin: 0 0 17px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.process-card-meta { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-card-meta div { padding: 0 10px; border-right: 1px solid var(--line); }
.process-card-meta div:first-child { padding-left: 0; }
.process-card-meta div:last-child { border-right: 0; }
.process-card-meta dt { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
.process-card-meta dd { margin: 4px 0 0; color: var(--ink); font-size: 10px; font-weight: 700; }
.process-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 15px; }
.process-card-footer > small { color: var(--muted); font-size: 8px; }
.button.compact { min-height: 33px; padding: 0 11px; font-size: 9px; }
.process-empty { grid-column: 1 / -1; padding: 55px; }
.process-empty strong { display: block; margin-bottom: 5px; color: var(--navy); }
.process-empty p { margin: 0; }
.process-create-panel { max-width: 850px; padding: 27px; }
.process-editor-heading { position: relative; }
.process-metadata-panel { margin-bottom: 18px; padding: 0; overflow: hidden; }
.process-section-toggle { display: flex; width: 100%; min-height: 69px; align-items: center; justify-content: space-between; padding: 13px 20px; cursor: pointer; color: var(--ink); background: white; border: 0; text-align: left; }
.process-section-toggle span strong, .process-section-toggle span small { display: block; }
.process-section-toggle span strong { font-size: 13px; }
.process-section-toggle span small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.process-section-toggle b { color: var(--blue); font-size: 18px; }
.process-metadata-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; padding: 0 20px 20px; border-top: 1px solid var(--line); }
.process-metadata-grid .field { margin-top: 15px; }
.process-metadata-grid.collapsed { display: none; }
.process-builder-layout { display: grid; grid-template-columns: minmax(520px, 1fr) minmax(620px, 1.05fr); align-items: start; gap: 18px; }
.process-editor-column { display: grid; gap: 18px; min-width: 0; }
.process-editor-panel, .process-attachments-panel { padding: 0; overflow: hidden; }
.process-editor-title { display: flex; min-height: 67px; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 18px; border-bottom: 1px solid var(--line); }
.process-editor-title > div { display: grid; grid-template-columns: 32px 1fr; align-items: center; column-gap: 10px; }
.process-editor-title strong, .process-editor-title small { grid-column: 2; }
.process-editor-title strong { font-size: 12px; }
.process-editor-title small { margin-top: -5px; color: var(--muted); font-size: 8px; }
.process-step { display: grid; width: 32px; height: 32px; grid-row: 1 / 3; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 9px; font: 800 11px "Manrope", sans-serif; }
.rich-toolbar { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px 10px; background: #f5f7fa; border-bottom: 1px solid var(--line); }
.rich-toolbar button, .rich-toolbar select { display: grid; min-width: 31px; height: 30px; padding: 0 8px; place-items: center; cursor: pointer; color: #415267; background: white; border: 1px solid #dce3eb; border-radius: 6px; font: 700 9px "DM Sans", sans-serif; }
.rich-toolbar select { min-width: 90px; }
.rich-toolbar select[data-font-family] { min-width: 120px; }
.rich-toolbar select[data-font-size] { min-width: 68px; }
.rich-toolbar button:hover { color: var(--blue); border-color: #9cbbe6; }
.toolbar-color { display: flex; height: 30px; align-items: center; gap: 5px; padding: 0 6px; cursor: pointer; color: #415267; background: white; border: 1px solid #dce3eb; border-radius: 6px; font-size: 8px; font-weight: 700; }
.toolbar-color > span { min-width: 10px; text-align: center; }
.toolbar-color input { width: 18px; height: 18px; padding: 0; cursor: pointer; background: transparent; border: 0; border-radius: 4px; }
.toolbar-color input::-webkit-color-swatch-wrapper { padding: 1px; }
.toolbar-color input::-webkit-color-swatch { border: 1px solid #b9c4d0; border-radius: 3px; }
.toolbar-cell-color, .toolbar-table-color { padding-left: 7px; }
.rich-editor { min-height: 170px; padding: 20px; overflow: auto; outline: none; color: #111827; background: white; font: 12px/1.55 Arial, sans-serif; }
.rich-editor:focus { box-shadow: inset 0 0 0 2px rgba(41, 105, 190, .18); }
.header-rich-editor { min-height: 210px; }
.content-rich-editor { min-height: 520px; }
.content-pages-editor { display: grid; gap: 20px; padding: 18px; background: #dfe5ec; }
.content-edit-sheet { overflow: hidden; background: white; border: 1px solid #cbd5e1; border-radius: 4px; box-shadow: 0 6px 18px rgba(26, 43, 62, .14); }
.content-edit-sheet-heading { display: flex; height: 35px; align-items: center; justify-content: space-between; padding: 0 11px; color: #58697c; background: #f7f9fb; border-bottom: 1px solid #dce3eb; }
.content-edit-sheet-heading span { font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.content-edit-sheet-heading strong { color: var(--blue); }
.content-edit-sheet-heading button { display: grid; width: 24px; height: 24px; place-items: center; cursor: pointer; color: var(--red); background: #fff1f3; border: 0; border-radius: 6px; font-size: 15px; }
.content-page-area { box-sizing: border-box; width: 100%; height: auto; min-height: 0; aspect-ratio: 210 / 297; padding: 38px 45px; overflow: auto; overflow-wrap: anywhere; }
.content-pages-editor.is-landscape .content-page-area { aspect-ratio: 297 / 210; }
.content-page-area img { max-width: 100%; height: auto; }
.content-page-area table { width: 100%; max-width: 100%; border-collapse: collapse; table-layout: fixed; }
.content-page-area td, .content-page-area th { overflow-wrap: anywhere; }
.content-page-area:focus { box-shadow: inset 0 0 0 2px rgba(41, 105, 190, .2); }
.rich-editor h1 { font-size: 22px; }
.rich-editor h2 { font-size: 18px; }
.rich-editor h3 { font-size: 15px; }
.rich-editor img { max-width: 100%; height: auto; }
.rich-editor table { max-width: 100%; }
.rich-editor td, .rich-editor th { min-width: 30px; }
.editor-tip { margin: 0; padding: 9px 17px; color: var(--muted); background: #fbfcfd; border-top: 1px solid var(--line); font-size: 8px; }
.manual-page-break { display: flex; height: 25px; align-items: center; justify-content: center; margin: 16px 0; color: #7d8da0; border-top: 2px dashed #aeb9c5; }
.manual-page-break span { margin-top: -2px; padding: 0 8px; background: white; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.process-preview-column { min-width: 0; align-self: stretch; }
.process-preview-sticky { position: sticky; top: 12px; overflow: hidden; background: #dfe5ec; border: 1px solid #cfd8e2; border-radius: 13px; box-shadow: var(--shadow); }
.process-preview-heading { display: flex; min-height: 62px; align-items: center; justify-content: space-between; padding: 11px 16px; background: white; border-bottom: 1px solid var(--line); }
.process-preview-heading strong, .process-preview-heading small { display: block; }
.process-preview-heading strong { font-size: 12px; }
.process-preview-heading small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.process-preview { max-height: calc(100vh - 175px); padding: 22px; overflow: auto; zoom: .72; }
.process-sheet { position: relative; box-sizing: border-box; margin: 0 auto 25px; padding: 38px 45px; overflow: hidden; color: #111827; background: white; box-shadow: 0 5px 19px rgba(26, 43, 62, .19); font: 12px/1.45 Arial, sans-serif; }
.process-sheet-header { margin-bottom: 18px; }
.process-sheet-header[hidden] { display: none; }
.process-editor-panel.header-disabled { opacity: .58; }
.process-editor-panel.header-disabled .rich-toolbar,
.process-editor-panel.header-disabled .header-rich-editor,
.process-editor-panel.header-disabled [data-insert-variable] { pointer-events: none; }
.process-sheet-header table { width: 100%; border-collapse: collapse; }
.process-sheet-header img, .process-sheet-body img { max-width: 100%; height: auto; }
.process-sheet-body { min-width: 0; overflow: visible; }
.process-sheet-body > * { max-width: 100%; }
.process-sheet-body > :first-child { margin-top: 0; }
.process-sheet-body h1 { font-size: 22px; }
.process-sheet-body h2 { font-size: 18px; }
.process-sheet-body h3 { font-size: 15px; }
.process-sheet-body table { width: 100%; max-width: 100%; border-collapse: collapse; }
.process-sheet-body td, .process-sheet-body th { overflow-wrap: anywhere; }
.attachment-preview-source { display: none; }
.process-attachment-upload { padding: 19px; }
.process-attachment-upload p { margin: 0 0 12px; color: var(--muted); font-size: 9px; }
.process-attachments-management { display: grid; grid-template-columns: minmax(330px, .8fr) minmax(420px, 1.2fr); gap: 25px; margin-top: 18px; padding: 24px; }
.process-attachments-management h3 { margin: 0 0 4px; }
.process-attachments-management > div > p { margin: 0 0 18px; color: var(--muted); font-size: 9px; }
.process-attachment-list article { display: flex; min-height: 58px; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.process-attachment-list article > span { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 8px; font-size: 8px; font-weight: 800; }
.process-attachment-list article > div { flex: 1; min-width: 0; }
.process-attachment-list strong, .process-attachment-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.process-attachment-list strong { font-size: 10px; }
.process-attachment-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.process-document-view { padding: 24px; overflow: auto; background: #dfe5ec; border-radius: 14px; }
.process-print-pages .process-sheet:last-child { margin-bottom: 0; }
.process-view-status { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding: 13px 18px; }
.process-view-status > div { display: flex; align-items: center; gap: 10px; }
.process-view-status select { min-height: 34px; padding: 0 10px; border: 1px solid var(--line); border-radius: 7px; }
.document-annex-block { margin-top: 22px; padding-top: 14px; border-top: 2px solid #111; }
.document-annex-block li { margin-bottom: 7px; }
.document-annex-block li small { display: block; }
.attachment-print-list { display: grid; gap: 22px; }
.attachment-print-page { overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.attachment-print-page > header { display: flex; min-height: 75px; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 19px; border-bottom: 1px solid var(--line); }
.attachment-print-page > header span, .attachment-print-page > header strong, .attachment-print-page > header small { display: block; }
.attachment-print-page > header span { color: var(--blue); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.attachment-print-page > header strong { margin-top: 3px; color: var(--navy); font-size: 13px; }
.attachment-print-page > header small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.attachment-print-image { display: grid; min-height: 520px; padding: 24px; place-items: center; background: #eef2f6; }
.attachment-print-image img { display: block; max-width: 100%; max-height: 900px; object-fit: contain; box-shadow: 0 5px 20px rgba(20, 39, 64, .15); }
.attachment-document-placeholder { display: grid; min-height: 360px; padding: 40px; place-items: center; align-content: center; text-align: center; }
.attachment-document-placeholder > span { display: grid; width: 70px; height: 70px; margin-bottom: 15px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 16px; font-weight: 800; }
.attachment-document-placeholder strong { color: var(--navy); }
.attachment-document-placeholder p { max-width: 470px; margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }

/* Banco documental y firma electrónica */
.document-variable-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding: 16px 19px; }
.document-variable-sticky { position: sticky; z-index: 25; top: 12px; display: grid; margin-bottom: 0; border-color: #b9cdf8; box-shadow: 0 10px 28px rgba(27, 69, 145, .16); }
.document-variable-group { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.document-variable-group + .document-variable-group { padding-top: 11px; border-top: 1px solid var(--line); }
.document-variable-panel strong, .document-variable-panel small { display: block; }
.document-variable-panel strong { color: var(--navy); font-size: 12px; }
.document-variable-panel small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.document-variable-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.document-variable-buttons button { min-height: 31px; padding: 0 10px; cursor: pointer; color: var(--blue); background: var(--blue-soft); border: 1px solid #cbdafb; border-radius: 7px; font-size: 8px; font-weight: 700; }
.document-assignment-layout { display: grid; grid-template-columns: 430px minmax(0,1fr); align-items: start; gap: 20px; }
.document-assignment-form { padding: 22px; }
.document-assignment-form h3 { margin: 0 0 4px; }
.document-assignment-form > p { margin: 0 0 16px; color: var(--muted); font-size: 9px; }
.contract-variable-form { margin-bottom: 18px; padding: 14px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 10px; }
.signing-window-form { background: var(--blue-soft); border-color: #c4d6fb; }
.contract-variable-form strong, .contract-variable-form small { display: block; }
.contract-variable-form strong { color: var(--navy); font-size: 11px; }
.contract-variable-form small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.contract-variable-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.contract-variable-grid .field:last-child { grid-column: 1 / -1; }
.contract-variable-grid textarea { min-height: 86px; }
.assignment-users-title { display: block; margin-bottom: 7px; color: var(--navy); font-size: 10px; }
.assignment-user-list { max-height: 480px; margin-bottom: 16px; padding-right: 5px; overflow: auto; }
.assignment-user-list label { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 8px 5px; cursor: pointer; border-bottom: 1px solid var(--line); }
.assignment-user-list input { accent-color: var(--blue); }
.assignment-user-list strong, .assignment-user-list small { display: block; }
.assignment-user-list strong { font-size: 10px; }
.assignment-user-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.document-assignment-history { overflow: hidden; }
.document-status-panel { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 20px; padding: 17px 20px; }
.document-status-panel strong, .document-status-panel small { display: block; }
.document-status-panel small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.document-status-panel form { display: flex; gap: 8px; }
.document-status-panel select { min-height: 39px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; }
.my-document-grid { display: grid; gap: 12px; }
.my-document-card { display: flex; min-height: 105px; align-items: center; gap: 15px; padding: 17px 20px; transition: .18s ease; }
.my-document-card:hover { border-color: #aec5eb; transform: translateY(-1px); box-shadow: 0 12px 28px rgba(20,39,64,.1); }
.my-document-icon { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 12px; font-weight: 800; }
.my-document-card > div { flex: 1; min-width: 0; }
.my-document-card small { color: var(--blue); font-size: 8px; font-weight: 800; }
.my-document-card h3 { margin: 5px 0 3px; overflow: hidden; color: var(--navy); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.my-document-card p { margin: 0; color: var(--muted); font-size: 9px; }
.unsigned-document-view .process-sheet::after { position: absolute; z-index: 5; top: 47%; left: 50%; padding: 11px 25px; color: rgba(204,35,52,.22); border: 5px solid rgba(204,35,52,.18); border-radius: 9px; content: "NO FIRMADO"; font: 800 46px "Manrope",sans-serif; letter-spacing: .08em; transform: translate(-50%,-50%) rotate(-28deg); pointer-events: none; white-space: nowrap; }
.document-sign-panel { display: grid; grid-template-columns: minmax(280px,.7fr) minmax(430px,1.3fr); gap: 24px; margin-top: 20px; padding: 24px; }
.document-sign-restriction { margin-top: 20px; }
.document-sign-restriction p { margin: 5px 0 0; }
.document-sign-warning { padding: 18px; color: #774c05; background: var(--amber-soft); border: 1px solid #efd28d; border-radius: 12px; }
.document-sign-warning strong { color: #6b4403; }
.document-sign-warning p { margin: 7px 0 0; font-size: 10px; line-height: 1.6; }
.signed-document-proof { margin-bottom: 18px; padding: 20px; }
.signed-document-proof > div { display: flex; align-items: center; gap: 12px; }
.signed-document-proof > div > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--green); background: var(--green-soft); border-radius: 11px; font-size: 18px; font-weight: 800; }
.signed-document-proof strong, .signed-document-proof small { display: block; }
.signed-document-proof small { max-width: 800px; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; }
.signed-document-proof dl { display: grid; grid-template-columns: repeat(4,1fr); margin: 18px 0 0; border-top: 1px solid var(--line); }
.signed-document-proof dl div { padding: 14px 12px 0 0; }
.signed-document-proof dt { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
.signed-document-proof dd { margin: 4px 0 0; font-size: 10px; font-weight: 700; }
.signed-pdf-frame { width: 100%; height: calc(100vh - 180px); min-height: 680px; background: #dfe5ec; border: 1px solid var(--line); border-radius: 14px; }
.electronic-signature { display: inline-block; min-width: 260px; margin: 18px 0; padding: 14px; color: #0b6045; border: 2px solid var(--green); border-radius: 8px; text-align: center; }
.electronic-signature strong, .electronic-signature span, .electronic-signature small { display: block; }
.electronic-signature span { margin-top: 4px; }
.electronic-signature small { margin-top: 6px; color: #455568; }
.electronic-signature.pending { color: #85600c; border-color: var(--amber); }

/* Logística */
.logistics-heading { padding: 22px; color: white; background: linear-gradient(135deg,var(--navy),#173d67); border-radius: 16px; }
.logistics-heading h2,.logistics-heading p { color: white; }
.logistics-heading p { opacity: .75; }
.logistics-stats { margin-bottom: 18px; }
.logistics-roadmap { padding: 22px; }
.logistics-flow-line { display: flex; align-items: center; gap: 9px; margin-top: 18px; overflow-x: auto; }
.logistics-flow-line span { padding: 8px 12px; color: var(--muted); background: #f4f7fa; border: 1px solid var(--line); border-radius: 20px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.logistics-flow-line span.active { color: var(--blue); background: var(--blue-soft); border-color: #c5d8fb; }
.logistics-flow-line i { color: #9aabba; font-style: normal; }
.logistics-tabs { margin-bottom: 18px; overflow-x: auto; flex-wrap: nowrap; }
.logistics-tabs a { flex: 0 0 auto; white-space: nowrap; }
.logistics-config-layout { display: grid; grid-template-columns: minmax(300px,.68fr) minmax(560px,1.32fr); align-items: start; gap: 18px; }
.logistics-config-layout.single { grid-template-columns: 1fr; }
.logistics-create-panel,.logistics-records { padding: 20px; }
.logistics-fields { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.logistics-fields .span-2 { grid-column: 1 / -1; }
.logistics-switch { min-height: 54px; padding: 9px 11px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 9px; }
.logistics-record-list { display: grid; gap: 10px; margin-top: 14px; }
.logistics-record { position: relative; padding: 14px; background: #fbfcfe; border: 1px solid var(--line); border-radius: 12px; }
.logistics-record > form:first-child { padding-right: 40px; }
.logistics-record > form:last-child { position: absolute; top: 12px; right: 12px; }
.compact-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
.compact-fields .field span,.compact-fields .logistics-switch strong { font-size: 8px; }
.compact-fields input,.compact-fields select { min-height: 36px; }
.audit-json { max-width: 520px; max-height: 210px; padding: 10px; overflow: auto; color: #d8e5f1; background: var(--navy); border-radius: 7px; font: 8px/1.5 monospace; white-space: pre-wrap; }
.logistics-list-panel,.logistics-master-form { padding: 22px; }
.logistics-card-list { display: grid; gap: 11px; margin-top: 17px; }
.logistics-master-card { display: flex; min-height: 125px; align-items: center; gap: 16px; padding: 15px; background: #fbfcfe; border: 1px solid var(--line); border-radius: 13px; }
.logistics-product-photo,.logistics-provider-avatar { display: grid; width: 76px; height: 76px; flex: 0 0 76px; overflow: hidden; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 12px; font-size: 22px; font-weight: 800; }
.logistics-product-photo img { width: 100%; height: 100%; object-fit: cover; }
.logistics-provider-avatar { border-radius: 50%; }
.logistics-master-main { flex: 1; min-width: 0; }
.logistics-master-main small { color: var(--blue); font-size: 8px; font-weight: 800; }
.logistics-master-main h3 { margin: 5px 0 3px; color: var(--navy); font-size: 13px; }
.logistics-master-main p { margin: 0; color: var(--muted); font-size: 9px; }
.logistics-mini-data { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.logistics-mini-data span { padding: 6px 9px; color: var(--muted); background: white; border: 1px solid var(--line); border-radius: 6px; font-size: 9px; line-height: 1.35; }
.logistics-mini-data strong { color: var(--navy); }
.logistics-master-side { display: grid; min-width: 220px; justify-items: end; gap: 10px; }
.logistics-master-side small { color: var(--muted); font-size: 8px; }
.logistics-wide-grid { grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 17px; }
.logistics-section-gap { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); }
.logistics-repeat-list { display: grid; gap: 9px; margin: 15px 0 10px; }
.logistics-repeat-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.2fr auto auto; align-items: end; gap: 8px; padding: 11px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 10px; }
.logistics-repeat-row.account { grid-template-columns: repeat(5,1fr) auto auto; }
.mini-check { display: flex; min-height: 38px; align-items: center; gap: 6px; font-size: 8px; font-weight: 700; }
.logistics-detail-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 18px; }
.logistics-detail-hero,.logistics-detail-data { padding: 22px; }
.logistics-detail-hero { display: flex; align-items: flex-start; gap: 18px; }
.logistics-product-photo.large { width: 130px; height: 130px; flex-basis: 130px; }
.logistics-detail-hero h3 { margin: 12px 0 5px; }
.logistics-detail-hero p { color: var(--muted); font-size: 10px; line-height: 1.6; }
.logistics-detail-data h3 { margin-top: 0; }
.logistics-detail-data dl { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; }
.logistics-detail-data dl div { padding: 11px 10px 11px 0; border-bottom: 1px solid var(--line); }
.logistics-detail-data dl .wide { grid-column: 1/-1; }
.logistics-detail-data dt { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
.logistics-detail-data dd { margin: 4px 0 0; color: var(--navy); font-size: 10px; font-weight: 700; }
.logistics-contact-list { display: grid; gap: 8px; }
.logistics-contact-list article { padding: 11px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 9px; }
.logistics-contact-list strong,.logistics-contact-list small,.logistics-contact-list span { display: block; }
.logistics-contact-list small,.logistics-contact-list span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.logistics-requirement-filters { grid-template-columns: minmax(280px,1fr) 220px auto; }
.logistics-requirement-card { position: relative; display: grid; grid-template-columns: minmax(300px,1fr) auto; gap: 12px; padding: 16px 150px 16px 17px; color: inherit; background: #fbfcfe; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; transition: .18s ease; }
.logistics-requirement-card:hover { border-color: #b9cdf1; box-shadow: 0 8px 22px rgba(20,39,64,.08); transform: translateY(-1px); }
.logistics-requirement-card small { color: var(--blue); font-size: 9px; font-weight: 800; line-height: 1.35; }
.logistics-requirement-card h3 { margin: 6px 0 5px; overflow: hidden; color: var(--navy); font-size: 13px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.logistics-requirement-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.requirement-status { display: inline-flex; min-height: 24px; align-items: center; padding: 0 8px; color: #506174; background: #edf1f5; border-radius: 20px; font-size: 7px; font-weight: 800; text-transform: uppercase; }
.logistics-requirement-card>.requirement-status { position: absolute; top: 16px; right: 16px; }
.requirement-status.pending { color: #8b5a00; background: var(--amber-soft); }.requirement-status.approved,.requirement-status.attended { color: #087050; background: var(--green-soft); }.requirement-status.rejected,.requirement-status.cancelled { color: #a12536; background: var(--red-soft); }.requirement-status.partially_attended { color: var(--blue); background: var(--blue-soft); }
.requirement-status.observed { color: #8a4f05; background: #fff0d6; }
.requirement-lines { display: grid; gap: 9px; margin-top: 16px; }
.requirement-line { display: grid; grid-template-columns: minmax(320px,2fr) minmax(120px,.55fr) minmax(260px,1.5fr) auto; align-items: start; gap: 10px; padding: 13px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 10px; }
.requirement-product-picker{position:relative;display:grid;gap:6px}.requirement-product-combobox{position:relative}.requirement-product-combobox>b{position:absolute;left:12px;top:21px;transform:translateY(-50%);z-index:2;color:#6c7d92;font-size:1rem;pointer-events:none}.requirement-product-combobox>input{width:100%;padding-left:36px!important;padding-right:34px!important;background:#fff!important;border-color:#b9cae1!important}.requirement-product-combobox>input:focus{border-color:#2f6fed!important;box-shadow:0 0 0 3px rgba(47,111,237,.12)}.requirement-product-combobox:after{content:'⌄';position:absolute;right:12px;top:20px;transform:translateY(-50%);color:#61728a;pointer-events:none}.requirement-product-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.requirement-product-options{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:40;max-height:260px;overflow:auto;padding:6px;border:1px solid #bfd0e5;border-radius:11px;background:#fff;box-shadow:0 14px 32px rgba(23,54,93,.18)}.requirement-product-options[hidden]{display:none}.requirement-product-option{display:block;width:100%;padding:10px 11px;border:0;border-radius:8px;background:#fff;color:#203653;text-align:left;font-size:.79rem;cursor:pointer}.requirement-product-option:hover,.requirement-product-option.active{background:#eaf1ff;color:#1e5dc7}.requirement-product-empty{display:block;padding:12px;color:#758398;font-size:.76rem;text-align:center}.requirement-product-picker>[data-product-results]{display:block;min-height:14px;margin:0;color:#718197;font-size:.69rem;line-height:1.25}
.line-subtotal { min-height: 38px; padding: 11px 8px; color: var(--muted); background: white; border: 1px solid var(--line); border-radius: 8px; font-size: 9px; white-space: nowrap; }
.requirement-product-picker>[data-stock-product-results]{display:block;min-height:14px;margin:0;color:#718197;font-size:.69rem;line-height:1.25}
.line-subtotal strong { color: var(--navy); }
.requirement-line .icon-button{margin-top:25px}.requirement-line-footer { display: flex; align-items: center; justify-content: flex-start; gap: 15px; margin-top: 13px; }
.requirement-line-footer>div { color: var(--muted); font-size: 10px; }.requirement-line-footer strong { margin-left: 7px; color: var(--navy); font-size: 16px; }
.requirement-summary { display: grid; grid-template-columns: .8fr 1.2fr; gap: 20px; padding: 22px; }
.requirement-summary h3 { margin: 12px 0 4px; }.requirement-summary p { margin: 0; color: var(--muted); font-size: 9px; }
.requirement-summary dl { display: grid; grid-template-columns: repeat(3,1fr); margin: 0; }.requirement-summary dl div { padding: 9px; border-bottom: 1px solid var(--line); }.requirement-summary dt { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }.requirement-summary dd { margin: 4px 0 0; font-size: 9px; font-weight: 700; }
.requirement-detail-panel,.approval-timeline,.requirement-decision,.requirement-action-panel { margin-top: 16px; padding: 21px; }
.requirement-grand-total { color: var(--blue); font-size: 18px; }
.requirement-table { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }.requirement-table-head,.requirement-table-row { display: grid; grid-template-columns: minmax(300px,1fr) 150px 150px 150px; }.requirement-table-head { color: #718197; background: #f1f4f8; font-size: 7px; font-weight: 800; text-transform: uppercase; }.requirement-table-head span,.requirement-table-row>span { padding: 10px; }.requirement-table-row { align-items: center; border-top: 1px solid var(--line); font-size: 9px; }.requirement-table-row strong,.requirement-table-row small { display: block; }.requirement-table-row small { margin-top: 3px; color: var(--muted); font-size: 7px; }
.approval-timeline h3 { margin-top: 0; }.approval-timeline article { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid var(--line); }.approval-timeline article>span { display: grid; width: 30px; height: 30px; place-items: center; color: var(--muted); background: #edf1f5; border-radius: 50%; font-size: 9px; font-weight: 800; }.approval-timeline article.approved>span { color: #087050; background: var(--green-soft); }.approval-timeline article.rejected>span { color: #a12536; background: var(--red-soft); }.approval-timeline strong,.approval-timeline small { display: block; }.approval-timeline small,.approval-timeline p { margin: 3px 0 0; color: var(--muted); font-size: 8px; }.approval-timeline b { font-size: 8px; }
.approval-timeline article.observed>span { color: #8a4f05; background: #fff0d6; }.approval-cycle { margin-top: 14px; padding: 6px 9px; color: var(--blue); background: var(--blue-soft); border-radius: 6px; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.requirement-decision { display: grid; grid-template-columns: .6fr 1.4fr; gap: 22px; }.requirement-decision h3 { margin: 0; }.requirement-decision p { color: var(--muted); font-size: 9px; }.requirement-action-panel { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.requirement-action-panel strong,.requirement-action-panel small { display: block; }.requirement-action-panel small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.requirement-observed-alert { display: grid; gap: 4px; color: #714004; background: #fff0d6; border-color: #efc477; }.requirement-observed-alert span { font-size: 9px; }
.requirement-reason { margin-bottom: 16px; padding: 17px 20px; }.requirement-reason.observed { color: #714004; background: #fff8e9; border-color: #efc477; }.requirement-reason.cancelled { color: #8f2432; background: var(--red-soft); border-color: #efb7bf; }.requirement-reason strong,.requirement-reason small { display: block; }.requirement-reason p { margin: 7px 0; font-size: 10px; }.requirement-reason small { opacity: .72; font-size: 8px; }
.requirement-cancel-form { display: grid; grid-template-columns: .6fr 1.2fr auto; align-items: end; gap: 16px; margin-top: 16px; padding: 20px; background: #fff8f9; border: 1px solid #efc3c9; border-radius: 13px; }.requirement-cancel-form strong,.requirement-cancel-form small { display: block; }.requirement-cancel-form small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.stock-opening-panel { display: grid; grid-template-columns: .55fr 1.45fr; gap: 24px; margin-bottom: 16px; padding: 22px; }.stock-opening-panel h3 { margin: 4px 0; }.stock-opening-panel p { margin: 0; color: var(--muted); font-size: 9px; }.stock-opening-grid { grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 12px; }
.stock-filters { grid-template-columns: minmax(280px,1fr) 260px auto; }.stock-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; margin-top: 16px; }.stock-card { position: relative; padding: 15px; background: #fbfcfe; border: 1px solid var(--line); border-radius: 11px; }.stock-card.critical { border-color: #ebc471; background: #fffaf0; }.stock-card small { color: var(--blue); font-size: 7px; font-weight: 800; }.stock-card h3 { margin: 5px 0 12px; font-size: 11px; }.stock-card dl { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; margin: 0; }.stock-card dl div { padding: 8px; background: white; border: 1px solid var(--line); border-radius: 7px; }.stock-card dt { color: var(--muted); font-size: 6px; font-weight: 800; text-transform: uppercase; }.stock-card dd { margin: 3px 0 0; font-size: 9px; font-weight: 800; }.stock-warning { position: absolute; top: 11px; right: 11px; color: #845400; font-size: 7px; font-weight: 800; }
.kardex-panel { margin-top: 16px; padding: 21px; }.kardex-table { margin-top: 13px; overflow: auto; border: 1px solid var(--line); border-radius: 9px; }.kardex-head,.kardex-row { display: grid; grid-template-columns: 125px 130px minmax(280px,1fr) 90px 90px 100px; min-width: 820px; }.kardex-head { color: var(--muted); background: #f1f4f8; font-size: 7px; font-weight: 800; text-transform: uppercase; }.kardex-head span,.kardex-row>span { padding: 10px; }.kardex-row { align-items: center; border-top: 1px solid var(--line); font-size: 8px; }.kardex-row strong,.kardex-row small { display: block; }.kardex-row small { margin-top: 3px; color: var(--muted); }.kardex-row .entry { color: #087050; font-weight: 800; }.kardex-row .exit { color: #a12536; font-weight: 800; }
.stock-verification-panel { padding: 22px; }.stock-verification-panel>form:first-child { max-width: 420px; }.verification-table { margin-top: 18px; overflow: auto; border: 1px solid var(--line); border-radius: 9px; }.verification-head,.verification-row { display: grid; grid-template-columns: minmax(280px,1fr) repeat(5,120px); min-width: 880px; }.verification-head { color: var(--muted); background: #f1f4f8; font-size: 7px; font-weight: 800; text-transform: uppercase; }.verification-head span,.verification-row>span { padding: 11px; }.verification-row { align-items: center; border-top: 1px solid var(--line); font-size: 9px; }.verification-row .enough { color: #087050; background: #f1fbf7; }.verification-row .shortage { color: #a12536; background: #fff6f7; }.verification-actions { display: flex; align-items: end; justify-content: flex-end; gap: 10px; margin-top: 14px; }.verification-actions .field { flex: 1; }
.reservation-panel { margin-top: 16px; padding: 21px; }.reservation-panel h3 { margin-top: 0; }.reservation-panel article { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(320px,1.3fr) auto; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }.reservation-panel article small,.reservation-panel article strong,.reservation-panel article span { display: block; }.reservation-panel article small { color: var(--blue); font-size: 7px; font-weight: 800; }.reservation-panel article span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.delivery-panel { padding: 22px; }.delivery-lines { margin-top: 18px; overflow: auto; border: 1px solid var(--line); border-radius: 9px; }.delivery-head,.delivery-row { display: grid; grid-template-columns: minmax(300px,1fr) repeat(4,130px); min-width: 820px; align-items: center; }.delivery-head { color: var(--muted); background: #f1f4f8; font-size: 7px; font-weight: 800; text-transform: uppercase; }.delivery-head span,.delivery-row>span,.delivery-row>label { padding: 10px; }.delivery-row { border-top: 1px solid var(--line); font-size: 9px; }.delivery-notes { margin-top: 16px; }
@media(max-width:1100px){.logistics-config-layout{grid-template-columns:1fr}.compact-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.logistics-wide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.logistics-repeat-row,.logistics-repeat-row.account{grid-template-columns:repeat(2,minmax(0,1fr))}.logistics-detail-grid{grid-template-columns:1fr}}
@media(max-width:1050px){.requirement-line{grid-template-columns:repeat(2,minmax(0,1fr))}.requirement-table{overflow:auto}.requirement-table-head,.requirement-table-row{min-width:760px}.requirement-summary{grid-template-columns:1fr}.requirement-decision{grid-template-columns:1fr}}
@media(max-width:650px){.logistics-fields,.compact-fields,.logistics-wide-grid,.logistics-repeat-row,.logistics-repeat-row.account{grid-template-columns:1fr}.logistics-fields .span-2{grid-column:auto}.logistics-heading{align-items:flex-start;flex-direction:column}.logistics-flow-line{padding-bottom:5px}.logistics-master-card{align-items:flex-start;flex-wrap:wrap}.logistics-master-side{width:100%;min-width:0;justify-items:start}}
@media(max-width:650px){.logistics-requirement-filters,.requirement-line,.requirement-summary dl{grid-template-columns:1fr}.logistics-requirement-card{grid-template-columns:1fr;padding-right:16px;padding-top:48px}.requirement-action-panel{align-items:stretch;flex-direction:column}}
@media(max-width:800px){.requirement-cancel-form{grid-template-columns:1fr;align-items:stretch}}
@media(max-width:1050px){.stock-opening-panel{grid-template-columns:1fr}.stock-opening-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-panel article{grid-template-columns:1fr}}
@media(max-width:650px){.stock-opening-grid,.stock-filters,.stock-grid{grid-template-columns:1fr}.verification-actions{align-items:stretch;flex-direction:column}.verification-actions>*{width:100%}}
@media(max-width:950px){.document-assignment-layout,.document-sign-panel{grid-template-columns:1fr}.document-variable-panel{align-items:stretch}.document-variable-group{align-items:flex-start;flex-direction:column}.document-variable-buttons{justify-content:flex-start}.signed-document-proof dl{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.document-status-panel{align-items:stretch;flex-direction:column}.document-status-panel form{flex-direction:column}.my-document-card{align-items:flex-start;flex-wrap:wrap}.signed-document-proof dl{grid-template-columns:1fr}.unsigned-document-view .process-sheet::after{font-size:32px}}

@media (max-width: 1350px) {
    .process-bank-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .process-builder-layout { grid-template-columns: minmax(440px, .85fr) minmax(520px, 1.15fr); }
    .process-preview { zoom: .62; }
}
@media (max-width: 1050px) {
    .process-builder-layout { grid-template-columns: 1fr; }
    .process-preview-column { grid-row: 1; }
    .process-preview-sticky { position: static; }
    .process-preview { max-height: 700px; zoom: .72; }
}
@media (max-width: 720px) {
    .process-bank-grid { grid-template-columns: 1fr; }
    .process-metadata-grid { grid-template-columns: 1fr; }
    .process-metadata-grid .span-2 { grid-column: auto; }
    .process-attachments-management { grid-template-columns: 1fr; }
    .process-preview { zoom: .48; }
    .process-view-status { align-items: stretch; flex-direction: column; }
    .content-pages-editor { padding: 10px; }
    .content-page-area { height: auto; min-height: 0; padding: 28px 32px; }
}

@media print {
    .process-document-view { padding: 0 !important; overflow: visible !important; background: white !important; border-radius: 0 !important; }
    .process-print-pages { display: block !important; }
    .process-print-pages .process-sheet {
        margin: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        break-after: page;
        page-break-after: always;
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
    .process-print-pages .process-sheet:last-child { break-after: auto; page-break-after: auto; }
    .attachment-print-list { display: block; }
    .attachment-print-page { width: 210mm; height: 297mm; margin: 0; border: 0; border-radius: 0; box-shadow: none; break-after: page; page-break-after: always; }
    .attachment-print-page.is-document { display: none !important; }
    .attachment-print-page > header { height: 22mm; padding: 5mm 12mm; }
    .attachment-print-image { height: 275mm; min-height: 0; padding: 10mm 12mm; background: white; }
    .attachment-print-image img { max-width: 186mm; max-height: 251mm; box-shadow: none; }
}

/* Compras y cotizaciones */
.quote-request-lines{display:grid;gap:9px;margin:15px 0 10px}.quote-request-line{display:grid;grid-template-columns:minmax(280px,1.4fr) .45fr 1fr auto;align-items:end;gap:8px;padding:11px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px}.provider-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:15px}.provider-choice-grid label{display:flex;align-items:center;gap:10px;padding:12px;cursor:pointer;background:#fbfcfe;border:1px solid var(--line);border-radius:9px}.provider-choice-grid input{accent-color:var(--blue)}.provider-choice-grid strong,.provider-choice-grid small{display:block}.provider-choice-grid small{margin-top:3px;color:var(--muted);font-size:7px}
.quote-request-summary{display:grid;grid-template-columns:.55fr 1.45fr;gap:20px;padding:21px}.quote-request-summary h3{margin:12px 0 0;font-size:10px}.quote-request-products{display:grid;gap:7px}.quote-request-products article{padding:9px;background:#f7f9fc;border:1px solid var(--line);border-radius:8px}.quote-request-products strong,.quote-request-products span,.quote-request-products small{display:block}.quote-request-products span{margin-top:3px;color:var(--blue);font-size:8px;font-weight:800}.quote-request-products small{margin-top:3px;color:var(--muted);font-size:7px}
.invited-providers{margin-top:16px;padding:21px}.invited-providers h3{margin-top:0}.invited-providers article{display:grid;grid-template-columns:minmax(250px,1fr) minmax(170px,.6fr) auto;align-items:center;gap:13px;padding:12px 0;border-top:1px solid var(--line)}.invited-providers strong,.invited-providers small{display:block}.invited-providers small{margin-top:3px;color:var(--muted);font-size:8px}
.quote-price-table{margin-top:16px;overflow:auto;border:1px solid var(--line);border-radius:9px}.quote-price-head,.quote-price-row{display:grid;grid-template-columns:minmax(270px,1.2fr) 110px 140px 120px 170px 130px;align-items:center;min-width:960px}.quote-price-head{color:var(--muted);background:#f1f4f8;font-size:7px;font-weight:800;text-transform:uppercase}.quote-price-head span,.quote-price-row>span,.quote-price-row>label{padding:10px}.quote-price-row{border-top:1px solid var(--line);font-size:9px}.quote-price-row strong,.quote-price-row small{display:block}.quote-price-row small{margin-top:3px;color:var(--muted);font-size:7px}.quote-total-box{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}.quote-total-box span{min-width:125px;padding:10px;color:var(--muted);background:#f7f9fc;border:1px solid var(--line);border-radius:8px;font-size:8px}.quote-total-box strong{display:block;margin-top:4px;color:var(--navy);font-size:12px}.quote-total-box .total{color:white;background:var(--navy)}.quote-total-box .total strong{color:white}
.comparative-panel{padding:21px;overflow:auto}.comparative-table{min-width:max(850px,calc(240px + var(--quotes)*230px));border:1px solid var(--line);border-radius:10px;overflow:hidden}.comparative-row{display:grid;grid-template-columns:240px repeat(var(--quotes),minmax(230px,1fr))}.comparative-row>span{padding:12px;border-left:1px solid var(--line);border-top:1px solid var(--line)}.comparative-row>span:first-child{border-left:0}.comparative-row.header>span{border-top:0;background:#f1f4f8}.comparative-row strong,.comparative-row small{display:block}.comparative-row small{margin-top:4px;color:var(--muted);font-size:7px}.comparative-row.summary{color:var(--navy);background:#f8fafc;font-size:11px}.comparative-row.summary strong{font-size:14px}.comparative-row.actions>span{display:grid;place-items:center}.selected-provider{padding:7px 10px;color:#087050;background:var(--green-soft);border-radius:20px;font-size:8px}
@media(max-width:1050px){.provider-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-request-summary{grid-template-columns:1fr}.invited-providers article{grid-template-columns:1fr}}
@media(max-width:650px){.quote-request-line,.provider-choice-grid{grid-template-columns:1fr}.quote-total-box{flex-direction:column}.quote-total-box span{width:100%}}

/* Órdenes de compra */
.order-detail-table{display:grid;gap:0;margin-top:14px;border:1px solid #d9e2ef;border-radius:14px;overflow:hidden;background:#fff}.order-detail-row{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(95px,1fr));align-items:center;gap:14px;padding:13px 16px;border-top:1px solid #e7edf5}.order-detail-row:first-child{border-top:0}.order-detail-row.head{background:#edf3fc;color:#50627d;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.order-detail-row>span:not(:first-child){text-align:right}.order-detail-row strong,.order-detail-row small{display:block}.order-detail-row small{margin-top:4px;color:#73839a}.purchase-order-summary{display:grid;gap:22px}.purchase-order-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.purchase-order-heading>strong{font-size:1.35rem}.purchase-order-data{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0}.purchase-order-data>div{padding:14px;border-radius:12px;background:#f5f8fc}.purchase-order-data dt{font-size:.75rem;color:#73839a;font-weight:700}.purchase-order-data dd{margin:5px 0 0;font-weight:700}.purchase-order-actions{display:grid;gap:16px;margin-top:16px}
@media(max-width:900px){.order-detail-row{grid-template-columns:minmax(180px,2fr) repeat(4,minmax(80px,1fr));gap:8px;padding:11px 10px;font-size:.82rem}.purchase-order-data{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.order-detail-table{overflow-x:auto}.order-detail-row{min-width:760px}.purchase-order-data{grid-template-columns:1fr}}

/* Recepciones de compra */
.reception-lines{display:grid;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.reception-line{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,minmax(110px,1fr));align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--line)}.reception-line:first-child{border-top:0}.reception-line.head{color:var(--muted);background:#f1f4f8;font-size:7px;font-weight:800;text-transform:uppercase}.reception-line>span:not(:first-child){text-align:right}.reception-line strong,.reception-line small{display:block}.reception-line small{margin-top:3px;color:var(--muted)}.reception-line.complete{opacity:.55;background:#f6f8fb}.reception-history{margin-top:16px}.reception-notes{padding:14px;border-radius:10px;background:#f6f8fb}.reception-notes p{margin:6px 0 0}
@media(max-width:760px){.reception-lines{overflow-x:auto}.reception-line{min-width:820px}}

/* Transferencias */
.transfer-lines{display:grid;gap:9px;margin:15px 0 10px}.transfer-line{display:grid;grid-template-columns:minmax(300px,1.5fr) minmax(130px,.45fr) minmax(220px,1fr) auto;align-items:end;gap:9px;padding:11px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px}
@media(max-width:720px){.transfer-line{grid-template-columns:1fr}}

/* Kardex detallado */
.kardex-filter-panel{margin-bottom:14px}.kardex-filter-grid{grid-template-columns:repeat(4,minmax(130px,1fr));align-items:end}.kardex-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.detailed-kardex-panel{padding:0;overflow:hidden}.kardex-valuation-strip{display:flex;gap:8px;padding:13px 16px;background:#eef3fa}.kardex-valuation-strip span{padding:7px 10px;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:7px}.kardex-valuation-strip strong{margin-left:5px;color:var(--navy)}.detailed-kardex-table{overflow-x:auto}.detailed-kardex-row{display:grid;grid-template-columns:150px minmax(250px,1.5fr) 145px repeat(5,100px) minmax(135px,.8fr);align-items:center;min-width:1250px;border-top:1px solid var(--line)}.detailed-kardex-row.head{color:var(--muted);background:#f6f8fb;font-size:7px;font-weight:900;text-transform:uppercase}.detailed-kardex-row>span{padding:10px}.detailed-kardex-row strong,.detailed-kardex-row small{display:block}.detailed-kardex-row small{margin-top:3px;color:var(--muted);font-size:7px}.detailed-kardex-row .entry{color:#087050}.detailed-kardex-row .exit{color:#b42318}@media(max-width:900px){.kardex-filter-grid,.kardex-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kardex-valuation-strip{flex-wrap:wrap}}@media(max-width:600px){.kardex-filter-grid,.kardex-summary-grid{grid-template-columns:1fr}}

.inventory-count-panel{padding:0;overflow-x:auto}.inventory-count-row{display:grid;grid-template-columns:minmax(300px,1.4fr) 80px 130px 130px minmax(220px,1fr);align-items:center;min-width:980px;border-top:1px solid var(--line)}.inventory-count-row.head,.inventory-result-row.head{background:#f4f7fb;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase}.inventory-count-row>span,.inventory-result-row>span{padding:10px}.inventory-count-row strong,.inventory-count-row small,.inventory-result-row strong,.inventory-result-row small{display:block}.inventory-count-row small,.inventory-result-row small{margin-top:3px;color:var(--muted);font-size:8px}.inventory-count-row input{width:100%}.inventory-submit-form,.inventory-workflow-actions{display:flex;justify-content:flex-end;margin-top:12px}.inventory-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}.inventory-result-table{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.inventory-result-row{display:grid;grid-template-columns:minmax(280px,1.5fr) repeat(6,110px);align-items:center;min-width:950px;border-top:1px solid var(--line)}.inventory-result-row .entry{color:#087050;font-weight:800}.inventory-result-row .exit{color:#b42318;font-weight:800}@media(max-width:760px){.inventory-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.report-filter-panel{margin-bottom:14px}.logistics-report-filters{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}.logistics-report-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.logistics-report-table-panel{padding:0;overflow:hidden}.logistics-report-table{display:grid;grid-template-columns:repeat(var(--report-columns),minmax(135px,1fr));overflow-x:auto}.report-cell{min-width:135px;padding:11px;border-top:1px solid var(--line);color:var(--navy)}.report-cell.numeric{text-align:right;font-variant-numeric:tabular-nums}.report-head{position:sticky;top:0;background:#edf3fb;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase}.report-empty{grid-column:1/-1}.logistics-report-table .requirement-status{display:inline-flex}@media(max-width:900px){.logistics-report-filters,.logistics-report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.logistics-report-filters,.logistics-report-summary{grid-template-columns:1fr}}

.logistics-dashboard-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.logistics-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.dashboard-compact-list{display:grid;gap:7px}.dashboard-compact-list a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px;border:1px solid var(--line);border-radius:9px;color:var(--navy);text-decoration:none}.dashboard-compact-list span,.dashboard-compact-list strong,.dashboard-compact-list small{display:block}.dashboard-compact-list small,.consumption-bars small{margin-top:3px;color:var(--muted)}.dashboard-compact-list b{color:#b42318;text-align:right}.consumption-bars{display:grid;gap:12px}.consumption-bars>div{display:grid;grid-template-columns:minmax(180px,1fr) 42%;align-items:center;gap:12px}.consumption-bars span,.consumption-bars strong,.consumption-bars small{display:block}.consumption-bars i{height:9px;overflow:hidden;background:#e5ebf3;border-radius:99px}.consumption-bars i b{display:block;height:100%;background:linear-gradient(90deg,#2463eb,#4f8cff);border-radius:inherit}.dashboard-movements{padding:0;overflow-x:auto}.dashboard-movements .section-heading{padding:16px}.dashboard-movement-row{display:grid;grid-template-columns:100px 150px minmax(280px,1.5fr) 180px 110px 110px;align-items:center;min-width:950px;border-top:1px solid var(--line)}.dashboard-movement-row>span{padding:10px}.dashboard-movement-row.head{background:#f4f7fb;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase}.dashboard-movement-row strong,.dashboard-movement-row small{display:block}.dashboard-movement-row small{margin-top:3px;color:var(--muted)}.dashboard-movement-row .entry{color:#087050}.dashboard-movement-row .exit{color:#b42318}@media(max-width:1100px){.logistics-dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.logistics-dashboard-grid{grid-template-columns:1fr}.logistics-dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.logistics-dashboard-stats{grid-template-columns:1fr}.consumption-bars>div{grid-template-columns:1fr}}

.audit-filter-panel{margin-bottom:14px}.audit-filter-grid{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}.audit-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.audit-list-panel{padding:0;overflow-x:auto}.audit-list-row{display:grid;grid-template-columns:190px minmax(190px,1fr) minmax(230px,1.2fr) 180px 110px;align-items:center;min-width:950px;border-top:1px solid var(--line)}.audit-list-row>span{padding:11px}.audit-list-row.head{background:#edf3fb;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase}.audit-list-row strong,.audit-list-row small{display:block}.audit-list-row small{margin-top:3px;color:var(--muted)}.audit-agent{max-width:440px;overflow-wrap:anywhere}.audit-change-table{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.audit-change-row{display:grid;grid-template-columns:180px 1fr 1fr;min-width:850px;border-top:1px solid var(--line)}.audit-change-row>span,.audit-change-row>pre{margin:0;padding:10px;white-space:pre-wrap;overflow-wrap:anywhere}.audit-change-row>pre{border-left:1px solid var(--line);font-family:ui-monospace,monospace;font-size:9px}.audit-change-row.head{background:#edf3fb;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase}.audit-json-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.audit-json{max-height:440px;overflow:auto;padding:12px;background:#101a2d;color:#dce8ff;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:9px}@media(max-width:900px){.audit-filter-grid,.audit-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-json-grid{grid-template-columns:1fr}}@media(max-width:560px){.audit-filter-grid,.audit-summary-grid{grid-template-columns:1fr}}

/* Préstamos: referencia de stock */
.loan-lines{display:grid;gap:10px;margin:15px 0 10px}.loan-line{display:grid;grid-template-columns:minmax(250px,1.4fr) minmax(110px,.45fr) minmax(285px,1fr) minmax(190px,.8fr) auto;align-items:end;gap:9px;padding:11px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px}.loan-stock-reference{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:8px;background:#eaf1fb;border:1px solid #cbd9ed;border-radius:9px}.loan-stock-reference>small{grid-column:1/-1;color:#516985;font-size:6px;font-weight:900}.loan-stock-reference span{padding:6px;text-align:center;background:#fff;border-radius:7px}.loan-stock-reference b,.loan-stock-reference i{display:block}.loan-stock-reference b{font-size:10px;color:var(--navy)}.loan-stock-reference i{margin-top:2px;color:var(--muted);font-size:6px;font-style:normal}.loan-stock-reference .available{background:#e7f8f0}.loan-stock-reference .available b{color:#087050}@media(max-width:1150px){.loan-line{grid-template-columns:1.4fr .5fr 1fr auto}.loan-line>.field:nth-last-of-type(1){grid-column:1/-2}}@media(max-width:720px){.loan-line{grid-template-columns:1fr}.loan-line>.field:nth-last-of-type(1){grid-column:auto}}

/* Devoluciones vinculadas a entregas */
.return-source-panel{margin-bottom:16px}.return-route-summary{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:16px;margin-bottom:20px;color:#fff;background:linear-gradient(135deg,#152945,#254c79);border-radius:12px}.return-route-summary>div{display:grid;gap:3px}.return-route-summary>div:last-child{text-align:right}.return-route-summary small{color:#a9c5e8;font-size:7px;font-weight:800}.return-route-summary strong{font-size:12px}.return-route-summary span{font-size:8px;color:#d6e4f5}.return-route-summary>b{font-size:22px}.return-balance-table{display:grid;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.return-balance-row{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,minmax(120px,1fr));align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--line)}.return-balance-row:first-child{border-top:0}.return-balance-row.head{color:var(--muted);background:#f1f4f8;font-size:7px;font-weight:800;text-transform:uppercase}.return-balance-row>span:not(:first-of-type){text-align:right}.return-balance-row span>input{display:block;width:100%;margin-top:5px;padding:6px;border:1px solid var(--line);border-radius:6px;font-size:8px}@media(max-width:760px){.return-route-summary{grid-template-columns:1fr}.return-route-summary>div:last-child{text-align:left}.return-balance-table{overflow-x:auto}.return-balance-row{min-width:850px}}

/* Legibilidad general del módulo de Logística */
.logistics-flow-line span,
.logistics-master-main p,
.logistics-master-side small,
.logistics-contact-list small,
.logistics-contact-list span,
.stock-opening-panel p,
.requirement-summary p,
.requirement-decision p,
.requirement-observed-alert span,
.requirement-reason small,
.requirement-action-panel small,
.requirement-cancel-form small { font-size: 10px; line-height: 1.5; }

.logistics-master-main small,
.logistics-detail-data dt,
.requirement-summary dt,
.requirement-table-head,
.approval-cycle,
.stock-card small,
.stock-card dt,
.stock-warning,
.kardex-head,
.verification-head,
.reservation-panel article small,
.delivery-head,
.provider-choice-grid small,
.quote-request-products span,
.quote-request-products small,
.invited-providers small,
.quote-price-head,
.quote-price-row small,
.comparative-row small,
.selected-provider,
.reception-line.head,
.detailed-kardex-row.head,
.inventory-count-row.head,
.inventory-result-row.head,
.report-head,
.dashboard-movement-row.head,
.audit-list-row.head,
.audit-change-row.head,
.return-balance-row.head { font-size: 9px; line-height: 1.4; }

.requirement-status { min-height: 26px; padding: 0 9px; font-size: 9px; letter-spacing: .02em; }
.requirement-summary dd { font-size: 11px; line-height: 1.4; }
.requirement-table-row { font-size: 11px; line-height: 1.4; }
.requirement-table-row small { font-size: 10px; line-height: 1.4; }
.approval-timeline { font-size: 11px; }
.approval-timeline small,
.approval-timeline p { font-size: 10px; line-height: 1.45; }
.approval-timeline b { font-size: 9px; }
.requirement-reason p { font-size: 11px; line-height: 1.5; }
.compact-fields .field span,
.compact-fields .logistics-switch strong,
.mini-check { font-size: 9px; }

.stock-card h3 { font-size: 13px; }
.stock-card dd { font-size: 11px; }
.kardex-row,
.verification-row,
.delivery-row,
.quote-price-row { font-size: 10px; line-height: 1.4; }
.kardex-row small,
.reservation-panel article span { font-size: 10px; line-height: 1.4; }

.stock-recent-movements .kardex-head,
.stock-recent-movements .kardex-row {
    grid-template-columns: 135px 145px minmax(300px, 1fr) 150px 100px 100px;
    min-width: 930px;
}

.inventory-switch-panel { margin-top: 16px; padding: 0 21px 21px; }
.inventory-switch-heading { margin: 0 -21px 14px; }
.inventory-table-filters { margin-bottom: 14px; }
.inventory-products-table .kardex-head,
.inventory-products-table .kardex-row {
    grid-template-columns: minmax(300px, 1.5fr) minmax(180px, 1fr) repeat(3, 105px) 130px 110px;
    min-width: 1050px;
}
.inventory-products-table .kardex-row.critical { background: #fff8f6; }

.quote-request-summary h3 { font-size: 12px; }
.quote-total-box span { font-size: 10px; }
.comparative-row { font-size: 10px; }
.detailed-kardex-row { font-size: 10px; line-height: 1.4; }
.detailed-kardex-row small,
.kardex-valuation-strip span,
.inventory-count-row small,
.inventory-result-row small { font-size: 9px; line-height: 1.4; }
.report-cell,
.dashboard-movement-row,
.audit-list-row { font-size: 10px; line-height: 1.4; }
.dashboard-movement-row small,
.audit-list-row small { font-size: 9px; line-height: 1.4; }

.loan-stock-reference>small,
.loan-stock-reference i,
.return-route-summary small { font-size: 9px; line-height: 1.35; }
.return-route-summary span,
.return-balance-row span>input { font-size: 10px; }

/* Seguridad y capacitación */
.security-stats { margin-bottom: 22px; }
.security-section { margin-top: 22px; overflow: hidden; }
.security-category-layout .form-body { display: grid; gap: 17px; padding: 22px; }
.security-category-layout .form-body .switch-line { margin-bottom: 0; }
.security-filters { align-items: center; flex-wrap: wrap; }
.security-filters input,
.security-filters select { min-width: 170px; height: 43px; padding: 0 12px; color: var(--ink); outline: none; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.security-filters input[type="search"] { min-width: 240px; flex: 1; }
.security-filters input:focus,
.security-filters select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.security-course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; padding: 22px; }
.security-course-card { display: flex; min-width: 0; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: 0 8px 22px rgba(16,36,62,.06); }
.security-cover { height: 150px; display: grid; place-items: center; background: linear-gradient(135deg,#eaf1ff,#f4f7fb); color: var(--blue); font-size: 44px; }
.security-cover img { width: 100%; height: 100%; object-fit: cover; }
.security-course-body { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.security-course-body h3 { margin: 10px 0 7px; font-size: 17px; }
.security-course-body p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.security-course-meta,.security-counts { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.security-counts { flex-wrap: wrap; justify-content: flex-start; margin: 14px 0; color: var(--muted); font-size: 10px; }
.security-counts span { padding: 5px 8px; border-radius: 999px; background: #f2f5f9; }
.security-course-body > .inline-actions { margin-top: auto; padding-top: 4px; }
.security-grid-empty { grid-column: 1 / -1; }
.security-editor { padding: 24px 26px; }
.security-subform { margin-top: 17px; }
.security-card-list { display: grid; gap: 12px; padding: 18px 22px 22px; }
.security-card-list > article,.security-inline-editor,.security-edit-card { padding: 15px 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.security-card-list article p { margin: 8px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.security-category-card { position: relative; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.security-inline-editor { display: flex; padding-right: 40px; align-items: flex-end; gap: 12px; }
.security-inline-editor .form-grid { flex: 1; }
.security-category-actions { display: flex; min-width: 150px; flex-direction: column; align-items: stretch; gap: 9px; }
.security-category-actions .switch-line { margin: 0; }
.security-category-delete { position: absolute; top: 12px; right: 12px; }
.security-edit-card summary,.security-create-box summary { display: flex; justify-content: space-between; gap: 12px; cursor: pointer; font-weight: 700; }
.security-edit-card summary small { display: block; margin-top: 4px; color: var(--muted); font-weight: 500; }
.security-edit-card form { margin-top: 16px; }
.security-create-box { margin: 18px 22px 22px; padding: 18px; border: 1px dashed #aebdd0; border-radius: 14px; background: #f8faff; }
.security-create-box form { margin-top: 16px; }
.security-options { display: grid; gap: 8px; margin: 15px 0; }
.security-options > small { color: var(--muted); }
.security-options label { display: grid; grid-template-columns: 22px 1fr; align-items: center; gap: 8px; }
.security-options input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--blue); }
.security-options input[type="text"] { width: 100%; height: 42px; padding: 0 12px; color: var(--ink); outline: none; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.security-options input[type="text"]:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
.security-publish-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; padding: 22px 25px; }
.security-publish-panel form { display: flex; gap: 10px; }
.security-publish-panel select { min-width: 170px; height: 43px; padding: 0 12px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.security-two-columns { display: grid; grid-template-columns: minmax(0,2fr) minmax(260px,1fr); gap: 20px; align-items: start; }
.security-course-summary { margin-top: 22px; padding: 22px; position: sticky; top: 18px; }
.security-course-summary h3 { margin: 8px 0 18px; }
.security-course-summary .button { width: 100%; margin-top: 8px; }
.security-lesson { display: grid; gap: 12px; }
.security-lesson.done { border-color: #9dd9ba; background: #f5fff9; }
.security-lesson-content { color: var(--ink); font-size: 12px; line-height: 1.65; }
.security-progress { margin: 13px 0; }
.security-progress i { display: block; height: 7px; background: #e7edf5; border-radius: 99px; overflow: hidden; }
.security-progress i b { display: block; height: 100%; background: var(--blue); border-radius: inherit; }
.security-progress small { display: block; margin-top: 5px; color: var(--muted); }
.security-required,.required { color: #c43232; font-weight: 700; }
.security-exam { margin-top: 22px; overflow: hidden; }
.security-exam fieldset { margin: 0 24px; padding: 21px 0; border: 0; border-bottom: 1px solid var(--line); }
.security-exam legend { width: 100%; margin-bottom: 13px; font-weight: 700; line-height: 1.5; }
.security-exam legend small { float: right; color: var(--muted); }
.security-exam textarea { width: 100%; min-height: 90px; }
.security-answer { display: flex; align-items: center; gap: 9px; padding: 9px 12px; margin: 7px 0; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.security-answer:hover { border-color: var(--blue); background: #f5f8ff; }
.alert.info { color: #155ea8; background: #eaf4ff; border: 1px solid #bfdbf7; }
.security-dashboard-table table { min-width: 720px; }
.security-assignment-panel table { min-width: 980px; }
.security-report-panel table { min-width: 960px; }
.security-report-filters input[type="date"] { flex: 0 1 165px; }

@media(max-width:820px){
    .content { padding: 14px 12px 26px; }
    .security-course-grid { grid-template-columns: 1fr 1fr; }
    .security-two-columns { grid-template-columns: 1fr; }
    .security-course-summary { position: static; }
    .security-inline-editor { padding-right: 0; align-items: stretch; flex-direction: column; }
    .security-category-actions { min-width: 0; flex-direction: row; align-items: center; justify-content: space-between; }
    .security-category-delete { top: 10px; right: 10px; }
}

@media(max-width:700px){
    .security-course-grid { grid-template-columns: 1fr; padding: 14px; }
    .security-inline-editor,.security-publish-panel,.security-publish-panel form { align-items: stretch; flex-direction: column; }
    .security-filters > * { width: 100%; min-width: 0 !important; flex: 1 1 auto !important; }
    .security-category-actions { align-items: stretch; flex-direction: column; }
    .user-import-header { align-items: flex-start; flex-wrap: wrap; }
    .user-import-header .button { width: 100%; margin-left: 0; }
    .user-import-form { align-items: stretch; flex-direction: column; }
    .user-import-file { width: 100%; flex-wrap: wrap; }
    .user-import-file input[type="file"] { width: 100%; flex-basis: 100%; }
    .user-import-form .button { width: 100%; }
}
/* Acreditaciones */
.accreditation-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.accreditation-kpis .panel{padding:18px;display:grid;gap:7px}.accreditation-kpis strong{font-size:1.8rem}.accreditation-kpis small,.accreditation-matrix td small{display:block;color:var(--muted);margin-top:4px}.accreditation-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr)) auto auto;gap:12px;align-items:end}.accreditation-count{display:inline-grid;place-items:center;min-width:34px;height:34px;border-radius:10px;font-weight:800}.accreditation-count.good{background:#e6f7f0;color:#087a55}.accreditation-count.warning{background:#fff5dc;color:#a66500}.accreditation-count.danger{background:#ffe8ec;color:#b52239}.accreditation-count.neutral{background:#edf2f7;color:#526276}.accreditation-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 11px;font-size:.75rem;font-weight:800;letter-spacing:.03em;white-space:nowrap}.accreditation-status.apto,.accreditation-status.vigente{background:#def7ec;color:#087a55}.accreditation-status.por_vencer,.accreditation-status.programado{background:#fff1cc;color:#9a6100}.accreditation-status.no_apto,.accreditation-status.vencido,.accreditation-status.bloqueado{background:#ffe1e7;color:#b11d37}.accreditation-status.pendiente,.accreditation-status.no_aplica,.accreditation-status.sin_fecha{background:#e9eef5;color:#526276}.accreditation-status.large{padding:11px 16px;font-size:.85rem}.accreditation-manual-form{display:grid;grid-template-columns:1.5fr 1fr auto auto;gap:16px;align-items:end}.accreditation-record-list,.accreditation-config-list{display:grid;gap:16px}.accreditation-record{padding:0;overflow:hidden;border-left:5px solid #b8c4d3}.accreditation-record.vigente{border-left-color:#10a976}.accreditation-record.por_vencer,.accreditation-record.programado{border-left-color:#e4a11b}.accreditation-record.vencido,.accreditation-record.bloqueado{border-left-color:#d83c55}.accreditation-record-main{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(105px,1fr)) auto;gap:15px;align-items:center;padding:20px}.accreditation-record-main>div>small{display:block;color:var(--muted);margin-bottom:5px}.accreditation-record-main>div>strong{font-size:.92rem}.accreditation-record-name{display:flex;gap:12px;align-items:center}.accreditation-record-name>span,.accreditation-code{background:#e6efff;color:#1d5bd7;padding:8px 10px;border-radius:10px;font-weight:800}.accreditation-record-name h3,.accreditation-config-card h3{margin:0 0 4px}.accreditation-record-actions{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:14px;align-items:center;flex-wrap:wrap}.accreditation-record-actions>small{color:var(--muted)}.accreditation-history{display:grid;gap:7px;padding-top:9px}.accreditation-history>div{display:flex;gap:14px;align-items:center}.accreditation-editor{border-top:1px solid var(--border);padding:14px 20px}.accreditation-editor>summary,.accreditation-create>summary{cursor:pointer;font-weight:700}.accreditation-editor form{margin-top:16px}.accreditation-record-form,.accreditation-definition-form{grid-template-columns:repeat(4,minmax(0,1fr))}.accreditation-create{margin-bottom:18px}.accreditation-create>summary{display:flex;gap:12px;align-items:center}.accreditation-create>summary span{color:var(--muted);font-weight:400}.accreditation-create form{margin-top:20px}.accreditation-config-card>header{display:flex;justify-content:space-between;gap:18px}.accreditation-config-card>header>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}.accreditation-config-card>header p{grid-column:2;color:var(--muted);margin:0}.accreditation-config-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.accreditation-config-summary span{background:#f5f8fc;border-radius:12px;padding:12px;color:var(--muted);font-size:.78rem}.accreditation-config-summary strong{display:block;color:var(--text);font-size:.92rem;margin-bottom:4px}.accreditation-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.accreditation-rule-grid fieldset{border:1px solid var(--border);border-radius:13px;padding:14px}.accreditation-rule-grid legend{font-weight:800;padding:0 6px}.check-grid{display:grid;gap:9px;max-height:220px;overflow:auto}.check-grid label{font-size:.86rem}.accreditation-config-actions{margin-top:14px}
@media(max-width:1100px){.accreditation-kpis{grid-template-columns:repeat(3,1fr)}.accreditation-record-main{grid-template-columns:2fr repeat(2,1fr)}.accreditation-filters,.accreditation-manual-form{grid-template-columns:1fr 1fr}.accreditation-record-form,.accreditation-definition-form{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.accreditation-kpis,.accreditation-filters,.accreditation-manual-form,.accreditation-record-main,.accreditation-config-summary,.accreditation-rule-grid,.accreditation-record-form,.accreditation-definition-form{grid-template-columns:1fr}.accreditation-config-card>header{display:grid}.accreditation-matrix{min-width:850px}}
.accreditation-security-section{margin-top:20px}.accreditation-security-table{min-width:900px}.accreditation-security-table td small{display:block;color:var(--muted);margin-top:5px}.security-progress.compact{min-width:150px}.security-progress.compact i{height:7px}
.accreditation-course-cell{min-width:240px;max-width:360px}.accreditation-course-tag{display:flex;justify-content:space-between;gap:10px;padding:6px 9px;margin:4px 0;border-radius:8px;background:#edf2f7;font-size:.76rem}.accreditation-course-tag b{white-space:nowrap}.accreditation-course-tag.passed{background:#def7ec;color:#087a55}.accreditation-course-tag.in_progress{background:#e7efff;color:#205bbd}.accreditation-course-tag.failed{background:#ffe1e7;color:#b11d37}#accreditation-results{transition:opacity .16s ease}#accreditation-results.is-loading{opacity:.48;pointer-events:none}.accreditation-matrix{min-width:1120px}
.accreditation-create{padding:0!important;border:2px solid #2f6fed!important;background:linear-gradient(135deg,#f5f8ff 0%,#e8f0ff 100%)!important;box-shadow:0 14px 32px rgba(47,111,237,.14);overflow:hidden}.accreditation-create>summary{display:grid!important;grid-template-columns:58px 1fr auto;gap:16px;align-items:center;padding:20px 22px;list-style:none}.accreditation-create>summary::-webkit-details-marker{display:none}.accreditation-create-icon{width:52px;height:52px;border-radius:15px;background:#2f6fed;color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:500;box-shadow:0 8px 18px rgba(47,111,237,.3)}.accreditation-create-copy{display:grid;gap:3px}.accreditation-create-copy small{text-transform:uppercase;letter-spacing:.09em;color:#2f6fed;font-weight:800;font-size:.68rem}.accreditation-create-copy strong{font-size:1.12rem;color:#122849}.accreditation-create-copy>span{color:#61718a;font-weight:500}.accreditation-create-action{display:flex;align-items:center;gap:9px;background:#fff;color:#245ec5;border:1px solid #bfd2fb;border-radius:11px;padding:11px 14px;font-weight:800;white-space:nowrap}.accreditation-create[open] .accreditation-create-action b{transform:rotate(180deg)}.accreditation-create>form{background:#fff;margin:0!important;padding:22px;border-top:1px solid #cbdaf8}.accreditation-existing-heading{margin:24px 0 14px}.accreditation-existing-heading>span{background:#e8eef7;color:#315273}@media(max-width:700px){.accreditation-create>summary{grid-template-columns:48px 1fr}.accreditation-create-action{grid-column:1/-1;justify-content:center}.accreditation-create-icon{width:46px;height:46px}}
.accreditation-sync-help{display:flex;gap:10px;align-items:center;padding:12px 16px;margin-bottom:16px;background:#f5f8fc;color:#627187}.accreditation-sync-help strong{color:#203653;white-space:nowrap}.accreditation-report-filters{display:grid;grid-template-columns:1.3fr repeat(4,1fr) auto auto;gap:9px;margin-bottom:18px}.accreditation-report-table{min-width:1150px}.accreditation-report-table td small{display:block;color:var(--muted);margin-top:4px}.accreditation-report-courses{min-width:230px}.accreditation-report-courses span{display:block;padding:3px 0;font-size:.76rem}@media(max-width:1050px){.accreditation-report-filters{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.accreditation-report-filters,.accreditation-sync-help{display:grid;grid-template-columns:1fr}.accreditation-sync-help strong{white-space:normal}}
.accreditation-settings-grid{display:grid;grid-template-columns:1fr;gap:16px}.accreditation-site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.accreditation-site-card{padding:0!important;overflow:hidden}.accreditation-site-card>summary{padding:18px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.accreditation-site-card>summary>div{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center}.accreditation-site-card>summary small{grid-column:2;color:var(--muted)}.accreditation-site-card>form{padding:20px;border-top:1px solid var(--border)}.accreditation-members-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin:18px 0}.accreditation-members-grid fieldset,.accreditation-course-create fieldset,.accreditation-editor fieldset{border:1px solid var(--border);border-radius:12px;padding:14px}.accreditation-option-search{width:100%;margin:8px 0 10px}.searchable-options{max-height:330px}.searchable-options label{display:flex;align-items:flex-start;gap:8px}.searchable-options label span{display:grid}.searchable-options label small{color:var(--muted)}.check-grid.horizontal{display:flex;flex-wrap:wrap;gap:10px 18px}.accreditation-course-create{margin-top:22px}.accreditation-matrix-filters{display:grid;grid-template-columns:1.2fr 1.6fr 1fr 1fr auto;gap:12px;align-items:end}.accreditation-matrix-filters .primary-filter select{border-color:#2f6fed;background:#f5f8ff;font-weight:700}.matrix-legend{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.matrix-legend span{padding:6px 10px;border-radius:8px;font-size:.75rem;font-weight:800}.matrix-legend .vigente{background:#dcf7e9;color:#087a55}.matrix-legend .por_vencer{background:#fff4ca;color:#966000}.matrix-legend .por_vencer_urgente{background:#ffead2;color:#ae5200}.matrix-legend .vencido{background:#ffe1e7;color:#ad1f37}.matrix-legend .pendiente{background:#edf1f6;color:#5d6a7a}.accreditation-sheet-panel{padding:0!important;overflow:hidden}.accreditation-sheet-scroll{overflow:auto;max-height:68vh}.accreditation-sheet{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:.82rem}.accreditation-sheet th,.accreditation-sheet td{padding:9px;border-right:1px solid #dce3ec;border-bottom:1px solid #dce3ec;vertical-align:middle;background:#fff}.accreditation-sheet thead th{position:sticky;top:0;z-index:5;background:#17365d;color:#fff;text-align:left}.accreditation-sheet th small,.accreditation-sheet td small{display:block;margin-top:3px;color:#9fb2cb}.accreditation-sheet td small{color:var(--muted)}.accreditation-sheet .sticky-worker{position:sticky;left:0;z-index:3;min-width:210px;max-width:240px}.accreditation-sheet thead .sticky-worker{z-index:7;background:#17365d}.accreditation-sheet tbody tr:hover td{background:#f8fbff}.accreditation-sheet tbody tr:hover .sticky-worker{background:#f8fbff}.course-column{min-width:190px}.matrix-cell{position:relative;display:grid;grid-template-columns:130px auto auto;gap:6px;align-items:center;padding:5px;border-radius:9px;transition:.15s}.matrix-cell.vigente{background:#e2f8ed}.matrix-cell.por_vencer{background:#fff5d7}.matrix-cell.por_vencer_urgente{background:#ffead5}.matrix-cell.vencido{background:#ffe3e8}.matrix-cell.pendiente{background:#eef2f6}.matrix-cell.saving{opacity:.45}.matrix-date{min-width:130px;padding:7px!important;border:1px solid rgba(30,55,90,.18)!important;background:#fff!important}.matrix-status{font-size:.7rem;font-weight:800;white-space:nowrap}.matrix-doc-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#fff;color:#8794a6;cursor:pointer;border:1px solid #d6deea}.matrix-doc-mark.has-document{background:#dceaff;color:#1e5cc4;border-color:#a8c4f4}.matrix-doc-mark input{display:none}@media(max-width:1050px){.accreditation-site-grid{grid-template-columns:1fr}.accreditation-matrix-filters{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.accreditation-members-grid,.accreditation-matrix-filters{grid-template-columns:1fr}.accreditation-sheet-scroll{max-height:72vh}}
.report-matrix-date{display:block;padding:7px 9px;border-radius:8px;font-weight:700;text-align:center}.report-matrix-date.vigente{background:#dcf7e9;color:#087a55}.report-matrix-date.por_vencer{background:#fff4ca;color:#966000}.report-matrix-date.por_vencer_urgente{background:#ffead2;color:#ae5200}.report-matrix-date.vencido{background:#ffe1e7;color:#ad1f37}.report-matrix-date.pendiente{background:#edf1f6;color:#5d6a7a}
.matrix-cell{display:flex;grid-template-columns:none}.matrix-doc-view{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#fff;color:#1e5cc4;border:1px solid #a8c4f4;text-decoration:none;font-weight:800}
.accreditation-person-site{margin-bottom:18px}.accreditation-person-site .section-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.accreditation-person-site table{min-width:820px}
.accreditation-mine-courses{border:1px solid var(--border);border-radius:12px;padding:15px;margin:18px 0}.accreditation-mine-courses .check-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}.form-help{color:var(--muted);font-size:.82rem;margin:10px 0 16px}.accreditation-profile-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-bottom:18px}.accreditation-profile-head h2{margin:2px 0 4px}.accreditation-profile-head p{margin:0;color:var(--muted)}.accreditation-profile-avatar{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:#e5edff;color:#245ec5;font-size:1.35rem;font-weight:900}.accreditation-person-sites{display:grid;gap:18px}.accreditation-person-site{padding:0!important;overflow:hidden}.accreditation-site-heading{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:18px 20px;background:#f7f9fc;border-bottom:1px solid var(--border)}.accreditation-site-heading h3{margin:2px 0}.accreditation-site-heading p{margin:0;color:var(--muted)}.accreditation-site-symbol{width:42px;height:42px;border-radius:12px;background:#e4ecfb;color:#245ec5;display:grid;place-items:center;font-size:1.2rem}.accreditation-person-records{display:grid}.accreditation-person-record{border-bottom:1px solid var(--border);border-left:5px solid #aeb8c7}.accreditation-person-record:last-child{border-bottom:0}.accreditation-person-record.vigente{border-left-color:#14a474}.accreditation-person-record.por_vencer{border-left-color:#dca219}.accreditation-person-record.por_vencer_urgente{border-left-color:#ed7b16}.accreditation-person-record.vencido{border-left-color:#cf344d}.accreditation-person-record-main{display:grid;grid-template-columns:70px minmax(180px,1.5fr) minmax(150px,1fr) auto auto;gap:14px;align-items:center;padding:17px 20px}.accreditation-record-kind{padding:6px 8px;border-radius:8px;background:#e8eef7;color:#49617e;font-size:.68rem;font-weight:800;text-align:center}.accreditation-person-record-main h4{margin:0 0 3px;font-size:.96rem}.accreditation-person-record-main small{color:var(--muted)}.accreditation-expiry{display:grid;gap:3px}.accreditation-expiry span{font-size:.7rem;color:var(--muted)}.accreditation-history-panel{padding:0 20px 20px 104px;background:#fbfcfe}.accreditation-history-title{display:grid;padding:14px 0 10px}.accreditation-history-title small{color:var(--muted)}.accreditation-timeline{position:relative;display:grid;gap:0}.accreditation-timeline:before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:2px;background:#d8e1ee}.accreditation-timeline-item{position:relative;display:flex;gap:13px;padding:8px 0}.accreditation-timeline-item i{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;background:#b8c4d4;border:3px solid #fff;box-shadow:0 0 0 1px #b8c4d4}.accreditation-timeline-item.current i{background:#2f6fed;box-shadow:0 0 0 1px #2f6fed}.accreditation-timeline-item>div{display:grid;gap:2px}.accreditation-timeline-item small{color:var(--muted)}.accreditation-timeline-item a{font-size:.75rem;color:#245ec5;font-weight:700}@media(max-width:900px){.accreditation-person-record-main{grid-template-columns:60px 1fr auto}.accreditation-expiry{grid-column:2}.accreditation-person-record-main>.inline-actions{grid-column:2/-1}.accreditation-history-panel{padding-left:95px}}@media(max-width:620px){.accreditation-profile-head,.accreditation-site-heading{grid-template-columns:auto 1fr}.accreditation-profile-head>.button,.accreditation-site-heading>.accreditation-status{grid-column:1/-1}.accreditation-person-record-main{grid-template-columns:1fr}.accreditation-expiry,.accreditation-person-record-main>.inline-actions{grid-column:auto}.accreditation-history-panel{padding-left:20px}.accreditation-mine-courses .check-grid{grid-template-columns:1fr}}
.accreditation-site-card>summary{display:grid!important;grid-template-columns:auto minmax(150px,1fr) auto auto auto!important;gap:14px!important;background:linear-gradient(135deg,#fff,#f6f9fe);list-style:none}.accreditation-site-card>summary::-webkit-details-marker{display:none}.accreditation-site-map{width:46px;height:46px;border-radius:13px;background:#e4edff;color:#2864ce;display:grid;place-items:center;font-size:1.25rem}.accreditation-site-summary-copy{display:grid;gap:2px}.accreditation-site-summary-copy>small{color:#2864ce!important;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.accreditation-site-summary-copy>strong{font-size:1.02rem}.accreditation-site-summary-copy>span{font-size:.76rem;color:var(--muted)}.accreditation-site-summary-count{display:grid;text-align:center;padding:6px 14px;border-left:1px solid var(--border);border-right:1px solid var(--border)}.accreditation-site-summary-count strong{font-size:1.2rem;color:#17365d}.accreditation-site-summary-count small{color:var(--muted)!important}.accreditation-site-open{display:flex;align-items:center;gap:6px;color:#2864ce;font-weight:800;font-size:.78rem}.accreditation-site-card[open] .accreditation-site-open b{transform:rotate(180deg)}.accreditation-site-card>form{padding:0!important}.accreditation-site-form-section{padding:20px 22px}.accreditation-site-form-section+.accreditation-site-form-section{border-top:1px solid var(--border)}.accreditation-site-form-section .section-heading{margin-bottom:16px}.accreditation-site-form-section .section-heading>span{background:#e7efff;color:#2864ce}.accreditation-site-fields{grid-template-columns:1fr 1fr}.accreditation-course-picker{border:1px solid #d9e2ef;border-radius:13px;overflow:hidden;background:#fff}.accreditation-course-picker-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;background:#f5f8fc;border-bottom:1px solid #d9e2ef}.accreditation-course-picker-head input{margin:0!important}.accreditation-course-picker-head>span{font-size:.75rem;color:var(--muted);white-space:nowrap}.accreditation-course-picker-head b{color:#2864ce;font-size:1rem}.accreditation-course-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;max-height:300px;overflow:auto}.accreditation-course-options label{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;border:1px solid #dbe3ed;border-radius:11px;padding:11px;cursor:pointer;background:#fff;transition:.15s}.accreditation-course-options label:hover{border-color:#9dbaf0;background:#f8faff}.accreditation-course-options label.selected{border-color:#6090ea;background:#edf3ff;box-shadow:inset 0 0 0 1px #6090ea}.accreditation-course-options input{position:absolute;opacity:0;pointer-events:none}.course-check{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#eef2f7;color:transparent;font-weight:900}.accreditation-course-options label.selected .course-check{background:#2f6fed;color:#fff}.accreditation-course-options label>span:last-child{display:grid;gap:2px}.accreditation-course-options small{color:var(--muted);font-size:.7rem}.accreditation-general-note{display:flex;gap:10px;align-items:center;margin-top:12px;padding:11px 13px;border-radius:11px;background:#eaf8f2;color:#166e52}.accreditation-general-note>span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#16a173;color:#fff;font-weight:900}.accreditation-general-note>div{display:grid}.accreditation-general-note small{color:#477766}.accreditation-site-form-actions{display:flex;align-items:center;gap:14px;padding:16px 22px;background:#f7f9fc;border-top:1px solid var(--border)}.accreditation-site-form-actions span{font-size:.76rem;color:var(--muted)}@media(max-width:800px){.accreditation-site-card>summary{grid-template-columns:auto 1fr auto!important}.accreditation-site-summary-count,.accreditation-site-open{display:none}.accreditation-site-fields,.accreditation-course-options{grid-template-columns:1fr}}@media(max-width:520px){.accreditation-site-card>summary{grid-template-columns:auto 1fr!important}.accreditation-site-card>summary>.badge{grid-column:2}.accreditation-course-picker-head{grid-template-columns:1fr}.accreditation-site-form-actions{display:grid}}
.accreditation-report-sites{grid-column:1/-1;border:1px solid var(--line,#e5eaf0);border-radius:16px;padding:14px;background:#f8fafc}.accreditation-report-sites-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:11px}.accreditation-report-sites-head strong,.accreditation-report-sites-head small{display:block}.accreditation-report-sites-head small{color:#708096;margin-top:3px}.accreditation-report-sites-head button{border:0;background:transparent;color:#2563eb;font-weight:700;cursor:pointer;margin-left:10px}.accreditation-report-site-options{display:flex;flex-wrap:wrap;gap:9px}.accreditation-report-site-options label{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dce4ee;border-radius:12px;padding:9px 12px;cursor:pointer}.accreditation-report-site-options label:has(input:checked){border-color:#2563eb;background:#eaf1ff}.accreditation-report-site-options span strong,.accreditation-report-site-options span small{display:block}.accreditation-report-site-options span small{color:#708096;font-size:10px}.accreditation-report-scope{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #e5eaf0}.accreditation-report-scope span{color:#708096;font-size:12px}.report-matrix-date.no-aplica{color:#94a3b8;background:#f8fafc}@media(max-width:760px){.accreditation-report-sites-head{align-items:flex-start;flex-direction:column}.accreditation-report-scope{align-items:flex-start;flex-direction:column;gap:4px}}
@media (min-width:1051px){.accreditation-matrix-filters{grid-template-columns:1.15fr 1.35fr repeat(4,minmax(145px,1fr)) auto}}
.accreditation-overall-filter{grid-column:1/-2;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:10px 13px;border:1px solid #dbe4f0;border-radius:13px;background:#f8faff}.accreditation-overall-filter>div:first-child{display:grid;gap:3px}.accreditation-overall-filter>div:first-child strong{color:#203653;font-size:.8rem}.accreditation-overall-filter>div:first-child small{color:var(--muted);font-size:.69rem}.accreditation-overall-options{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.accreditation-overall-options label{position:relative;cursor:pointer}.accreditation-overall-options input{position:absolute;opacity:0;pointer-events:none}.accreditation-overall-options span{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:6px 10px;border:1px solid #d8e0eb;border-radius:999px;background:#fff;color:#5b6b80;font-size:.68rem;font-weight:900;letter-spacing:.025em;transition:.15s}.accreditation-overall-options input:focus-visible+span{outline:3px solid rgba(47,111,237,.2);outline-offset:2px}.accreditation-overall-options label.apto input:checked+span{border-color:#079447;background:#079447;color:#fff}.accreditation-overall-options label.por_vencer input:checked+span{border-color:#ffdf00;background:#ffdf00;color:#332a00}.accreditation-overall-options label.no_apto input:checked+span{border-color:#e00022;background:#e00022;color:#fff}.accreditation-overall-options label.sin_fecha input:checked+span{border-color:#60738d;background:#60738d;color:#fff}.accreditation-report-filters .accreditation-overall-filter.report{grid-column:auto;margin:0 20px 17px;padding:13px 15px}.accreditation-status.sin_fecha{background:#e9eef5!important;color:#526276!important;animation:none!important}@media(max-width:1050px){.accreditation-overall-filter{grid-column:1/-1}}@media(max-width:700px){.accreditation-overall-filter{align-items:flex-start;flex-direction:column}.accreditation-overall-options{justify-content:flex-start}.accreditation-report-filters .accreditation-overall-filter.report{margin:0 14px 14px}}
/* Acreditación y kilometraje de unidades */
.vehicle-save-notice{position:fixed;right:24px;bottom:24px;z-index:9999;padding:12px 17px;border-radius:11px;background:#0f8a62;color:#fff;font-size:.84rem;font-weight:800;box-shadow:0 12px 28px rgba(15,90,70,.28);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.vehicle-save-notice.visible{opacity:1;transform:translateY(0)}
.vehicle-mileage-notes{min-width:180px;max-width:300px;white-space:normal;line-height:1.45}.vehicle-reading-note{display:block!important;width:max-content;max-width:300px;margin-top:7px;padding:5px 9px;border:1px solid #fecaca;border-radius:7px;background:#fff1f2;color:#b42335!important;font-weight:800;line-height:1.35;white-space:normal}
.vehicle-mileage-alert{display:grid!important;grid-template-columns:1fr auto;gap:2px 8px;padding:9px 11px;border:1px solid #cce9dd;border-radius:10px;background:#f0fbf6}.vehicle-mileage-alert small{color:#527063}.vehicle-mileage-alert strong{color:#087a55}.vehicle-mileage-alert span{grid-column:1/-1;font-size:.68rem;font-weight:900;color:#087a55}.vehicle-mileage-alert.warning{background:#fff9e8;border-color:#f3d991}.vehicle-mileage-alert.warning strong,.vehicle-mileage-alert.warning span{color:#a66800}.vehicle-mileage-alert.urgent{background:#fff4e8;border-color:#f2c28a}.vehicle-mileage-alert.urgent strong,.vehicle-mileage-alert.urgent span{color:#b85c00}.vehicle-mileage-alert.due{background:#fff0f2;border-color:#f0a6b2}.vehicle-mileage-alert.due strong,.vehicle-mileage-alert.due span{color:#ba1833}.vehicle-alert-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px!important;border-left:5px solid #15976b}.vehicle-alert-main{display:flex;align-items:flex-start;gap:15px;min-width:0}.vehicle-alert-icon{flex:0 0 46px;width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#e8f7f1;color:#0b815d;font-size:1.45rem;font-weight:900}.vehicle-alert-copy{display:grid;gap:5px}.vehicle-alert-panel h3{margin:0;font-size:1.18rem;color:#183653}.vehicle-alert-metrics{display:flex;flex-wrap:wrap;gap:9px;margin-top:7px}.vehicle-alert-metrics>span{display:grid;gap:1px;min-width:135px;padding:8px 11px;border-radius:9px;background:rgba(255,255,255,.72);border:1px solid rgba(133,160,149,.22)}.vehicle-alert-metrics small{font-size:.67rem;color:var(--muted)}.vehicle-alert-metrics strong{font-size:.82rem;color:#203653}.vehicle-alert-panel.warning{border-left-color:#d99a14;background:#fffbec}.vehicle-alert-panel.urgent{border-left-color:#e87516;background:#fff7ed}.vehicle-alert-panel.due{border-left-color:#cf334d;background:#fff4f5}.vehicle-corrective-panel{margin-top:18px;padding:22px 24px!important}.vehicle-maintenance-heading{align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.vehicle-maintenance-heading>span{width:46px;height:46px;font-size:1.25rem}.vehicle-maintenance-heading small{display:block;margin-bottom:2px;color:#2f6fed;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.vehicle-maintenance-heading h3{margin:0 0 3px!important}.vehicle-maintenance-heading p{margin:0;color:var(--muted)}.vehicle-corrective-form{grid-template-columns:1fr 1fr 2fr;align-items:end;margin-bottom:18px}.vehicle-corrective-form .form-actions{grid-column:1/-1}.vehicle-requirement-card{overflow:hidden}.vehicle-requirement-delete{margin-top:10px}.vehicle-requirement-delete button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:5px 10px;border:1px solid #efb7c0;border-radius:8px;background:#fff7f8;color:#b4233b;font:inherit;font-size:.72rem;font-weight:800;cursor:pointer;transition:.15s}.vehicle-requirement-delete button:hover{border-color:#d9485f;background:#fff0f2}.vehicle-requirement-delete button span{font-size:1rem;line-height:1}.vehicle-requirement-head>div:last-child{min-width:112px}.vehicle-requirement-head>div:last-child .vehicle-requirement-delete{justify-self:end}@media(max-width:760px){.vehicle-alert-panel{align-items:stretch;flex-direction:column;padding:18px!important}.vehicle-alert-main{align-items:flex-start}.vehicle-alert-metrics{display:grid;grid-template-columns:1fr}.vehicle-alert-metrics>span{min-width:0}.vehicle-corrective-panel{padding:18px!important}.vehicle-corrective-form{grid-template-columns:1fr}.vehicle-requirement-delete button{width:100%}}
.vehicle-record-audit>strong,.vehicle-record-audit>small{display:block}.vehicle-record-audit>small{color:var(--muted);margin-top:3px}.vehicle-history{margin-top:9px;min-width:285px}.vehicle-history>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:9px;background:#eef4ff;color:#245ec5;font-size:.76rem;font-weight:800;cursor:pointer;list-style:none}.vehicle-history>summary::-webkit-details-marker{display:none}.vehicle-history>summary span{min-width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#2f6fed;color:#fff}.vehicle-history-list{position:relative;display:grid;gap:0;padding:9px 4px 2px}.vehicle-history-list:before{content:"";position:absolute;left:10px;top:18px;bottom:12px;width:2px;background:#d8e2ef}.vehicle-history-item{position:relative;display:grid;grid-template-columns:14px 1fr;gap:10px;padding:8px 0}.vehicle-history-item i{position:relative;z-index:1;width:12px;height:12px;margin-top:4px;border-radius:50%;background:#8ea4c2;border:3px solid #fff;box-shadow:0 0 0 1px #8ea4c2}.vehicle-history-item>div{display:grid;gap:2px}.vehicle-history-item small{color:#6f7e92;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.vehicle-history-item strong{color:#203653}.vehicle-history-item span{color:var(--muted);font-size:.72rem;line-height:1.4}
.vehicle-report-filters{padding:0!important;overflow:hidden}.vehicle-report-filters>fieldset{border:0;margin:0;padding:17px 20px;background:#f7faff;border-bottom:1px solid var(--border)}.vehicle-report-filters>fieldset legend{font-weight:800;color:#17365d;padding-top:16px}.vehicle-report-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr auto;gap:12px;align-items:end;padding:18px 20px}.report-heading{padding:16px 18px;margin:0;border-bottom:1px solid var(--border)}@media(max-width:900px){.vehicle-report-fields{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.vehicle-report-fields{grid-template-columns:1fr}}
.vehicle-create{padding:0!important;overflow:hidden;margin-bottom:18px}.vehicle-create>summary{display:flex;align-items:center;gap:13px;padding:18px 20px;cursor:pointer;background:linear-gradient(135deg,#f7faff,#edf3ff)}.vehicle-create>summary div{display:grid;gap:3px}.vehicle-create>summary small{color:var(--muted)}.vehicle-create>form{padding:20px;border-top:1px solid var(--border)}.vehicle-unit-form,.vehicle-requirement-form{grid-template-columns:repeat(4,minmax(0,1fr))}.vehicle-unit-form .form-actions,.vehicle-requirement-form .form-actions{grid-column:1/-1}.vehicle-bank-filter,.vehicle-mileage-filter{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}.vehicle-unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.vehicle-unit-card{padding:0!important;overflow:hidden;display:grid;grid-template-columns:115px 1fr;min-height:235px}.vehicle-unit-photo{background:linear-gradient(145deg,#dfe9f8,#f3f7fc);display:grid;place-items:center;min-height:100%}.vehicle-unit-photo img{width:100%;height:100%;object-fit:cover}.vehicle-unit-photo span{font-size:2.3rem;color:#52709a}.vehicle-unit-copy{padding:18px;display:flex;flex-direction:column;gap:9px}.vehicle-unit-copy>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center}.vehicle-unit-copy h3{font-size:1.35rem;margin:0;color:#17365d}.vehicle-unit-copy p{margin:0;color:var(--muted)}.vehicle-mileage-highlight{display:grid!important;padding:10px 12px;border-radius:11px;background:#eef4ff}.vehicle-mileage-highlight small{color:#5c7090}.vehicle-mileage-highlight strong{font-size:1.15rem;color:#205bbd}.vehicle-matrix-filters{display:grid;grid-template-columns:1.2fr 1.5fr 1.2fr 1.2fr auto;gap:12px;align-items:end}.vehicle-matrix-filters .primary-filter select{border-color:#2f6fed;background:#f5f8ff;font-weight:700}.vehicle-matrix-cell{display:flex}.vehicle-requirement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vehicle-requirement-head{display:flex;justify-content:space-between;gap:18px}.vehicle-requirement-head h3{margin:10px 0 4px}.vehicle-requirement-head p{margin:0;color:var(--muted)}.vehicle-requirement-head>div:last-child{display:grid;text-align:right;align-content:start}.vehicle-requirement-head>div:last-child strong{font-size:1.25rem;color:#245ec5}.vehicle-requirement-head small{color:var(--muted)}.vehicle-requirement-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.vehicle-requirement-meta span{padding:7px 10px;border-radius:9px;background:#f1f5f9;color:#526276;font-size:.75rem}.vehicle-mileage-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.vehicle-mileage-form .form-actions{grid-column:1/-1}.vehicle-mileage-filter{grid-template-columns:1.4fr 1fr 1fr auto;margin-top:18px}.vehicle-profile-grid{display:grid;grid-template-columns:minmax(280px,.8fr) 1.4fr;gap:18px;margin-bottom:18px}.vehicle-profile-card{display:grid;grid-template-columns:150px 1fr;gap:18px}.vehicle-profile-photo{min-height:180px;border-radius:14px;overflow:hidden;background:#e8eef7;display:grid;place-items:center}.vehicle-profile-photo img{width:100%;height:100%;object-fit:cover}.vehicle-profile-photo span{font-size:2.5rem;color:#52709a}.vehicle-reading-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.vehicle-reading-row>div{display:grid}.vehicle-reading-row small{color:var(--muted)}.vehicle-reading-row b{color:#15976b}.correction-form{display:grid;grid-template-columns:130px 220px auto;gap:8px;padding-top:10px}.span-2{grid-column:span 2}@media(max-width:1200px){.vehicle-unit-grid{grid-template-columns:repeat(2,1fr)}.vehicle-unit-form,.vehicle-requirement-form,.vehicle-mileage-form{grid-template-columns:repeat(2,1fr)}.vehicle-matrix-filters{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.vehicle-unit-grid,.vehicle-requirement-list,.vehicle-profile-grid,.vehicle-bank-filter,.vehicle-mileage-filter,.vehicle-unit-form,.vehicle-requirement-form,.vehicle-mileage-form,.vehicle-matrix-filters{grid-template-columns:1fr}.vehicle-unit-card{grid-template-columns:1fr}.vehicle-unit-photo{height:170px}.vehicle-profile-card{grid-template-columns:1fr}.span-2{grid-column:auto}.correction-form{grid-template-columns:1fr}.vehicle-reading-row{grid-template-columns:1fr auto}.vehicle-reading-row>b{grid-column:2}}
.accreditation-report-filters{display:block;padding:0!important;overflow:hidden;border:1px solid #dbe4f0!important}.accreditation-report-filter-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 20px;background:linear-gradient(135deg,#f7faff,#edf3ff);border-bottom:1px solid #dbe4f0}.accreditation-report-filter-heading>div{display:flex;align-items:center;gap:12px}.accreditation-report-filter-heading strong,.accreditation-report-filter-heading small{display:block}.accreditation-report-filter-heading strong{color:#17365d;font-size:1rem}.accreditation-report-filter-heading small{color:#708096;margin-top:2px}.accreditation-report-filter-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#2f6fed;color:#fff;font-size:1.3rem;font-weight:900;box-shadow:0 7px 16px rgba(47,111,237,.22)}.accreditation-report-filter-hint{padding:7px 10px;border-radius:999px;background:#fff;color:#52709b;font-size:.72rem;font-weight:700;border:1px solid #d9e5f8}.accreditation-report-filters .accreditation-report-sites{margin:16px 20px 0;padding:16px;border-color:#dbe4f0;background:#f9fbfe}.accreditation-report-filter-fields{display:grid;grid-template-columns:1.35fr repeat(5,minmax(145px,1fr));gap:13px;padding:17px 20px}.accreditation-report-filter-fields .field{margin:0}.accreditation-report-filter-fields .field>span{font-size:.72rem;font-weight:800;color:#4c607b;margin-bottom:7px}.accreditation-report-filter-fields input,.accreditation-report-filter-fields select{width:100%;min-height:43px;border-color:#d5dfec;background-color:#fff}.accreditation-report-filter-fields select:disabled{background:#eef2f6;color:#8b98aa;cursor:not-allowed}.accreditation-filter-control{position:relative}.accreditation-filter-control b{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#6d7f97;font-size:1.05rem}.accreditation-filter-control input{padding-left:38px}.accreditation-report-filter-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;background:#f8fafc;border-top:1px solid #e3e9f1}.accreditation-report-filter-actions .button{min-width:135px;justify-content:center}@media(max-width:1200px){.accreditation-report-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.accreditation-report-search{grid-column:1/-1}}@media(max-width:700px){.accreditation-report-filter-heading{align-items:flex-start}.accreditation-report-filter-hint{display:none}.accreditation-report-filter-fields{grid-template-columns:1fr}.accreditation-report-search{grid-column:auto}.accreditation-report-filter-actions{display:grid;grid-template-columns:1fr 1fr}.accreditation-report-filter-actions .button{width:100%}}@media(max-width:480px){.accreditation-report-filter-actions{grid-template-columns:1fr}}
/* Constancias y certificados laborales */
.worker-document-create{padding:0!important;overflow:hidden;margin-bottom:18px}.worker-document-create>summary{display:flex;align-items:center;gap:13px;padding:18px 20px;cursor:pointer;background:linear-gradient(135deg,#f7faff,#edf3ff)}.worker-document-create>summary div{display:grid;gap:3px}.worker-document-create>summary small{color:var(--muted)}.worker-document-form{grid-template-columns:repeat(4,minmax(0,1fr));padding:20px;border-top:1px solid var(--border)}.worker-document-form .form-actions{grid-column:1/-1}.worker-document-filter{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end;margin-bottom:18px}.worker-document-list{padding:0!important;overflow:hidden}.worker-document-list>.section-heading{padding:18px 20px;margin:0;border-bottom:1px solid var(--border)}.worker-document-list td>small{display:block;margin-top:4px;color:var(--muted)}.worker-document-preview{padding:12px!important;background:#dfe5ed}.worker-document-preview iframe{display:block;width:100%;height:900px;border:0;border-radius:10px;background:#fff}@media(max-width:900px){.worker-document-form{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.worker-document-form,.worker-document-filter{grid-template-columns:1fr}.worker-document-form .span-2{grid-column:auto}.worker-document-preview{padding:4px!important}.worker-document-preview iframe{height:720px}}

/* Orden visual común del módulo vehicular */
.vehicle-page-actions{align-items:flex-start;margin-bottom:18px}.vehicle-page-actions h2{margin-bottom:5px}.vehicle-page-actions p{max-width:720px;margin-bottom:0}.vehicle-page-links{justify-content:flex-end;flex-wrap:wrap}.vehicle-page-links .button{white-space:nowrap}
.vehicle-filter-panel{display:grid!important;align-items:end;gap:13px;padding:0 20px 18px!important;overflow:hidden}.vehicle-filter-heading{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:0 -20px 2px;padding:15px 20px;border-bottom:1px solid #dde5ef;background:linear-gradient(135deg,#f8faff,#eef4ff)}.vehicle-filter-heading>span,.vehicle-report-filter-title>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#2f6fed;color:#fff;font-size:1.15rem;font-weight:900}.vehicle-filter-heading>div,.vehicle-report-filter-title>div{display:grid;gap:2px}.vehicle-filter-heading strong,.vehicle-report-filter-title strong{color:#17365d}.vehicle-filter-heading small,.vehicle-report-filter-title small{color:var(--muted)}.vehicle-filter-panel>.field{margin:0}.vehicle-filter-panel>.button{min-height:43px;justify-content:center}.vehicle-bank-filter{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(145px,1fr) auto}.vehicle-mileage-filter{grid-template-columns:minmax(240px,1.6fr) minmax(155px,1fr) minmax(155px,1fr) auto;margin-top:18px}.vehicle-matrix-filters{grid-template-columns:minmax(185px,1.15fr) minmax(190px,1.35fr) minmax(170px,1fr) minmax(155px,1fr) auto}.vehicle-matrix-filters .primary-filter select{min-height:43px}
.vehicle-list-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 2px 12px}.vehicle-list-heading h3{margin:0 0 3px;color:#17365d}.vehicle-list-heading p{margin:0;color:var(--muted);font-size:.78rem}.vehicle-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vehicle-unit-card{grid-template-columns:132px minmax(0,1fr);min-height:285px}.vehicle-unit-copy{padding:18px 19px;gap:11px}.vehicle-unit-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.vehicle-unit-copy>div:first-child{display:flex}.vehicle-unit-copy>div:nth-child(2) h3{margin:0 0 4px}.vehicle-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.vehicle-mileage-highlight,.vehicle-mileage-alert{min-height:70px;align-content:center}.vehicle-unit-footnote{margin-top:auto;color:var(--muted)}.vehicle-card-actions{padding-top:10px;border-top:1px solid var(--border)}.vehicle-card-actions .button{justify-content:center}.vehicle-empty-state{grid-column:1/-1;padding:45px!important}
.vehicle-kpis .vehicle-kpi{position:relative;overflow:hidden}.vehicle-kpi:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:#64748b}.vehicle-kpi strong{color:#64748b}.vehicle-kpi.units:before{background:#2563eb}.vehicle-kpi.units strong{color:#2563eb}.vehicle-kpi.valid:before{background:#12966f}.vehicle-kpi.valid strong{color:#12966f}.vehicle-kpi.warning:before{background:#d88916}.vehicle-kpi.warning strong{color:#d88916}.vehicle-kpi.expired:before{background:#d33f52}.vehicle-kpi.expired strong{color:#d33f52}.vehicle-kpi.pending:before{background:#64748b}
.vehicle-matrix-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:17px 2px 10px}.vehicle-matrix-toolbar>div:first-child{display:grid;gap:2px}.vehicle-matrix-toolbar>div:first-child strong{font-size:1rem;color:#17365d}.vehicle-matrix-toolbar>div:first-child small{color:var(--muted)}.vehicle-matrix-toolbar .matrix-legend{margin:0}
.vehicle-section-panel{padding:22px 24px!important}.vehicle-section-heading,.vehicle-table-heading{align-items:center}.vehicle-section-heading{padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--border)}.vehicle-section-heading small{color:#2f6fed;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.vehicle-section-heading h3{margin:1px 0 3px!important}.vehicle-data-panel{padding:0!important;overflow:hidden;margin-top:18px}.vehicle-table-heading{margin:0;padding:17px 20px;border-bottom:1px solid var(--border);background:#fbfcfe}.vehicle-table-heading>b{margin-left:auto;padding:6px 10px;border-radius:999px;background:#edf3ff;color:#2b63c7;font-size:.7rem}.vehicle-table{margin:0}.vehicle-table th{white-space:nowrap}.vehicle-table td{vertical-align:middle}.vehicle-table td>small,.vehicle-table td>strong{display:block}.vehicle-table td>small{margin-top:3px;color:var(--muted)}.vehicle-distance{color:#0b8b63}.vehicle-history-table td{min-width:92px}.vehicle-history-table td:nth-child(6){min-width:190px}.vehicle-correction>summary{white-space:nowrap}.vehicle-data-panel>.pagination{padding:13px 18px;border-top:1px solid var(--border)}
.vehicle-report-filter-title{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.vehicle-report-filters>fieldset{margin:0}.vehicle-report-fields>.button{min-height:43px;justify-content:center}.vehicle-requirement-list{align-items:start}.vehicle-requirement-card{display:flex;flex-direction:column}.vehicle-requirement-card .accreditation-editor{margin-top:16px}.vehicle-profile-grid>.panel,.vehicle-corrective-panel,.vehicle-data-panel{border-color:#dce4ef}
@media(min-width:1550px){.vehicle-unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vehicle-unit-card{grid-template-columns:115px minmax(0,1fr)}.vehicle-card-metrics{grid-template-columns:1fr}}
@media(max-width:1100px){.vehicle-bank-filter,.vehicle-mileage-filter,.vehicle-matrix-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-filter-panel>.button{width:100%}.vehicle-unit-card{grid-template-columns:110px minmax(0,1fr)}.vehicle-card-metrics{grid-template-columns:1fr}.vehicle-report-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-report-fields>.button{width:100%}}
@media(max-width:760px){.vehicle-page-actions{gap:14px}.vehicle-page-links{width:100%;justify-content:flex-start}.vehicle-page-links .button{flex:1;justify-content:center}.vehicle-bank-filter,.vehicle-mileage-filter,.vehicle-matrix-filters{grid-template-columns:1fr}.vehicle-unit-grid{grid-template-columns:1fr}.vehicle-unit-card{grid-template-columns:105px minmax(0,1fr)}.vehicle-matrix-toolbar{align-items:flex-start;flex-direction:column}.vehicle-section-panel{padding:18px!important}.vehicle-table-heading>b{display:none}.vehicle-report-fields{grid-template-columns:1fr}.vehicle-report-filter-title{padding:14px 16px}}
@media(max-width:520px){.vehicle-unit-card{grid-template-columns:1fr}.vehicle-unit-photo{height:180px;min-height:0}.vehicle-card-metrics{grid-template-columns:1fr 1fr}.vehicle-card-actions{display:grid;grid-template-columns:1fr}.vehicle-card-actions form,.vehicle-card-actions button{width:100%}.vehicle-page-links{display:grid;grid-template-columns:1fr;width:100%}.vehicle-card-metrics{grid-template-columns:1fr}}

/* Contabilidad · requerimientos de dinero y rendiciones */
.accounting-heading h2{margin-bottom:5px}.accounting-heading p{max-width:780px;margin-bottom:0}.accounting-list-panel{padding:0!important;overflow:hidden}.accounting-filters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(170px,1fr) minmax(145px,.8fr) auto;gap:12px;align-items:end;padding:18px 20px;border-bottom:1px solid var(--border);background:#f8faff}.accounting-filters .field{margin:0}.accounting-filters .button{min-height:43px;justify-content:center}.accounting-request-list{display:grid;gap:12px;padding:18px 20px}.accounting-request-card{display:grid;grid-template-columns:minmax(260px,1.8fr) minmax(180px,.7fr) minmax(210px,.9fr);gap:20px;align-items:center;padding:18px 20px;border:1px solid var(--border);border-radius:15px;color:inherit;text-decoration:none;background:#fff;transition:.16s}.accounting-request-card:hover{transform:translateY(-1px);border-color:#adc5ec;box-shadow:0 10px 26px rgba(27,58,99,.08)}.accounting-card-number{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.accounting-card-number>span{color:#2c64c8;font-size:.75rem;font-weight:900;letter-spacing:.04em}.accounting-card-main h3{margin:8px 0 5px;font-size:1rem;line-height:1.4}.accounting-card-main p{margin:0;color:var(--muted);font-size:.78rem}.accounting-card-amount{display:grid;gap:3px}.accounting-card-amount small,.accounting-card-amount span{color:var(--muted);font-size:.72rem}.accounting-card-amount strong{color:#17365d;font-size:1.28rem}.accounting-status,.accounting-expense-status{display:inline-flex;width:max-content;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;background:#edf2f7;color:#526276;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.035em}.accounting-status.pending,.accounting-status.under_review,.accounting-expense-status.pending{background:#fff2cf;color:#986000}.accounting-status.approved,.accounting-status.partial{background:#e7efff;color:#245ec5}.accounting-status.closed,.accounting-expense-status.approved{background:#dcf7e9;color:#087a55}.accounting-status.observed{background:#fff0d8;color:#a55d00}.accounting-status.rejected,.accounting-expense-status.rejected{background:#ffe2e7;color:#b2223a}.accounting-progress{display:grid;grid-template-columns:1fr auto;gap:13px;align-items:center}.accounting-progress i{display:block;height:9px;border-radius:99px;background:#e5ebf3;overflow:hidden}.accounting-progress i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6fed,#12a878)}.accounting-progress>div{display:grid;min-width:150px}.accounting-progress>div strong{color:#17365d}.accounting-progress>div span,.accounting-progress small{color:var(--muted);font-size:.7rem}.accounting-progress.compact{display:grid}.accounting-progress.compact i{height:7px}.accounting-progress.compact small{margin-top:4px}.accounting-request-form,.accounting-expense-form{padding:22px 24px!important}.accounting-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.accounting-form-grid textarea{min-height:130px}.accounting-observed{display:grid;gap:4px;color:#955b00;background:#fff8e6;border:1px solid #f0d792}.accounting-summary{display:grid;gap:22px;padding:24px!important}.accounting-summary-title{display:grid;gap:7px}.accounting-summary-title h3{margin:0;color:#17365d}.accounting-summary-title p{margin:0;color:var(--muted);line-height:1.55}.accounting-purpose-detail,.accounting-review-purpose{display:grid;gap:6px;padding:14px 16px;border:1px solid #c9d9f4;border-left:4px solid #2f6fed;border-radius:12px;background:#f4f8ff}.accounting-purpose-detail small,.accounting-review-purpose small{color:#315c9c;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.accounting-purpose-detail strong,.accounting-review-purpose strong{color:#17365d;line-height:1.55}.accounting-review-purpose{margin-top:16px;background:#fff}.accounting-money-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.accounting-money-grid article{display:grid;gap:5px;padding:15px;border:1px solid var(--border);border-radius:13px;background:#f8fafc}.accounting-money-grid small{color:var(--muted)}.accounting-money-grid strong{color:#17365d;font-size:1.22rem}.accounting-money-grid .success{background:#f0fcf7;border-color:#bfe8d6}.accounting-money-grid .success strong{color:#087a55}.accounting-money-grid .pending{background:#fffaf0;border-color:#f1dda9}.accounting-money-grid .pending strong{color:#9a6100}.accounting-request-data{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0}.accounting-request-data>div{padding:11px 13px;border-radius:11px;background:#f4f7fb}.accounting-request-data dt{color:var(--muted);font-size:.69rem}.accounting-request-data dd{margin:4px 0 0;color:#203653;font-weight:800}.accounting-decision-panel{display:grid;grid-template-columns:.8fr 1.5fr;gap:24px;padding:22px 24px!important}.accounting-decision-panel h3{margin:5px 0}.accounting-decision-panel p{color:var(--muted)}.accounting-expense-form{margin-top:18px}.accounting-expense-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.accounting-file-field input{padding:9px;background:#f8faff}.accounting-expenses-panel,.accounting-timeline{margin-top:18px;padding:0!important;overflow:hidden}.accounting-expenses-panel>.catalog-list-heading,.accounting-timeline>.catalog-list-heading{padding:18px 20px;border-bottom:1px solid var(--border)}.accounting-expense-list{display:grid;gap:12px;padding:18px 20px}.accounting-expense-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;align-items:start;padding:17px;border:1px solid var(--border);border-left:4px solid #d9a124;border-radius:13px;background:#fff}.accounting-expense-card.approved{border-left-color:#12a878}.accounting-expense-card.rejected{border-left-color:#d13d56}.accounting-expense-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#edf3ff;color:#2861c3;font-size:1.2rem;font-weight:900}.accounting-expense-main>div:first-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.accounting-expense-main h4{margin:7px 0 4px;color:#17365d}.accounting-expense-main p{margin:0 0 6px;color:#4f6077;line-height:1.45}.accounting-expense-main small{color:var(--muted)}.accounting-expense-comment{margin-top:9px;padding:8px 10px;border-radius:8px;background:#fff3f5;color:#a4263c;font-size:.76rem}.accounting-expense-amount{display:grid;gap:9px;text-align:right}.accounting-expense-amount>strong{color:#17365d;font-size:1.1rem}.accounting-expense-amount form{display:inline-flex}.accounting-expense-review{grid-column:2/-1;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;padding-top:13px;border-top:1px solid var(--border)}.accounting-expense-review .field{margin:0}.accounting-timeline{padding-bottom:12px!important}.accounting-timeline>article{position:relative;display:grid;grid-template-columns:15px 1fr;gap:13px;padding:11px 22px}.accounting-timeline>article>span{position:relative;width:11px;height:11px;margin-top:4px;border-radius:50%;background:#2f6fed;box-shadow:0 0 0 4px #e5edff}.accounting-timeline>article:not(:last-child)>span:after{content:"";position:absolute;top:15px;left:5px;width:1px;height:calc(100% + 14px);background:#ced9e8}.accounting-timeline p{margin:4px 0;color:#53647b}.accounting-timeline small{color:var(--muted)}
@media(max-width:1100px){.accounting-request-card{grid-template-columns:1.5fr .7fr}.accounting-request-card>.accounting-progress{grid-column:1/-1}.accounting-money-grid{grid-template-columns:repeat(2,1fr)}.accounting-expense-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.accounting-filters,.accounting-request-card,.accounting-form-grid,.accounting-money-grid,.accounting-request-data,.accounting-decision-panel,.accounting-expense-grid{grid-template-columns:1fr}.accounting-request-list{padding:13px}.accounting-request-card>.accounting-progress{grid-column:auto}.accounting-request-form,.accounting-expense-form{padding:18px!important}.accounting-expense-card{grid-template-columns:42px 1fr}.accounting-expense-amount,.accounting-expense-review{grid-column:1/-1;text-align:left}.accounting-expense-review{grid-template-columns:1fr}.accounting-progress{grid-template-columns:1fr}.accounting-progress>div{min-width:0}.span-2{grid-column:auto}}

/* Acreditaciones vencidas: alerta visual prioritaria */
@keyframes accreditation-expired-pulse{
    0%,100%{background-color:#ff0000;box-shadow:0 0 0 0 rgba(255,0,0,.85)}
    50%{background-color:#b80000;box-shadow:0 0 0 6px rgba(255,0,0,0)}
}
@keyframes accreditation-warning-pulse{
    0%,100%{background-color:#ff8a00;box-shadow:0 0 0 0 rgba(255,138,0,.72)}
    50%{background-color:#d96800;box-shadow:0 0 0 5px rgba(255,138,0,0)}
}
.matrix-cell.vencido,
.report-matrix-date.vencido,
.accreditation-status.vencido{
    color:#fff!important;
    background:#ff0000!important;
    border-color:#ff0000!important;
    animation:accreditation-expired-pulse 1.15s ease-in-out infinite;
}
.matrix-cell.vencido .matrix-status{color:#fff!important;text-shadow:0 1px 1px rgba(90,0,0,.55)}
.matrix-cell.vencido .matrix-date{color:#b00000!important;border:2px solid #ff0000!important;font-weight:900!important}
.accreditation-person-record.vencido{border-left-color:#ff0000;box-shadow:inset 5px 0 #ff0000}
.matrix-cell.por_vencer_urgente,
.report-matrix-date.por_vencer_urgente,
.accreditation-status.por_vencer_urgente{
    color:#fff!important;
    background:#ff8a00!important;
    border-color:#ff8a00!important;
    animation:accreditation-warning-pulse 1.45s ease-in-out infinite;
}
.matrix-cell.por_vencer_urgente .matrix-status{color:#fff!important;text-shadow:0 1px 1px rgba(95,45,0,.5)}
.matrix-cell.por_vencer_urgente .matrix-date{color:#a84d00!important;border:2px solid #ff8a00!important;font-weight:900!important}
.accreditation-person-record.por_vencer_urgente{border-left-color:#ff8a00;box-shadow:inset 5px 0 #ff8a00}
.matrix-cell.vigente,
.report-matrix-date.vigente,
.accreditation-status.vigente{
    color:#fff!important;
    background:#079447!important;
    border-color:#079447!important;
    animation:none!important;
}
.matrix-cell.vigente .matrix-status{color:#fff!important}
.matrix-cell.vigente .matrix-date{color:#066b36!important;border:2px solid #079447!important;font-weight:900!important}
.accreditation-person-record.vigente{border-left-color:#079447;box-shadow:inset 5px 0 #079447}
.matrix-cell.por_vencer,
.report-matrix-date.por_vencer,
.accreditation-status.por_vencer{
    color:#171717!important;
    background:#ffdf00!important;
    border-color:#ffdf00!important;
    animation:none!important;
}
.matrix-cell.por_vencer .matrix-status{color:#171717!important}
.matrix-cell.por_vencer .matrix-date{color:#624f00!important;border:2px solid #ffdf00!important;font-weight:900!important}
.accreditation-person-record.por_vencer{border-left-color:#ffdf00;box-shadow:inset 5px 0 #ffdf00}
@media(prefers-reduced-motion:reduce){
    .matrix-cell.vencido,.report-matrix-date.vencido,.accreditation-status.vencido,
    .matrix-cell.por_vencer_urgente,.report-matrix-date.por_vencer_urgente,.accreditation-status.por_vencer_urgente{animation:none}
}

/* Acreditaciones · carga masiva desde Excel */
.accreditation-matrix-shortcuts{display:flex;justify-content:flex-end;margin:-6px 0 14px}
.accreditation-import-heading p{max-width:760px}.accreditation-import-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.accreditation-import-steps article{display:flex;gap:13px;align-items:center;padding:17px}.accreditation-import-steps article>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e7efff;color:#245ec5;font-size:1rem;font-weight:900}.accreditation-import-steps article>div{display:grid;gap:3px}.accreditation-import-steps small{color:var(--muted);line-height:1.4}.accreditation-import-panel{padding:0!important;overflow:hidden;margin-bottom:18px}.accreditation-import-actions{display:grid;grid-template-columns:.8fr 1.4fr;gap:18px;padding:20px 22px}.accreditation-template-form,.accreditation-upload-form{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#f9fbfe}.accreditation-upload-form{grid-template-columns:minmax(180px,.8fr) minmax(260px,1.4fr) auto;align-items:end}.accreditation-upload-form .user-import-file{height:44px}.accreditation-template-form .button,.accreditation-upload-form .button{justify-content:center;min-height:43px}.accreditation-import-error{margin:0 22px 18px}.accreditation-import-result{padding:0!important;overflow:hidden;margin-bottom:18px}.accreditation-import-result>header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#edf3ff)}.accreditation-import-result h3{margin:4px 0}.accreditation-import-result header p{margin:0;color:var(--muted)}.accreditation-import-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:18px 22px}.accreditation-import-kpis article{display:grid;gap:5px;padding:14px;border-radius:12px;background:#f2f5f9}.accreditation-import-kpis small{color:var(--muted)}.accreditation-import-kpis strong{font-size:1.45rem;color:#17365d}.accreditation-import-kpis .success{background:#e8f8f0}.accreditation-import-kpis .success strong{color:#087a55}.accreditation-import-kpis .danger{background:#ffe7eb}.accreditation-import-kpis .danger strong{color:#c01835}.accreditation-import-kpis .warning{background:#fff4d8}.accreditation-import-kpis .warning strong{color:#9a6100}.accreditation-import-issues{border-top:1px solid var(--border)}.accreditation-import-issues .table-wrap{max-height:430px;overflow:auto}.accreditation-import-issues table{margin:0}.accreditation-import-issues tr.import-missing-dni td{background:#fff0f2;color:#a31831}.accreditation-import-history{padding:0!important;overflow:hidden}.accreditation-import-history table{margin:0}.accreditation-import-history>.pagination{padding:14px 18px;border-top:1px solid var(--border)}.text-danger{color:#c01835!important}
@media(max-width:1100px){.accreditation-import-actions{grid-template-columns:1fr}.accreditation-upload-form{grid-template-columns:1fr 1.4fr}.accreditation-upload-form .button{grid-column:1/-1}.accreditation-import-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.accreditation-import-steps,.accreditation-upload-form,.accreditation-import-kpis{grid-template-columns:1fr}.accreditation-import-actions{padding:15px}.accreditation-upload-form .button{grid-column:auto}.accreditation-import-result>header{flex-direction:column}}

/* Configuracion de notificaciones por correo */
.email-notification-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:0!important;overflow:hidden;margin-bottom:18px;background:var(--border)}
.email-notification-guide>div{display:grid;gap:5px;padding:18px;background:#fff}.email-notification-guide span{color:var(--muted);font-size:.84rem;line-height:1.45}.email-notification-guide code{font-size:.78rem;color:#245ec5}
.email-settings-form{display:grid;gap:18px}.email-setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.email-setting-card{padding:0!important;overflow:hidden}.email-setting-head{display:flex;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.email-setting-head>div{position:relative;padding-left:46px}.email-setting-number{position:absolute;left:0;top:0;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#dce8ff;color:#245ec5;font-weight:900}.email-setting-head h3{margin:1px 0 5px;font-size:1rem}.email-setting-head p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.switch-row{display:flex;gap:8px;align-items:center;align-self:flex-start;white-space:nowrap;font-weight:800;font-size:.82rem}.switch-row input{width:18px;height:18px;accent-color:#2563eb}.switch-row.compact{white-space:normal;font-weight:700}.email-setting-options{display:grid;grid-template-columns:1.5fr .65fr .85fr;gap:12px;align-items:end;padding:16px 20px;border-bottom:1px solid var(--border)}.email-setting-options>.switch-row:only-child{grid-column:1/-1}.email-recipient-picker{display:grid;gap:10px;padding:16px 20px}.email-recipient-title{display:flex;justify-content:space-between;align-items:center}.email-recipient-title small{color:var(--muted)}.email-recipient-search{width:100%;height:42px;border:1px solid var(--border);border-radius:10px;padding:0 12px;background:#fff}.email-recipient-list{display:grid;gap:6px;max-height:220px;overflow:auto;padding:4px}.email-recipient-list label{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer}.email-recipient-list label[hidden]{display:none!important}.email-recipient-list label:hover{border-color:#9ab7ed;background:#f8fbff}.email-recipient-list input{margin-top:3px;accent-color:#2563eb}.email-recipient-list span{display:grid;gap:2px;min-width:0}.email-recipient-list strong{font-size:.82rem}.email-recipient-list small{color:var(--muted);font-size:.72rem;overflow-wrap:anywhere}.email-setting-card>footer{padding:11px 20px;background:#f8fafc;border-top:1px solid var(--border);color:var(--muted);font-size:.72rem}.email-setting-card.readonly .email-setting-head{border:0}.email-readonly-recipients{padding:16px 20px;color:var(--muted);font-size:.84rem}.sticky-form-actions{position:sticky;bottom:14px;z-index:4;display:flex;justify-content:flex-end;padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(23,54,93,.16);backdrop-filter:blur(10px)}.email-history-panel{padding:0!important;overflow:hidden;margin-top:22px}.email-history-panel>.section-heading{padding:20px;border-bottom:1px solid var(--border)}.email-history-filters{display:grid;grid-template-columns:1.4fr 1fr .7fr auto;gap:12px;align-items:end;padding:16px 20px;background:#f8fafc}.email-history-panel table{margin:0}.email-history-panel>.pagination{padding:14px 18px;border-top:1px solid var(--border)}.email-error-message{display:block;max-width:320px;color:#b42339;font-size:.74rem;line-height:1.35;overflow-wrap:anywhere}
.email-setting-note{display:grid;gap:3px;align-self:center}.email-setting-note strong{font-size:.84rem}.email-setting-note span{color:var(--muted);font-size:.74rem}.email-site-recipient-section{display:grid;gap:14px;padding:18px 20px}.email-recipient-title>div{display:grid;gap:3px}.email-site-recipient-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.email-site-recipient-card{display:grid;gap:10px;padding:13px;border:1px solid #dbe4f0;border-radius:13px;background:#f8faff}.email-site-recipient-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.email-site-recipient-head>div{display:grid;gap:2px}.email-site-recipient-head small,.email-site-recipient-head span{color:var(--muted);font-size:.7rem}.email-site-recipient-card .email-recipient-list{max-height:185px;padding:0}.email-readonly-recipients{display:grid;gap:7px}.email-readonly-recipients div{padding-top:5px;border-top:1px solid var(--border)}
@media(max-width:1100px){.email-setting-grid{grid-template-columns:1fr}.email-notification-guide{grid-template-columns:1fr}.email-history-filters{grid-template-columns:1fr 1fr}.email-history-filters .button{grid-column:1/-1}.email-setting-options{grid-template-columns:1fr 1fr}.email-setting-options>.switch-row{grid-column:1/-1}}
@media(max-width:650px){.email-setting-head{flex-direction:column}.email-setting-options,.email-history-filters,.email-site-recipient-grid{grid-template-columns:1fr}.email-setting-options>.switch-row,.email-history-filters .button{grid-column:auto}.sticky-form-actions .button{width:100%;justify-content:center}.email-recipient-title{align-items:flex-start;gap:10px}}

/* Carga masiva del catálogo logístico */
.product-import-heading p{max-width:780px}.product-import-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.product-import-steps article{display:flex;gap:13px;align-items:center;padding:17px}.product-import-steps article>span{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:11px;background:#e7efff;color:#245ec5;font-size:1rem;font-weight:900}.product-import-steps article>div{display:grid;gap:3px}.product-import-steps small{color:var(--muted);line-height:1.4}.product-import-panel,.product-import-result,.product-import-history{padding:0!important;overflow:hidden;margin-bottom:18px}.product-import-actions{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(360px,1.3fr);gap:18px;align-items:end;padding:20px 22px}.product-import-actions>a{min-height:44px;justify-content:center}.product-import-actions form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end}.product-import-actions .user-import-file{height:44px}.product-import-panel>.user-import-note{margin:0 22px 20px}.product-import-error{margin:0 22px 20px}.product-import-result>header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#edf3ff)}.product-import-result h3{margin:4px 0}.product-import-result header p{margin:0;color:var(--muted)}.product-import-kpis{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;padding:18px 22px}.product-import-kpis article{display:grid;gap:5px;padding:13px;border-radius:12px;background:#f2f5f9}.product-import-kpis small{color:var(--muted);line-height:1.3}.product-import-kpis strong{font-size:1.35rem;color:#17365d}.product-import-kpis .success{background:#e8f8f0}.product-import-kpis .success strong{color:#087a55}.product-import-kpis .danger{background:#ffe7eb}.product-import-kpis .danger strong{color:#c01835}.product-import-issues{border-top:1px solid var(--border)}.product-import-issues .table-wrap{max-height:430px;overflow:auto}.product-import-issues table,.product-import-history table{margin:0}.product-import-result>.alert{margin:0 22px 20px}.product-import-history>.pagination{padding:14px 18px;border-top:1px solid var(--border)}
@media(max-width:1200px){.product-import-kpis{grid-template-columns:repeat(4,1fr)}}
@media(max-width:850px){.product-import-steps,.product-import-actions{grid-template-columns:1fr}.product-import-actions form{grid-template-columns:1fr}.product-import-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.product-import-kpis{grid-template-columns:1fr}.product-import-actions{padding:15px}.product-import-panel>.user-import-note,.product-import-error{margin-left:15px;margin-right:15px}}


/* Cursos dinámicos de acreditaciones */
.accreditation-dynamic-sheet .course-column{min-width:260px}
.matrix-cell.dynamic{display:grid;min-width:245px;gap:9px;padding:9px}
.matrix-dynamic-fields{display:grid;grid-template-columns:repeat(2,minmax(105px,1fr));gap:8px}
.matrix-dynamic-fields label{display:grid;gap:4px}
.matrix-dynamic-fields label>small{margin:0;color:inherit;opacity:.78;font-size:.66rem;font-weight:800}
.matrix-dynamic-fields input{width:100%;min-width:0;padding:7px 8px!important;background:#fff!important;border:1px solid rgba(30,55,90,.2)!important;border-radius:7px}
.matrix-cell-footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.matrix-cell-footer .matrix-status{margin-right:auto}
.matrix-invoice-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#fff;color:#8794a6;cursor:pointer;border:1px solid #d6deea}
.matrix-invoice-mark.has-document{background:#fff1d6;color:#a76500;border-color:#efc77f}
.matrix-invoice-mark input{display:none}
.matrix-doc-view.invoice{width:auto;padding:0 7px;font-size:.66rem}
.accreditation-person-record-main.dynamic{grid-template-columns:85px minmax(180px,.8fr) minmax(300px,1.6fr) auto auto}
.accreditation-record-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px}
.accreditation-record-values>span{display:grid;gap:2px;padding:9px 10px;border-radius:10px;background:#f5f8fc}
.accreditation-record-values small{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em}
.accreditation-record-values strong{font-size:.86rem}
.accreditation-record-values em{font-size:.65rem;color:var(--muted);font-style:normal}
.accreditation-status.no_apto,.matrix-cell.no_apto{background:#ff0000!important;color:#fff!important}
.accreditation-person-record.no_apto{border-left-color:#ff0000}
.dynamic-course-form .switch-line{min-height:62px}
@media(max-width:1000px){.accreditation-person-record-main.dynamic{grid-template-columns:80px 1fr auto}.accreditation-record-values{grid-column:2/-1}.accreditation-person-record-main.dynamic>.inline-actions{grid-column:2/-1}}
@media(max-width:700px){.matrix-dynamic-fields{grid-template-columns:1fr}.accreditation-person-record-main.dynamic{grid-template-columns:1fr}.accreditation-record-values,.accreditation-person-record-main.dynamic>.inline-actions{grid-column:auto}}


/* Reporte acomodado de acreditaciones dinámicas */
.accreditation-report-legend{margin:0 0 12px}
.accreditation-report-panel{border:1px solid #dbe4f0!important}
.accreditation-report-scope{justify-content:space-between;background:#f8faff}
.accreditation-report-scope>div{display:grid;gap:3px}
.accreditation-report-scope>small{color:var(--muted);font-weight:700}
.accreditation-report-scroll{max-height:72vh}
.accreditation-report-sheet{font-size:.78rem}
.accreditation-report-sheet th,.accreditation-report-sheet td{padding:8px}
.accreditation-report-sheet .sticky-site{position:sticky;left:0;z-index:4;width:130px;min-width:130px;max-width:130px}
.accreditation-report-sheet .sticky-worker-report{position:sticky;left:130px;z-index:4;width:210px;min-width:210px;max-width:210px;box-shadow:5px 0 10px rgba(20,45,75,.07)}
.accreditation-report-sheet thead .sticky-site,.accreditation-report-sheet thead .sticky-worker-report{z-index:8;background:#17365d}
.accreditation-report-sheet tbody .sticky-site,.accreditation-report-sheet tbody .sticky-worker-report{background:#fff}
.accreditation-report-sheet tbody tr:hover .sticky-site,.accreditation-report-sheet tbody tr:hover .sticky-worker-report{background:#f8fbff}
.accreditation-report-sheet .worker-position{min-width:175px;max-width:210px}
.report-course-heading{min-width:175px;max-width:220px}
.report-course-heading>strong{display:block;font-size:.78rem;line-height:1.3;margin-bottom:6px}
.report-course-type{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.report-course-type.required{background:#ffe5e9;color:#a61931}
.report-course-type.optional{background:#e6efff;color:#245ec5}
.report-course-heading>small{display:flex!important;gap:4px;flex-wrap:wrap;margin-top:6px!important}
.report-course-heading>small i{padding:2px 5px;border-radius:5px;background:rgba(255,255,255,.12);color:#dce8f7;font-size:.56rem;font-style:normal}
.report-course-cell{min-width:175px}
.report-course-value{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px;border-radius:10px;border:1px solid transparent;min-height:62px}
.report-course-value>span{display:grid;gap:1px;padding:5px 6px;border-radius:7px;background:rgba(255,255,255,.72)}
.report-course-value>span.condition{grid-column:1/-1}
.report-course-value small{margin:0!important;font-size:.58rem!important;text-transform:uppercase;letter-spacing:.035em;color:inherit!important;opacity:.72}
.report-course-value strong{font-size:.74rem;line-height:1.25;overflow-wrap:anywhere}
.report-course-value em{grid-column:1/-1;justify-self:start;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.7);font-size:.57rem;font-style:normal;font-weight:900;text-transform:uppercase}
.report-course-value.vigente{background:#dcf7e9;color:#086b4c;border-color:#a9e7ce}
.report-course-value.por_vencer{background:#fff4ca;color:#735000;border-color:#f0d36f}
.report-course-value.por_vencer_urgente{background:#ffead2;color:#914100;border-color:#ffc07d}
.report-course-value.vencido,.report-course-value.no_apto{background:#ffe1e7;color:#a4112c;border-color:#f4a8b7}
.report-course-value.pendiente{background:#edf1f6;color:#526276;border-color:#dce3ec}
.report-course-value.no-aplica{display:grid;place-items:center;background:#f8fafc;color:#94a3b8;border-color:#edf1f5}
.accreditation-report-sheet .sticky-overall{position:sticky;right:0;z-index:4;min-width:125px;text-align:center;border-left:2px solid #cfdae8;box-shadow:-5px 0 10px rgba(20,45,75,.07)}
.accreditation-report-sheet thead .sticky-overall{z-index:8;background:#17365d}
.accreditation-report-sheet tbody .sticky-overall{background:#fff}
.accreditation-report-sheet tbody tr:hover .sticky-overall{background:#f8fbff}
@media(max-width:800px){
  .accreditation-report-scope{align-items:flex-start}
  .accreditation-report-scope>small{display:none}
  .accreditation-report-sheet .sticky-site{position:static}
  .accreditation-report-sheet .sticky-worker-report{left:0}
  .report-course-value{grid-template-columns:1fr}
  .report-course-value>span.condition{grid-column:auto}
}


/* Curva S e historial de avance de acreditaciones */
.accreditation-progress-filter{display:flex;align-items:end;justify-content:space-between;gap:18px}
.accreditation-progress-filter form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1.3fr);gap:14px;flex:1}
.accreditation-progress-filter>small{color:var(--muted);padding-bottom:11px;white-space:nowrap}
.accreditation-plan-editor{padding:0!important;overflow:hidden}
.accreditation-plan-editor>summary{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;cursor:pointer;list-style:none}
.accreditation-plan-editor>summary::-webkit-details-marker{display:none}
.accreditation-plan-editor>summary span{display:grid;gap:3px}.accreditation-plan-editor>summary small{color:var(--muted)}
.accreditation-plan-editor>form{padding:20px;border-top:1px solid var(--border)}
.accreditation-plan-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}
.accreditation-plan-history{display:flex;gap:12px;overflow:auto;padding:2px 2px 10px}
.accreditation-plan-history>a{display:grid;gap:5px;min-width:245px;padding:15px;text-decoration:none;color:var(--text);border:1px solid var(--border)}
.accreditation-plan-history>a.active{border-color:#2f6fed;box-shadow:0 0 0 2px rgba(47,111,237,.12)}
.accreditation-plan-history>a .badge{justify-self:start}.accreditation-plan-history>a small,.accreditation-plan-history>a em{color:var(--muted);font-size:.72rem;font-style:normal}
.accreditation-progress-overview{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px;align-items:start}
.accreditation-progress-main{display:grid;gap:18px;min-width:0}
.accreditation-progress-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.accreditation-progress-kpis article{display:grid;gap:3px;padding:16px;border-top:4px solid #64748b}
.accreditation-progress-kpis article small{color:var(--muted);font-weight:700}.accreditation-progress-kpis article strong{font-size:1.65rem}.accreditation-progress-kpis article span{font-size:.68rem;color:var(--muted)}
.accreditation-progress-kpis .blue{border-color:#2f6fed}.accreditation-progress-kpis .green{border-color:#079447}.accreditation-progress-kpis .yellow{border-color:#ffb300}.accreditation-progress-kpis .red{border-color:#e01f3d}.accreditation-progress-kpis .gray{border-color:#77859a}
.accreditation-scurve-card{padding:0!important;overflow:hidden}.accreditation-scurve-card>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border-bottom:1px solid var(--border)}
.accreditation-scurve-card h3{margin:2px 0 4px}.accreditation-scurve-card p{margin:0;color:var(--muted)}
.accreditation-progress-percent{display:grid;text-align:right}.accreditation-progress-percent strong{font-size:1.8rem;color:#079447}.accreditation-progress-percent small{color:var(--muted)}
.accreditation-chart-legend{display:flex;gap:20px;padding:14px 20px 0;font-size:.75rem;font-weight:800}.accreditation-chart-legend span{display:flex;align-items:center;gap:7px}.accreditation-chart-legend i{width:24px;height:3px;border-radius:99px;background:#2f6fed}.accreditation-chart-legend .actual i{background:#079447}
.accreditation-chart-wrap{position:relative;padding:4px 12px 10px;min-height:380px}.accreditation-chart-wrap canvas{display:block;width:100%}
#accreditation-chart-tooltip{position:absolute;z-index:4;display:grid;gap:3px;width:160px;padding:10px 12px;border-radius:10px;background:#142b49;color:#fff;box-shadow:0 8px 25px rgba(14,35,62,.25);pointer-events:none;font-size:.72rem}
#accreditation-chart-tooltip strong{font-size:.78rem}#accreditation-chart-tooltip span{color:#dbe7f7}
.accreditation-observation-panel{padding:0!important;overflow:hidden;max-height:calc(100vh - 105px);position:sticky;top:86px}
.accreditation-observation-panel>header{padding:20px;border-bottom:1px solid var(--border)}.accreditation-observation-panel h3{margin:3px 0}.accreditation-observation-panel p{margin:0;color:var(--muted)}
.accreditation-observation-list{max-height:calc(100vh - 245px);overflow:auto;padding:10px}
.observation-category{border:1px solid var(--border);border-radius:12px;margin-bottom:9px;overflow:hidden}
.observation-category>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;cursor:pointer;background:#f8fafc}
.observation-category>summary::-webkit-details-marker{display:none}.observation-category>summary span{display:flex;align-items:center;gap:8px}.observation-category>summary i{width:9px;height:9px;border-radius:50%;background:#77859a}.observation-category>summary b{display:grid;place-items:center;min-width:28px;height:25px;border-radius:999px;background:#e8edf4;font-size:.72rem}
.observation-category.blue>summary i{background:#2f6fed}.observation-category.yellow>summary i{background:#ffcf22}.observation-category.orange>summary i{background:#ff7900}.observation-category.red>summary i{background:#f0002f}
.observation-category>div{padding:8px}.observation-category article{display:grid;gap:2px;padding:10px;border-bottom:1px solid var(--border)}.observation-category article:last-child{border-bottom:0}
.observation-category article small{color:var(--muted);font-size:.67rem}.observation-category article span{color:#245ec5;font-size:.7rem;font-weight:800}.observation-category article p{font-size:.72rem;margin:2px 0;color:#4d5d72}.observation-category article a{font-size:.69rem;font-weight:800;color:#245ec5}
@media(max-width:1250px){.accreditation-progress-overview{grid-template-columns:1fr}.accreditation-observation-panel{position:static;max-height:none}.accreditation-observation-list{max-height:600px}}
@media(max-width:800px){.accreditation-progress-filter,.accreditation-scurve-card>header{align-items:stretch;flex-direction:column}.accreditation-progress-filter form,.accreditation-plan-fields{grid-template-columns:1fr}.accreditation-progress-filter>small{padding:0}.accreditation-progress-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.accreditation-progress-percent{text-align:left}}
@media(max-width:520px){.accreditation-progress-kpis{grid-template-columns:1fr}.accreditation-chart-wrap{overflow-x:auto}.accreditation-chart-wrap canvas{min-width:620px}}

/* Foto del trabajador en la matriz de acreditaciones */
.matrix-worker-identity{display:flex;align-items:center;gap:10px;min-width:0}.matrix-worker-identity>div{display:grid;min-width:0}.matrix-worker-identity strong{line-height:1.2}.matrix-worker-photo-form{flex:0 0 auto}.matrix-worker-photo{position:relative;width:44px;height:44px;margin:0;display:grid;place-items:center;border-radius:13px;overflow:hidden;background:linear-gradient(145deg,#dce8f8,#edf3fb);color:#245aa8;font-size:1rem;font-weight:900;border:2px solid #fff;box-shadow:0 0 0 1px #d7e0ec}.matrix-worker-photo img{width:100%;height:100%;object-fit:cover}.matrix-worker-photo input{display:none}.matrix-worker-photo.editable{cursor:pointer}.matrix-worker-photo.editable i{position:absolute;right:2px;bottom:2px;width:17px;height:17px;display:grid;place-items:center;border-radius:6px;background:#1769e8;color:#fff;font-size:.62rem;font-style:normal;box-shadow:0 1px 4px rgba(20,50,90,.3)}.matrix-worker-photo.editable:hover{box-shadow:0 0 0 2px #8bb4f4}.matrix-worker-photo.saving{opacity:.5;pointer-events:none}
/* Mis acreditaciones: expediente personal */
.accreditation-own-hero{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:22px;align-items:center;padding:24px;margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,#f4f8ff 100%);border-color:#d8e4f5}
.accreditation-own-person{display:flex;align-items:center;gap:17px;min-width:0}.accreditation-own-person h2{margin:3px 0 8px;font-size:1.35rem}.accreditation-own-person-data{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.accreditation-own-person-data span{padding:6px 9px;border-radius:8px;background:#eef3fa;color:#51647d;font-size:.75rem}.accreditation-own-person-data strong{color:#17365d}
.accreditation-profile-avatar.has-photo{width:72px;height:72px;flex:0 0 72px;overflow:hidden;border-radius:18px;box-shadow:0 8px 22px rgba(32,74,134,.14)}.accreditation-profile-avatar.has-photo img{width:100%;height:100%;object-fit:cover}.accreditation-profile-avatar.has-photo span{font-size:1.6rem}
.accreditation-own-overall{display:grid;justify-items:end;gap:6px;padding-left:22px;border-left:1px solid #dce5f1}.accreditation-own-overall>small{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.accreditation-own-overall p{margin:0;color:var(--muted);font-size:.75rem}
.accreditation-own-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.accreditation-own-kpis .panel{display:flex;align-items:center;gap:13px;padding:16px}.accreditation-own-kpis div{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;min-width:0}.accreditation-own-kpis small{color:var(--muted);font-size:.72rem;font-weight:800}.accreditation-own-kpis strong{font-size:1.35rem;color:#17365d}.accreditation-own-kpis p{grid-column:1/-1;margin:0;color:var(--muted);font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accreditation-own-kpi-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;background:#e7efff;color:#245ec5;font-size:1rem;font-weight:900}.accreditation-own-kpi-icon.good{background:#def7ec;color:#087a55}.accreditation-own-kpi-icon.warning{background:#fff1cc;color:#9a6100}.accreditation-own-kpi-icon.danger{background:#ffe1e7;color:#b11d37}
.accreditation-own-guide{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 18px;margin-bottom:16px}.accreditation-own-guide p{margin:3px 0 0;color:var(--muted);font-size:.75rem}.accreditation-own-guide .matrix-legend{margin:0;justify-content:flex-end}
.accreditation-own-project{padding:0!important;overflow:hidden}.accreditation-own-project>summary{list-style:none;cursor:pointer}.accreditation-own-project>summary::-webkit-details-marker{display:none}.accreditation-own-project .accreditation-site-heading{grid-template-columns:auto minmax(220px,1fr) auto auto auto;padding:17px 20px;background:linear-gradient(135deg,#f9fbfe,#f2f6fc);transition:.15s}.accreditation-own-project>summary:hover{background:#eef4ff}.accreditation-own-project[open]>summary{border-bottom:1px solid var(--border)}
.accreditation-own-project-title{display:grid;gap:2px;min-width:0}.accreditation-own-project-title>small{color:#2f6fed;font-size:.65rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.accreditation-own-project-title>strong{font-size:1.02rem;color:#172b47}.accreditation-own-project-title>span{color:var(--muted);font-size:.72rem}.accreditation-own-project-title>em{width:max-content;margin-top:4px;padding:4px 7px;border-radius:6px;background:#e7efff;color:#275fbf;font-size:.65rem;font-style:normal;font-weight:800}
.accreditation-own-project-progress{display:grid;justify-items:center;min-width:86px;padding:3px 16px;border-left:1px solid #dce4ef;border-right:1px solid #dce4ef}.accreditation-own-project-progress small{color:var(--muted);font-size:.65rem}.accreditation-own-project-progress strong{color:#17365d;font-size:1.2rem}.accreditation-own-project-open{display:flex;align-items:center;gap:7px;color:#2f6fed;font-size:.72rem}.accreditation-own-project-open i{font-size:1rem;font-style:normal;transition:transform .15s}.accreditation-own-project[open] .accreditation-own-project-open i{transform:rotate(180deg)}
.accreditation-own-course-head{display:grid;grid-template-columns:minmax(210px,1fr) minmax(260px,1.35fr) minmax(190px,.8fr);gap:18px;padding:10px 20px;background:#f8fafc;border-bottom:1px solid var(--border);color:#718097;font-size:.63rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.accreditation-own-project .accreditation-person-record-main.dynamic{grid-template-columns:minmax(210px,1fr) minmax(260px,1.35fr) minmax(190px,.8fr);gap:18px;padding:17px 20px}.accreditation-own-project .accreditation-person-record{border-left-width:4px}.accreditation-own-project .accreditation-person-record:hover{background:#fbfdff}.accreditation-own-project .accreditation-record-title h4{margin:8px 0 3px;font-size:.94rem;color:#182d49}.accreditation-own-course-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.accreditation-record-kind.required{background:#ffe9ed;color:#b11d37}.accreditation-record-kind.optional{background:#edf2f7;color:#526276}.accreditation-record-inherited{display:inline-flex;padding:5px 7px;border-radius:7px;background:#e6efff;color:#255fbd;font-size:.62rem;font-weight:800}
.accreditation-own-project .accreditation-record-values{grid-template-columns:repeat(auto-fit,minmax(115px,1fr))}.accreditation-own-project .accreditation-record-values>span{min-height:54px;background:#f3f7fb;border:1px solid #e5ebf3}.accreditation-own-course-actions{display:grid;justify-items:start;gap:10px}.accreditation-own-course-actions .inline-actions{gap:7px}.accreditation-own-course-actions .button.small{min-height:32px;padding:7px 9px;font-size:.68rem}.accreditation-own-project .accreditation-history-panel{padding-left:calc(20px + min(22vw,270px));border-top:1px dashed #dbe3ee}
@media(max-width:1100px){.accreditation-own-kpis{grid-template-columns:repeat(2,1fr)}.accreditation-own-project .accreditation-site-heading{grid-template-columns:auto 1fr auto auto}.accreditation-own-project-progress{display:none}.accreditation-own-project .accreditation-person-record-main.dynamic,.accreditation-own-course-head{grid-template-columns:minmax(190px,.9fr) minmax(250px,1.2fr) minmax(170px,.8fr)}}
@media(max-width:800px){.accreditation-own-hero{grid-template-columns:1fr auto}.accreditation-own-overall{grid-column:2;grid-row:1}.accreditation-own-hero>.button{grid-column:1/-1}.accreditation-own-guide{align-items:flex-start;flex-direction:column}.accreditation-own-guide .matrix-legend{justify-content:flex-start}.accreditation-own-project .accreditation-site-heading{grid-template-columns:auto 1fr auto}.accreditation-own-project .accreditation-site-heading>.accreditation-status{grid-column:auto}.accreditation-own-project-open{display:none}.accreditation-own-course-head{display:none}.accreditation-own-project .accreditation-person-record-main.dynamic{grid-template-columns:1fr 1fr}.accreditation-own-project .accreditation-record-values{grid-column:2}.accreditation-own-course-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.accreditation-own-project .accreditation-history-panel{padding-left:20px}}
@media(max-width:560px){.accreditation-own-hero{grid-template-columns:1fr;padding:18px}.accreditation-own-person{align-items:flex-start}.accreditation-profile-avatar.has-photo{width:60px;height:60px;flex-basis:60px}.accreditation-own-overall{grid-column:auto;grid-row:auto;justify-items:start;padding:14px 0 0;border-left:0;border-top:1px solid #dce5f1}.accreditation-own-kpis{grid-template-columns:1fr 1fr}.accreditation-own-kpis .panel{padding:13px;gap:9px}.accreditation-own-kpis p{display:none}.accreditation-own-kpi-icon{width:34px;height:34px;flex-basis:34px}.accreditation-own-guide .matrix-legend{display:grid;grid-template-columns:1fr 1fr;width:100%}.accreditation-own-project .accreditation-site-heading{grid-template-columns:auto 1fr;padding:15px}.accreditation-own-project .accreditation-site-heading>.accreditation-status{grid-column:1/-1;justify-self:start}.accreditation-own-project .accreditation-person-record-main.dynamic{grid-template-columns:1fr;padding:15px}.accreditation-own-project .accreditation-record-values,.accreditation-own-course-actions{grid-column:auto}.accreditation-own-course-actions{display:grid}.accreditation-own-project-title>em{width:auto}.accreditation-own-person-data span{font-size:.68rem}}

/* Estadísticas de seguridad · Anexo 28 */
.safety-annex-setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.safety-annex-form-card{margin:0}.safety-annex-note{display:flex;gap:12px;align-items:center;background:#edf5ff;border-color:#bad4f8;color:#173b67}.safety-annex-note span{color:#526b89}.safety-annex-editor{padding:0;overflow:hidden}.safety-annex-table-wrap{width:100%;overflow:auto;max-height:calc(100vh - 210px)}.safety-annex-table{min-width:2450px;border-collapse:separate;border-spacing:0;font-size:.72rem}.safety-annex-table th,.safety-annex-table td{min-width:92px;padding:7px;border-right:1px solid #d5e0ec;border-bottom:1px solid #d5e0ec;text-align:center}.safety-annex-table thead th{position:sticky;top:0;z-index:3;background:#173b67;color:#fff;border-color:#31577f;text-transform:uppercase;font-size:.63rem}.safety-annex-table thead tr:nth-child(2) th{top:43px;background:#214a78}.safety-annex-table thead tr:nth-child(3) th{top:86px;background:#2a5685}.safety-annex-table .sticky-col{position:sticky;left:0;z-index:2;min-width:145px;background:#f7fafd;text-align:left}.safety-annex-table thead .sticky-col{z-index:5;background:#173b67}.safety-annex-table input,.safety-annex-table select{width:100%;min-width:76px;padding:7px 6px;border:1px solid #c8d7e8;border-radius:7px;background:#fff;font-size:.72rem}.safety-annex-table tbody th select{margin-top:6px}.safety-annex-table .calculated{background:#eef4fa;color:#24476d;font-weight:800}.safety-annex-table tfoot th{background:#dfeaf6;font-weight:900}.safety-annex-editor .form-actions{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border-top:1px solid #dce5ef}.safety-annex-editor .form-actions small{color:var(--muted)}.safety-annex-report-filter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(320px,2fr) auto;gap:14px;align-items:end}.safety-annex-report-filter fieldset{border:1px solid var(--border);border-radius:12px;padding:9px 12px}.safety-annex-report-filter legend{padding:0 5px;font-weight:800}.year-pills{display:flex;gap:7px;flex-wrap:wrap}.year-pills label input{position:absolute;opacity:0}.year-pills label span{display:inline-flex;padding:7px 10px;border:1px solid #cad7e6;border-radius:9px;color:#52647b;cursor:pointer}.year-pills label input:checked+span{background:#2f6fed;border-color:#2f6fed;color:#fff}.safety-chart-panel{overflow:hidden}.safety-chart-scroll{overflow-x:auto}.safety-chart{display:block;min-width:850px;width:100%;height:auto}.safety-chart-legend{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 10px}.safety-chart-legend span{display:inline-flex;align-items:center;gap:7px;font-weight:800}.safety-chart-legend i{width:24px;height:4px;border-radius:3px}.danger-zone{display:flex;justify-content:space-between;align-items:center;border-color:#fecaca;background:#fff7f7}.danger-zone p{margin:3px 0 0;color:#9f3838}@media(max-width:950px){.safety-annex-setup{grid-template-columns:1fr}.safety-annex-report-filter{grid-template-columns:1fr 1fr}.safety-annex-report-filter fieldset{grid-column:1/-1}}@media(max-width:600px){.safety-annex-report-filter{grid-template-columns:1fr}.safety-annex-report-filter fieldset{grid-column:auto}.safety-annex-note,.danger-zone,.safety-annex-editor .form-actions{align-items:flex-start;flex-direction:column}}.safety-annex-form-card{margin-bottom:18px;padding:0!important;overflow:hidden}.safety-annex-form-card>.section-heading,.safety-statistics-create>.section-heading,.safety-statistics-catalog>.section-heading{padding:18px 20px;margin:0;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.safety-annex-create-form,.safety-statistics-create>.safety-statistics-site-form{padding:20px}.safety-annex-create-form .form-actions,.safety-statistics-site-form .form-actions{display:flex;justify-content:flex-end;padding-top:2px}.safety-annex-list-panel{padding:0!important;overflow:hidden}.safety-annex-list-panel>.section-heading{padding:18px 20px;margin:0}.safety-annex-list-filter{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(150px,.6fr) auto auto;gap:12px;align-items:end;padding:15px 20px;background:#f8fafc;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.safety-annex-list-panel>.table-responsive{border:0;border-radius:0}.safety-statistics-create,.safety-statistics-catalog{padding:0!important;overflow:hidden;margin-bottom:18px}.safety-statistics-site-form{align-items:end}.safety-statistics-site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:20px}.safety-statistics-site-card{overflow:hidden;border:1px solid #d8e2ee;border-radius:14px;background:#fff}.safety-statistics-site-card>summary{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:16px 18px;cursor:pointer;list-style:none;background:linear-gradient(135deg,#fff,#f6f9fd)}.safety-statistics-site-card>summary::-webkit-details-marker{display:none}.safety-statistics-site-card>summary>span:nth-child(2){display:grid;gap:3px}.safety-statistics-site-card>summary small{color:var(--muted)}.safety-statistics-site-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#e7efff;color:#2f6fed}.safety-statistics-site-card[open] .nav-chevron{transform:rotate(180deg)}.safety-statistics-site-card>form{padding:18px;border-top:1px solid var(--border);background:#fbfcfe}@media(max-width:900px){.safety-statistics-site-grid{grid-template-columns:1fr}.safety-annex-list-filter{grid-template-columns:1fr 1fr}.safety-annex-list-filter .button{width:100%}}@media(max-width:580px){.safety-annex-list-filter{grid-template-columns:1fr}.safety-statistics-site-grid{padding:14px}.safety-statistics-site-card>summary{grid-template-columns:38px minmax(0,1fr) auto}.safety-statistics-site-card>summary>.badge{grid-column:2}.safety-statistics-site-card>summary>.nav-chevron{grid-column:3;grid-row:1}}
/* Corrección de encabezado agrupado del Anexo 28 */
.safety-annex-table thead{position:sticky;top:0;z-index:8}.safety-annex-table thead th{position:static!important;top:auto!important}.safety-annex-table thead .sticky-col{position:sticky!important;left:0;z-index:10}.safety-annex-table tbody .sticky-col,.safety-annex-table tfoot .sticky-col{box-sizing:border-box;width:158px;min-width:158px;max-width:158px;overflow:hidden}.safety-annex-table tbody .sticky-col>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.safety-annex-table tbody .sticky-col>select{display:block;box-sizing:border-box;width:100%;min-width:0;margin:7px 0 0}.safety-annex-table tfoot .sticky-col{z-index:4}.safety-annex-table-wrap{isolation:isolate;scrollbar-gutter:stable}.safety-annex-table tbody tr:first-child th,.safety-annex-table tbody tr:first-child td{border-top:0}.safety-annex-year-filter{grid-template-columns:minmax(180px,260px) auto auto;justify-content:start}.safety-annex-general-report-filter{grid-template-columns:minmax(260px,.8fr) minmax(360px,1.7fr) auto}.safety-site-hours-panel{padding:0!important;overflow:hidden;margin-top:18px}.safety-site-hours-panel>.section-heading{padding:18px 20px;margin:0;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f6fffb,#edf9f4)}.safety-site-hours-wrap{width:100%;overflow:auto;max-height:62vh}.safety-site-hours-table{width:100%;min-width:max-content;border-collapse:separate;border-spacing:0}.safety-site-hours-table th,.safety-site-hours-table td{min-width:155px;padding:9px 10px;border-right:1px solid #d8e3ed;border-bottom:1px solid #d8e3ed;text-align:center;background:#fff}.safety-site-hours-table thead{position:sticky;top:0;z-index:6}.safety-site-hours-table thead th{background:#173b67;color:#fff;font-size:.69rem;text-transform:uppercase}.safety-site-hours-table thead th small{display:block;margin-top:3px;color:#b7cce4}.safety-site-hours-table thead th em{display:inline-flex;margin-top:5px;padding:3px 6px;border-radius:6px;background:#65778e;color:#fff;font-size:.58rem;font-style:normal}.safety-site-hours-table .sticky-col{position:sticky;left:0;z-index:4;min-width:135px;background:#f4f7fb;text-align:left;font-weight:900}.safety-site-hours-table thead .sticky-col{z-index:8;background:#173b67}.safety-site-hours-table input{box-sizing:border-box;width:100%;height:39px;padding:0 10px;border:1px solid #c9d7e7;border-radius:8px;background:#fff;color:var(--text);font-weight:700;text-align:right;outline:none}.safety-site-hours-table input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.safety-site-hours-table .site-hours-row-total{background:#e7f8f0;color:#087a55;font-weight:900}.safety-site-hours-table tfoot th{position:sticky;bottom:0;z-index:5;background:#dfeaf6;color:#17365d}.safety-site-hours-panel>.form-actions{display:flex;align-items:center;gap:14px;padding:16px 20px;background:#fff;border-top:1px solid var(--border)}.safety-site-hours-panel>.form-actions small{color:var(--muted)}.safety-hours-total{color:#087a55!important;background:#e5f8ef!important}@media(max-width:700px){.safety-annex-year-filter,.safety-annex-general-report-filter{grid-template-columns:1fr}.safety-site-hours-panel>.form-actions{align-items:flex-start;flex-direction:column}}
/* Orden configurable de cursos por mina */
.accreditation-course-options label{grid-template-columns:auto minmax(0,1fr) auto}
.accreditation-course-options input[type="checkbox"]{position:absolute;opacity:0;pointer-events:none}
.accreditation-course-options .course-order-control{display:grid;grid-template-columns:auto;gap:3px;min-width:70px;padding-left:9px;border-left:1px solid #dbe3ed}
.accreditation-course-options .course-order-control small{margin:0;text-align:center;font-size:.62rem;font-weight:800;text-transform:uppercase}
.accreditation-course-options .course-order-control input{position:static;width:66px;height:34px;padding:5px 7px;opacity:1;pointer-events:auto;border:1px solid #cbd8e8;border-radius:8px;background:#fff;text-align:center;font-weight:800;color:#17365d}
.accreditation-course-options .course-order-control input:focus{border-color:#2f6fed;box-shadow:0 0 0 3px rgba(47,111,237,.13);outline:none}
@media(max-width:520px){.accreditation-course-options label{grid-template-columns:auto minmax(0,1fr)}.accreditation-course-options .course-order-control{grid-column:2;grid-template-columns:auto 70px;align-items:center;border-left:0;padding-left:0}.accreditation-course-options .course-order-control small{text-align:left}}
/* Confirmación del trabajador por mina */
.confirmation-column{min-width:120px;text-align:center!important}
.matrix-confirmation-cell{min-width:120px;text-align:center}
.matrix-confirmation-form{display:grid;gap:4px;justify-items:center;padding:7px;border:1px solid #d7e1ed;border-radius:10px;background:#f4f7fb;transition:.15s}
.matrix-confirmation-form select{width:86px;height:34px;padding:5px 25px 5px 9px;border:1px solid #c5d3e4;border-radius:8px;background:#fff;font-weight:900;text-align:center;color:#526276}
.matrix-confirmation-form small{margin:0!important;font-size:.63rem;font-weight:800}
.matrix-confirmation-form.confirmed{border-color:#8bd7ba;background:#e4f8ef}.matrix-confirmation-form.confirmed select{border-color:#69c8a3;color:#087a55}
.matrix-confirmation-form.not-confirmed{border-color:#f0b8c2;background:#fff0f3}.matrix-confirmation-form.not-confirmed select{border-color:#e6a1ae;color:#b4233d}
.matrix-confirmation-form.saving{opacity:.5;pointer-events:none}
/* Confirmación en reportes de acreditaciones */
.report-confirmation-heading{min-width:100px;text-align:center!important}
.report-confirmation-cell{text-align:center}.report-confirmation-cell span{display:inline-flex;min-width:54px;justify-content:center;padding:7px 10px;border-radius:8px;font-weight:900}
.report-confirmation-cell .yes{background:#dcf7e9;color:#087a55}.report-confirmation-cell .no{background:#ffe1e7;color:#ad1f37}
/* Documentos públicos con QR */
.public-qr-create-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;margin-bottom:22px}.public-qr-create-card,.public-qr-guide{margin:0}.public-qr-file-field{padding:15px;background:#f2f7ff;border:1px solid #cbdcf4;border-radius:12px}.public-qr-file-field small{color:#8a5200;font-weight:800}.public-qr-guide{display:flex;align-items:flex-start;gap:16px;background:linear-gradient(145deg,#102b4e,#174574);color:#fff}.public-qr-guide-icon{display:grid;flex:0 0 54px;width:54px;height:54px;place-items:center;background:rgba(255,255,255,.12);border-radius:15px;font-size:27px}.public-qr-guide h3{margin:0 0 10px}.public-qr-guide ol{margin:0;padding-left:20px;color:#d7e6f7;line-height:1.75}.public-qr-list-panel{padding:0;overflow:hidden}.public-qr-list-header{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid var(--line)}.public-qr-list-header h3{margin:4px 0 0}.public-qr-list-header .filter-bar{margin:0}.public-qr-document-grid{display:grid;gap:18px;padding:22px}.public-qr-document-card{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;padding:20px;background:#fff;border:1px solid #d6e0ed;border-radius:16px;box-shadow:0 10px 25px rgba(25,52,85,.06)}.public-qr-document-card.inactive{background:#f6f7f9;opacity:.82}.public-qr-code-box{display:flex;align-items:center;flex-direction:column;gap:10px;padding:13px;background:#f3f7fc;border-radius:14px}.public-qr-code-box img{display:block;width:168px;height:168px;background:#fff;border-radius:9px}.public-qr-document-content{min-width:0}.public-qr-document-content>header{display:flex;align-items:start;justify-content:space-between;gap:18px}.public-qr-document-content>header small,.public-qr-document-content>header span,.public-qr-audit{color:var(--muted);font-size:10px}.public-qr-document-content h3{margin:3px 0 0;font-size:20px}.public-qr-document-content>p{margin:10px 0;color:var(--muted);line-height:1.55}.public-qr-url{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:7px;margin:12px 0}.public-qr-url input{min-width:0;color:#245ec5;background:#eef4ff;font-size:11px;font-weight:700}.public-qr-primary-actions,.public-qr-management-actions{margin-top:10px}.public-qr-edit{margin-top:14px;padding:12px 14px;background:#f7f9fc;border:1px solid #dce4ef;border-radius:11px}.public-qr-edit summary{cursor:pointer;color:#17365d;font-weight:800}.public-qr-edit form{margin-top:14px}.public-qr-audit{display:block;margin-top:12px}.public-qr-viewer-page{min-height:100vh;margin:0;color:#10243e;background:linear-gradient(145deg,#e9f0f9,#f8fafc)}.public-qr-viewer-shell{width:min(1200px,calc(100% - 30px));margin:0 auto;padding:22px 0 38px}.public-qr-viewer-brand{display:flex;align-items:center;gap:12px;margin-bottom:15px}.public-qr-viewer-brand img,.public-qr-viewer-brand>span{display:grid;width:62px;height:52px;place-items:center;object-fit:contain;background:#fff;border-radius:11px;box-shadow:0 8px 20px rgba(16,36,62,.12)}.public-qr-viewer-brand strong,.public-qr-viewer-brand small{display:block}.public-qr-viewer-brand small{margin-top:3px;color:#687990}.public-qr-viewer-card{overflow:hidden;background:#fff;border:1px solid #d5e0ec;border-radius:18px;box-shadow:0 22px 55px rgba(16,36,62,.13)}.public-qr-viewer-card>header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 25px}.public-qr-viewer-card h1{margin:5px 0 6px;font-size:25px}.public-qr-viewer-card header p{margin:0;color:#687990}.public-qr-pdf-frame{height:calc(100vh - 235px);min-height:560px;background:#dfe6ee}.public-qr-pdf-frame iframe{width:100%;height:100%;border:0}.public-qr-mobile-fallback{display:none;padding:28px;text-align:center}.public-qr-viewer-card>footer{padding:11px 24px;color:#687990;background:#f5f8fb;font-size:10px}.public-qr-unavailable{max-width:620px;margin:12vh auto;padding:45px 34px;text-align:center;background:#fff;border-radius:20px;box-shadow:0 20px 50px rgba(16,36,62,.14)}.public-qr-unavailable>span{display:grid;width:66px;height:66px;margin:0 auto 18px;place-items:center;color:#fff;background:#cf2942;border-radius:50%;font-size:34px}.public-qr-unavailable h1{margin:0 0 10px}.public-qr-unavailable p{margin:0;color:#687990;line-height:1.65}@media(max-width:900px){.public-qr-create-layout{grid-template-columns:1fr}.public-qr-list-header{align-items:stretch;flex-direction:column}.public-qr-document-card{grid-template-columns:1fr}.public-qr-code-box{width:min(100%,230px);box-sizing:border-box;margin:auto}.public-qr-document-content>header{flex-direction:column}.public-qr-pdf-frame{height:auto;min-height:0}.public-qr-pdf-frame iframe{display:none}.public-qr-mobile-fallback{display:block}}@media print{.public-qr-viewer-brand,.public-qr-viewer-card>header .inline-actions,.public-qr-viewer-card>footer{display:none}.public-qr-viewer-shell{width:100%;padding:0}.public-qr-viewer-card{border:0;box-shadow:none}.public-qr-pdf-frame{height:100vh}}
/* Módulo RACI */
.raci-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}.raci-kpi-grid article{display:flex;align-items:center;gap:12px;padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.raci-kpi-grid article>span{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border-radius:12px;background:#eaf2ff;color:#2563d8;font-size:20px;font-weight:900}.raci-kpi-grid small,.raci-kpi-grid strong{display:block}.raci-kpi-grid small{color:var(--muted);font-size:11px}.raci-kpi-grid strong{margin-top:2px;font-size:23px}.raci-kpi-grid .danger>span{background:#ffe4e8;color:#c21e39}.raci-kpi-grid .warning>span{background:#fff1c9;color:#a76500}.raci-kpi-grid .success>span{background:#dcf7e9;color:#087a55}.raci-filter-panel{margin-bottom:20px}.raci-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.raci-list-panel{padding:0;overflow:hidden}.raci-list-panel .catalog-list-heading{padding:20px 22px;border-bottom:1px solid var(--line)}.raci-table{width:100%;border-collapse:collapse}.raci-table th{padding:12px 13px;background:#173e6b;color:#fff;font-size:10px;text-align:left;text-transform:uppercase}.raci-table td{padding:13px;border-bottom:1px solid #dce5ef;vertical-align:top}.raci-table td strong,.raci-table td small{display:block}.raci-table td small{margin-top:5px;color:var(--muted);font-size:10px}.raci-classification,.raci-status,.raci-potential{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.raci-classification{background:#e8f0fb;color:#174d87}.raci-classification.unsafe_act,.raci-classification.unsafe_condition{background:#fff0d9;color:#945300}.raci-classification.positive_act{background:#dcf7e9;color:#087a55}.raci-potential{margin-top:6px}.raci-potential.high{background:#ffe1e7;color:#b4233d}.raci-potential.medium{background:#fff0c7;color:#9a5c00}.raci-potential.low{background:#e3f4ff;color:#12618d}.raci-status{background:#e9eef5;color:#43546d}.raci-status.reported{background:#e7f0ff;color:#235dbb}.raci-status.under_review{background:#e9e4ff;color:#5c43b8}.raci-status.action_pending,.raci-status.observed{background:#fff0c7;color:#945700}.raci-status.corrected{background:#dff5ff;color:#086887}.raci-status.closed{background:#dcf7e9;color:#087a55}.raci-status.annulled{background:#f1f2f4;color:#6b7280}.raci-overdue{color:#c11232!important;font-weight:900}.raci-create-form{display:grid;gap:18px}.raci-form-section{margin:0}.raci-form-section[hidden],.raci-choice-group[hidden]{display:none!important}.raci-form-section .section-title{margin-bottom:18px}.raci-choice-group{display:flex;flex-wrap:wrap;gap:10px;padding:15px;border:1px solid #d8e2ee;border-radius:12px}.raci-choice-group legend{padding:0 6px;color:#17365d;font-size:11px;font-weight:900}.raci-choice-group label{display:flex;align-items:center;gap:7px;padding:9px 12px;background:#f4f7fb;border:1px solid #dce5ef;border-radius:10px;cursor:pointer;font-weight:800}.raci-choice-group input{width:17px;height:17px}.raci-file-field{padding:15px;background:#f3f7fd;border:1px dashed #9db7d8;border-radius:12px}.raci-file-field input[type=file]{padding:9px;background:#fff}.raci-report-hero{padding:20px;background:linear-gradient(135deg,#f3f7fd,#fff);border:1px solid var(--line);border-radius:16px}.raci-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;margin-bottom:18px}.raci-detail-grid .panel{margin:0}.raci-data-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0}.raci-data-list>div{padding:11px 12px;border-bottom:1px solid #e1e8f1}.raci-data-list dt{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.raci-data-list dd{margin:4px 0 0;font-weight:800}.raci-data-list dd small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.raci-data-list.compact{grid-template-columns:1fr}.raci-long-answer{margin-top:14px;padding:13px 15px;background:#f5f8fc;border-left:4px solid #2f6fed;border-radius:9px}.raci-long-answer strong{font-size:11px;text-transform:uppercase}.raci-long-answer p{margin:7px 0 0;white-space:pre-wrap;line-height:1.6}.raci-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.raci-evidence-card{overflow:hidden;border:1px solid #d8e2ee;border-radius:13px;background:#fff}.raci-evidence-card>img,.raci-file-preview{display:grid;width:100%;height:160px;place-items:center;object-fit:cover;background:#e9eff6;color:#24486f;font-size:38px}.raci-evidence-card>div:last-child{display:grid;gap:7px;padding:12px}.raci-evidence-card strong,.raci-evidence-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raci-evidence-card small{color:var(--muted)}.raci-timeline{display:grid;gap:0}.raci-timeline article{display:grid;grid-template-columns:18px minmax(0,1fr);gap:11px;position:relative;padding-bottom:18px}.raci-timeline article:not(:last-child):before{content:"";position:absolute;left:6px;top:13px;bottom:-2px;width:2px;background:#d8e2ee}.raci-timeline article>i{position:relative;z-index:1;width:14px;height:14px;margin-top:2px;background:#2f6fed;border:3px solid #dce9ff;border-radius:50%}.raci-timeline strong,.raci-timeline small{display:block}.raci-timeline small{margin-top:2px;color:var(--muted)}.raci-timeline p{margin:7px 0;white-space:pre-wrap}.raci-timeline span{display:inline-flex;padding:4px 7px;background:#eef3f9;border-radius:6px;font-size:10px;font-weight:800}
@media(max-width:1100px){.raci-kpi-grid{grid-template-columns:repeat(3,1fr)}.raci-filter-grid{grid-template-columns:repeat(2,1fr)}.raci-detail-grid{grid-template-columns:1fr}.raci-evidence-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.raci-kpi-grid,.raci-filter-grid,.raci-data-list,.raci-evidence-grid{grid-template-columns:1fr}.raci-table{min-width:1000px}.raci-report-hero{align-items:flex-start;flex-direction:column}}
.raci-option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;padding:15px;border:1px solid #d8e2ee;border-radius:13px;background:#f8fafd}.raci-option-list legend{padding:0 8px;color:#17365d;font-size:11px;font-weight:900}.raci-option-list label{display:flex;align-items:flex-start;gap:9px;min-height:45px;padding:11px 12px;background:#fff;border:1px solid #d7e1ed;border-radius:10px;cursor:pointer;line-height:1.4}.raci-option-list label:hover{border-color:#82a9e8;background:#f3f7ff}.raci-option-list input{flex:0 0 auto;width:17px;height:17px;margin-top:1px}.raci-option-list label:has(input:checked){border-color:#2f6fed;background:#eaf2ff;color:#164da8;font-weight:800}@media(max-width:780px){.raci-option-list{grid-template-columns:1fr}}
.raci-classification-stack{display:flex;flex-wrap:wrap;gap:5px}.raci-classification-checks label:has(input:checked){border-color:#2f6fed;background:#eaf2ff;color:#164da8}
/* Ajuste visual RACI */
.raci-create-form{gap:26px}.raci-form-section{padding:23px 24px!important;border-radius:16px}.raci-form-section>.section-heading{margin-bottom:22px}.raci-form-section#raciUnsafeActSection,.raci-form-section#raciUnsafeConditionSection{border-top:4px solid #2f6fed}.raci-form-section#raciUnsafeConditionSection{border-top-color:#e08a00}.raci-classification-checks,.raci-form-section #raciPotentialGroup,.raci-form-section .raci-choice-group{margin-top:2px;margin-bottom:3px}.raci-form-section .form-grid{row-gap:22px}.raci-detail-section{margin-bottom:18px!important;padding:22px 24px!important;overflow:hidden}.raci-detail-section>.section-heading{margin:-22px -24px 20px;padding:18px 22px;background:linear-gradient(135deg,#f8faff,#eef4ff)}.raci-detail-grid>.panel{padding:22px 24px}.raci-detail-grid>.panel>.section-heading{margin:-22px -24px 18px;padding:18px 22px;background:linear-gradient(135deg,#f8faff,#eef4ff)}.raci-followup-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.raci-followup-form .field{min-width:0}.raci-followup-form .field input,.raci-followup-form .field select,.raci-followup-form .field textarea{width:100%;box-sizing:border-box}.raci-followup-form .form-actions{display:flex;justify-content:flex-end;padding-top:2px}.raci-detail-section .empty-state{min-height:110px;display:grid;place-items:center;border:1px dashed #cbd8e8;border-radius:12px;background:#f8fafc}.raci-timeline{padding:2px 4px}.raci-report-hero{margin-bottom:20px}.raci-data-list>div{min-height:58px;box-sizing:border-box}.raci-followup-summary .raci-data-list>div:last-child{border-bottom:0}@media(max-width:720px){.raci-form-section,.raci-detail-section{padding:18px!important}.raci-detail-section>.section-heading,.raci-detail-grid>.panel>.section-heading{margin:-18px -18px 18px;padding:16px 18px}.raci-followup-form{grid-template-columns:1fr}.raci-followup-form .span-2{grid-column:auto}}
.raci-responsible-field{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(260px,1fr);gap:8px}.raci-responsible-field>span,.raci-responsible-field>small{grid-column:1/-1}.raci-responsible-field>small{margin-top:0}@media(max-width:720px){.raci-responsible-field{grid-template-columns:1fr}}
/* Espaciado filtros RACI */
.raci-filter-panel{padding:24px 26px!important;border-radius:16px}.raci-filter-panel .raci-filter-grid{column-gap:18px;row-gap:20px}.raci-filter-panel .field{margin:0}.raci-filter-panel .field>span{margin-bottom:8px}.raci-filter-panel .form-actions{display:flex;align-items:center;gap:12px;margin-top:2px;padding-top:4px}.raci-filter-panel input,.raci-filter-panel select{min-height:43px}.raci-list-panel{margin-top:22px}@media(max-width:700px){.raci-filter-panel{padding:18px!important}.raci-filter-panel .form-actions{align-items:stretch;flex-direction:column}.raci-filter-panel .form-actions .button{width:100%;justify-content:center}}.safety-annex-observations-panel{padding:0!important;overflow:hidden;margin-top:18px}.safety-annex-observations-panel>.section-heading{padding:18px 20px;margin:0;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fffaf2,#fff4df)}.safety-annex-observations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:20px}.safety-annex-observation-field textarea{min-height:88px;resize:vertical}.safety-annex-observation-field textarea[readonly]{background:#f5f7fa;color:#52647b}@media(max-width:1000px){.safety-annex-observations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.safety-annex-observations-grid{grid-template-columns:1fr;padding:14px}}
.raci-filter-multiselect{position:relative}.raci-filter-multiselect>summary{display:flex;min-height:43px;box-sizing:border-box;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #cfdaea;border-radius:9px;background:#fff;color:var(--text);cursor:pointer;list-style:none}.raci-filter-multiselect>summary::-webkit-details-marker{display:none}.raci-filter-multiselect>summary:focus-visible,.raci-filter-multiselect[open]>summary{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.raci-filter-multiselect>summary i{font-style:normal;transition:transform .18s ease}.raci-filter-multiselect[open]>summary i{transform:rotate(180deg)}.raci-filter-multiselect-menu{position:absolute;z-index:35;top:calc(100% + 7px);left:0;right:0;display:grid;gap:4px;padding:9px;border:1px solid #cbd8e8;border-radius:11px;background:#fff;box-shadow:0 16px 36px rgba(23,54,93,.17)}.raci-filter-multiselect-menu label{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:7px;cursor:pointer}.raci-filter-multiselect-menu label:hover{background:var(--blue-soft)}.raci-filter-multiselect-menu input{width:17px;height:17px;min-height:0;accent-color:var(--blue)}.raci-filter-multiselect-menu label>span{margin:0;font-size:12px;font-weight:700}.raci-filter-multiselect-menu small{padding:7px 10px 3px;color:var(--muted);font-size:10px}

/* Cantidad diaria de personal */
.safety-headcount-header { align-items: center; }
.safety-headcount-today-badge { display: grid; min-width: 150px; padding: 13px 18px; text-align: right; background: #eef4ff; border: 1px solid #d7e4ff; border-radius: 13px; }
.safety-headcount-today-badge small { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.safety-headcount-today-badge strong { margin-top: 3px; color: var(--blue); font-size: 17px; }
.safety-headcount-site-filter { display: flex; align-items: end; gap: 12px; margin-bottom: 18px; padding: 16px 18px !important; }
.safety-headcount-site-filter .field { width: min(100%, 520px); margin: 0; }
.safety-headcount-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 18px; margin-bottom: 18px; }
.safety-headcount-entry-card { padding: 0 !important; overflow: hidden; }
.safety-headcount-entry-card > .section-heading, .safety-headcount-history > .section-heading { margin: 0; padding: 18px 20px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, #f8faff, #eef4ff); }
.safety-headcount-form { display: grid; grid-template-columns: minmax(160px, .65fr) minmax(220px, 1fr) auto; gap: 14px; align-items: end; padding: 22px; }
.safety-headcount-form .field { margin: 0; }
.safety-headcount-form input[readonly] { color: #52647b; background: #f5f7fa; }
.safety-headcount-form input[name="people_count"] { color: var(--navy); font-size: 18px; font-weight: 800; }
.safety-headcount-summary-card { display: flex; min-height: 235px; align-items: center; flex-direction: column; justify-content: center; text-align: center; border-width: 1px; }
.safety-headcount-summary-card.is-registered { background: linear-gradient(145deg, #f5fff9, #e9f9f1); border-color: #a7dfc2; }
.safety-headcount-summary-card.is-pending { background: linear-gradient(145deg, #fffaf2, #fff3dc); border-color: #f1d49b; }
.safety-headcount-summary-icon { display: grid; width: 42px; height: 42px; margin-bottom: 10px; place-items: center; color: white; background: var(--blue); border-radius: 13px; font-size: 20px; font-weight: 900; }
.safety-headcount-summary-card.is-registered .safety-headcount-summary-icon { background: #13966a; }
.safety-headcount-summary-card > small { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.safety-headcount-summary-card > strong { margin-top: 2px; color: var(--navy); font-size: 42px; line-height: 1; }
.safety-headcount-summary-card h3 { margin: 8px 0 4px; font-size: 13px; }
.safety-headcount-summary-card p { max-width: 290px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.safety-headcount-readonly { margin: 22px; padding: 22px; text-align: center; background: #f8fafc; border: 1px dashed #cbd8e6; border-radius: 12px; }
.safety-headcount-readonly small, .safety-headcount-readonly strong { display: block; }
.safety-headcount-readonly strong { margin: 5px 0; color: var(--navy); font-size: 28px; }
.safety-headcount-readonly p { margin: 0; color: var(--muted); font-size: 9px; }
.safety-headcount-history { padding: 0 !important; overflow: hidden; }
.safety-headcount-history .table-responsive { border: 0; border-radius: 0; }
.safety-headcount-history .pagination { padding: 15px 20px; border-top: 1px solid var(--line); }
.safety-headcount-value { display: inline-flex; min-width: 72px; justify-content: center; padding: 6px 10px; color: #087a55; background: #e8f8f0; border-radius: 999px; font-weight: 900; }
@media(max-width: 900px) { .safety-headcount-layout { grid-template-columns: 1fr; } .safety-headcount-form { grid-template-columns: 1fr 1fr; } .safety-headcount-form .button { grid-column: 1 / -1; width: 100%; } }
@media(max-width: 580px) { .safety-headcount-header { align-items: stretch; flex-direction: column; } .safety-headcount-today-badge { text-align: left; } .safety-headcount-form { grid-template-columns: 1fr; padding: 16px; } .safety-headcount-form .button { grid-column: auto; } }

/* Safety statistics - PDP dashboard */
.pdp-page-heading h2{letter-spacing:.025em}.pdp-filter-panel{padding:16px 18px}.pdp-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;gap:12px;align-items:end}.pdp-filter-grid .form-actions{display:flex;gap:8px;align-items:center}.pdp-filter-error{margin-top:10px}.pdp-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.pdp-kpi-grid article{display:flex;align-items:center;gap:14px;padding:17px 18px}.pdp-kpi-grid small,.pdp-kpi-grid strong,.pdp-kpi-grid p{display:block}.pdp-kpi-grid small{color:var(--muted);font-size:.72rem;font-weight:800}.pdp-kpi-grid strong{margin:2px 0;color:var(--navy);font-size:1.8rem;line-height:1}.pdp-kpi-grid p{margin:0;color:var(--muted);font-size:.7rem}.pdp-kpi-icon{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border-radius:13px;background:#fff0ed;color:#dc3c2f;font-size:1.25rem;font-weight:900}.pdp-kpi-icon.blue{background:#eaf2ff;color:#2563eb}.pdp-kpi-icon.green{background:#e6f8ef;color:#15976b}.pdp-chart-card{padding:0;overflow:hidden}.pdp-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:17px 20px;border-bottom:1px solid var(--line)}.pdp-card-heading h3{margin:2px 0 3px;color:var(--navy);font-size:1rem}.pdp-card-heading p{margin:0;color:var(--muted);font-size:.72rem}.pdp-chart-legend{display:flex;gap:15px;align-items:center;white-space:nowrap}.pdp-chart-legend span{display:flex;align-items:center;gap:6px;color:#506076;font-size:.7rem;font-weight:800}.pdp-chart-legend i{display:block;width:20px;height:5px;border-radius:4px}.pdp-chart-legend .headcount{background:#15548a}.pdp-chart-legend .reports{background:#f07638}.pdp-trend-scroll{overflow-x:auto;padding:8px 10px 0}.pdp-trend-chart{display:block;max-width:none;height:340px}.pdp-grid-line{stroke:#dce5ef;stroke-width:1}.pdp-axis-text,.pdp-axis-title,.pdp-date-label{fill:#718198;font-size:9px}.pdp-axis-title{font-size:8px;font-weight:800}.pdp-headcount-bar{fill:#15548a}.pdp-bar-value{fill:#15548a;font-size:9px;font-weight:900}.pdp-report-line{fill:none;stroke:#f07638;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.pdp-report-point{fill:#f07638;stroke:#fff;stroke-width:2}.pdp-report-value{fill:#d85d25;font-size:9px;font-weight:900}.pdp-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.pdp-ranking-list{display:grid;gap:11px;max-height:390px;padding:17px 20px;overflow:auto}.pdp-ranking-list.tall{max-height:480px}.pdp-ranking-row{display:grid;gap:6px}.pdp-ranking-label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.pdp-ranking-label:has(.pdp-type-tag){grid-template-columns:auto minmax(0,1fr) auto}.pdp-ranking-label strong{overflow:hidden;color:#30435c;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.pdp-ranking-label b{color:var(--navy);font-size:.75rem}.pdp-type-tag{padding:3px 6px;border-radius:999px;font-size:.55rem;font-weight:900;text-transform:uppercase}.pdp-type-tag.act{background:#fff0e8;color:#c8561f}.pdp-type-tag.condition{background:#e9f2fc;color:#15548a}.pdp-ranking-track{height:8px;overflow:hidden;border-radius:999px;background:#eef2f7}.pdp-ranking-track i{display:block;height:100%;min-width:4px;border-radius:inherit;background:linear-gradient(90deg,#15548a,#2f75b4)}.pdp-donut-layout{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(210px,1.2fr);gap:24px;align-items:center;min-height:290px;padding:24px}.pdp-donut{position:relative;width:190px;max-width:100%;aspect-ratio:1;margin:auto;border-radius:50%}.pdp-donut:after{position:absolute;inset:25%;content:"";border-radius:50%;background:#fff;box-shadow:0 0 0 1px #edf1f5}.pdp-donut>span{position:absolute;z-index:1;inset:31%;display:grid;place-content:center;text-align:center}.pdp-donut strong{color:var(--navy);font-size:1.6rem;line-height:1}.pdp-donut small{margin-top:4px;color:var(--muted);font-size:.62rem}.pdp-donut-legend{display:grid;gap:13px}.pdp-donut-legend>div{display:flex;gap:9px;align-items:flex-start}.pdp-donut-legend i{width:11px;height:11px;flex:0 0 11px;margin-top:3px;border-radius:50%}.pdp-donut-legend span,.pdp-donut-legend strong,.pdp-donut-legend small{display:block}.pdp-donut-legend strong{color:#34445a;font-size:.72rem}.pdp-donut-legend small{margin-top:2px;color:var(--muted);font-size:.65rem}
@media(max-width:1100px){.pdp-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pdp-filter-grid .form-actions{grid-column:1/-1}.pdp-dashboard-grid{grid-template-columns:1fr}.pdp-ranking-list.tall{max-height:390px}}
@media(max-width:700px){.pdp-filter-grid,.pdp-kpi-grid{grid-template-columns:1fr}.pdp-filter-grid .form-actions{grid-column:auto}.pdp-card-heading{align-items:flex-start;flex-direction:column}.pdp-donut-layout{grid-template-columns:1fr}.pdp-donut{width:165px}.pdp-page-heading .inline-actions{width:100%}.pdp-page-heading .button{width:100%}}
/* Enlaces públicos temporales del dashboard PDP */
.pdp-public-link-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:20px;align-items:start;margin-bottom:22px}
.pdp-public-link-form,.pdp-public-link-guide{padding:24px}
.pdp-public-link-guide{display:flex;gap:16px;position:sticky;top:18px}
.pdp-public-link-guide-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:14px;background:#e9f1ff;color:#2468df;font-size:24px;font-weight:800}
.pdp-public-link-guide h3{margin:0 0 10px}.pdp-public-link-guide ul{margin:0;padding-left:18px;color:#66758d;line-height:1.8}
.pdp-public-link-list{padding:0;overflow:hidden}.pdp-public-link-list-header{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:22px 24px;border-bottom:1px solid #dce4ef}
.pdp-public-link-list-header h3{margin:4px 0 0}.pdp-public-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px}
.pdp-public-link-card{border:1px solid #d9e3ef;border-radius:16px;padding:18px;background:#fff;box-shadow:0 10px 28px rgba(19,44,76,.06)}
.pdp-public-link-card.expired{border-color:#f1c6ad}.pdp-public-link-card.inactive{opacity:.78}
.pdp-public-link-card>header{display:flex;justify-content:space-between;gap:14px;align-items:start;margin-bottom:15px}.pdp-public-link-card>header h3{margin:7px 0 0;font-size:17px}
.pdp-public-link-card>header>strong{font-size:25px;color:#1b55a6;text-align:center;line-height:1}.pdp-public-link-card>header>strong small{display:block;margin-top:5px;color:#7b899d;font-size:10px;font-weight:600}
.pdp-public-link-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}.pdp-public-link-card dl div{padding:9px 10px;border-radius:10px;background:#f5f8fc}
.pdp-public-link-card dt{font-size:10px;color:#74839a}.pdp-public-link-card dd{margin:3px 0 0;font-weight:700;color:#233652}
.pdp-public-link-url{display:flex;gap:7px;margin-bottom:13px}.pdp-public-link-url input{min-width:0;flex:1;border:1px solid #d5dfec;border-radius:10px;background:#f8fafc;padding:10px;color:#66758d}
.pdp-public-link-card .inline-actions{align-items:center}.pdp-public-link-card .inline-actions form{margin:0}.pdp-public-link-audit{display:block;margin-top:13px;padding-top:11px;border-top:1px solid #e4eaf2;color:#7c899c}

.public-pdp-page{margin:0;background:#eef3f8;color:#14243b}.public-pdp-shell{width:min(1760px,calc(100% - 28px));margin:18px auto 32px}
.public-pdp-header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 26px;border-radius:18px;background:#132b4a;color:#fff;box-shadow:0 14px 36px rgba(12,35,64,.16)}
.public-pdp-header h1{margin:5px 0;font-size:28px}.public-pdp-header p{margin:0;color:#b9c7d9}.public-pdp-header .eyebrow{color:#7fb0ff}.public-pdp-actions{display:flex;gap:10px;flex-wrap:wrap}
.public-pdp-access-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:14px 0 18px;border:1px solid #d6e1ed;border-radius:14px;overflow:hidden;background:#d6e1ed}
.public-pdp-access-summary div{padding:13px 16px;background:#fff}.public-pdp-access-summary small{display:block;color:#75849a;margin-bottom:4px}.public-pdp-access-summary strong{font-size:14px}
.public-pdp-shell .panel{background:#fff}.public-pdp-footer{text-align:center;margin-top:20px;color:#78869a;font-size:12px}

.public-pdp-gate-page{margin:0;min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:radial-gradient(circle at 15% 12%,rgba(65,132,223,.12),transparent 30%),radial-gradient(circle at 88% 86%,rgba(33,166,139,.09),transparent 28%),#f3f6fa;color:#172943}
.public-pdp-gate{width:min(580px,100%)}.public-pdp-gate-brand{display:flex;align-items:center;gap:13px;margin:0 8px 20px}
.public-pdp-gate-brand>span{display:grid;place-items:center;width:54px;height:54px;box-sizing:border-box;border-radius:13px;background:#173d6b;color:#fff;font-weight:900}.public-pdp-gate-brand>img{display:block;width:205px;height:68px;box-sizing:border-box;padding:8px 14px;border:1px solid #d5e0ec;border-radius:13px;background:#fff;object-fit:contain;box-shadow:0 9px 24px rgba(22,52,88,.14)}
.public-pdp-gate-brand strong,.public-pdp-gate-brand small{display:block}.public-pdp-gate-brand strong{font-size:15px;letter-spacing:.01em}.public-pdp-gate-brand small{max-width:380px;margin-top:3px;color:#718098;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-pdp-gate-card{padding:34px 36px 28px;border:1px solid #d8e2ee;border-radius:20px;background:rgba(255,255,255,.98);box-shadow:0 24px 70px rgba(23,50,84,.12)}
.public-pdp-gate-heading{display:flex;align-items:center;gap:15px;text-align:left}.public-pdp-gate-heading>div{min-width:0}.public-pdp-gate-heading small{display:block;margin-bottom:3px;color:#2670d8;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.public-pdp-gate-card h1{margin:0;color:#102844;font-size:26px;line-height:1.2;overflow-wrap:anywhere}.public-pdp-gate-card>p{margin:19px 0 21px;color:#64758b;line-height:1.6;text-align:left}
.public-pdp-gate-icon{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:15px;background:#eaf2ff;color:#2566d8}.public-pdp-gate-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-pdp-gate-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;padding:12px;border:1px solid #e0e8f2;border-radius:12px;background:#f7f9fc}.public-pdp-gate-meta>div{padding:2px 7px}.public-pdp-gate-meta>div+div{border-left:1px solid #dbe4ef}.public-pdp-gate-meta small,.public-pdp-gate-meta strong{display:block}.public-pdp-gate-meta small{margin-bottom:4px;color:#7b899d;font-size:10px}.public-pdp-gate-meta strong{color:#273c57;font-size:12px}
.public-pdp-gate-card form{text-align:left}.public-pdp-gate-card form>.field{margin:0}.public-pdp-gate-card form .button{width:100%;justify-content:center;gap:10px;min-height:45px;margin-top:13px}.public-pdp-password-input{position:relative;display:block}.public-pdp-password-input svg{position:absolute;z-index:1;top:50%;left:13px;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:#71839a;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.public-pdp-password-input input{padding-left:41px}.public-pdp-password-error{display:block;margin-top:7px;color:#c72e42;font-size:11px;font-weight:650}.public-pdp-expiry{display:block;margin-top:17px;color:#8491a3;text-align:center;font-size:10px}
.public-pdp-gate-card.unavailable{text-align:center}.public-pdp-gate-card.unavailable .public-pdp-gate-icon{margin:0 auto 13px;background:#fff0ee;color:#c9382d}.public-pdp-gate-card.unavailable>p{text-align:center}

@media(max-width:1050px){
 .pdp-public-link-layout{grid-template-columns:1fr}.pdp-public-link-guide{position:static}.pdp-public-link-grid{grid-template-columns:1fr}
 .public-pdp-access-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
 .pdp-public-link-list-header,.public-pdp-header{align-items:stretch;flex-direction:column}.pdp-public-link-card dl{grid-template-columns:1fr}
 .public-pdp-access-summary{grid-template-columns:1fr}.public-pdp-shell{width:min(100% - 16px,1760px);margin-top:8px}.public-pdp-header{padding:19px}.public-pdp-header h1{font-size:22px}
 .public-pdp-actions .button{flex:1;justify-content:center}.public-pdp-gate-page{padding:22px 14px}.public-pdp-gate-brand{margin-inline:4px}.public-pdp-gate-brand>img{width:150px;height:56px}.public-pdp-gate-card{padding:26px 21px 23px}.public-pdp-gate-card h1{font-size:22px}.public-pdp-gate-meta{grid-template-columns:1fr}.public-pdp-gate-meta>div+div{border-left:0;border-top:1px solid #dbe4ef;padding-top:10px}.public-pdp-gate-brand small{display:none}.public-pdp-gate-brand strong{font-size:13px}
}
@media print{
 .public-pdp-page{background:#fff}.public-pdp-shell{width:100%;margin:0}.public-pdp-actions{display:none}.public-pdp-header{box-shadow:none}.public-pdp-footer{display:none}
}
/* Accreditation lockout cards */
.lockout-create{padding:0!important;overflow:hidden}.lockout-create>summary{display:flex;gap:13px;align-items:center;padding:18px 20px;cursor:pointer;list-style:none;background:linear-gradient(135deg,#f8faff,#eef4ff)}.lockout-create>summary::-webkit-details-marker{display:none}.lockout-create>summary div,.lockout-create>summary strong,.lockout-create>summary small{display:block}.lockout-create>summary small{margin-top:4px;color:var(--muted)}.lockout-card-form{padding:22px}.lockout-form-note{display:flex;gap:8px;align-items:center;padding:12px 14px;border:1px solid #cdddf5;border-radius:11px;color:#38516f;background:#f2f7ff;font-size:12px}.lockout-filter{display:flex;gap:12px;align-items:end}.lockout-filter .field{width:min(100%,620px);margin:0}.lockout-list{padding:0!important;overflow:hidden}.lockout-list>.section-heading{padding:18px 20px;border-bottom:1px solid var(--line)}.lockout-list .table-wrap{border:0;border-radius:0}.lockout-document-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:1px!important;overflow:hidden;background:var(--line)}.lockout-document-summary>div{padding:15px 17px;background:#fff}.lockout-document-summary small,.lockout-document-summary strong{display:block}.lockout-document-summary small{margin-bottom:5px;color:var(--muted)}.lockout-document-summary strong{color:var(--navy)}.lockout-preview{padding:0!important;overflow:hidden}.lockout-preview>.section-heading{padding:17px 20px;border-bottom:1px solid var(--line)}.lockout-preview iframe{display:block;width:100%;height:760px;border:0;background:#dfe5ec}
@media(max-width:850px){.lockout-document-summary{grid-template-columns:1fr 1fr}.lockout-filter{align-items:stretch;flex-direction:column}.lockout-preview iframe{height:520px}}
@media(max-width:520px){.lockout-document-summary{grid-template-columns:1fr}.lockout-card-form{padding:16px}.lockout-form-note{align-items:flex-start;flex-direction:column}}
.lockout-leader-check{min-height:72px;border:1px solid #f0d75a;background:linear-gradient(135deg,#fffef1,#fff9bd)}.lockout-leader-check>span strong{color:#5a4800}.lockout-leader-check input[type="checkbox"]{accent-color:#e1b900}

/* RACI · detalle organizado, edición de área y visor de evidencias */
.raci-data-list:not(.compact){gap:10px;margin-bottom:4px}.raci-data-list:not(.compact)>div{min-height:72px;padding:13px 14px;border:1px solid #dce5ef;border-radius:11px;background:#f8fafd}.raci-data-list dd>strong{display:block;color:#17365d;line-height:1.4}.raci-data-list dd small{margin-top:6px;line-height:1.45}.raci-area-data{border-color:#b8cff3!important;background:#eef5ff!important}.raci-area-editor{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(300px,1fr);gap:20px;align-items:end;margin:16px 0 5px;padding:17px 18px;border:1px solid #aac6f2;border-left:4px solid #2f6fed;border-radius:12px;background:#f2f7ff}.raci-area-editor[hidden]{display:none}.raci-area-editor>div>strong{color:#17365d}.raci-area-editor>div>p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.raci-area-editor form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end}.raci-area-editor .field{margin:0}.raci-area-editor .inline-actions{padding-bottom:1px}.raci-evidence-thumb{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:0;background:#e9eff6;cursor:zoom-in}.raci-evidence-thumb>img{display:block;width:100%;height:180px;object-fit:cover;transition:transform .2s ease}.raci-evidence-thumb .raci-file-preview{height:180px}.raci-evidence-thumb>span{position:absolute;right:10px;bottom:10px;padding:7px 10px;color:#fff;background:rgba(10,31,56,.86);border-radius:8px;font-size:10px;font-weight:900;opacity:0;transform:translateY(5px);transition:.18s}.raci-evidence-thumb:hover>img{transform:scale(1.025)}.raci-evidence-thumb:hover>span,.raci-evidence-thumb:focus-visible>span{opacity:1;transform:none}.raci-evidence-info{min-width:0}.raci-evidence-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:2px}.raci-evidence-actions .button{flex:1;justify-content:center}.raci-evidence-dialog{width:min(1100px,calc(100% - 32px));max-width:none;padding:0;overflow:visible;border:0;border-radius:18px;background:transparent}.raci-evidence-dialog::backdrop{background:rgba(5,18,35,.78);backdrop-filter:blur(3px)}.raci-evidence-dialog-card{overflow:hidden;border:1px solid #cbd8e8;border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.4)}.raci-evidence-dialog-card>header,.raci-evidence-dialog-card>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#f7f9fc}.raci-evidence-dialog-card>header{border-bottom:1px solid #dce5ef}.raci-evidence-dialog-card>header h3{margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raci-evidence-dialog-card>footer{justify-content:flex-end;border-top:1px solid #dce5ef}.raci-evidence-viewer{display:grid;min-height:300px;max-height:calc(100vh - 190px);place-items:center;padding:18px;background:#172333}.raci-evidence-viewer>img,.raci-evidence-viewer>video{display:block;width:100%;height:auto;max-height:calc(100vh - 226px);object-fit:contain}.raci-evidence-viewer>audio{width:min(680px,90%)}.raci-evidence-viewer>[hidden]{display:none}.raci-evidence-viewer .empty-state{width:min(500px,90%);color:#17365d;background:#fff}.raci-evidence-viewer .empty-state strong{margin-bottom:12px}@media(max-width:850px){.raci-area-editor,.raci-area-editor form{grid-template-columns:1fr}.raci-area-editor .inline-actions{justify-content:flex-start}.raci-evidence-dialog{width:calc(100% - 18px)}.raci-evidence-viewer{min-height:220px;padding:8px}.raci-evidence-dialog-card>footer{align-items:stretch;flex-direction:column}.raci-evidence-dialog-card>footer .button{justify-content:center}}@media(max-width:650px){.raci-report-hero .inline-actions{width:100%}.raci-report-hero .inline-actions .button{flex:1;justify-content:center}.raci-data-list:not(.compact)>div{min-height:0}.raci-evidence-thumb>span{opacity:1;transform:none}}
/* Carnets del personal · frente y reverso */
.employee-card-grid{grid-template-columns:1fr}.employee-card-item{width:100%}.employee-card-pair{display:grid;grid-template-columns:repeat(2,428px);gap:0;align-items:start;justify-content:center}.employee-card-side{display:grid;gap:8px;justify-items:center}.employee-card-side-label{display:inline-flex;padding:5px 10px;color:#315273;background:#eaf1f8;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.employee-id-card-back{background:radial-gradient(circle at 92% 8%,rgba(30,110,184,.16),transparent 30%),radial-gradient(circle at 8% 92%,rgba(204,39,55,.09),transparent 30%),#fff}.employee-card-back-header{display:flex;height:61px;align-items:center;justify-content:space-between;padding:0 22px 0 25px;color:#fff;background:linear-gradient(110deg,#10233e,#173b64)}.employee-card-back-header small{color:#b8c9dc;font-size:7px;font-weight:800;letter-spacing:.17em}.employee-card-back-header strong{font:800 17px "Manrope",sans-serif;letter-spacing:.04em}.employee-card-back-body{display:flex;height:151px;box-sizing:border-box;align-items:center;flex-direction:column;justify-content:center;gap:8px;padding:16px 28px}.employee-card-back-body>img{display:block;width:210px;height:88px;object-fit:contain}.employee-card-back-body>span{display:grid;width:82px;height:82px;place-items:center;color:#fff;background:linear-gradient(135deg,#1b5794,#10233e);border-radius:20px;font:900 38px "Manrope",sans-serif;box-shadow:0 9px 24px rgba(16,35,62,.2)}.employee-card-back-body>strong{max-width:310px;overflow:hidden;color:#17365d;font:800 11px "Manrope",sans-serif;letter-spacing:.08em;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.employee-card-back-footer{display:flex;height:58px;box-sizing:border-box;align-items:center;justify-content:center;padding:6px 25px;background:#f1f5f9;border-top:1px solid #e0e7ef}.employee-card-back-footer small{color:#60768c;font-size:6px;font-weight:900;letter-spacing:.18em}.single-employee-card{overflow-x:auto}.single-employee-card .employee-card-pair{min-width:856px}@media(max-width:1000px){.employee-card-item{overflow-x:auto;justify-items:start;padding-bottom:8px}.employee-card-pair{justify-content:start}.single-employee-card{justify-content:start}}@media print{.card-page-actions{display:none!important}.employee-card-grid{display:block;width:171.2mm;margin:0 auto}.employee-card-item{position:relative;display:block;width:171.2mm;height:53.98mm;margin:0 auto 7mm;overflow:visible;padding:0;break-inside:avoid;page-break-inside:avoid}.employee-card-item:nth-child(4n){margin-bottom:0}.employee-card-item:nth-child(4n):not(:last-child){break-after:page;page-break-after:always}.employee-card-pair,.single-employee-card .employee-card-pair{position:relative;display:block;width:171.2mm;min-width:0;height:53.98mm}.employee-card-side{position:absolute;top:0;display:block;width:85.6mm;height:53.98mm}.employee-card-side:first-child{left:0}.employee-card-side:last-child{right:0}.employee-card-side .employee-id-card{left:0}.single-employee-card{width:171.2mm;height:53.98mm;margin:0 auto;overflow:visible}.employee-id-card-back,.employee-card-back-header,.employee-card-back-footer{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* Contabilidad · cierre y formato de rendición */
.accounting-closed-banner{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:18px;padding:18px 20px!important;border:1px solid #9ed8bb!important;background:linear-gradient(135deg,#effcf6,#e1f7ec)!important}.accounting-closed-banner>span{display:grid;width:54px;height:54px;place-items:center;color:#fff;background:#0b9968;border-radius:50%;font-size:27px;font-weight:900;box-shadow:0 8px 20px rgba(11,153,104,.2)}.accounting-closed-banner small{color:#087451;font-size:.67rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.accounting-closed-banner h3{margin:3px 0;color:#075f45}.accounting-closed-banner p{margin:0;color:#39705e}.accounting-closed-banner .button{justify-content:center}@media(max-width:760px){.accounting-closed-banner{grid-template-columns:48px 1fr}.accounting-closed-banner>span{width:46px;height:46px}.accounting-closed-banner .button{grid-column:1/-1}}
/* Reportes de asistencia · selector y corrección histórica */
.report-worker-picker{position:relative}.report-worker-picker input[type="search"]{width:100%;padding-left:36px;padding-right:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364778f' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center}.report-worker-picker:after{content:'⌄';position:absolute;right:12px;top:20px;transform:translateY(-50%);color:#64778f;pointer-events:none}.report-worker-options{position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow:auto;padding:6px;border:1px solid #bfd0e5;border-radius:11px;background:#fff;box-shadow:0 16px 38px rgba(23,54,93,.2)}.report-worker-options[hidden]{display:none}.report-worker-options button{display:grid;width:100%;gap:3px;padding:9px 11px;border:0;border-radius:8px;background:#fff;color:#203653;text-align:left;cursor:pointer}.report-worker-options button[hidden]{display:none}.report-worker-options button:hover,.report-worker-options button:focus{outline:0;background:#eaf1ff;color:#1e5dc7}.report-worker-options button>small{color:#718197;font-size:.66rem}.report-worker-options button:first-child{font-weight:800}.report-worker-options.empty:after{content:'No se encontraron trabajadores.';display:block;padding:12px;color:#758398;font-size:.72rem;text-align:center}.attendance-correction-reason{display:block;min-width:180px;max-width:280px;margin-top:7px;padding:7px 9px;border-left:3px solid #2f6fed;border-radius:6px;background:#eef5ff;color:#52677f;font-size:.65rem;line-height:1.4;white-space:normal}.attendance-correction-reason strong{display:block;margin-bottom:2px;color:#1e5dc7;font-size:.63rem;text-transform:uppercase;letter-spacing:.04em}.attendance-correct-button{min-width:125px;padding:8px 10px;font-size:.7rem;white-space:nowrap}.muted-text{display:block;max-width:135px;color:var(--muted);font-size:.66rem;line-height:1.35}.attendance-correction-dialog{width:min(560px,calc(100% - 24px));max-width:none;padding:0;overflow:visible;border:0;border-radius:18px;background:transparent}.attendance-correction-dialog::backdrop{background:rgba(8,24,45,.7);backdrop-filter:blur(3px)}.attendance-correction-card{overflow:hidden;border:1px solid #cbd8e8;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.35)}.attendance-correction-card>header,.attendance-correction-card>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#f6f9fd}.attendance-correction-card>header{border-bottom:1px solid #dce5ef}.attendance-correction-card>header small{color:#2f6fed;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.attendance-correction-card>header h3{margin:3px 0 0;color:#172b46}.attendance-correction-card>footer{justify-content:flex-end;border-top:1px solid #dce5ef}.attendance-correction-body{display:grid;gap:15px;padding:20px}.attendance-correction-body .field{margin:0}.attendance-correction-summary{display:grid;grid-template-columns:90px 1fr;gap:7px 12px;padding:13px 15px;border:1px solid #cfddf0;border-radius:12px;background:#f2f7ff}.attendance-correction-summary span{color:#6b7d94;font-size:.69rem;font-weight:800}.attendance-correction-summary strong{color:#17365d}.attendance-correction-error[hidden]{display:none}.attendance-correction-error{margin:0;line-height:1.45}.attendance-correction-note{margin:0;padding:11px 13px;border-left:4px solid #2f6fed;border-radius:8px;background:#eef5ff;color:#52677f;font-size:.72rem;line-height:1.5}@media(max-width:600px){.attendance-correction-card>footer{display:grid;grid-template-columns:1fr 1fr}.attendance-correction-card>footer .button{justify-content:center}.attendance-correction-summary{grid-template-columns:1fr}.attendance-correction-summary strong{margin-bottom:5px}}
/* Perfiles de acreditación por minera y trabajador */
.accreditation-profile-section{background:#f8faff;border-top:1px solid var(--border)}
.accreditation-profile-default{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid #acd9c8;border-radius:12px;background:#edf9f4;color:#12654c}
.accreditation-profile-default span{font-size:.78rem;color:#477766}
.accreditation-profile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.accreditation-profile-card,.accreditation-profile-create{padding:14px;border:1px solid #d7e1ed;border-radius:12px;background:#fff}
.accreditation-profile-card form,.accreditation-profile-create form{padding:0!important;border:0!important}
.accreditation-profile-courses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:11px 0}
.accreditation-profile-courses label{display:flex;align-items:flex-start;gap:7px;padding:8px;border:1px solid #e0e6ef;border-radius:8px;background:#f8fafc;font-size:.76rem}
.accreditation-profile-create{margin-top:12px}.accreditation-profile-create summary{cursor:pointer;color:#245fc7;font-weight:800}.accreditation-profile-create form{margin-top:12px}
.accreditation-profile-bulk{display:flex;align-items:end;gap:14px;margin:12px 0;padding:14px!important}.accreditation-profile-bulk>div{display:grid;gap:3px;margin-right:auto}.accreditation-profile-bulk small{color:var(--muted)}.accreditation-profile-bulk .field{min-width:230px}
.profile-select-column{min-width:42px!important;width:42px;text-align:center!important}.accreditation-dynamic-sheet .sticky-worker{min-width:255px;max-width:280px}.matrix-worker-identity{align-items:flex-start}.matrix-worker-copy{display:grid;gap:2px;width:100%}.matrix-worker-dni{color:#355477;font-size:.78rem;font-weight:850;letter-spacing:.025em;line-height:1.25}.matrix-profile-form{display:grid;gap:2px;margin-top:6px}.matrix-profile-form label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;margin:0}.matrix-profile-form label>span{color:#60758f;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.matrix-profile-form select{width:100%;min-width:0;height:31px;padding:4px 27px 4px 8px;border:1px solid #b8c9dc;border-radius:7px;background:#f8fbff;color:#17365d;font-size:.72rem;font-weight:750}.matrix-profile-form>small{margin:0!important;color:#6a7e97!important;font-size:.64rem}.matrix-profile-form.saving{opacity:.5;pointer-events:none}.matrix-profile-badge{width:max-content;max-width:100%;margin-top:5px;padding:4px 7px;border-radius:6px;background:#edf3ff;color:#245fc7;font-size:.68rem;font-weight:800}
@media(max-width:800px){.accreditation-profile-list,.accreditation-profile-courses{grid-template-columns:1fr}.accreditation-profile-bulk{display:grid;align-items:stretch}.accreditation-profile-bulk .field{min-width:0}}
.report-profile-badge{display:block;width:max-content;max-width:100%;margin-top:6px;padding:4px 7px;border-radius:6px;font-size:.66rem;font-weight:850;line-height:1.15}.report-profile-badge.general{background:#eef2f6;color:#5d6a7a}.report-profile-badge.special{background:#e7efff;color:#245fc7;box-shadow:inset 0 0 0 1px #bad0f7}

/* Administración · Mesa de ayuda */
.helpdesk-filters{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(170px,.7fr) minmax(150px,.6fr) auto auto;gap:12px;align-items:end;margin-bottom:18px}.helpdesk-filters .field{margin:0}.helpdesk-list{padding:0!important;overflow:hidden}.helpdesk-list>.section-heading{padding:19px 22px;margin:0;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.helpdesk-category,.helpdesk-status{display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;font-size:.66rem;font-weight:900}.helpdesk-category{color:#245fc7;background:#e8f0ff}.helpdesk-status.new{color:#a45b00;background:#fff0cb}.helpdesk-status.in_progress{color:#245fc7;background:#e7efff}.helpdesk-status.resolved{color:#087451;background:#dcf7e9}.helpdesk-excerpt{max-width:330px;margin-top:7px;color:var(--muted);line-height:1.4}.helpdesk-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px}.helpdesk-detail-grid>.panel{margin:0}.helpdesk-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.helpdesk-data>div{padding:13px 14px;border:1px solid #dce5ef;border-radius:11px;background:#f8fafd}.helpdesk-data dt{color:var(--muted);font-size:.66rem;font-weight:900;text-transform:uppercase}.helpdesk-data dd{margin:5px 0 0;font-weight:800}.helpdesk-description{margin-top:14px;padding:17px;border-left:4px solid #2f6fed;border-radius:9px;background:#eef5ff}.helpdesk-description strong{font-size:.7rem;text-transform:uppercase}.helpdesk-description p,.helpdesk-readonly p{margin:8px 0 0;white-space:pre-wrap;line-height:1.65}.helpdesk-readonly{padding:15px;border:1px solid #dce5ef;border-radius:11px;background:#f8fafd}.helpdesk-readonly small{display:block;margin-top:12px;color:var(--muted)}
@media(max-width:900px){.helpdesk-filters{grid-template-columns:1fr 1fr}.helpdesk-detail-grid{grid-template-columns:1fr}}@media(max-width:580px){.helpdesk-filters,.helpdesk-data{grid-template-columns:1fr}.helpdesk-filters .button{justify-content:center}}

/* Estadísticas de seguridad · HPH */
.hph-page-heading{align-items:flex-end;margin-bottom:22px}.hph-entry-card,.hph-history-card,.pdp-hph-card{overflow:hidden}.hph-entry-card{margin-bottom:20px}.hph-entry-card>.section-heading,.hph-history-card>.section-heading{margin:0;padding:18px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f9fbff,#f1f6ff)}.hph-entry-form{display:grid;grid-template-columns:180px minmax(280px,.9fr) 140px minmax(360px,1.35fr) 135px;gap:14px;align-items:end;padding:22px}.hph-entry-form .field,.hph-filter-form .field{margin:0}.hph-entry-form input,.hph-entry-form select,.hph-entry-form textarea,.hph-filter-form input,.hph-filter-form select{min-height:44px;border-color:#cfdaea;background:#fff}.hph-entry-form textarea{height:44px;min-height:44px;padding-top:11px;resize:vertical}.hph-entry-form .button,.hph-filter-form .button{min-height:44px;justify-content:center;white-space:nowrap}.hph-filter-form{display:grid;grid-template-columns:180px minmax(280px,1fr) 190px 135px 80px;gap:14px;align-items:end;margin:0;padding:20px 22px;background:#fbfcff;border-bottom:1px solid var(--border)}.hph-table{min-width:1050px}.hph-table th{padding-top:14px;padding-bottom:14px;background:#f6f8fc}.hph-table td{padding-top:14px;padding-bottom:14px}.hph-table th,.pdp-hph-table th{white-space:nowrap}.hph-description,.pdp-hph-description{min-width:300px;max-width:560px;white-space:normal;line-height:1.5}.hph-quantity{display:inline-grid;min-width:54px;height:34px;place-items:center;padding:0 10px;border-radius:999px;background:#e8f0ff;color:#245fc7;font-weight:900}.hph-status,.hph-status-select{display:inline-flex;width:max-content;padding:7px 11px;border:1px solid transparent;border-radius:999px;font-size:.7rem;font-weight:900}.hph-status.pending,.hph-status-select.pending{border-color:#f2d28a;background:#fff2cf;color:#9a5a00}.hph-status.in_progress,.hph-status-select.in_progress{border-color:#b8cff3;background:#e8f0ff;color:#245fc7}.hph-status.closed,.hph-status-select.closed{border-color:#a6ddc4;background:#dcf7e9;color:#087451}.hph-status-form{margin:0}.hph-status-select{min-width:125px;cursor:pointer}.pdp-hph-card{margin-top:18px}.pdp-hph-card>.pdp-card-heading{padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.pdp-hph-total{display:grid;min-width:115px;padding:12px 16px;border-radius:12px;background:#173f70;color:#fff;font-size:1.45rem;text-align:center}.pdp-hph-total small{margin-top:2px;color:#c9d9eb;font-size:.58rem;letter-spacing:.06em;text-transform:uppercase}.pdp-hph-table{min-width:980px}.pdp-hph-table td{vertical-align:middle}
@media(max-width:1250px){.hph-entry-form{grid-template-columns:180px minmax(260px,1fr) 140px}.hph-entry-form .hph-description-field{grid-column:1/3}.hph-entry-form>.button{grid-column:3}.hph-filter-form{grid-template-columns:180px minmax(260px,1fr) 190px}.hph-filter-form>.button,.hph-filter-form>.button:last-child{justify-content:center}}@media(max-width:760px){.hph-page-heading{align-items:stretch}.hph-page-heading>.button{justify-content:center}.hph-entry-form,.hph-filter-form{grid-template-columns:1fr;padding:17px}.hph-entry-form .hph-description-field,.hph-entry-form>.button{grid-column:auto}.hph-entry-form textarea{height:82px;min-height:82px}.pdp-hph-card>.pdp-card-heading{align-items:flex-start;flex-direction:column}.pdp-hph-total{width:100%;box-sizing:border-box}}

.pdp-filter-grid{grid-template-columns:repeat(5,minmax(140px,1fr)) auto}

/* Carnets · selección persistente e impresión por lote */
.card-selection-toolbar{display:flex;grid-column:1/-1;width:100%;box-sizing:border-box;align-items:center;justify-content:space-between;gap:18px;margin:0 0 2px;padding:16px 18px;border-color:#b9cff1;background:linear-gradient(135deg,#f5f9ff,#eaf2ff)}.card-selection-summary{display:flex;min-width:250px;align-items:center;gap:12px}.card-selection-icon{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;color:#fff;background:#2467df;border-radius:11px;font-size:20px;font-weight:900}.card-selection-summary strong,.card-selection-summary small{display:block}.card-selection-summary strong{color:#17365d;font-size:.86rem}.card-selection-summary strong b{font-size:1.08rem}.card-selection-summary small{margin-top:3px;color:#64778f;font-size:.66rem}.card-selection-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.card-selection-actions form{margin:0}.card-selection-page,.employee-card-selector{display:inline-flex;align-items:center;gap:8px;color:#284766;font-size:.72rem;font-weight:800;cursor:pointer}.card-selection-page{min-height:40px;padding:0 12px;border:1px solid #c4d4e8;border-radius:9px;background:#fff}.card-selection-page input,.employee-card-selector input{width:17px;height:17px;accent-color:#2467df}.employee-card-selector{order:2;padding:7px 12px;border:1px solid #cbd8e8;border-radius:999px;background:#fff;box-shadow:0 5px 15px rgba(23,54,93,.08)}.employee-card-item.is-selected .employee-card-pair{outline:3px solid #2f6fed;outline-offset:5px;border-radius:16px}.employee-card-item.is-selected .employee-card-selector{border-color:#2f6fed;background:#eaf2ff;color:#1d59bd}.card-selection-actions .button:disabled{cursor:not-allowed;opacity:.48}.selected-card-print-grid{margin-top:8px}
@media(max-width:1050px){.card-selection-toolbar{align-items:stretch;flex-direction:column}.card-selection-actions{justify-content:flex-start}}@media(max-width:650px){.card-selection-actions{align-items:stretch;flex-direction:column}.card-selection-actions .button,.card-selection-actions form,.card-selection-actions form .button,.card-selection-page{width:100%;box-sizing:border-box;justify-content:center}.card-selection-summary{min-width:0}}
@media print{.employee-card-selector,.card-selection-toolbar{display:none!important}.employee-card-item.is-selected .employee-card-pair{outline:0}}

/* Dashboard PDP · gráfico mensual HPH */
.pdp-hph-chart-heading{padding:20px 22px 12px;text-align:center}.pdp-hph-chart-heading h3{margin:4px 0 0;color:#17365d;font-size:1.35rem;letter-spacing:.08em}.pdp-hph-chart-scroll{overflow-x:auto;padding:0 16px 16px}.pdp-hph-chart{display:block;min-width:100%;height:325px}.pdp-hph-grid-line{stroke:#dbe4ef;stroke-width:1}.pdp-hph-axis-line{stroke:#9eb0c5;stroke-width:1.4}.pdp-hph-axis-value{fill:#526b85;font-size:10px;font-weight:700}.pdp-hph-bar{fill:#2f6fed;filter:drop-shadow(0 5px 7px rgba(47,111,237,.18));transition:opacity .18s}.pdp-hph-bar:hover{opacity:.82}.pdp-hph-bar-value{fill:#17365d;font-size:12px;font-weight:900}.pdp-hph-month-label{fill:#263f5d;font-size:9px;font-weight:800}.pdp-hph-card{background:linear-gradient(180deg,#fff,#fbfdff)}

/* VFL · registro semanal: misma estructura visual de HPH */
.hph-entry-card.vfl-entry-card{overflow:visible}.vfl-entry-card>.section-heading{border-radius:16px 16px 0 0}.hph-entry-form.vfl-form{grid-template-columns:180px minmax(220px,1fr) minmax(280px,1.4fr) 120px minmax(220px,.8fr) 135px;align-items:start}.vfl-form>.button{margin-top:20px}.vfl-worker-picker{position:relative;min-width:0}.vfl-worker-picker>label{display:block;margin-bottom:7px;color:#4f5f72;font-size:11px;font-weight:600}.vfl-worker-picker>small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.4}.vfl-worker-picker>.field-error{color:var(--danger,#dc2626)}.vfl-search-results{position:absolute;top:65px;left:0;right:0;z-index:20;max-height:280px;overflow-y:auto;background:#fff;border:1px solid #cfdaea;border-radius:8px;box-shadow:0 12px 28px #17365d22}.vfl-search-results button{display:block;width:100%;padding:12px;text-align:left;border:0;border-bottom:1px solid var(--border);background:#fff;color:#17365d;cursor:pointer}.vfl-search-results button:hover,.vfl-search-results button:focus-visible{background:var(--blue-soft);outline:2px solid var(--blue);outline-offset:-2px}
@media(max-width:1350px){.hph-entry-form.vfl-form{grid-template-columns:180px minmax(260px,1fr) 160px}.vfl-form .vfl-worker-picker{grid-column:1/3;grid-row:3}.vfl-form .vfl-quantity-field{grid-column:3;grid-row:1}.vfl-form .vfl-attachment-field{grid-column:1/3;grid-row:2}.hph-entry-form.vfl-form>.button{grid-column:3;grid-row:2}}
@media(max-width:760px){.hph-entry-form.vfl-form{grid-template-columns:1fr}.vfl-form .vfl-worker-picker,.vfl-form .vfl-quantity-field,.vfl-form .vfl-attachment-field,.hph-entry-form.vfl-form>.button{grid-column:auto;grid-row:auto}.vfl-form>.button{margin-top:0}}

/* Indicadores de gestión de seguridad */
.smi-filter-card{margin-bottom:18px}.smi-filter-form{display:grid;grid-template-columns:150px minmax(280px,1fr) 160px;gap:14px;align-items:end;padding:18px 22px}.smi-filter-form .field{margin:0}.smi-summary-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:18px;margin-bottom:18px}.smi-form-card{overflow:hidden}.smi-form-card>.section-heading,.smi-chart-card>.section-heading,.smi-table-card>.section-heading{margin:0;padding:18px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f9fbff,#f1f6ff)}.smi-entry-form{display:grid;grid-template-columns:160px minmax(260px,1fr) 130px auto;gap:14px;align-items:end;padding:20px 22px}.smi-entry-form .field,.smi-target-form .field{margin:0}.smi-entry-form .button,.smi-target-form .button{min-height:44px;justify-content:center}.smi-target-form{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:14px;align-items:end;padding:20px 22px 10px}.smi-formula{display:grid;gap:4px;margin:10px 22px 20px;padding:14px;border-radius:12px;background:#eef5ff;color:#17365d}.smi-formula span{font-size:.78rem}.smi-readonly{margin:20px 22px;color:var(--muted)}.smi-target-value{display:grid;gap:3px;margin:20px 22px 10px}.smi-target-value strong{font-size:1.8rem;color:#17365d}.smi-target-value span{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.08em}.smi-chart-card,.smi-table-card{overflow:hidden;margin-bottom:18px}.smi-chart-card{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}.smi-legend{display:flex;flex-wrap:wrap;gap:14px;padding:16px 22px 2px}.smi-legend span{display:inline-flex;align-items:center;gap:6px;color:#4f6076;font-size:.72rem;font-weight:800}.smi-legend span:before{width:10px;height:10px;border-radius:3px;background:var(--legend);content:""}.smi-legend span.line:before{width:24px;height:3px;border-radius:999px}.smi-legend span.dashed:before{height:0;border-top:3px dashed var(--legend);background:none}.smi-chart-scroll{overflow-x:auto;padding:8px 20px 22px}.smi-chart{display:block;min-width:920px}.smi-table{min-width:1120px}.smi-table td,.smi-table th{text-align:right}.smi-table td:first-child,.smi-table th:first-child{text-align:left}.smi-count{display:inline-grid;min-width:32px;height:28px;place-items:center;border-radius:999px;background:#edf3fb;color:#17365d;font-weight:900}.smi-rate{display:inline-block;padding:5px 9px;border-radius:999px;background:#def7e9;color:#087451;font-weight:900}.smi-rate.over{background:#ffe3e7;color:#bd2440}
@media(max-width:1050px){.smi-summary-grid{grid-template-columns:1fr}.smi-entry-form{grid-template-columns:160px minmax(240px,1fr) 130px auto}}
@media(max-width:760px){.smi-filter-form,.smi-entry-form,.smi-target-form{grid-template-columns:1fr;padding:17px}.smi-summary-grid{gap:14px}.smi-filter-form .button,.smi-entry-form .button,.smi-target-form .button{width:100%}}

.pdp-management-overview{overflow:hidden;margin-bottom:18px}.pdp-management-overview>.pdp-card-heading{align-items:center;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f9fbff,#eef4ff)}.pdp-management-layout{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);min-height:430px}.pdp-management-summary{padding:20px;border-right:1px solid var(--border);background:#fbfcff}.pdp-management-summary table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid #dce5f1;border-radius:14px;background:#fff}.pdp-management-summary th{padding:11px 13px;background:#17365d;color:#fff;font-size:.7rem;text-align:center;text-transform:uppercase}.pdp-management-summary th:first-child{text-align:left}.pdp-management-summary td{padding:11px 13px;border-top:1px solid #e5ebf3;text-align:center}.pdp-management-summary td:first-child{text-align:left}.pdp-management-summary td strong{display:block;color:#17365d;font-size:.82rem}.pdp-management-summary td small{display:block;margin-top:2px;color:#748298;font-size:.63rem;line-height:1.25}.pdp-management-summary td span{display:inline-grid;min-width:42px;height:30px;place-items:center;border-radius:999px;background:#edf3fb;color:#17365d;font-weight:900}.pdp-management-note{margin:14px 2px 0;color:#6d7c91;font-size:.68rem;line-height:1.5}.pdp-management-chart{min-width:0;background:linear-gradient(180deg,#fff,#fbfdff)}.pdp-management-chart-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:16px 22px 0;color:#17365d}.pdp-management-chart-heading strong{font-size:.92rem}.pdp-management-chart-heading span{color:#748298;font-size:.68rem}.pdp-management-chart .smi-legend{padding-top:14px}.pdp-management-chart .smi-chart-scroll{padding-bottom:16px}
@media(max-width:1100px){.pdp-management-layout{grid-template-columns:1fr}.pdp-management-summary{border-right:0;border-bottom:1px solid var(--border)}.pdp-management-overview>.pdp-card-heading{align-items:flex-start;flex-direction:column}}

/* Percepción al Riesgo */
.risk-entry-card,.risk-history-card{box-sizing:border-box;max-width:100%;min-width:0}.risk-entry-card{overflow:visible;margin-bottom:20px}.risk-entry-form{display:grid;box-sizing:border-box;width:100%;max-width:100%;min-width:0;grid-template-columns:180px minmax(230px,.8fr) minmax(300px,1.2fr);gap:18px;padding:22px;align-items:start}.risk-entry-form>*,.risk-filter-form>*{min-width:0}.risk-entry-form .field{margin:0}.risk-entry-form input,.risk-entry-form select,.risk-entry-form textarea,.risk-filter-form input,.risk-filter-form select{width:100%;box-sizing:border-box;min-height:44px;border-color:#cfdaea;background:#fff}.risk-entry-form textarea{min-height:88px;resize:vertical}.risk-worker-picker{position:relative;min-width:0}.risk-worker-picker>label{display:block;margin-bottom:7px;color:#4f5f72;font-size:11px;font-weight:600}.risk-worker-picker>small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.risk-worker-summary{grid-column:1/-1;display:grid;grid-template-columns:180px minmax(250px,1fr) minmax(220px,1fr);gap:1px;min-width:0;padding:1px;border-radius:11px;overflow:hidden;background:var(--border)}.risk-worker-summary[hidden]{display:none}.risk-worker-summary>div{min-width:0;padding:13px 15px;background:#f8faff;overflow-wrap:anywhere}.risk-worker-summary small,.risk-worker-summary strong{display:block}.risk-worker-summary small{margin-bottom:5px;color:var(--muted);font-size:.65rem;text-transform:uppercase}.risk-comment{grid-column:1/-1}.risk-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:12px}.risk-filter-form{display:grid;box-sizing:border-box;width:100%;max-width:100%;min-width:0;grid-template-columns:160px 160px minmax(230px,1fr) minmax(220px,1fr) 135px 80px 145px;gap:14px;align-items:end;padding:20px 22px;background:#fbfcff;border-bottom:1px solid var(--border)}.risk-filter-form .field{margin:0}.risk-filter-form .button{min-height:44px;justify-content:center}.risk-history-card .table-responsive{display:block;box-sizing:border-box;width:100%;max-width:100%;overflow-x:auto}.risk-table{min-width:1500px}.risk-text{min-width:210px;max-width:340px;white-space:normal;line-height:1.5}.risk-result{display:inline-flex;width:max-content;max-width:100%;padding:7px 11px;border:1px solid transparent;border-radius:999px;font-size:.7rem;font-weight:900;white-space:nowrap}.risk-result.fit{border-color:#a6ddc4;background:#dcf7e9;color:#087451}.risk-result.not-fit{border-color:#f0aab5;background:#ffe1e7;color:#ad1f37}.button.small{min-height:34px;padding:7px 11px;font-size:.72rem}
@media(max-width:1250px){.risk-entry-form{grid-template-columns:1fr 1fr}.risk-worker-picker,.risk-worker-summary,.risk-comment,.risk-form-actions{grid-column:1/-1}.risk-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.risk-filter-form .button{width:100%}}
@media(max-width:900px){.risk-entry-form{grid-template-columns:1fr}.risk-worker-picker,.risk-worker-summary,.risk-comment,.risk-form-actions{grid-column:auto}.risk-worker-summary{grid-template-columns:1fr}.risk-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.risk-form-actions{display:grid;grid-template-columns:1fr}.risk-form-actions .button{width:100%;justify-content:center}}
@media(max-width:700px){.risk-entry-form,.risk-filter-form{grid-template-columns:1fr;padding:17px}}

/* VCC · cuestionarios con la estructura compartida de estadísticas de seguridad */
.vcc-body{padding:22px}.vcc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.vcc-full{grid-column:1/-1}.vcc-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px}.vcc-type-link{display:grid;gap:10px;padding:20px;border:1px solid var(--border);border-radius:12px;color:var(--text);text-decoration:none;background:#fff}.vcc-type-link strong,.vcc-type-link small{color:var(--blue)}.vcc-type-link:hover,.vcc-type-link:focus-visible{background:var(--blue-soft);border-color:var(--blue)}.vcc-type-link span{font-size:.82rem;line-height:1.5}.vcc-step{scroll-margin-top:20px}.vcc-step[hidden],#vcc-form [hidden]{display:none!important}.vcc-step .section-heading>div{min-width:0}.vcc-step h3{line-height:1.5;overflow-wrap:anywhere}.vcc-question-text{font-size:1rem;line-height:1.7;margin:0 0 18px;white-space:pre-wrap}.vcc-guide{padding:16px;border:1px solid var(--border);border-radius:10px;background:#f5f8ff;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:.85rem}.vcc-choices{border:0;padding:0;margin:22px 0;display:flex;flex-wrap:wrap;gap:14px}.vcc-choices legend{font-weight:600;font-size:.85rem;margin-bottom:12px;line-height:1.5}.vcc-choices label{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:9px;padding:12px 22px;cursor:pointer}.vcc-choices input{width:18px;height:18px;margin:0;accent-color:var(--blue)}.vcc-choices label:has(input:checked){background:var(--blue-soft);border-color:var(--blue)}.vcc-followup{display:grid;gap:18px}.vcc-followup>p{margin:0;color:var(--muted);font-size:.82rem}.vcc-navigation{display:flex;justify-content:flex-end;gap:14px;padding:0 0 22px}.vcc-progress{color:var(--muted);font-size:.85rem}.vcc-details{margin:0}.vcc-details dt{font-size:.75rem;color:var(--muted);margin-bottom:8px}.vcc-details dd{margin:0 0 18px;white-space:pre-wrap;overflow-wrap:anywhere}.vcc-preserve{white-space:pre-wrap;overflow-wrap:anywhere}.vcc-filter-grid{display:grid;grid-template-columns:130px minmax(180px,1fr) 160px 160px auto;gap:14px;align-items:end}
@media(max-width:1100px){.vcc-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.vcc-fields,.vcc-type-grid,.vcc-filter-grid{grid-template-columns:1fr}.vcc-body,.vcc-type-grid{padding:18px}.vcc-full{grid-column:auto}.vcc-navigation>.button{flex:1}.vcc-choices label{padding:12px 18px}}
.vfl-attachment-field input[type=file] {
    padding: 8px;
}

.vfl-attachment-link {
    display: block;
    max-width: 220px;
    overflow: hidden;
    color: var(--primary);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vfl-attachment-link + .vfl-attachment-link {
    margin-top: 5px;
}

/* Percepción al Riesgo · filtros y Curva S */
@media(min-width:1251px){.risk-filter-form{grid-template-columns:140px 140px minmax(175px,.9fr) minmax(190px,1fr) minmax(180px,1fr) auto auto auto;gap:12px}}
.risk-perception-chart-card{margin-top:16px}.risk-perception-legend{flex-wrap:wrap;justify-content:flex-end;white-space:normal}.pdp-chart-legend .risk-apto{background:#15976b}.pdp-chart-legend .risk-recommended{background:#d89a16}.pdp-chart-legend .risk-not-fit{background:#cf344d}.risk-perception-empty{margin:0;padding:32px 18px;color:var(--muted);text-align:center}.risk-perception-bar-svg{width:100%;height:350px}
@media(max-width:700px){.risk-perception-legend{display:grid;gap:8px}.risk-perception-bar-svg{width:820px;height:300px}}
.risk-perception-date-filter{display:grid;grid-template-columns:minmax(220px,1fr) 170px 170px auto auto;gap:12px;align-items:end;padding:14px 20px;background:#f8faff;border-bottom:1px solid var(--line)}.risk-perception-date-filter>div strong,.risk-perception-date-filter>div small{display:block}.risk-perception-date-filter>div strong{color:var(--navy);font-size:.78rem}.risk-perception-date-filter>div small{margin-top:4px;color:var(--muted);font-size:.68rem}.risk-perception-date-filter .field{margin:0}.risk-perception-date-filter input{min-height:42px}.risk-perception-date-filter .button{min-height:42px;justify-content:center}.risk-perception-filter-error{margin:10px 20px 0}
@media(max-width:1000px){.risk-perception-date-filter{grid-template-columns:1fr 1fr}.risk-perception-date-filter>div{grid-column:1/-1}.risk-perception-date-filter .button{width:100%}}
@media(max-width:700px){.risk-perception-date-filter{grid-template-columns:1fr;padding:14px 17px}.risk-perception-date-filter>div{grid-column:auto}}
.pdp-indicator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;align-items:stretch}.pdp-indicator-grid>.panel{min-width:0;height:100%;margin-top:0}.pdp-indicator-grid .pdp-hph-chart-scroll,.pdp-indicator-grid .pdp-trend-scroll{max-width:100%}
.pdp-indicator-grid .pdp-hph-chart{width:100%!important;min-width:700px}.pdp-indicator-grid .risk-perception-date-filter{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) auto auto}.pdp-indicator-grid .risk-perception-date-filter>div{grid-column:1/-1}.pdp-indicator-grid .risk-perception-date-filter .button{white-space:nowrap}
@media(max-width:1200px){.pdp-indicator-grid{grid-template-columns:1fr}}

/* Dashboard RACI · detalle interactivo por fecha */
.pdp-date-selection-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 22px 0}.pdp-date-selection-bar [data-raci-selection]{color:#526b85;font-size:.72rem;font-weight:800}.pdp-date-selection-bar .button:disabled{opacity:.45;cursor:not-allowed}.pdp-date-selector{cursor:pointer;outline:none}.pdp-date-hit-area{fill:transparent}.pdp-report-line{pointer-events:none}.pdp-date-selector .pdp-headcount-bar,.pdp-date-selector .pdp-date-label{transition:fill .18s ease}.pdp-date-selector:hover .pdp-headcount-bar,.pdp-date-selector:focus-visible .pdp-headcount-bar{fill:#0f4f83}.pdp-date-selector:focus-visible .pdp-date-hit-area{fill:#eaf2ff;fill-opacity:.45}.pdp-date-selector.is-selected .pdp-date-hit-area{fill:#dbeafe;fill-opacity:.65}.pdp-date-selector.is-selected .pdp-headcount-bar{fill:#0b4778}.pdp-date-selector.is-selected .pdp-date-label{fill:#0b4778;font-weight:900}.pdp-date-selector.is-selected .pdp-report-point{stroke:#fff;stroke-width:2}
@media(max-width:700px){.pdp-date-selection-bar{align-items:stretch;flex-direction:column;padding:10px 17px 0}.pdp-date-selection-bar .button{width:100%;justify-content:center}}

/* Estadísticas de seguridad · reporte transversal de registros */
.safety-activity-heading{align-items:flex-end;margin-bottom:20px}.safety-activity-panel{padding:0!important;overflow:hidden;margin-bottom:18px}.safety-activity-panel>.section-heading{margin:0;padding:18px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.safety-activity-filters{display:grid;grid-template-columns:150px 150px minmax(190px,.75fr) minmax(220px,1fr) minmax(220px,1fr) auto;gap:14px;align-items:end;padding:20px 22px}.safety-activity-filters .field{margin:0}.safety-activity-filters input,.safety-activity-filters select{min-height:44px}.safety-activity-table{min-width:1180px}.safety-activity-table th{white-space:nowrap;background:#f6f8fc}.safety-activity-table td{vertical-align:middle}.safety-activity-module,.safety-activity-result,.safety-activity-missing{display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;font-size:.67rem;font-weight:900}.safety-activity-module{margin-bottom:7px;color:#245fc7;background:#e7efff}.safety-activity-result{color:#087451;background:#dcf7e9}.safety-activity-missing{color:#a45b00;background:#fff0cb}.safety-activity-results .pagination{padding:16px 20px;border-top:1px solid var(--border)}
@media(max-width:1200px){.safety-activity-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.safety-activity-filters .inline-actions{justify-content:flex-end}}
@media(max-width:760px){.safety-activity-heading{align-items:stretch;flex-direction:column}.safety-activity-heading>.button{width:100%;justify-content:center}.safety-activity-filters{grid-template-columns:1fr;padding:17px}.safety-activity-filters .inline-actions{display:grid;grid-template-columns:1fr}.safety-activity-filters .button{width:100%;justify-content:center}}

/* Operaciones · Órdenes de OT */
.operations-heading{align-items:center}.operations-ot-card,.operations-ot-history,.operations-ot-edit-card{overflow:hidden}.operations-ot-card{margin-bottom:18px}.operations-ot-form{padding:0 20px 20px}.operations-ot-rows{display:grid;gap:12px}.operations-ot-row{display:grid;grid-template-columns:64px repeat(5,minmax(130px,1fr));gap:12px;align-items:start;padding:14px;border:1px solid #dbe4f0;border-radius:14px;background:#fbfdff}.operations-ot-row-number{display:flex;grid-row:span 2;align-items:center;justify-content:center;gap:5px;min-height:44px;border-radius:10px;background:#eaf2ff;color:#2563eb;font-size:12px;font-weight:700}.operations-ot-row-number strong{font-size:15px}.operations-ot-description{grid-column:span 3}.operations-ot-description textarea{min-height:72px;resize:vertical}.operations-ot-remove{align-self:end;margin-bottom:1px}.operations-ot-actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.operations-ot-filters{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(260px,1.6fr) auto auto;gap:12px;align-items:end;padding:0 20px 18px}.operations-ot-filter-search{min-width:0}.operations-ot-number-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eaf2ff;color:#1d4ed8;font-weight:800;white-space:nowrap}.operations-ot-table-description{min-width:260px;white-space:normal;line-height:1.45}.operations-ot-edit-card{max-width:900px;margin:0 auto}.operations-ot-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px}.operations-ot-edit-description,.operations-ot-edit-actions{grid-column:1/-1}.operations-ot-edit-actions{display:flex;justify-content:flex-end;gap:12px}
@media(max-width:1200px){.operations-ot-row{grid-template-columns:54px repeat(2,minmax(160px,1fr))}.operations-ot-description{grid-column:2/-1}.operations-ot-remove{grid-column:-2/-1}.operations-ot-filters{grid-template-columns:repeat(2,minmax(150px,1fr))}.operations-ot-filter-search{grid-column:1/-1}}
@media(max-width:720px){.operations-ot-row{grid-template-columns:1fr}.operations-ot-row-number,.operations-ot-description,.operations-ot-remove{grid-column:auto}.operations-ot-row-number{grid-row:auto}.operations-ot-remove{width:100%}.operations-ot-actions,.operations-ot-edit-actions{flex-direction:column}.operations-ot-actions .button,.operations-ot-edit-actions .button{width:100%;justify-content:center}.operations-ot-filters,.operations-ot-edit-form{grid-template-columns:1fr}.operations-ot-filter-search,.operations-ot-edit-description,.operations-ot-edit-actions{grid-column:auto}}

/* Operaciones · Registro de actividades */
.operations-status,.operations-risk,.operations-activity-type{display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;font-size:.68rem;font-weight:900;white-space:nowrap}.operations-status.pending{color:#9a5a00;background:#fff0cb}.operations-status.rescheduled{color:#8a4b08;background:#ffedd5}.operations-status.in_progress{color:#245fc7;background:#e7efff}.operations-status.completed{color:#087451;background:#dcf7e9}.operations-status.cancelled{color:#ad1f37;background:#ffe1e7}.operations-status.not_required{color:#52627a;background:#e9eef5}.operations-activity-warning{display:flex;align-items:center;justify-content:space-between;gap:16px}.operations-activity-warning a{font-weight:900}.operations-activity-list{padding:0!important;overflow:hidden}.operations-activity-list>.section-heading{margin:0;padding:18px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8faff,#eef4ff)}.operations-activity-filters{display:grid;grid-template-columns:145px 145px minmax(160px,.7fr) minmax(180px,.8fr) minmax(220px,1.2fr) auto auto;gap:12px;align-items:end;padding:18px 20px;border-bottom:1px solid var(--border)}.operations-activity-filters .field{margin:0}.operations-activity-search{min-width:0}.operations-activity-table{min-width:2100px}.operations-activity-table th{white-space:nowrap;background:#f6f8fc}.operations-activity-table td{vertical-align:middle}.operations-activity-type{color:#245fc7;background:#e7efff}.operations-risk.low{color:#087451;background:#dcf7e9}.operations-risk.medium{color:#9a5a00;background:#fff0cb}.operations-risk.high{color:#ad1f37;background:#ffe1e7}.operations-activity-description,.operations-activity-comment{min-width:240px;max-width:380px;white-space:normal;line-height:1.45}.operations-photo-stack{display:flex;min-width:90px;gap:5px;flex-wrap:wrap}.operations-photo-stack img{display:block;width:42px;height:42px;border-radius:8px;object-fit:cover;border:1px solid #cbd8e8}.operations-activity-dialog{width:min(1120px,calc(100% - 30px));max-width:none;max-height:calc(100vh - 28px);padding:0;border:0;border-radius:18px;background:transparent}.operations-activity-dialog::backdrop{background:rgba(8,24,45,.74);backdrop-filter:blur(3px)}.operations-activity-modal-card{overflow:hidden;border:1px solid #cbd8e8;border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.38)}.operations-activity-modal-card>header,.operations-activity-modal-card>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#f7f9fc}.operations-activity-modal-card>header{border-bottom:1px solid #dce5ef}.operations-activity-modal-card>header h3{margin:3px 0 0}.operations-activity-modal-card>footer{justify-content:flex-end;border-top:1px solid #dce5ef}.operations-activity-modal-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;max-height:calc(100vh - 190px);overflow-y:auto;padding:20px}.operations-activity-modal-body .field{margin:0;min-width:0}.operations-activity-modal-body input,.operations-activity-modal-body select,.operations-activity-modal-body textarea{width:100%;box-sizing:border-box}.operations-activity-modal-body input[readonly]{background:#f2f6fb;color:#516176}.operations-activity-errors,.operations-auto-fields,.operations-modal-wide{grid-column:1/-1}.operations-activity-errors{margin:0}.operations-activity-errors ul{margin:8px 0 0;padding-left:18px}.operations-auto-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.operations-auto-fields>div{padding:12px 14px;border:1px solid #cbdaf0;border-radius:10px;background:#f2f7ff}.operations-auto-fields small,.operations-auto-fields strong{display:block}.operations-auto-fields small{margin-bottom:4px;color:#64778f;font-size:.67rem;text-transform:uppercase}.operations-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.operations-config-card{padding:0!important;overflow:hidden}.operations-config-card>.section-heading{margin:0;padding:17px;border-bottom:1px solid var(--border);background:#f6f9fd}.operations-config-create{display:grid;grid-template-columns:minmax(0,1fr) 80px auto;gap:10px;align-items:end;padding:16px;border-bottom:1px solid var(--border)}.operations-config-create .field{margin:0}.operations-config-list{display:grid;gap:9px;padding:16px}.operations-config-row{display:grid;grid-template-columns:minmax(0,1fr) 70px auto auto;gap:8px;align-items:center}.operations-config-row input[type=text],.operations-config-row input[type=number]{min-width:0;padding:9px 10px}.operations-config-active{display:flex;align-items:center;gap:5px;font-size:.72rem;font-weight:800}.operations-config-active input{width:16px;height:16px}
@media(max-width:1200px){.operations-activity-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-activity-search{grid-column:1/-1}.operations-activity-modal-body{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-config-grid{grid-template-columns:1fr}}
@media(min-width:1201px){.operations-modal-half{grid-column:span 2}}
@media(max-width:700px){.operations-heading{align-items:stretch;flex-direction:column}.operations-heading>.button{width:100%;justify-content:center}.operations-activity-warning{align-items:flex-start;flex-direction:column}.operations-activity-filters,.operations-activity-modal-body{grid-template-columns:1fr}.operations-activity-search,.operations-activity-errors,.operations-auto-fields,.operations-modal-wide{grid-column:auto}.operations-auto-fields{grid-template-columns:1fr}.operations-activity-modal-card>footer{display:grid;grid-template-columns:1fr 1fr}.operations-activity-modal-card>footer .button{justify-content:center}.operations-config-create,.operations-config-row{grid-template-columns:1fr}.operations-config-row .button{justify-content:center}}
.operations-activity-table-wrap { display: block; box-sizing: border-box; width: 100%; max-width: 100%; overflow-x: auto; scrollbar-gutter: stable; }
.operations-config-row input[type="text"],
.operations-config-row input[type="number"] {
    box-sizing: border-box;
    width: 100%;
    min-height: 40px;
    padding: 9px 11px;
    color: var(--navy);
    background: #fff;
    border: 1px solid #cfdaea;
    border-radius: 9px;
    font: inherit;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.operations-config-row input[type="text"]:hover,
.operations-config-row input[type="number"]:hover { border-color: #aebfd4; }
.operations-config-row input[type="text"]:focus,
.operations-config-row input[type="number"]:focus {
    border-color: var(--blue);
    background: #fbfdff;
    box-shadow: 0 0 0 3px var(--blue-soft);
}
.operations-config-row input[type="checkbox"] { accent-color: var(--blue); cursor: pointer; }
.operations-activity-table { min-width: 1120px; }
.operations-detail-dialog {
    width: min(980px, calc(100% - 30px));
    max-width: none;
    max-height: calc(100vh - 28px);
    padding: 0;
    border: 0;
    border-radius: 18px;
    background: transparent;
}
.operations-detail-dialog::backdrop { background: rgba(8, 24, 45, .74); backdrop-filter: blur(3px); }
.operations-detail-card { overflow: hidden; border: 1px solid #cbd8e8; border-radius: 18px; background: #fff; box-shadow: 0 30px 90px rgba(0, 0, 0, .38); }
.operations-detail-card > header,
.operations-detail-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 20px; background: #f7f9fc; }
.operations-detail-card > header { border-bottom: 1px solid #dce5ef; }
.operations-detail-card > header h3 { margin: 3px 0 0; }
.operations-detail-card > footer { justify-content: flex-end; border-top: 1px solid #dce5ef; }
.operations-detail-body { display: grid; gap: 16px; max-height: calc(100vh - 180px); overflow-y: auto; padding: 20px; }
.operations-detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; padding: 1px; border-radius: 12px; background: #dce5ef; }
.operations-detail-grid > div { min-width: 0; padding: 12px 14px; background: #f8faff; }
.operations-detail-grid small,
.operations-detail-grid strong,
.operations-detail-text small,
.operations-detail-photos > small { display: block; }
.operations-detail-grid small,
.operations-detail-text small,
.operations-detail-photos > small { margin-bottom: 5px; color: #64778f; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.operations-detail-grid strong { overflow-wrap: anywhere; color: var(--navy); font-size: .78rem; }
.operations-detail-text { padding: 14px 16px; border: 1px solid #dce5ef; border-radius: 11px; background: #fbfcfe; }
.operations-detail-text p { margin: 0; color: #31465f; line-height: 1.55; white-space: pre-wrap; }
.operations-detail-photos { padding: 14px 16px; border: 1px solid #dce5ef; border-radius: 11px; }
.operations-detail-photos > div { display: flex; gap: 10px; flex-wrap: wrap; }
.operations-detail-photos img { display: block; width: 110px; height: 82px; object-fit: cover; border: 1px solid #cbd8e8; border-radius: 10px; transition: transform .18s ease, box-shadow .18s ease; }
.operations-detail-photos a:hover img { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(23, 54, 93, .16); }
.operations-detail-status-form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 12px; align-items: end; padding: 16px; border: 1px solid #bad4f8; border-radius: 12px; background: #f2f7ff; }
.operations-detail-status-form .field { margin: 0; }
@media(max-width:800px){.operations-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.operations-detail-grid,.operations-detail-status-form{grid-template-columns:1fr}.operations-detail-status-form .button{width:100%;justify-content:center}.operations-detail-photos img{width:90px;height:70px}}

/* Contabilidad · evidencia del depósito */
.accounting-deposit-panel{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,280px) minmax(270px,.8fr);gap:20px;align-items:center;margin-top:18px;padding:22px 24px!important}
.accounting-deposit-copy h3{margin:5px 0}.accounting-deposit-copy p{margin:0 0 8px;color:var(--muted)}.accounting-deposit-copy small{color:#53647b}
.accounting-deposit-panel form{display:grid;gap:12px}.accounting-deposit-panel form .field{margin:0}.accounting-deposit-panel form .button{justify-content:center}
.accounting-deposit-preview{position:relative;display:block;height:150px;overflow:hidden;border:1px solid #cbd8eb;border-radius:13px;background:#f4f7fb}
.accounting-deposit-preview img{width:100%;height:100%;object-fit:cover}.accounting-deposit-preview span{position:absolute;left:8px;right:8px;bottom:8px;padding:7px 10px;border-radius:8px;background:rgba(14,35,63,.82);color:#fff;text-align:center;font-size:.72rem;font-weight:800}
.accounting-deposit-preview.is-pdf{display:grid;place-items:center;align-content:center;gap:7px;padding:18px 14px 48px;text-align:center}.accounting-deposit-preview.is-pdf>b{display:grid;place-items:center;width:62px;height:70px;border-radius:9px;background:#d73a4e;color:#fff;font-size:1.05rem;box-shadow:0 8px 18px rgba(180,34,55,.2)}.accounting-deposit-preview.is-pdf>small{max-width:100%;overflow:hidden;color:#43566f;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.accounting-deposit-panel{grid-template-columns:1fr}}

/* Administracion - agente corporativo */
.agent-token-panel{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr);gap:20px;align-items:center;border-color:#9ed9c2;background:#effbf6}
.agent-token-panel p{margin:4px 0 0;color:#50677a}.agent-token-copy{display:flex;gap:10px}.agent-token-copy input{min-width:0;flex:1;font-family:Consolas,monospace}
.agent-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.agent-summary{display:grid;gap:7px;padding:20px!important}.agent-summary span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.agent-summary strong{color:var(--navy);font-size:1.45rem}
.agent-device-panel,.agent-report-panel,.agent-detail-section{margin-top:18px}.agent-device-create{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end;padding:18px}.agent-device-create .field,.agent-device-edit .field,.agent-filters .field{margin:0}
.agent-api-endpoint{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 18px;padding:13px 15px;border:1px solid #cfe0f4;border-radius:11px;background:#f4f8fd}.agent-api-endpoint small,.agent-api-endpoint code{display:block}.agent-api-endpoint small{margin-bottom:4px;color:#64778f;font-weight:800;text-transform:uppercase}.agent-api-endpoint code{overflow-wrap:anywhere;color:#164c86}.agent-api-endpoint>span{color:#53667d;font-size:.75rem}.agent-api-endpoint>span code{display:inline}
.agent-device-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 18px 18px}.agent-device-card{display:grid;gap:13px;padding:16px;border:1px solid #dce5ef;border-radius:13px;background:#fbfcff}.agent-device-title{display:flex;justify-content:space-between;gap:12px;align-items:start}.agent-device-title small{display:block;margin-top:4px;color:var(--muted)}.agent-state,.agent-capture-state{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.68rem;font-weight:800}.agent-state.active,.agent-capture-state.yes{background:#dff7ec;color:#08764d}.agent-state.inactive,.agent-capture-state.no{background:#f0f2f5;color:#647184}.agent-device-edit{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto auto;gap:10px;align-items:end}.agent-check{display:flex;gap:7px;align-items:center;min-height:42px;font-size:.78rem;font-weight:700}.agent-device-meta{display:flex;gap:12px;flex-wrap:wrap;color:#64778f;font-size:.7rem}
.agent-filters{display:grid;grid-template-columns:150px 150px minmax(180px,.7fr) minmax(220px,1fr) auto auto;gap:12px;align-items:end;padding:18px}.agent-report-panel>.table-responsive{border-top:1px solid #e3eaf3}.agent-report-panel table{min-width:1100px}
.agent-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.agent-detail-card{min-width:0}.agent-definition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:0 18px 18px;background:#dfe7f0}.agent-definition-list>div{padding:13px;background:#fff}.agent-definition-list dt{color:#697b91;font-size:.68rem;font-weight:800;text-transform:uppercase}.agent-definition-list dd{margin:5px 0 0;color:var(--navy);font-weight:700}.agent-screenshot-link{display:block;margin:0 18px 12px;overflow:hidden;border:1px solid #d7e1ec;border-radius:12px;background:#eff3f8}.agent-screenshot-link img{display:block;width:100%;max-height:330px;object-fit:contain}.agent-detail-card>small,.agent-restricted{margin:0 18px 18px}.agent-restricted{padding:14px;border-radius:10px;background:#fff2f2;color:#a42c3e}.agent-detail-section table{min-width:680px}.agent-path{max-width:340px;overflow-wrap:anywhere}
@media(max-width:1100px){.agent-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agent-device-list,.agent-detail-grid{grid-template-columns:1fr}.agent-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.agent-token-panel,.agent-device-create,.agent-device-edit,.agent-filters{grid-template-columns:1fr}.agent-token-copy,.agent-api-endpoint{flex-direction:column;align-items:stretch}.agent-summary-grid{grid-template-columns:1fr 1fr}.agent-device-list{padding-inline:12px}.agent-definition-list{grid-template-columns:1fr}.agent-filters .button,.agent-device-create .button{justify-content:center}}
@media(max-width:440px){.agent-summary-grid{grid-template-columns:1fr}}

/* Equipos - selector buscable de trabajador */
.equipment-worker-select{position:relative}
.equipment-worker-select>select[data-worker-native]{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.equipment-worker-trigger{display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--muted);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}
.equipment-worker-trigger:hover{border-color:#aebfd4}.equipment-worker-trigger:focus-visible,.equipment-worker-select.is-open .equipment-worker-trigger{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.equipment-worker-trigger.has-value{color:var(--text)}
.equipment-worker-chevron{font-size:1.1rem;transition:transform .18s ease}.equipment-worker-select.is-open .equipment-worker-chevron{transform:rotate(180deg)}
.equipment-worker-dropdown{position:absolute;z-index:40;top:calc(100% + 7px);left:0;right:0;overflow:hidden;padding:9px;border:1px solid #c9d7e8;border-radius:11px;background:#fff;box-shadow:0 18px 42px rgba(20,45,78,.18)}
.equipment-worker-search-wrap{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #cbd8e8;border-radius:8px;background:#f8faff}.equipment-worker-search-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.equipment-worker-search-wrap>span{color:#61758d;font-size:1.05rem}.equipment-worker-search-wrap input{width:100%;min-height:40px;padding:8px 0;border:0!important;background:transparent!important;box-shadow:none!important;outline:none}
.equipment-worker-options{display:grid;max-height:260px;overflow-y:auto;margin-top:7px}.equipment-worker-option{width:100%;padding:10px 12px;border:0;border-radius:7px;background:#fff;color:var(--text);font:inherit;text-align:left;cursor:pointer}.equipment-worker-option:hover,.equipment-worker-option:focus-visible{background:var(--blue-soft);color:var(--blue);outline:none}.equipment-worker-option[aria-selected="true"]{background:#e7f0ff;color:var(--blue);font-weight:700}
.equipment-worker-empty{margin:8px 0 0;padding:12px;color:var(--muted);font-size:.78rem;text-align:center}
