/* ficha.css — las reglas .fm-* / .btn del PMS (static/css/style.css), copiadas
   tal cual por un script. No editar a mano: si la ficha cambia en el PMS, se
   vuelve a extraer. ⭐ Las @media de tamaño están convertidas en @container:
   el marco (.fm) decide si se ve de compu o de celular, no la ventana. */
.form-hint--aviso {
    color: var(--fm-amber, #a96a28);
    font-style: normal;
    font-weight: 600;
    margin: -2px 0 10px;
}
.btn:active {
    transform: scale(0.98);
}
.btn--primary {
    background: var(--color-accent);
    color: #fff;
}
.btn--primary:hover {
    background: var(--color-accent-dark);
}
.btn--outline {
    background: transparent;
    border-color: var(--color-border);
    color: var(--color-ink);
}
.btn--outline:hover {
    background: var(--color-blocked-soft);
}
.btn--danger {
    background: transparent;
    border-color: var(--color-danger);
    color: var(--color-danger);
}
.btn--danger:hover {
    background: var(--color-danger);
    color: #fff;
}
.fm-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 1.1rem 1.5rem;
    background: var(--fm-surface);
    border-bottom: 1px solid var(--fm-border);
    padding-right: 3rem;
    border-radius: 16px 16px 0 0;
    flex-shrink: 0;
}
.fm-avatar {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 50%;
    background: #e8f1fb;
    color: #1d4e78;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}
.fm-meta {
    flex: 1;
    min-width: 0;
}
.fm-name-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.fm-name {
    font-size: 19px;
    font-weight: 800;
    color: var(--fm-text);
    letter-spacing: -.01em;
}
.fm-badge {
    font-size: 11px;
    padding: 2px 9px;
    border-radius: 20px;
    font-weight: 500;
}
.fm-badge--future { background: #e8f1fb; color: #1d4e78; border: 1px solid #7fb2e0; }
.fm-badge--current { background: #eaf3de; color: #27500a; border: 1px solid #97c459; }
.fm-badge--overdue { background: #fdeed6; color: #6f3d02; border: 1px solid #e08b2c; }
.fm-badge--past { background: #f1f1ee; color: #56564e; border: 1px solid #c2c2ba; }
.fm-badge--cancelada { background: #fae7e4; color: #7d2318; border: 1px solid #d09287; }
.fm-badge--channel-A { background: #ff385c; color: #fff; }
.fm-badge--channel-B { background: #003580; color: #fff; }
.fm-badge--channel-E { background: #ef8b00; color: #fff; }
.fm-badge--channel-D { background: var(--color-blocked-soft); color: var(--color-ink-soft); border: 1px solid var(--color-border); }
.fm-dates {
    font-size: 12.5px;
    color: var(--fm-muted);
}
.fm-dates strong { color: var(--fm-text); font-weight: 700; }
.fm-nro {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--fm-label);
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}
.fm-finance {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
    padding: 16px 1.5rem;
    background: transparent;
    flex-shrink: 0;
}
.fm-fin-col {
    padding: 14px 18px;
    display: flex;
    flex-direction: column;
    background: var(--fm-surface);
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(60, 45, 25, .08), 0 1px 2px rgba(60, 45, 25, .06);
    position: relative;
}
.fm-fin-col--balance { border-left: 3px solid var(--fm-amber-accent); }
.fm-fin-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--fm-label);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 4px;
}
.fm-fin-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--fm-text);
    line-height: 1.2;
    letter-spacing: -.01em;
    font-variant-numeric: tabular-nums;
}
.fm-fin-value--paid { color: var(--fm-green); }
.fm-fin-value--balance { color: var(--fm-amber); }
.fm-fin-toggle {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 10.5px;
    color: var(--fm-muted);
    padding: 0;
    margin-top: 6px;
    text-align: left;
    font-family: var(--font-body);
}
.fm-fin-toggle:hover { color: var(--fm-text); }
.fm-fin-detail {
    position: absolute;
    top: calc(100% + 4px);
    left: -1px;
    right: -1px;
    background: var(--fm-surface);
    border: 1px solid var(--fm-border);
    border-radius: 10px;
    padding: 10px 14px;
    z-index: 30;
    box-shadow: 0 8px 22px rgba(60, 45, 25, .14);
}
.fm-fin-detail[hidden] { display: none; }
.fm-fin-detail-row {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: var(--color-ink-soft);
    padding: 3px 0;
    border-bottom: 1px solid var(--color-border);
}
.fm-fin-detail-row:last-child { border-bottom: none; font-weight: 500; color: var(--color-ink); }
.fm-tabbar {
    display: flex;
    align-items: center;
    padding: 0 1.5rem 14px;
    flex-shrink: 0;
    gap: 8px;
}
.fm-tabs {
    display: flex;
    flex: 1;
    overflow-x: auto;
    gap: 6px;
    align-items: center;
}
.fm-tab {
    background: var(--fm-surface);
    border: 1px solid var(--color-border-strong);
    padding: 7px 14px;
    border-radius: var(--radius-pill);
    font-size: 13px;
    font-family: var(--font-body);
    font-weight: 500;
    color: var(--color-ink-2);
    cursor: pointer;
    white-space: nowrap;
    transition: background .14s, color .14s, box-shadow .14s, transform .14s;
}
.fm-tab:hover {
    color: var(--fm-text);
    background: var(--fm-surface-soft);
    transform: translateY(-1px);
}
.fm-tab.active,
.fm-tab.active:hover {
    color: #fff;
    background: var(--fm-dark);
    border-color: var(--fm-dark);
    font-weight: 600;
    transform: none;
}
.fm-edit-btn {
    flex-shrink: 0;
    font-size: 12px;
    padding: 6px 12px;
    margin-left: 12px;
}
.fm-section-pick { display: none; }
.fm-body {
    padding: 0 1.5rem 1.25rem;
    overflow-y: auto;
    flex: 1;
}
.fm-panel { display: none; }
.fm-panel.active { display: block; }
.fm-field__label {
    font-size: 11px;
    font-weight: 700;
    color: var(--fm-label);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.fm-card {
    background: var(--fm-surface);
    border: 1px solid var(--fm-border);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 16px;
}
.fm-card__head {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--fm-label);
    background: var(--fm-surface-soft);
    border-bottom: 1px solid #eee6d7;
    padding: 10px 22px;
}
.fm-row {
    display: grid;
    grid-template-columns: 220px 1fr 220px 1fr;
    align-items: center;
    gap: 0 12px;
    padding: 13px 22px;
    border-bottom: 1px solid var(--fm-border-soft);
}
.fm-rows .fm-row:last-child { border-bottom: none; }
.fm-row[hidden] { display: none; }
.fm-row__label {
    font-size: 12.5px;
    color: var(--fm-muted);
}
.fm-row__value {
    font-size: 14px;
    color: var(--fm-text);
    font-weight: 500;
}
.fm-row__value--wide {
    grid-column: 2 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.fm-row--derecha .fm-row__label { grid-column: 3; }
.fm-row__label[hidden],
.fm-row__value[hidden] { display: none; }
.fm-mono {
    font-family: var(--fm-mono);
    font-weight: 700;
    letter-spacing: .01em;
}
.fm-chip {
    display: inline-block;
    background: var(--fm-bg);
    border: 1px solid var(--fm-border);
    border-radius: 999px;
    padding: 4px 13px;
    font-size: 13px;
    font-weight: 500;
    color: var(--fm-text);
}
(la trampa ya mordió). */
.fm-cerr {
    background: #fff; border: 1px solid #E2E6EC; border-radius: 14px;
    box-shadow: 0 1px 3px rgba(37, 48, 74, .06);
    overflow: hidden; margin-top: 14px;
}
.fm-cerr[hidden] { display: none; }
.fm-cerr__head {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    background: #25304A; padding: 14px 18px;
}
.fm-cerr__ico {
    width: 34px; height: 34px; border-radius: 9px; background: #37456B;
    display: flex; align-items: center; justify-content: center; flex: none;
}
.fm-cerr__tit { flex: 1; min-width: 0; }
.fm-cerr__tit small {
    display: block; font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .1em; color: #93A2C4;
}
.fm-cerr__tit b {
    display: block; font-size: 16px; font-weight: 800; color: #fff;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fm-cerr__estado {
    font-size: 11px; font-weight: 800; text-transform: uppercase;
    letter-spacing: .06em; border-radius: 999px; padding: 5px 12px;
    white-space: nowrap;
}
.fm-cerr__estado--dorado { color: #E8C87E; background: rgba(232,200,126,.12); border: 1px solid rgba(232,200,126,.45); }
.fm-cerr__estado--verde { color: #7ED9A2; background: rgba(126,217,162,.12); border: 1px solid rgba(126,217,162,.45); }
.fm-cerr__estado--rojo { color: #E8A29A; background: rgba(232,162,154,.12); border: 1px solid rgba(232,162,154,.45); }
.fm-cerr__estado--gris { color: #A9B2C2; background: rgba(169,178,194,.12); border: 1px solid rgba(169,178,194,.45); }
.fm-cerr__banner {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    background: #FBEFE3; border-bottom: 1px solid #EDD9BF; padding: 10px 18px;
}
.fm-cerr__banner[hidden] { display: none; }
.fm-cerr__punto {
    width: 9px; height: 9px; border-radius: 50%; background: #C2691E; flex: none;
    animation: fm-cerr-pulso 1.6s ease-in-out infinite;
}
.fm-cerr__banner-texto { flex: 1; min-width: 200px; font-size: 13px; font-weight: 600; color: #8A4E14; }
.fm-cerr__banner button {
    font-size: 12px; font-weight: 700; color: #8A4E14; cursor: pointer;
    background: transparent; border: 1px solid #D9B98C; border-radius: 999px;
    padding: 5px 14px; font-family: var(--font-body);
}
.fm-cerr__banner button[hidden] { display: none; }
.fm-cerr__minis {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 18px 0;
}
.fm-cerr__mini {
    background: #F6F8FA; border: 1px solid #E7EBF0; border-radius: 10px;
    padding: 12px 14px;
}
.fm-cerr__mini small {
    display: block; font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: #8A93A5; margin-bottom: 4px;
}
.fm-cerr__mini b { display: block; font-size: 15px; font-weight: 800; color: #25304A; }
.fm-cerr__mini span { display: block; font-size: 11px; color: #8A93A5; margin-top: 4px; }
.fm-cerr__barra {
    height: 5px; border-radius: 999px; background: #E2E6EC;
    margin-top: 7px; overflow: hidden;
}
.fm-cerr__barra div { height: 100%; border-radius: 999px; background: #3E8E5A; }
.fm-cerr__barra div.fm-cerr__fill--baja { background: #B0473B; }
.fm-cerr__codigo {
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    margin: 14px 18px 0; border-radius: 12px; padding: 16px;
    background: #F2F6FC; border: 1.5px solid #D8E2F0;
}
.fm-cerr__codigo--vacio { background: #F6F8FA; border: 1px solid #E7EBF0; }
.fm-cerr__codigo-col { flex: 1; min-width: 180px; }
.fm-cerr__codigo-col small {
    display: block; font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; color: #8A93A5; margin-bottom: 4px;
}
.fm-cerr__num {
    display: block; font-family: "JetBrains Mono", ui-monospace, Consolas, monospace;
    font-size: 34px; font-weight: 700; letter-spacing: .18em; color: #25304A;
    line-height: 1.1;
}
.fm-cerr__codigo--vacio .fm-cerr__num { font-size: 22px; color: #A9B2C2; }
.fm-cerr__codigo-nota { display: block; font-size: 12px; color: #8A93A5; margin-top: 5px; }
.fm-cerr__codigo-nota[hidden] { display: none; }
.fm-cerr__codigo-acciones {
    display: flex; flex-direction: column; gap: 8px; align-items: stretch;
}
.fm-cerr__btn-pill {
    font-size: 13px; font-weight: 700; color: #25406E; cursor: pointer;
    background: #fff; border: 1px solid #C6D2E4; border-radius: 999px;
    padding: 9px 18px; font-family: var(--font-body); white-space: nowrap;
}
.fm-cerr__btn-pill:hover { background: #F2F6FC; }
.fm-cerr__btn-pill[hidden] { display: none; }
.fm-cerr__cta {
    font-size: 14px; font-weight: 800; color: #fff; cursor: pointer;
    background: #25304A; border: none; border-radius: 999px;
    padding: 13px 24px; font-family: var(--font-body); white-space: nowrap;
}
.fm-cerr__cta:hover { background: #37456B; }
.fm-cerr__cta[hidden] { display: none; }
.fm-cerr__link {
    font-size: 12px; color: #8A93A5; background: none; border: none;
    cursor: pointer; text-decoration: underline; font-family: var(--font-body);
}
.fm-cerr__link[hidden] { display: none; }
.fm-cerr__limite {
    display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
    margin: 10px 18px 0; padding: 10px 12px; border-radius: 10px;
    background: #F6F8FA; border: 1px solid #E7EBF0;
}
.fm-cerr__limite[hidden] { display: none; }
.fm-cerr__limite-lbl { font-size: 12px; font-weight: 700; color: #5A6478; }
.fm-cerr__limite input {
    padding: 7px 10px; border-radius: 8px; border: 1px solid #C6D2E4;
    background: #fff; font-family: var(--font-body); font-size: 13px; color: #25304A;
}
.fm-cerr__limite-nota { flex-basis: 100%; font-size: 11px; color: #8A93A5; }
.fm-cerr__manual { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.fm-cerr__manual[hidden] { display: none; }
.fm-cerr__manual input {
    width: 130px; padding: 8px 12px; border-radius: 8px;
    border: 1px solid #C6D2E4; background: #fff;
    font-family: "JetBrains Mono", ui-monospace, Consolas, monospace;
    font-size: 15px; font-weight: 700; letter-spacing: .12em; color: #25304A;
}
.fm-cerr__aviso {
    margin: 12px 18px 0; padding: 9px 12px; border-radius: 10px;
    font-size: 13px; line-height: 1.45; font-weight: 600;
    background: #F6F8FA; border: 1px solid #E7EBF0; color: #5A6478;
}
.fm-cerr__aviso--error { background: #FBEFED; border-color: #E4C9C5; color: #B0473B; }
.fm-cerr__aviso[hidden] { display: none; }
.fm-cerr__acciones {
    display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
    padding: 16px 18px 18px;
}
.fm-cerr__emergencia {
    margin-left: auto; display: flex; align-items: center; gap: 9px;
}
.fm-cerr__emergencia[data-permiso-oculto] { display: none; }
.fm-cerr__emergencia small {
    font-size: 11px; font-weight: 600; color: #8A93A5;
}
.fm-cerr__abrir {
    font-size: 13px; font-weight: 800; color: #8A5A14; cursor: pointer;
    background: #fff; border: 1.5px solid #D9B98C; border-radius: 999px;
    padding: 9px 20px; font-family: var(--font-body); white-space: nowrap;
}
.fm-cerr__abrir:hover { background: #FBEFE3; }
.fm-cerr__escribir {
    font-size: 13px; font-weight: 800; color: #fff; cursor: pointer;
    background: #25304A; border: none; border-radius: 12px;
    padding: 14px 22px; font-family: var(--font-body);
}
.fm-cerr__escribir:hover { background: #37456B; }
.fm-cerr__escribir[hidden] { display: none; }
.fm-cerr__sec {
    font-size: 13px; font-weight: 700; color: #25406E; cursor: pointer;
    background: #fff; border: 1px solid #C6D2E4; border-radius: 12px;
    padding: 13px 20px; font-family: var(--font-body);
}
.fm-cerr__sec:hover { background: #F2F6FC; }
.fm-cerr__sec[hidden] { display: none; }
.fm-cerr__sec--rojo { color: #B0473B; border-color: #E4C9C5; }
.fm-cerr__sec--rojo:hover { background: #FBEFED; }
.fm-cerr__historial { border-top: 1px solid #E7EBF0; background: #F6F8FA; }
.fm-cerr__historial[hidden] { display: none; }
.fm-cerr__historial summary {
    list-style: none; cursor: pointer; display: flex; align-items: center;
    justify-content: space-between; padding: 12px 18px;
    font-size: 13px; font-weight: 700; color: #5A6478;
}
.fm-cerr__historial summary::-webkit-details-marker { display: none; }
.fm-cerr__historial[open] .fm-cerr__chev { transform: rotate(180deg); }
.fm-cerr__chev { transition: transform .15s; color: #8A93A5; }
.fm-cerr__historial > div { padding: 0 18px 12px; }
.fm-cerr-hito {
    display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline;
    padding: 8px 0; border-top: 1px solid #E7EBF0; font-size: 13px;
}
.fm-cerr-hito__punto {
    width: 8px; height: 8px; border-radius: 50%; flex: none;
    align-self: center; background: #A9B2C2;
}
.fm-cerr-hito__punto--verde { background: #3E8E5A; }
.fm-cerr-hito__punto--rojo { background: #B0473B; }
.fm-cerr-hito__que { font-weight: 600; color: #25304A; }
.fm-cerr-hito__que--falla { color: #B0473B; }
.fm-cerr-hito__detalle { flex: 1; min-width: 120px; color: #5A6478; }
.fm-cerr-hito__quien { color: #8A93A5; font-size: 12px; }
.fm-notes {
    width: 100%;
    font-family: var(--font-body);
    font-size: 13.5px;
    color: var(--fm-text);
    background: var(--fm-surface);
    border: none;
    padding: 14px 22px;
    resize: none;
    display: block;
}
.fm-notes::placeholder { font-style: italic; color: var(--fm-placeholder); }
.fm-notes:focus { outline: none; background: var(--fm-surface-soft); }
.fm-canal-notas {
    margin: 0;
    width: 100%;
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--fm-text);
    background: var(--fm-surface);
    padding: 14px 22px;
    white-space: pre-wrap;      
    overflow-wrap: anywhere;    
}
.fm-canal-notas b { font-weight: 600; }
.fm-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 24px;
    background: var(--fm-surface);
    border-top: 1px solid var(--fm-border);
    border-radius: 0 0 16px 16px;
    flex-shrink: 0;
}
.fm-footer__left { font-size: 13px; color: var(--fm-muted); }
.fm-footer__left strong { color: var(--fm-amber); font-weight: 700; font-variant-numeric: tabular-nums; }
.fm-footer__left[hidden] { display: none; }
.fm-footer__actions { display: flex; gap: 12px; margin-left: auto; }
.fm-estado { display: flex; align-items: center; gap: 8px; }
.fm-estado__label {
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--fm-muted);
    white-space: nowrap;
}
.fm-estado__select,
.bd-estado__select {
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    padding: 7px 12px;
    min-height: 36px;
    border: 1.5px solid var(--color-border, #d9d5cc);
    border-radius: 9px;
    background: var(--surface, #fff);
    color: inherit;
    cursor: pointer;
    max-width: 200px;
}
.fm-estado__select:hover,
.bd-estado__select:hover { border-color: var(--ink-soft, #a1a1aa); }
.fm-estado__select:focus-visible,
.bd-estado__select:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.fm-btn {
    border-radius: 8px;
    padding: 10px 22px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-body);
    cursor: pointer;
    transition: background .14s, box-shadow .14s;
}
.fm-btn--ghost {
    background: var(--fm-surface);
    border: 1px solid var(--color-border-strong);
    color: var(--color-ink-2);
}
.fm-btn--ghost:hover { background: var(--fm-surface-soft); }
.fm-btn--ghost[hidden] { display: none; }
.fm-btn--primary {
    background: var(--fm-dark);
    border: 1px solid var(--fm-dark);
    color: #fff;
    box-shadow: 0 3px 8px rgba(58, 47, 32, .3);
}
.fm-btn--primary:hover { background: #4a3d2a; }
.fm-btn--ambar {
    background: var(--fm-surface);
    border: 1.5px solid var(--fm-amber-accent);
    color: var(--fm-amber);
}
.fm-btn--ambar:hover { background: #fdf5e9; }
.fm-btn--contorno {
    background: var(--fm-surface);
    border: 1.5px solid var(--fm-dark);
    color: var(--fm-dark);
}
.fm-btn--contorno:hover { background: var(--fm-surface-soft); }
.fm-card__head--con-accion {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.fm-payments-list {
    margin-bottom: 16px;
    min-height: 4px;
}
.fm-payment-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    margin-bottom: 6px;
    font-size: 13px;
}
.fm-payment-row__left {
    display: flex;
    align-items: center;
    gap: 10px;
}
.fm-payment-amount { font-weight: 600; color: #27500a; }
.fm-payment-concept { font-size: 11px; background: var(--color-bg); border: 1px solid var(--color-border); border-radius: 20px; padding: 1px 8px; color: var(--color-ink-soft); text-transform: capitalize; }
.fm-payment-method { color: var(--color-ink-soft); }
.fm-payment-dest { color: var(--color-ink-soft); font-size: .78em; opacity: .85; }
.fm-payment-date { font-size: 12px; color: var(--color-ink-soft); }
.fm-no-payments {
    color: var(--color-ink-soft);
    font-size: 13px;
    text-align: center;
    padding: 0.75rem 0 0.25rem;
}
.fm-fields {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    padding: 18px 22px;
}
.fm-f { display: flex; flex-direction: column; gap: 5px; }
.fm-f:has(> [hidden]),
.fm-f:has(> * > [hidden]) { display: none; }
.fm-f__lbl {
    font-size: 11px;
    font-weight: 600;
    color: var(--fm-label);
}
.fm-f--190 { width: 190px; }
.fm-f--180 { width: 180px; }
.fm-f--150 { width: 150px; }
.fm-f--130 { width: 130px; }
.fm-f--monto { width: 130px; }
.fm-f--64 { width: 64px; }
.fm-f--crece { flex: 1; min-width: 180px; }
.fm-fields__sep { flex: 1 1 auto; }
.fm-fields__error { padding: 0 22px 14px; margin: 0; }
.fm-fields input,
.fm-fields select {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--fm-text);
    background: var(--fm-surface);
    border: 1px solid var(--color-border-strong);
    border-radius: 8px;
    padding: 9px 10px;
    width: 100%;
}
.fm-fields input:focus,
.fm-fields select:focus { outline: none; border-color: var(--fm-dark); }
.fm-money-cur {
    display: flex;
    align-items: stretch;
    border: 2px solid var(--fm-dark);
    border-radius: 8px;
    background: var(--fm-surface);
    overflow: hidden;
}
.fm-money-cur__signo {
    display: flex; align-items: center;
    padding: 0 3px 0 9px;
    font-size: 13px; font-weight: 600; color: var(--fm-muted);
}
.fm-fields .fm-money-cur input.money-input {
    border: none;
    border-radius: 0;
    padding: 9px 8px 9px 1px;
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}
.fm-fields .fm-money-cur input.money-input::placeholder {
    font-weight: 400;
    color: var(--fm-muted);
    opacity: .65;
}
.fm-fields .fm-money-cur input.money-input:focus { border: none; }
.fm-f--monto > .fm-f__lbl { display: flex; align-items: center; gap: 4px; }
.fm-fields .fm-f--monto select.fm-cur-pick {
    width: auto;
    
    min-height: 0;
    
    height: 1.2em;
    line-height: 1.2;
    padding: 0 0 0 1px;
    border: none;
    border-radius: 0;
    background: transparent;
    font-size: 11px;
    font-weight: 700;
    color: var(--fm-muted);
    cursor: pointer;
}
.fm-money-plano {
    display: flex; align-items: stretch;
    border: 1px solid var(--color-border-strong);
    border-radius: 8px;
    background: var(--fm-surface);
    overflow: hidden;
}
.fm-money-plano__signo {
    display: flex; align-items: center;
    padding: 0 3px 0 10px;
    font-size: 15px; font-weight: 700; color: var(--fm-label);
}
.fm-fields .fm-money-plano input.money-input {
    border: none; border-radius: 0;
    padding: 9px 8px 9px 2px;
    font-size: 15px; font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.fm-refund-link {
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: var(--fm-amber);
    text-transform: none;
    letter-spacing: normal;
    padding: 0;
}
.fm-refund-link:hover { text-decoration: underline; }
.fm-refund-toggle--open { text-decoration: underline; }
.fm-refund-box {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    border: 1px dashed var(--color-border-strong);
    border-radius: 10px;
    background: var(--color-surface-raised);
    margin: 0 22px 18px;
    padding: 14px 18px;
}
.fm-refund-box[hidden] { display: none; }
.fm-refund-box__porque { display: flex; flex-direction: column; gap: 3px; max-width: 210px; }
.fm-refund-box__titulo { font-size: 12px; font-weight: 700; color: var(--fm-amber); }
.fm-refund-box__texto { font-size: 12px; color: var(--fm-label); line-height: 1.35; }
.fm-refund-box .fm-f__lbl { font-size: 11px; font-weight: 600; color: var(--fm-label); }
.fm-refund-box input,
.fm-refund-box select {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--fm-text);
    background: var(--fm-surface);
    border: 1px solid var(--color-border-strong);
    border-radius: 8px;
    padding: 9px 10px;
    width: 100%;
}
.fm-refund-box .fm-money-plano input.money-input { border: none; }
.fm-f:has(> #fmRefundDest) { width: 300px; }
.fm-factura {
    margin: 10px 22px 14px;
    padding: 12px 14px;
    border: 1px dashed var(--fm-border-soft);
    border-radius: 10px;
}
.fm-factura__btn {
    border: 1px solid var(--fm-border-soft);
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 9px;
    cursor: pointer;
}
.fm-factura__btn:hover:not(:disabled) { background: var(--fm-border-soft); }
.fm-factura__btn:disabled { opacity: .55; cursor: progress; }
.fm-factura__estado { margin-left: 10px; font-size: 13px; opacity: .75; }
.fm-factura__aviso {
    margin-top: 9px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .01em;
    color: #b4530a;
}
.fm-factura__hecha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fm-factura__ver {
    margin-left: auto;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--fm-border-soft);
    border-radius: 8px;
    padding: 6px 12px;
}
.fm-factura__ver:hover { background: var(--fm-border-soft); }
.fm-factura__anular {
    font-size: 13px;
    font-weight: 600;
    color: #8c1d13;
    background: none;
    border: 1px solid #e3c4c0;
    border-radius: 8px;
    padding: 6px 12px;
    cursor: pointer;
}
.fm-factura__anular:hover:not(:disabled) { background: #fbeeec; }
.fm-factura__anular:disabled { opacity: .55; cursor: default; }
.fm-factura__anulada {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    margin-bottom: 10px; padding-bottom: 10px;
    border-bottom: 1px dashed var(--fm-border-soft);
    opacity: .75;
}
.fm-factura__anulada .fm-factura__ver { margin-left: 0; padding: 2px 8px; }
.fm-factura__ico { font-size: 18px }
.fm-factura__cae { display: block; font-size: 12px; opacity: .7;
                   font-family: ui-monospace, Consolas, monospace; }
.fm-factura__error {
    margin-top: 9px; font-size: 13px; color: #8c1d13;
    background: #fdeceb; border: 1px solid #f2b8b3;
    border-radius: 8px; padding: 9px 11px;
}
.fm-folios { min-height: 4px; }
.fm-folio-card { border-bottom: 1px solid var(--fm-border-soft); }
.fm-folios .fm-folio-card:last-child { border-bottom: none; }
.fm-folios { display: grid; gap: 16px; }
.fm-folio-card.fm-est {
    border: 1px solid var(--fm-border);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(24, 38, 66, .05);
    overflow: hidden;
    background: var(--fm-surface, #fff);
}
.fm-folios .fm-folio-card.fm-est:last-child { border-bottom: 1px solid var(--fm-border); }
.fm-est .fm-folio-head { background: var(--fm-surface-soft, #fbf9f4); }
.fm-est .fm-folio-title { font-size: 16px; }
.fm-folio-nro {
    font-size: 11.5px;
    font-weight: 500;
    color: var(--fm-muted);
    margin-left: 8px;
    font-variant-numeric: tabular-nums;
}
.fm-folio-sub {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--fm-muted);
    margin-top: 2px;
}
.fm-est .fm-folio-body { padding: 0; }
.fm-est-tots { display: flex; gap: 22px; margin-left: auto; }
.fm-est-tot { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.fm-est-tot small {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fm-label);
}
.fm-est-tot b {
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    color: var(--fm-text);
}
.fm-est-tot--pagos b { color: var(--fm-green, #2e7d4f); }
.fm-est-tot--saldo b { color: var(--fm-amber, #b7742c); font-weight: 800; }
.fm-est-cols, .fm-est-row {
    display: grid;
    grid-template-columns: 92px 1fr 150px 150px 60px;
    column-gap: 10px;
    align-items: center;
    padding: 0 22px;
}
.fm-est-cols {
    padding-top: 10px;
    padding-bottom: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--fm-label);
    border-bottom: 1px solid var(--fm-border-soft);
}
.fm-est-cols__num { text-align: right; }
.fm-est-row {
    padding-top: 9px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--fm-border-soft);
}
.fm-est-row--zebra { background: var(--fm-surface-soft, #fbf9f4); }
.fm-est-row--void { opacity: .45; }
.fm-est-row--void .fm-est-nombre,
.fm-est-row--void .fm-est-monto { text-decoration: line-through; }
.fm-est-fecha { font-size: 13px; color: var(--fm-muted); font-variant-numeric: tabular-nums; }
.fm-est-conc { min-width: 0; }
.fm-est-nombre { font-size: 14px; font-weight: 600; color: var(--fm-text); }
.fm-est-sub { display: block; font-size: 12px; color: var(--fm-muted); margin-top: 2px; }
.fm-est-ver { color: #2456a6; text-decoration: none; }
.fm-est-ver:hover { text-decoration: underline; }
.fm-est-monto {
    text-align: right;
    font-size: 13.5px;
    font-variant-numeric: tabular-nums;
    color: var(--fm-text);
}
.fm-est-monto--pago { color: var(--fm-green, #2e7d4f); }
.fm-est-monto--vacio { color: var(--fm-placeholder, #c9c3b4); }
.fm-est-acciones { text-align: right; white-space: nowrap; }
.fm-est-chip {
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    padding: 1px 8px;
    margin-left: 8px;
    white-space: nowrap;
}
.fm-est-chip--tarifa { color: #2456a6; background: #f2f5fb; }
.fm-est-chip--consumo { color: #b7742c; background: #faf3e8; }
.fm-est-chip--comision { color: #62588f; background: #f1eff8; }
.fm-est-chip--ajuste { color: var(--fm-muted); background: var(--fm-surface-soft, #fbf9f4); }
.fm-est-chip--pago { color: #2e7d4f; background: #edf6ef; }
.fm-est-chip--reembolso { color: #8c1d13; background: #fbeeec; }
.fm-est-chip--canal { color: var(--fm-muted); background: var(--fm-surface-soft, #fbf9f4);
                      border: 1px solid var(--fm-border-soft); font-weight: 500; }
.fm-est-nota-canal {
    margin: 0;
    padding: 0 22px 12px;
    font-size: 12.5px;
    color: var(--fm-muted);
}
.fm-est-nota-canal b { color: var(--fm-amber, #b7742c); }
.fm-cobra {
    display: inline-block;
    margin-left: 10px;
    padding: 1px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .01em;
    cursor: help;
}
.fm-cobra[hidden] { display: none; }
.fm-cobra--canal { color: #62588f; background: #f1eff8; }
.fm-cobra--hotel { color: #2e7d4f; background: #edf6ef; }
.fm-row .fm-cobra { margin-left: 0; }
.fm-est-expand {
    padding: 2px 240px 8px 124px;
    border-bottom: 1px solid var(--fm-border-soft);
}
.fm-est-expand[hidden] { display: none; }
.fm-est-vacio { padding: 14px 22px; }
.fm-est-foot {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 14px;
    padding: 12px 22px 14px;
}
.fm-est-foot__factura { flex: 1; min-width: 0; }
.fm-est-foot .fm-factura { margin: 0; padding: 0; border: none; }
.fm-est-foot__saldo {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    white-space: nowrap;
}
.fm-est-foot__saldo small {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fm-label);
}
.fm-est-foot__saldo b {
    font-size: 17px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--fm-amber, #b7742c);
}
.fm-est-body .fm-route-form { margin: 6px 22px 8px; }
.fm-comision {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 22px;
    background: var(--fm-surface-soft, #fbf9f4);
    border-top: 1px solid var(--fm-border-soft);
    font-size: 13px;
}
.fm-folios > .fm-comision {
    border: 1px solid var(--fm-border-soft);
    border-radius: 12px;
}
.fm-comision__ico {
    width: 26px; height: 26px;
    display: grid; place-items: center;
    border-radius: 50%;
    background: #f1eff8;
    color: #62588f;
    font-weight: 700;
    flex: 0 0 auto;
}
.fm-comision__txt { flex: 1; min-width: 0; }
.fm-comision__txt b { display: block; font-weight: 600; color: var(--fm-text); }
.fm-comision__txt small { display: block; font-size: 12px; color: var(--fm-muted); margin-top: 1px; }
.fm-comision__monto {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--fm-amber, #b7742c);
    white-space: nowrap;
}
@container (max-width: 700px) {
  .fm-comision { padding: 10px 12px; }
}
@container (max-width: 700px) {
  .fm-est-cols, .fm-est-row {
        grid-template-columns: 46px 1fr 88px 88px 40px;
        column-gap: 6px;
        padding: 0 12px;
    }
  .fm-est .fm-folio-head { flex-wrap: wrap; }
  .fm-est-tots { gap: 14px; width: 100%; justify-content: flex-end; }
  .fm-est-expand { padding: 2px 12px 8px 64px; }
  .fm-est-foot { flex-wrap: wrap; padding: 10px 12px 12px; }
  .fm-est-vacio { padding: 12px; }
}
.fm-folio-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 22px;
}
.fm-folio-head--toggle {
    cursor: pointer;
    gap: 10px;
    user-select: none;
}
.fm-folio-head--toggle .fm-folio-title { flex: 1; }
.fm-folio-head--toggle:hover { background: var(--color-surface-raised); }
.fm-folio-body { padding: 0 22px 14px; }
.fm-folio-title {
    font-weight: 700;
    font-size: 14px;
    color: var(--fm-text);
}
.fm-folio-chip {
    font-size: 11px;
    font-weight: 500;
    color: var(--fm-muted);
    border: 1px solid var(--fm-border);
    border-radius: 999px;
    padding: 2px 9px;
    margin-left: 8px;
    white-space: nowrap;
}
.fm-folio-origin {
    font-weight: 500;
    font-size: 11.5px;
    color: var(--fm-muted);
}
.fm-folio-line { margin-bottom: 4px; }
.fm-folio-line--void { opacity: .45; }
.fm-folio-line--void .fm-payment-concept,
.fm-folio-line--void .fm-payment-amount { text-decoration: line-through; }
.fm-charge-void,
.fm-charge-route {
    border: none;
    background: none;
    color: var(--color-ink-soft);
    cursor: pointer;
    font-size: 12px;
    padding: 0 2px;
}
.fm-charge-void:hover { color: #8a3413; }
.fm-charge-route:hover { color: #27500a; }
.fm-payment-row__left { flex: 1; min-width: 0; }
.fm-payment-del {
    border: none;
    background: none;
    color: var(--color-ink-soft);
    cursor: pointer;
    font-size: 12px;
    padding: 0 2px;
    margin-left: 8px;
    opacity: .55;
}
.fm-payment-del:hover { color: #8a3413; opacity: 1; }
.fm-route-form {
    display: flex;
    gap: 6px;
    align-items: center;
    padding: 6px 10px;
    margin: -2px 0 6px 18px;
    background: var(--color-bg);
    border: 1px dashed var(--color-border);
    border-radius: 8px;
}
.fm-route-form select,
.fm-route-form input {
    font-family: var(--font-body);
    font-size: 12px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 5px 8px;
    background: #fff;
}
.fm-route-form input { width: 110px; }
.fm-route-error { font-size: 11px; color: #8a3413; }
.fm-folio-entry { margin-bottom: 4px; }
.fm-folio-clickable { cursor: pointer; }
.fm-folio-chevron {
    display: inline-block;
    width: 10px;
    font-size: 10px;
    color: var(--color-ink-soft);
    transition: transform .15s ease;
}
.fm-folio-open .fm-folio-chevron { transform: rotate(90deg); }
.fm-folio-detail { padding: 4px 12px 6px 40px; }
.fm-folio-det-row {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--color-ink);
    padding: 2px 0;
}
.fm-folio-det-row--muted { color: var(--color-ink-soft); }
.fm-folio-det-row--total {
    font-weight: 600;
    border-top: 1px solid var(--color-border);
    margin-top: 3px;
    padding-top: 4px;
}
.fm-folio-detail .fm-payment-row {
    border: none;
    background: transparent;
    padding: 4px 2px;
    margin-bottom: 0;
}
.fm-dist-item {
    border-bottom: 1px solid var(--color-border);
    padding: 2px 0;
}
.fm-dist-item:last-child { border-bottom: none; }
.fm-dist-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 4px;
    cursor: pointer;
    font-size: 13px;
}
.fm-dist-row .fm-dist-label { flex: 1; }
.fm-dist-amt { font-weight: 600; color: #27500a; }
.fm-dist-expand {
    border: none; background: none; cursor: pointer;
    font-size: 11px; color: var(--color-ink-soft);
}
.fm-dist-target,
.fm-dist-qty {
    margin: 0 4px 8px 30px;
    font-family: var(--font-body); font-size: 12.5px;
    border: 1px solid var(--color-border); border-radius: 8px;
    padding: 6px 9px; background: var(--color-surface, #fff);
}
.fm-dist-qty { width: 70px; }
.fm-dist-frac-wrap {
    display: inline-flex; align-items: center; gap: 4px;
    margin: 0 4px 8px 8px;
}
.fm-dist-frac-toggle {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12.5px; color: var(--color-ink-soft); cursor: pointer;
}
.fm-dist-frac-num, .fm-dist-frac-den {
    width: 44px; font-size: 12.5px;
    border: 1px solid var(--color-border); border-radius: 8px; padding: 6px 6px;
}
.fm-dist-nights { padding: 0 0 6px 30px; }
.fm-dist-night {
    display: flex; align-items: center; gap: 10px;
    padding: 4px 4px; font-size: 12.5px; cursor: pointer;
}
.fm-dist-night span:first-of-type { flex: 1; }
.fm-distrib-actions {
    display: flex; align-items: center; gap: 12px;
    margin-top: 16px;
}
.fm-guest-move { margin-left: auto; white-space: nowrap; }
.fm-guest-move-box {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin-top: 10px;
}
.fm-guest-move-sel {
    flex: 1; min-width: 180px;
    font-family: var(--font-body); font-size: 12.5px;
    border: 1px solid var(--color-border); border-radius: 8px;
    padding: 7px 9px; background: var(--color-surface, #fff);
}
.fm-ficha-form {
    margin-top: 10px; padding: 12px;
    border: 1px solid var(--color-border); border-radius: 10px;
    background: var(--color-surface-alt, #fafafa);
    display: flex; flex-direction: column; gap: 10px;
}
.fm-ficha-form[hidden] { display: none; }
.fm-ficha-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 12px;
}
.fm-ff-cell, .fm-ff-full {
    display: flex; flex-direction: column; gap: 3px;
    font-size: 11px; font-weight: 600; color: var(--color-muted, #666);
    text-transform: uppercase; letter-spacing: .02em;
}
.fm-ff-wide { grid-column: 1 / -1; }
.fm-ff-full { text-transform: none; letter-spacing: 0; }
.fm-ff-cell input, .fm-ff-cell select,
.fm-ff-full textarea {
    font-family: var(--font-body); font-size: 13px; font-weight: 400;
    text-transform: none; letter-spacing: 0; color: var(--color-ink, #222);
    border: 1px solid var(--color-border); border-radius: 8px;
    padding: 7px 9px; background: var(--color-surface, #fff);
}
.fm-ff-full textarea { resize: vertical; }
.fm-ff-chk {
    flex-direction: row; align-items: center; gap: 6px;
    text-transform: none; letter-spacing: 0; font-weight: 400;
    color: var(--color-ink, #222); grid-column: 1 / -1;
}
.fm-ff-chk input { width: auto; }
.fm-ff-actions { display: flex; align-items: center; gap: 10px; }
.fm-ff-error { font-size: 12.5px; color: var(--color-danger, #c0392b); }
.fm-guest-edit { margin-left: auto; }
.fm-guest-head .fm-guest-move { margin-left: 0; }
.fm-alter--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: start;
}
.fm-alter-card {
    background: var(--fm-surface, #fff);
    border: 1px solid var(--fm-border);
    border-radius: 14px;
    padding: 18px 22px;
    box-shadow: 0 1px 3px rgba(24, 38, 66, .05);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.fm-alter-card--ancha { grid-column: 1 / -1; }
.fm-alter-card__titulo {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--fm-label);
}
.fm-alter-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fm-alter-row input[type="date"],
.fm-alter-row input[type="text"],
.fm-alter-row select,
.fm-alter-vinculo select {
    font-family: var(--font-body); font-size: 14px;
    border: 1.5px solid var(--fm-border-soft);
    border-radius: 9px;
    padding: 9px 12px;
    background: var(--fm-surface, #fff);
    color: var(--fm-text);
}
.fm-alter-crece { flex: 1; min-width: 140px; }
.fm-alter-accion { margin-left: auto; }
.fm-alter-lbl {
    display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
    font-size: 12px; color: var(--color-ink-soft);
}
.fm-alter-noches { font-size: 12px; color: var(--color-ink-soft); white-space: nowrap; }
.fm-alter-check { display: flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--color-ink-soft); }
.fm-alter-note { font-size: 12px; color: var(--color-ink-soft); margin: 0; line-height: 1.45; }
.fm-alter-note b { color: var(--fm-text); }
.fm-alter-vinculo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fm-alter-vinculo .fm-alter-note { flex: 1; min-width: 260px; }
.fm-alter-vinculo select { width: 240px; }
.fm-alter-card--peligro { border-color: #ecc9c4; }
.fm-alter-card--peligro .fm-alter-card__titulo { color: #b3402f; }
.fm-alter-card--peligro[hidden] { display: none; }
.fm-alter-baja-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 22px;
}
.fm-alter-btn-peligro {
    background: var(--fm-surface, #fff);
    border: 1.5px solid #b3402f;
    color: #b3402f;
    font-weight: 700;
    font-size: 13px;
    border-radius: 9px;
    padding: 9px 16px;
}
.fm-alter-btn-peligro:hover { background: #fbeeec; }
.fm-alter-warn {
    font-size: 13px; margin: 0; padding: 10px 14px; border-radius: 10px;
    background: #fdf3e4; border: 1px solid #efdcb8; color: #8a5a1f;
    line-height: 1.5;
}
.fm-alter-warn[hidden] { display: none; }
.fm-alter-success { font-size: 13px; color: #27500a; font-weight: 600; margin: 0; }
@container (max-width: 900px) {
  .fm-alter--grid { grid-template-columns: 1fr; }
  .fm-alter-card--ancha { grid-column: auto; }
  .fm-alter-baja-info { grid-template-columns: 1fr; }
  .fm-alter-card { padding: 14px 16px; }
}
.fm-billed-banner {
    background: #fbf3e6;
    border: 1px solid #e6c98f;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 13px;
    color: #7a5a1e;
    margin-bottom: 14px;
}
.fm-placeholder {
    text-align: center;
    padding: 2.5rem 0;
    color: var(--color-ink-soft);
}
.fm-placeholder__title {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-ink);
    margin: 0 0 6px;
}
.fm-placeholder__text {
    font-size: 13px;
    margin: 0;
}
.fm-vinc__evento { font-size: 13px; margin: 0 0 10px; color: var(--color-ink); }
.fm-vinc__evento[hidden] { display: none; }
.fm-vinc__ir { color: var(--color-ink-soft); }
.fm-vinc__kpis { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--color-ink-soft); margin-bottom: 10px; }
.fm-vinc__kpis b { color: var(--color-ink); font-size: 15px; }
.fm-vinc__fila { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 6px 12px; align-items: baseline;
    padding: 7px 10px; border: 1px solid var(--color-border); border-radius: 9px; font-size: 13px; margin-bottom: 6px; }
.fm-vinc__fila > span:nth-child(2) { color: var(--color-ink-soft); }
.fm-vinc__fila.is-off { opacity: .55; text-decoration: line-through; }
.fm-vinc__est { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px;
    border: 1px solid var(--color-border); white-space: nowrap; }
.fm-vinc__est--checkin, .fm-vinc__est--checkout { background: #dff1e3; border-color: #dff1e3; color: #1f6b3a; }
.fm-vinc__est--hoy { background: #fdeed6; border-color: #fdeed6; color: #8a5a12; }
.fm-vinc__est--sin_checkin { background: #fbe4df; border-color: #fbe4df; color: #9b3b2c; }
.fm-vinc__elegir { display: flex; gap: 8px; justify-content: center; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.fm-vinc__elegir select { max-width: 320px; }
@container (max-width: 640px) {
  .fm-vinc__fila { grid-template-columns: 1fr auto; }
  .fm-vinc__fila > span:nth-child(2) { grid-column: 1 / -1; }
}
.fm-empty {
    text-align: center;
    padding: 2rem 0;
    color: var(--color-ink-soft);
    font-size: 13px;
}
.fm-guests { display: flex; flex-direction: column; gap: 12px; }
.fm-guest-card {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-surface);
    padding: 14px 16px;
}
.fm-guest-head { display: flex; align-items: center; gap: 11px; margin-bottom: 10px; }
.fm-guest-ava {
    width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
    background: var(--color-accent-soft); color: var(--color-accent);
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 14px;
}
.fm-guest-nrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fm-guest-name { font-size: 15px; font-weight: 600; color: var(--color-ink); }
.fm-guest-link { color: var(--color-accent); text-decoration: none; }
.fm-guest-link:hover { text-decoration: underline; }
.fm-guest-tag {
    font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 20px;
    background: var(--color-bg-alt, #f2ece1); color: var(--color-ink-soft);
    border: 1px solid var(--color-border);
}
.fm-guest-tag--primary { background: var(--color-accent-soft); color: var(--color-accent); border-color: var(--color-accent); }
.fm-guest-tag--rec { background: var(--color-accent); color: #fff; border-color: var(--color-accent); }
.fm-guest-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 9px 18px;
}
.fm-guest-cell { display: flex; flex-direction: column; gap: 2px; }
.fm-guest-cell span {
    font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--color-ink-soft);
}
.fm-guest-cell b { font-size: 13px; font-weight: 600; color: var(--color-ink); }
.fm-guest-thin { font-size: 13px; color: var(--color-ink-soft); margin: 0; }
.fm-guest-notes {
    margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--color-border);
    font-size: 13px; color: var(--color-ink); display: flex; flex-direction: column; gap: 4px;
}
.fm-guest-ainote { color: var(--color-accent); }
.fm-sec { display: flex; flex-direction: column; gap: 12px; }
.fm-sec + .fm-sec { margin-top: 22px; }
.fm-sec__t {
    display: flex; align-items: center; gap: 10px;
    font-family: var(--font-title, var(--font-body));
    font-size: 17px; font-weight: 700; color: var(--color-ink);
    padding-bottom: 8px; border-bottom: 1px solid var(--color-border);
}
.fm-sec__n {
    font-family: var(--font-body); font-size: 12px; font-weight: 700;
    background: var(--color-accent-soft); color: var(--color-accent-dark);
    border-radius: 999px; padding: 2px 10px;
}
.fm-sec__accion { margin-left: auto; }
.fm-guest-head .fm-part-edit { margin-left: auto; }
.fm-timeline { list-style: none; margin: 0; padding: 4px 0; }
.fm-tl-item { display: flex; gap: 12px; padding: 10px 2px; position: relative; }
.fm-tl-item:not(:last-child)::after {
    content: ""; position: absolute; left: 15px; top: 34px; bottom: -6px;
    width: 2px; background: var(--color-border);
}
.fm-tl-icon {
    width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; z-index: 1;
    display: flex; align-items: center; justify-content: center; font-size: 14px;
    background: var(--color-accent-soft); border: 1px solid var(--color-border);
}
.fm-tl-item--payment  .fm-tl-icon { background: #e3f0e6; }
.fm-tl-item--checkin  .fm-tl-icon { background: #e3f0e6; }
.fm-tl-item--checkout .fm-tl-icon { background: #f6e0dc; }
.fm-tl-item--clean    .fm-tl-icon { background: #eef5ef; }
.fm-tl-item--release  .fm-tl-icon { background: #f1ebf7; }
.fm-tl-body { padding-top: 3px; }
.fm-tl-text { font-size: 13px; font-weight: 600; color: var(--color-ink); }
.fm-tl-meta { font-size: 11.5px; color: var(--color-ink-soft); margin-top: 2px; }
.fm-tl-user { font-weight: 600; }
.fm-tl-user--sys { font-weight: 400; font-style: italic; }
@container (max-width: 740px) {
  #bookingFullModal { padding: 0; }
  .fm > * { flex-shrink: 0; }
  .fm .fm-body { flex-shrink: 1; }
  .fm-header {
        padding: 14px 16px;
        padding-right: 48px;
        border-radius: 0;
        gap: 11px;
    }
  .fm-avatar { width: 38px; height: 38px; min-width: 38px; font-size: 13px; }
  .fm-name { font-size: 17px; }
  .fm-name-row { gap: 6px; }
  .fm-dates { font-size: 12px; }
  .fm-finance {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        padding: 12px 16px;
    }
  .fm-fin-col { padding: 11px 13px; }
  .fm-fin-value { font-size: 17px; }
  .fm-fin-col--balance {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
    }
  .fm-fin-col--balance .fm-fin-label { margin-bottom: 0; }
  .fm-fin-col--balance .fm-fin-value { font-size: 19px; }
  .fm-fin-col--balance .fm-fin-toggle { flex-basis: 100%; margin-top: 4px; }
  .fm-tabbar { padding: 0 16px 12px; gap: 10px; }
  .fm-tabs { display: none; }
  .fm-section-pick {
        display: flex;
        align-items: center;
        gap: 6px;
        flex: 1;
        min-height: 48px;
        padding: 0 14px;
        background: var(--fm-dark);
        border-radius: 12px;
        cursor: pointer;
    }
  .fm-section-pick__pre { font-size: 14px; font-weight: 600; color: #cbb894; }
  .fm-section-pick select {
        flex: 1;
        min-width: 0;
        background: transparent;
        border: none;
        color: #fff;
        font-family: var(--font-body);
        font-size: 14px;
        font-weight: 700;
        padding: 0;
        cursor: pointer;
    }
  .fm-section-pick select:focus { outline: none; }
  .fm-section-pick select option { color: var(--fm-text); }
  .fm-edit-btn {
        margin-left: 0;
        width: 48px;
        min-height: 48px;
        padding: 0;
        font-size: 17px;
        border-radius: 12px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
  .fm-edit-btn__txt { display: none; }
  .fm-body { padding: 0 16px 16px; }
  .fm-card { margin-bottom: 14px; }
  .fm-card__head { padding: 10px 16px; }
  .fm-row {
        grid-template-columns: auto 1fr;
        gap: 4px 12px;
        padding: 12px 16px;
    }
  .fm-row__value { text-align: right; }
  .fm-row:has(> .fm-row__value--wide) { grid-template-columns: 1fr; }
  .fm-row__value--wide { grid-column: 1 / -1; justify-content: flex-start; }
  .fm-row--derecha .fm-row__label { grid-column: auto; }
  .fm-notes { padding: 13px 16px; }
  .fm-fields { padding: 14px 16px; gap: 13px; }
  .fm-fields > .fm-f,
    .fm-fields > .btn { width: 100%; flex: 0 0 100%; }
  .fm-fields__sep { display: none; }
  .fm-f--monto { order: -2; }
  .fm-f--190 { order: -1; }
  .fm-fields input,
    .fm-fields select { min-height: 44px; padding: 11px 12px; font-size: 14px; }
  .fm-money-cur__signo { font-size: 19px; }
  .fm-fields .fm-money-cur input.money-input { font-size: 19px; width: auto; }
  .fm-fields > .fm-f--130 { flex: 1 1 0; width: auto; min-width: 0; }
  .fm-fields > .fm-f--130 select { padding: 11px 6px; }
  .fm-fields > .fm-f--180 { flex: 1 1 0; width: auto; min-width: 0; }
  .fm-fields > .fm-f--64 { flex: 0 0 76px; width: 76px; }
  .fm-fields > .fm-f--150 { flex: 1 1 0; width: auto; min-width: 0; }
  .fm-refund-box { margin: 0 16px 16px; padding: 13px 14px; gap: 13px; }
  .fm-refund-box > .fm-f,
    .fm-refund-box > .btn { width: 100%; flex: 0 0 100%; }
  .fm-refund-box__porque { max-width: none; flex: 0 0 100%; }
  .fm-refund-box input,
    .fm-refund-box select { min-height: 44px; }
  .fm-folio-head {
        flex-wrap: wrap;
        padding: 13px 16px;
        row-gap: 6px;
    }
  .fm-folio-body { padding: 0 16px 13px; }
  .fm-footer { padding: 11px 16px; gap: 10px; border-radius: 0; }
  .fm-footer__left { display: none; }
  .fm-footer__actions { width: 100%; gap: 10px; flex-wrap: wrap; }
  .fm-estado { flex: 1 0 100%; gap: 10px; }
  .fm-estado__select { flex: 1; min-width: 0; }
  .fm-btn { padding: 13px 10px; border-radius: 10px; min-height: 48px; }
  #fmBtnCheck { flex: 1; min-width: 0; }
  #fmBtnPay { flex: 1.4; min-width: 0; }
}
.presu-crm__fila .money-input { width: 120px; }
.sala-campos .se-adi .money-input { width: 110px; padding: 5px 7px;
    border: 1px solid var(--color-border-3); border-radius: 7px; }
.sala-campos .se-adi input[type="text"]:not(.money-input) { padding: 5px 7px;
    border: 1px solid var(--color-border-3); border-radius: 7px; }
.presu-sala__fila .money-input { width: 140px; }
.var-fila .money-input { width: 120px; }
.fm-panel--horarios .sh-scroll { width: 100%; }
.fm-panel--horarios .sh-sub {
    margin: 0 0 10px; font-size: 13px; color: var(--color-ink-soft);
}
.fm-cerr__video {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    margin-top: 12px; padding-top: 12px;
    border-top: 1px solid var(--fm-border, var(--color-border));
}
.fm-cerr__video[hidden] { display: none; }
.fm-cerr__video a { text-decoration: none; cursor: pointer; }
.fm-cerr__idioma {
    font-family: inherit; font-size: 12.5px; padding: 7px 10px; border-radius: 9px;
    border: 1.5px solid var(--fm-border-soft, var(--color-border));
    background: var(--fm-surface, #fff); color: var(--fm-text, var(--ink));
}
.fm-cerr__video small { font-size: 11.5px; color: var(--fm-muted, var(--ink-soft)); }
@container (max-width: 740px) {
  .fm-cerr__video { gap: 8px; }
  .fm-cerr__video small { flex: 1 0 100%; }
}