/* CORE typography: one global stylesheet, fonts are preinstalled assets. */
@font-face{font-family:Roboto;src:url('../fonts/Roboto-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Roboto;src:url('../fonts/Roboto-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root,
html[data-theme="light"] {
    color-scheme: light;
    --fiscal-bg: #f5f7fa;
    --fiscal-surface: #ffffff;
    --fiscal-surface-soft: #f8fafc;
    --fiscal-border: #dce3ea;
    --fiscal-border-soft: #edf1f4;
    --fiscal-text: #34495e;
    --fiscal-muted: #718096;
    --fiscal-heading: #365f82;
    --fiscal-link: #376f9e;
    --fiscal-accent: #3f6f98;
    --fiscal-accent-hover: #345f83;
    --fiscal-secondary: #718096;
    --fiscal-secondary-hover: #5f6f7f;
    --fiscal-danger: #a94442;
    --fiscal-warning: #a36b00;
    --fiscal-ok: #217a3c;
    --fiscal-ko: #a12525;
    --fiscal-error-bg: #fff3f3;
    --fiscal-error-text: #8c2f2f;
    --fiscal-info-bg: #f2f7fb;
    --fiscal-focus: #8fb3d0;
    --fiscal-focus-ring: rgba(63, 111, 152, .16);
    --fiscal-shadow: rgba(20, 42, 64, .05);
    --fiscal-control-help-gap: 5px;
}

html[data-theme="dark"] {
    color-scheme: dark;
    --fiscal-bg: #111820;
    --fiscal-surface: #18212b;
    --fiscal-surface-soft: #1c2732;
    --fiscal-border: #2b3947;
    --fiscal-border-soft: #24313d;
    --fiscal-text: #d8e1e9;
    --fiscal-muted: #95a4b2;
    --fiscal-heading: #96b9d7;
    --fiscal-link: #91b8d9;
    --fiscal-accent: #527fa5;
    --fiscal-accent-hover: #638fb2;
    --fiscal-secondary: #536474;
    --fiscal-secondary-hover: #617485;
    --fiscal-danger: #9e5552;
    --fiscal-warning: #d7a84a;
    --fiscal-ok: #73bd88;
    --fiscal-ko: #df8581;
    --fiscal-error-bg: #2b2022;
    --fiscal-error-text: #efaaa6;
    --fiscal-info-bg: #192734;
    --fiscal-focus: #5f89aa;
    --fiscal-focus-ring: rgba(95, 137, 170, .20);
    --fiscal-shadow: rgba(0, 0, 0, .18);
}



/* Fiscal 0.10.13 · Paleta FESTA
   Solo identidad cromática. No modifica tipografía, tamaños, pesos,
   sombras, radios, espaciados, geometría, responsive ni componentes. */
html[data-palette="festa"][data-theme="light"] {
    --fiscal-bg: #f5f9f9;
    --fiscal-surface: #ffffff;
    --fiscal-surface-soft: #f7fbfb;
    --fiscal-border: #d4e5e3;
    --fiscal-border-soft: #e9f2f1;
    --fiscal-text: #355454;
    --fiscal-muted: #708a88;
    --fiscal-heading: #076265;
    --fiscal-link: #187b80;
    --fiscal-accent: #2f8a92;
    --fiscal-accent-hover: #28777e;
    --fiscal-secondary: #76918f;
    --fiscal-secondary-hover: #657f7d;
    --fiscal-danger: #a94442;
    --fiscal-warning: #9b7300;
    --fiscal-ok: #2f8052;
    --fiscal-ko: #a12525;
    --fiscal-error-bg: #fff5f5;
    --fiscal-error-text: #8c2f2f;
    --fiscal-info-bg: #eaf6f6;
    --fiscal-focus: #8fb8b3;
    --fiscal-focus-ring: rgba(47, 138, 146, .14);
    --fiscal-shadow: rgba(7, 98, 101, .045);
}

html[data-palette="festa"][data-theme="dark"] {
    --fiscal-bg: #101919;
    --fiscal-surface: #172323;
    --fiscal-surface-soft: #1b2a2a;
    --fiscal-border: #2b4140;
    --fiscal-border-soft: #233534;
    --fiscal-text: #d7e6e4;
    --fiscal-muted: #98adaa;
    --fiscal-heading: #9dceca;
    --fiscal-link: #91ccc8;
    --fiscal-accent: #4f9ca1;
    --fiscal-accent-hover: #61aab0;
    --fiscal-secondary: #536c6a;
    --fiscal-secondary-hover: #617b79;
    --fiscal-danger: #9e5552;
    --fiscal-warning: #d0a44a;
    --fiscal-ok: #78bf93;
    --fiscal-ko: #df8581;
    --fiscal-error-bg: #2b2022;
    --fiscal-error-text: #efaaa6;
    --fiscal-info-bg: #192c2c;
    --fiscal-focus: #6ea7a4;
    --fiscal-focus-ring: rgba(110, 167, 164, .19);
    --fiscal-shadow: rgba(0, 0, 0, .18);
}

html, body, input, select, textarea, button, table {
    font-family: Roboto, "Noto Sans", Helvetica, Arial, sans-serif;
    font-size: 13px;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--fiscal-bg);
    color: var(--fiscal-text);
}

/* Mantiene fija la geometría horizontal entre pantallas cortas y largas.
   Se reserva siempre el espacio del scrollbar vertical para evitar que
   el contenido centrado se desplace al entrar en módulos con más altura. */
html {
    scrollbar-gutter: stable both-edges;
}

/* Simetría visual de los márgenes reservados para el scrollbar.
   El body ocupa el área útil entre ambos gutters y cierra sus límites
   con el mismo borde utilizado en el resto de Fiscal. */
body {
    min-height: 100vh;
    border-left: 1px solid var(--fiscal-border);
    border-right: 1px solid var(--fiscal-border);
}

/* Apariencia · Enmarcar web
   Sí (por defecto): marco lateral continuo de toda la aplicación.
   No: se conserva la misma geometría con bordes transparentes y el
   contorno visible queda únicamente en la barra superior. */
html.fiscal-web-frame-off body {
    border-left-color: transparent;
    border-right-color: transparent;
}
html.fiscal-web-frame-off .fiscal-topbar {
    border: 1px solid var(--fiscal-border);
}

html, body, .fiscal-topbar, .fiscal-card, .fiscal-kpi, .fiscal-menu a,
.fiscal-form, input, select, textarea, button {
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

a { color: var(--fiscal-link); text-decoration: none; }
a:hover { text-decoration: underline; }

.fiscal-shell { min-height: 100vh; }

.fiscal-topbar {
    height: 52px;
    background: var(--fiscal-surface);
    border-bottom: 1px solid var(--fiscal-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 22px;
}

.fiscal-brand {
    display: flex;
    align-items: stretch;
    align-self: stretch;
    min-width: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--fiscal-heading);
}

/* Marca del módulo activo: PNG real con texto alternativo si el recurso falla. */
.fiscal-brand > a {
    display: flex;
    align-items: center;
    flex: 0 0 90px;
    width: 90px;
    height: 100%;
    min-height: 52px;
    overflow: hidden;
    white-space: nowrap;
    vertical-align: middle;
    color: var(--fiscal-heading);
    font-size: 16px;
    line-height: 1;
}
.fiscal-module-brand img {
    display: block;
    flex: 0 0 81px;
    width: 81px;
    height: 36px;
    max-width: 81px;
    object-fit: contain;
    object-position: left center;
}
.fiscal-module-brand-text {
    font-weight: 700;
}

.fiscal-user { display: flex; align-items: center; gap: 10px; color: var(--fiscal-muted); }
.fiscal-main { max-width: 1440px; margin: 24px auto; padding: 0 18px; }

.fiscal-card {
    background: var(--fiscal-surface);
    border: 1px solid var(--fiscal-border);
    border-radius: 6px;
    padding: 18px 20px;
    box-shadow: 0 1px 2px var(--fiscal-shadow);
}

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

.fiscal-kpi {
    background: var(--fiscal-surface);
    border: 1px solid var(--fiscal-border);
    border-radius: 6px;
    padding: 16px;
}

.fiscal-kpi strong { display: block; font-size: 22px; color: var(--fiscal-heading); margin-top: 4px; }
.fiscal-menu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }

.fiscal-menu a {
    display: block;
    background: var(--fiscal-surface);
    border: 1px solid var(--fiscal-border);
    border-radius: 6px;
    padding: 16px;
    color: var(--fiscal-text);
}

.fiscal-menu a:hover { border-color: var(--fiscal-focus); text-decoration: none; }
.fiscal-menu b { display: block; color: var(--fiscal-heading); margin-bottom: 4px; }

.fiscal-btn,
.fiscal-theme-toggle {
    border: 0;
    border-radius: 4px;
    padding: 8px 13px;
    cursor: pointer;
    background: var(--fiscal-accent);
    color: #fff;
}

.fiscal-btn:hover { background: var(--fiscal-accent-hover); }
.fiscal-btn-secondary { background: var(--fiscal-secondary); }
.fiscal-btn-secondary:hover { background: var(--fiscal-secondary-hover); }
.fiscal-btn-danger { background: var(--fiscal-danger); }
.fiscal-btn-danger:hover { background: var(--fiscal-danger); filter: brightness(.90); }

.fiscal-theme-toggle {
    background: transparent;
    color: var(--fiscal-muted);
    border: 1px solid var(--fiscal-border);
    min-width: 64px;
    padding: 6px 9px;
}

.fiscal-theme-toggle:hover {
    color: var(--fiscal-text);
    border-color: var(--fiscal-focus);
    background: var(--fiscal-surface-soft);
}

.fiscal-login-theme {
    position: fixed;
    top: 16px;
    right: 16px;
}

.fiscal-form {
    max-width: 420px;
    margin: 9vh auto 0;
    background: var(--fiscal-surface);
    border: 1px solid var(--fiscal-border);
    border-radius: 6px;
    padding: 24px;
    box-shadow: 0 1px 2px var(--fiscal-shadow);
}

.fiscal-form h1 { margin: 0 0 18px; font-size: 20px; color: var(--fiscal-heading); }
.fiscal-form h1.fiscal-login-logo {
    height: 42px;
    margin: 0 0 7px;
    background: url("../img/fiscal-logo-menu.svg") left center / auto 34px no-repeat;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
    white-space: nowrap;
}
/* Identidad del tenant: logotipo explícito, sin estilos inline. */
.fiscal-form h1.fiscal-login-logo.fiscal-login-logo-custom {
    background: none;
    height: auto;
    min-height: 42px;
    line-height: 1;
    overflow: visible;
}
.fiscal-login-logo-custom img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 105px;
    object-fit: contain;
    object-position: left center;
}
.fiscal-login-tagline {
    margin: 0 0 16px;
    color: var(--fiscal-muted);
    font-size: 12px;
    line-height: 1.35;
    font-weight: 400;
}
.fiscal-form label { display: block; margin: 11px 0 4px; }

.fiscal-form input,
.fiscal-form select,
.fiscal-form textarea {
    width: 100%;
    color: var(--fiscal-text);
    background: var(--fiscal-surface-soft);
    border: 1px solid var(--fiscal-border);
    border-radius: 4px;
    padding: 9px;
}

.fiscal-form input:focus,
.fiscal-form select:focus,
.fiscal-form textarea:focus {
    outline: none;
    border-color: var(--fiscal-focus);
}

.fiscal-form .fiscal-btn { width: 100%; margin-top: 16px; }
.fiscal-error { margin: 12px 0; padding: 9px 10px; border-left: 4px solid var(--fiscal-danger); background: var(--fiscal-error-bg); color: var(--fiscal-error-text); }
.fiscal-info { margin: 12px 0; padding: 9px 10px; border-left: 4px solid var(--fiscal-focus); background: var(--fiscal-info-bg); }
.fiscal-table { width: 100%; border-collapse: collapse; }
.fiscal-table td, .fiscal-table th { padding: 8px 7px; border-bottom: 1px solid var(--fiscal-border-soft); text-align: left; }
.fiscal-table th { color: var(--fiscal-muted); font-weight: 500; }
.fiscal-ok { color: var(--fiscal-ok); font-weight: 500; }
.fiscal-ko { color: var(--fiscal-ko); font-weight: 500; }
.fiscal-muted { color: var(--fiscal-muted); }

@media (max-width: 850px) {
    .fiscal-grid, .fiscal-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .fiscal-grid, .fiscal-menu { grid-template-columns: 1fr; }
    .fiscal-topbar { padding: 0 12px; }
    .fiscal-user > span { display: none; }
    .fiscal-brand > a { flex-basis: 82px; width: 82px; min-height: 50px; }
    .fiscal-module-brand img { width: 73px; height: 32px; max-width: 73px; }
}

/* Módulos de mantenimiento */
.fiscal-brand a { color: var(--fiscal-heading); text-decoration: none; }
.fiscal-brand-section { margin-left: 8px; font-weight: 500; color: var(--fiscal-muted); white-space: nowrap; }
.fiscal-inline-form { margin: 0; }
.fiscal-page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.fiscal-page-head h1 { margin:0 0 4px; font-size:20px; color:var(--fiscal-heading); }
.fiscal-page-head h2 { margin:0; }
.fiscal-badge { display:inline-block; border:1px solid var(--fiscal-border); border-radius:12px; padding:4px 9px; color:var(--fiscal-muted); background:var(--fiscal-surface); font-size:12px; }
.fiscal-panel { background:var(--fiscal-surface); border:1px solid var(--fiscal-border); border-radius:6px; padding:18px 20px; margin-bottom:14px; box-shadow:0 1px 2px var(--fiscal-shadow); }
.fiscal-panel h2 { margin:0 0 14px; font-size:15px; color:var(--fiscal-heading); font-weight:700; }
.fiscal-panel-compact { padding:12px 16px; }
.fiscal-form-grid { display:grid; gap:12px 14px; }
.fiscal-form-grid > * { min-width:0; }
.fiscal-form-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.fiscal-form-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.fiscal-col-full { grid-column:1 / -1; }
.fiscal-field label { display:block; margin:0 0 4px; color:var(--fiscal-text); }
.fiscal-field input,.fiscal-field select,.fiscal-field textarea { width:100%; min-height:35px; padding:8px 9px; color:var(--fiscal-text); background:var(--fiscal-surface-soft); border:1px solid var(--fiscal-border); border-radius:4px; }
.fiscal-field input:focus,.fiscal-field select:focus,.fiscal-field textarea:focus { outline:none; border-color:var(--fiscal-focus); }
.fiscal-field input[readonly] { color:var(--fiscal-muted); cursor:default; }
.fiscal-help { margin-top:12px; color:var(--fiscal-muted); font-size:12px; }
/* CORE 0.11.34 · separación global y uniforme entre un control y su texto auxiliar.
   Aplica a campos actuales y futuros sin depender de una pantalla concreta. */
:is(input,select,textarea,.fiscal-sensitive-editor) + :is(.fiscal-muted,.fiscal-field-help,.fiscal-control-help,.fiscal-help-under-control,small),
.fiscal-field > :is(.fiscal-field-help,.fiscal-control-help,.fiscal-help-under-control),
.fiscal-field > .fiscal-help {
    display:block;
    margin-top:var(--fiscal-control-help-gap,5px);
}
.fiscal-filterbar + .fiscal-search-help,
.fiscal-searchbar + .fiscal-search-help {
    margin-top:var(--fiscal-control-help-gap,5px);
}
/* Si hay ayuda inmediatamente debajo, el espaciado lo gobierna exclusivamente
   --fiscal-control-help-gap: no se suma el margen inferior propio de la barra. */
.fiscal-filterbar:has(+ .fiscal-search-help),
.fiscal-searchbar:has(+ .fiscal-search-help) {
    margin-bottom:0;
}
.fiscal-success { margin:0 0 14px; padding:9px 10px; border-left:4px solid var(--fiscal-ok); background:var(--fiscal-info-bg); color:var(--fiscal-text); }
.fiscal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:4px; }
.fiscal-actions .fiscal-btn { display:inline-block; min-width:105px; text-align:center; }
.fiscal-readonly-grid { display:grid; grid-template-columns:2fr 1fr; gap:16px; }
.fiscal-readonly-grid span { display:block; color:var(--fiscal-muted); font-size:12px; margin-bottom:2px; }
.fiscal-readonly-grid strong { display:block; font-weight:500; overflow-wrap:anywhere; }

@media (max-width: 720px) {
    .fiscal-form-grid-2,.fiscal-form-grid-3,.fiscal-readonly-grid { grid-template-columns:1fr; }
    .fiscal-page-head { align-items:flex-start; flex-wrap:wrap; }
    .fiscal-page-head > .fiscal-actions { flex:1 1 100%; width:100%; min-width:0; flex-wrap:wrap; justify-content:flex-start; }
}

/* Operativa fiscal completa */
.fiscal-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.fiscal-filterbar,.fiscal-inline-fields,.fiscal-actions-inline,.fiscal-subnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.fiscal-filterbar input{flex:1 1 320px}.fiscal-filterbar input,.fiscal-filterbar select,.fiscal-inline-fields input,.fiscal-inline-fields select,.fiscal-line-row input,.fiscal-line-row select,.fiscal-irpf select,.fiscal-user-row input,.fiscal-user-row select{min-height:34px;padding:7px 8px;border:1px solid var(--fiscal-border);border-radius:4px;background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-subnav{padding:8px 0}.fiscal-subnav a{padding:6px 9px;border:1px solid var(--fiscal-border);border-radius:4px;background:var(--fiscal-surface)}
.fiscal-table-wrap{overflow:auto}.fiscal-table-hover tbody tr:hover{background:var(--fiscal-surface-soft)}.fiscal-table-hover tbody tr:hover>td:first-child{box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent)}html.fiscal-row-accent-off .fiscal-table-hover tbody tr:hover>td:first-child,html[data-row-accent="0"] .fiscal-table-hover tbody tr:hover>td:first-child{box-shadow:none!important}.fiscal-row-link{cursor:pointer}.fiscal-num{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.fiscal-empty{padding:18px;text-align:center;color:var(--fiscal-muted)}.fiscal-nowrap{white-space:nowrap}
.fiscal-status{display:inline-block;padding:3px 7px;border:1px solid var(--fiscal-border);border-radius:10px;font-size:11px;white-space:nowrap}.fiscal-status-ok{color:var(--fiscal-ok)}.fiscal-status-ko{color:var(--fiscal-ko)}.fiscal-status-neutral{color:var(--fiscal-muted)}
.fiscal-check{display:flex!important;align-items:center;gap:7px;margin-top:8px}.fiscal-check input{width:auto!important;min-height:auto!important}
.fiscal-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.fiscal-summary-4{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.fiscal-summary>div{background:var(--fiscal-surface);border:1px solid var(--fiscal-border);border-radius:6px;padding:12px}.fiscal-summary span{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:4px}.fiscal-summary b{font-size:14px}
.fiscal-line-row{display:grid;grid-template-columns:minmax(240px,1fr) 85px 105px 80px 80px 105px 120px;gap:6px;align-items:center;padding:7px 0;border-bottom:1px solid var(--fiscal-border-soft)}.fiscal-line-row input,.fiscal-line-row select{width:100%;min-width:0}.fiscal-line-new{background:var(--fiscal-surface-soft);padding:9px 7px;margin-top:8px;border-radius:4px}.fiscal-line-actions{display:flex;gap:5px}.fiscal-btn-small{padding:6px 9px;min-width:auto!important}.fiscal-irpf{display:flex;justify-content:flex-end;align-items:center;gap:7px;margin-top:10px}.fiscal-panel-emission{border-left:4px solid var(--fiscal-accent)}
.fiscal-link-button{border:0;background:transparent;color:var(--fiscal-link);cursor:pointer;padding:0;font:inherit}.fiscal-link-button:hover{text-decoration:underline}.fiscal-mono{font-family:"Roboto Mono",Consolas,monospace;font-size:12px}.fiscal-break{overflow-wrap:anywhere}.fiscal-code{max-height:420px;overflow:auto;padding:12px;background:var(--fiscal-surface-soft);border:1px solid var(--fiscal-border);border-radius:4px;white-space:pre-wrap;overflow-wrap:anywhere}
.fiscal-user-row{display:grid;grid-template-columns:minmax(220px,1.3fr) 1fr 120px 90px 200px 80px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--fiscal-border-soft)}
@media(max-width:1000px){.fiscal-line-row{grid-template-columns:1fr 80px 100px 70px 70px 95px}.fiscal-line-actions{grid-column:1/-1;justify-content:flex-end}.fiscal-user-row{grid-template-columns:1fr 1fr}.fiscal-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.fiscal-dashboard-head{display:block}.fiscal-summary,.fiscal-summary-4{grid-template-columns:repeat(2,minmax(0,1fr))}.fiscal-line-row,.fiscal-user-row{display:grid;grid-template-columns:1fr}.fiscal-line-actions{grid-column:auto}.fiscal-topbar{height:auto;min-height:54px;gap:8px}.fiscal-user{flex-wrap:wrap;justify-content:flex-end}}

/* v0.9.1 - claridad de líneas y cobros */
.fiscal-line-head{display:grid;grid-template-columns:minmax(240px,1fr) 85px 105px 80px 80px 105px 120px;gap:6px;align-items:end;padding:0 0 5px;color:var(--fiscal-muted);font-size:11px}
.fiscal-payment-form{display:grid;grid-template-columns:135px 150px 180px minmax(180px,1fr) auto;gap:8px;align-items:end;margin-top:12px}
.fiscal-payment-form label{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:4px}
.fiscal-payment-form input,.fiscal-payment-form select{width:100%;min-height:34px;padding:7px 8px;border:1px solid var(--fiscal-border);border-radius:4px;background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-payment-action{align-self:end}
@media(max-width:1000px){.fiscal-line-head{grid-template-columns:1fr 80px 100px 70px 70px 95px}.fiscal-line-head>div:last-child{display:none}.fiscal-payment-form{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.fiscal-line-head{display:none}.fiscal-payment-form{grid-template-columns:1fr}}

/* UI global v0.10.0 · navegación, idiomas, mensajes y búsqueda AJAX */
.fiscal-topbar{
    position:sticky;top:0;z-index:1000;height:54px;justify-content:flex-start;align-items:stretch;gap:18px;padding:0 18px;
    box-shadow:0 1px 0 var(--fiscal-shadow);
}
.fiscal-brand{flex:0 0 auto}.fiscal-brand a{white-space:nowrap}
.fiscal-main-nav{display:flex;align-items:stretch;align-self:stretch;gap:2px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
.fiscal-main-nav::-webkit-scrollbar{display:none}
.fiscal-main-nav a{display:flex;align-items:center;align-self:stretch;min-height:54px;padding:0 10px;color:var(--fiscal-muted);white-space:nowrap;border-bottom:2px solid transparent}
.fiscal-main-nav a:hover{color:var(--fiscal-text);text-decoration:none;background:var(--fiscal-surface-soft)}
.fiscal-main-nav a.is-active{color:var(--fiscal-heading);border-bottom-color:var(--fiscal-accent);font-weight:500}
.fiscal-top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--fiscal-muted);white-space:nowrap}
.fiscal-top-action{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;padding:0;border:1px solid var(--fiscal-border);border-radius:2px;background:transparent;color:var(--fiscal-muted);cursor:pointer;box-sizing:border-box;text-decoration:none}
.fiscal-top-action:hover,.fiscal-top-action:focus-visible{border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);color:var(--fiscal-text);outline:none;text-decoration:none}
.fiscal-main-nav a,.fiscal-theme-toggle,.fiscal-language-current,.fiscal-language-option,.fiscal-user-profile span,.fiscal-user-profile a,.fiscal-logout{font-size:13px}
.fiscal-user-profile{display:flex;align-items:stretch;border:1px solid var(--fiscal-border);overflow:hidden;background:var(--fiscal-surface)}
.fiscal-user-profile span,.fiscal-user-profile a{display:flex;align-items:center;padding:6px 8px;font-weight:500;line-height:1;color:var(--fiscal-muted);text-decoration:none}
.fiscal-user-profile a:hover,.fiscal-user-profile a:focus-visible{color:var(--fiscal-text);background:var(--fiscal-surface-soft);text-decoration:none}
.fiscal-user-name{max-width:190px;overflow:hidden;text-overflow:ellipsis}
.fiscal-user-role{border-left:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft);color:var(--fiscal-heading)!important}
.fiscal-logout{border:1px solid var(--fiscal-border);background:transparent;color:var(--fiscal-muted);cursor:pointer;padding:6px 9px;font:inherit;min-width:52px}
.fiscal-logout:hover{color:var(--fiscal-text);border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);text-decoration:none}
.fiscal-nav-toggle{display:none;border:1px solid var(--fiscal-border);background:transparent;color:var(--fiscal-text);border-radius:4px;padding:5px 8px;cursor:pointer}
.fiscal-module-selector{position:relative;display:inline-flex;align-items:center}
.fiscal-module-current{box-sizing:border-box;width:44px;min-width:44px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-accent);color:#fff;padding:6px 4px;cursor:pointer;font:inherit;font-size:13px;font-weight:500;line-height:1;text-align:center}
.fiscal-module-current:hover,.fiscal-module-current:focus-visible{filter:brightness(1.05)}
.fiscal-module-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:2250;width:max-content;min-width:44px;max-width:min(430px,calc(100vw - 20px));padding:2px 0;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface);box-shadow:0 8px 22px rgba(0,0,0,.18);overflow:hidden}
.fiscal-module-menu[hidden]{display:none}
.fiscal-module-option{display:grid;grid-template-columns:44px max-content;align-items:center;width:max-content;min-width:100%;box-sizing:border-box;border:0;background:transparent;color:var(--fiscal-muted);padding:0;text-decoration:none;font:inherit;font-size:13px;line-height:1;white-space:nowrap}
.fiscal-module-option-code,.fiscal-module-option-description{box-sizing:border-box;display:flex;align-items:center;min-height:27px;padding:6px 4px}
.fiscal-module-option-code{justify-content:center;font-weight:500;text-align:center}
.fiscal-module-option-description{justify-content:flex-start;padding-left:10px;padding-right:10px;font-weight:400;color:var(--fiscal-muted)}
.fiscal-module-option:hover,.fiscal-module-option:focus-visible{background:var(--fiscal-surface-soft);color:var(--fiscal-text);text-decoration:none;outline:none}
.fiscal-module-option:hover .fiscal-module-option-description,.fiscal-module-option:focus-visible .fiscal-module-option-description{color:var(--fiscal-text)}
.fiscal-module-option.is-active .fiscal-module-option-code{background:var(--fiscal-accent);color:#fff}
.fiscal-language{position:relative;display:inline-flex;align-items:center}
.fiscal-language-current{min-width:44px;border:1px solid var(--fiscal-border);border-radius:2px;background:transparent;color:var(--fiscal-muted);padding:6px 9px;cursor:pointer;font:inherit;font-weight:500;line-height:1;transition:border-color .14s ease,background-color .14s ease,color .14s ease,box-shadow .14s ease}
.fiscal-language-current:hover,.fiscal-language-current:focus-visible{border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);color:var(--fiscal-text);outline:none}
.fiscal-language-current[aria-expanded="true"]{border-color:var(--fiscal-accent);background:var(--fiscal-accent);color:#fff}
.fiscal-language-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:2200;min-width:100%;padding:2px 0;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.fiscal-language-menu[hidden]{display:none}
.fiscal-language-option{display:block;width:100%;min-width:44px;box-sizing:border-box;border:0;background:transparent;color:var(--fiscal-muted);padding:6px 9px;text-align:center;text-decoration:none;cursor:pointer;font:inherit;font-weight:500;line-height:1}
.fiscal-language-option:hover,.fiscal-language-option:focus-visible{background:var(--fiscal-surface-soft);color:var(--fiscal-text);text-decoration:none}
.fiscal-language-option.is-active{background:var(--fiscal-accent);color:#fff}
.fiscal-breadcrumb{display:flex;align-items:center;gap:7px;margin:-5px 0 14px;color:var(--fiscal-muted);font-size:12px;min-height:18px}
.fiscal-breadcrumb a{color:var(--fiscal-muted)}.fiscal-breadcrumb a:hover{color:var(--fiscal-link)}

.fiscal-flash{margin:0 0 14px;padding:9px 10px;border-left:4px solid var(--fiscal-focus);background:var(--fiscal-info-bg);box-sizing:border-box;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.fiscal-flash-success{border-left-color:var(--fiscal-ok)}.fiscal-flash-error{border-left-color:var(--fiscal-danger);background:var(--fiscal-error-bg);color:var(--fiscal-error-text)}
.fiscal-flash-warning{border-left-color:#b7791f}
.fiscal-toast-root{position:fixed;left:50%;right:auto;top:62px;bottom:auto;transform:translateX(-50%);z-index:3000;display:flex;flex-direction:column;gap:8px;width:min(460px,calc(100vw - 36px));pointer-events:none}
.fiscal-toast{display:flex;align-items:flex-start;gap:10px;background:var(--fiscal-surface);color:var(--fiscal-text);border:1px solid var(--fiscal-border);border-left:4px solid var(--fiscal-focus);border-radius:6px;padding:11px 12px;box-shadow:0 10px 28px rgba(0,0,0,.14);opacity:0;transform:translateY(8px);transition:opacity .16s ease,transform .16s ease;pointer-events:auto}
.fiscal-toast.is-visible{opacity:1;transform:translateY(0)}.fiscal-toast-success{border-left-color:var(--fiscal-ok)}.fiscal-toast-error{border-left-color:var(--fiscal-danger)}.fiscal-toast-warning{border-left-color:#b7791f}
.fiscal-toast-text{flex:1;min-width:0;line-height:1.35;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.fiscal-toast-close{border:0;background:transparent;color:var(--fiscal-muted);cursor:pointer;font-size:17px;line-height:1;padding:0 2px}
.fiscal-modal-overlay{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(8,14,20,.42);backdrop-filter:blur(2px);opacity:0;transition:opacity .15s ease}
.fiscal-modal-overlay.is-visible{opacity:1}.fiscal-modal{width:min(430px,100%);background:var(--fiscal-surface);border:1px solid var(--fiscal-border);border-radius:8px;box-shadow:0 18px 55px rgba(0,0,0,.24);padding:20px}
.fiscal-modal-message{font-size:14px;line-height:1.45;color:var(--fiscal-text)}.fiscal-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

.fiscal-filterbar[data-fiscal-search-form]{position:relative;z-index:2}
.fiscal-filterbar[data-fiscal-search-form]:focus-within{z-index:60}
.fiscal-filterbar[data-fiscal-search-form].fiscal-unit-filter-open{z-index:80}
.fiscal-filterbar[data-fiscal-search-form]::after{content:"";position:absolute;right:58px;top:50%;display:none;width:13px;height:13px;margin-top:-8px;border:2px solid var(--fiscal-border);border-top-color:var(--fiscal-accent);border-radius:50%;animation:fiscal-spin .7s linear infinite;pointer-events:none}
.fiscal-filterbar[data-fiscal-search-form].is-loading::after{display:block}
.fiscal-search-help{color:var(--fiscal-muted);font-size:11px;margin:var(--fiscal-control-help-gap,5px) 0 12px}
.fiscal-search-count{display:inline-flex;align-items:center;justify-content:flex-end;flex:0 0 52px;width:52px;min-width:52px;max-width:52px;min-height:34px;box-sizing:border-box;padding:0 7px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface-soft);color:var(--fiscal-muted);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;overflow:hidden}
.fiscal-search-count>[data-search-count]{display:block;width:100%;overflow:hidden;text-overflow:clip;text-align:right;white-space:nowrap}
@keyframes fiscal-spin{to{transform:rotate(360deg)}}

.fiscal-line-head{display:grid;grid-template-columns:minmax(240px,1fr) 85px 105px 80px 80px 105px 120px;gap:6px;padding:0 0 5px;color:var(--fiscal-muted);font-size:11px;border-bottom:1px solid var(--fiscal-border-soft)}
.fiscal-payment-form{display:grid;grid-template-columns:145px 120px 180px minmax(180px,1fr) auto;gap:8px;align-items:end;margin-top:12px}
.fiscal-payment-form label{display:block;margin-bottom:4px;color:var(--fiscal-muted);font-size:11px}.fiscal-payment-form input,.fiscal-payment-form select{width:100%;min-height:34px;padding:7px 8px;border:1px solid var(--fiscal-border);border-radius:4px;background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-payment-action{display:flex;align-items:flex-end}

@media(max-width:1279px){
    .fiscal-user-name{display:none}.fiscal-user-role{border-left:0}.fiscal-topbar{gap:10px}.fiscal-main-nav a{padding:0 7px}
}
@media(max-width:860px){
    .fiscal-topbar{height:auto;min-height:54px;flex-wrap:wrap;align-items:center;padding:8px 12px}.fiscal-nav-toggle{display:block}.fiscal-main-nav{display:none;order:4;flex-basis:100%;height:auto;overflow:visible;flex-wrap:wrap;border-top:1px solid var(--fiscal-border);padding-top:5px}.fiscal-main-nav.is-open{display:flex}.fiscal-main-nav a{height:34px;min-height:34px;border-bottom:0;border-radius:4px}.fiscal-main-nav a.is-active{background:var(--fiscal-surface-soft)}.fiscal-top-actions{margin-left:auto}.fiscal-main{margin-top:18px}.fiscal-line-head{display:none}.fiscal-payment-form{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
    .fiscal-theme-toggle{min-width:54px}.fiscal-payment-form{grid-template-columns:1fr}.fiscal-breadcrumb{overflow:auto;white-space:nowrap}
}
.fiscal-login-tools{position:fixed;top:16px;right:16px;display:flex;align-items:center;gap:8px;z-index:20}.fiscal-login-tools .fiscal-language-option{text-decoration:none}.fiscal-login-theme{display:none}
/* v0.10.0 · ajustes finales de búsqueda/usuarios */
.fiscal-searchbar{align-items:center}
.fiscal-search-hint{color:var(--fiscal-muted);font-size:11px;white-space:nowrap}
.fiscal-user-row{grid-template-columns:minmax(220px,1.3fr) minmax(150px,1fr) 120px 155px 90px 200px 80px}
.fiscal-field-span-2{grid-column:1 / -1}
@media(max-width:1100px){.fiscal-user-row{grid-template-columns:1fr 1fr 120px 150px}.fiscal-user-row>input[type="password"],.fiscal-user-row>button{grid-column:auto}}
@media(max-width:720px){.fiscal-search-hint{flex-basis:100%}.fiscal-user-row{grid-template-columns:1fr}}

/* Fiscal 0.10.1 · geometría más recta/minimalista */
.fiscal-panel,.fiscal-summary>div,.fiscal-toast{border-radius:3px}
.fiscal-field input,.fiscal-field select,.fiscal-field textarea,
.fiscal-filterbar input,.fiscal-filterbar select,.fiscal-inline-fields input,.fiscal-inline-fields select,
.fiscal-line-row input,.fiscal-line-row select,.fiscal-irpf select,.fiscal-user-row input,.fiscal-user-row select,
.fiscal-payment-form input,.fiscal-payment-form select,.fiscal-subnav a,.fiscal-nav-toggle,.fiscal-language,.fiscal-user-profile,.fiscal-theme-toggle,.fiscal-logout,.fiscal-code{border-radius:2px}
.fiscal-modal{border-radius:4px}
.fiscal-status{border-radius:3px}


/* MASTER DEV · Bitácora técnica */
.fiscal-dev-badge{display:inline-block;padding:2px 6px;border:1px solid var(--fiscal-border);border-radius:2px;color:var(--fiscal-muted);font-size:10px;letter-spacing:.02em;vertical-align:middle}
.fiscal-dev-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.fiscal-dev-kpi{border:1px solid var(--fiscal-border);background:var(--fiscal-surface);padding:11px 12px;border-radius:3px}.fiscal-dev-kpi span{display:block;color:var(--fiscal-muted);font-size:11px}.fiscal-dev-kpi b{display:block;margin-top:4px;font-size:17px}.fiscal-dev-kpi-action{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.fiscal-dev-kpi-action:hover,.fiscal-dev-kpi-action:focus-visible{border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);outline:none}.fiscal-dev-kpi-action.is-active{border-color:var(--fiscal-accent);background:var(--fiscal-surface-soft);box-shadow:inset 0 0 0 1px rgba(20,93,160,.12)}
.fiscal-dev-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:14px;align-items:start}.fiscal-dev-layout>section{min-width:0}.fiscal-dev-layout>aside{min-width:0}.fiscal-dev-release{padding:9px 0;border-bottom:1px solid var(--fiscal-border-soft)}.fiscal-dev-release:last-child{border-bottom:0}.fiscal-dev-release-head{display:flex;justify-content:space-between;gap:10px}.fiscal-dev-release small{color:var(--fiscal-muted)}
.fiscal-dev-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.fiscal-dev-meta>div{border:1px solid var(--fiscal-border);padding:9px 10px;background:var(--fiscal-surface-soft)}.fiscal-dev-meta span{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:3px}
.fiscal-dev-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.fiscal-dev-timeline{position:relative;margin-left:9px;padding-left:20px;border-left:1px solid var(--fiscal-border)}.fiscal-dev-event{position:relative;padding:0 0 18px}.fiscal-dev-event:before{content:"";position:absolute;left:-25px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--fiscal-accent);box-shadow:0 0 0 3px var(--fiscal-surface)}.fiscal-dev-event-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px}.fiscal-dev-event-type{font-size:10px;padding:2px 5px;border:1px solid var(--fiscal-border);border-radius:2px;color:var(--fiscal-muted)}.fiscal-dev-files{margin-top:8px;padding:7px 9px;background:var(--fiscal-surface-soft);border-left:2px solid var(--fiscal-border)}.fiscal-dev-files div{font-family:"Roboto Mono",Consolas,monospace;font-size:11px;overflow-wrap:anywhere}
.fiscal-dev-note{padding:8px 10px;border-left:3px solid var(--fiscal-accent);background:var(--fiscal-info-bg);margin-bottom:14px}.fiscal-dev-form textarea{min-height:120px}.fiscal-dev-form .fiscal-field textarea.fiscal-dev-files-input{min-height:90px;font-family:"Roboto Mono",Consolas,monospace;font-size:12px}
@media(max-width:950px){.fiscal-dev-kpis{grid-template-columns:repeat(3,1fr)}.fiscal-dev-layout{grid-template-columns:1fr}.fiscal-dev-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.fiscal-dev-kpis,.fiscal-dev-meta{grid-template-columns:1fr}}

/* Fiscal 0.10.3 · consolidación geométrica global */
.fiscal-card,
.fiscal-kpi,
.fiscal-menu a,
.fiscal-form{
    border-radius:3px;
}
.fiscal-btn,
.fiscal-form input,
.fiscal-form select,
.fiscal-form textarea,
.fiscal-line-new{
    border-radius:2px;
}
.fiscal-badge{
    border-radius:3px;
}
@media(max-width:900px){
    .fiscal-main-nav a{border-radius:2px}
}

/* Fiscal 0.10.3 · estados globales de interacción */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
select,
textarea {
    transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(:disabled):not([readonly]):hover,
select:not(:disabled):hover,
textarea:not(:disabled):not([readonly]):hover {
    border-color: var(--fiscal-focus);
    background: var(--fiscal-info-bg);
}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--fiscal-focus);
    background: var(--fiscal-info-bg);
    box-shadow: 0 0 0 2px var(--fiscal-focus-ring), 0 2px 7px var(--fiscal-shadow);
}
.fiscal-btn,
.fiscal-theme-toggle,
.fiscal-language-btn,
.fiscal-logout,
.fiscal-nav-toggle,
.fiscal-subnav a {
    transition: border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.fiscal-btn:focus-visible,
.fiscal-theme-toggle:focus-visible,
.fiscal-language-btn:focus-visible,
.fiscal-logout:focus-visible,
.fiscal-nav-toggle:focus-visible,
.fiscal-subnav a:focus-visible,
.fiscal-link-button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--fiscal-focus-ring), 0 2px 6px var(--fiscal-shadow);
}


/* Fiscal 0.10.8 · ancho uniforme de aplicación
   Todas las pantallas funcionales usan el mismo contenedor de 1440 px.
   Legal mantiene su ancho específico por legibilidad. */
.fiscal-main-wide {
    max-width: 1440px;
}

/* Ordenación global de tablas: clic = criterio único; Shift+clic = criterio adicional. */
.fiscal-table th.fiscal-sortable {
    cursor: pointer;
    user-select: none;
    transition: color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
@media (min-width: 1280px) {
    .fiscal-table th.fiscal-sortable {
        white-space: nowrap;
    }
}
.fiscal-table th.fiscal-sortable:hover {
    color: var(--fiscal-text);
    background: var(--fiscal-surface-soft);
}
.fiscal-table th.fiscal-sortable:focus-visible {
    outline: none;
    color: var(--fiscal-text);
    background: var(--fiscal-surface-soft);
    box-shadow: inset 0 0 0 1px var(--fiscal-focus-ring);
}
.fiscal-table th.fiscal-sortable::after {
    display: inline-block;
    margin-left: 5px;
    min-width: 8px;
    color: var(--fiscal-focus);
    font-size: 8px;
    line-height: 1;
    vertical-align: 1px;
    opacity: .9;
}
.fiscal-table:not([data-sort-multiple="1"]) th.fiscal-sortable[data-sort-direction="asc"]::after { content: "▲"; }
.fiscal-table:not([data-sort-multiple="1"]) th.fiscal-sortable[data-sort-direction="desc"]::after { content: "▼"; }
.fiscal-table[data-sort-multiple="1"] th.fiscal-sortable[data-sort-direction="asc"]::after { content: "▲ " attr(data-sort-priority); }
.fiscal-table[data-sort-multiple="1"] th.fiscal-sortable[data-sort-direction="desc"]::after { content: "▼ " attr(data-sort-priority); }

/* Detalle técnico global: información operativa primero, payload crudo solo bajo demanda. */
.fiscal-tech-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:10px}
.fiscal-tech-summary>div{min-width:0;padding:9px 10px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface-soft)}
.fiscal-tech-summary span{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:3px}
.fiscal-tech-summary strong{display:block;font-weight:500;overflow-wrap:anywhere}
.fiscal-tech-details{margin-top:8px;border-top:1px solid var(--fiscal-border-soft);padding-top:8px}
.fiscal-tech-details summary{display:inline-block;cursor:pointer;color:var(--fiscal-link);font-size:12px;user-select:none}
.fiscal-tech-details summary:hover{text-decoration:underline}
.fiscal-tech-details summary:focus-visible{outline:none;box-shadow:0 0 0 3px var(--fiscal-focus-ring);border-radius:2px}
.fiscal-tech-details .fiscal-code{margin:10px 0 0}

/* El login ocupa todo el ancho, sin gutter reservado de la aplicación. */
html:has(> body.fiscal-login-page) {
    scrollbar-gutter: auto;
}

/* Fiscal · apariencia del login */
body.fiscal-login-page {
    min-height: 100vh;
    display: flow-root;
    border-left: 0;
    border-right: 0;
    background-color: var(--fiscal-bg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

body.fiscal-login-page.fiscal-login-bg {
    background-image: url("../../tenant_brand.php?asset=background");
    /* El login queda centrado con independencia de la imagen de fondo. */
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 20px 16px;
}

body.fiscal-login-page.fiscal-login-bg .fiscal-form {
    width: 100%;
    max-width: 420px;
    margin: auto 0;
}

html[data-theme="dark"] body.fiscal-login-page.fiscal-login-bg {
    background-color: #111820;
    background-blend-mode: multiply;
}

/* Sistema · switch de apariencia */
.fiscal-setting-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 44px;
}

.fiscal-setting-help {
    margin-top: var(--fiscal-control-help-gap,5px);
    font-size: 12px;
}

.fiscal-switch {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    user-select: none;
}

.fiscal-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.fiscal-switch-track {
    position: relative;
    width: 38px;
    height: 20px;
    border: 1px solid var(--fiscal-border);
    background: var(--fiscal-surface-soft);
    transition: background-color .15s ease, border-color .15s ease;
}

.fiscal-switch-thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    background: var(--fiscal-muted);
    transition: transform .15s ease, background-color .15s ease;
}

.fiscal-switch input:checked + .fiscal-switch-track {
    border-color: var(--fiscal-accent);
    background: var(--fiscal-accent);
}

.fiscal-switch input:checked + .fiscal-switch-track .fiscal-switch-thumb {
    transform: translateX(18px);
    background: #fff;
}

.fiscal-switch input:focus-visible + .fiscal-switch-track {
    outline: 2px solid var(--fiscal-focus-ring);
    outline-offset: 2px;
}

.fiscal-switch-state {
    min-width: 24px;
    color: var(--fiscal-muted);
    font-size: 12px;
    font-weight: 500;
}

@media (max-width: 900px) {
    body.fiscal-login-page.fiscal-login-bg .fiscal-form {
        margin: auto 0;
    }
}

@media (max-width: 520px) {
    .fiscal-setting-row {
        align-items: flex-start;
    }
}

/* Sistema · Apariencia · vista previa del fondo de acceso */
.fiscal-login-bg-preview[hidden]{
    display:none!important;
}
.fiscal-login-bg-preview{
    position:relative;
    min-height:190px;
    margin:8px 0 14px;
    overflow:hidden;
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    background-color:var(--fiscal-bg);
    background-image:url("../../tenant_brand.php?asset=background");
    background-repeat:no-repeat;
    background-position:left center;
    background-size:cover;
}
html[data-theme="dark"] .fiscal-login-bg-preview{
    background-color:#111820;
    background-blend-mode:multiply;
}
.fiscal-login-bg-preview-card{
    position:absolute;
    top:22px;
    right:clamp(18px,6vw,90px);
    width:210px;
    padding:16px 18px;
    border:1px solid var(--fiscal-border);
    border-radius:3px;
    background:var(--fiscal-surface);
    box-shadow:0 8px 22px var(--fiscal-shadow);
}
.fiscal-login-bg-preview-card strong{
    display:block;
    color:var(--fiscal-heading);
    font-size:20px;
    line-height:1.1;
}
.fiscal-login-bg-preview-card span{
    display:block;
    margin:4px 0 13px;
    color:var(--fiscal-muted);
    font-size:10px;
}
.fiscal-login-bg-preview-card i,
.fiscal-login-bg-preview-card em{
    display:block;
    box-sizing:border-box;
    height:25px;
    margin-top:7px;
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    background:var(--fiscal-surface-soft);
}
.fiscal-login-bg-preview-card em{
    width:76px;
    height:27px;
    margin:10px 0 0 auto;
    border-color:var(--fiscal-accent);
    background:var(--fiscal-accent);
}
@media(max-width:620px){
    .fiscal-login-bg-preview{min-height:165px;background-position:left center}
    .fiscal-login-bg-preview-card{top:18px;right:16px;width:180px;padding:13px 14px}
}


/* Fiscal · exportación estándar de listados */
.fiscal-export-actions{
    display:inline-flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto;
}
.fiscal-export-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:0 9px;
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    background:var(--fiscal-surface);
    color:var(--fiscal-heading);
    font-size:11px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
}
.fiscal-export-link:hover{
    border-color:var(--fiscal-focus);
    background:var(--fiscal-surface-soft);
    color:var(--fiscal-text);
    text-decoration:none;
}
.fiscal-export-link:focus-visible{
    outline:2px solid var(--fiscal-focus-ring);
    outline-offset:2px;
}
@media(max-width:560px){
    .fiscal-export-actions{order:3}
}

/* Fiscal · Legal público */
.fiscal-login-legal {
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid var(--fiscal-border-soft);
    text-align: center;
    font-size: 12px;
}
.fiscal-login-legal a {
    color: var(--fiscal-muted);
}
.fiscal-login-legal a:hover,
.fiscal-login-legal a:focus-visible {
    color: var(--fiscal-link);
}
.fiscal-legal-page .fiscal-topbar {
    position: sticky;
    top: 0;
    z-index: 1000;
}
.fiscal-legal-page .fiscal-user {
    gap: 8px;
}
.fiscal-legal-page .fiscal-main {
    max-width: 1040px;
}
.fiscal-legal-card {
    padding: 24px 28px 30px;
}
.fiscal-legal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.fiscal-legal-head h1 {
    margin: 0 0 5px;
    color: var(--fiscal-heading);
    font-size: 22px;
}
.fiscal-legal-version {
    color: var(--fiscal-muted);
    font-size: 12px;
    white-space: nowrap;
}
.fiscal-legal-intro {
    margin: 0;
    color: var(--fiscal-muted);
    line-height: 1.55;
}
.fiscal-legal-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 20px 0 8px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--fiscal-border);
}
.fiscal-legal-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid var(--fiscal-border);
    border-radius: 2px;
    background: var(--fiscal-surface-soft);
    color: var(--fiscal-muted);
    font-size: 12px;
    text-decoration: none;
}
.fiscal-legal-nav a:hover,
.fiscal-legal-nav a:focus-visible {
    border-color: var(--fiscal-focus);
    color: var(--fiscal-text);
    text-decoration: none;
}
.fiscal-legal-section {
    scroll-margin-top: 72px;
    padding: 20px 0 4px;
    border-bottom: 1px solid var(--fiscal-border-soft);
}
.fiscal-legal-section:last-child {
    border-bottom: 0;
}
.fiscal-legal-section h2 {
    margin: 0 0 10px;
    color: var(--fiscal-heading);
    font-size: 17px;
}
.fiscal-legal-section h3 {
    margin: 15px 0 7px;
    color: var(--fiscal-heading);
    font-size: 14px;
}
.fiscal-legal-section p,
.fiscal-legal-section li {
    line-height: 1.55;
}
.fiscal-legal-section p {
    margin: 8px 0;
}
.fiscal-legal-section ul {
    margin: 8px 0 10px;
    padding-left: 22px;
}
.fiscal-legal-owner {
    margin: 12px 0 4px;
    padding: 13px 15px;
    border-left: 3px solid var(--fiscal-accent);
    background: var(--fiscal-surface-soft);
    line-height: 1.55;
}
.fiscal-legal-back {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid var(--fiscal-border);
    border-radius: 2px;
    color: var(--fiscal-muted);
    background: var(--fiscal-surface);
    text-decoration: none;
}
.fiscal-legal-back:hover,
.fiscal-legal-back:focus-visible {
    border-color: var(--fiscal-focus);
    color: var(--fiscal-text);
    text-decoration: none;
}
@media (max-width: 700px) {
    .fiscal-legal-card { padding: 20px 18px 24px; }
    .fiscal-legal-head { display: block; }
    .fiscal-legal-version { margin-top: 7px; }
    .fiscal-legal-page .fiscal-topbar { padding: 0 10px; }
}

/* Fiscal 0.10.8 · Usuarios: identidad legible y checkbox alineado */
.fiscal-user-row{
    grid-template-columns:minmax(270px,1.5fr) minmax(160px,1fr) 116px 155px 92px minmax(185px,1fr) 148px;
}
.fiscal-user-row input[name="nombre"]{min-width:160px}
.fiscal-user-row input[name="password"]{min-width:185px}
.fiscal-user-identity{min-width:0;align-self:center;overflow:hidden}
.fiscal-user-email{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.fiscal-user-last-access{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiscal-user-row .fiscal-check{margin:0;min-height:34px;align-self:center;display:flex!important;align-items:center;white-space:nowrap}
.fiscal-user-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}
.fiscal-user-actions .fiscal-btn{min-width:0}
/* CORE 0.11.24 · checkbox temático global: conserva tamaño nativo y usa el mismo acento que botones/selector. */
input[type="checkbox"]{accent-color:var(--fiscal-accent)}
.fiscal-check input[type="checkbox"]{accent-color:var(--fiscal-accent)}
@media(max-width:1100px){
    .fiscal-user-row{grid-template-columns:minmax(250px,1.3fr) minmax(160px,1fr) 116px 155px}
}
@media(max-width:720px){
    .fiscal-user-row{grid-template-columns:1fr}
    .fiscal-user-email,.fiscal-user-last-access{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
}


/* Fiscal 0.10.8 · Auditoría: fecha/hora siempre en una línea */
.fiscal-audit-table th:first-child,
.fiscal-audit-table td:first-child {
    width: 145px;
    min-width: 145px;
    white-space: nowrap;
}

/* Fiscal 0.10.9 · buscador global de cabecera */
.fiscal-global-search{position:relative;display:flex;align-items:center}
.fiscal-global-search-toggle{font:inherit}
.fiscal-global-search.is-open .fiscal-global-search-toggle{border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-global-search-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.fiscal-global-search-panel{position:fixed;z-index:3600;display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--fiscal-border);border-radius:3px;background:var(--fiscal-surface);box-shadow:0 14px 38px rgba(0,0,0,.20)}
.fiscal-global-search-panel[hidden]{display:none}
.fiscal-global-search-head{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:8px;padding:10px 12px 4px}
.fiscal-global-search-input-wrap{position:relative;min-width:0}
.fiscal-global-search-head input{width:100%;min-width:0;height:38px;padding:8px 34px 8px 10px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface-soft);color:var(--fiscal-text);font:inherit}
.fiscal-global-search-head input:focus{outline:none;border-color:var(--fiscal-focus);box-shadow:0 0 0 2px var(--fiscal-focus-ring)}
.fiscal-global-search-spinner{display:none;position:absolute;right:10px;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid var(--fiscal-border);border-top-color:var(--fiscal-accent);border-radius:50%;animation:fiscal-spin .7s linear infinite}
.fiscal-global-search.is-loading .fiscal-global-search-spinner{display:block}
.fiscal-global-search-status{display:inline-flex;align-items:center;justify-content:center;width:52px;height:38px;padding:0 6px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface-soft);color:var(--fiscal-heading);font-size:12px;font-weight:700;line-height:1;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fiscal-global-search-status.is-empty{color:var(--fiscal-muted)}
.fiscal-global-search-hint{padding:0 12px 6px;color:var(--fiscal-muted);font-size:11px;line-height:1.2;border-bottom:1px solid var(--fiscal-border-soft)}
.fiscal-global-search-results{flex:1 1 auto;min-height:0;overflow:auto;padding:2px 0}
.fiscal-global-search-empty{padding:18px 14px;color:var(--fiscal-muted);text-align:center}
.fiscal-global-search-group+.fiscal-global-search-group{border-top:1px solid var(--fiscal-border-soft)}
.fiscal-global-search-group-title{padding:9px 12px 5px;color:var(--fiscal-heading);font-size:11px;font-weight:700}
.fiscal-global-search-result{display:block;padding:8px 12px;color:var(--fiscal-text);text-decoration:none;border-left:3px solid transparent}
.fiscal-global-search-result:hover,.fiscal-global-search-result:focus-visible{background:var(--fiscal-surface-soft);border-left-color:var(--fiscal-accent);text-decoration:none;outline:none}
html[data-row-accent="0"] .fiscal-global-search-result:hover,html[data-row-accent="0"] .fiscal-global-search-result:focus-visible,html.fiscal-row-accent-off .fiscal-global-search-result:hover,html.fiscal-row-accent-off .fiscal-global-search-result:focus-visible{border-left-color:transparent!important}
.fiscal-global-search-result-title{display:block;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiscal-global-search-result-meta{display:block;margin-top:2px;color:var(--fiscal-muted);font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:860px){.fiscal-global-search-head{grid-template-columns:minmax(0,1fr) 48px}.fiscal-global-search-status{width:48px}}


/* Fiscal 0.10.10 · VERI*FACTU: QR visible y cotejo AEAT junto al código */
.fiscal-vf-qr-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;margin-top:14px;align-items:stretch}
.fiscal-vf-qr-card,.fiscal-vf-check-card{border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft);padding:12px}
.fiscal-vf-qr-card{text-align:center}
.fiscal-vf-qr-title{font-weight:600;color:var(--fiscal-heading);margin-bottom:8px}
.fiscal-vf-qr-image{display:block;width:132px;height:132px;margin:0 auto;background:#fff}
.fiscal-vf-qr-caption{margin-top:7px;color:var(--fiscal-muted);font-size:11px;white-space:nowrap}
.fiscal-vf-qr-action{margin-top:10px}.fiscal-vf-qr-action .fiscal-btn{width:100%}
.fiscal-vf-check-card{border-left:4px solid var(--fiscal-border);min-width:0}
.fiscal-vf-check-card.is-ok{border-left-color:var(--fiscal-ok);background:var(--fiscal-info-bg)}
.fiscal-vf-check-card.is-error{border-left-color:var(--fiscal-danger);background:var(--fiscal-error-bg)}
.fiscal-vf-check-title{font-size:15px;font-weight:700;color:var(--fiscal-heading);margin-bottom:10px}
.fiscal-vf-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}
.fiscal-vf-check-grid>div{min-width:0}.fiscal-vf-check-grid span{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:2px}.fiscal-vf-check-grid strong{display:block;overflow-wrap:anywhere;font-weight:500}
.fiscal-vf-check-message{margin-top:11px;padding-top:9px;border-top:1px solid var(--fiscal-border);line-height:1.4}
.fiscal-vf-check-pending{line-height:1.5}
@media(max-width:720px){.fiscal-vf-qr-layout{grid-template-columns:1fr}.fiscal-vf-qr-card{max-width:none}.fiscal-vf-check-grid{grid-template-columns:1fr}}

/* Fiscal 0.10.11 · Backup/restauración cifrada */
.fiscal-backup-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.fiscal-backup-summary>div{padding:10px 11px;border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft)}
.fiscal-backup-summary span{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:3px}.fiscal-backup-summary strong{font-weight:600}
.fiscal-backup-note{margin:0 0 12px}.fiscal-backup-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.fiscal-backup-actions form{margin:0}.fiscal-backup-actions .fiscal-inline-fields{margin:0}
.fiscal-backup-restore{margin-top:18px;padding-top:16px;border-top:1px solid var(--fiscal-border-soft)}.fiscal-backup-restore h3{margin:0 0 5px;color:var(--fiscal-heading);font-size:14px}.fiscal-backup-warning{margin-bottom:12px}
.fiscal-backup-restore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.fiscal-backup-confirm{margin-top:12px!important}
@media(max-width:760px){.fiscal-backup-summary,.fiscal-backup-restore-grid{grid-template-columns:1fr}.fiscal-backup-actions{align-items:stretch}.fiscal-backup-actions .fiscal-inline-fields{width:100%}.fiscal-backup-actions .fiscal-inline-fields input{flex:1 1 180px}}

/* Fiscal 0.10.11 · Sistema: pestañas con el mismo lenguaje visual que Legal */
.fiscal-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 14px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--fiscal-border);
}
.fiscal-tab {
    appearance: none;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid var(--fiscal-border);
    border-radius: 2px;
    background: var(--fiscal-surface-soft);
    color: var(--fiscal-muted);
    font: inherit;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
    cursor: pointer;
}
.fiscal-tab:hover,
.fiscal-tab:focus-visible {
    outline: none;
    border-color: var(--fiscal-focus);
    color: var(--fiscal-text);
}
.fiscal-tab.is-active {
    border-color: var(--fiscal-focus);
    background: var(--fiscal-surface);
    color: var(--fiscal-text);
    font-weight: 500;
}
.fiscal-system-panel { display: none; }
.fiscal-system-panel.is-active { display: block; }

/* Fiscal 0.10.11 · Backup: acciones de fila centradas verticalmente */
.fiscal-backup-row-actions{
    margin:0;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:nowrap;
}
.fiscal-backup-row-actions form{margin:0}
.fiscal-backup-row-actions .fiscal-btn{vertical-align:middle}

/* Fiscal 0.10.11 · copias automáticas y aviso de copia externa */
.fiscal-backup-auto-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.fiscal-backup-auto-grid>div{min-width:0;border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft);padding:10px 12px}
.fiscal-backup-auto-grid>div.is-warning{border-color:var(--fiscal-danger)}
.fiscal-backup-auto-grid span,.fiscal-backup-auto-grid small{display:block;color:var(--fiscal-muted)}
.fiscal-backup-auto-grid span{font-size:11px;margin-bottom:4px}.fiscal-backup-auto-grid strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fiscal-backup-auto-grid small{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiscal-backup-cron{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 12px;align-items:center;margin:10px 0 14px;padding:9px 11px;border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft)}
.fiscal-backup-cron code{min-width:0;overflow:auto;white-space:nowrap;font-family:"Roboto Mono",Consolas,monospace;font-size:11px}.fiscal-backup-cron span{grid-column:1/-1;color:var(--fiscal-muted);font-size:11px}
.fiscal-backup-admin-warning{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:11px 13px;border-left:4px solid var(--fiscal-danger);background:var(--fiscal-error-bg)}
.fiscal-backup-admin-warning strong,.fiscal-backup-admin-warning span{display:block}.fiscal-backup-admin-warning span{margin-top:2px}
@media(max-width:900px){.fiscal-backup-auto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.fiscal-backup-auto-grid{grid-template-columns:1fr}.fiscal-backup-admin-warning{align-items:flex-start;flex-direction:column}.fiscal-backup-cron{grid-template-columns:1fr}}

/* Fiscal 0.10.11 · Copias: orden visual, tipos y restauración persistente */
.fiscal-backup-auto-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.fiscal-backup-table .fiscal-backup-date{white-space:nowrap}
.fiscal-backup-file{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}
.fiscal-backup-origin{margin-top:2px;font-size:11px;white-space:nowrap}
.fiscal-backup-type{display:inline-block;min-width:76px;padding:3px 7px;border:1px solid var(--fiscal-border);border-radius:2px;text-align:center;font-size:11px;font-weight:500;white-space:nowrap}
.fiscal-backup-type-manual{border-color:var(--fiscal-focus);color:var(--fiscal-heading);background:var(--fiscal-info-bg)}
.fiscal-backup-type-imported{border-color:var(--fiscal-muted);color:var(--fiscal-muted);background:var(--fiscal-surface-soft)}
.fiscal-backup-type-automatic{border-color:var(--fiscal-ok);color:var(--fiscal-ok);background:var(--fiscal-surface)}
.fiscal-backup-kind-imported td:first-child{border-left:3px solid var(--fiscal-muted)}
.fiscal-backup-kind-manual td:first-child{border-left:3px solid var(--fiscal-focus)}
.fiscal-backup-kind-automatic td:first-child{border-left:3px solid var(--fiscal-ok)}
.fiscal-backup-restore{margin-top:10px;padding-top:10px}
@media(max-width:1180px){.fiscal-backup-auto-grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.fiscal-backup-auto-grid-5{grid-template-columns:1fr}}


/* HPlan · Cabeceras globales sticky fiables. Se fijan las celdas, no thead:
   evita que filas y textos queden visibles detrás del título, sin bandas pseudográficas. */
@media (min-width:1280px) {
    .fiscal-table-wrap { overflow:visible; position:relative; }
    .fiscal-table-wrap .fiscal-table thead { position:static; background:transparent; box-shadow:none; }
    .fiscal-table-wrap .fiscal-table thead th {
        position:sticky; top:54px; z-index:40;
        background:var(--fiscal-surface);
        box-shadow:inset 0 -1px 0 var(--fiscal-border);
    }
}
@media (min-width:1280px) and (max-width:1660px) {
    .fiscal-table-wrap .fiscal-table thead th { top:68px; }
}

/* Fiscal 0.10.12 · Facturae / FACe */
.fiscal-face-box{border-top:1px solid var(--fiscal-border);padding-top:14px;margin-top:4px}
.fiscal-face-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.fiscal-face-step{min-width:0;border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft);padding:10px 11px;display:flex;align-items:center;gap:8px}
.fiscal-face-step b{display:inline-grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;border:1px solid var(--fiscal-border);font-size:11px}
.fiscal-face-step span{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiscal-face-step-ok{border-color:var(--fiscal-ok)}.fiscal-face-step-ok b{border-color:var(--fiscal-ok);color:var(--fiscal-ok)}
.fiscal-face-step-ready{border-color:var(--fiscal-focus)}.fiscal-face-step-ready b{border-color:var(--fiscal-focus);color:var(--fiscal-focus)}
.fiscal-face-step-warn{border-color:var(--fiscal-warning)}.fiscal-face-step-warn b{border-color:var(--fiscal-warning);color:var(--fiscal-warning)}
.fiscal-face-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.fiscal-face-checks>div{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--fiscal-border-soft)}
.fiscal-face-checks b{font-size:11px}.fiscal-face-dot{width:8px;height:8px;border-radius:50%;background:var(--fiscal-muted)}.fiscal-face-dot.is-ok{background:var(--fiscal-ok)}.fiscal-face-dot.is-warn{background:var(--fiscal-warning)}
.fiscal-face-next{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fiscal-face-next>div{border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft);padding:12px}.fiscal-face-next b{display:block;margin-bottom:4px}.fiscal-face-next span{font-size:12px;color:var(--fiscal-muted)}
@media(max-width:900px){.fiscal-face-flow{grid-template-columns:1fr 1fr}.fiscal-face-checks,.fiscal-face-next{grid-template-columns:1fr}}

/* Fiscal 0.10.13 · Directorio DIR3 / FACe */
.fiscal-dir-summary{margin-bottom:14px}
.fiscal-dir-summary small{display:block;margin-top:4px;color:var(--fiscal-muted);font-size:11px}
.fiscal-dir-url{max-width:700px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-dir-import{display:grid;grid-template-columns:220px minmax(280px,1fr) auto;gap:10px;align-items:end}
.fiscal-dir-import select,.fiscal-dir-import input[type=file]{width:100%;min-height:36px}
.fiscal-dir3-picker{position:relative;margin:12px 0 14px}
.fiscal-dir3-picker>label{display:block;margin-bottom:5px}
.fiscal-dir3-picker>input{width:100%}
.fiscal-dir3-results{position:absolute;left:0;right:0;top:62px;z-index:70;background:var(--fiscal-surface);border:1px solid var(--fiscal-border);box-shadow:0 8px 22px rgba(22,45,69,.15);max-height:310px;overflow:auto}
.fiscal-dir3-result{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 10px;border-bottom:1px solid var(--fiscal-border)}
.fiscal-dir3-result:last-child{border-bottom:0}.fiscal-dir3-result:hover{background:var(--fiscal-surface-soft)}
.fiscal-dir3-result>div:first-child{min-width:0}.fiscal-dir3-result b,.fiscal-dir3-result span{display:block}.fiscal-dir3-result span{margin-top:2px;color:var(--fiscal-muted);font-size:11px}
.fiscal-dir3-result-actions{display:flex;gap:5px;flex:0 0 auto}.fiscal-dir3-empty{padding:12px;color:var(--fiscal-muted)}
.fiscal-dir3-selection{margin-top:5px;min-height:16px}
@media(max-width:900px){.fiscal-dir-import{grid-template-columns:1fr}.fiscal-dir3-result{align-items:flex-start;flex-direction:column}}

/* Fiscal 0.10.13 · Ayuda contextual global */
.fiscal-help-toggle{font:700 15px/1 Roboto,"Noto Sans",Helvetica,Arial,sans-serif;text-align:center}
.fiscal-help-toggle>span{display:block;transform:translateY(1px)}
.fiscal-help-backdrop{position:fixed;z-index:3700;top:0;bottom:0;left:50%;right:auto;width:100vw;max-width:none;transform:translateX(-50%);background:rgba(8,14,20,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.fiscal-help-panel{position:fixed;z-index:3800;top:0;right:50%;transform:translateX(50vw);width:430px;max-width:calc(100vw - 24px);height:100vh;background:var(--fiscal-surface);border-left:1px solid var(--fiscal-border);box-shadow:-12px 0 32px rgba(12,31,50,.16);overflow-x:hidden;overflow-y:auto;white-space:normal}
.fiscal-help-head{position:sticky;top:0;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px;border-bottom:1px solid var(--fiscal-border);background:var(--fiscal-surface);z-index:1}
.fiscal-help-head span{display:block;color:var(--fiscal-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.fiscal-help-head strong{display:block;color:var(--fiscal-heading);font-size:18px}.fiscal-help-head button{border:0;background:transparent;color:var(--fiscal-muted);font-size:25px;line-height:1;cursor:pointer;padding:0 2px}.fiscal-help-head button:hover{color:var(--fiscal-text)}
.fiscal-help-body{padding:8px 20px 28px;min-width:0;white-space:normal}.fiscal-help-body section{padding:14px 0;border-bottom:1px solid var(--fiscal-border-soft);min-width:0}.fiscal-help-body section:last-child{border-bottom:0}.fiscal-help-body h3{font-size:13px;margin:0 0 7px;color:var(--fiscal-heading);white-space:normal}.fiscal-help-body p{font-size:13px;line-height:1.55;margin:0 0 8px;color:var(--fiscal-text);white-space:normal;overflow-wrap:break-word}.fiscal-help-body p:last-child{margin-bottom:0}
/* Ayuda contextual: el marcador de cada punto arranca alineado con el título del bloque. */
.fiscal-help-body ul{margin:0;padding:0;list-style:none;min-width:0}
.fiscal-help-body li{display:grid;grid-template-columns:12px minmax(0,1fr);align-items:start;font-size:13px;line-height:1.55;margin:0 0 7px;color:var(--fiscal-text);white-space:normal;overflow-wrap:break-word;min-width:0}
.fiscal-help-body li:last-child{margin-bottom:0}
.fiscal-help-body li::before{content:"•";display:block;line-height:1.55;text-align:left}

body.fiscal-help-open{overflow:hidden}

/* Fiscal 0.10.13 · Bitácora: campos largos en una sola caja con bullets */
.fiscal-dev-bullet-source{display:none!important}
.fiscal-dev-bullets{
    margin:6px 0 0;
    padding-left:22px;
    line-height:1.45;
}
.fiscal-dev-bullets li+li{margin-top:5px}
.fiscal-dev-bullet-editor{
    box-sizing:border-box;
    width:100%;
    min-height:42px;
    margin:0;
    padding:9px 12px 9px 30px;
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    background:var(--fiscal-surface-soft);
    color:var(--fiscal-text);
    white-space:normal;
    overflow-wrap:anywhere;
    transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease;
}
.fiscal-dev-bullet-editor:hover{
    border-color:var(--fiscal-focus);
    background:var(--fiscal-info-bg);
}
.fiscal-dev-bullet-editor:focus{
    outline:none;
    border-color:var(--fiscal-focus);
    background:var(--fiscal-info-bg);
    box-shadow:0 0 0 2px var(--fiscal-focus-ring),0 2px 7px var(--fiscal-shadow);
}
.fiscal-dev-bullet-editor[aria-invalid="true"]{border-color:var(--fiscal-danger)}

/* Fiscal 0.10.13 · Auditoría: geometría estable frente a hashes/nombres técnicos largos */
.fiscal-audit-table{
    width:100%;
    min-width:1050px;
    table-layout:fixed;
}
.fiscal-audit-table .fiscal-audit-col-date{width:145px}
.fiscal-audit-table .fiscal-audit-col-user{width:165px}
.fiscal-audit-table .fiscal-audit-col-action{width:220px}
.fiscal-audit-table .fiscal-audit-col-entity{width:100px}
.fiscal-audit-table .fiscal-audit-col-id{width:40px}
.fiscal-audit-table .fiscal-audit-col-ip{width:135px}
.fiscal-audit-table th:nth-child(-n+6),
.fiscal-audit-table td:nth-child(-n+6){
    white-space:nowrap;
}
.fiscal-audit-table th:nth-child(7),
.fiscal-audit-table td:nth-child(7){
    min-width:0;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
}
@media (min-width:1280px){
    .fiscal-table-wrap > .fiscal-audit-table,
    .fiscal-table-wrap .fiscal-audit-table{
        max-width:100%;
    }
}

/* Fiscal 0.10.16 · Select global estándar
   Geometría única para todos los select simples de la aplicación.
   El ancho continúa dependiendo del contexto/componente. */
select:not([multiple]){
    min-height:34px;
    padding:7px 8px;
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    background:var(--fiscal-surface-soft);
    color:var(--fiscal-text);
    font:inherit;
    line-height:1.2;
}
select:not([multiple]):disabled{
    cursor:not-allowed;
    opacity:.72;
}

/* Sistema · Rendimiento · estado integrado en tarjetas */
.fiscal-dev-meta small{
    display:block;
    margin-top:4px;
    font-size:10px;
    line-height:1.25;
    font-weight:500;
}

/* Password-manager trap: campos señuelo para impedir que credenciales guardadas
   terminen en formularios funcionales de Fiscal. */
.fiscal-autofill-trap{
    position:fixed!important;
    left:-10000px!important;
    top:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
}

/* Tooltip global CORE · sustituye los title nativos del navegador. */
.fiscal-tooltip{
    position:fixed;
    z-index:4300;
    max-width:min(320px,calc(100vw - 16px));
    padding:6px 8px;
    border:1px solid var(--fiscal-border);
    border-radius:3px;
    background:var(--fiscal-surface);
    color:var(--fiscal-text);
    box-shadow:0 6px 18px rgba(0,0,0,.14);
    font-family:Roboto,"Noto Sans",Helvetica,Arial,sans-serif;
    font-size:12px;
    line-height:1.3;
    white-space:normal;
    overflow-wrap:anywhere;
    pointer-events:none;
    opacity:0;
    transform:translateY(2px);
    transition:opacity .08s ease,transform .08s ease;
}
.fiscal-tooltip[hidden]{display:none!important}
.fiscal-tooltip.is-visible{opacity:1;transform:translateY(0)}

/* Validación global de formularios · Fiscal 0.10.26
   Sustituye los globos nativos del navegador por un componente temático,
   estable y compartido por toda la aplicación. */
.fiscal-validation-message {
    position: fixed;
    z-index: 4200;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: min(360px, calc(100vw - 20px));
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--fiscal-focus);
    border-left-width: 3px;
    border-radius: 3px;
    background: var(--fiscal-surface);
    color: var(--fiscal-text);
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
    font-family: Roboto, "Noto Sans", Helvetica, Arial, sans-serif;
    font-size: 13px;
    line-height: 1.3;
    pointer-events: none;
}
.fiscal-validation-message[hidden] { display: none !important; }
.fiscal-validation-message::before,
.fiscal-validation-message::after {
    content: "";
    position: absolute;
    left: 15px;
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
}
.fiscal-validation-message[data-placement="bottom"]::before {
    top: -8px;
    border-bottom: 8px solid var(--fiscal-focus);
}
.fiscal-validation-message[data-placement="bottom"]::after {
    top: -6px;
    border-bottom: 7px solid var(--fiscal-surface);
}
.fiscal-validation-message[data-placement="top"]::before {
    bottom: -8px;
    border-top: 8px solid var(--fiscal-focus);
}
.fiscal-validation-message[data-placement="top"]::after {
    bottom: -6px;
    border-top: 7px solid var(--fiscal-surface);
}
.fiscal-validation-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border-radius: 2px;
    background: var(--fiscal-accent);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}
.fiscal-validation-text { min-width: 0; }
/* Jerarquía global: aviso = tono hover; campo inválido/foco = acento; icono = acento. */
input.fiscal-field-invalid,
select.fiscal-field-invalid,
textarea.fiscal-field-invalid {
    border-color: var(--fiscal-accent) !important;
    box-shadow: 0 0 0 2px var(--fiscal-focus-ring) !important;
    outline: none !important;
}



/* Fiscal 0.10.44 · Bitácora: Pendiente numerado, sin alterar el resto del estándar visual */
.fiscal-dev-numbered{
    list-style:none;
    counter-reset:fiscal-dev-item;
    padding-left:0;
}
.fiscal-dev-numbered>li{
    position:relative;
    padding-left:34px;
    min-height:22px;
}
.fiscal-dev-numbered>li::before{
    counter-increment:fiscal-dev-item;
    content:counter(fiscal-dev-item) ")";
    position:absolute;
    left:0;
    top:0;
    color:var(--fiscal-heading);
    font-weight:700;
}
.fiscal-dev-bullet-editor.fiscal-dev-numbered{padding-left:14px}
.fiscal-dev-bullet-editor.fiscal-dev-numbered>li{padding-left:36px}
.fiscal-dev-bullet-editor.fiscal-dev-numbered>li+li{margin-top:8px}

/* Fiscal 0.10.45 · Rendimiento: conservar tipografía/tamaños estándar; solo avisar en amarillo */
.fiscal-warning{color:var(--fiscal-warning)!important;font-weight:500}
.fiscal-performance-alert-watch,
.fiscal-performance-alert-high{
    border-color:var(--fiscal-warning)!important;
    background:color-mix(in srgb,var(--fiscal-warning) 9%,var(--fiscal-surface-soft))!important;
}
.fiscal-performance-alert-watch b,
.fiscal-performance-alert-high b{color:var(--fiscal-warning)}

/* Fiscal 0.10.45 · Selector múltiple reutilizable: cebra + selección temática, sin gris nativo */
.fiscal-choice-list{
    max-height:170px;
    overflow:auto;
    border:1px solid var(--fiscal-border);
    border-radius:4px;
    background:var(--fiscal-surface);
}
.fiscal-choice-row{
    position:relative;
    display:block;
    min-height:32px;
    margin:0;
    padding:7px 10px;
    line-height:1.35;
    color:var(--fiscal-text);
    cursor:pointer;
    user-select:none;
    border-left:3px solid transparent;
}
.fiscal-choice-list>.fiscal-choice-row:nth-of-type(even),
.fiscal-choice-group~.fiscal-choice-row:nth-of-type(even){background:var(--fiscal-surface-soft)}
.fiscal-choice-row:hover{background:var(--fiscal-info-bg)!important}
.fiscal-choice-row.is-selected{
    background:var(--fiscal-info-bg)!important;
    border-left-color:var(--fiscal-accent);
    color:var(--fiscal-heading);
    font-weight:500;
}
.fiscal-choice-row:focus-within{
    outline:1px solid var(--fiscal-focus);
    outline-offset:-1px;
}
.fiscal-choice-input{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    min-height:0!important;
    margin:0!important;
    opacity:0;
    pointer-events:none;
}
.fiscal-choice-row:has(.fiscal-choice-input:disabled){cursor:default}
.fiscal-choice-group{
    min-height:32px;
    padding:7px 10px;
    border-top:1px solid var(--fiscal-border-soft);
    border-bottom:1px solid var(--fiscal-border-soft);
    background:var(--fiscal-surface);
    color:var(--fiscal-heading);
    font-size:inherit;
    line-height:1.35;
    font-weight:500;
}
.fiscal-choice-group:first-child{border-top:0}


/* Fiscal 0.10.49 · Bitácora: tareas prioritarias y releases completos */
.fiscal-dev-task-table .fiscal-dev-col-code{
    width:142px;
    min-width:142px;
    white-space:nowrap;
}
.fiscal-dev-task-table .fiscal-dev-col-updated{
    width:142px;
    min-width:142px;
    white-space:nowrap;
}
.fiscal-dev-task-table th:nth-child(6),
.fiscal-dev-task-table td:nth-child(6){
    width:62px;
    white-space:nowrap;
}
.fiscal-dev-release-head b,
.fiscal-dev-release-head small{
    white-space:nowrap;
}


/* Fiscal 0.10.50 · Bitácora: Eventos alineados y releases contenidos */
.fiscal-dev-task-table .fiscal-dev-col-events{
    width:62px;
    min-width:62px;
    white-space:nowrap;
    text-align:right!important;
}
.fiscal-dev-layout>aside,
.fiscal-dev-release{
    min-width:0;
    max-width:100%;
    overflow:hidden;
}
.fiscal-dev-release-tech{
    display:block;
    width:100%;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}


/* Fiscal 0.10.57 · Entidad jurídica: unidades asignadas con el selector/listado temático estándar */
.fiscal-entity-unit-list a.fiscal-choice-row{color:var(--fiscal-text);text-decoration:none}
.fiscal-entity-unit-list a.fiscal-choice-row:hover{color:var(--fiscal-heading);text-decoration:none}
.fiscal-entity-unit-list .fiscal-badge{margin-left:6px}


/* Fiscal 0.10.60 · Bitácora: tarjetas KPI enlazadas al filtro de estado */
/* El contador reserva siempre el mismo ancho y el spinner se superpone sin participar en el flex. */
.fiscal-filterbar[data-fiscal-search-form]{padding-right:0}


/* Fiscal 0.10.62 · Estructura: relación operativa Entidad / Unidad */

/* Fiscal 0.10.67 · Inicio: KPI navegables */
.fiscal-kpi-link{display:block;color:inherit;text-decoration:none;cursor:pointer}
.fiscal-kpi-link:hover,.fiscal-kpi-link:focus-visible{border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);text-decoration:none;outline:none}

/* v0.10.78 · navegación por bloques de uso */
.fiscal-main-nav a.fiscal-nav-group-start{margin-left:8px}
@media(max-width:860px){.fiscal-main-nav a.fiscal-nav-group-start{margin-left:0}}

/* Sistema · automatización / cron de copias */
.fiscal-cron-config{max-width:860px;margin-top:12px}
.fiscal-cron-config .fiscal-setting-row{padding:10px 0;border-bottom:1px solid var(--fiscal-border)}
.fiscal-cron-config .fiscal-setting-row:first-of-type{border-top:1px solid var(--fiscal-border)}
.fiscal-cron-control{width:180px;flex:0 0 180px}
.fiscal-cron-actions{margin-top:14px}
@media(max-width:640px){
    .fiscal-cron-config .fiscal-setting-row{align-items:flex-start;flex-direction:column}
    .fiscal-cron-control{width:100%;flex:0 0 auto}
}


/* MASTER multimódulo · identidad común de acceso */
.fiscal-form h1.fiscal-login-logo-master{
    height:42px;
    margin:0 0 7px;
    background:none!important;
    font-size:20px!important;
    line-height:1;
    overflow:visible;
    white-space:normal;
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--fiscal-heading);
    font-weight:700;
    letter-spacing:.02em;
}
.fiscal-form h1.fiscal-login-logo-master::before{
    content:"M";
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    flex:0 0 34px;
    box-sizing:border-box;
    border:1px solid var(--fiscal-accent);
    border-radius:3px;
    background:var(--fiscal-accent);
    color:#fff;
    font-size:18px;
    line-height:1;
    font-weight:700;
}
/* MASTER · selector multimódulo */
.fiscal-module-selector-page{
    min-height:100vh;
    margin:0;
    background:var(--fiscal-bg,#f4f6f8);
    color:var(--fiscal-text,#1f2933);
}
.fiscal-module-selector-topbar{
    min-height:64px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:0 28px;
    background:var(--fiscal-surface,#fff);
    border-bottom:1px solid var(--fiscal-border,#dfe3e8);
}
.fiscal-module-selector-brand{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding-left:46px;
    font-size:20px;
    font-weight:700;
    color:inherit;
    text-decoration:none;
    position:relative;
}
.fiscal-module-selector-brand::before{
    content:"M";
    position:absolute;
    left:0;
    top:50%;
    width:34px;
    height:34px;
    transform:translateY(-50%);
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:6px;
    background:#477aa2;
    color:#fff;
    font-size:18px;
    font-weight:800;
}
.fiscal-module-selector-actions{
    display:flex;
    align-items:center;
    gap:12px;
}
.fiscal-module-selector-main{
    width:min(980px,calc(100% - 40px));
    margin:0 auto;
    padding:64px 0 80px;
}
.fiscal-module-selector-panel{text-align:center;}
.fiscal-module-selector-heading h1{
    margin:0;
    font-size:14px;
    line-height:1.2;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.02em;
}
.fiscal-module-selector-heading p{
    margin:10px 0 0;
    color:var(--fiscal-muted,#6b7280);
    font-size:14px;
    line-height:1.35;
    font-weight:400;
}
.fiscal-module-selector-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
    margin-top:34px;
}
.fiscal-module-card{
    min-height:176px;
    display:grid;
    grid-template-rows:auto 1fr auto;
    align-items:start;
    gap:10px;
    padding:24px 26px;
    text-align:left;
    text-decoration:none;
    color:inherit;
    background:var(--fiscal-surface,#fff);
    border:1px solid var(--fiscal-border,#dfe3e8);
    border-radius:10px;
    box-shadow:0 8px 28px rgba(17,24,39,.06);
    transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.fiscal-module-card:hover{
    transform:translateY(-2px);
    border-color:#9aa7b2;
    box-shadow:0 12px 32px rgba(17,24,39,.10);
}
.fiscal-module-card-header{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
}
.fiscal-module-card-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    border-radius:8px;
    color:var(--fiscal-accent);
    background:var(--fiscal-bg,#f4f6f8);
}
.fiscal-module-card-icon svg{width:22px;height:22px;display:block;}
.fiscal-module-card-code{
    font-size:15px;
    font-weight:700;
    letter-spacing:.02em;
    text-transform:none;
    color:var(--fiscal-muted,#6b7280);
}
.fiscal-module-card-title{
    color:var(--fiscal-heading);
    margin:0;
    font-size:15px;
    line-height:1.15;
    font-weight:700;
    text-transform:uppercase;
}
.fiscal-module-card-description{
    min-height:34px;
    color:var(--fiscal-muted,#6b7280);
    font-size:14px;
    line-height:1.25;
    text-transform:none;
}
.fiscal-module-card.is-empty{
    cursor:default;
    opacity:.55;
}
.fiscal-module-card.is-empty:hover{
    transform:none;
    border-color:var(--fiscal-border,#dfe3e8);
    box-shadow:0 8px 28px rgba(17,24,39,.06);
}
@media (max-width:760px){
    .fiscal-module-selector-topbar{padding:10px 16px;align-items:flex-start;}
    .fiscal-module-selector-actions{flex-wrap:wrap;justify-content:flex-end;}
    .fiscal-module-selector-main{width:min(100% - 28px,980px);padding-top:36px;}
    .fiscal-module-selector-grid{grid-template-columns:1fr;}
}

/* 0.11.6 · marca de módulo normalizada y ámbito empresa/centros de usuario */
.fiscal-brand > a {
    justify-content:flex-start;
    align-items:center;
}
.fiscal-module-brand img {
    flex:0 0 auto;
    vertical-align:middle;
}
.fiscal-user-units {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 14px;
    min-height:34px;
    padding:4px 0;
}
.fiscal-user-unit {
    margin:0;
    white-space:nowrap;
}
.fiscal-user-scope-summary {
    margin-top:3px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.fiscal-panel-intro { margin:-3px 0 12px; }

/* 0.11.7 · EFP lectura asistida PDF */
.fiscal-form-grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.fiscal-field-span-3{grid-column:span 3}
input[type="number"],input[inputmode="numeric"],input[inputmode="decimal"],.fiscal-input-num{text-align:right!important;font-variant-numeric:tabular-nums}.fiscal-input-num{min-width:0;width:100%}
.fiscal-field:has(> input[type="number"])>label,.fiscal-field:has(> input[inputmode="numeric"])>label,.fiscal-field:has(> input[inputmode="decimal"])>label,.fiscal-field:has(> input.fiscal-input-num)>label{text-align:right}
@media(max-width:1100px){.fiscal-form-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}.fiscal-field-span-3{grid-column:1/-1}}
@media(max-width:720px){.fiscal-form-grid-5{grid-template-columns:1fr}.fiscal-field-span-3{grid-column:auto}}

/* Fiscal 0.11.7 · ámbito de usuario: 1 empresa, N centros y 1 centro principal */
.fiscal-user-unit-scope{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:5px 7px;border-bottom:1px solid var(--fiscal-border,#dbe3ea)}
.fiscal-user-unit-scope:last-child{border-bottom:0}
.fiscal-user-unit-scope .fiscal-check{margin:0;min-width:0}
.fiscal-user-primary{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:var(--fiscal-muted,#718096);font-size:12px}
.fiscal-user-primary input{margin:0}
@media(max-width:720px){.fiscal-user-unit-scope{align-items:flex-start;flex-direction:column;gap:5px}.fiscal-user-primary{padding-left:24px}}

/* EFP · búsqueda AJAX de proveedor en propuesta de factura */
.efp-provider-lookup { position: relative; }
.efp-provider-results {
    position: absolute;
    z-index: 80;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    max-height: 260px;
    overflow-y: auto;
    background: var(--fiscal-surface);
    border: 1px solid var(--fiscal-border);
    box-shadow: 0 8px 22px var(--fiscal-shadow);
}
.efp-provider-results[hidden] { display: none; }
.efp-provider-option {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 0;
    border-bottom: 1px solid var(--fiscal-border-soft);
    background: var(--fiscal-surface);
    color: var(--fiscal-text);
    padding: 8px 10px;
    text-align: left;
    cursor: pointer;
}
.efp-provider-option:last-child { border-bottom: 0; }
.efp-provider-option:hover,
.efp-provider-option.is-active,
.efp-provider-option:focus-visible { background: var(--fiscal-surface-soft); outline: none; }
.efp-provider-option-main { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.efp-provider-option-meta { color: var(--fiscal-muted); white-space: nowrap; }
.efp-provider-empty { padding: 9px 10px; color: var(--fiscal-muted); }
.efp-provider-status{margin-top:7px;line-height:1.35}.efp-draft-provider-name,.efp-draft-provider-iban{grid-column:span 2}

/* EFP 0.12.0 · lectura PDF y preparación contable */
.efp-detected-vat{display:grid;gap:7px}.efp-detected-vat-head,.efp-detected-vat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:center}.efp-detected-vat-head{padding:0 7px 4px;color:var(--fiscal-muted);font-size:11px;border-bottom:1px solid var(--fiscal-border)}.efp-detected-vat-head span{text-align:right}.efp-detected-vat-row{padding:0 7px}.efp-detected-vat-row input{text-align:right}.fiscal-summary-5{grid-template-columns:repeat(5,minmax(0,1fr))}.efp-account-summary{margin-bottom:14px}.efp-account-summary .efp-ok,.efp-account-balance .efp-ok{color:var(--fiscal-success,#2e7d32)}.efp-account-summary .efp-bad,.efp-account-balance .efp-bad{color:var(--fiscal-danger,#a33434)}.efp-account-table{min-width:1120px}.efp-account-table td{vertical-align:middle}.efp-account-table td:nth-child(1){width:130px}.efp-account-table td:nth-child(2){min-width:260px}.efp-account-table td:nth-child(3),.efp-account-table td:nth-child(4),.efp-account-table td:nth-child(5),.efp-account-table td:nth-child(6){width:105px}.efp-account-table td:nth-child(7){width:130px}.efp-account-table td:nth-child(8){width:90px}.efp-account-table input{width:100%;min-width:0}.efp-account-table tfoot th{background:var(--fiscal-surface-2,var(--fiscal-surface));font-weight:600}.efp-account-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.efp-account-balance>div{border:1px solid var(--fiscal-border);padding:10px 12px;background:var(--fiscal-surface-2,var(--fiscal-surface))}.efp-account-balance span{display:block;color:var(--fiscal-muted);font-size:11px;margin-bottom:4px}.efp-account-balance b{font-size:14px}.fiscal-field-span-4{grid-column:span 4}.fiscal-form-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.fiscal-summary-5{grid-template-columns:repeat(3,minmax(0,1fr))}.fiscal-form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.fiscal-field-span-4{grid-column:1/-1}.efp-draft-provider-name,.efp-draft-provider-iban{grid-column:span 1}.efp-account-balance{grid-template-columns:1fr}}
@media(max-width:720px){.efp-detected-vat-head{display:none}.efp-detected-vat-row,.fiscal-summary-5,.fiscal-form-grid-4{grid-template-columns:1fr}.fiscal-field-span-4,.efp-draft-provider-name,.efp-draft-provider-iban{grid-column:auto}}

.efp-vat-group + .efp-vat-group{margin-top:10px}

/* CORE 0.10.76 · hover siempre activo; la preferencia controla solo la barra lateral */


/* Fiscal 0.12.6 · CORE: barra lateral opcional y bloques de Diagnóstico */
.fiscal-table-hover tbody tr:hover{background:var(--fiscal-surface-soft)}
html[data-row-accent="0"] .fiscal-table-hover tbody tr:hover>td:first-child,
html.fiscal-row-accent-off .fiscal-table-hover tbody tr:hover>td:first-child{
    box-shadow:none!important;
}
.fiscal-diagnostics-table tr>th[colspan="2"]{
    background:var(--fiscal-surface-soft);
    color:var(--fiscal-heading);
    font-weight:500;
    border-top:1px solid var(--fiscal-border);
    border-bottom:1px solid var(--fiscal-border-soft);
}

/* CORE 0.10.78 · estándar global para líneas editables y totales de detalle */
.fiscal-entry-header,.fiscal-entry-row,.fiscal-entry-totals{display:grid;grid-template-columns:minmax(295px,2.65fr) minmax(245px,2.52fr) minmax(96px,.68fr) minmax(64px,.43fr) minmax(100px,.68fr) minmax(250px,2.57fr) 78px 34px;gap:10px}.fiscal-entry-header{align-items:end;padding:3px 0 7px;color:var(--fiscal-text);font-size:13px}.fiscal-entry-header .fiscal-entry-num{text-align:right}.fiscal-entry-lines{display:grid;gap:0}.fiscal-entry-row{align-items:center;padding:10px 0;border-bottom:1px solid var(--fiscal-border-soft)}.fiscal-entry-row .fiscal-field{min-width:0}.fiscal-entry-row .fiscal-field input,.fiscal-entry-row .fiscal-field select,.fiscal-entry-row .fiscal-field textarea{width:100%;min-width:0}.fiscal-entry-row .fiscal-input-num{text-align:right;font-variant-numeric:tabular-nums}.fiscal-entry-row-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.fiscal-entry-action{display:flex;justify-content:flex-end;align-items:center;min-width:34px}.fiscal-entry-totals{align-items:center;padding:12px 0 2px;color:var(--fiscal-text)}.fiscal-entry-totals>strong{grid-column:1 / span 2}.fiscal-entry-total-base{grid-column:3}.fiscal-entry-total-vat{grid-column:5}.fiscal-entry-total-box{width:100%;min-height:35px;padding:8px 9px;display:flex;align-items:center;justify-content:flex-end;color:var(--fiscal-text);background:var(--fiscal-surface-soft);border:1px solid var(--fiscal-border);border-radius:4px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.fiscal-detail-lines{display:grid;gap:0}.fiscal-detail-line{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:24px;align-items:center;padding:11px 0;border-bottom:1px solid var(--fiscal-border-soft)}.fiscal-detail-line:first-child{padding-top:2px}.fiscal-detail-line:last-child{border-bottom:0;padding-bottom:2px}.fiscal-detail-line span{color:var(--fiscal-text)}.fiscal-detail-line strong{text-align:right;font-size:14px;font-variant-numeric:tabular-nums}
@media(max-width:1200px){.fiscal-entry-header{display:none}.fiscal-entry-row{grid-template-columns:repeat(4,minmax(0,1fr)) 34px;align-items:end}.fiscal-entry-description{grid-column:span 2}.fiscal-entry-action{grid-column:5;grid-row:1 / span 2;align-self:end}.fiscal-entry-row-label{position:static!important;width:auto!important;height:auto!important;padding:0!important;margin:0 0 4px!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:0!important}.fiscal-entry-totals{grid-template-columns:repeat(4,minmax(0,1fr)) 34px}.fiscal-entry-totals>strong{grid-column:1 / span 2}.fiscal-entry-total-base{grid-column:3}.fiscal-entry-total-vat{grid-column:4}}
@media(max-width:760px){.fiscal-entry-row{grid-template-columns:1fr 1fr}.fiscal-entry-description{grid-column:1/-1}.fiscal-entry-action{grid-column:auto;grid-row:auto;align-items:flex-start}.fiscal-entry-totals{grid-template-columns:1fr 1fr;gap:8px 12px}.fiscal-entry-totals>strong{grid-column:1/-1}.fiscal-entry-total-base{grid-column:1;text-align:right}.fiscal-entry-total-vat{grid-column:2;text-align:right}.fiscal-detail-line{grid-template-columns:1fr auto}}


/* CORE 0.10.81 · Resúmenes numéricos alineados y estado visual completo */
.fiscal-summary-right>div{text-align:right}
.fiscal-summary-right span,.fiscal-summary-right b{text-align:right}
.fiscal-summary>div.fiscal-summary-status-ok{background:rgba(33,122,60,.075);border-color:rgba(33,122,60,.28)}
.fiscal-summary>div.fiscal-summary-status-bad{background:rgba(169,68,66,.085);border-color:rgba(169,68,66,.30)}
.fiscal-summary>div.fiscal-summary-status-ok span,.fiscal-summary>div.fiscal-summary-status-ok b{color:var(--fiscal-ok)}
.fiscal-summary>div.fiscal-summary-status-bad span,.fiscal-summary>div.fiscal-summary-status-bad b{color:var(--fiscal-danger)}

/* CORE 0.14.7 · ventana documental global no modal */
.fiscal-document-window{
    position:fixed;
    z-index:1600;
    display:flex;
    flex-direction:column;
    min-width:360px;
    min-height:260px;
    overflow:hidden;
    background:var(--fiscal-surface);
    border:1px solid var(--fiscal-border);
    border-radius:6px;
    box-shadow:0 14px 34px rgba(20,42,64,.16);
    pointer-events:auto;
}
html[data-theme="dark"] .fiscal-document-window{box-shadow:0 18px 38px rgba(0,0,0,.36)}
.fiscal-document-window.is-active{border-color:color-mix(in srgb,var(--fiscal-accent) 44%,var(--fiscal-border))}
.fiscal-document-titlebar{
    position:relative;
    z-index:5;
    flex:0 0 38px;
    min-height:38px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 6px 0 11px;
    background:var(--fiscal-surface-soft);
    border-bottom:1px solid var(--fiscal-border);
    user-select:none;
    cursor:move;
}
.fiscal-document-window.is-maximized .fiscal-document-titlebar{cursor:default}
.fiscal-document-title{
    min-width:0;
    flex:1 1 auto;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--fiscal-text);
    font-size:12px;
    font-weight:500;
}
.fiscal-document-actions{display:flex;align-items:center;gap:1px;flex:0 0 auto}
.fiscal-document-action{
    width:27px;
    height:27px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:4px;
    background:transparent;
    color:var(--fiscal-muted);
    font:500 15px/1 Roboto,"Noto Sans",Helvetica,Arial,sans-serif;
    text-decoration:none;
    cursor:pointer;
}
.fiscal-document-action:hover,.fiscal-document-action:focus-visible{
    background:var(--fiscal-border-soft);
    color:var(--fiscal-text);
    text-decoration:none;
    outline:none;
}
.fiscal-document-close:hover,.fiscal-document-close:focus-visible{background:var(--fiscal-error-bg);color:var(--fiscal-danger)}
.fiscal-document-body{position:relative;flex:1 1 auto;min-height:0;background:var(--fiscal-surface-soft)}
.fiscal-document-frame{display:block;width:100%;height:100%;border:0;background:#fff}
.fiscal-document-loading{
    position:absolute;
    inset:0;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--fiscal-muted);
    background:var(--fiscal-surface-soft);
    font-size:12px;
    pointer-events:none;
}
.fiscal-document-loading[hidden]{display:none}
.fiscal-document-focus-shield{position:absolute;inset:0;z-index:2;background:transparent;cursor:default}
.fiscal-document-window.is-active .fiscal-document-focus-shield{display:none}
.fiscal-document-resize{position:absolute;z-index:6;display:block}
.fiscal-document-resize[data-edge="n"]{top:0;left:8px;right:8px;height:5px;cursor:ns-resize}
.fiscal-document-resize[data-edge="s"]{bottom:0;left:8px;right:8px;height:6px;cursor:ns-resize}
.fiscal-document-resize[data-edge="e"]{top:8px;right:0;bottom:8px;width:6px;cursor:ew-resize}
.fiscal-document-resize[data-edge="w"]{top:8px;left:0;bottom:8px;width:6px;cursor:ew-resize}
.fiscal-document-resize[data-edge="ne"]{top:0;right:0;width:10px;height:10px;cursor:nesw-resize}
.fiscal-document-resize[data-edge="nw"]{top:0;left:0;width:10px;height:10px;cursor:nwse-resize}
.fiscal-document-resize[data-edge="se"]{right:0;bottom:0;width:10px;height:10px;cursor:nwse-resize}
.fiscal-document-resize[data-edge="sw"]{left:0;bottom:0;width:10px;height:10px;cursor:nesw-resize}
.fiscal-document-window.is-collapsed{
    min-width:0;
    min-height:0;
    border-radius:5px;
}
.fiscal-document-window.is-collapsed .fiscal-document-titlebar{border-bottom:0;cursor:default}
.fiscal-document-window.is-collapsed .fiscal-document-body,
.fiscal-document-window.is-collapsed .fiscal-document-resize,
.fiscal-document-window.is-collapsed .fiscal-document-maximize{display:none}
.fiscal-document-window.is-maximized{border-radius:5px}
body.fiscal-document-interacting,body.fiscal-document-interacting *{user-select:none!important}
@media(max-width:720px),(max-height:520px){
    .fiscal-document-window{min-width:0;min-height:0;border-radius:4px}
    .fiscal-document-titlebar{flex-basis:40px;min-height:40px}
}

/* CORE 0.15.0 · Notificaciones / autorizaciones */
.fiscal-notifications{position:relative;display:flex;align-items:center}
.fiscal-notifications-toggle{position:relative}
.fiscal-notifications-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fiscal-notifications.is-open .fiscal-notifications-toggle{border-color:var(--fiscal-focus);background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-notifications-badge{position:absolute;right:2px;top:2px;display:inline-flex;width:17px;min-width:17px;max-width:17px;height:17px;padding:0;align-items:center;justify-content:center;border:1px solid var(--fiscal-surface);border-radius:50%;background:var(--fiscal-danger,#b42318);color:#fff;font-size:8px;font-weight:700;letter-spacing:-.04em;line-height:1;box-sizing:border-box;overflow:hidden;font-variant-numeric:tabular-nums}
.fiscal-notifications-badge[hidden]{display:none}
.fiscal-notifications-panel{position:fixed;z-index:3650;display:flex;flex-direction:column;min-height:150px;overflow:hidden;border:1px solid var(--fiscal-border);border-radius:3px;background:var(--fiscal-surface);box-shadow:0 14px 38px rgba(0,0,0,.20);white-space:normal}
.fiscal-notifications-panel[hidden]{display:none}
.fiscal-notifications-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--fiscal-border-soft)}
.fiscal-notifications-head strong{color:var(--fiscal-heading);font-size:13px}
.fiscal-link-button{appearance:none;border:0;background:transparent;padding:0;color:var(--fiscal-accent);font:inherit;font-size:12px;cursor:pointer;text-decoration:none}
.fiscal-link-button:hover,.fiscal-link-button:focus-visible{text-decoration:underline;outline:none}
.fiscal-notifications-list{overflow:auto;min-height:0;flex:1 1 auto}
.fiscal-notifications-empty{padding:22px 14px;color:var(--fiscal-muted);text-align:center;font-size:12px}
.fiscal-notification-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-bottom:1px solid var(--fiscal-border-soft);color:var(--fiscal-text);text-decoration:none;background:transparent}
.fiscal-notification-item:last-child{border-bottom:0}
.fiscal-notification-item:hover,.fiscal-notification-item:focus-visible{background:var(--fiscal-surface-soft);outline:none;text-decoration:none}
.fiscal-notification-item.is-unread{background:color-mix(in srgb,var(--fiscal-accent) 7%,var(--fiscal-surface))}
.fiscal-notification-item-main{display:block;min-width:0;flex:1 1 auto}
.fiscal-notification-item-main strong{display:block;color:var(--fiscal-heading);font-size:13px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiscal-notification-item-message{display:block;margin-top:2px;color:var(--fiscal-text);font-size:13px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiscal-notification-item-meta{display:block;margin-top:4px;color:var(--fiscal-muted);font-size:13px}
.fiscal-notification-dot{display:inline-block;flex:0 0 auto;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--fiscal-accent)}
.fiscal-notifications-foot{padding:8px 12px;border-top:1px solid var(--fiscal-border-soft);text-align:right;font-size:12px}
.fiscal-notifications-foot a{color:var(--fiscal-accent);text-decoration:none}.fiscal-notifications-foot a:hover{text-decoration:underline}
.fiscal-workflow-list,.fiscal-responsibility-list,.fiscal-notification-page-list{display:grid;gap:10px}
.fiscal-workflow-card,.fiscal-responsibility-card,.fiscal-notification-page-item{border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface);padding:12px}
.fiscal-workflow-card-head,.fiscal-responsibility-head,.fiscal-notification-page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.fiscal-workflow-card p{margin:10px 0;line-height:1.45}
.fiscal-workflow-decision{margin-top:12px;padding-top:10px;border-top:1px solid var(--fiscal-border-soft)}
.fiscal-notification-page-item{display:flex;align-items:center;gap:14px;justify-content:space-between}
.fiscal-notification-page-item.is-unread{border-left:3px solid var(--fiscal-accent)}
.fiscal-notification-page-main{min-width:0;flex:1 1 auto;display:grid;gap:4px}
.fiscal-notification-page-item>.fiscal-actions{flex:0 0 auto;margin:0;align-items:center}
.fiscal-notification-page-item>.fiscal-actions form{display:inline-flex}
.fiscal-responsibility-card.is-disabled{opacity:.62}
.fiscal-responsibility-scope{margin-top:10px;padding-top:10px;border-top:1px solid var(--fiscal-border-soft);display:grid;gap:8px}
.fiscal-responsibility-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;padding-left:22px}
@media(max-width:720px){.fiscal-notification-page-item{align-items:flex-start;flex-direction:column}.fiscal-responsibility-units{grid-template-columns:1fr}.fiscal-notification-page-item>.fiscal-actions{width:100%;flex-wrap:wrap}}

/* CORE · formularios de edición: acción principal arriba y estado compacto */
.fiscal-page-head>[data-fiscal-page-actions]{margin-top:0;align-self:flex-start}
.fiscal-field-status{display:flex;align-items:flex-end;min-height:58px}
.fiscal-field-status .fiscal-check{margin:0 0 7px}
@media(max-width:720px){.fiscal-field-status{min-height:auto;align-items:flex-start}.fiscal-field-status .fiscal-check{margin:0}}

/* CORE · datos sensibles: editor visible no-nativo para evitar autofill bancario del navegador. */
.fiscal-field .fiscal-sensitive-editor {
    display:block;
    width:100%;
    height:35px;
    min-height:35px;
    padding:8px 9px;
    box-sizing:border-box;
    color:var(--fiscal-text);
    background:var(--fiscal-surface-soft);
    border:1px solid var(--fiscal-border);
    border-radius:4px;
    font:inherit;
    line-height:18px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:clip;
    cursor:text;
}
.fiscal-field .fiscal-sensitive-editor:focus {
    outline:none;
    border-color:var(--fiscal-focus);
    box-shadow:0 0 0 3px var(--fiscal-focus-ring),0 2px 5px rgba(15,42,67,.04);
}
.fiscal-field .fiscal-sensitive-editor.is-readonly {
    color:var(--fiscal-muted);
    cursor:default;
}

/* CORE · Zona global de arrastrar/seleccionar archivo */
.fiscal-dropzone{
    min-height:132px;
    border:1px dashed var(--border,#c9d1dc);
    border-radius:8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:20px;
    box-sizing:border-box;
    cursor:pointer;
    text-align:center;
    background:var(--panel-bg,#fff);
    transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.fiscal-dropzone:hover,.fiscal-dropzone:focus,.fiscal-dropzone.is-dragover{
    border-color:var(--accent,#4f6fb3);
    box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#4f6fb3) 14%,transparent);
    outline:none;
}
.fiscal-dropzone.is-dragover{background:color-mix(in srgb,var(--accent,#4f6fb3) 6%,var(--panel-bg,#fff));}
.fiscal-dropzone.is-analyzing{cursor:progress;opacity:.88;}
.fiscal-dropzone-title{font-weight:600;font-size:1rem;}
.fiscal-dropzone-file{font-weight:500;word-break:break-word;}
.fiscal-document-facts{margin-top:10px;padding:10px 12px;border:1px solid var(--border,#d6dce5);border-radius:6px;background:var(--panel-bg,#fff);}
.fiscal-compact-list{margin:0;padding-left:18px;}
.fiscal-compact-list li{margin:2px 0;}

/* CORE 0.11.9 · selector de contexto jurídico exclusivo del MASTER */
.fiscal-master-context{display:inline-flex;align-items:center;margin:0}
.fiscal-master-context-select{
    box-sizing:border-box;
    width:132px;
    max-width:132px;
    height:30px;
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    background:var(--fiscal-surface);
    color:var(--fiscal-muted);
    padding:4px 24px 4px 7px;
    font:inherit;
    font-size:12px;
    line-height:1;
    cursor:pointer;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.fiscal-master-context-select:hover,.fiscal-master-context-select:focus-visible{
    border-color:var(--fiscal-focus);
    background:var(--fiscal-surface-soft);
    color:var(--fiscal-text);
    outline:none;
}
@media(max-width:900px){.fiscal-master-context-select{width:108px;max-width:108px}}

/* CORE 0.11.10 · contexto MASTER jerárquico: entidad jurídica > unidad */
.fiscal-master-context{gap:4px}
.fiscal-master-context-separator{display:inline-flex;align-items:center;justify-content:center;color:var(--fiscal-muted);font-size:15px;line-height:1;user-select:none}
.fiscal-master-context-entity{width:132px;max-width:132px}
.fiscal-master-context-unit{width:158px;max-width:158px}
@media(max-width:1100px){.fiscal-master-context-unit{width:128px;max-width:128px}}
@media(max-width:900px){.fiscal-master-context-entity{width:100px;max-width:100px}.fiscal-master-context-unit{width:108px;max-width:108px}.fiscal-master-context-separator{display:none}}

/* CORE 0.11.12 · Control de entrada y autocompletado Fiscal estándar */
.fiscal-control{
    width:100%;
    min-width:0;
    min-height:35px;
    padding:8px 9px;
    box-sizing:border-box;
    color:var(--fiscal-text);
    background:var(--fiscal-surface-soft);
    border:1px solid var(--fiscal-border);
    border-radius:2px;
    font:inherit;
}
.fiscal-control:focus{outline:none;border-color:var(--fiscal-focus);box-shadow:0 0 0 1px var(--fiscal-focus-ring);}
.fiscal-control[readonly]{color:var(--fiscal-muted);cursor:default;}
.fiscal-autocomplete-anchor{position:relative;display:block;width:100%;min-width:0;}
.fiscal-autocomplete-menu{
    position:absolute;
    left:0;
    top:calc(100% + 3px);
    z-index:2600;
    width:100%;
    min-width:100%;
    max-width:100%;
    overflow:auto;
    box-sizing:border-box;
    padding:3px 0;
    background:var(--fiscal-surface);
    border:1px solid var(--fiscal-border);
    border-radius:3px;
    box-shadow:0 8px 22px var(--fiscal-shadow);
}
.fiscal-autocomplete-menu[hidden]{display:none!important;}
.fiscal-autocomplete-option{
    width:100%;
    min-height:34px;
    display:grid;
    grid-template-columns:minmax(88px,max-content) minmax(0,1fr);
    gap:10px;
    align-items:center;
    padding:7px 10px;
    border:0;
    background:transparent;
    color:var(--fiscal-text);
    font:inherit;
    text-align:left;
    cursor:pointer;
}
.fiscal-autocomplete-option:hover,.fiscal-autocomplete-option.is-active{background:var(--fiscal-surface-soft);}
.fiscal-autocomplete-code{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500;}
.fiscal-autocomplete-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fiscal-muted);} 
.fiscal-autocomplete-helper{margin:4px 0 0 0;font-size:12px;line-height:1.3;color:var(--fiscal-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.fiscal-accounting-parameters-table .fiscal-vat-percent-col{
    width:82px;
    min-width:82px;
    max-width:82px;
}
.fiscal-accounting-parameters-table .fiscal-vat-percent-input{
    width:74px;
    min-width:74px;
    max-width:74px;
    text-align:right;
    font-variant-numeric:tabular-nums;
}
.fiscal-accounting-parameters-table td{vertical-align:middle;}
.fiscal-accounting-parameters-table td .fiscal-control{width:100%;}

/* CORE 0.11.13 · selector de módulo/contexto MASTER coherente */
.fiscal-module-option.is-active{background:var(--fiscal-accent);color:#fff;}
.fiscal-module-option.is-active .fiscal-module-option-code,
.fiscal-module-option.is-active .fiscal-module-option-description{background:transparent;color:#fff;}
.fiscal-module-option.is-active:hover,
.fiscal-module-option.is-active:focus-visible{background:var(--fiscal-accent);color:#fff;}
.fiscal-master-context{display:inline-flex;align-items:center;margin:0;gap:0;}
.fiscal-master-context-native{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;padding:0!important;margin:-1px!important;}
.fiscal-master-entity-current{width:82px;min-width:82px;max-width:82px;}
.fiscal-master-entity-menu .fiscal-module-option{grid-template-columns:88px max-content;}
.fiscal-master-entity-menu .fiscal-module-option-code{justify-content:flex-start;padding-left:10px;}

/* CORE 0.11.15 · Contexto FIS monoentidad visible pero no seleccionable */
.fiscal-master-entity-fixed .fiscal-module-current{
    cursor:default;
    user-select:none;
}

/* CORE 0.11.16 · Fechas y autocompletado global estándar */
input.fiscal-date-control,
.fiscal-field input.fiscal-date-control,
.fiscal-form input.fiscal-date-control{
    min-height:35px;
    height:35px;
    padding:7px 9px;
    box-sizing:border-box;
    font:inherit;
    font-variant-numeric:tabular-nums;
    color:var(--fiscal-text);
    background:var(--fiscal-surface-soft);
    border:1px solid var(--fiscal-border);
    border-radius:4px;
}
input.fiscal-date-control:focus{
    outline:none;
    border-color:var(--fiscal-focus);
}
input[data-fiscal-native-list]{background-image:none!important;}

/* CORE 0.11.19 · selector global de cuentas: un único campo visual */
.fiscal-account-selector-single{
    position:relative;
    display:block;
    width:100%;
    min-width:0;
}
.fiscal-account-selector-single .fiscal-account-display{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
}
.fiscal-account-selector-single .fiscal-autocomplete-menu{
    left:0;
    width:100%;
    min-width:100%;
    max-width:100%;
}
.fiscal-account-selector-single .fiscal-autocomplete-option{
    grid-template-columns:minmax(88px,max-content) minmax(0,1fr);
}
.fiscal-account-field > .fiscal-muted{
    display:none;
}

/* Fiscal 0.17.38 · selector multi-centro compacto + búsqueda CORE contextual */
.fiscal-primary-unit{
    display:inline-flex;align-items:center;min-height:30px;padding:0 9px;
    border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface-soft);
    color:var(--fiscal-heading);font-size:12px;font-weight:500;white-space:nowrap;
}
.fiscal-unit-filter{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}
.fiscal-unit-filter>summary{
    list-style:none;box-sizing:border-box;min-height:34px;display:flex;align-items:center;justify-content:center;gap:7px;
    padding:7px 10px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-accent);color:#fff;
    cursor:pointer;user-select:none;font:inherit;font-size:13px;font-weight:500;line-height:1;white-space:nowrap;
}
.fiscal-unit-filter>summary::-webkit-details-marker{display:none}
.fiscal-unit-filter>summary::after{content:"▾";font-size:10px;color:currentColor;opacity:.92}
.fiscal-unit-filter>summary:hover,.fiscal-unit-filter>summary:focus-visible{filter:brightness(1.05);outline:none}
.fiscal-unit-filter[open]>summary{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.fiscal-unit-filter-panel{
    position:absolute;z-index:2250;top:calc(100% + 4px);left:0;width:max-content;min-width:100%;max-width:none;
    padding:2px 0;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface);
    box-shadow:0 8px 22px rgba(0,0,0,.18);overflow:visible;
}
.fiscal-unit-filter-row{
    box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;min-height:29px;padding:6px 10px;
    cursor:pointer;color:var(--fiscal-muted);font-size:13px;line-height:1;white-space:nowrap;
}
.fiscal-unit-filter-row:hover,.fiscal-unit-filter-row:focus-within{background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-unit-filter-row input{flex:0 0 auto!important;width:auto!important;min-height:0!important;margin:0;accent-color:var(--fiscal-accent)}
.fiscal-unit-filter-row span{display:block;white-space:nowrap;overflow:visible;text-overflow:clip}
.fiscal-unit-filter-all{font-weight:500;border-bottom:1px solid var(--fiscal-border-soft);color:var(--fiscal-text)}
.fiscal-unit-filter-fixed{display:inline-flex;align-items:center;min-height:34px;padding:7px 9px;border:1px solid var(--fiscal-border);border-radius:2px;background:var(--fiscal-surface-soft);color:var(--fiscal-text);white-space:nowrap}
.fiscal-efp-filterbar{flex-wrap:nowrap;align-items:center}
.fiscal-efp-filterbar>input[name="q"]{flex:1 1 auto;min-width:280px;width:auto}
@media(max-width:900px){.fiscal-efp-filterbar{flex-wrap:wrap}.fiscal-efp-filterbar>input[name="q"]{flex-basis:320px}.fiscal-unit-filter-panel{left:0}}

/* Fiscal 0.17.44 · navegación principal persistente + subnavegación de Administración */
.fiscal-admin-subnav{
    display:flex;align-items:center;gap:2px;min-height:38px;padding:0 18px;overflow-x:auto;scrollbar-width:none;
    border-bottom:1px solid var(--fiscal-border);background:var(--fiscal-surface);white-space:nowrap;
}
.fiscal-admin-subnav::-webkit-scrollbar{display:none}
.fiscal-admin-subnav a{
    display:flex;align-items:center;min-height:38px;padding:0 10px;color:var(--fiscal-muted);
    border-bottom:2px solid transparent;text-decoration:none;font-size:12px;white-space:nowrap;
}
.fiscal-admin-subnav a:hover{background:var(--fiscal-surface-soft);color:var(--fiscal-text);text-decoration:none}
.fiscal-admin-subnav a.is-active{color:var(--fiscal-heading);border-bottom-color:var(--fiscal-accent);font-weight:500}
@media(max-width:860px){.fiscal-admin-subnav{padding:0 12px}}

/* Fiscal 0.17.45 · shell compacto + subnavegación contextual en zona de contenido */
.fiscal-doc-shortcut svg{
    width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.fiscal-doc-shortcut.is-active{
    border-color:var(--fiscal-accent);color:var(--fiscal-heading);background:var(--fiscal-surface-soft);
}
.fiscal-primary-unit{
    max-width:none;overflow:visible;text-overflow:clip;
}
.fiscal-context-subnav,
.fiscal-admin-subnav{
    display:flex;align-items:center;gap:2px;min-height:31px;margin:-3px 0 14px;padding:0;
    overflow-x:auto;scrollbar-width:none;border:0;border-bottom:1px solid var(--fiscal-border);
    background:transparent;white-space:nowrap;
}
.fiscal-context-subnav::-webkit-scrollbar,
.fiscal-admin-subnav::-webkit-scrollbar{display:none}
.fiscal-context-subnav a,
.fiscal-context-subnav button,
.fiscal-admin-subnav a{
    appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:31px;
    margin:0;padding:0 9px;border:0;border-bottom:2px solid transparent;border-radius:0;
    background:transparent;color:var(--fiscal-muted);font:inherit;font-size:12px;font-weight:400;
    line-height:1;white-space:nowrap;cursor:pointer;text-decoration:none;
}
.fiscal-context-subnav a:hover,
.fiscal-context-subnav button:hover,
.fiscal-context-subnav a:focus-visible,
.fiscal-context-subnav button:focus-visible,
.fiscal-admin-subnav a:hover,
.fiscal-admin-subnav a:focus-visible{
    outline:none;background:transparent;color:var(--fiscal-text);text-decoration:none;
}
.fiscal-context-subnav a.is-active,
.fiscal-context-subnav button.is-active,
.fiscal-admin-subnav a.is-active{
    color:var(--fiscal-heading);border-bottom-color:var(--fiscal-accent);font-weight:500;background:transparent;
}
@media(max-width:860px){
    .fiscal-context-subnav,.fiscal-admin-subnav{padding:0;margin-left:0;margin-right:0}
}



/* DOC 0.4.1 · categorías con el mismo patrón global que Administración. */
.fiscal-doc-category-nav{margin:0 0 10px}

/* CORE 0.11.33 · reordenación manual global de filas/bloques mediante handle.
   El contenedor declara data-fiscal-reorder y cada elemento data-fiscal-reorder-item. */
.fiscal-reorder-col{width:38px;min-width:38px;max-width:38px;padding-left:6px!important;padding-right:6px!important;text-align:center}
.fiscal-reorder-handle{
    appearance:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0;padding:0;
    border:1px solid transparent;border-radius:3px;background:transparent;color:var(--fiscal-muted);cursor:grab;touch-action:none;
}
.fiscal-reorder-handle:hover,.fiscal-reorder-handle:focus-visible{outline:none;border-color:var(--fiscal-border);background:var(--fiscal-surface-soft);color:var(--fiscal-text)}
.fiscal-reorder-handle:active,.fiscal-reorder-active .fiscal-reorder-handle{cursor:grabbing}
.fiscal-reorder-handle svg{width:16px;height:20px;fill:currentColor;pointer-events:none}
[data-fiscal-reorder-item].is-dragging{opacity:.46}
[data-fiscal-reorder-item].is-dragging>td,[data-fiscal-reorder-item].is-dragging>th{background:color-mix(in srgb,var(--fiscal-accent) 7%,var(--fiscal-surface));}
.fiscal-reorder-active [data-fiscal-reorder-item]{transition:opacity .10s ease,background-color .10s ease}
[data-fiscal-reorder-item].is-reorder-before>td,[data-fiscal-reorder-item].is-reorder-before>th{box-shadow:inset 0 2px 0 var(--fiscal-accent)}
[data-fiscal-reorder-item].is-reorder-after>td,[data-fiscal-reorder-item].is-reorder-after>th{box-shadow:inset 0 -2px 0 var(--fiscal-accent)}
.fiscal-reorder-table .fiscal-reorder-col+td{padding-left:8px}

/* DOC · análisis documental: vista previa del contenido realmente extraído. */
.fiscal-document-preview{
    margin-top:10px;
    border:1px solid var(--fiscal-border);
    border-radius:6px;
    background:var(--fiscal-surface);
    overflow:hidden;
}
.fiscal-document-preview>summary{
    cursor:pointer;
    padding:9px 12px;
    font-weight:600;
    user-select:none;
    background:var(--fiscal-surface-soft);
}
.fiscal-document-preview-engine{
    padding:8px 12px 0;
}
.fiscal-document-preview-text{
    margin:8px 12px 12px;
    padding:10px 12px;
    max-height:320px;
    overflow:auto;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    border:1px solid var(--fiscal-border);
    border-radius:4px;
    background:var(--fiscal-field-bg);
    color:var(--fiscal-text);
    font:inherit;
    line-height:1.45;
}

/* DOC 0.5.0 · análisis en dos paneles: contenido extraído + vista previa del archivo. */
.fiscal-document-analysis-grid{
    margin-top:10px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:12px;
    align-items:stretch;
}
.fiscal-document-analysis-pane{
    min-width:0;
    border:1px solid var(--fiscal-border);
    border-radius:6px;
    background:var(--fiscal-surface);
    overflow:hidden;
}
.fiscal-document-analysis-title{
    padding:9px 12px;
    border-bottom:1px solid var(--fiscal-border);
    background:var(--fiscal-surface-soft);
    font-weight:600;
}
.fiscal-document-analysis-pane .fiscal-document-preview-engine{padding:8px 12px 0;}
.fiscal-document-analysis-pane .fiscal-document-preview-text{
    box-sizing:border-box;
    width:calc(100% - 24px);
    height:360px;
    max-height:360px;
}
.fiscal-document-file-preview{
    min-height:402px;
    height:402px;
    padding:10px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:auto;
    background:var(--fiscal-field-bg);
}
.fiscal-document-preview-frame{display:block;width:100%;height:100%;min-height:380px;border:0;background:#fff;}
.fiscal-document-preview-image{display:block;max-width:100%;max-height:380px;object-fit:contain;}
.fiscal-document-preview-fallback{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;text-align:center;padding:20px;max-width:440px;}
@media(max-width:900px){
    .fiscal-document-analysis-grid{grid-template-columns:1fr;}
    .fiscal-document-analysis-pane .fiscal-document-preview-text{height:280px;max-height:280px;}
    .fiscal-document-file-preview{height:320px;min-height:320px;}
    .fiscal-document-preview-frame{min-height:298px;}
    .fiscal-document-preview-image{max-height:298px;}
}

/* CORE 0.11.36: release interactiva de Bitácora y filtros DOC compactos. */
.fiscal-dev-release-action{display:block;width:100%;text-align:left;border:0;background:transparent;color:inherit;font:inherit;padding:8px 10px;cursor:pointer;box-shadow:none}
.fiscal-dev-release-action:hover,.fiscal-dev-release-action:focus-visible{background:var(--fiscal-surface-soft);outline:none;box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent)}
html[data-row-accent="0"] .fiscal-dev-release-action:hover,html[data-row-accent="0"] .fiscal-dev-release-action:focus-visible,html.fiscal-row-accent-off .fiscal-dev-release-action:hover,html.fiscal-row-accent-off .fiscal-dev-release-action:focus-visible{box-shadow:none!important}
.fiscal-dev-release-action.is-active{background:var(--fiscal-selected-bg)}
.fiscal-doc-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fiscal-doc-filterbar .fiscal-doc-location{flex:0 1 360px;min-width:220px;max-width:100%}
.fiscal-doc-filterbar .fiscal-doc-category{flex:0 1 220px;min-width:170px;max-width:100%}
.fiscal-doc-filterbar input[name="q"]{flex:1 1 320px;min-width:220px}
@media(max-width:720px){.fiscal-doc-filterbar .fiscal-doc-location,.fiscal-doc-filterbar .fiscal-doc-category,.fiscal-doc-filterbar input[name="q"]{flex:1 1 100%;width:100%;min-width:0}}

/* CORE 0.11.38 · modal global realmente a viewport completo.
   El root HTML reserva gutters simétricos para el scrollbar; centrar un root de 100vw
   evita que esas franjas queden fuera del oscurecimiento. */
/* Modal global: el root se dibuja sobre el viewport real, incluidos los gutters laterales.
   Mientras hay un modal visible se desactiva temporalmente scrollbar-gutter y se
   compensan ambos lados con el espacio medido por JS para que el contenido no salte. */
html.fiscal-modal-open{scrollbar-gutter:auto!important;overflow:hidden!important}
html.fiscal-modal-open body{padding-left:var(--fiscal-modal-gutter-left,0px);padding-right:var(--fiscal-modal-gutter-right,0px)}
/* Toda capa bloqueante ocupa el viewport físico completo, no el área útil
   reducida por scrollbar-gutter. El centrado con 100vw elimina cualquier
   franja lateral tanto en Ayuda como en confirmaciones globales. */
#fiscal-modal-root:not(:empty){position:fixed;z-index:4000;top:0;bottom:0;left:50%;right:auto;width:100vw;height:100vh;max-width:none;transform:translateX(-50%);pointer-events:none}
#fiscal-modal-root .fiscal-modal-overlay{position:absolute;inset:0;width:100%;height:100%;min-width:100%;min-height:100%;pointer-events:auto}
.fiscal-dev-event[data-devlog-focus-event="1"]{scroll-margin-block:18vh}
.fiscal-dev-event.is-version-focus{background:var(--fiscal-surface-soft);box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent);transition:background-color .35s ease,box-shadow .35s ease}
html[data-row-accent="0"] .fiscal-dev-event.is-version-focus,html.fiscal-row-accent-off .fiscal-dev-event.is-version-focus{box-shadow:none!important}
.fiscal-dev-releases-title{display:inline-flex;align-items:center;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:0;margin:0;cursor:pointer;text-align:left}
.fiscal-dev-releases-title:hover,.fiscal-dev-releases-title:focus-visible{color:var(--fiscal-accent);outline:none;text-decoration:underline;text-underline-offset:3px}


/* CORE 0.11.40 · Bitácora: geometría, foco de búsqueda y releases informativas. */
.fiscal-dev-kpis{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:14px;align-items:stretch}
.fiscal-dev-kpis-primary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}
.fiscal-dev-kpi-releases{min-width:0}
.fiscal-dev-release-summary{margin:3px 0 4px;line-height:1.3;overflow-wrap:anywhere}
.fiscal-dev-event{transition:background-color .45s ease}
.fiscal-dev-event.is-version-focus{background:#fffdf2;box-shadow:none!important}
.fiscal-dev-event.is-version-focus:before{background:#d9b300}
@media(max-width:950px){.fiscal-dev-kpis{grid-template-columns:1fr}.fiscal-dev-kpis-primary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.fiscal-dev-kpis-primary{grid-template-columns:1fr}}

/* DOC 0.5.1 · previsualización visual Office sin servicios externos */
.fiscal-office-preview{width:100%;height:100%;min-height:380px;overflow:auto;background:var(--fiscal-surface,#fff);}
.fiscal-office-tabs{display:flex;gap:4px;align-items:flex-end;padding:8px 8px 0;border-bottom:1px solid var(--fiscal-border,#d8e0e8);background:var(--fiscal-surface-soft,#f6f8fa);position:sticky;top:0;z-index:2;}
.fiscal-office-tabs button{appearance:none;border:1px solid var(--fiscal-border,#d8e0e8);border-bottom:0;background:transparent;padding:6px 10px;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;}
.fiscal-office-tabs button:hover{background:var(--fiscal-row-hover,#eef4f8);}
.fiscal-office-tabs button.is-active{background:var(--fiscal-surface,#fff);font-weight:600;position:relative;top:1px;}
.fiscal-office-sheet-stage{min-width:100%;padding:8px;}
.fiscal-office-sheet-scroll{overflow:auto;border:1px solid var(--fiscal-border,#d8e0e8);background:#fff;}
.fiscal-office-sheet-table{border-collapse:collapse;min-width:100%;font-size:12px;color:#222;}
.fiscal-office-sheet-table th,.fiscal-office-sheet-table td{border:1px solid #d9d9d9;padding:4px 7px;min-width:72px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top;}
.fiscal-office-sheet-table th{position:sticky;left:0;z-index:1;min-width:38px;width:38px;background:#f3f3f3;color:#666;text-align:right;font-weight:400;}
.fiscal-office-document{padding:16px;background:#e9edf1;}
.fiscal-office-page{box-sizing:border-box;max-width:720px;min-height:360px;margin:0 auto 16px;padding:34px 42px;background:#fff;color:#222;border:1px solid #d7d7d7;box-shadow:0 1px 4px rgba(0,0,0,.08);font-family:Roboto,"Noto Sans",Helvetica,Arial,sans-serif;line-height:1.45;}
.fiscal-office-page p{margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere;}
.fiscal-office-presentation{padding:16px;background:#e9edf1;display:flex;flex-direction:column;gap:16px;align-items:center;}
.fiscal-office-slide{position:relative;width:min(100%,720px);aspect-ratio:16/9;background:#fff;color:#222;border:1px solid #d7d7d7;box-shadow:0 1px 4px rgba(0,0,0,.09);overflow:hidden;padding:7% 8%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;}
.fiscal-office-slide-number{position:absolute;right:8px;bottom:5px;font-size:11px;color:#777;}
.fiscal-office-slide-body{width:100%;max-height:100%;overflow:hidden;text-align:left;font-size:16px;line-height:1.35;}
.fiscal-office-slide-body strong{display:block;font-size:22px;margin-bottom:12px;}
@media(max-width:760px){.fiscal-office-preview{min-height:320px}.fiscal-office-page{padding:24px 22px}.fiscal-office-slide-body{font-size:13px}.fiscal-office-slide-body strong{font-size:18px}}

/* DOC 0.5.4 · Markdown preview seguro y legible */
.fiscal-markdown-preview{width:100%;height:100%;min-height:380px;overflow:auto;box-sizing:border-box;padding:20px 24px;background:#fff;color:#202832;font:14px/1.55 Roboto,"Noto Sans",Helvetica,Arial,sans-serif;}
.fiscal-markdown-preview h1,.fiscal-markdown-preview h2,.fiscal-markdown-preview h3,.fiscal-markdown-preview h4,.fiscal-markdown-preview h5,.fiscal-markdown-preview h6{margin:1.1em 0 .55em;line-height:1.25;color:#193d60;}
.fiscal-markdown-preview h1{font-size:1.75em}.fiscal-markdown-preview h2{font-size:1.5em}.fiscal-markdown-preview h3{font-size:1.25em}.fiscal-markdown-preview p{margin:.55em 0;}
.fiscal-markdown-preview ul,.fiscal-markdown-preview ol{margin:.55em 0 .8em 1.7em;padding:0}.fiscal-markdown-preview li{margin:.2em 0}.fiscal-markdown-preview blockquote{margin:.8em 0;padding:.45em .9em;border-left:3px solid #c8d5e2;background:#f7f9fb;color:#4b5967;}
.fiscal-markdown-preview pre{margin:.8em 0;padding:12px 14px;overflow:auto;background:#f3f5f7;border:1px solid #d9e0e6;border-radius:2px;white-space:pre;tab-size:4}.fiscal-markdown-preview code{font-family:Consolas,"Courier New",monospace;font-size:.94em;background:#f3f5f7;padding:.08em .28em;border-radius:2px}.fiscal-markdown-preview pre code{padding:0;background:transparent;}
.fiscal-markdown-preview table{border-collapse:collapse;width:max-content;min-width:55%;max-width:100%;margin:.8em 0}.fiscal-markdown-preview th,.fiscal-markdown-preview td{border:1px solid #d8e0e7;padding:6px 9px;vertical-align:top}.fiscal-markdown-preview th{background:#f2f5f8;text-align:left}.fiscal-markdown-preview a{color:#1769aa;text-decoration:underline}.fiscal-markdown-preview hr{border:0;border-top:1px solid #d8e0e7;margin:1.2em 0}.fiscal-markdown-preview img{max-width:100%;height:auto}
@media(max-width:760px){.fiscal-markdown-preview{min-height:298px;padding:14px 16px;}}


/* DOC 0.5.5 · preview visual OOXML local */
.fiscal-document-file-preview.is-docx,.fiscal-document-file-preview.is-pptx,.fiscal-document-file-preview.is-xml{background:#e9edf1;overflow:auto;}
.fiscal-docx-preview{min-height:100%;padding:14px;box-sizing:border-box;background:#e9edf1;overflow:auto;}
.fiscal-docx-page{box-sizing:border-box;width:min(100%,794px);min-height:520px;margin:0 auto 16px;padding:48px 56px;background:#fff;color:#111;border:1px solid #cfd6dd;box-shadow:0 1px 5px rgba(0,0,0,.10);font-family:Calibri,Arial,sans-serif;font-size:11pt;line-height:1.15;overflow:hidden;}
.fiscal-docx-p{margin:0 0 8pt;min-height:1em;white-space:pre-wrap;overflow-wrap:anywhere;}
.fiscal-docx-page h1.fiscal-docx-p{font-size:22pt;line-height:1.15;margin:12pt 0 6pt}.fiscal-docx-page h2.fiscal-docx-p{font-size:16pt;margin:10pt 0 5pt}.fiscal-docx-page h3.fiscal-docx-p{font-size:13pt;margin:8pt 0 4pt}
.fiscal-docx-bullet{display:inline-block;min-width:1.4em}.fiscal-docx-image{max-width:100%;height:auto;vertical-align:middle;}
.fiscal-docx-table{width:100%;border-collapse:collapse;margin:6pt 0 10pt;table-layout:auto}.fiscal-docx-table td,.fiscal-docx-table th{border:1px solid #9ea7b1;padding:4px 6px;vertical-align:top}.fiscal-docx-table .fiscal-docx-p{margin:0;}
.fiscal-pptx-preview{min-height:100%;padding:14px;box-sizing:border-box;background:#dfe4e9;display:flex;flex-direction:column;gap:14px;align-items:center;overflow:auto;}
.fiscal-pptx-slide{position:relative;width:min(100%,900px);background:#fff;border:1px solid #c5cbd1;box-shadow:0 2px 7px rgba(0,0,0,.14);overflow:hidden;flex:0 0 auto;}
.fiscal-pptx-shape{box-sizing:border-box;overflow:hidden;display:flex;}.fiscal-pptx-text{box-sizing:border-box;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;line-height:1.1;white-space:normal;}.fiscal-pptx-paragraph{min-height:1em;white-space:pre-wrap;overflow-wrap:anywhere;}.fiscal-pptx-image{object-fit:contain;z-index:2}.fiscal-pptx-table-wrap{overflow:hidden;z-index:2}.fiscal-pptx-table{border-collapse:collapse;width:100%;height:100%;font-family:Arial,sans-serif}.fiscal-pptx-table td{border:1px solid rgba(0,0,0,.25);padding:2px 4px;vertical-align:middle;overflow:hidden}.fiscal-pptx-slide-number{position:absolute;right:5px;bottom:3px;font-size:10px;color:#777;z-index:99}
.fiscal-xml-preview{box-sizing:border-box;margin:0;min-height:100%;padding:14px 16px;background:#fff;color:#202832;font:12px/1.45 Consolas,"Courier New",monospace;white-space:pre;tab-size:2;overflow:auto}.fiscal-xml-preview .xml-tag{color:#155e9b;font-weight:600}.fiscal-xml-preview .xml-attr{color:#8a4b08}.fiscal-xml-preview .xml-val{color:#217a3c}.fiscal-xml-preview .xml-comment{color:#7a8590;font-style:italic}
@media(max-width:760px){.fiscal-docx-preview,.fiscal-pptx-preview{padding:8px}.fiscal-docx-page{padding:28px 22px;font-size:10.5pt;min-height:420px}}

/* DOC 0.5.6: visores reales DOCX/PPTX. El contenedor de preview NO puede centrar
   verticalmente contenido más alto que la ventana: con flex+center el principio
   del documento queda fuera del scroll y parece empezar "por la mitad". */
.fiscal-document-file-preview.is-docx-engine,
.fiscal-document-file-preview.is-pptx-engine,
.fiscal-document-file-preview.is-xml,
.fiscal-document-file-preview.is-docx,
.fiscal-document-file-preview.is-pptx{
    display:block;
    align-items:initial;
    justify-content:flex-start;
    padding:0;
    overflow:auto;
    background:#e9edf1;
}
.fiscal-docx-engine-viewport{display:block;width:100%;min-height:100%;overflow:visible;background:#e9edf1;padding:10px;box-sizing:border-box;}
.fiscal-docx-engine-target{display:block;transform-origin:top left;min-width:0;}
.fiscal-docx-engine-target .docx-wrapper{padding:10px!important;background:#e9edf1!important;align-items:flex-start!important;justify-content:flex-start!important;}
.fiscal-docx-engine-target .docx-wrapper>section.docx{margin:0 auto 12px!important;box-shadow:0 1px 5px rgba(0,0,0,.12)!important;}
.fiscal-pptx-engine{display:block;width:100%;min-height:100%;box-sizing:border-box;overflow:visible;background:#e9edf1;padding:10px;}
.fiscal-document-file-preview.is-preview-error{display:flex;align-items:center;justify-content:center;padding:10px;}

/* CORE 0.11.45 · estándar maestro listado -> ficha para Usuarios/Personal */
.fiscal-static-field{min-height:34px;display:flex;align-items:center;padding:7px 8px;border:1px solid var(--fiscal-border);border-radius:4px;background:var(--fiscal-surface-soft);color:var(--fiscal-text);box-sizing:border-box}
.fiscal-linked-record{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:36px}
.fiscal-linked-record>span{min-width:0}
.fiscal-user-self-link{color:inherit;text-decoration:none}
.fiscal-user-self-link:hover,.fiscal-user-self-link:focus-visible{text-decoration:underline}
@media(max-width:720px){.fiscal-linked-record{align-items:flex-start;flex-direction:column}}

/* CORE/COM 0.17.77 · centro de trabajo único y ámbito de acceso por filas */
.fiscal-employment-head{align-items:flex-start}
.fiscal-employment-active{margin:0!important;align-self:flex-start;white-space:nowrap}
.fiscal-scope-entity-field{max-width:none;margin-bottom:12px}
.fiscal-scope-unit-list{border:1px solid var(--fiscal-border);border-radius:4px;overflow:hidden;background:var(--fiscal-surface)}
.fiscal-scope-unit-head,.fiscal-scope-unit-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 72px;align-items:center;column-gap:12px;min-height:38px;padding:0 10px;box-sizing:border-box}
.fiscal-scope-unit-head{min-height:32px;background:var(--fiscal-surface-soft);font-size:12px;font-weight:700;color:var(--fiscal-muted);border-bottom:1px solid var(--fiscal-border)}
.fiscal-scope-unit-head>span:nth-child(2),.fiscal-scope-unit-head>span:nth-child(3){text-align:center}
.fiscal-scope-unit-row{position:relative;cursor:pointer;border-left:3px solid transparent;border-bottom:1px solid var(--fiscal-border);outline:none}
.fiscal-scope-unit-row:last-child{border-bottom:0}
.fiscal-scope-unit-row:hover,.fiscal-scope-unit-row:focus-visible{background:var(--fiscal-surface-soft)}
.fiscal-scope-unit-row.is-selected{background:var(--fiscal-surface-soft);border-left-color:var(--fiscal-accent)}
.fiscal-scope-unit-row.is-mandatory{cursor:default}
.fiscal-scope-unit-input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;opacity:0!important;pointer-events:none!important;margin:0!important}
.fiscal-scope-unit-name{min-width:0;white-space:nowrap;overflow:visible;text-overflow:clip}
.fiscal-scope-unit-primary,.fiscal-scope-unit-state{text-align:center;white-space:nowrap}
.fiscal-radio-inline{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0;white-space:nowrap}
.fiscal-radio-inline input{margin:0}
@media(max-width:760px){.fiscal-scope-unit-list{overflow-x:auto}.fiscal-scope-unit-head,.fiscal-scope-unit-row{grid-template-columns:minmax(280px,1fr) 125px 62px;min-width:500px}}

/* CORE 0.11.51 · Usuario: cuenta compacta y selección visual homogénea */
.fiscal-account-head{align-items:flex-start}
.fiscal-account-active{margin:0!important;align-self:flex-start;white-space:nowrap}
.fiscal-account-actions{display:flex;align-items:flex-end;min-height:58px}
.fiscal-account-actions>.fiscal-actions{width:100%;margin:0;justify-content:flex-end}
.fiscal-scope-primary-input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;opacity:0!important;pointer-events:none!important;margin:0!important}
.fiscal-scope-primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 7px;border:1px solid var(--fiscal-border);border-radius:3px;background:var(--fiscal-surface);color:var(--fiscal-text);font:inherit;font-size:11px;line-height:1.2;cursor:pointer;white-space:nowrap}
.fiscal-scope-primary-button:hover,.fiscal-scope-primary-button:focus-visible{border-color:var(--fiscal-accent);outline:none}
.fiscal-scope-primary-button.is-primary{border-color:transparent;background:transparent;color:var(--fiscal-heading);font-weight:700;cursor:default}
.fiscal-scope-unit-list-compact .fiscal-scope-unit-head,.fiscal-scope-unit-list-compact .fiscal-scope-unit-row{grid-template-columns:minmax(0,1fr)72px}
.fiscal-scope-unit-list-compact .fiscal-scope-unit-head>span:nth-child(2){text-align:center}
@media(max-width:720px){.fiscal-account-actions{min-height:auto}.fiscal-scope-unit-list-compact .fiscal-scope-unit-head,.fiscal-scope-unit-list-compact .fiscal-scope-unit-row{grid-template-columns:minmax(280px,1fr)62px;min-width:370px}}

/* CORE 0.11.51 · Responsabilidades: mismo patrón de filas seleccionables que el ámbito */
.fiscal-responsibility-card{padding:0;overflow:hidden}
.fiscal-responsibility-card.is-disabled{opacity:.62}
.fiscal-responsibility-selector{position:relative;display:grid;grid-template-columns:minmax(0,1fr)72px;align-items:center;column-gap:12px;min-height:48px;padding:9px 10px;border-left:3px solid transparent;box-sizing:border-box;cursor:pointer;outline:none}
.fiscal-responsibility-selector:hover,.fiscal-responsibility-selector:focus-visible{background:var(--fiscal-surface-soft)}
.fiscal-responsibility-card.is-selected>.fiscal-responsibility-selector{background:var(--fiscal-surface-soft);border-left-color:var(--fiscal-accent)}
.fiscal-responsibility-card.is-disabled>.fiscal-responsibility-selector{cursor:default}
.fiscal-responsibility-input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;opacity:0!important;pointer-events:none!important;margin:0!important}
.fiscal-responsibility-main{min-width:0;display:grid;gap:2px}
.fiscal-responsibility-state{text-align:center;white-space:nowrap}
.fiscal-responsibility-scope{margin:0!important;padding:10px 12px 12px!important;border-top:1px solid var(--fiscal-border-soft);display:block!important}
.fiscal-responsibility-scope[hidden]{display:none!important}
@media(max-width:720px){.fiscal-responsibility-selector{grid-template-columns:minmax(0,1fr)62px}}


.fiscal-entry-check,.fiscal-manual-deductible{display:flex;flex-direction:column;align-items:center;justify-content:center}.fiscal-entry-row .fiscal-entry-check{min-height:35px;padding:0 8px;border:1px solid var(--fiscal-border);border-radius:4px;background:var(--fiscal-surface-soft);box-sizing:border-box}.fiscal-entry-check input[type=checkbox],.fiscal-manual-deductible input[type=checkbox]{width:auto!important;min-width:0!important;margin:0;accent-color:var(--fiscal-accent)}.fiscal-entry-check-head{text-align:center!important}

.fiscal-table tr.fiscal-arca-focus>td{background:var(--fiscal-selected-bg)}
.fiscal-table tr.fiscal-arca-focus>td:first-child{box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent)}
html[data-row-accent="0"] .fiscal-table tr.fiscal-arca-focus>td:first-child,html.fiscal-row-accent-off .fiscal-table tr.fiscal-arca-focus>td:first-child{box-shadow:none!important}

/* EFP 0.19.35 · asiento cuadrado pendiente de cuentas contables */
.fiscal-summary>div.fiscal-summary-status-warn{
    background:color-mix(in srgb,var(--fiscal-warning) 9%,var(--fiscal-surface-soft));
    border-color:color-mix(in srgb,var(--fiscal-warning) 34%,var(--fiscal-border));
}
.fiscal-summary>div.fiscal-summary-status-warn span,
.fiscal-summary>div.fiscal-summary-status-warn b{color:var(--fiscal-warning)}

/* EFP 0.5.27 · base/cuota y sus totales comparten ancho; moneda sin salto */
.fiscal-entry-total-box{white-space:nowrap;min-width:0;box-sizing:border-box}

/* CORE UI · radio único para cualquier control con marco de entrada */
:root{--fiscal-input-radius:2px}
input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]),
select,
textarea,
.fiscal-control,
.fiscal-static-field,
.fiscal-entry-total-box,
.fiscal-entry-check,
.fiscal-manual-deductible,
.fiscal-search-count,
.fiscal-unit-filter-fixed,
.fiscal-account-display{
    border-radius:var(--fiscal-input-radius)!important;
}

/* Fiscal 0.19.41 · validación global: el primer campo pendiente destella y recibe foco. */
@keyframes fiscal-required-attention {
    0%,100% { border-color:var(--fiscal-accent); box-shadow:0 0 0 2px var(--fiscal-focus-ring); }
    50% { border-color:var(--fiscal-accent); box-shadow:0 0 0 5px var(--fiscal-focus-ring); filter:brightness(1.08); }
}
input.fiscal-field-attention,
select.fiscal-field-attention,
textarea.fiscal-field-attention,
[contenteditable].fiscal-field-attention {
    animation:fiscal-required-attention .24s ease-in-out 4;
}
@media (prefers-reduced-motion: reduce) {
    input.fiscal-field-attention,
    select.fiscal-field-attention,
    textarea.fiscal-field-attention,
    [contenteditable].fiscal-field-attention { animation: none; }
}


/* CORE 0.11.83 · carga de archivos con botón nativo + zona amplia de arrastre. */
.fiscal-file-dropzone{
    width:100%;min-height:112px;padding:16px 18px;box-sizing:border-box;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    border:1px dashed var(--fiscal-border);border-radius:var(--fiscal-input-radius,2px);
    background:var(--fiscal-surface);cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease;
}
.fiscal-file-dropzone:hover,.fiscal-file-dropzone:focus-visible,.fiscal-file-dropzone.is-dragover{
    border-color:var(--fiscal-accent);background:var(--fiscal-surface-soft);outline:none;
}
.fiscal-file-dropzone.is-dragover{box-shadow:0 0 0 2px var(--fiscal-focus-ring)}
.fiscal-file-dropzone-copy{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;pointer-events:none}
.fiscal-file-dropzone-copy strong{font-weight:600;color:var(--fiscal-heading)}
.fiscal-file-dropzone-copy span{font-size:12px;color:var(--fiscal-muted)}
.fiscal-file-dropzone>input[type=file]{width:min(100%,720px);max-width:720px;cursor:pointer}
.fiscal-inline-fields>.fiscal-file-dropzone,.fiscal-dir-import>.fiscal-file-dropzone{flex:1 1 320px;min-width:260px}
@media(max-width:720px){.fiscal-file-dropzone{min-height:96px;padding:14px 12px}.fiscal-file-dropzone>input[type=file]{max-width:100%}}

/* EFP: presentación agrupada de exportación ARCA y pago/remesa (0.19.58) */
.efp-arca-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.efp-arca-payment-card{border:1px solid var(--fiscal-border,#dce4ea);border-radius:6px;padding:17px 18px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.efp-arca-payment-card h3{font-size:1rem;margin:0 0 2px;color:var(--fiscal-text,#284664)}
.efp-arca-payment-status{display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-height:25px}
.efp-arca-payment-status strong{font-size:.94rem;font-weight:600}
.efp-arca-payment-detail{margin:0;font-size:.9rem}
.efp-arca-payment-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto}
.efp-arca-payment-form{display:flex;flex-wrap:wrap;align-items:end;gap:9px;width:100%;margin-top:auto;padding-top:14px;border-top:1px solid var(--fiscal-border,#dce4ea)}
.efp-arca-payment-form label{width:100%;font-size:.85rem;margin:0}
.efp-arca-payment-form select{flex:1;min-width:150px}
.efp-arca-payment-actions{display:flex;justify-content:flex-start;margin-top:14px}
@media(max-width:780px){.efp-arca-payment-grid{grid-template-columns:1fr}.efp-arca-payment-card{padding:14px}}

/* EFP 0.19.60: fila compacta de ARCA y pago, sin tarjetas anidadas */
.efp-arca-payment-intro{margin:3px 0 12px}
.efp-arca-payment-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:18px;align-items:center;margin-top:0}
.efp-arca-payment-card{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 12px;min-width:0;padding:0;border:0;border-radius:0;background:transparent}
.efp-arca-payment-caption{font-size:.92rem;white-space:nowrap;color:var(--fiscal-text,#284664)}
.efp-arca-payment-status{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;min-height:0;white-space:nowrap}
.efp-arca-payment-status span{font-weight:500;font-size:.9rem}
.efp-arca-payment-detail{font-size:.83rem;white-space:nowrap}
.efp-arca-payment-form{display:inline-flex;align-items:center;flex-wrap:nowrap;width:auto;margin:0;padding:0;border:0;gap:8px}
.efp-arca-payment-form label{width:auto;white-space:nowrap;margin:0}
.efp-arca-payment-form select{width:auto;min-width:135px;max-width:180px}
.efp-arca-payment-actions{margin-top:12px}
@media(max-width:1150px){.efp-arca-payment-grid{grid-template-columns:1fr;gap:15px}.efp-arca-payment-card{gap:8px}}
@media(max-width:650px){.efp-arca-payment-card{align-items:flex-start;flex-wrap:wrap}.efp-arca-payment-form{flex-wrap:wrap}.efp-arca-payment-detail{white-space:normal}}

/* DOC 0.5.18: ancho del visor y desplazamiento transversal, no solo PPTX. */
.fiscal-document-file-preview{min-width:0;max-width:100%;overflow-x:auto;overflow-y:auto;}
.fiscal-document-file-preview .fiscal-pptx-engine,
.fiscal-document-file-preview .fiscal-docx-engine-viewport{max-width:none;min-width:0;transform-origin:top left;}
.fiscal-document-file-preview .fiscal-document-preview-image,
.fiscal-document-file-preview img,
.fiscal-document-file-preview video,
.fiscal-document-file-preview canvas{max-width:100%;height:auto;object-fit:contain;}
.fiscal-document-file-preview .fiscal-xml-preview{max-width:100%;width:100%;white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:auto;}
.fiscal-document-file-preview .fiscal-markdown-preview{max-width:100%;min-width:0;overflow-wrap:anywhere;}
.fiscal-document-file-preview .fiscal-markdown-preview pre{max-width:100%;overflow-x:auto;}
.fiscal-document-file-preview .fiscal-office-sheet-scroll{max-width:100%;overflow-x:auto;}

/* FP 0.5.47 - Datos contables: tres filas estables, sin ayudas que descuadren los campos. */
.efp-account-fields{display:grid;gap:12px}
.efp-account-data-primary{display:grid;grid-template-columns:minmax(150px,.85fr) minmax(150px,.85fr) minmax(235px,1.4fr) minmax(190px,1.15fr);gap:14px}
.efp-account-data-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.efp-account-fields .fiscal-field{min-width:0}
.efp-account-fields .fiscal-field input{width:100%;min-width:0;box-sizing:border-box}
@media(max-width:1100px){.efp-account-data-primary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.efp-account-data-primary,.efp-account-data-secondary{grid-template-columns:minmax(0,1fr)}}

/* FP 0.5.48 | ARCA: proceso guiado, lotes pendientes e histórico; estilos de página, sin tocar la lógica. */
.efp-arca-process{border:1px solid var(--fiscal-border);border-radius:5px;background:var(--fiscal-surface-soft);padding:14px 16px;margin:10px 0 8px}
.efp-arca-process ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.efp-arca-process-step{display:flex;align-items:flex-start;gap:10px;min-width:0;position:relative;padding-right:10px}
.efp-arca-process-step:not(:last-child):after{content:'›';position:absolute;right:-6px;top:9px;color:var(--fiscal-muted);font-size:22px;line-height:1}
.efp-arca-process-number{background:var(--fiscal-accent);color:#fff;width:27px;height:27px;min-width:27px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;font-size:13px;font-weight:700}
.efp-arca-process-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.efp-arca-process-copy strong{font-size:13px;color:var(--fiscal-heading);line-height:1.35}
.efp-arca-process-copy span{font-size:12px;color:var(--fiscal-muted);line-height:1.4}
.efp-arca-flow-help{margin:0 0 16px;color:var(--fiscal-text)}
.efp-arca-flow-help summary{cursor:pointer;color:var(--fiscal-accent);font-size:12px;padding:5px 0;display:list-item;list-style:disclosure-closed inside}
.efp-arca-flow-help[open] summary{list-style:disclosure-open inside}
.efp-arca-flow-details{padding:8px 12px;border-left:3px solid var(--fiscal-border);color:var(--fiscal-text);font-size:12px;line-height:1.5}
.efp-arca-flow-details p{margin:5px 0}
.efp-arca-section .efp-arca-section-head{align-items:center;margin-bottom:10px}
.efp-arca-section h2{margin:0 0 4px}
.efp-arca-section .fiscal-muted{font-size:12px;line-height:1.45}
.efp-arca-section-head .fiscal-actions{margin:0}
.efp-arca-section-head .fiscal-actions form{margin:0}
.efp-arca-filters{margin:0 0 4px!important;gap:8px}
.efp-arca-search-hint{font-size:11px;margin:0 0 12px}
.efp-arca-queue-notice{margin:7px 0 10px;white-space:normal}
.efp-arca-table thead th{background:var(--fiscal-surface-soft);font-size:12px;white-space:nowrap}
.efp-arca-table td{font-size:12px;vertical-align:middle}
.efp-arca-section-attention{border-color:var(--fiscal-accent);border-left-width:3px}
.efp-arca-section-empty .efp-arca-section-head{margin-bottom:0}
.efp-arca-no-batches{margin:8px 0 0;padding:9px 10px;color:var(--fiscal-muted);background:var(--fiscal-surface-soft);font-size:12px}
.efp-arca-file-link{display:block;max-width:310px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.efp-arca-batch-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.efp-arca-batch-actions form{margin:0}
.efp-arca-batch-actions .fiscal-btn{white-space:nowrap}
@media(max-width:1100px){.efp-arca-process ol{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.efp-arca-process-step:nth-child(2):after{display:none}}
@media(max-width:680px){.efp-arca-process ol{grid-template-columns:minmax(0,1fr);gap:12px}.efp-arca-process-step:after{display:none!important}.efp-arca-section .efp-arca-section-head{align-items:flex-start}.efp-arca-section-head .fiscal-actions{width:100%}.efp-arca-section-head .fiscal-actions .fiscal-btn{width:100%}.efp-arca-file-link{max-width:210px}}

/* FP 0.5.51 · Remesas: mismo proceso guiado que ARCA (5 pasos).
   Se reutiliza el componente ARCA; solo cambian las columnas adaptativas. */
.efp-arca-process.efp-remittance-process ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
@media(max-width:1260px){
 .efp-arca-process.efp-remittance-process ol{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:16px}
 .efp-remittance-process .efp-arca-process-step:nth-child(3):after{display:none}
}
@media(min-width:951px) and (max-width:1100px){.efp-remittance-process .efp-arca-process-step:nth-child(2):after{display:block}}
@media(max-width:950px){
 .efp-arca-process.efp-remittance-process ol{grid-template-columns:repeat(2,minmax(0,1fr))}
 .efp-remittance-process .efp-arca-process-step:nth-child(3):after{display:block}
 .efp-remittance-process .efp-arca-process-step:nth-child(2n):after{display:none}
}
@media(max-width:680px){
 .efp-arca-process.efp-remittance-process ol{grid-template-columns:minmax(0,1fr);gap:12px}
 .efp-remittance-process .efp-arca-process-step:after{display:none!important}
}


/* CORE · Único selector personalizado para todos los formularios de MASTER.
   El select HTML es el campo canónico; CORE proporciona la presentación. */
.fiscal-select{position:relative;width:100%;max-width:100%;min-width:0;}
/* CORE: preserve flex-row geometry; field/grid controls still take full available width. */
:is(.fiscal-filterbar,.fiscal-inline-fields,.fiscal-actions-inline,.fiscal-subnav,.fiscal-irpf,.fiscal-setting-row) > .fiscal-select{
    flex:0 1 180px;
    width:auto;
    min-width:min(130px,100%);
    max-width:100%;
}
.fiscal-select>select[data-fiscal-select-ready="1"]{
    position:absolute!important;width:1px!important;height:1px!important;
    min-height:0!important;padding:0!important;margin:0!important;
    opacity:0!important;clip-path:inset(50%);pointer-events:none;
}
.fiscal-select-trigger{
    box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;
    gap:10px;width:100%;max-width:100%;min-width:0;min-height:35px;padding:7px 9px;overflow:hidden;
    border:1px solid var(--fiscal-border);border-radius:2px;
    background:var(--fiscal-surface-soft);color:var(--fiscal-text);
    font:inherit;text-align:left;cursor:pointer;
}
.fiscal-select-trigger:focus-visible{outline:2px solid var(--fiscal-focus);outline-offset:1px;}
.fiscal-select-trigger[aria-expanded="true"]{border-color:var(--fiscal-focus);}
.fiscal-select-trigger:disabled{opacity:.72;cursor:not-allowed;}
.fiscal-select-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.fiscal-select-arrow{flex:0 0 auto;font-size:10px;line-height:1;}
.fiscal-select-list{
    position:fixed;z-index:3900;
    box-sizing:border-box;max-height:min(280px,45vh);overflow:auto;
    border:1px solid var(--fiscal-border);border-radius:2px;
    background:var(--fiscal-surface);box-shadow:0 8px 22px rgba(0,0,0,.18);
}
.fiscal-select-list[hidden]{display:none!important;}
.fiscal-select-group{padding:6px 10px 4px;color:var(--fiscal-text-muted);font-weight:700;cursor:default;}
.fiscal-select-option{
    display:block;box-sizing:border-box;width:100%;min-height:30px;padding:7px 10px;
    border:0;border-radius:0;background:var(--fiscal-surface);
    color:var(--fiscal-text);font:inherit;text-align:left;cursor:pointer;
    white-space:normal;overflow-wrap:anywhere;
}
.fiscal-select-option[aria-selected="true"]{background:var(--fiscal-selected-bg);}
.fiscal-select-option:is(:hover,.is-active,:focus-visible){
    background:var(--fiscal-accent);color:#fff;outline:none;
}
.fiscal-select-option:disabled{opacity:.6;cursor:not-allowed;}
.fiscal-select-option[hidden]{display:none!important;}
/* Utilidad global: campo y explicación a su lado, apilados en pantallas estrechas. */
.fiscal-inline-help-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin:0 0 12px;}
.fiscal-inline-help-row>.fiscal-field{flex:0 1 250px;min-width:180px;}
.fiscal-inline-help-row>.fiscal-field-help{flex:1 1 370px;min-width:0;margin:0 0 7px;line-height:1.5;}
@media(max-width:670px){
    .fiscal-inline-help-row{gap:6px;}
    .fiscal-inline-help-row>.fiscal-field{flex:1 1 100%;max-width:300px;}
    .fiscal-inline-help-row>.fiscal-field-help{flex:1 1 100%;margin:0;}
}


/* MASTER · CENTRALIZACIÓN GLOBAL CORE. Las reglas locales de origen se mantienen exclusivamente aquí. */

/* FUENTE CONSOLIDADA: document-list-preview.css */
/* DOC 0.5.15 - Listado a una linea y tamaño independiente, preview por hover. */
.fiscal-doc-list-layout{display:block;min-width:0}
.fiscal-doc-list-table{min-width:0;overflow-x:auto;box-sizing:border-box}
.fiscal-doc-list-table .fiscal-table{table-layout:fixed;width:100%;min-width:1120px}
.fiscal-doc-list-table .fiscal-table thead{position:static!important;top:auto!important;z-index:auto!important;box-shadow:none!important}
.fiscal-doc-list-table .fiscal-table thead::before,.fiscal-doc-list-table .fiscal-table thead::after{display:none!important}
.fiscal-doc-list-table .fiscal-table th,.fiscal-doc-list-table .fiscal-table td{vertical-align:middle;white-space:nowrap;min-width:0}
.fiscal-doc-list-table .fiscal-table th:nth-child(1){width:162px}
.fiscal-doc-list-table .fiscal-table th:nth-child(2){width:23%}
.fiscal-doc-list-table .fiscal-table th:nth-child(3){width:125px}
.fiscal-doc-list-table .fiscal-table th:nth-child(4){width:18%}
.fiscal-doc-list-table .fiscal-table th:nth-child(6){width:82px}
.fiscal-doc-list-table .fiscal-table th:nth-child(7){width:100px}
.fiscal-doc-list-table .fiscal-table td{overflow:hidden;text-overflow:ellipsis}
.fiscal-doc-list-table .fiscal-table td:nth-child(1){font-variant-numeric:tabular-nums}
.fiscal-doc-list-table .fiscal-table td:nth-child(2)>b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-doc-list-table .fiscal-table td:nth-child(5)>a{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-doc-list-table .fiscal-table .fiscal-doc-size-col{text-align:right;font-variant-numeric:tabular-nums}
.fiscal-doc-size-preview{display:inline-block;max-width:100%;padding:2px 0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;white-space:nowrap;cursor:pointer;text-align:right}
.fiscal-doc-size-preview:hover{color:var(--fiscal-accent,#336699);text-decoration:underline}
.fiscal-doc-size-preview:focus-visible,.fiscal-doc-preview-close:focus-visible{outline:2px solid var(--fiscal-accent,#336699);outline-offset:2px}
.fiscal-doc-list-preview{display:none;box-sizing:border-box;position:fixed;z-index:95;right:20px;top:110px;width:min(535px,calc(100vw - 40px));height:calc(100dvh - 132px);min-height:280px;max-height:850px;padding:0;margin:0;overflow:hidden;flex-direction:column;background:var(--fiscal-surface,#fff);box-shadow:0 8px 30px rgba(15,31,47,.20);border:1px solid var(--fiscal-border,#dce3ea);border-radius:6px}
.fiscal-doc-list-preview.is-preview-open{display:flex}
.fiscal-doc-preview-toolbar{flex:0 0 auto;min-height:45px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--fiscal-border,#dce3ea);padding:7px 10px 7px 13px;box-sizing:border-box}
.fiscal-doc-preview-toolbar strong{font-size:13px;white-space:nowrap;color:var(--fiscal-heading,#365f82)}
.fiscal-doc-preview-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--fiscal-muted,#718096)}
.fiscal-doc-preview-placeholder{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px;color:var(--fiscal-muted,#718096);font-size:13px}
.fiscal-doc-preview-loading{padding:6px 10px;color:var(--fiscal-muted,#718096);font-size:12px}
.fiscal-doc-preview-frame{display:block;flex:1;min-height:0;width:100%;border:0;background:#fff}
.fiscal-doc-preview-frame[hidden],.fiscal-doc-preview-placeholder[hidden],.fiscal-doc-preview-loading[hidden],.fiscal-doc-preview-close[hidden]{display:none!important}
.fiscal-doc-preview-close{background:transparent;border:1px solid var(--fiscal-border,#dce3ea);border-radius:4px;cursor:pointer;color:inherit;font-size:19px;min-width:32px;min-height:32px;line-height:1}
@media(max-width:720px){
 .fiscal-doc-list-table .fiscal-table{min-width:1120px}
 .fiscal-doc-list-preview{right:8px;left:8px;top:70px;width:auto;height:calc(100dvh - 85px);max-height:none;min-height:260px}
 .fiscal-doc-size-preview{min-height:35px;min-width:44px}
}


/* FUENTE CONSOLIDADA: public_html/efp_borrador.php */

.efp-invoice-detail-table{table-layout:fixed;width:100%;min-width:980px}
.efp-invoice-detail-table col.efp-col-qty{width:82px}
.efp-invoice-detail-table col.efp-col-price{width:116px}
.efp-invoice-detail-table col.efp-col-pct{width:78px}
.efp-invoice-detail-table col.efp-col-amount{width:116px}
.efp-invoice-detail-table col.efp-col-action{width:102px}
.efp-invoice-detail-table th,.efp-invoice-detail-table td{vertical-align:middle}
.efp-invoice-detail-table input{width:100%;min-width:0;box-sizing:border-box}
.efp-invoice-detail-table .efp-detail-description{width:100%}
.efp-invoice-detail-table .efp-detail-qty,.efp-invoice-detail-table .efp-detail-pct,.efp-invoice-detail-table .efp-detail-money{text-align:right}
.efp-invoice-detail-table td:last-child{text-align:right}


/* FUENTE CONSOLIDADA: public_html/efp_arca_numeracion.php */

/* FP/ARCA: five fields and the action in one row at desktop widths. */
.efp-arca-number-row{display:grid;grid-template-columns:minmax(285px,2.2fr) 175px minmax(280px,1.45fr) 105px 170px max-content;gap:12px;align-items:end;width:100%}
.efp-arca-number-row.efp-arca-number-shared{grid-template-columns:175px minmax(290px,1fr) 105px 170px max-content}
.efp-arca-number-row>.fiscal-field{min-width:0;margin:0}
.efp-arca-number-row>.fiscal-field>label{display:block;white-space:nowrap;margin-bottom:5px}
.efp-arca-number-row .fiscal-control{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.efp-arca-number-row .efp-arca-number-prefix input,.efp-arca-number-row .efp-arca-number-next input,.efp-arca-number-row .efp-arca-number-exercise input{text-align:right;font-variant-numeric:tabular-nums}
.efp-arca-number-row .efp-arca-number-submit{margin:0;display:flex;align-items:end;justify-content:flex-end;min-width:max-content}
.efp-arca-number-row .efp-arca-number-submit .fiscal-btn{white-space:nowrap;min-height:35px;margin:0}
@media(max-width:1300px){
 .efp-arca-number-row{grid-template-columns:minmax(260px,2fr) 175px minmax(280px,1.4fr) 105px 170px}
 .efp-arca-number-row.efp-arca-number-shared{grid-template-columns:175px minmax(280px,1fr) 105px 170px}
 .efp-arca-number-row .efp-arca-number-submit{grid-column:1/-1}
}
@media(max-width:1050px){
 .efp-arca-number-row,.efp-arca-number-row.efp-arca-number-shared{grid-template-columns:minmax(260px,2fr) minmax(165px,1fr) minmax(270px,1.5fr)}
 .efp-arca-number-row .efp-arca-number-submit{grid-column:1/-1}
}
@media(max-width:760px){
 .efp-arca-number-row,.efp-arca-number-row.efp-arca-number-shared{grid-template-columns:minmax(0,1fr)}
 .efp-arca-number-row .efp-arca-number-submit{grid-column:auto}
}


/* FUENTE CONSOLIDADA: public_html/contabilidad_parametros.php */

.fiscal-vat-fiscal-form{display:grid;grid-template-columns:minmax(250px,380px) 180px 210px max-content;gap:12px;align-items:end;justify-content:start;max-width:100%}
.fiscal-vat-fiscal-form .fiscal-field{min-width:0;margin:0}
.fiscal-vat-fiscal-form label{display:block;margin:0 0 5px;white-space:nowrap}
.fiscal-vat-fiscal-form select{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.fiscal-vat-save{display:flex;align-items:end;justify-content:flex-end}
.fiscal-vat-save .fiscal-btn{min-height:35px;white-space:nowrap}
@media(max-width:1050px){.fiscal-vat-fiscal-form{grid-template-columns:minmax(230px,1fr) minmax(165px,.7fr) minmax(190px,.85fr)}.fiscal-vat-save{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:700px){.fiscal-vat-fiscal-form{grid-template-columns:minmax(0,1fr)}.fiscal-vat-fiscal-form label{white-space:normal}.fiscal-vat-save{grid-column:auto}}


/* FUENTE CONSOLIDADA: public_html/documento_vista.php */
body.fiscal-doc-frame, body.fiscal-doc-frame{margin:0;min-height:100%;background:var(--fiscal-bg,#f4f5f7);font-family:Roboto,Helvetica,Arial,sans-serif}
body.fiscal-doc-frame .doc-view{box-sizing:border-box;min-height:100vh;padding:12px;min-width:0;max-width:100%;overflow-x:hidden}
body.fiscal-doc-frame .doc-view iframe{display:block;width:100%;height:calc(100vh - 24px);border:0;background:#fff}
body.fiscal-doc-frame .doc-view img{display:block;max-width:100%;max-height:calc(100vh - 24px);margin:auto}
body.fiscal-doc-frame .doc-view .fiscal-document-file-preview{height:calc(100vh - 24px);min-height:300px;max-width:100%;overflow-x:auto;overflow-y:auto}
body.fiscal-doc-frame .doc-sheet{overflow:auto;background:#fff;border:1px solid var(--fiscal-border,#d8dce2);border-radius:3px}
body.fiscal-doc-frame .doc-sheet table{border-collapse:collapse;width:100%;min-width:100%;table-layout:auto}
body.fiscal-doc-frame .doc-sheet td{padding:5px 7px;border:1px solid #e1e4e8;min-width:60px;max-width:300px;white-space:normal;overflow-wrap:anywhere}
body.fiscal-doc-frame .doc-text{white-space:pre-wrap;word-break:break-word;margin:0;background:#fff;border:1px solid var(--fiscal-border,#d8dce2);border-radius:3px;padding:12px;min-height:calc(100vh - 50px)}
body.fiscal-doc-frame .doc-fallback{display:flex;min-height:70vh;align-items:center;justify-content:center;text-align:center}
body.fiscal-doc-frame .doc-fallback a{margin-top:10px}
body.fiscal-doc-frame .doc-pdf-mobile-fallback{display:none}
body.fiscal-doc-frame .doc-pdf-mobile-fallback strong{overflow-wrap:anywhere}
body.fiscal-doc-frame .doc-pdf-mobile-fallback p{max-width:340px;color:var(--fiscal-muted,#718096);line-height:1.45}
@media (hover:none) and (pointer:coarse){body.fiscal-doc-frame .doc-view .doc-pdf-native-frame{display:none}
body.fiscal-doc-frame .doc-pdf-mobile-fallback{display:flex;min-height:65vh;flex-direction:column;justify-content:center;align-items:center;gap:12px;text-align:center;padding:20px}
body.fiscal-doc-frame .doc-pdf-mobile-fallback a{max-width:100%}}

/* FUENTE CONSOLIDADA: public_html/install.php */
body.fiscal-installer{margin:0;border:0;background:#f5f7fa;color:#34495e;font:13px Roboto,"Noto Sans",Helvetica,Arial,sans-serif}
body.fiscal-installer main{max-width:880px;margin:32px auto;padding:0 18px}
body.fiscal-installer .box{background:#fff;border:1px solid #dce3ea;border-radius:6px;padding:22px}
body.fiscal-installer h1{font-size:20px}
body.fiscal-installer h2{font-size:15px;margin-top:22px;border-bottom:1px solid #edf1f4;padding-bottom:6px}
body.fiscal-installer .g{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
body.fiscal-installer label{display:block;margin-bottom:4px}
body.fiscal-installer input, body.fiscal-installer select{width:100%;box-sizing:border-box;padding:8px;border:1px solid #ccd6df;border-radius:4px}
body.fiscal-installer .full{grid-column:1/-1}
body.fiscal-installer .err{padding:9px;border-left:4px solid #a94442;background:#fff3f3}
body.fiscal-installer .ok{padding:9px;border-left:4px solid #217a3c;background:#f2f7fb}
body.fiscal-installer button{margin-top:18px;padding:9px 14px;border:0;border-radius:4px;background:#3f6f98;color:#fff}
body.fiscal-installer button:disabled{opacity:.45;cursor:not-allowed}
body.fiscal-installer .langs{display:flex;gap:8px;justify-content:flex-end;margin-bottom:12px}
body.fiscal-installer .langs a{text-decoration:none;color:#687785}
body.fiscal-installer .langs a.on{font-weight:700;color:#234}
body.fiscal-installer .checks{width:100%;border-collapse:collapse;margin:10px 0 18px}
body.fiscal-installer .checks td{padding:6px 7px;border-bottom:1px solid #edf1f4}
body.fiscal-installer .checks td:last-child{text-align:right;font-weight:700}
body.fiscal-installer .pass{color:#217a3c}
body.fiscal-installer .fail{color:#a12525}
@media (max-width:650px){body.fiscal-installer .g{grid-template-columns:1fr}}

/* FUENTE CONSOLIDADA: public_html/factura_imprimir.php */
body.fiscal-print-invoice{font:13px Roboto,Arial,sans-serif;color:#263746;margin:25mm 18mm}
body.fiscal-print-invoice header{display:grid;grid-template-columns:1fr 55mm;gap:18mm;border-bottom:1px solid #ccd5dd;padding-bottom:8mm}
body.fiscal-print-invoice .emisor b{font-size:16px}
body.fiscal-print-invoice .num{text-align:right}
body.fiscal-print-invoice .num strong{font-size:18px}
body.fiscal-print-invoice .cliente{margin:10mm 0 7mm;padding:5mm;border:1px solid #d9e0e6}
body.fiscal-print-invoice .cliente b{display:block;margin-bottom:3mm}
body.fiscal-print-invoice table{width:100%;border-collapse:collapse}
body.fiscal-print-invoice th, body.fiscal-print-invoice td{padding:3mm 2mm;border-bottom:1px solid #e1e6eb;text-align:left}
body.fiscal-print-invoice th{font-size:11px;text-transform:uppercase;color:#617181}
body.fiscal-print-invoice .r{text-align:right}
body.fiscal-print-invoice .tot{width:75mm;margin:8mm 0 0 auto}
body.fiscal-print-invoice .tot td{border:0;padding:2mm}
body.fiscal-print-invoice .tot tr:last-child{font-size:16px;font-weight:700;border-top:1px solid #bbb}
body.fiscal-print-invoice .foot{margin-top:15mm;font-size:10px;color:#687785}
body.fiscal-print-invoice .qr{margin-top:8mm;word-break:break-all}
@media  print{body.fiscal-print-invoice button{display:none}
body.fiscal-print-invoice{margin:12mm}}

/* CORE · utilidades semánticas consolidadas; sin estilos por página. */
.fiscal-u-mt-0{margin-top:0}
.fiscal-u-mt-4{margin-top:4px}
.fiscal-u-mt-5{margin-top:5px}
.fiscal-u-mt-6{margin-top:6px}
.fiscal-u-mt-8{margin-top:8px}
.fiscal-u-mt-10{margin-top:10px;margin:10px 0 0}
.fiscal-u-mt-12{margin-top:12px}
.fiscal-u-mt-14{margin-top:14px}
.fiscal-u-mt-22{margin-top:22px}
.fiscal-u-mb-0{margin-bottom:0}
.fiscal-u-mb-5{margin-bottom:5px}
.fiscal-u-mb-8{margin-bottom:8px}
.fiscal-u-mb-10{margin-bottom:10px}
.fiscal-u-mb-12{margin-bottom:12px}
.fiscal-u-mb-14{margin-bottom:14px}
.fiscal-u-mr-auto{margin-right:auto}
.fiscal-u-my-8{margin:8px 0}
.fiscal-u-mb-20{margin:0 0 20px}
.fiscal-u-hidden{display:none}
.fiscal-u-flex{display:flex}
.fiscal-u-gap-2{gap:2px}
.fiscal-u-gap-6{gap:6px}
.fiscal-u-gap-8{gap:8px}
.fiscal-u-gap-9{gap:9px}
.fiscal-u-gap-12{gap:12px}
.fiscal-u-justify-start{justify-content:flex-start}
.fiscal-u-flex-column{flex-direction:column}
.fiscal-u-align-center{align-items:center}
.fiscal-u-self-center{align-self:center}
.fiscal-u-text-center{text-align:center}
.fiscal-u-vertical-middle{vertical-align:middle}
.fiscal-u-nowrap{white-space:nowrap}
.fiscal-u-wrap{white-space:normal}
.fiscal-u-cursor-pointer{cursor:pointer}
.fiscal-u-weight-600{font-weight:600}
.fiscal-u-maxw-620{max-width:620px}
.fiscal-u-maxw-content{max-width:max-content}
.fiscal-u-minw-220{min-width:220px}
.fiscal-u-minw-300{min-width:300px}
.fiscal-u-line-115{line-height:1.15}
.fiscal-u-line-135{line-height:1.35}
.fiscal-u-line-170{line-height:1.7}
.fiscal-u-pl-24{padding-left:24px}
.fiscal-u-accent{accent-color:var(--fiscal-accent)}
.fiscal-u-nowrap-flex{flex-wrap:nowrap}

[hidden]{display:none!important}

.fiscal-u-warning-text{color:var(--fiscal-warning)}

/* MASTER_PDF_CSS_BEGIN:pdf-diagnostic
body{font-family:roboto,Helvetica,Arial,sans-serif;font-size:10pt;color:#34495e}h1{font-size:18pt;color:#365f82;margin:0 0 4mm}.ok{border-left:4px solid #217a3c;background:#f2f7fb;padding:3mm 4mm;margin:0 0 7mm}table{width:100%;border-collapse:collapse}td{padding:2.6mm 2mm;border-bottom:1px solid #e3e8ed}td:first-child{width:42%;color:#718096}.foot{margin-top:9mm;font-size:8.5pt;color:#718096}
MASTER_PDF_CSS_END:pdf-diagnostic */

/* MASTER_PDF_CSS_BEGIN:pdf-invoice
@page{margin-top:22mm;margin-bottom:21mm;margin-header:6mm;margin-footer:5mm;header:html_invoiceContinuation;footer:html_invoiceFooter}
        @page :first{margin-top:12mm;header:_blank}
        body{margin:0;padding:0;font-family:roboto,Helvetica,Arial,sans-serif;color:#3f4852;font-size:8.6pt}
        .page{width:184mm;margin:0;padding:0}.demo{height:5mm;text-align:right;color:#7e8790;font-size:7pt}
        .continuation-title{width:184mm;height:10mm;border-collapse:collapse;background:#365f82;color:#fff}.continuation-title td{height:10mm;vertical-align:middle;padding:0 4mm}.continuation-left{font-size:10.5pt;font-weight:bold}.continuation-right{text-align:right;font-size:8pt;white-space:nowrap}.continuation-right strong{font-size:9.4pt}
        .title{width:184mm;height:12mm;border-collapse:collapse;background:#365f82;color:#fff;margin-bottom:4mm}.title td{height:12mm;vertical-align:middle;padding:0 4mm}.title-left{font-size:12.5pt;font-weight:bold;letter-spacing:.12mm}.title-right{text-align:right;font-size:8.8pt;white-space:nowrap}.title-right strong{font-size:12pt}
        .top{width:184mm;border-collapse:collapse;margin-bottom:4mm;table-layout:fixed}.qrcol{width:40mm;text-align:center;font-size:7.2pt;color:#27313a;padding:0}.gap5{width:5mm;padding:0}.issuercol{vertical-align:top;padding:0}.qr-label{height:4mm;line-height:4mm;text-align:center}.qr-main{height:35mm;text-align:center;vertical-align:middle}.qr-img{width:35mm;height:35mm}.qr-pending{width:31mm;margin:0 auto;padding:10mm 1mm;border:.25mm solid #d9e0e7;color:#8a939c;font-size:6.8pt;line-height:1.25}.vfrow{height:4mm;text-align:center;vertical-align:top}.vf{font-size:8pt;font-weight:bold}.top-center td{vertical-align:top}.center-issuer-data{width:67mm;height:43mm;padding:4mm 0 0 0}.center-logo-cell{width:67mm;height:43mm;padding:4mm 0 0 0;text-align:right}.qr-block{width:40mm;height:43mm;border-collapse:collapse;table-layout:fixed}.qr-block .qr-label{height:4mm}.qr-block .qr-main{height:35mm}.qr-block .vfrow{height:4mm}
        .issuer-layout{width:100%;height:35mm;border-collapse:collapse;table-layout:fixed}.issuer-data{width:82mm;height:35mm;padding:0;vertical-align:top}.issuer-logo-cell{width:57mm;height:35mm;padding:0;vertical-align:top;text-align:right}.issuer-logo-box{width:48mm;border-collapse:collapse;table-layout:fixed;margin-left:auto}.issuer-logo-imgcell{height:18mm;text-align:center;vertical-align:top;padding:0}.issuer-logo-img{max-width:28mm;max-height:18mm;margin:0}.issuer-logo-rule{height:2.2mm;border-bottom:.25mm solid #365f82;padding:0}.issuer-logo-claim{height:5mm;text-align:center;vertical-align:middle;padding:0;font-size:5.8pt;letter-spacing:.25mm;color:#27313a;white-space:nowrap}
        .issuer-inner{width:100%;height:35mm;border-collapse:collapse;table-layout:fixed}.issuer-top{height:9mm;vertical-align:top;padding:0;line-height:1.16}.issuer-bottom{height:26mm;vertical-align:bottom;padding:0;line-height:1.28}.issuer-name{font-size:9.8pt;font-weight:bold;color:#365f82;margin:0 0 1.15mm 0}.issuer-legal{font-size:7.4pt;color:#69747e;margin-bottom:.45mm}.issuer-contact-line{margin-top:.75mm}
        .clientbox{width:184mm;border:.25mm solid #cbd4de;border-collapse:collapse;margin-bottom:4mm;page-break-inside:avoid}.client-title{background:#365f82;color:#fff;font-weight:bold;padding:2.15mm 3mm}.client-body{padding:2.8mm 3mm;line-height:1.45}.client-name{font-weight:bold;color:#303942;padding-bottom:.8mm;font-size:9.6pt}
        .detail{width:184mm;border:.25mm solid #cbd4de;border-collapse:collapse}.detail thead{display:table-header-group}.detail th{background:#e9eff4;color:#365f82;font-weight:bold;padding:2.3mm 2mm;border-right:.25mm solid #cbd4de;border-bottom:.25mm solid #cbd4de}.detail td{padding:2.7mm 2mm;border-bottom:.25mm solid #d9e0e7;vertical-align:top}.detail tr{page-break-inside:avoid}.detail .detail-anchor-row{height:0!important;page-break-inside:avoid}.detail .detail-anchor-row td{height:0!important;min-height:0!important;padding:0!important;border:0!important;line-height:0!important;font-size:0!important}.detail .detail-anchor-row a{display:block;height:0!important;line-height:0!important;font-size:0!important}.r{text-align:right;white-space:nowrap}.desc-main{line-height:1.28}.continuation-flow{margin-top:1.2mm;text-align:right;color:#59636d;font-size:7.2pt;font-weight:500;white-space:nowrap}
        .bottom{width:184mm;height:45mm;border-collapse:collapse;page-break-inside:avoid;margin:0}.bottom-left{width:113mm;height:45mm;border:.25mm solid #cbd4de;vertical-align:top;padding:0}.bottom-gap{width:5mm}.bottom-right{width:66mm;height:45mm;vertical-align:top;padding:0}.left-inner{width:100%;height:45mm;border-collapse:collapse;table-layout:fixed}.left-title{background:#e9eff4;color:#365f82;font-weight:bold;padding:1.9mm 3mm;vertical-align:middle;border-bottom:.25mm solid #cbd4de}.left-body{background:#fff;padding:2.2mm 3mm;line-height:1.45;vertical-align:top}.left-account-title{background:#e9eff4;color:#365f82;font-weight:bold;padding:1.9mm 3mm;vertical-align:middle;border-top:.25mm solid #cbd4de;border-bottom:.25mm solid #cbd4de}.left-account-note{background:#fff;padding:2.15mm 3mm;font-size:7.5pt;line-height:1.34;color:#59636d;vertical-align:top}.iban{margin-top:.8mm;font-weight:500}
        .totals{width:66mm;height:45mm;border:.25mm solid #cbd4de;border-collapse:collapse;table-layout:fixed}.totals tr{border-bottom:.25mm solid #d9e0e7}.totals td{padding:2mm 1.5mm;vertical-align:middle}.totals td:first-child{width:43mm;text-align:right;color:#59636d;white-space:nowrap}.totals td:last-child{width:23mm;text-align:right;white-space:nowrap}.fiscal td{background:#f3f6f8;font-weight:bold}.pay td{background:#365f82;color:#fff;font-size:9.4pt;font-weight:bold;white-space:nowrap}
.fiscal-pdf-invoice-footer{width:100%;height:8mm;font-family:roboto;font-size:6.8pt;color:#8b939b;border-collapse:collapse}
.fiscal-pdf-invoice-footer-left{height:8mm;vertical-align:bottom;white-space:nowrap}
.fiscal-pdf-invoice-footer-right{height:8mm;vertical-align:bottom;text-align:right;white-space:nowrap}
.fiscal-pdf-invoice-totals-continuation{color:#59636d;font-size:8pt;font-weight:500;margin-top:1mm}
.fiscal-pdf-invoice-detail-continuation{text-align:right;color:#59636d;font-size:7.2pt;font-weight:500;white-space:nowrap}

MASTER_PDF_CSS_END:pdf-invoice */

/* MASTER_PDF_CSS_BEGIN:pdf-export
body{font-family:roboto,Helvetica,Arial,sans-serif;font-size:7pt;line-height:1.05;color:#34495e}.dochead{width:100%;border-collapse:collapse;margin:0 0 1.2mm;table-layout:fixed}.dochead td{border:0;padding:0;vertical-align:bottom;background:#fff}.doc-title{font-size:13pt;line-height:1.05;color:#365f82;font-weight:bold;text-align:left}.doc-user{font-size:6.8pt;line-height:1.05;color:#718096;text-align:right;white-space:nowrap}.filters{font-size:6.6pt;line-height:1.08;color:#718096;margin:0 0 2.5mm}table.data{width:100%;border-collapse:collapse;table-layout:auto}table.data thead{display:table-header-group}table.data th{background:#eef3f7;color:#365f82;font-weight:bold;text-align:left;white-space:nowrap}table.data th,table.data td{padding:1.25mm 1.15mm;border-bottom:.18mm solid #dce3ea;vertical-align:middle}table.data td{line-height:1.05}table.data tr:nth-child(even) td{background:#fafbfd}.num{text-align:right;white-space:nowrap}.counter{text-align:right;white-space:nowrap;padding-left:.45mm!important;padding-right:.45mm!important}
.fiscal-pdf-export-spacer{height:2.5mm}
.fiscal-pdf-export-footer{width:100%;border-collapse:collapse;font-family:roboto,Helvetica,Arial,sans-serif;font-size:6.2pt;color:#718096}
.fiscal-pdf-export-footer td{padding:0;border:0}
.fiscal-pdf-export-footer .fiscal-pdf-export-footer-left{text-align:left}
.fiscal-pdf-export-footer .fiscal-pdf-export-footer-right{text-align:right}

MASTER_PDF_CSS_END:pdf-export */
/* CORE · Progreso único para lotes documentales de cualquier módulo/tenant. */
.fiscal-batch-progress{margin:16px 0;}
.fiscal-batch-progress-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:6px;}
.fiscal-batch-progress progress{width:100%;display:block;height:16px;accent-color:var(--fiscal-accent);border:0;border-radius:6px;overflow:hidden;}
.fiscal-batch-progress progress::-webkit-progress-bar{background:var(--fiscal-bg-muted,#e8edf3);border-radius:6px;}
.fiscal-batch-progress progress::-webkit-progress-value{background:var(--fiscal-accent,#436b9a);border-radius:6px;}
.fiscal-batch-progress progress::-moz-progress-bar{background:var(--fiscal-accent,#436b9a);border-radius:6px;}

/* CORE 0.12.5 · Selector global de entrada documental: dos superficies equivalentes, sin CSS local. */
.fiscal-batch-settings{margin-bottom:20px;}
.fiscal-batch-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.fiscal-batch-picker{min-width:0;min-height:216px;padding:24px 20px;gap:10px;position:relative;background:var(--fiscal-surface-soft);}
.fiscal-batch-picker-icon{width:32px;height:32px;flex:none;color:var(--fiscal-heading);}
.fiscal-batch-picker-hint{max-width:40ch;min-height:30px;font-size:13px;line-height:1.45;color:var(--fiscal-muted);}
.fiscal-batch-picker .fiscal-btn{margin-top:3px;}
.fiscal-batch-picker-selected{max-width:100%;font-size:12px;line-height:1.4;color:var(--fiscal-muted);overflow-wrap:anywhere;}
.fiscal-batch-picker.is-selected{border-color:var(--fiscal-accent);background:var(--fiscal-surface);}
.fiscal-batch-picker.is-selected .fiscal-batch-picker-selected{color:var(--fiscal-heading);font-weight:600;}
.fiscal-batch-picker[aria-disabled="true"]{opacity:.72;cursor:progress;}
.fiscal-batch-file-input{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none;}
@media(max-width:750px){.fiscal-batch-pickers{grid-template-columns:1fr;gap:14px;}.fiscal-batch-picker{min-height:192px;}}

/* EFP 0.20.10 · borrador PDF: cabecera y ayuda simplificadas */
.efp-draft-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.efp-draft-hero-main{flex:1 1 420px;min-width:280px}
.efp-draft-hero-main h1{margin:0 0 6px;font-size:20px;color:var(--fiscal-heading)}
.efp-draft-meta-path{font-size:12px;color:var(--fiscal-muted);word-break:break-word;margin-bottom:6px}
.efp-draft-meta{font-size:13px;color:var(--fiscal-muted)}
.efp-draft-hero-actions{flex:0 1 auto;justify-content:flex-end;align-items:flex-start}
.efp-draft-danger-row{flex:1 1 100%;border-top:1px solid var(--fiscal-border);padding-top:14px}
.efp-draft-delete-form{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px}
.efp-draft-delete-copy{display:flex;flex-direction:column;gap:6px;max-width:760px}
.efp-draft-retain-option{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--fiscal-text)}
.efp-draft-retain-help{font-size:12px;color:var(--fiscal-muted);line-height:1.45}
@media (max-width:900px){.efp-draft-hero-actions{justify-content:flex-start;width:100%}.efp-draft-delete-form{flex-direction:column;align-items:stretch}}


/* EFP 0.20.20 · IBAN en una unica fila: campo y accion sin navegar. */
.efp-iban-input-action{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%;align-items:stretch}
.efp-iban-input-action input{width:100%;min-width:0;box-sizing:border-box}
.efp-iban-lookup-button{width:100%;min-width:0;white-space:normal;text-align:center;min-height:35px}
.efp-iban-lookup-message{margin-top:6px}
@media(max-width:460px){.efp-iban-input-action{grid-template-columns:minmax(0,1fr)}}

/* FP 0.20.42 · Consultas compactas de desglose en pantalla de importación. */
.fiscal-batch-breakdown-tools{margin-top:16px;border-top:1px solid var(--fiscal-border);padding-top:12px}
.fiscal-batch-breakdown-tools>summary{cursor:pointer;font-weight:600;color:var(--fiscal-heading)}
.fiscal-batch-breakdown-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0}
.fiscal-batch-breakdown-form{min-width:0}
.fiscal-batch-breakdown-form label{display:block;margin-bottom:5px}
.fiscal-batch-breakdown-query{display:flex;align-items:stretch;gap:8px}
.fiscal-batch-breakdown-query .fiscal-control{width:100px;min-width:0;flex:0 0 100px;text-align:right}
.fiscal-batch-breakdown-query .fiscal-btn{white-space:nowrap}
@media(max-width:740px){.fiscal-batch-breakdown-forms{grid-template-columns:minmax(0,1fr)}.fiscal-batch-breakdown-query .fiscal-control{width:90px;flex-basis:90px}}

/* FP 0.20.43 · Porcentaje como enlace textual compacto, no botón voluminoso. */
.fiscal-batch-score-link{display:inline;border:0;background:transparent;color:var(--fiscal-accent);font:inherit;font-weight:600;line-height:inherit;padding:0;margin:0;min-width:0;min-height:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.fiscal-batch-score-link:focus-visible{outline:2px solid var(--fiscal-focus);outline-offset:2px}

/* CORE 0.12.10 · Curso de gestion universal en cabecera; sin estilos locales */
.fiscal-course-selector{display:inline-flex;align-items:center;gap:4px;margin:0;white-space:nowrap}
.fiscal-course-selector label{font-size:11px;color:var(--fiscal-muted);font-weight:600}
.fiscal-course-select{height:30px;max-width:150px;min-width:102px;border:1px solid var(--fiscal-border);background:var(--fiscal-surface-soft);color:var(--fiscal-text);border-radius:3px;padding:2px 5px;font:inherit;font-size:12px;cursor:pointer}
.fiscal-course-empty{font-size:12px;color:var(--fiscal-accent);white-space:nowrap}

/* Identidad de la cabecera por tenant; no modifica los logos de MASTER. */
.fiscal-brand > a.fiscal-module-brand-tenant {
    width: 170px;
    flex: 0 0 170px;
    min-height: 50px;
}
.fiscal-module-brand-tenant img {
    width: 166px;
    max-width: 166px;
    height: 36px;
    object-fit: contain;
    object-position: left center;
}
.fiscal-module-selector-brand-tenant {
    padding-left: 0;
}
.fiscal-module-selector-brand-tenant::before {
    display: none;
}
.fiscal-module-selector-brand-tenant img {
    display: block;
    max-width: 166px;
    max-height: 36px;
    object-fit: contain;
}
@media (max-width: 768px) {
    .fiscal-brand > a.fiscal-module-brand-tenant {
        width: 128px;
        flex-basis: 128px;
    }
    .fiscal-module-brand-tenant img {
        width: 125px;
        max-width: 125px;
    }
}

/* CORE UI UNIVERSAL · mismo control base en TODAS las pantallas.
   Usar especificidad baja para respetar los controles especializados existentes.
   No se modifica la barra de navegación ni los controles de archivo. */
.fiscal-main :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]),select,textarea){
    min-height:35px;
    padding:8px 9px;
    border:1px solid var(--fiscal-border);
    border-radius:var(--fiscal-input-radius,2px);
    color:var(--fiscal-text);
    background:var(--fiscal-surface-soft);
    font:inherit;
}
/* Mantener el checkbox/radio NATIVO también dentro de .fiscal-field:
   nunca ancho 100%, padding de caja de texto ni altura artificial. */
.fiscal-field input:is([type="checkbox"],[type="radio"]){
    width:auto;
    min-width:0;
    height:auto;
    min-height:0;
    padding:0;
    border:0;
    margin:0;
    vertical-align:middle;
}
/* Estructura reutilizable: cabecera de cualquier panel y acciones a la derecha. */
.fiscal-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.fiscal-panel .fiscal-panel-head h2{margin:0}
.fiscal-field-check label{display:flex;align-items:center;gap:8px;margin-bottom:0}
/* Autorización de despliegues: un único renglón coherente en escritorio. */
.fiscal-tenant-update-authorization{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,370px) auto;gap:12px;align-items:end}
.fiscal-tenant-update-authorization .fiscal-field-check{align-self:end;min-width:0;padding-bottom:7px}
.fiscal-tenant-update-authorization .fiscal-check{margin:0;white-space:nowrap;font-size:13px}
.fiscal-tenant-update-authorization .fiscal-form-actions{align-self:end;justify-content:flex-end}
@media(max-width:1080px){.fiscal-tenant-update-authorization{grid-template-columns:1fr}.fiscal-tenant-update-authorization .fiscal-check{white-space:normal}}

.fiscal-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

/* Formularios globales compactos: anchuras uniformes sin expandir inputs al panel completo. */
.fiscal-form-grid-compact{grid-template-columns:minmax(120px,170px) minmax(220px,520px);justify-content:start}
.fiscal-form-grid-confirm{grid-template-columns:repeat(2,minmax(200px,300px));justify-content:start}
@media(max-width:720px){
    .fiscal-form-grid-compact,.fiscal-form-grid-confirm{grid-template-columns:minmax(0,1fr)}
}

/* CORE: navegacion completa accesible en pantallas de portatil.
   Evita recortar los ultimos enlaces bajo el conjunto de utilidades globales. */
@media (min-width:861px) and (max-width:1660px) {
    .fiscal-topbar {gap:10px}
    .fiscal-nav-toggle {display:inline-flex;align-items:center;justify-content:center;align-self:center}
    .fiscal-main-nav {display:none;position:absolute;top:100%;left:12px;right:auto;flex:0 0 auto;min-width:240px;max-width:calc(100vw - 24px);max-height:calc(100vh - 72px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0;padding:6px;background:var(--fiscal-surface);border:1px solid var(--fiscal-border);border-radius:2px;box-shadow:0 8px 20px var(--fiscal-shadow);z-index:1001}
    .fiscal-main-nav.is-open {display:flex}
    .fiscal-main-nav a {min-height:36px;height:36px;align-self:stretch;padding:0 12px;border-bottom:0}
    .fiscal-main-nav a.is-active {background:var(--fiscal-surface-soft);border-left:2px solid var(--fiscal-accent)}
}

/* CORE 0.20.82 · Controles de cabecera de altura única (FP/nombre/idioma). */
.fiscal-topbar {min-width:0;}
.fiscal-top-actions {margin-left:auto;min-width:0;justify-content:flex-end;}
.fiscal-top-actions > * {flex-shrink:0;}
.fiscal-topbar .fiscal-nav-toggle,
.fiscal-topbar .fiscal-top-action,
.fiscal-topbar .fiscal-primary-unit,
.fiscal-topbar .fiscal-course-select,
.fiscal-topbar .fiscal-module-current,
.fiscal-topbar .fiscal-user-profile,
.fiscal-topbar .fiscal-language-current,
.fiscal-topbar .fiscal-theme-toggle,
.fiscal-topbar .fiscal-logout {height:28px;min-height:28px;box-sizing:border-box;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding-top:0;padding-bottom:0;border-radius:2px;}
.fiscal-topbar .fiscal-user-profile span,.fiscal-topbar .fiscal-user-profile a {height:100%;box-sizing:border-box;padding-top:0;padding-bottom:0;}
.fiscal-topbar .fiscal-course-select {width:154px;max-width:154px;min-width:120px;padding-left:7px;padding-right:5px;font-size:12px;}
.fiscal-topbar .fiscal-course-selector {height:28px;flex:0 0 auto;}
.fiscal-topbar .fiscal-module-brand-tenant img {height:30px;max-height:30px;}
.fiscal-topbar .fiscal-brand > a.fiscal-module-brand-tenant {min-height:0;}
@media(max-width:1180px){
  .fiscal-topbar{flex-wrap:wrap;height:auto;min-height:54px;align-items:center;padding-top:6px;padding-bottom:6px;row-gap:5px;}
  .fiscal-top-actions{flex:1 1 100%;width:100%;justify-content:flex-end;gap:6px;flex-wrap:wrap;}
}
@media(max-width:690px){
  .fiscal-top-actions{justify-content:flex-end;}
  .fiscal-topbar .fiscal-user-name{max-width:106px;overflow:hidden;text-overflow:ellipsis;}
}
/* CORE 0.20.82 · Espera real tras 1s: bloqueo modal de pulsaciones. */
/* CORE 0.20.83 · El gutter de html recorta las capas fixed: se libera
   temporalmente y se compensan ambos márgenes para que nada salte. */
html.fiscal-wait-open{scrollbar-gutter:auto!important;overflow:hidden!important;}
html.fiscal-wait-open body{padding-left:var(--fiscal-wait-gutter-left,0px);padding-right:var(--fiscal-wait-gutter-right,0px);}
.fiscal-wait-overlay{position:fixed;top:0;bottom:0;left:50%;right:auto;width:100vw;height:100vh;max-width:none;transform:translateX(-50%);margin:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(8,14,20,.46);color:#fff;pointer-events:auto;}
.fiscal-wait-overlay[hidden]{display:none;}
.fiscal-wait-spinner{width:38px;height:38px;box-sizing:border-box;border:4px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:fiscal-spin .75s linear infinite;}
.fiscal-wait-label{font-size:14px;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.4);}

/* El selector de curso se representa con FiscalSelect; tamaño sobre el trigger real. */
.fiscal-topbar .fiscal-course-selector .fiscal-select {width:154px;min-width:154px;max-width:154px;height:28px;flex:0 0 154px;}
.fiscal-topbar .fiscal-course-selector .fiscal-select-trigger {height:28px;min-height:28px;max-height:28px;box-sizing:border-box;padding:0 7px;font-size:12px;line-height:1;}
/* Logos de módulos e identidad de tenant: misma altura visible que los controles. */
.fiscal-topbar .fiscal-module-brand img,
.fiscal-topbar .fiscal-module-brand-tenant img {height:28px;max-height:28px;}

/* CORE 0.20.84 · Menú de escritorio siempre visible; ningún ☰ artificial en portátiles.
   Si no cabe con controles, navegación en segunda fila y acciones a la derecha. */
@media (min-width:861px) and (max-width:1660px) {
  .fiscal-topbar {height:auto;min-height:54px;display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:0;padding-top:5px;padding-bottom:5px;}
  .fiscal-topbar .fiscal-nav-toggle {display:none!important;}
  .fiscal-topbar .fiscal-main-nav,
  .fiscal-topbar .fiscal-main-nav:not(.is-open) {position:static!important;order:3;display:flex!important;flex:1 1 100%;width:100%;min-width:0;max-width:none;height:auto;min-height:29px;max-height:none;align-self:stretch;align-items:center;flex-direction:row;flex-wrap:nowrap;gap:2px;overflow-x:auto;overflow-y:hidden;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;z-index:auto;}
  .fiscal-topbar .fiscal-main-nav a {height:28px;min-height:28px;padding:0 9px;flex-shrink:0;white-space:nowrap;border:0;border-bottom:2px solid transparent;border-radius:0;}
  .fiscal-topbar .fiscal-main-nav a.is-active {border-bottom-color:var(--fiscal-accent);border-left:0;}
  .fiscal-topbar .fiscal-top-actions {order:2;margin-left:auto;justify-content:flex-end;flex:0 1 auto;width:auto;max-width:100%;gap:6px;flex-wrap:wrap;}
}
@media (min-width:1661px) {
  .fiscal-topbar .fiscal-nav-toggle {display:none!important;}
  .fiscal-topbar .fiscal-main-nav {display:flex!important;}
  .fiscal-topbar .fiscal-top-actions {margin-left:auto;justify-content:flex-end;}
}

/* Portal del Empleado: dos zonas, categorias ordenadas y documentos autorizados. */
.fiscal-pe-layout{display:grid;grid-template-columns:minmax(210px,268px) minmax(0,1fr);gap:16px;align-items:start}
.fiscal-pe-categories{padding:10px;min-width:0}
.fiscal-pe-categories-title{padding:11px 12px 13px;font-weight:700;color:var(--fiscal-heading);font-size:13px}
.fiscal-pe-category{display:flex;gap:10px;align-items:center;min-height:40px;padding:7px 12px;border-radius:2px;text-decoration:none;color:var(--fiscal-text);font-size:13px;transition:background .15s ease}
.fiscal-pe-category svg{width:17px;height:17px;flex-shrink:0;color:var(--fiscal-muted)}
.fiscal-pe-category:hover,.fiscal-pe-category:focus-visible{background:var(--fiscal-surface-soft);box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent);text-decoration:none;outline:none}
.fiscal-pe-category.is-active{background:var(--fiscal-surface-soft);color:var(--fiscal-heading);font-weight:600;box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent)}
html[data-row-accent="0"] .fiscal-pe-category:is(.is-active,:hover,:focus-visible),html.fiscal-row-accent-off .fiscal-pe-category:is(.is-active,:hover,:focus-visible){box-shadow:none!important}
.fiscal-pe-category.is-active svg{color:var(--fiscal-heading)}
.fiscal-pe-category-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-pe-category-count{margin-left:auto;font-variant-numeric:tabular-nums;font-size:12px;color:var(--fiscal-muted)}
.fiscal-pe-documents{min-width:0;padding:18px 18px 8px}
.fiscal-pe-documents-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.fiscal-pe-documents-top h2{margin:0 0 4px;font-size:17px;color:var(--fiscal-heading)}
.fiscal-pe-search{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.fiscal-pe-search input{min-width:0;flex:1}
.fiscal-pe-scope{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:12px;color:var(--fiscal-muted)}
.fiscal-pe-scope select{max-width:360px;min-width:170px}
.fiscal-pe-table-wrap{overflow-x:auto}
.fiscal-pe-table{width:100%;table-layout:auto;min-width:620px}
.fiscal-pe-table td,.fiscal-pe-table th{vertical-align:middle}
.fiscal-pe-table td:first-child{max-width:420px;overflow:hidden;text-overflow:ellipsis}
.fiscal-pe-doc-title{display:flex;align-items:center;gap:11px;min-width:0}
.fiscal-pe-doc-title>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-pe-doc-title a{font-weight:600;text-decoration:none}
.fiscal-pe-doc-title a:hover{text-decoration:underline}
.fiscal-pe-file-icon{display:flex;align-items:center;justify-content:center;width:34px;height:38px;border-radius:6px;background:var(--fiscal-hover,rgba(128,128,128,.07));flex-shrink:0;color:var(--fiscal-heading)}
.fiscal-pe-file-icon svg{width:19px;height:19px}
.fiscal-pe-table th.fiscal-pe-col-size,.fiscal-pe-table td.fiscal-pe-col-size{text-align:right!important;white-space:nowrap;font-variant-numeric:tabular-nums}
.fiscal-pe-col-actions{white-space:nowrap;text-align:right}
.fiscal-pe-action{display:inline-block;padding:4px 7px;font-size:12px;text-decoration:none}
.fiscal-pe-action:hover{text-decoration:underline}
.fiscal-pe-date{white-space:nowrap;font-variant-numeric:tabular-nums}
.fiscal-pe-tracking{overflow-x:auto}.fiscal-pe-tracking table{min-width:780px}
.fiscal-pe-tracking td{vertical-align:middle}.fiscal-pe-tracking strong{font-size:12px;font-variant-numeric:tabular-nums}
.fiscal-pe-pagination{justify-content:flex-end;margin-top:12px}
@media(max-width:780px){.fiscal-pe-layout{grid-template-columns:1fr}.fiscal-pe-categories{display:flex;flex-wrap:wrap;gap:4px}.fiscal-pe-categories-title{flex:0 0 100%}.fiscal-pe-category{min-height:36px}.fiscal-pe-documents{padding:13px 10px}.fiscal-pe-search{flex-wrap:wrap}.fiscal-pe-search input{flex-basis:100%}}

/* DOC / Gestión documental: árbol compartido con PE y carga por clasificación. */
.fiscal-doc-manage-layout{align-items:start}
.fiscal-doc-manage-categories{position:sticky;top:72px}
.fiscal-doc-manage-hint{font-size:12px;line-height:1.45;color:var(--fiscal-muted);margin:0 10px 12px}
.fiscal-doc-manage-picker{display:flex;gap:6px;flex-wrap:wrap;margin:0 6px 13px}
.fiscal-doc-manage-picker .fiscal-btn{font-size:11px;padding:7px 9px;min-width:0;flex:1}
.fiscal-doc-drop-category.is-drop-target,.fiscal-doc-manage-droparea.is-drop-target{background:var(--fiscal-surface-soft);box-shadow:inset var(--fiscal-row-accent-size,3px) 0 0 var(--fiscal-accent);outline:1px dashed var(--fiscal-accent);outline-offset:-1px}
html[data-row-accent="0"] .fiscal-doc-drop-category.is-drop-target,html.fiscal-row-accent-off .fiscal-doc-drop-category.is-drop-target{box-shadow:none}
.fiscal-doc-drop-category.is-payroll.is-drop-target{cursor:not-allowed}
.fiscal-doc-manage-documents{padding:18px;min-width:0}
.fiscal-doc-manage-documents .fiscal-pe-search{margin-bottom:3px}
.fiscal-doc-manage-documents .fiscal-search-help{margin-bottom:10px}
.fiscal-doc-manage-droparea{border:1px dashed var(--fiscal-border);border-radius:4px;display:flex;justify-content:center;align-items:center;text-align:center;padding:15px;min-height:50px;color:var(--fiscal-muted);font-size:12px;margin-bottom:12px;transition:background .15s}
.fiscal-doc-manage-documents .fiscal-doc-list-table{padding:0;box-shadow:none;border:0;min-width:0}
.fiscal-doc-manage-documents .fiscal-doc-list-table .fiscal-table{min-width:920px}
.fiscal-doc-manage-documents .fiscal-doc-list-table .fiscal-table th:nth-child(1){width:150px}
.fiscal-doc-manage-documents .fiscal-doc-list-table .fiscal-table th:nth-child(2){width:25%}
.fiscal-doc-manage-documents .fiscal-doc-list-table .fiscal-table th:nth-child(3){width:110px}
.fiscal-doc-manage-documents .fiscal-doc-list-table .fiscal-table th:nth-child(4){width:19%}
.fiscal-doc-batch-dialog{box-sizing:border-box;border:1px solid var(--fiscal-border);border-radius:6px;background:var(--fiscal-surface);color:var(--fiscal-text);width:min(1150px,calc(100vw - 32px));max-width:none;max-height:min(88dvh,950px);padding:20px;box-shadow:0 20px 75px rgba(12,25,40,.25)}
.fiscal-doc-batch-dialog::backdrop{background:rgba(12,24,36,.48)}
.fiscal-doc-batch-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:15px}
.fiscal-doc-batch-head h2{font-size:19px;color:var(--fiscal-heading);margin:0 0 6px}
.fiscal-doc-batch-head p{margin:0;font-size:12px}
.fiscal-doc-batch-summary{font-size:12px;color:var(--fiscal-muted);margin-bottom:12px}
.fiscal-doc-batch-table-wrap{overflow:auto;max-height:55dvh}
.fiscal-doc-batch-table{min-width:980px;table-layout:fixed}
.fiscal-doc-batch-table td{vertical-align:middle}
.fiscal-doc-batch-table th:nth-child(1){width:18%}
.fiscal-doc-batch-table th:nth-child(2){width:18%}
.fiscal-doc-batch-table th:nth-child(3){width:14%}
.fiscal-doc-batch-table th:nth-child(4){width:14%}
.fiscal-doc-batch-table th:nth-child(5){width:23%}
.fiscal-doc-batch-table th:nth-child(6){width:13%}
.fiscal-doc-batch-table td .fiscal-control{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.fiscal-doc-batch-filename{overflow-wrap:anywhere;line-height:1.3;font-size:12px}
.fiscal-doc-batch-status{font-size:11px;overflow-wrap:anywhere}
.fiscal-doc-batch-table tr.is-saved{opacity:.67}
.fiscal-doc-batch-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px}
.fiscal-doc-batch-foot [data-doc-batch-progress]{font-size:12px;color:var(--fiscal-muted)}
@media(max-width:800px){.fiscal-doc-manage-categories{position:static}.fiscal-doc-manage-documents{padding:13px 10px}.fiscal-doc-manage-picker{width:100%}.fiscal-doc-batch-dialog{padding:12px}}

/* DOC: revisión compacta y vista previa con el visor documental global. */
.fiscal-doc-batch-filemeta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;column-gap:12px;row-gap:4px;margin-top:5px;min-height:19px}
.fiscal-doc-batch-filemeta small{font-size:11px;line-height:1.3;white-space:nowrap}
.fiscal-doc-batch-view-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin:0;padding:1px 0;border:0;border-radius:0;background:transparent;color:var(--fiscal-accent);font:inherit;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;cursor:pointer}
.fiscal-doc-batch-view-btn:hover{text-decoration:underline;text-underline-offset:2px}
.fiscal-doc-batch-view-btn:focus-visible{outline:2px solid var(--fiscal-focus);outline-offset:2px}
.fiscal-doc-batch-note{margin:0 0 12px;padding:9px 12px;border-left:3px solid var(--fiscal-accent);background:var(--fiscal-surface-soft);color:var(--fiscal-text);font-size:12px;line-height:1.4}
.fiscal-doc-batch-note[hidden]{display:none}

/* CORE: cabecera desplazable de ventanas dialog, usada por revisión documental. */
.fiscal-dialog-movable{position:fixed;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
.fiscal-dialog-drag-handle{cursor:move;touch-action:none;user-select:none}
.fiscal-dialog-drag-handle button,.fiscal-dialog-drag-handle a{cursor:pointer;touch-action:auto}

/* HPLAN · solamente identidad cromática para los dos temas adicionales.
   MASTER Claro y Oscuro conservan literalmente los valores y reglas originales.
   Ningún selector de controles, tipografías, geometría o módulo añadido. */
html[data-theme="dark"][data-palette="verde"] {
    --fiscal-bg:#08130d;
    --fiscal-surface:#101d15;
    --fiscal-surface-soft:#15251a;
    --fiscal-border:#2b4935;
    --fiscal-border-soft:#223b2b;
    --fiscal-text:#cce4d1;
    --fiscal-muted:#9bc5a5;
    --fiscal-heading:#7be99a;
    --fiscal-link:#92e9aa;
    --fiscal-accent:#45b972;
    --fiscal-accent-hover:#58ce83;
    --fiscal-secondary:#2a4935;
    --fiscal-secondary-hover:#375d43;
    --fiscal-danger:#d17b7b;
    --fiscal-warning:#b5d7b9;
    --fiscal-ok:#89eca5;
    --fiscal-ko:#ee9292;
    --fiscal-error-bg:#2b1d22;
    --fiscal-error-text:#f4b1b1;
    --fiscal-info-bg:#14251a;
    --fiscal-focus:#89eca5;
    --fiscal-focus-ring:rgba(137,236,165,.19);
    --fiscal-shadow:rgba(0,0,0,.2);
}
html[data-theme="dark"][data-palette="ambar"] {
    --fiscal-bg:#14110a;
    --fiscal-surface:#201b12;
    --fiscal-surface-soft:#292216;
    --fiscal-border:#554326;
    --fiscal-border-soft:#40341f;
    --fiscal-text:#e2d2b3;
    --fiscal-muted:#b9a27e;
    --fiscal-heading:#f2bf62;
    --fiscal-link:#eac075;
    --fiscal-accent:#daa03d;
    --fiscal-accent-hover:#f0b64c;
    --fiscal-secondary:#554128;
    --fiscal-secondary-hover:#6b5130;
    --fiscal-danger:#c5786b;
    --fiscal-warning:#f2c36f;
    --fiscal-ok:#d9bb7b;
    --fiscal-ko:#e78f83;
    --fiscal-error-bg:#311e1c;
    --fiscal-error-text:#f4b1a4;
    --fiscal-info-bg:#261f14;
    --fiscal-focus:#efbf65;
    --fiscal-focus-ring:rgba(239,191,101,.20);
    --fiscal-shadow:rgba(0,0,0,.24);
}

/* HPlan global · Gestión de tenants (24/10/2026). Reutiliza variables y componentes de MASTER. */
.hplan-tenants-management .hplan-tenants-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.hplan-tenants-management .hplan-tenants-head h2{margin:0}
.hplan-tenants-management .hplan-tenants-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.hplan-tenants-management .hplan-tenants-code-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hplan-tenants-management .hplan-tenants-code-line #hplan-tenant-code{width:calc(8ch + 24px);min-width:0;max-width:100%;flex:none;text-align:left;font-variant-numeric:tabular-nums}
.hplan-tenants-management .hplan-tenant-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;margin-bottom:8px}
.hplan-tenants-management .hplan-tenant-progress-meta h3{margin:0;font-size:14px}
.hplan-tenants-management .hplan-tenant-progress{display:block;width:100%;max-width:none;height:12px;box-sizing:border-box;margin:0 0 14px 0;accent-color:var(--fiscal-accent)}
.hplan-tenants-management .hplan-tenant-phase-table-wrap{width:100%}
.hplan-tenants-management .hplan-tenant-phase-table{width:100%;table-layout:auto}
.hplan-tenants-management .hplan-tenant-right{text-align:right;white-space:nowrap;width:110px}
.hplan-tenants-management .hplan-tenant-phase-table input[type="checkbox"]{accent-color:var(--fiscal-accent);opacity:1}
.hplan-tenants-management .hplan-tenant-confirm{display:flex;align-items:center;gap:8px;margin:12px 0}
.hplan-tenants-management [data-delete-confirm]{display:block;width:min(100%,340px);margin:8px 0 14px}
.hplan-tenants-management .hplan-tenants-profile{display:grid;grid-template-columns:130px minmax(0,1fr);gap:9px 12px;align-items:center}
.hplan-tenants-management .hplan-tenants-profile input,.hplan-tenants-management .hplan-tenants-profile textarea{width:100%;box-sizing:border-box}
.hplan-tenants-management .hplan-tenants-profile textarea{height:34px;min-height:34px;resize:vertical;overflow:auto;line-height:20px;padding-top:6px;padding-bottom:6px}
.hplan-tenants-management .hplan-tenant-warning{border-left:3px solid var(--fiscal-ko);padding:10px 12px;background:var(--fiscal-surface-soft)}
.hplan-tenants-management .fiscal-btn-danger{background:var(--fiscal-ko);border-color:var(--fiscal-ko);color:#fff}
.hplan-tenants-management [hidden]{display:none!important}
@media(max-width:640px){.hplan-tenants-management .hplan-tenants-profile{grid-template-columns:1fr}.hplan-tenants-management .hplan-tenants-head{align-items:stretch}.hplan-tenants-management .hplan-tenants-actions{justify-content:flex-start}.hplan-tenants-management .hplan-tenant-right{width:80px}}


/* HPlan · Cabecera y acceso global 2026-10-24. Una sola hoja CSS, ningún estilo inline. */
.hplan-tenants-management .hplan-tenants-code-line{align-items:center;min-height:36px}
.hplan-tenants-management .hplan-tenants-code-line>label,.hplan-tenants-management .hplan-tenants-code-line>[data-tenant-name]{align-self:center;line-height:1.3;margin:0}
.hplan-tenants-management .hplan-tenants-code-line #hplan-tenant-code{height:36px;box-sizing:border-box;align-self:center}
.hplan-tenant-login-layout>.fiscal-breadcrumb{justify-content:center;text-align:center}
.hplan-tenant-login-layout>.fiscal-page-head{justify-content:center;text-align:center}
.hplan-tenant-login-layout>.fiscal-page-head>div{width:100%;text-align:center}
.hplan-tenant-login-layout>.fiscal-form{margin:clamp(32px,8vh,100px) auto 0;max-width:420px}
@media(max-width:600px){.hplan-tenant-login-layout>.fiscal-form{margin-top:28px}}

/* HPlan 0.1.15: consistent native-size controls and aligned theme menus. */
.fiscal-topbar .fiscal-top-actions{display:flex;justify-content:flex-start;gap:7px;align-items:center}
.fiscal-language-menu,.fiscal-language-option{text-align:left!important}
.fiscal-language-menu [data-hplan-palette-choice] {white-space:nowrap;min-width:144px}
.hplan-tenants-management :is(input:not([type="checkbox"]),textarea,select),
.fiscal-form :is(input:not([type="checkbox"]),textarea,select){min-height:30px;height:30px;line-height:1.2;box-sizing:border-box}
.hplan-tenants-management .hplan-tenants-code-line #hplan-tenant-code{height:30px;min-height:30px}
.hplan-tenants-management textarea{resize:vertical}
/* Corporate palettes share the single global CSS. Bright phosphorus green retired. */
html[data-palette="festa"]{--fiscal-accent:#417964;--fiscal-accent-hover:#356b58;--fiscal-link:#3b7762;--fiscal-focus:#417964;--fiscal-heading:#426f60}
html[data-palette="pizarra"]{--fiscal-accent:#627588;--fiscal-accent-hover:#4c6276;--fiscal-link:#587185;--fiscal-focus:#627588;--fiscal-heading:#536c80}
html[data-palette="petroleo"]{--fiscal-accent:#327e82;--fiscal-accent-hover:#28686c;--fiscal-link:#31767a;--fiscal-focus:#327e82;--fiscal-heading:#397277}
html[data-palette="arena"]{--fiscal-accent:#987a52;--fiscal-accent-hover:#826643;--fiscal-link:#896d47;--fiscal-focus:#987a52;--fiscal-heading:#806b51}
html[data-palette="terracota"]{--fiscal-accent:#a16858;--fiscal-accent-hover:#885345;--fiscal-link:#936357;--fiscal-focus:#a16858;--fiscal-heading:#8f6054}
html[data-palette="ciruela"]{--fiscal-accent:#776889;--fiscal-accent-hover:#645575;--fiscal-link:#6e6180;--fiscal-focus:#776889;--fiscal-heading:#6d5d80}
html[data-theme="dark"][data-palette="festa"]{--fiscal-accent:#638d7b;--fiscal-accent-hover:#76a48f;--fiscal-link:#8eac9f;--fiscal-focus:#638d7b;--fiscal-heading:#9ab6a8}
html[data-theme="dark"][data-palette="pizarra"]{--fiscal-accent:#7b91a3;--fiscal-accent-hover:#91a5b6;--fiscal-link:#9eb0bf;--fiscal-focus:#7b91a3;--fiscal-heading:#abbac6}
html[data-theme="dark"][data-palette="petroleo"]{--fiscal-accent:#4e9497;--fiscal-accent-hover:#65a8ab;--fiscal-link:#88b5b7;--fiscal-focus:#4e9497;--fiscal-heading:#a1c2c3}
html[data-theme="dark"][data-palette="arena"]{--fiscal-accent:#ad906b;--fiscal-accent-hover:#c2a47c;--fiscal-link:#c3ad8e;--fiscal-focus:#ad906b;--fiscal-heading:#cfbca3}
html[data-theme="dark"][data-palette="terracota"]{--fiscal-accent:#b78677;--fiscal-accent-hover:#c79b8e;--fiscal-link:#c9a397;--fiscal-focus:#b78677;--fiscal-heading:#d6b5ab}
html[data-theme="dark"][data-palette="ciruela"]{--fiscal-accent:#9685a8;--fiscal-accent-hover:#ac9bbb;--fiscal-link:#b4a5c2;--fiscal-focus:#9685a8;--fiscal-heading:#c8bcd2}
/* Global help panel; contains no external fonts, scripts or inline styles. */
.hplan-global-help-trigger{font-weight:600;min-width:57px}
.hplan-help-overlay:not([hidden]){position:fixed;inset:0;background:rgba(6,13,20,.59);z-index:9700}
.hplan-help-panel:not([hidden]){position:fixed;top:0;right:0;bottom:0;z-index:9701;width:min(510px,96vw);overflow:auto;background:var(--fiscal-surface);color:var(--fiscal-text);border-left:1px solid var(--fiscal-border);box-shadow:-10px 0 30px rgba(0,0,0,.2)}
.hplan-help-panel-head{position:sticky;top:0;background:var(--fiscal-surface);padding:18px;display:flex;gap:15px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--fiscal-border)}
.hplan-help-panel-head strong{font-size:18px;color:var(--fiscal-heading)}
.hplan-help-panel-body{padding:6px 20px 35px;max-width:100%}
.hplan-help-panel-body section{padding:14px 0;border-bottom:1px solid var(--fiscal-border-soft)}
.hplan-help-panel-body h3{font-size:14px;margin:0 0 8px;color:var(--fiscal-heading)}
.hplan-help-panel-body p{font-size:13px;line-height:1.6;margin:0;white-space:normal;overflow-wrap:anywhere}
body.hplan-help-open{overflow:hidden}

/* HPlan GLOBAL LOCKED 2026-10-24: preservation of master navigation and tenant layout. */
@media(min-width:921px){.fiscal-shell>.fiscal-topbar{flex-wrap:nowrap!important;height:54px!important;min-height:54px!important;padding-top:0!important;padding-bottom:0!important;row-gap:0!important}.fiscal-shell>.fiscal-topbar .fiscal-main-nav{display:flex!important;flex-basis:auto!important;order:0!important;border-top:0!important;padding-top:0!important}.fiscal-shell>.fiscal-topbar .fiscal-main-nav a{min-height:54px!important}.fiscal-shell>.fiscal-topbar .fiscal-top-actions{margin-left:auto}}
.hplan-tenants-management .hplan-tenant-progress{width:100%!important;max-width:none!important}
.hplan-tenants-management .hplan-tenant-phase-table th.hplan-tenant-right,.hplan-tenants-management .hplan-tenant-phase-table td.hplan-tenant-right{text-align:right}
.hplan-tenants-management .hplan-tenants-code-line #hplan-tenant-code{width:calc(8ch + 24px)!important;min-width:0!important;max-width:105px!important;text-align:left!important}
.hplan-tenants-management .hplan-tenants-profile textarea{height:30px;min-height:30px;resize:vertical}
.fiscal-language-menu .fiscal-language-option{text-align:left!important}
.fiscal-shell>.fiscal-topbar .fiscal-top-actions{justify-content:flex-end}
