/* Zygo · acabados de las superficies operativas. Cargado después de las capas heredadas. */
:where(.zbiz, .zsub, .zygo-driver-shell, .zygo-zone-rep-page, .za-dashboard, .pos-wrap) *,
:where(.zbiz, .zsub, .zygo-driver-shell, .zygo-zone-rep-page, .za-dashboard, .pos-wrap) *::before,
:where(.zbiz, .zsub, .zygo-driver-shell, .zygo-zone-rep-page, .za-dashboard, .pos-wrap) *::after { box-sizing: border-box; }

/* Comercio: cada producto tiene espacio y una tarea inequívoca. */
.zbiz { gap: 24px; }
.zbiz .zbiz__hero { background: #11241a; border-color: #11241a; border-radius: 18px; box-shadow: 0 16px 40px rgba(12, 38, 23, .13); padding: clamp(22px, 3vw, 38px); }
.zbiz .zbiz__hero h1 { color: #fff; font-size: clamp(27px, 3vw, 38px); line-height: 1.13; }
.zbiz .zbiz__hero p { color: #c4d4c9; max-width: 48ch; }
.zbiz .zbiz__hero .zc-eyebrow { color: #b8f68c; }
.zbiz .zbiz__saldo { background: #fff; border-color: #fff; padding: 18px; }
.zbiz .zbiz__acciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zbiz .zbiz__accion { border-color: #dce7dd; border-radius: 16px; min-width: 0; padding: clamp(18px, 2vw, 24px); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.zbiz .zbiz__accion:hover { border-color: #9bcf91; box-shadow: 0 13px 28px rgba(20, 45, 26, .09); transform: translateY(-2px); }
.zbiz .zbiz__accion.is-primary { border-color: #aed796; box-shadow: none; }
.zbiz .zbiz__accion h3 { font-size: 18px; }
.zbiz .zbiz__accion footer .zc-btn { min-height: 42px; }
.zbiz .zbiz__ayuda { border-radius: 16px; }
.zsub .zsub__item, .zsub .zsub__billing { min-width: 0; }
.zsub .zc-table { width: 100%; }

/* Comprador: acciones delante de los comunicados, con blanco y contraste real. */
.zy-app .zy-client-actions { display: grid; gap: 10px; margin: 20px 0 28px; }
.zy-app .zy-client-action { align-items: center; background: #fff; border: 1px solid #dfe9e0; border-radius: 14px; color: #14271b; display: grid; gap: 12px; grid-template-columns: 42px minmax(0, 1fr) 16px; min-height: 72px; padding: 12px 14px; text-decoration: none; }
.zy-app .zy-client-action--primary { background: #133823; border-color: #133823; color: #fff; }
.zy-app .zy-client-action__icon { align-items: center; background: #ebf7e6; border-radius: 11px; color: #276f28; display: flex; height: 42px; justify-content: center; width: 42px; }
.zy-app .zy-client-action--primary .zy-client-action__icon { background: #bbed85; color: #133823; }
.zy-app .zy-client-action strong { color: inherit; display: block; font-size: 14px; font-weight: 800; line-height: 1.25; }
.zy-app .zy-client-action small { color: #657669; display: block; font-size: 11px; line-height: 1.35; margin-top: 3px; }
.zy-app .zy-client-action--primary small { color: #d6e9da; }
.zy-app .zy-client-action:hover { border-color: #78b664; }
.zy-app .zy-client-action:focus-visible { outline: 3px solid #80b95b; outline-offset: 2px; }

/* Repartidor: panel legible a la distancia de un móvil en operación. */
body.driver-panel-page .zygo-driver-shell { background: #f4f7f3; }
body.driver-panel-page .zygo-driver-hero { background: #153724; border-color: #153724; border-radius: 16px; box-shadow: 0 15px 36px rgba(15, 41, 25, .13); color: #fff; gap: 22px; padding: clamp(18px, 3vw, 30px); }
body.driver-panel-page .zygo-driver-hero h1 { color: #fff; font-size: clamp(26px, 3vw, 36px); }
body.driver-panel-page .zygo-driver-hero p { color: #d3e1d7; }
body.driver-panel-page .zygo-driver-eyebrow { background: #b9ef85; border: 0; color: #163820; }
body.driver-panel-page .zygo-driver-hero-card { border-radius: 12px; }
body.driver-panel-page .zygo-driver-kpi, body.driver-panel-page .zygo-driver-panel { border-radius: 12px; box-shadow: 0 3px 14px rgba(15, 41, 25, .04); }
body.driver-panel-page .zygo-driver-tabs a { border-radius: 9px; min-height: 44px; }
body.driver-panel-page .zygo-driver-kpi strong { overflow-wrap: anywhere; }

/* Administración y representante: métricas estables y filtros sin desbordes. */
body.admin-page .za-dashboard, body.admin-page .zygo-zone-rep-page { min-width: 0; }
body.admin-page .za-dashboard__metrics { gap: 14px; }
body.admin-page .za-dashboard__overview { grid-template-columns: minmax(290px, .38fr) minmax(0, 1fr); }
body.admin-page .za-dashboard__overview > *, body.admin-page .za-dashboard__metrics > *, body.admin-page .zygo-zone-rep-grid > * { min-width: 0; }
body.admin-page .zygo-zone-rep-page .zygo-zone-period-form { display: flex; flex-wrap: wrap; gap: 8px; }
body.admin-page .zygo-zone-rep-page .zygo-zone-period-form .form-control { min-width: 135px; max-width: 190px; }
body.admin-page .zygo-zone-rep-page .zygo-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; }
body.admin-page .zygo-zone-rep-page .table-responsive { max-width: 100%; overflow-x: auto; }
body.admin-page .zygo-zone-rep-page .zygo-control-stat { min-width: 0; }
body.admin-page .zygo-zone-rep-page .zygo-control-value { overflow-wrap: anywhere; }

/* Caja: espacio para productos y ticket sin sacrificar pantallas compactas. */
body.commerce-pos-pwa-page .pos-wrap { min-width: 0; }
body.commerce-pos-pwa-page .pos-shell { grid-template-columns: minmax(0, 1fr) minmax(360px, 39%); }
body.commerce-pos-pwa-page .pos-shell > *, body.commerce-pos-pwa-page .pos-toolbar > * { min-width: 0; }
body.commerce-pos-pwa-page .pos-workspace-head { min-width: 0; }
body.commerce-pos-pwa-page .pos-tabs { min-width: 0; overflow-x: auto; }
body.commerce-pos-pwa-page .pos-product { min-width: 0; }
body.commerce-pos-pwa-page .pos-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
body.commerce-pos-pwa-page .pos-input:focus-visible, body.commerce-pos-pwa-page button:focus-visible { outline: 3px solid #5ba641; outline-offset: 2px; }

@media (max-width: 1100px) {
    body.commerce-pos-pwa-page .pos-shell { grid-template-columns: minmax(0, 1fr) minmax(360px, 43%); }
    body.admin-page .za-dashboard__overview { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
    body.commerce-pos-pwa-page .pos-shell { grid-template-columns: minmax(0, 1fr); }
    body.admin-page .zygo-zone-rep-page .zygo-zone-rep-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .zbiz .zbiz__acciones { grid-template-columns: minmax(0, 1fr); }
    .zbiz .zbiz__hero { grid-template-columns: minmax(0, 1fr); }
    body.admin-page .za-dashboard__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.admin-page .zygo-zone-rep-page .zygo-zone-period-form .form-control { max-width: none; flex: 1 1 130px; }
    body.driver-panel-page .zygo-driver-hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 430px) {
    body.admin-page .za-dashboard__metrics { grid-template-columns: minmax(0, 1fr); }
    body.driver-panel-page .zygo-driver-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.commerce-pos-pwa-page .pos-shell { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .zbiz .zbiz__accion { transition: none; }
    .zbiz .zbiz__accion:hover { transform: none; }
}
