.trolley-board {
    --trolley-board-border: var(--app-border, #d9dee7);
    --trolley-board-surface: var(--app-surface, #fff);
    --trolley-board-background: var(--app-bg, #f6f4ef);
    --trolley-board-text: var(--app-text, #13263a);
    --trolley-board-muted: var(--app-muted, #68778a);
    --trolley-board-accent: var(--rolepath-accent, #c64012);
    --trolley-board-accent-soft: var(--rolepath-accent-soft, #fff0e9);
    box-sizing: border-box;
    display: grid;
    min-width: 0;
    gap: .8rem;
    color: var(--trolley-board-text);
    font: inherit;
}
.trolley-board *, .trolley-board *::before, .trolley-board *::after { box-sizing: border-box; }
.trolley-board__toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:.8rem; padding:.7rem; border:1px solid var(--trolley-board-border); border-radius:.8rem; background:color-mix(in srgb, var(--trolley-board-surface) 94%, var(--trolley-board-accent-soft) 6%); }
.trolley-board__shortcuts { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; }
.trolley-board__shortcuts > span, .trolley-board__view-selector > span { color:var(--trolley-board-muted); font-size:.7rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.trolley-board__shortcuts button { min-height:2.35rem; padding:.4rem .72rem; border:1px solid color-mix(in srgb, var(--trolley-board-accent) 32%, var(--trolley-board-border)); border-radius:.65rem; background:var(--trolley-board-surface); color:var(--trolley-board-text); cursor:pointer; font:inherit; font-size:.76rem; font-weight:800; }
.trolley-board__shortcuts button:hover { border-color:var(--trolley-board-accent); background:var(--trolley-board-accent-soft); color:var(--trolley-board-accent); }
.trolley-board__shortcuts button.is-clear { color:var(--trolley-board-muted); }
.trolley-board__shortcuts button i, .trolley-board__view-selector i { margin-right:.2rem; }
.trolley-board__view-selector { display:grid; flex:0 0 10rem; gap:.25rem; }
.trolley-board__view-selector select { width:100%; min-height:2.35rem; padding:.4rem 2rem .4rem .65rem; border:1px solid var(--trolley-board-border); border-radius:.65rem; background:var(--trolley-board-surface); color:var(--trolley-board-text); cursor:pointer; font:inherit; font-size:.78rem; font-weight:750; }
.trolley-board__scroll { min-width:0; overflow-x:auto; padding-bottom:.15rem; scrollbar-width:thin; }
.trolley-board__columns { display:grid; grid-template-columns:repeat(var(--trolley-board-columns, 2), minmax(0, 1fr)); gap:.8rem; min-width:0; }
.trolley-board__column { display:grid; min-width:0; gap:.35rem; align-content:start; padding:.55rem; border:1px solid var(--trolley-board-border); border-radius:.85rem; background:color-mix(in srgb, var(--trolley-board-surface) 96%, var(--trolley-board-background) 4%); }
.trolley-board__column > header { display:flex; align-items:center; justify-content:space-between; padding:.1rem .2rem .35rem; color:var(--trolley-board-muted); font-size:.7rem; }
.trolley-board__column > header strong { color:var(--trolley-board-text); font-size:.72rem; text-transform:uppercase; }
.trolley-board__position { display:grid; grid-template-columns:2.15rem minmax(0,1fr) auto auto; align-items:center; gap:.5rem; min-height:3.35rem; padding:.35rem .55rem .35rem .35rem; border:1px solid var(--trolley-board-border); border-radius:.65rem; background:var(--trolley-board-surface); color:var(--trolley-board-text); cursor:pointer; text-align:left; transition:border-color .12s ease, background-color .12s ease, box-shadow .12s ease, translate .12s ease; }
.trolley-board__position:hover { border-color:color-mix(in srgb, var(--trolley-board-accent) 55%, var(--trolley-board-border)); translate:0 -.05rem; }
.trolley-board__position.is-empty { border-style:dashed; color:var(--trolley-board-muted); }
.trolley-board__position.is-selected { border-color:var(--trolley-board-accent); background:var(--trolley-board-accent-soft); box-shadow:inset .22rem 0 0 var(--trolley-board-accent); }
.trolley-board__position.is-locked:not(.is-selected) { border-color:#a5d3bb; }
.trolley-board__position.is-readonly { cursor:default; }
.trolley-board__position.is-readonly:hover { border-color:var(--trolley-board-border); translate:none; }
.trolley-board__position-number { display:grid; place-items:center; width:2.15rem; height:2.15rem; border-radius:.55rem; background:color-mix(in srgb, var(--trolley-board-background) 74%, var(--trolley-board-surface)); color:var(--trolley-board-muted); font-size:.72rem; font-weight:900; }
.trolley-board__position.is-selected .trolley-board__position-number { background:var(--trolley-board-accent); color:#fff; }
.trolley-board__position-content { display:grid; min-width:0; gap:.08rem; }
.trolley-board__position-content strong, .trolley-board__position-content small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trolley-board__position-content strong { color:inherit; font-size:.79rem; }
.trolley-board__position-content small { color:var(--trolley-board-muted); font-size:.66rem; }
.trolley-board__lock { color:#168054; font-size:.72rem; }
.trolley-board__check { display:grid; place-items:center; width:1.25rem; height:1.25rem; border-radius:999px; background:var(--trolley-board-accent); color:#fff; font-size:.62rem; opacity:0; scale:.75; transition:opacity .12s ease, scale .12s ease; }
.trolley-board__position.is-selected .trolley-board__check { opacity:1; scale:1; }
.trolley-board__shortcuts button:focus-visible, .trolley-board__view-selector select:focus-visible, .trolley-board__position:focus-visible { outline:.2rem solid color-mix(in srgb, var(--trolley-board-accent) 36%, transparent); outline-offset:.1rem; }
@media (max-width:760px) {
    .trolley-board__toolbar { align-items:stretch; flex-direction:column; }
    .trolley-board__view-selector { flex-basis:auto; width:min(100%,16rem); }
    .trolley-board__shortcuts > span { flex-basis:100%; }
}


@media (max-width:600px) {
    .trolley-board--full-mobile-text .trolley-board__position {
        min-height:4.6rem;
        align-items:start;
    }

    .trolley-board--full-mobile-text .trolley-board__position-content strong,
    .trolley-board--full-mobile-text .trolley-board__position-content small {
        overflow:visible;
        text-overflow:clip;
        white-space:normal;
        overflow-wrap:anywhere;
        line-height:1.25;
    }
}

/* Bandejas de granja: misma codificación visual que AviagenOne. */
.trolley-board__position.has-tray-presentation:not(.is-selected) {
    border-color:color-mix(in srgb,var(--tray-lineage-color) 48%,var(--trolley-board-border));
    background:color-mix(in srgb,var(--tray-lineage-color) 9%,var(--trolley-board-surface));
    box-shadow:inset .24rem 0 0 var(--tray-lineage-color);
}
.trolley-board__position.has-tray-presentation:not(.is-selected) .trolley-board__position-number {
    background:color-mix(in srgb,var(--tray-lineage-color) 13%,var(--trolley-board-surface));
    color:var(--tray-lineage-color);
}
.farm-tray-slot { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.55rem; min-width:0; width:100%; }
.farm-tray-slot__badges { display:grid; grid-template-columns:minmax(2.2rem,auto) 1.65rem; align-items:center; gap:.25rem; }
.farm-tray-slot__lineage { max-width:4.75rem; overflow:hidden; padding:.18rem .38rem; border:1px solid var(--tray-lineage-color); border-radius:.35rem; color:var(--tray-lineage-color); font-size:.62rem; font-weight:900; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.farm-tray-slot__egg-type { display:grid; place-items:center; width:1.65rem; height:1.65rem; border-radius:.38rem; background:var(--tray-egg-type-color); color:#fff; font-size:.72rem; font-weight:950; box-shadow:inset 0 0 0 1px rgb(255 255 255 / 22%); }
.farm-tray-slot__copy { display:grid; min-width:0; gap:.08rem; overflow:visible; }
.farm-tray-slot__copy strong,
.farm-tray-slot__copy small {
    min-width:0;
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    overflow-wrap:anywhere;
}
.farm-tray-slot__copy strong { color:var(--trolley-board-text); font-size:.78rem; line-height:1.2; }
.farm-tray-slot__copy small { color:var(--trolley-board-muted); font-size:.64rem; line-height:1.2; }
.trolley-board__position.has-tray-presentation { min-height:3.75rem; }

@media (max-width:760px) {
    .farm-tray-slot { gap:.4rem; }
    .farm-tray-slot__copy strong { font-size:.74rem; }
}

/* Granja: atajos integrados y compactos sobre las posiciones del carro. */
.trolley-board--farm { gap:.45rem; }
.trolley-board--farm .trolley-board__toolbar {
    align-items:center;
    gap:.35rem;
    padding:.05rem 0 .35rem;
    border:0;
    border-radius:0;
    background:transparent;
}
.trolley-board--farm .trolley-board__shortcuts { flex:1 1 auto; gap:.3rem; }
.trolley-board--farm .trolley-board__shortcuts > span,
.trolley-board--farm .trolley-board__view-selector > span {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.trolley-board--farm .trolley-board__shortcuts button {
    min-height:1.95rem;
    padding:.22rem .58rem;
    border-radius:999px;
    background:transparent;
    font-size:.69rem;
}
.trolley-board--farm .trolley-board__view-selector {
    display:flex;
    flex:0 0 auto;
    align-items:center;
    gap:.3rem;
    margin-left:auto;
}
.trolley-board--farm .trolley-board__view-selector select {
    width:auto;
    min-width:7.9rem;
    min-height:1.95rem;
    padding:.22rem 1.7rem .22rem .55rem;
    border-radius:999px;
    font-size:.7rem;
}
.trolley-board--farm .trolley-board__columns { gap:.65rem; }
.trolley-board--farm .trolley-board__column { padding:.35rem; }
@media (max-width:760px) {
    .trolley-board--farm .trolley-board__toolbar {
        flex-flow:row wrap;
        align-items:center;
    }
    .trolley-board--farm .trolley-board__shortcuts { flex:1 1 18rem; }
    .trolley-board--farm .trolley-board__view-selector {
        width:auto;
        margin-left:auto;
    }
}

/* Resumen lateral apilado del carro seleccionado. */
.farm-trolleys-page__inventory {
    grid-template-rows:auto auto minmax(0,1fr);
}
.farm-trolleys-page__selected-overview {
    grid-row:1;
    min-width:0;
    margin-bottom:.5rem;
    padding-bottom:.65rem;
    border-bottom:1px solid var(--app-border);
}
.farm-trolleys-page__selected-overview:empty { min-height:0; margin:0; padding:0; border:0; }
.farm-trolleys-page__inventory > header { grid-row:2; }
.farm-trolleys-page__inventory-list,
.farm-trolleys-page__inventory > .farm-trolleys-page__no-results { grid-row:3; }
.farm-trolleys-page__selected-overview .trolley-display--overview-only {
    min-height:0;
    gap:.45rem;
}
.farm-trolleys-page__selected-overview .trolley-display__header {
    grid-template-columns:auto minmax(0,1fr);
    align-items:start;
    gap:.5rem;
    padding-bottom:.5rem;
}
.farm-trolleys-page__selected-overview .trolley-display__icon {
    grid-row:1 / span 2;
    align-self:start;
    width:2.45rem;
    height:2.45rem;
    border-radius:.7rem;
    font-size:.95rem;
}
.farm-trolleys-page__selected-overview .trolley-display__identity {
    display:grid;
    gap:.04rem;
}
.farm-trolleys-page__selected-overview .trolley-display__identity h2 {
    margin:0;
    font-size:1.35rem;
    line-height:1.05;
}
.farm-trolleys-page__selected-overview .trolley-display__identity small { font-size:.66rem; }
.farm-trolleys-page__selected-overview .trolley-display__state {
    grid-column:2;
    justify-self:start;
    padding:.26rem .45rem;
    font-size:.63rem;
}
.farm-trolleys-page__selected-overview .trolley-display__metrics {
    grid-template-columns:1fr;
    gap:.25rem;
}
.farm-trolleys-page__selected-overview .trolley-display__metrics article {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    min-height:0;
    align-items:center;
    gap:.02rem .6rem;
    padding:.35rem .5rem;
    border-radius:.55rem;
}
.farm-trolleys-page__selected-overview .trolley-display__metrics span {
    grid-column:1;
    grid-row:1;
    font-size:.64rem;
}
.farm-trolleys-page__selected-overview .trolley-display__metrics small {
    grid-column:1;
    grid-row:2;
    min-height:0;
    font-size:.58rem;
}
.farm-trolleys-page__selected-overview .trolley-display__metrics strong {
    grid-column:2;
    grid-row:1 / 3;
    justify-self:end;
    font-size:.94rem;
}
.farm-trolleys-page__selected-overview .trolley-display__occupancy {
    gap:.25rem;
    padding:.42rem .5rem;
}
.farm-trolleys-page__selected-overview .trolley-display__occupancy > div { font-size:.64rem; }
.farm-trolleys-page__selected-overview .trolley-display__occupancy progress { height:.4rem; }
.farm-trolleys-page__detail { padding-top:.7rem; }
.farm-trolleys-page__detail .trolley-display--positions-only { min-height:0; gap:0; }
@media (max-width:820px) {
    .farm-trolleys-page__detail { padding-top:.5rem; }
}

.trolley-display__slots-heading.is-summary-only {
    justify-content:flex-end;
    margin-bottom:.35rem;
}



/* Flota separada por disponibilidad operativa y solicitud segura entre centros. */
.farm-trolleys-page__inventory-header { gap:.65rem; }
.farm-trolleys-page__request-button,
.farm-trolleys-page__mobile-request {
    min-height:2.15rem;
    padding:.42rem .68rem;
    border:1px solid color-mix(in srgb,var(--rolepath-accent) 42%,var(--app-border));
    border-radius:.65rem;
    background:var(--rolepath-accent-soft);
    color:var(--rolepath-accent);
    cursor:pointer;
    font:inherit;
    font-size:.7rem;
    font-weight:850;
}
.farm-trolleys-page__request-button:hover,
.farm-trolleys-page__mobile-request:hover { border-color:var(--rolepath-accent); }
.farm-trolleys-page__mobile-request { display:none; width:100%; }
.farm-trolleys-page__inventory-group { display:grid; gap:.45rem; }
.farm-trolleys-page__inventory-group + .farm-trolleys-page__inventory-group {
    margin-top:.5rem;
    padding-top:.7rem;
    border-top:1px solid var(--app-border);
}
.farm-trolleys-page__inventory-group > header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.5rem;
    padding:0 .15rem;
    color:var(--app-muted);
    font-size:.68rem;
    font-weight:850;
    letter-spacing:.025em;
    text-transform:uppercase;
}
.farm-trolleys-page__inventory-group > header strong {
    display:grid;
    place-items:center;
    min-width:1.5rem;
    height:1.5rem;
    padding:0 .3rem;
    border-radius:999px;
    background:var(--app-bg);
    color:var(--app-text);
    font-size:.68rem;
}
.farm-trolleys-page__inventory-group.is-delivery-note > header { color:#8a5a15; }
.farm-trolleys-page__inventory-group-list { display:grid; gap:.5rem; }
.farm-trolleys-page__group-empty {
    margin:0;
    padding:.65rem;
    border:1px dashed var(--app-border);
    border-radius:.65rem;
    color:var(--app-muted);
    font-size:.72rem;
    text-align:center;
}
.farm-trolleys-page__inventory-group.is-delivery-note .trolley-display--card:not(.is-selected) {
    opacity:.82;
    border-style:dashed;
}
.farm-trolleys-page__request-backdrop {
    position:fixed;
    inset:0;
    z-index:1200;
    display:grid;
    place-items:center;
    padding:1rem;
    background:rgb(10 22 36 / 55%);
    backdrop-filter:blur(2px);
}
.farm-trolleys-page__request-dialog {
    display:grid;
    width:min(38rem,100%);
    max-height:min(46rem,calc(100vh - 2rem));
    overflow:auto;
    gap:1rem;
    padding:1.1rem;
    border:1px solid var(--app-border);
    border-radius:1rem;
    background:var(--app-surface);
    box-shadow:0 1.4rem 4rem rgb(10 22 36 / 28%);
}
.farm-trolleys-page__request-dialog > header {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding-bottom:.8rem;
    border-bottom:1px solid var(--app-border);
}
.farm-trolleys-page__request-dialog > header span {
    color:var(--rolepath-accent);
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.farm-trolleys-page__request-dialog > header h2 { margin:.15rem 0 0; font-size:1.45rem; }
.farm-trolleys-page__request-dialog > header button {
    display:grid;
    place-items:center;
    width:2.2rem;
    height:2.2rem;
    border:1px solid var(--app-border);
    border-radius:.65rem;
    background:var(--app-surface);
    color:var(--app-text);
    cursor:pointer;
}
.farm-trolleys-page__request-select { display:grid; gap:.35rem; color:var(--app-text); font-size:.75rem; font-weight:800; }
.farm-trolleys-page__request-select select {
    width:100%;
    min-height:2.8rem;
    padding:.55rem .7rem;
    border:1px solid var(--app-border);
    border-radius:.7rem;
    background:var(--app-surface);
    color:var(--app-text);
    font:inherit;
}
.farm-trolleys-page__request-loading,
.farm-trolleys-page__request-empty {
    display:grid;
    place-items:center;
    gap:.4rem;
    min-height:8rem;
    color:var(--app-muted);
    text-align:center;
}
.farm-trolleys-page__request-empty i { color:#1c8b5b; font-size:1.6rem; }
.farm-trolleys-page__request-warning,
.farm-trolleys-page__request-error {
    display:flex;
    align-items:flex-start;
    gap:.7rem;
    padding:.85rem;
    border-radius:.75rem;
}
.farm-trolleys-page__request-warning {
    border:1px solid #e5b266;
    background:#fff6e8;
    color:#6e4305;
}
.farm-trolleys-page__request-warning > i { margin-top:.15rem; color:#b76b00; }
.farm-trolleys-page__request-warning p { margin:.35rem 0 0; font-size:.76rem; line-height:1.45; }
.farm-trolleys-page__request-error { border:1px solid #efb5bc; background:#fff0f1; color:#a31d2b; }
.farm-trolleys-page__request-dialog > footer {
    display:flex;
    justify-content:flex-end;
    gap:.55rem;
    padding-top:.85rem;
    border-top:1px solid var(--app-border);
}
.farm-trolleys-page__request-dialog > footer button {
    min-height:2.55rem;
    padding:.5rem .85rem;
    border-radius:.65rem;
    cursor:pointer;
    font:inherit;
    font-size:.76rem;
    font-weight:850;
}
.farm-trolleys-page__request-dialog > footer button.is-secondary {
    border:1px solid var(--app-border);
    background:var(--app-surface);
    color:var(--app-text);
}
.farm-trolleys-page__request-dialog > footer button.is-danger {
    border:1px solid #b74329;
    background:#c64012;
    color:#fff;
}
.farm-trolleys-page__request-dialog button:disabled { cursor:not-allowed; opacity:.55; }
@media (max-width:820px) {
    .farm-trolleys-page__mobile-request { display:block; margin-top:.45rem; }
    .farm-trolleys-page__request-dialog { align-self:end; width:100%; max-height:88vh; border-radius:1rem 1rem .25rem .25rem; }
    .farm-trolleys-page__request-dialog > footer { display:grid; grid-template-columns:1fr 1fr; }
}

.farm-trolleys-page__feedback.is-warning {
    border:1px solid #e5b266;
    background:#fff6e8;
    color:#6e4305;
}
.farm-trolleys-page__request-warning.is-safe {
    border-color:#a9c8e8;
    background:#eef6ff;
    color:#214f78;
}
.farm-trolleys-page__request-warning.is-safe > i { color:#3678b5; }
.farm-trolleys-page__request-acknowledgement {
    display:flex;
    align-items:flex-start;
    gap:.55rem;
    margin-top:.75rem;
    padding:.7rem;
    border:1px solid color-mix(in srgb,#b76b00 45%,transparent);
    border-radius:.65rem;
    background:rgb(255 255 255 / 58%);
    cursor:pointer;
    font-size:.75rem;
    font-weight:800;
    line-height:1.35;
}
.farm-trolleys-page__request-acknowledgement input {
    flex:0 0 auto;
    width:1.05rem;
    height:1.05rem;
    margin:.08rem 0 0;
    accent-color:#b74329;
}
