/*
 * dasaar · adaptación visual de Tabler 1.7.1.
 * Base: https://github.com/tabler/tabler · MIT, ver TABLER-LICENSE.txt.
 * Se carga después de los estilos existentes. Las reglas son solo de pantalla:
 * los formatos de impresión y exportación conservan sus estilos originales.
 */
@media screen {
  :root {
    --tn-font: "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    --tn-sidebar-width: 272px;
    --tn-navy: #152b49;
    --tn-navy-deep: #101f36;
    --tn-teal: #6366e8;
    --tn-teal-dark: #4d4fc8;
    --tn-teal-soft: #eeedff;
    --tn-ink: #25334a;
    --tn-muted: #66778f;
    --tn-line: #dce3ee;
    --tn-bg: #f3f5fa;
    --tn-white: #ffffff;
    --tn-surface-soft: #f7f9fd;
    --tn-shadow: 0 4px 22px rgb(25 42 70 / 5%);
    --tn-radius: 16px;
    --tblr-primary: #6366e8;
    --tblr-primary-rgb: 99, 102, 232;
    --tblr-body-font-family: var(--tn-font);
    --ink: var(--tn-ink); --muted: var(--tn-muted); --green: var(--tn-teal);
    --green-soft: var(--tn-teal-soft); --gold: #a5b4fc; --paper: var(--tn-bg); --line: var(--tn-line);
    color-scheme: light;
  }
  :root[data-bs-theme="dark"] {
    --tn-navy: #e4eaf5; --tn-ink: #dce5f4; --tn-muted: #a5b4cb;
    --tn-line: #33445f; --tn-bg: #101827; --tn-white: #1b283c;
    --tn-surface-soft: #202f46; --tn-teal: #a5a5ff; --tn-teal-dark: #c4c4ff;
    --tn-teal-soft: #323559; --tn-shadow: 0 5px 24px rgb(0 0 0 / 13%);
    --tblr-primary: #a5a5ff; --tblr-primary-rgb: 165,165,255;
    --tblr-bg-surface: var(--tn-white); --tblr-body-color: var(--tn-ink); --tblr-body-bg: var(--tn-bg);
    color-scheme: dark;
  }
  .tn-app, .tn-login, .tn-gp { background: var(--tn-bg) !important; color: var(--tn-ink); font-family: var(--tn-font); }
  .tn-app *, .tn-login *, .tn-gp * { scrollbar-width: thin; scrollbar-color: #adb9cc transparent; }
  .tn-app :focus-visible, .tn-login :focus-visible, .tn-gp :focus-visible { outline: 3px solid #8686f5 !important; outline-offset: 3px; }
  .tn-app a { transition: color .16s ease, background-color .16s ease; }
  .tn-app button, .tn-app input[type="submit"], .tn-app input[type="button"], .tn-login input[type="submit"], .tn-gp .button { transition: background-color .16s ease, box-shadow .16s ease, border-color .16s ease, transform .16s ease; }
  .tn-app button:active, .tn-app input[type="submit"]:active, .tn-gp .button:active { transform: translateY(1px); }
  .tn-app .tn-sidebar {
    width: var(--tn-sidebar-width); background: linear-gradient(180deg,#152b49 0%,#101e35 100%);
    padding: 24px 16px 20px; border-right: 1px solid #263b58; color: #e2e9f4;
    scrollbar-color: #52627d transparent; box-shadow: 8px 0 30px rgb(22 36 57 / 5%);
    transition: width .2s ease, transform .2s ease;
  }
  .tn-sidebar .tn-brand { margin: 0 8px 24px; min-height: 48px; gap: 12px; }
  .tn-sidebar .tn-brand-symbol { background: linear-gradient(135deg,#7d7af4,#4dc8d8); color: white; border-radius: 12px; box-shadow: 0 6px 18px #080f2733; }
  .tn-sidebar .tn-brand-name { font-size: 21px; letter-spacing: 1.6px; }
  .tn-sidebar .tn-brand-caption { color: #aabdd7; letter-spacing: .3px; }
  .tn-sidebar .tn-search-field { margin: 0 1px 22px; }
  .tn-sidebar #tn-module-search { border-color: #3b4e6b; background: #203653; color: #fff; border-radius: 9px; min-height: 42px; }
  .tn-sidebar #tn-module-search:focus { border-color: #a5a5ff; box-shadow: 0 0 0 3px #8686f52b; }
  .tn-sidebar #tn-module-search::placeholder, .tn-sidebar .tn-search-hint { color: #afc0d7; }
  .tn-sidebar .tn-nav-group { margin-bottom: 18px; }
  .tn-sidebar .tn-nav-group-title, .tn-sidebar .tn-nav-group h3 { color: #9aafcc; font-size: 10px; letter-spacing: 1.4px; margin: 0 7px 6px; }
  .tn-sidebar .tn-nav-link, .tn-sidebar .tn-nav-link:visited { color: #cfdbec; min-height: 44px; padding: 10px 11px; border-radius: 9px; font-size: 13px; font-weight: 500; }
  .tn-sidebar .tn-nav-link:hover { background: #263c5a; color: #fff; }
  .tn-sidebar .tn-nav-link.is-active, .tn-sidebar .tn-nav-link[aria-current="page"] { background: linear-gradient(100deg,#4d4b91,#303e67); color: white; box-shadow: inset 3px 0 #aaa5ff; font-weight: 650; }
  .tn-sidebar .tn-nav-icon { color: #9db5d3; }
  .tn-sidebar .tn-nav-link.is-active .tn-nav-icon { color: #d1cfff; }
  .tn-sidebar .tn-star { color: #9bacc6; }
  .tn-sidebar .tn-star:hover { background: #344b6c; color: #fff; }
  .tn-sidebar .tn-star.is-favorite, .tn-sidebar .tn-star[aria-pressed="true"] { color: #ffd38c; }
  .tn-sidebar .tn-sidebar-footer { border-top-color: #30445f; color: #9dafca; margin-top: 18px; }
  .tn-sidebar .tn-sidebar-footer strong { color: #d5e1f1; }
  .tn-group-toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 7px 4px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
  .tn-group-toggle:hover { color: #fff; }
  .tn-group-chevron { display: inline-block; transition: transform .16s ease; font-size: 14px; }
  .tn-group-toggle[aria-expanded="false"] .tn-group-chevron { transform: rotate(-90deg); }
  .tn-tabler-icon { width: 20px; height: 20px; stroke-width: 1.8; vertical-align: middle; flex-shrink: 0; }
  .tn-workspace { transition: margin-left .2s ease; }
  .tn-app .tn-topbar { min-height: 72px; background: var(--tn-white); color: var(--tn-ink); padding: 14px 30px; border-bottom-color: var(--tn-line); box-shadow: 0 2px 8px rgb(25 42 70 / 2%); }
  .tn-topbar .tn-breadcrumb, .tn-topbar .tn-breadcrumb a { color: var(--tn-muted); font-size: 12px; }
  .tn-topbar .tn-breadcrumb strong { color: var(--tn-ink); }
  .tn-app .tn-icon-button { color: var(--tn-muted); border-radius: 9px; min-width: 40px; min-height: 40px; }
  .tn-app .tn-icon-button:hover { background: var(--tn-surface-soft); color: var(--tn-teal-dark); border-color: var(--tn-line); }
  .tn-app .tn-icon-button[aria-pressed="true"] { background: var(--tn-teal-soft); color: var(--tn-teal-dark); border-color: var(--tn-line); }
  .tn-app .tn-user-chip { color: var(--tn-ink); border-left-color: var(--tn-line); }
  .tn-app .tn-avatar, .tn-app .tn-user-avatar { background: var(--tn-teal-soft); color: var(--tn-teal-dark); }
  .tn-app .tn-page-heading { padding: 28px 30px 22px; }
  .tn-app #tn-page-title { font-size: clamp(25px,2.4vw,33px); letter-spacing: -.75px; color: var(--tn-ink); }
  .tn-app .tn-eyebrow { color: var(--tn-muted); font-size: 10px; letter-spacing: 1.5px; }
  .tn-app #tn-favorite-toggle { background: var(--tn-white); color: var(--tn-muted); border-color: var(--tn-line); border-radius: 9px; }
  .tn-app #tn-favorite-toggle[aria-pressed="true"] { background: #fff6de; border-color: #e5c573; color: #77521c; }
  .tn-app .tn-content { margin: 0 30px 24px; padding: 24px; background: var(--tn-white); border-color: var(--tn-line); border-radius: 15px; box-shadow: var(--tn-shadow); color: var(--tn-ink); }
  .tn-app .tn-content.tn-dashboard-content, .tn-app .tn-content:has(> #tn-dashboard) { background: transparent; padding: 0; border: 0; box-shadow: none; }
  .tn-app .tn-footer, .tn-app .tn-footer [id$="Label2"] { color: var(--tn-muted) !important; }
  .tn-app .tn-workspace > .tn-footer { padding-left: 30px; padding-right: 30px; }
  .tn-app .tn-mobile-direct:not([hidden]) { margin: 0 30px 20px; padding: 16px 18px; background: var(--tn-white); border-color: var(--tn-line); border-radius: 14px; box-shadow: var(--tn-shadow); }
  .tn-app .tn-mobile-direct-heading { color: var(--tn-ink); font-size: 14px; }
  .tn-app .tn-mobile-direct-heading a { color: var(--tn-teal-dark); }
  .tn-app .tn-mobile-direct-list a { color: var(--tn-ink); background: var(--tn-surface-soft); border-color: var(--tn-line); border-radius: 9px; font-size: 12px; }
  .tn-app .tn-mobile-direct-list a:hover { color: var(--tn-teal-dark); background: var(--tn-teal-soft); border-color: #acaaf2; }
  .tn-app .tn-mobile-direct-list a[aria-current="page"] { background: var(--tn-teal-soft); color: var(--tn-teal-dark); border-color: #9e9ce7; box-shadow: inset 3px 0 #7774dd; }
  .tn-app .tn-content :is(input[type="text"],input[type="password"],input[type="number"],input[type="date"],input[type="search"],input[type="email"],select,textarea) {
    min-height: 40px; max-width: 100%; border: 1px solid var(--tn-line) !important; border-radius: 8px; background-color: var(--tn-white) !important; color: var(--tn-ink) !important; font: 13px/1.45 var(--tn-font) !important; box-shadow: 0 1px 2px rgb(21 43 73 / 3%); padding: 8px 11px;
  }
  .tn-app .tn-content :is(input[type="text"],select,textarea):focus { border-color: #8c88ec !important; box-shadow: 0 0 0 3px #8686f526; outline: none; }
  .tn-app .tn-content :is(input[readonly],textarea[readonly]) { background: var(--tn-surface-soft) !important; color: var(--tn-muted) !important; }
  .tn-app .tn-content :is(input[type="checkbox"],input[type="radio"]) { accent-color: #6366e8; }
  .tn-app .tn-content :is(input[type="submit"],input[type="button"]), .tn-app .tn-content button:not(.tn-star):not(.tn-icon-button):not(.tn-chart-bar) {
    min-height: 40px; border-radius: 8px; border: 1px solid #6260d8 !important; background-color: #6260d8; color: white; font: 600 13px/1.4 var(--tn-font) !important; padding: 9px 15px; box-shadow: 0 2px 4px #3b34a016;
  }
  .tn-app .tn-content :is(input[type="submit"],input[type="button"]):hover, .tn-app .tn-content button:not(.tn-star):not(.tn-icon-button):not(.tn-chart-bar):hover { background-color: #4c4bb7; border-color: #4c4bb7 !important; box-shadow: 0 3px 9px #3b34a028; }
  .tn-app .tn-content :is(input[type="submit"],input[type="button"],button):disabled { opacity: .55; cursor: not-allowed; }
  .tn-app .tn-content a { color: var(--tn-teal-dark); }
  .tn-app .tn-content a:hover { color: var(--tn-teal); }
  .tn-app .tn-content a:is([id*="lnkNuevo"],[id*="lnkNew"],[id*="LnkNew"],[id$="_lnknew"]) { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 15px; color: var(--tn-teal-dark) !important; border: 1px solid var(--tn-line); border-radius: 8px; background: var(--tn-teal-soft); text-decoration: none; }
  .tn-app .tn-content :is(fieldset,.tn-panel) { border-color: var(--tn-line); background-color: var(--tn-white); border-radius: 12px; }
  .tn-app .tn-content legend { color: var(--tn-ink); font-size: 14px; }
  .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]), .tn-app .tn-data-table {
    border-collapse: separate !important; border-spacing: 0; border: 1px solid var(--tn-line) !important; border-radius: 10px; background: var(--tn-white); color: var(--tn-ink); font: 13px/1.5 var(--tn-font) !important;
  }
  .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]) > tbody > tr > th, .tn-app .tn-data-table th { background: var(--tn-surface-soft) !important; color: var(--tn-muted) !important; border: 0 !important; border-bottom: 1px solid var(--tn-line) !important; padding: 12px 11px; font: 650 11px/1.45 var(--tn-font) !important; text-align: left; letter-spacing: .25px; }
  .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]) > tbody > tr > td, .tn-app .tn-data-table td { background: var(--tn-white); color: var(--tn-ink); border: 0 !important; border-bottom: 1px solid var(--tn-line) !important; padding: 11px; font-family: var(--tn-font) !important; font-size: 13px !important; }
  .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]) > tbody > tr:hover > td, .tn-app .tn-data-table tr:hover > td { background-color: var(--tn-surface-soft); }
  .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]) td a { font-weight: 600; }
  .tn-app .tn-content [id$="_pBuscar"] > div + table > tbody > tr:first-child { background: var(--tn-surface-soft); border-color: var(--tn-line); }
  .tn-app .tn-direct-options button, .tn-app .tn-content .tn-direct-options button { background: var(--tn-white) !important; color: var(--tn-ink) !important; border-color: var(--tn-line) !important; box-shadow: none; }
  .tn-app .tn-direct-options button[aria-pressed="true"], .tn-app .tn-content .tn-direct-options button[aria-pressed="true"] { background: var(--tn-teal-soft) !important; border-color: #8c88ec !important; color: var(--tn-teal-dark) !important; }
  .tn-app .tn-module-card, .tn-app .tn-home-panel { background: var(--tn-white); border-color: var(--tn-line); border-radius: 13px; box-shadow: var(--tn-shadow); }
  .tn-app .tn-module-card:hover { border-color: #aaa6ed; box-shadow: 0 5px 20px #544dae14; transform: translateY(-1px); }
  .tn-app .tn-card-title, .tn-app .tn-card-title a, .tn-app .tn-section-heading h2 { color: var(--tn-ink); }
  .tn-app .tn-card-group, .tn-app .tn-card-description, .tn-app .tn-empty { color: var(--tn-muted); }
  .tn-app .tn-card-icon { background: var(--tn-teal-soft); color: var(--tn-teal-dark); }
  .tn-app .tn-hero { background: linear-gradient(115deg,#1a2e53,#403c77); border-color: #4c4b80; color: white; border-radius: 16px; box-shadow: 0 8px 22px #202e5320; }
  .tn-app .tn-hero h2, .tn-app .tn-hero .tn-eyebrow { color: #fff; }
  .tn-app .tn-hero p { color: #c8d3e8; }
  .tn-app .tn-hero .tn-primary-button { background: #fff; color: #393a81; border-color: #fff; border-radius: 8px; }
  .tn-app .tn-art-core { background: linear-gradient(135deg,#9692ff,#6ad4e1); color: #fff; }
  .tn-app .tn-art-label { background: #263d63; color: #d7e2f4; border-color: #53658a; }
  .tn-app .tn-art-orbit { border-color: #7887b14d; }
  .tn-app .tn-section-heading h2 { font-size: 19px; letter-spacing: -.35px; }
  .tn-app .tn-dashboard-stat { background: var(--tn-teal-soft); color: var(--tn-teal-dark); }
  .tn-app .tn-home-panels { gap: 18px; }
  .tn-app .tn-home-panel { padding: 21px; }
  .tn-app #tn-dashboard > .tn-data-dashboard { order: -2; margin: 0 0 4px; }
  .tn-data-dashboard { min-width: 0; color: var(--tn-ink); }
  .tn-data-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; margin-bottom: 19px; }
  .tn-data-heading h2 { margin: 0 0 5px; color: var(--tn-ink); font-size: 21px; letter-spacing: -.45px; }
  .tn-data-heading p { margin: 0; color: var(--tn-muted); font-size: 12px; line-height: 1.6; }
  .tn-dashboard-toolbar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 9px; }
  .tn-dashboard-toolbar label { color: var(--tn-muted); font-size: 11px; font-weight: 650; }
  .tn-dashboard-toolbar label select { display: block; margin-top: 5px; min-width: 190px; }
  .tn-app .tn-content .tn-dashboard-toolbar button { min-height: 40px; }
  .tn-kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; margin-bottom: 20px; }
  .tn-kpi-card { position: relative; overflow: hidden; min-width: 0; min-height: 157px; padding: 22px; border: 0 !important; border-radius: 15px; color: white; background: linear-gradient(115deg,#7971e8,#5952bc); box-shadow: 0 6px 18px #44358b20; }
  .tn-kpi-card::after { content: ""; position: absolute; right: -35px; bottom: -60px; width: 180px; height: 180px; border: 26px solid #ffffff0c; border-radius: 50%; pointer-events: none; }
  .tn-kpi-card small { position: relative; display: block; max-width: calc(100% - 46px); color: #fff; font-size: 12px; line-height: 1.5; font-weight: 600; }
  .tn-kpi-card strong { position: relative; display: block; margin: 11px 0 7px; color: #fff; font-size: clamp(24px,2.3vw,35px); font-weight: 720; line-height: 1.1; letter-spacing: -.9px; font-variant-numeric: tabular-nums; }
  .tn-kpi-card > span:not(.tn-kpi-icon) { position: relative; display: block; color: #ffffffe0; font-size: 11px; line-height: 1.5; }
  .tn-kpi-icon { position: absolute; right: 18px; top: 20px; display: grid; place-items: center; width: 39px; height: 39px; border-radius: 12px; background: #ffffff20; color: #fff; }
  .tn-kpi-icon svg { width: 22px; height: 22px; stroke-width: 1.8; }
  .tn-kpi-purple { background: linear-gradient(115deg,#7770e5,#5450b5); }
  .tn-kpi-blue { background: linear-gradient(115deg,#387fcb,#2b5ea4); }
  .tn-kpi-teal { background: linear-gradient(115deg,#2b9d9a,#217e82); }
  .tn-kpi-amber { background: linear-gradient(115deg,#b77e35,#92602d); }
  .tn-dashboard-charts { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; }
  .tn-chart-card { min-width: 0; padding: 22px; background: var(--tn-white); color: var(--tn-ink); border: 1px solid var(--tn-line); border-radius: 15px; box-shadow: var(--tn-shadow); }
  .tn-chart-card h3 { margin: 0 0 8px; color: var(--tn-ink); font-size: 16px; line-height: 1.4; font-weight: 650; }
  .tn-chart-summary { margin-bottom: 15px; color: var(--tn-muted); font-size: 12px; line-height: 1.6; }
  .tn-hours-chart { position: relative; min-width: 0; overflow-x: auto; padding: 5px 0; }
  .tn-hours-chart svg { display: block; width: 100%; height: auto; min-width: 280px; overflow: visible; font-family: var(--tn-font); }
  .tn-hours-chart svg text { fill: var(--tn-muted); font-family: var(--tn-font); font-size: 12px; }
  .tn-hours-chart svg line { stroke: var(--tn-line); }
  .tn-hours-chart svg [tabindex] { cursor: pointer; transition: opacity .16s ease; }
  .tn-hours-chart svg [tabindex]:hover, .tn-hours-chart svg [tabindex]:focus { opacity: .78; outline: 2px solid #a5a5ff; outline-offset: 3px; }
  .tn-chart-tooltip { position: absolute; z-index: 5; max-width: 260px; padding: 9px 12px; border: 1px solid var(--tn-line); border-radius: 9px; background: var(--tn-white); color: var(--tn-ink); font-size: 12px; line-height: 1.5; box-shadow: 0 6px 22px #101f3630; pointer-events: none; }
  .tn-chart-data { margin-top: 15px; border-top: 1px solid var(--tn-line); padding-top: 12px; color: var(--tn-muted); font-size: 12px; }
  .tn-chart-data summary { display: list-item; color: var(--tn-teal-dark); font-weight: 600; cursor: pointer; }
  .tn-chart-data[open] { overflow-x: auto; }
  .tn-chart-data table { width: 100%; margin-top: 12px; }
  .tn-dashboard-empty, .tn-dashboard-error { display: block; padding: 18px; background: var(--tn-surface-soft); color: var(--tn-muted); border: 1px dashed var(--tn-line); border-radius: 11px; font-size: 13px; }
  .tn-dashboard-error { border-color: #cc9591; }
  .tn-app #tn-dashboard > section[aria-labelledby="tn-modules-title"] { order: 1; margin-top: 22px; }
  .tn-app #tn-dashboard .tn-home-panels { order: 2; margin-top: 22px; }
  .tn-app #tn-dashboard .tn-hero { order: 3; margin-top: 22px; }
  .tn-app .tn-dialog, .tn-app dialog { background: var(--tn-white); color: var(--tn-ink); border: 1px solid var(--tn-line); border-radius: 16px; box-shadow: 0 22px 70px #08112559; }
  .tn-app .tn-dialog h2, .tn-app .tn-dialog strong { color: var(--tn-ink); }
  .tn-app .tn-help-list, .tn-app .tn-help-note { color: var(--tn-muted); }
  .tn-app .modalBackground { background-color: #0b142b !important; opacity: .64 !important; }
  .tn-app :is([id$="_Panel1"],[id$="_PanelExportar"],[id$="_PanelCarta"],[id$="_PanelReporte"]) { border-color: var(--tn-line) !important; background-color: var(--tn-white) !important; color: var(--tn-ink); border-radius: 14px; box-shadow: 0 20px 65px #0811253d; }
  .tn-app :is([id$="_Panel1"],[id$="_PanelExportar"],[id$="_PanelCarta"],[id$="_PanelReporte"]) :is(input[type="text"],select,textarea) { border: 1px solid var(--tn-line) !important; border-radius: 8px; background-color: var(--tn-white) !important; color: var(--tn-ink) !important; min-height: 40px; padding: 8px 11px; }
  .tn-app :is([id$="_Panel1"],[id$="_PanelExportar"],[id$="_PanelCarta"],[id$="_PanelReporte"]) :is(input[type="submit"],input[type="button"]) { background: #6260d8; color: white; border: 1px solid #6260d8; border-radius: 8px; min-height: 40px; padding: 8px 14px; }
  #tn-request-status { position: fixed; bottom: 20px; right: 20px; z-index: 99999; display: flex; align-items: center; gap: 10px; background: var(--tn-white); color: var(--tn-ink); border: 1px solid var(--tn-line); border-radius: 12px; box-shadow: var(--tn-shadow); padding: 13px 18px; font: 13px/1.4 var(--tn-font); }
  #tn-request-status[hidden] { display: none !important; }
  .tn-app [hidden], .tn-login [hidden], .tn-gp [hidden] { display: none !important; }
  .tn-tabler-toast { position: fixed; bottom: 22px; right: 22px; z-index: 99998; display: flex; align-items: center; gap: 12px; max-width: min(420px,calc(100vw - 30px)); padding: 14px 18px; border: 1px solid var(--tn-line); border-left: 3px solid #7774dd; border-radius: 11px; background: var(--tn-white); color: var(--tn-ink); box-shadow: 0 8px 30px #101f3626; font: 13px/1.5 var(--tn-font); }
  .tn-toast-message { min-width: 0; overflow-wrap: anywhere; }
  .tn-request-spinner { width: 16px; height: 16px; border: 2px solid var(--tn-line); border-top-color: #7574e8; border-radius: 50%; animation: tn-tabler-spin .8s linear infinite; }
  @keyframes tn-tabler-spin { to { transform: rotate(360deg); } }
  .tn-request-busy .tn-content { cursor: progress; }
  /* Acceso y pantalla de gestión de personal, que no utilizan la MasterPage. */
  .tn-login { background: radial-gradient(ellipse at 10% 10%,#e8e5ff 0,transparent 50%),var(--tn-bg) !important; }
  .tn-login .tn-login-card, .tn-login .tn-login-form, .tn-login .tn-login-panel { background: var(--tn-white); border-color: var(--tn-line); color: var(--tn-ink); box-shadow: var(--tn-shadow); }
  .tn-login input, .tn-login select { background-color: var(--tn-white) !important; color: var(--tn-ink) !important; border-color: var(--tn-line) !important; border-radius: 8px; }
  .tn-login input[type="submit"], .tn-login button[type="submit"] { background: #6260d8 !important; border-color: #6260d8 !important; color: white !important; }
  .tn-login .tn-login-welcome, .tn-login .tn-login-story { background: linear-gradient(140deg,#152b49,#3c3a75); color: white; }
  .tn-login .tn-login-story h1, .tn-login .tn-login-story .tn-brand { color: #fff; }
  .tn-login .tn-login-story h1 em, .tn-login .tn-login-story .tn-eyebrow { color: #c3bfff; }
  .tn-login .tn-login-story .tn-brand-symbol { background: linear-gradient(135deg,#9692ff,#6ad4e1); color: white; }
  .tn-login .tn-login-story::after { border-color: #8f87cb; box-shadow: 0 0 0 65px #b1a6ff0a,0 0 0 130px #b1a6ff08; }
  .tn-login .tn-login-card label { color: var(--tn-ink); }
  .tn-login .tn-login-actions .tn-secondary-button { background: var(--tn-white) !important; border-color: var(--tn-line) !important; color: var(--tn-muted) !important; }
  .tn-login .tn-login-change-password { color: var(--tn-teal-dark); }
  .tn-gp { --tn-muted: #5c6d85; --muted: var(--tn-muted); font-family: var(--tn-font); }
  :root[data-bs-theme="dark"] .tn-gp { --tn-muted: #a5b4cb; }
  .tn-gp .topbar { background: var(--tn-white); border-bottom-color: var(--tn-line); color: var(--tn-ink); }
  .tn-gp .brand { color: var(--tn-ink); }
  .tn-gp .brand-mark { background: var(--tn-teal-soft); color: var(--tn-teal-dark); border-color: #9997e9; }
  .tn-gp .back-link, .tn-gp .button.secondary { color: var(--tn-teal-dark); background: var(--tn-white); border-color: var(--tn-line); }
  .tn-gp .button.primary { background: #6260d8; color: white; border-color: #6260d8; }
  .tn-gp .button.primary:hover { background: #4c4bb7; }
  .tn-gp .tabs { background: var(--tn-surface-soft); border-bottom-color: var(--tn-line); gap: 5px; }
  .tn-gp .tab { color: var(--tn-muted); }
  .tn-gp .tab.active { background: var(--tn-white); color: var(--tn-teal-dark); border-bottom-color: #7574e8; }
  .tn-gp .tab:hover { background: var(--tn-teal-soft); }
  .tn-gp h1, .tn-gp h2, .tn-gp h3, .tn-gp .section-label strong { color: var(--tn-ink); }
  .tn-gp .hero-copy, .tn-gp .hero-note div > span, .tn-gp .section-label small,
  .tn-gp .period-meta, .tn-gp .muted, .tn-gp .section-heading p:not(.eyebrow),
  .tn-gp .dialog-heading p:not(.eyebrow), .tn-gp .fine-print { color: var(--tn-muted); }
  .tn-gp :is(.period-card,.calendar-card,.day-card,.preview-card,.report-view,.card,.welcome,dialog,.metric) { background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line); box-shadow: var(--tn-shadow); }
  .tn-gp .filter-strip, .tn-gp .report-toolbar, .tn-gp .segment { background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line); }
  .tn-gp .hours-preview { background: var(--tn-surface-soft); color: var(--tn-ink); }
  .tn-gp button.tn-direct-option { background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line) !important; }
  .tn-gp button.tn-direct-option:hover { background: var(--tn-surface-soft); color: var(--tn-ink); border-color: #8c88ec !important; }
  .tn-gp button.tn-direct-option[aria-pressed="true"] { background: var(--tn-teal-soft); color: var(--tn-teal-dark); border-color: #8c88ec !important; box-shadow: inset 4px 0 #7774dd; }
  .tn-gp button.tn-direct-option:disabled { background: var(--tn-surface-soft); color: var(--tn-muted); border-color: var(--tn-line) !important; }
  .tn-gp .tn-direct-empty { color: var(--tn-muted); }
  .tn-gp :is(.hero-note,.step,.note-icon,.source-badge) { background: var(--tn-teal-soft); color: var(--tn-teal-dark); border-color: var(--tn-line); }
  .tn-gp input, .tn-gp select, .tn-gp textarea { background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line); }
  .tn-gp :is(.report-table,.calendar-grid) th { background: var(--tn-surface-soft); color: var(--tn-muted); border-color: var(--tn-line); }
  .tn-gp :is(.report-table,.calendar-grid) td { background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line); }
  .tn-gp :is(.person-cell,.person-heading,.dialog-actions,.calendar-foot) { background: var(--tn-surface-soft) !important; color: var(--tn-ink); border-color: var(--tn-line); }
  .tn-gp .metric { border-radius: 14px; }
  .tn-gp .metric strong { color: var(--tn-ink); }
  .tn-gp .busy, .tn-gp .search-result { background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line); }
  .tn-gp .search-result:hover, .tn-gp .search-result.selected { background: var(--tn-teal-soft); }
  :root[data-bs-theme="dark"] .tn-login { background: radial-gradient(ellipse at 10% 10%,#272340 0,transparent 50%),var(--tn-bg) !important; }
  :root[data-bs-theme="dark"] .tn-app .tn-content [style*="color:Black"], :root[data-bs-theme="dark"] .tn-app .tn-content [style*="color: Black"] { color: var(--tn-ink) !important; }
  :root[data-bs-theme="dark"] .tn-app .tn-content [bgcolor="white"], :root[data-bs-theme="dark"] .tn-app .tn-content [bgcolor="#FFFFFF"] { background-color: var(--tn-white) !important; }
  @media (min-width: 901px) {
    .tn-app #tn-sidebar-fold { display: inline-flex; }
    .tn-app.tn-sidebar-folded { --tn-sidebar-width: 84px; }
    .tn-app.tn-sidebar-folded .tn-sidebar { padding: 24px 11px 16px; overflow-x: hidden; }
    .tn-sidebar-folded .tn-brand { margin: 0 auto 23px; justify-content: center; }
    .tn-sidebar-folded .tn-brand > span:not(.tn-brand-symbol), .tn-sidebar-folded .tn-search-field, .tn-sidebar-folded .tn-search-hint, .tn-sidebar-folded .tn-nav-label, .tn-sidebar-folded .tn-nav-item > .tn-star, .tn-sidebar-folded .tn-sidebar-footer, .tn-sidebar-folded #tn-legacy-menu, .tn-sidebar-folded .tn-nav-group h3, .tn-sidebar-folded .tn-group-toggle-label, .tn-sidebar-folded .tn-group-chevron { display: none; }
    .tn-sidebar-folded .tn-nav-group { margin-bottom: 10px; padding-top: 8px; border-top: 1px solid #30435e; }
    .tn-sidebar-folded .tn-nav-link { justify-content: center; padding: 11px; min-height: 46px; }
    .tn-sidebar-folded .tn-nav-icon { flex-basis: 24px; width: 24px; height: 24px; }
    .tn-sidebar-folded .tn-workspace { margin-left: 84px; }
  }
  @media (max-width: 1100px) {
    .tn-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
    .tn-app .tn-topbar { padding: 13px 22px; }
    .tn-app .tn-page-heading { padding: 25px 22px 20px; }
    .tn-app .tn-content, .tn-app .tn-mobile-direct:not([hidden]) { margin-left: 22px; margin-right: 22px; }
  }
  @media (max-width: 900px) {
    .tn-app .tn-sidebar { width: min(296px,calc(100vw - 48px)); }
    .tn-app .tn-workspace { margin-left: 0; }
    .tn-app #tn-sidebar-fold { display: none; }
    .tn-app .tn-topbar { padding: 12px 18px; min-height: 64px; gap: 10px; }
    .tn-app .tn-page-heading { padding: 24px 20px 18px; }
    .tn-app .tn-content { margin: 0 20px 20px; padding: 18px; }
    .tn-app .tn-mobile-direct:not([hidden]) { margin: 0 20px 18px; padding: 14px; }
    .tn-app .tn-user-chip { max-width: 180px; padding-left: 10px; }
    .tn-app .tn-hero { padding: 24px; }
  }
  @media (max-width: 620px) {
    .tn-data-heading { display: block; margin-bottom: 16px; }
    .tn-dashboard-toolbar { margin-top: 16px; align-items: flex-end; }
    .tn-dashboard-toolbar label { flex: 1; min-width: 0; }
    .tn-dashboard-toolbar label select { width: 100%; min-width: 0; }
    .tn-kpi-grid { gap: 10px; margin-bottom: 16px; }
    .tn-kpi-card { min-height: 154px; padding: 17px 14px; border-radius: 12px; }
    .tn-kpi-card small { max-width: none; padding-right: 20px; font-size: 11px; }
    .tn-kpi-card strong { margin: 16px 0 7px; font-size: 27px; }
    .tn-kpi-card > span:not(.tn-kpi-icon) { font-size: 10px; }
    .tn-kpi-icon { width: 25px; height: 25px; top: 13px; right: 10px; border-radius: 7px; }
    .tn-kpi-icon svg { width: 16px; height: 16px; }
    .tn-chart-card { padding: 17px 14px; border-radius: 12px; }
    .tn-chart-card h3 { font-size: 15px; }
    .tn-app .tn-topbar { padding: 10px 12px; align-items: center; }
    .tn-app .tn-top-actions { gap: 3px; }
    .tn-app .tn-icon-button { min-width: 38px; min-height: 40px; padding: 7px; }
    .tn-app .tn-user-chip { display: none; }
    .tn-app .tn-page-heading { padding: 22px 14px 16px; gap: 12px; }
    .tn-app #tn-page-title { font-size: 25px; }
    .tn-app .tn-page-heading .tn-eyebrow { font-size: 9px; }
    .tn-app #tn-favorite-toggle { padding: 9px; min-width: 42px; font-size: 12px; }
    .tn-app .tn-content { margin: 0 12px 16px; padding: 14px; border-radius: 12px; }
    .tn-app .tn-mobile-direct:not([hidden]) { margin: 0 12px 16px; padding: 12px; border-radius: 12px; }
    .tn-app .tn-mobile-direct-list { gap: 7px; }
    .tn-app .tn-mobile-direct-list a { min-height: 48px; padding: 8px 10px; font-size: 12px; }
    .tn-app #tn-dashboard .tn-module-grid { gap: 8px; }
    .tn-app #tn-dashboard .tn-module-card { padding: 10px 42px 10px 11px; }
    .tn-app #tn-dashboard .tn-card-title { font-size: 12px; }
    .tn-app .tn-home-panels { display: block; }
    .tn-app .tn-home-panel { margin-bottom: 14px; padding: 17px; }
    .tn-app .tn-section-heading h2 { font-size: 18px; }
    .tn-app .tn-hero { padding: 22px; }
    .tn-app .tn-workspace > .tn-footer { padding-left: 14px; padding-right: 14px; }
    .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]) { font-size: 12px !important; }
    .tn-app .tn-content table:is([id*="Grid"],[id*="grid"],[id*="gv"],[id*="dg"],[id*="DG"],[role="grid"]) > tbody > tr > td { padding: 9px 8px; font-size: 12px !important; }
    #tn-request-status { bottom: 12px; right: 12px; left: 12px; padding: 12px 14px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .tn-app *, .tn-login *, .tn-gp * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  }
}

/* Segunda adaptación: pantallas Web Forms y submódulos existentes, 29/10/2026.
 * Las clases tn-legacy-* son anotaciones visuales; los controles, sus IDs,
 * formularios y eventos ASP.NET permanecen en su posición y con sus contratos.
 */
@media screen {
  :root {
    --tn-warning-bg: #fff5dc; --tn-warning-ink: #805b1a; --tn-warning-line: #ead19b;
    --tn-danger-bg: #fff0ed; --tn-danger-ink: #a2382f; --tn-danger-line: #e9b7b1;
    --tn-success-bg: #e8f6ef; --tn-success-ink: #236749; --tn-success-line: #b9dcca;
  }
  :root[data-bs-theme="dark"] {
    --tn-warning-bg: #3d3424; --tn-warning-ink: #f2d08b; --tn-warning-line: #786340;
    --tn-danger-bg: #422b31; --tn-danger-ink: #ffc2bb; --tn-danger-line: #87545c;
    --tn-success-bg: #203d37; --tn-success-ink: #9ce3c5; --tn-success-line: #426c61;
  }
  .tn-app .tn-content > *, .tn-standalone > form > * { min-width: 0; }
  .tn-app .tn-legacy-layout { width: 100% !important; max-width: 100%; table-layout: fixed; border: 0; }
  .tn-app .tn-legacy-layout > tbody > tr > td { min-width: 0; vertical-align: top; }
  .tn-app .tn-legacy-panel { width: 100% !important; max-width: 100%; margin: 16px 0; padding: 20px; border: 1px solid var(--tn-line) !important; border-radius: 13px; background: var(--tn-white) !important; color: var(--tn-ink); box-shadow: var(--tn-shadow); }
  .tn-app .tn-legacy-panel .tn-legacy-panel { margin: 12px 0 0; box-shadow: none; }
  .tn-app .tn-legacy-form-table { display: block; width: 100% !important; max-width: 100%; border: 0 !important; border-collapse: separate !important; border-spacing: 0; background: var(--tn-white) !important; color: var(--tn-ink); font: 13px/1.5 var(--tn-font); }
  .tn-app .tn-legacy-form-table > tbody { display: block; width: 100%; }
  .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row { display: grid; grid-template-columns: minmax(125px,.7fr) minmax(150px,1.3fr); align-items: start; gap: 10px 15px; width: 100%; padding: 7px 0; background: var(--tn-white) !important; }
  .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row[data-tn-pairs="2"] { grid-template-columns: repeat(2,minmax(110px,.7fr) minmax(150px,1.3fr)); }
  .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row[data-tn-pairs="3"] { grid-template-columns: repeat(3,minmax(80px,.65fr) minmax(125px,1.35fr)); }
  .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row > td { display: block; min-width: 0; width: auto !important; height: auto !important; padding: 0; border: 0; background: transparent !important; text-align: left !important; vertical-align: top; }
  .tn-app .tn-legacy-form-table .tn-form-label-cell { padding-top: 9px !important; color: var(--tn-ink); font: 600 13px/1.5 var(--tn-font); }
  .tn-app .tn-form-label-cell > :is(label,span,font) { width: auto !important; height: auto !important; max-width: 100%; color: var(--tn-ink) !important; font: 600 13px/1.5 var(--tn-font) !important; overflow-wrap: anywhere; }
  .tn-app .tn-form-control-cell :is(input[type="text"],input[type="password"],input[type="number"],input[type="date"],input[type="email"],select,textarea) { width: 100% !important; max-width: 100%; min-width: 0; }
  .tn-app .tn-form-control-cell textarea { min-height: 88px; resize: vertical; }
  .tn-app .tn-form-control-cell input[type="file"] { max-width: 100%; min-width: 0; }
  .tn-app .tn-form-spacer { display: none !important; }
  .tn-app .tn-legacy-form-table > tbody > tr.tn-form-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px; width: 100%; padding: 16px 0 4px; border-top: 1px solid var(--tn-line); margin-top: 10px; }
  .tn-app .tn-form-actions > td { display: flex; align-items: center; gap: 9px; width: auto !important; height: auto !important; padding: 0; }
  .tn-app .tn-form-actions :is(input[type="submit"],input[type="button"],button) { min-height: 42px; }
  .tn-app .tn-legacy-toolbar { width: 100% !important; max-width: 100%; padding: 15px 16px; margin-bottom: 16px; background: var(--tn-surface-soft); border: 1px solid var(--tn-line) !important; border-radius: 12px; box-shadow: none; }
  .tn-app .tn-legacy-toolbar > tbody > tr { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 9px 14px; }
  .tn-app .tn-legacy-toolbar > tbody > tr > td { display: block; width: auto !important; min-width: 0; height: auto !important; padding: 0; vertical-align: bottom; text-align: left !important; }
  .tn-app .tn-legacy-toolbar label, .tn-app .tn-legacy-toolbar .tn-form-label-cell { color: var(--tn-muted); font-size: 13px; }
  .tn-app .tn-legacy-toolbar :is(input[type="text"],select) { min-width: 140px; max-width: 100%; }
  .tn-app tr.tn-legacy-toolbar-row { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 9px 14px; width: 100%; padding: 12px 0; background: transparent; }
  .tn-app tr.tn-legacy-toolbar-row > td { display: block; width: auto !important; height: auto !important; min-width: 0; padding: 0; text-align: left !important; }
  .tn-app .tn-content table:has(> tbody > tr.tn-legacy-toolbar-row),
  .tn-app .tn-content table:has(> tbody > tr.tn-legacy-toolbar-row) > tbody { display: block; width: 100% !important; max-width: 100%; }
  .tn-app tr.tn-legacy-toolbar-row { align-items: flex-start; }
  .tn-app tr.tn-legacy-toolbar-row > td:has(> .tn-extended-options) { flex: 1 1 100%; width: 100% !important; max-width: 100%; }
  .tn-app tr.tn-legacy-toolbar-row > td:first-child:not(:has(input,select,textarea,button,a)) { flex: 1 1 100%; width: 100% !important; }
  .tn-app tr.tn-legacy-toolbar-row > td:has(> input[type="text"]):not(:has(.tn-extended-options)) { flex: 1 1 260px; }
  .tn-app tr.tn-legacy-toolbar-row > td > input[type="text"] { width: 100% !important; }
  .tn-app .tn-extended-options { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(130px,100%),1fr)); gap: 8px; width: 100%; max-width: 100%; margin-top: 0; }
  .tn-app .tn-extended-options > button.tn-direct-option { min-width: 0; min-height: 44px; font-size: 13px !important; }
  .tn-app .tn-content :is(input[type="file"],.tn-legacy-file) { max-width: 100%; padding: 8px; border: 1px dashed var(--tn-line); border-radius: 8px; background: var(--tn-surface-soft); color: var(--tn-ink); font: 12px/1.5 var(--tn-font); }
  .tn-app .tn-content input[type="file"]::file-selector-button { padding: 8px 11px; margin-right: 9px; border: 1px solid var(--tn-line); border-radius: 6px; background: var(--tn-white); color: var(--tn-teal-dark); font-weight: 600; }

  /* Grillas reales únicamente: se conserva la estructura de tablas anidadas,
     los enlaces de ordenación y los controles de edición/paginación. */
  .tn-app .tn-grid-scroll, .tn-standalone .tn-grid-scroll { position: relative; min-width: 0; width: 100%; max-width: 100%; max-height: min(66vh,680px); overflow: auto; overscroll-behavior: contain; border: 1px solid var(--tn-line); border-radius: 10px; background: var(--tn-white); scrollbar-gutter: stable; margin: 12px 0 18px; }
  .tn-app .tn-grid-scroll:focus-visible, .tn-standalone .tn-grid-scroll:focus-visible { outline: 3px solid #8686f5; outline-offset: 3px; }
  .tn-app table.tn-data-grid, .tn-standalone table.tn-data-grid { width: 100% !important; min-width: 100%; height: auto !important; border-collapse: separate !important; border-spacing: 0; border: 0 !important; color: var(--tn-ink) !important; background: var(--tn-white) !important; font: 13px/1.5 var(--tn-font) !important; }
  .tn-app .tn-data-grid > tbody > tr, .tn-standalone .tn-data-grid > tbody > tr { background: var(--tn-white) !important; color: var(--tn-ink) !important; }
  .tn-app .tn-data-grid > tbody > tr:nth-child(even), .tn-standalone .tn-data-grid > tbody > tr:nth-child(even) { background: var(--tn-surface-soft) !important; }
  .tn-app .tn-content .tn-data-grid > tbody > tr > :is(td,th), .tn-standalone .tn-data-grid > tbody > tr > :is(td,th) { padding: 11px 12px; border: 0 !important; border-bottom: 1px solid var(--tn-line) !important; background: inherit !important; color: var(--tn-ink) !important; font: 13px/1.5 var(--tn-font) !important; vertical-align: middle; text-align: start; }
  .tn-app .tn-content .tn-data-grid > tbody > tr.tn-grid-header > :is(td,th), .tn-standalone .tn-data-grid > tbody > tr.tn-grid-header > :is(td,th), .tn-app .tn-content .tn-data-grid > thead > tr > th, .tn-standalone .tn-data-grid > thead > tr > th { position: sticky; top: 0; z-index: 3; padding: 12px; border-bottom: 1px solid var(--tn-line) !important; background: var(--tn-surface-soft) !important; color: var(--tn-muted) !important; font: 700 11px/1.45 var(--tn-font) !important; letter-spacing: .25px; white-space: nowrap; }
  .tn-app .tn-data-grid .tn-grid-header a, .tn-standalone .tn-data-grid .tn-grid-header a { color: var(--tn-ink) !important; font-weight: 700; text-decoration: none; }
  .tn-app .tn-data-grid .tn-grid-header a:hover, .tn-standalone .tn-data-grid .tn-grid-header a:hover { color: var(--tn-teal-dark) !important; text-decoration: underline; }
  .tn-app .tn-content .tn-data-grid > tbody > tr:not(.tn-grid-header):not(.tn-grid-pager):hover > td, .tn-standalone .tn-data-grid > tbody > tr:not(.tn-grid-header):not(.tn-grid-pager):hover > td { background: var(--tn-teal-soft) !important; }
  .tn-app .tn-content .tn-data-grid > tbody > tr:is(.tn-grid-selected,[aria-selected="true"],[style*="background-color:Wheat" i],[style*="background-color:#FFCC66" i]) > td { background: var(--tn-teal-soft) !important; color: var(--tn-ink) !important; }
  .tn-app .tn-data-grid > tbody > tr:is(.tn-grid-selected,[aria-selected="true"]) > td:first-child { box-shadow: inset 3px 0 #8c88ec; }
  .tn-app .tn-data-grid td.tn-grid-actions, .tn-standalone .tn-data-grid td.tn-grid-actions { white-space: nowrap; width: 1%; padding: 5px 7px !important; }
  .tn-app .tn-data-grid td.tn-grid-actions:first-child, .tn-standalone .tn-data-grid td.tn-grid-actions:first-child { position: sticky; left: 0; z-index: 2; background: var(--tn-white) !important; border-right: 1px solid var(--tn-line) !important; }
  .tn-app .tn-data-grid .tn-grid-header > :first-child:has(> input[type="checkbox"]), .tn-standalone .tn-data-grid .tn-grid-header > :first-child:has(> input[type="checkbox"]) { left: 0; z-index: 4; }
  .tn-app .tn-data-grid .tn-grid-actions :is(a,input[type="image"]), .tn-standalone .tn-data-grid .tn-grid-actions :is(a,input[type="image"]) { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; border: 1px solid transparent; border-radius: 7px; color: var(--tn-teal-dark); vertical-align: middle; }
  .tn-app .tn-data-grid .tn-grid-actions input[type="image"], .tn-standalone .tn-data-grid .tn-grid-actions input[type="image"] { width: 40px !important; height: 40px !important; object-fit: contain; padding: 10px; }
  .tn-app .tn-data-grid .tn-grid-actions :is(a,input[type="image"]):hover, .tn-standalone .tn-data-grid .tn-grid-actions :is(a,input[type="image"]):hover { border-color: var(--tn-line); background: var(--tn-teal-soft); }
  .tn-app .tn-content .tn-data-grid > tbody > tr.tn-grid-pager > td, .tn-standalone .tn-data-grid > tbody > tr.tn-grid-pager > td { padding: 9px 12px; background: var(--tn-surface-soft) !important; border-bottom: 0 !important; }
  .tn-app .tn-grid-pager table, .tn-standalone .tn-grid-pager table { width: auto !important; border: 0 !important; border-collapse: separate; border-spacing: 4px; background: transparent !important; }
  .tn-app .tn-grid-pager :is(a,span), .tn-standalone .tn-grid-pager :is(a,span) { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; padding: 5px 9px; border: 1px solid var(--tn-line); border-radius: 7px; color: var(--tn-teal-dark); background: var(--tn-white); font: 600 12px/1.4 var(--tn-font) !important; text-decoration: none; }
  .tn-app .tn-grid-pager span, .tn-standalone .tn-grid-pager span { background: var(--tn-teal-soft); color: var(--tn-ink); }
  .tn-app .tn-grid-pager a:hover, .tn-standalone .tn-grid-pager a:hover { border-color: #8c88ec; background: var(--tn-teal-soft); }

  /* Pestañas del AjaxControlToolkit; permanecen en su control original. */
  .tn-app .ajax__tab_xp .ajax__tab_header, .tn-app .ajax__tab_default .ajax__tab_header { display: flex !important; flex-wrap: wrap; gap: 7px; height: auto !important; min-height: 0; margin: 0 0 16px; padding: 0 0 13px !important; border-bottom: 1px solid var(--tn-line); background: none !important; }
  .tn-app .ajax__tab_xp .ajax__tab_outer, .tn-app .ajax__tab_xp .ajax__tab_inner, .tn-app .ajax__tab_default .ajax__tab_outer, .tn-app .ajax__tab_default .ajax__tab_inner { height: auto !important; padding: 0 !important; border: 0 !important; background: none !important; }
  .tn-app .ajax__tab_xp .ajax__tab_tab, .tn-app .ajax__tab_default .ajax__tab_tab { display: inline-flex !important; align-items: center; justify-content: center; min-height: 43px; height: auto !important; max-width: 100%; padding: 10px 14px !important; border: 1px solid var(--tn-line); border-radius: 8px; color: var(--tn-ink) !important; background: var(--tn-surface-soft) !important; font: 600 12px/1.4 var(--tn-font) !important; white-space: normal !important; text-decoration: none !important; }
  .tn-app .ajax__tab_xp .ajax__tab_active .ajax__tab_tab, .tn-app .ajax__tab_default .ajax__tab_active .ajax__tab_tab { border-color: #9994e9; background: var(--tn-teal-soft) !important; color: var(--tn-teal-dark) !important; box-shadow: inset 0 -2px #8c88ec; }
  .tn-app .ajax__tab_xp .ajax__tab_hover .ajax__tab_tab, .tn-app .ajax__tab_default .ajax__tab_hover .ajax__tab_tab { border-color: #9994e9; color: var(--tn-teal-dark) !important; }
  .tn-app .ajax__tab_xp .ajax__tab_body, .tn-app .ajax__tab_default .ajax__tab_body { padding: 0 !important; border: 0 !important; background: var(--tn-white) !important; color: var(--tn-ink); font-family: var(--tn-font) !important; }
  .tn-app .ajax__tab_panel { background-color: var(--tn-white) !important; color: var(--tn-ink); }
  .tn-app .ajax__tab_panel > .tn-legacy-panel { background-color: var(--tn-white) !important; }
  .tn-app .ajax__tab_xp .ajax__tab_disabled .ajax__tab_tab { opacity: .55; cursor: not-allowed; }
  .tn-app .ajax__calendar_container { border: 1px solid var(--tn-line) !important; border-radius: 10px; background: var(--tn-white) !important; color: var(--tn-ink) !important; box-shadow: 0 10px 28px #101f3626; padding: 8px !important; font: 12px/1.4 var(--tn-font) !important; z-index: 10020; }
  .tn-app .ajax__calendar_body { background: var(--tn-white); color: var(--tn-ink); }
  .tn-app .ajax__calendar_day, .tn-app .ajax__calendar_month, .tn-app .ajax__calendar_year { color: var(--tn-ink); border-radius: 4px; }
  .tn-app .ajax__calendar_active .ajax__calendar_day, .tn-app .ajax__calendar_hover .ajax__calendar_day { background: var(--tn-teal-soft) !important; border-color: #8c88ec !important; color: var(--tn-teal-dark) !important; }
  .tn-app .ajax__calendar_other .ajax__calendar_day { color: var(--tn-muted); }
  .tn-app .ajax__calendar .ajax__calendar_day,
  .tn-app .ajax__calendar .ajax__calendar_month,
  .tn-app .ajax__calendar .ajax__calendar_year { border-color: transparent !important; background: var(--tn-white) !important; color: var(--tn-ink) !important; }
  .tn-app .ajax__calendar .ajax__calendar_dayname,
  .tn-app .ajax__calendar .ajax__calendar_footer { color: var(--tn-muted); border-color: var(--tn-line) !important; }
  .tn-app .ajax__calendar .ajax__calendar_title { color: var(--tn-ink); }
  .tn-app .ajax__calendar .ajax__calendar_other .ajax__calendar_day,
  .tn-app .ajax__calendar .ajax__calendar_other .ajax__calendar_year { color: var(--tn-muted) !important; }
  .tn-app .ajax__calendar .ajax__calendar_active :is(.ajax__calendar_day,.ajax__calendar_month,.ajax__calendar_year),
  .tn-app .ajax__calendar .ajax__calendar_hover :is(.ajax__calendar_day,.ajax__calendar_month,.ajax__calendar_year) { border-color: #8c88ec !important; background: var(--tn-teal-soft) !important; color: var(--tn-teal-dark) !important; }

  /* Cuadros modales que el toolkit coloca fuera del área principal. */
  .tn-app .tn-legacy-modal { box-sizing: border-box; max-width: calc(100vw - 28px) !important; max-height: calc(100vh - 28px); overflow: auto; padding: 20px; border: 1px solid var(--tn-line) !important; border-radius: 14px; background: var(--tn-white) !important; color: var(--tn-ink); box-shadow: 0 24px 70px #07112659; }
  .tn-app .tn-legacy-modal > table { width: 100% !important; max-width: 100%; }
  .tn-app .tn-legacy-modal label, .tn-app .tn-legacy-modal .tn-form-label-cell > :is(span,font) { color: var(--tn-ink) !important; }
  .tn-app .tn-legacy-modal :is(input[type="text"],select,textarea) { min-height: 40px; padding: 8px 11px; border: 1px solid var(--tn-line) !important; border-radius: 8px; background: var(--tn-white) !important; color: var(--tn-ink) !important; font: 13px/1.5 var(--tn-font) !important; }
  .tn-app .tn-legacy-modal :is(input[type="submit"],input[type="button"]) { min-height: 42px; padding: 9px 15px; border: 1px solid #6260d8 !important; border-radius: 8px; background: #6260d8; color: white; font: 600 13px/1.4 var(--tn-font) !important; }
  .tn-app .tn-content a:is([id$="_lnkGenArchivo"],[id$="_lnkGenListado"],[id$="_lnkGenCarta"],[id$="_lnkdetalle"],[id$="_lnkcolillas"])[style*="color:blue" i]:not([disabled]):not([aria-disabled="true"]):not(.aspNetDisabled) {
    box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; max-width: 100%; padding: 8px 12px;
    border: 1px solid var(--tn-line); border-radius: 8px; background: var(--tn-surface-soft); color: var(--tn-teal-dark) !important;
    font-size: 13px !important; font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; white-space: normal;
  }
  .tn-app .tn-content [style*="color:#444" i], .tn-app .tn-content [style*="color: #444" i] { color: var(--tn-muted) !important; }
  :root[data-bs-theme="dark"] .tn-app [id$="_PanelAnularNomina"] > div > :is(strong,span)[style*="color:"] { color: var(--tn-danger-ink) !important; }

  /* Centros de costo: clases propias del módulo, con sus estados conservados. */
  .tn-app .tn-content .cc-admin { max-width: none; margin: 0; padding: 0; color: var(--tn-ink); font: 14px/1.6 var(--tn-font); }
  .tn-app .tn-content .cc-admin h2, .tn-app .tn-content .cc-admin h3 { color: var(--tn-ink); }
  .tn-app .tn-content .cc-admin h2 { font-size: 23px; }
  .tn-app .tn-content .cc-admin h3 { font-size: 17px; }
  .tn-app .cc-summary { gap: 14px; margin: 20px 0; }
  .tn-app .cc-summary > div { min-width: 0; padding: 18px; border: 1px solid var(--tn-line); border-top: 3px solid #8c88ec; border-radius: 12px; background: var(--tn-surface-soft); color: var(--tn-muted); font-size: 12px; box-shadow: var(--tn-shadow); }
  .tn-app .cc-summary strong { color: var(--tn-ink); font-size: 31px; font-variant-numeric: tabular-nums; }
  .tn-app .cc-summary .cc-available { border-top-color: #329790; }
  .tn-app .cc-summary .cc-inactive { border-top-color: #94a2b7; }
  .tn-app .cc-summary > div:nth-child(1) { background: linear-gradient(115deg,#625bc7,#484391); }
  .tn-app .cc-summary > div:nth-child(2) { background: linear-gradient(115deg,#286ab2,#20518c); }
  .tn-app .cc-summary > div:nth-child(3) { background: linear-gradient(115deg,#227f80,#1c6368); }
  .tn-app .cc-summary > div:nth-child(4) { background: linear-gradient(115deg,#9b682e,#795023); }
  .tn-app .cc-summary > div:nth-child(-n+4) { border: 0; color: #fff; }
  .tn-app .cc-summary > div:nth-child(-n+4) strong { color: #fff; }
  .tn-app .cc-box { padding: 20px; border-color: var(--tn-line); border-radius: 12px; background: var(--tn-white); box-shadow: var(--tn-shadow); }
  .tn-app .cc-line { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 8px 16px; margin: 14px 0; }
  .tn-app .cc-label { width: 215px; padding-top: 8px; color: var(--tn-ink); font-size: 13px; }
  .tn-app .cc-note, .tn-app .cc-meta { color: var(--tn-muted); font-size: 12px; }
  .tn-app .cc-meta { margin: 12px 0; }
  .tn-app .cc-toolbar { padding: 16px; border: 1px solid var(--tn-line); border-radius: 12px; background: var(--tn-surface-soft); }
  .tn-app .cc-toolbar label { color: var(--tn-muted); font-size: 13px; }
  .tn-app .cc-table-wrap { border-color: var(--tn-line); border-radius: 10px; background: var(--tn-white); }
  .tn-app .cc-grid th { background: var(--tn-surface-soft); color: var(--tn-muted); border-color: var(--tn-line); }
  .tn-app .cc-grid td, .tn-app .cc-facts td { border-color: var(--tn-line); color: var(--tn-ink); }
  .tn-app .cc-grid tr:nth-child(even) { background: var(--tn-surface-soft); }
  .tn-app .cc-grid tr.cc-selected, .tn-app .cc-grid tr.cc-selected td { background: var(--tn-teal-soft) !important; }
  .tn-app .cc-grid tr.cc-selected td:first-child { border-left-color: #8c88ec; }
  .tn-app .cc-message, .tn-app .cc-warning { background: var(--tn-warning-bg); color: var(--tn-warning-ink); border-color: var(--tn-warning-line); border-radius: 9px; }
  .tn-app .cc-danger { background: var(--tn-danger-bg); border-color: var(--tn-danger-line); }
  .tn-app .cc-required { color: var(--tn-danger-ink); }
  .tn-app .cc-admin a { color: var(--tn-teal-dark); }

  /* Centro de reportes: aspecto de consulta sin cambiar impresión ni archivos. */
  .tn-app .tn-content .tn-reportes { max-width: none; margin: 0; padding: 0; color: var(--tn-ink); font-family: var(--tn-font); }
  .tn-app .tn-reportes h1, .tn-app .tn-reportes h2 { color: var(--tn-ink); }
  .tn-app .tn-reportes h1 { font-size: 25px; }
  .tn-app .tn-reportes .tn-subtitle, .tn-app .tn-reportes .tn-help, .tn-app .tn-reportes .tn-status, .tn-app .tn-reportes .tn-download-name, .tn-app .tn-reportes .tn-secondary { color: var(--tn-muted); }
  .tn-app .tn-reportes .tn-pill { background: var(--tn-surface-soft); border-color: var(--tn-line); color: var(--tn-muted); }
  .tn-app .tn-reportes .tn-card { border: 1px solid var(--tn-line); border-radius: 13px; padding: 22px; background: var(--tn-white); color: var(--tn-ink); box-shadow: var(--tn-shadow); }
  .tn-app .tn-reportes .tn-number { background: var(--tn-teal-soft); color: var(--tn-teal-dark); }
  .tn-app .tn-reportes .tn-fields { gap: 18px; }
  .tn-app .tn-reportes .tn-field { min-width: min(180px,100%); }
  .tn-app .tn-reportes .tn-field.wide { min-width: min(300px,100%); }
  .tn-app .tn-reportes .tn-label, .tn-app .tn-reportes label { color: var(--tn-ink); font-weight: 600; }
  .tn-app .tn-reportes .tn-note { border-color: #8c88ec; border-radius: 8px; background: var(--tn-surface-soft); color: var(--tn-muted); }
  .tn-app .tn-reportes .tn-alert { border-color: var(--tn-danger-line); background: var(--tn-danger-bg); color: var(--tn-danger-ink); }
  .tn-app .tn-reportes .tn-result { border-color: var(--tn-success-line); background: var(--tn-white); }
  .tn-app .tn-reportes .tn-result h2 { color: var(--tn-success-ink); }
  .tn-app .tn-reportes .tn-link { background: #6260d8; color: white !important; border: 1px solid #6260d8; min-height: 42px; border-radius: 8px; }
  .tn-app .tn-reportes .tn-link:hover { background: #4c4bb7; }
  .tn-app .tn-reportes .tn-grid { background: var(--tn-white); border-color: var(--tn-line); border-radius: 9px; }
  .tn-app .tn-reportes .tn-grid th { background: var(--tn-surface-soft); color: var(--tn-muted); }
  .tn-app .tn-reportes .tn-footer { color: var(--tn-muted); border-color: var(--tn-line); }
  .tn-app .tn-reportes .tn-busy { color: var(--tn-teal-dark); }

  /* Pantallas independientes (INSS, expediente, contraseña) del mismo sitio. */
  .tn-standalone { margin: 0 !important; background: var(--tn-bg) !important; color: var(--tn-ink); font-family: var(--tn-font); text-align: start !important; }
  .tn-standalone .tn-standalone-header { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; border-bottom: 1px solid var(--tn-line); background: #152b49; color: #e3eaf5; box-shadow: 0 3px 13px #101f3612; }
  .tn-standalone .tn-standalone-header .tn-brand { color: white; }
  .tn-standalone .tn-standalone-header .tn-back-link { color: #d2d9ed; background: #263b5a; border-color: #52627f; }
  .tn-standalone .tn-standalone-header .tn-icon-button { color: #e2e8f3; background: #263b5a; border-color: #52627f !important; }
  .tn-standalone > form { min-width: 0; background: var(--tn-white); color: var(--tn-ink); border-color: var(--tn-line); box-shadow: var(--tn-shadow); }
  .tn-standalone > form > main { min-width: 0; }
  .tn-standalone h1, .tn-standalone h2, .tn-standalone h3, .tn-standalone label { color: var(--tn-ink); }
  .tn-standalone .cabecera { border: 1px solid var(--tn-line); border-radius: 10px; background: var(--tn-surface-soft); color: var(--tn-ink); }
  .tn-standalone .cabecera a { color: var(--tn-teal-dark); }
  .tn-standalone .panel { border: 1px solid var(--tn-line); border-radius: 13px; background: var(--tn-white); color: var(--tn-ink); box-shadow: var(--tn-shadow); }
  .tn-standalone .fila { gap: 18px; }
  .tn-standalone .campo { min-width: min(240px,100%); }
  .tn-standalone .ayuda { color: var(--tn-muted); }
  .tn-standalone .aviso { color: var(--tn-warning-ink); background: var(--tn-warning-bg); border: 1px solid var(--tn-warning-line); border-radius: 9px; }
  .tn-standalone :is(input[type="text"],input[type="password"],input[type="number"],input[type="date"],select,textarea) { max-width: 100%; min-height: 42px; padding: 9px 11px; border-color: var(--tn-line) !important; border-radius: 8px; background: var(--tn-white); color: var(--tn-ink); }
  .tn-standalone input[type="file"] { background: var(--tn-surface-soft); color: var(--tn-ink); border-color: var(--tn-line); }
  .tn-standalone input[type="file"]::file-selector-button { border-color: var(--tn-line); background: var(--tn-white); color: var(--tn-teal-dark); }
  .tn-standalone :is(input[type="submit"],input[type="button"]) { min-height: 42px; background: #6260d8; color: white; border-color: #6260d8 !important; border-radius: 8px; }
  .tn-standalone :is(input[type="submit"],input[type="button"]):hover { background: #4c4bb7; }
  .tn-standalone input[readonly] { background: var(--tn-surface-soft); }
  .tn-standalone :focus-visible { outline: 3px solid #8686f5 !important; outline-offset: 3px; }
  .tn-standalone form a { color: var(--tn-teal-dark); }
  .tn-standalone .tabla { border: 1px solid var(--tn-line); border-radius: 9px; margin: 14px 0; background: var(--tn-white); }
  .tn-standalone .tabla th { background: var(--tn-surface-soft); color: var(--tn-muted); border-color: var(--tn-line); }
  .tn-standalone .tabla td { border-color: var(--tn-line); color: var(--tn-ink); }
  .tn-standalone .dato { color: var(--tn-teal-dark); font-variant-numeric: tabular-nums; }
  .tn-standalone .resumen > div { flex: 1 1 150px; min-width: 0; padding: 15px 18px; border: 1px solid var(--tn-line); border-top: 3px solid #8c88ec; border-radius: 10px; background: var(--tn-surface-soft); color: var(--tn-muted); }
  .tn-standalone #Panel1 { border-color: var(--tn-line) !important; background: var(--tn-white) !important; color: var(--tn-ink); }
  .tn-standalone #Panel1 span:not([id$="cvvalida"]) { color: var(--tn-ink); }

  @media (max-width: 1150px) {
    .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row[data-tn-pairs="3"] { grid-template-columns: repeat(2,minmax(110px,.7fr) minmax(140px,1.3fr)); }
  }
  @media (max-width: 900px) {
    .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row[data-tn-pairs] { grid-template-columns: minmax(120px,.7fr) minmax(160px,1.3fr); }
    .tn-app .tn-content [id$="_PanelResumen"] > table.tn-legacy-layout > tbody > tr, .tn-app .tn-content [id$="_PanelResumen"] > table.tn-legacy-layout > tbody > tr > td { display: block; width: 100% !important; }
    .tn-app .tn-content [id$="_PanelResumen"] > table.tn-legacy-layout > tbody > tr > td { margin-bottom: 18px; }
    .tn-app .tn-legacy-panel { padding: 16px; }
  }
  @media (max-width: 620px) {
    /* El toolkit anima con un cuerpo fijo de 170 x 139. Se conserva ese sistema
       de coordenadas y se amplía el conjunto, sin tocar su display ni eventos. */
    .tn-app .ajax__calendar { position: fixed !important; left: 50% !important; top: 50% !important; width: 188px !important; max-width: none !important; transform: translate(-50%,-50%) scale(1.55); transform-origin: center; z-index: 100050 !important; }
    .tn-app .ajax__calendar, .tn-app .ajax__calendar * { box-sizing: content-box !important; }
    .tn-app .ajax__calendar .ajax__calendar_container { width: 170px !important; max-width: none !important; padding: 8px !important; }
    .tn-app .ajax__calendar .ajax__calendar_body,
    .tn-app .ajax__calendar :is(.ajax__calendar_days,.ajax__calendar_months,.ajax__calendar_years) { width: 170px !important; height: 139px !important; }
    .tn-app .ajax__calendar .ajax__calendar_container table { width: auto !important; border-collapse: separate; border-spacing: 0; border: 0; margin: 0 auto; padding: 0; }
    .tn-app .ajax__calendar .ajax__calendar_container td { width: auto; height: auto; margin: 0; padding: 0 !important; font: 12px/17px var(--tn-font) !important; }
    .tn-app .ajax__calendar .ajax__calendar_day { width: 18px; height: 17px; line-height: 17px; padding: 0 2px; text-align: center; }
    .tn-app .ajax__calendar .ajax__calendar_dayname { width: 18px; height: 17px; line-height: 17px; padding: 0 2px; text-align: center; font-size: 10px; }
    .tn-app .ajax__calendar .ajax__calendar_header { height: 28px; }
    .tn-app .ajax__calendar .ajax__calendar_title { min-height: 26px; margin-left: 27px; margin-right: 27px; line-height: 26px; font-size: 11px; }
    .tn-app .ajax__calendar :is(.ajax__calendar_prev,.ajax__calendar_next) { width: 26px; height: 26px; border-radius: 5px; background-image: none !important; color: var(--tn-ink); font: 24px/26px var(--tn-font); text-align: center; }
    .tn-app .ajax__calendar .ajax__calendar_prev::before { content: "‹"; }
    .tn-app .ajax__calendar .ajax__calendar_next::before { content: "›"; }
    .tn-app .ajax__calendar .ajax__calendar_footer { height: 23px; line-height: 23px; padding-top: 0; font-size: 11px; }
    .tn-app .tn-legacy-form-table > tbody > tr.tn-form-row[data-tn-pairs] { grid-template-columns: minmax(0,1fr); gap: 6px; padding: 8px 0; }
    .tn-app .tn-legacy-form-table .tn-form-label-cell { padding-top: 5px !important; }
    .tn-app .tn-legacy-form-table .tn-form-control-cell { padding-bottom: 8px !important; }
    .tn-app .tn-form-control-cell :is(input[type="text"],input[type="password"],input[type="number"],input[type="date"],select,textarea) { min-height: 44px; font-size: 16px !important; }
    .tn-app .tn-legacy-form-table > tbody > tr.tn-form-actions { gap: 9px; }
    .tn-app .tn-form-actions > td { flex: 1 1 auto; }
    .tn-app .tn-form-actions :is(input[type="submit"],input[type="button"],button) { width: 100%; min-height: 44px; }
    .tn-app .tn-legacy-toolbar { padding: 13px; }
    .tn-app .tn-legacy-toolbar > tbody > tr { align-items: stretch; }
    .tn-app .tn-legacy-toolbar > tbody > tr > td { flex: 1 1 min(180px,100%); }
    .tn-app tr.tn-legacy-toolbar-row > td { flex: 1 1 min(180px,100%); }
    .tn-app tr.tn-legacy-toolbar-row :is(input[type="text"],select) { width: 100% !important; min-width: 0; }
    .tn-app .tn-extended-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
    .tn-app .tn-legacy-toolbar :is(input[type="text"],select) { min-width: 0; width: 100% !important; }
    /* Jornadas conserva tres acciones en una celda rowspan del filtro antiguo. */
    .tn-app .tn-content [id$="_pencabezado"] > table:has(select[id$="_ddlJornadas"]) > tbody > tr:has(> td[rowspan]) {
      display: grid; grid-template-columns: minmax(0,1fr); width: 100%; gap: 6px;
    }
    .tn-app .tn-content [id$="_pencabezado"] > table:has(select[id$="_ddlJornadas"]) > tbody > tr:has(> td[rowspan]) > td {
      display: block; box-sizing: border-box; width: 100% !important; min-width: 0; max-width: 100%;
    }
    .tn-app .tn-content [id$="_pencabezado"] > table:has(select[id$="_ddlJornadas"]) > tbody > tr:has(> td[rowspan]) :is(select,input[type="submit"],input[type="button"]) {
      box-sizing: border-box; width: 100% !important; min-width: 0; max-width: 100%;
    }
    .tn-app .tn-grid-scroll, .tn-standalone .tn-grid-scroll { max-height: 64vh; border-radius: 8px; }
    .tn-app .tn-content .tn-data-grid > tbody > tr > :is(td,th), .tn-standalone .tn-data-grid > tbody > tr > :is(td,th) { padding: 10px; font-size: 12px !important; }
    .tn-app .tn-data-grid .tn-grid-actions :is(a,input[type="image"]), .tn-standalone .tn-data-grid .tn-grid-actions :is(a,input[type="image"]) { min-width: 44px; min-height: 44px; }
    .tn-app .tn-data-grid .tn-grid-actions input[type="image"], .tn-standalone .tn-data-grid .tn-grid-actions input[type="image"] { width: 44px !important; height: 44px !important; padding: 12px; }
    .tn-app .tn-grid-pager :is(a,span), .tn-standalone .tn-grid-pager :is(a,span) { min-width: 42px; min-height: 42px; }
    .tn-app .tn-legacy-modal { max-width: calc(100vw - 20px) !important; max-height: calc(100vh - 20px); padding: 15px; }
    /* DropShadow usa offsetLeft: el margen lateral fijo evita mezclar ese cálculo
       con una traslación horizontal al reducir el ancho original de 450px. */
    .tn-app form > .tn-legacy-modal,
    .tn-app > .tn-legacy-modal,
    .tn-app [id$="_foregroundElement"]:has(> .tn-legacy-modal) {
      box-sizing: border-box !important; position: fixed !important;
      left: 10px !important; right: 10px !important; top: 50% !important; transform: translateY(-50%) !important;
      width: calc(100vw - 20px) !important; max-width: calc(100vw - 20px) !important;
      margin: 0 !important;
    }
    .tn-app [id$="_foregroundElement"] > .tn-legacy-modal {
      box-sizing: border-box !important; width: 100% !important; max-width: 100% !important;
      margin: 0 !important;
    }
    .tn-app .tn-content .cc-admin h2 { font-size: 21px; }
    .tn-app .cc-box { padding: 15px; }
    .tn-app .cc-line { display: block; margin: 13px 0; }
    .tn-app .cc-label { display: block; width: auto; margin-bottom: 6px; padding-top: 0; }
    .tn-app .cc-line :is(input[type="text"],select,textarea) { width: 100% !important; }
    .tn-app .cc-toolbar > div { flex: 1 1 100%; min-width: 0; }
    .tn-app .cc-toolbar select { width: 100% !important; }
    .tn-app .cc-summary { gap: 10px; }
    .tn-app .cc-summary > div { flex: 1 1 calc(50% - 10px); padding: 14px; }
    .tn-app .tn-reportes .tn-card { padding: 16px; }
    .tn-app .tn-reportes .tn-field, .tn-app .tn-reportes .tn-field.wide { min-width: 100%; }
    .tn-app .ajax__tab_xp .ajax__tab_header, .tn-app .ajax__tab_default .ajax__tab_header { gap: 6px; }
    .tn-app .ajax__tab_xp .ajax__tab_tab, .tn-app .ajax__tab_default .ajax__tab_tab { min-height: 44px; padding: 9px 10px !important; font-size: 12px !important; }
    .tn-standalone > form { width: calc(100% - 20px); padding: 12px; }
    .tn-standalone .panel { padding: 16px; }
    .tn-standalone .fila > div { min-width: 0; flex: 1 1 100%; }
    .tn-standalone .fila select { width: 100%; }
    .tn-standalone table.calendario { display: block; width: 100%; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
    .tn-standalone table.calendario :is(td,th) { padding: 5px 3px; }
    .tn-standalone table.calendario :is(td,th):first-child { width: 42px; min-width: 24px; font-size: 12px; }
    .tn-standalone table.calendario input { box-sizing: border-box; width: 108px !important; min-width: 108px; max-width: none; padding: 8px 6px; font-size: 14px !important; font-variant-numeric: tabular-nums; }
    .tn-standalone .resumen { gap: 10px; }
    .tn-standalone .resumen > div { flex-basis: calc(50% - 10px); padding: 13px; }
  }
  @media (max-width: 340px) {
    .tn-app .ajax__calendar { transform: translate(-50%,-50%) scale(1.4); }
  }
}


/* 2026-10-29: local iconography; original postback controls are retained. */
@media screen {
  .tn-brand-symbol { padding: 0 !important; overflow: hidden; }
  .tn-brand-symbol .tn-brand-mark { display: block; width: 100%; height: 100%; color: #fff; }
  .tn-icon-button > .tn-tabler-icon, .tn-star > .tn-tabler-icon { pointer-events: none; }
  .tn-search-field > span { display: inline-flex; align-items: center; justify-content: center; }
  .tn-search-field > span .tn-tabler-icon { width: 18px; height: 18px; }
  .tn-user-avatar .tn-tabler-icon { width: 24px; height: 24px; }
  .tn-app #tn-favorite-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
  .tn-app #tn-favorite-toggle .tn-tabler-icon { width: 17px; height: 17px; }
  .tn-app .tn-star .tn-tabler-icon { width: 17px; height: 17px; }
  .tn-app input[type="image"].tn-action-icon { box-sizing: border-box; width: 38px !important; height: 38px !important; min-width: 38px; min-height: 38px; max-width: none; padding: 8px !important; border: 1px solid #d8d0f2 !important; border-radius: 10px; background: #f1edff !important; object-fit: contain; vertical-align: middle; }
  .tn-app input[type="image"].tn-action-icon:hover:not(:disabled) { background: #e7e0ff !important; border-color: #b4a7e9 !important; box-shadow: 0 3px 8px #3120571c; }
  .tn-app input[type="image"].tn-action-icon:disabled { opacity: .5; cursor: default; }
  .tn-app img.tn-status-icon { width: 56px !important; height: 56px !important; object-fit: contain; }
  .tn-app :is(#tn-dashboard-favorites,#tn-dashboard-recent,.tn-favorites-list,.tn-recent-list) a { background: var(--tn-surface-soft) !important; color: var(--tn-ink) !important; border-color: var(--tn-line) !important; }
  .tn-app :is(#tn-dashboard-favorites,#tn-dashboard-recent,.tn-favorites-list,.tn-recent-list) a:hover { background: var(--tn-teal-soft) !important; color: var(--tn-teal-dark) !important; }
  .tn-app :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-empty { background: var(--tn-surface-soft) !important; color: var(--tn-muted) !important; border-color: var(--tn-line) !important; }
  @media (max-width: 900px) {
    .tn-app input[type="image"].tn-action-icon { width: 42px !important; height: 42px !important; min-width: 42px; min-height: 42px; padding: 10px !important; }
  }
}

/* 2026-10-29: áreas de trabajo y pantallas enfocadas.
 * Solo presentación: conserva IDs, eventos Web Forms, grids y exportación.
 */
@media screen {
  .tn-app .tn-shell, .tn-app .tn-workspace { min-width: 0; }
  .tn-app .tn-workspace { max-width: 100%; }
  .tn-app #tn-mobile-direct, .tn-app #tn-mobile-direct:not([hidden]) { display: none !important; }
  .tn-app .tn-page-heading { padding-top: 18px; padding-bottom: 16px; gap: 14px; }
  .tn-app #tn-page-title { font-size: clamp(23px,2vw,29px); letter-spacing: -.6px; }
  .tn-app .tn-page-heading .tn-eyebrow { margin-bottom: 5px; }
  .tn-app[data-tn-view="home"] #tn-favorite-toggle,
  .tn-app[data-tn-view="area"] #tn-favorite-toggle { display: none !important; }
  .tn-app .tn-content { padding: 20px; }
  .tn-app .tn-content:has(> #tn-dashboard) { padding: 0; overflow: visible; }
  .tn-app #tn-dashboard { display: block; min-width: 0; }
  .tn-app #tn-home-dashboard[hidden], .tn-app #tn-area-dashboard[hidden],
  .tn-app .tn-nav-search-results[hidden], .tn-app .tn-hub-item[hidden],
  .tn-app #tn-area-empty[hidden] { display: none !important; }

  /* Cinco entradas estables en el lateral; el resto aparece al buscar. */
  .tn-app .tn-area-nav { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
  .tn-app .tn-area-nav-item { min-width: 0; margin: 0; padding: 0; }
  .tn-app .tn-sidebar .tn-area-nav-link { min-height: 50px; padding: 12px 13px; gap: 13px; border-radius: 12px; font-size: 14px; }
  .tn-app .tn-sidebar .tn-area-nav-link .tn-nav-icon { width: 23px; height: 23px; flex-basis: 23px; }
  .tn-app .tn-sidebar .tn-area-nav-link[aria-current="location"] { color: #fff; background: linear-gradient(100deg,#4d4b91,#303e67); box-shadow: inset 3px 0 #aaa5ff; font-weight: 650; }
  .tn-app .tn-current-module { margin: 6px 12px 9px 25px; padding: 9px 0 9px 13px; border-left: 1px solid #607191; }
  .tn-app .tn-current-module > small { display: block; margin-bottom: 4px; color: #99abc5; font-size: 9px; letter-spacing: 1px; }
  .tn-app .tn-sidebar a.tn-current-module-link { display: block; color: #dce5f6; font-size: 12px; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
  .tn-app .tn-sidebar a.tn-current-module-link:hover { color: #fff; text-decoration: underline; }
  .tn-app .tn-nav-search-results { margin: 20px 0 0; padding-top: 15px; border-top: 1px solid #354968; }
  .tn-app .tn-nav-search-summary { margin: 0 8px 9px; color: #bac9df; font-size: 11px; line-height: 1.5; }
  .tn-app .tn-nav-search-list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
  .tn-app .tn-sidebar a.tn-search-result { display: grid; gap: 3px; padding: 9px 11px; min-height: 50px; }
  .tn-app .tn-search-result small { color: #9eafc9; font-size: 10px; }
  .tn-app .tn-nav-search-results .tn-empty { margin: 0 5px; padding: 12px; border-color: #445875; background: #1d3351; color: #d3dff0; }

  /* Portada: cinco áreas con identidad propia y sin directorio de 43 tarjetas. */
  .tn-app .tn-areas-section { margin: 0; }
  .tn-app .tn-areas-section .tn-section-heading { margin: 0 0 17px; gap: 14px; }
  .tn-app .tn-areas-section .tn-section-heading p { margin: 6px 0 0; max-width: 600px; color: var(--tn-muted); font-size: 13px; line-height: 1.55; }
  .tn-app #tn-dashboard .tn-area-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 0; }
  .tn-app #tn-dashboard a.tn-area-card { --tn-area-accent: #6960d8; --tn-area-soft: #eeeaff; position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 190px; padding: 23px 22px 20px; overflow: hidden; background: var(--tn-white); border: 1px solid var(--tn-line); border-radius: 17px; box-shadow: var(--tn-shadow); color: var(--tn-ink); text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
  .tn-app #tn-dashboard a.tn-area-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg,var(--tn-area-accent),transparent); opacity: .75; }
  .tn-app #tn-dashboard a.tn-area-card:nth-child(2) { --tn-area-accent: #3189a5; --tn-area-soft: #e4f5f7; }
  .tn-app #tn-dashboard a.tn-area-card:nth-child(3) { --tn-area-accent: #47806b; --tn-area-soft: #e8f4ed; }
  .tn-app #tn-dashboard a.tn-area-card:nth-child(4) { --tn-area-accent: #b07c33; --tn-area-soft: #fbf1df; }
  .tn-app #tn-dashboard a.tn-area-card:nth-child(5) { --tn-area-accent: #647bb0; --tn-area-soft: #eaf0fa; }
  .tn-app #tn-dashboard a.tn-area-card:hover { border-color: var(--tn-area-accent); box-shadow: 0 9px 25px rgb(25 42 70 / 10%); transform: translateY(-2px); }
  .tn-app #tn-dashboard .tn-area-card .tn-card-icon { display: inline-grid; place-items: center; width: 43px; height: 43px; margin: 0 0 17px; border-radius: 13px; background: var(--tn-area-soft); color: var(--tn-area-accent); }
  .tn-app #tn-dashboard .tn-area-card .tn-card-group { display: none; }
  .tn-app #tn-dashboard .tn-area-card h3.tn-area-card-title { margin: 0 0 7px; padding: 0 24px 0 0; font-size: 19px; font-weight: 680; line-height: 1.3; letter-spacing: -.3px; color: var(--tn-ink); }
  .tn-app #tn-dashboard .tn-area-description { flex: 1; margin: 0 0 17px; color: var(--tn-muted); font-size: 12px; line-height: 1.65; }
  .tn-app #tn-dashboard .tn-area-count { display: block; padding-right: 20px; color: var(--tn-muted); font-size: 11px; line-height: 1.5; }
  .tn-app #tn-dashboard .tn-area-arrow { position: absolute; bottom: 20px; right: 21px; color: var(--tn-area-accent); font-size: 22px; line-height: 1; }
  .tn-app #tn-home-dashboard > .tn-data-dashboard { margin-top: 26px; }
  .tn-app #tn-dashboard .tn-home-panels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; margin-top: 24px; }
  .tn-app #tn-dashboard .tn-home-panel { min-width: 0; margin: 0; padding: 19px; }
  .tn-app #tn-dashboard .tn-home-panel .tn-section-heading { margin: 0 0 12px; }
  .tn-app #tn-dashboard .tn-home-panel .tn-section-heading h2 { font-size: 17px; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) { display: grid; gap: 0; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-module-card { display: grid; grid-template-columns: 26px minmax(0,1fr) 34px; align-items: center; gap: 9px; min-height: 54px; padding: 7px 0; border: 0; border-bottom: 1px solid var(--tn-line); border-radius: 0; box-shadow: none; background: transparent; transform: none; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-module-card:last-child { border-bottom: 0; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-card-icon { display: inline-grid; width: 26px; height: 29px; margin: 0; border-radius: 8px; background: var(--tn-surface-soft); }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-card-icon svg { width: 17px; height: 17px; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-card-group,
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-card-description { display: none; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) h3.tn-card-title { grid-column: 2; grid-row: 1; margin: 0; padding: 0; font-size: 13px; line-height: 1.45; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) h3.tn-card-title a { display: flex; align-items: center; min-height: 40px; padding: 0; border: 0; background: transparent !important; overflow-wrap: anywhere; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-star { position: static; grid-column: 3; grid-row: 1; width: 34px; height: 38px; }
  .tn-app #tn-dashboard :is(#tn-dashboard-favorites,#tn-dashboard-recent) .tn-empty { padding: 13px; font-size: 12px; }

  /* Un panel del área sólo contiene las herramientas de esa área. */
  .tn-app .tn-area-dashboard { min-width: 0; padding: 24px; border: 1px solid var(--tn-line); border-radius: 17px; background: var(--tn-white); box-shadow: var(--tn-shadow); }
  .tn-app .tn-area-heading { margin-bottom: 21px; }
  .tn-app .tn-area-back { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; margin-bottom: 8px; color: var(--tn-muted); font-size: 12px; text-decoration: none; }
  .tn-app .tn-area-back:hover { color: var(--tn-teal-dark); }
  .tn-app #tn-area-title { margin: 0 0 7px; color: var(--tn-ink); font-size: 27px; font-weight: 700; line-height: 1.25; letter-spacing: -.6px; }
  .tn-app #tn-area-description { margin: 0; color: var(--tn-muted); font-size: 13px; line-height: 1.6; }
  .tn-app .tn-hub-toolbar { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 13px; margin-bottom: 14px; }
  .tn-app .tn-hub-search { flex: 0 1 440px; min-width: 0; }
  .tn-app .tn-hub-search label { display: block; margin-bottom: 6px; color: var(--tn-muted); font-size: 12px; font-weight: 600; }
  .tn-app .tn-hub-search #tn-area-search { width: 100%; min-width: 0; padding-left: 12px; background: var(--tn-surface-soft) !important; }
  .tn-app .tn-hub-count { align-self: flex-end; min-height: 40px; display: inline-flex; align-items: center; padding: 0 11px; border-radius: 999px; background: var(--tn-surface-soft); color: var(--tn-muted); font-size: 11px; white-space: nowrap; }
  .tn-app #tn-hub-modules { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item { position: relative; display: grid; grid-template-columns: 38px minmax(0,1fr) 40px; align-items: center; gap: 13px; min-height: 73px; padding: 11px 0; border: 0; border-top: 1px solid var(--tn-line); border-radius: 0; background: transparent; box-shadow: none; transform: none; }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item:hover { background: var(--tn-surface-soft); }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item .tn-card-icon { display: inline-grid; grid-column: 1; grid-row: 1; place-items: center; width: 38px; height: 38px; margin: 0; border-radius: 11px; background: var(--tn-teal-soft); color: var(--tn-teal-dark); }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item .tn-card-group,
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item .tn-card-description { display: none; }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item h3.tn-card-title { grid-column: 2; grid-row: 1; margin: 0; padding: 0; color: var(--tn-ink); font-size: 14px; line-height: 1.45; }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item h3.tn-card-title a { display: flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
  .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item .tn-star { position: static; grid-column: 3; grid-row: 1; width: 40px; height: 40px; }
  .tn-app #tn-hub-modules > .tn-empty { grid-column: 1 / -1; }
  .tn-app #tn-area-empty { margin-top: 13px; }

  /* Acciones compactas: se conserva la selección y se disparan los mismos eventos. */
  .tn-app .tn-content :is(input[type="submit"],input[type="button"]),
  .tn-app .tn-content button:not(.tn-star):not(.tn-icon-button):not(.tn-chart-bar):not(.tn-direct-option) { min-height: 40px; border-radius: 12px; max-width: 100%; }
  .tn-app .tn-content button:not(.tn-star):not(.tn-icon-button):not(.tn-chart-bar):not(.tn-direct-option) { border-color: var(--tn-line) !important; background: var(--tn-surface-soft); color: var(--tn-ink); box-shadow: none; }
  .tn-app .tn-content button:not(.tn-star):not(.tn-icon-button):not(.tn-chart-bar):not(.tn-direct-option):hover { border-color: #a8a3e6 !important; background: var(--tn-teal-soft); color: var(--tn-teal-dark); box-shadow: none; }
  .tn-app .tn-content button:is(.btn-primary,.tn-primary-button) { background: #6260d8 !important; color: #fff !important; border-color: #6260d8 !important; }
  .tn-app .tn-content :is(input[type="submit"],input[type="button"])[id*="Cancelar"],
  .tn-app .tn-content :is(input[type="submit"],input[type="button"])[id*="cancelar"],
  .tn-app .tn-content :is(input[type="submit"],input[type="button"])[id*="Cancel"],
  .tn-app .tn-content :is(input[type="submit"],input[type="button"])[id*="Cerrar"] { border-color: var(--tn-line) !important; background: var(--tn-surface-soft); color: var(--tn-ink); box-shadow: none; }
  .tn-app .tn-content .tn-direct-options, .tn-app .tn-content .tn-extended-options,
  .tn-gp .tn-direct-options, .tn-personnel .tn-direct-options { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 7px; width: 100%; max-width: 100%; margin-top: 7px; }
  .tn-app .tn-content button.tn-direct-option, .tn-gp button.tn-direct-option, .tn-personnel button.tn-direct-option { display: inline-flex; flex: 0 1 auto; justify-content: center; align-items: center; min-width: 0; width: auto; max-width: 100%; min-height: 38px; padding: 8px 13px; border: 1px solid var(--tn-line) !important; border-radius: 999px; background: var(--tn-surface-soft) !important; color: var(--tn-ink) !important; box-shadow: none; font: 600 12px/1.4 var(--tn-font) !important; text-align: left; white-space: normal; overflow-wrap: anywhere; }
  .tn-app .tn-content button.tn-direct-option:hover, .tn-gp button.tn-direct-option:hover, .tn-personnel button.tn-direct-option:hover { border-color: #a8a3e6 !important; background: var(--tn-teal-soft) !important; color: var(--tn-teal-dark) !important; box-shadow: none; }
  .tn-app .tn-content button.tn-direct-option[aria-pressed="true"], .tn-gp button.tn-direct-option[aria-pressed="true"], .tn-personnel button.tn-direct-option[aria-pressed="true"] { border-color: #aba5e9 !important; background: var(--tn-teal-soft) !important; color: var(--tn-teal-dark) !important; box-shadow: inset 0 -2px #8078d9; }
  .tn-app .tn-content button.tn-direct-option:disabled { background: var(--tn-surface-soft) !important; color: var(--tn-muted) !important; border-color: var(--tn-line) !important; }
  .tn-app tr.tn-legacy-toolbar-row, .tn-app .tn-legacy-toolbar > tbody > tr { align-items: flex-end; }
  .tn-app tr.tn-legacy-toolbar-row > td:first-child:not(:has(input,select,textarea,button,a)) { flex: 0 1 auto; width: auto !important; padding-bottom: 11px; }
  .tn-app tr.tn-legacy-toolbar-row > td:has(> .tn-extended-options) { flex: 1 1 100%; width: 100% !important; }
  .tn-app .tn-form-actions { align-items: center; gap: 9px; padding-top: 13px; }
  .tn-app .tn-form-actions > td { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; flex: 0 1 auto; }
  .tn-app .tn-form-actions :is(input[type="submit"],input[type="button"],button) { width: auto !important; max-width: 100%; min-height: 42px; flex: 0 1 auto; }

  /* Catálogo de reportes: búsqueda arriba y lista acotada, sin desplazar filtros. */
  .tn-app #tn-reportes .tn-fields:has(select[id$="_ddlReportes"]) { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; align-items: start; }
  .tn-app #tn-reportes .tn-fields:has(select[id$="_ddlReportes"]) > .tn-field { min-width: 0; width: 100%; }
  .tn-app #tn-reportes #tn-search { width: 100%; max-width: 480px; }
  .tn-app #tn-reportes .tn-field:has(select[id$="_ddlReportes"]) .tn-direct-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 3px 9px 3px 3px; margin-top: 4px; }
  .tn-app #tn-reportes .tn-field:has(select[id$="_ddlReportes"]) button.tn-direct-option { justify-content: flex-start; width: 100%; min-height: 40px; border-radius: 10px; padding: 8px 11px; font-weight: 500 !important; }
  .tn-login .tn-login-card > #tn-theme-toggle.tn-icon-button { width: 40px; height: 40px; min-width: 40px; min-height: 40px; flex: 0 0 40px; align-self: flex-end; padding: 8px; }
  :root[data-bs-theme="dark"] .tn-app #tn-dashboard .tn-area-card .tn-card-icon { background: var(--tn-teal-soft); color: #c6c6ff; }

  @media (min-width: 1500px) {
    .tn-app #tn-dashboard .tn-area-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
  }
  @media (min-width: 901px) {
    .tn-app.tn-sidebar-folded .tn-current-module { display: none; }
    .tn-app.tn-sidebar-folded .tn-sidebar .tn-area-nav-link { justify-content: center; padding: 12px; }
  }
  @media (max-width: 1180px) {
    .tn-app #tn-dashboard .tn-area-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .tn-app #tn-reportes .tn-field:has(select[id$="_ddlReportes"]) .tn-direct-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
  @media (max-width: 900px) {
    .tn-app .tn-page-heading { padding-top: 17px; padding-bottom: 14px; }
    .tn-app #tn-hub-modules { gap: 0 18px; }
    .tn-app .tn-area-dashboard { padding: 20px; }
  }
  @media (max-width: 620px) {
    .tn-app .tn-workspace { width: 100%; max-width: 100%; }
    .tn-app .tn-topbar { gap: 7px; }
    .tn-app .tn-breadcrumb { overflow: hidden; font-size: 11px; gap: 6px; }
    .tn-app #tn-breadcrumb { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tn-app .tn-page-heading { align-items: flex-start; padding: 16px 13px 13px; }
    .tn-app #tn-page-title { font-size: 23px; line-height: 1.25; overflow-wrap: anywhere; }
    .tn-app .tn-page-heading > div { min-width: 0; }
    .tn-app .tn-content { box-sizing: border-box; min-width: 0; max-width: calc(100% - 24px); padding: 14px; }
    .tn-app .tn-content:has(> #tn-dashboard) { padding: 0; }
    .tn-app .tn-section-heading { flex-wrap: wrap; align-items: flex-start; }
    .tn-app .tn-areas-section .tn-section-heading { margin-bottom: 13px; }
    .tn-app .tn-areas-section .tn-section-heading p { font-size: 12px; }
    .tn-app #tn-dashboard .tn-area-grid { gap: 10px; }
    .tn-app #tn-dashboard a.tn-area-card { min-height: 183px; padding: 18px 14px 15px; border-radius: 14px; }
    .tn-app #tn-dashboard .tn-area-card .tn-card-icon { width: 37px; height: 37px; margin-bottom: 13px; border-radius: 11px; }
    .tn-app #tn-dashboard .tn-area-card h3.tn-area-card-title { font-size: 16px; padding-right: 0; }
    .tn-app #tn-dashboard .tn-area-description { margin-bottom: 13px; font-size: 11px; line-height: 1.55; }
    .tn-app #tn-dashboard .tn-area-count { padding-right: 14px; font-size: 10px; }
    .tn-app #tn-dashboard .tn-area-arrow { bottom: 16px; right: 13px; font-size: 18px; }
    .tn-app #tn-home-dashboard > .tn-data-dashboard { margin-top: 21px; }
    .tn-app #tn-dashboard .tn-home-panels { grid-template-columns: minmax(0,1fr); gap: 13px; margin-top: 20px; }
    .tn-app #tn-dashboard .tn-home-panel { padding: 16px; }
    .tn-app .tn-area-dashboard { padding: 16px; border-radius: 14px; }
    .tn-app .tn-area-heading { margin-bottom: 17px; }
    .tn-app #tn-area-title { font-size: 24px; }
    .tn-app #tn-area-description { font-size: 12px; }
    .tn-app .tn-hub-toolbar { align-items: center; gap: 10px; }
    .tn-app .tn-hub-search { flex-basis: 100%; }
    .tn-app .tn-hub-count { min-height: 29px; padding: 0 9px; }
    .tn-app #tn-hub-modules { grid-template-columns: minmax(0,1fr); gap: 0; }
    .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item { grid-template-columns: 34px minmax(0,1fr) 40px; gap: 10px; min-height: 68px; padding: 10px 0; }
    .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item .tn-card-icon { width: 34px; height: 36px; }
    .tn-app #tn-dashboard #tn-hub-modules .tn-hub-item h3.tn-card-title { font-size: 13px; }
    .tn-app .tn-content .tn-direct-options, .tn-app .tn-content .tn-extended-options { gap: 7px; }
    .tn-app .tn-content button.tn-direct-option, .tn-gp button.tn-direct-option, .tn-personnel button.tn-direct-option { min-height: 44px; padding: 9px 12px; font-size: 12px !important; }
    .tn-app tr.tn-legacy-toolbar-row > td:first-child:not(:has(input,select,textarea,button,a)) { flex: 1 1 100%; width: 100% !important; padding-bottom: 0; }
    .tn-app .tn-form-actions > td { flex: 0 1 auto; }
    .tn-app .tn-form-actions :is(input[type="submit"],input[type="button"],button) { min-height: 44px; padding: 9px 14px; }
    .tn-app #tn-reportes .tn-field:has(select[id$="_ddlReportes"]) .tn-direct-options { grid-template-columns: minmax(0,1fr); max-height: 240px; }
    .tn-app #tn-reportes .tn-field:has(select[id$="_ddlReportes"]) button.tn-direct-option { min-height: 44px; }
    .tn-app #tn-reportes .tn-fields { align-items: flex-start; }
    .tn-app .tn-content .tn-hub-search input[type="search"] { min-height: 44px; font-size: 16px !important; }
  }
  @media (max-width: 359px) {
    .tn-app #tn-dashboard .tn-area-grid { grid-template-columns: minmax(0,1fr); }
    .tn-app #tn-dashboard a.tn-area-card { min-height: 153px; }
  }
}
@media screen {
  .tn-app #tn-content .tn-direct-options > button.tn-direct-option { border-color: var(--tn-line) !important; }
  .tn-app #tn-content .tn-direct-options > button.tn-direct-option:hover,
  .tn-app #tn-content .tn-direct-options > button.tn-direct-option[aria-pressed="true"] { border-color: #aba5e9 !important; }
  .tn-app[data-tn-view="area"] #tn-area-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
  .tn-app[data-tn-view="area"] .tn-area-heading { margin-bottom:16px; }
}
@media screen {
  /* El control fuente conserva su valor sin ampliar el lienzo móvil. */
  .tn-app #tn-content select.tn-direct-source,
  .tn-gp select.tn-direct-source, .tn-personnel select.tn-direct-source {
    width:1px !important; max-width:1px !important; height:1px !important;
    min-width:0 !important; min-height:0 !important; padding:0 !important; border:0 !important;
  }
  /* Consultar centros antes de los textos de contexto; edición mantiene sus avisos. */
  .tn-app #tn-content .cc-admin { display:flex; flex-direction:column; }
  .tn-app #tn-content .cc-admin > h2:first-child { display:none; }
  .tn-app #tn-content .cc-admin > .cc-intro { order:-4; margin-bottom:12px; }
  .tn-app #tn-content .cc-admin > .cc-toolbar { order:-3; margin-bottom:12px; }
  .tn-app #tn-content .cc-admin > .cc-summary { order:-2; margin:8px 0 14px; }
  .tn-app #tn-content .cc-summary > div { padding:12px 14px; }
  .tn-app #tn-content .cc-summary strong { font-size:25px; }
  @media (max-width:620px) {
    .tn-app #tn-content .cc-summary { gap:8px; }
    .tn-app #tn-content .cc-summary > div { padding:10px 12px; font-size:11px; }
    .tn-app #tn-content .cc-summary strong { font-size:23px; }
  }
}
@media screen {
  .tn-app #tn-content > [id$="_TabPanel"].tn-editor-priority { margin-top:0; margin-bottom:20px; }
  .tn-app #tn-content .tn-editor-priority .ajax__tab_header { gap:6px; }
  .tn-app #tn-content .tn-editor-priority .ajax__tab_tab { border-radius:12px; padding:8px 11px !important; }
  @media (max-width:620px) {
    .tn-app #tn-content .tn-editor-priority .ajax__tab_header { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-bottom:10px; padding-bottom:10px !important; }
    .tn-app #tn-content .tn-editor-priority .ajax__tab_header > span { display:block !important; min-width:0; width:100% !important; }
    .tn-app #tn-content .tn-editor-priority .ajax__tab_outer,
    .tn-app #tn-content .tn-editor-priority .ajax__tab_inner { display:block !important; width:100% !important; }
    .tn-app #tn-content .tn-editor-priority .ajax__tab_tab { display:flex !important; width:100% !important; min-height:44px; padding:7px 5px !important; font-size:11px !important; box-sizing:border-box; }
  }
}

/* dasaar: shared brand symbol, preserving existing layout and selectors. */
@media screen {
  .tn-brand-symbol.dasaar-brand-symbol,
  .tn-personnel .brand-mark.dasaar-brand-symbol,
  .tn-gp .brand-mark.dasaar-brand-symbol {
    width: 42px; height: 42px; flex: 0 0 42px; padding: 0 !important;
    background: transparent !important; border: 0 !important; border-radius: 11px;
    box-shadow: none; overflow: hidden; letter-spacing: normal;
  }
  .dasaar-brand-symbol > img { display: block; width: 100%; height: 100%; object-fit: contain; }
  .tn-brand .tn-brand-name { letter-spacing: -.35px; text-transform: none; }
  .tn-sidebar .tn-brand .tn-brand-name { letter-spacing: -.35px; }
  .tn-standalone-header .tn-brand { letter-spacing: -.35px; gap: 10px; }
}
