/* MatchLab Gestión · Sistema visual común V3 · compacto */
:root{
  --ml-bg:#061019;
  --ml-top:#08131d;
  --ml-surface:#0b1722;
  --ml-surface-2:#0e1c29;
  --ml-surface-3:#112231;
  --ml-line:#20313f;
  --ml-line-soft:#172733;
  --ml-text:#f2f6f4;
  --ml-muted:#93a5b1;
  --ml-green:#2fc875;
  --ml-green-dark:#123c29;
  --ml-danger:#e26767;
  --ml-warning:#e8bf62;
  --ml-radius:14px;
  --ml-radius-sm:10px;
  --ml-shadow:0 12px 32px rgba(0,0,0,.18);
}
*{box-sizing:border-box}
html{background:var(--ml-bg)}
body{background:var(--ml-bg)!important;color:var(--ml-text)!important;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;letter-spacing:0!important}
main{max-width:1320px!important;margin:0 auto!important}
.hidden{display:none!important}

/* Cabeceras: mismas proporciones en toda la suite */
.topbar,.module-header{background:rgba(8,19,29,.97)!important;border-bottom:1px solid var(--ml-line)!important;box-shadow:none!important;backdrop-filter:blur(10px);min-height:68px!important}
.topbar{padding:10px 18px!important}
.module-header{padding:12px 18px!important}
.brand,.brand-row,.mini-brand{gap:10px!important}
.brand strong,.mini-brand strong{font-size:18px!important;letter-spacing:-.2px!important}
.brand span,.brand small,.mini-brand span{font-size:11px!important;color:var(--ml-muted)!important;letter-spacing:.45px!important}
.logo,.login-logo{border-radius:10px!important}
.eyebrow,.dialog-kicker{font-size:10px!important;line-height:1.2!important;letter-spacing:1.25px!important;color:var(--ml-green)!important;font-weight:800!important}
.version{font-size:10px!important;opacity:.46!important}

/* Tipografía compacta */
h1{letter-spacing:-.75px!important}
h2{letter-spacing:-.55px!important}
h3{letter-spacing:-.25px!important}
p{line-height:1.42}
.muted{color:var(--ml-muted)!important}

/* Superficies */
.panel,.card,.subpanel,.chart-card,.green-admin-card,.config-card,.external-work-card,.login-card,.person-dialog-card,.dialog-card,.module-card,.coord-module-card,.issue-central-card,.external-group,.external-single,.external-sector{
  background:var(--ml-surface)!important;
  border:1px solid var(--ml-line)!important;
  box-shadow:none!important;
}
.panel,.card,.subpanel,.chart-card,.green-admin-card,.external-work-card{border-radius:var(--ml-radius)!important}
.dialog-card,.person-dialog-card,.login-card{border-radius:16px!important;box-shadow:var(--ml-shadow)!important}

/* Botones: un mismo lenguaje */
button,.btn,.primary-action,.secondary-action,.back-button,.problem-btn{font-family:inherit!important}
.btn,.primary-action,.secondary-action,.back-button,.problem-btn{
  min-height:40px!important;
  border-radius:var(--ml-radius-sm)!important;
  font-weight:760!important;
  letter-spacing:.1px!important;
  box-shadow:none!important;
}
.btn.primary,.primary-action,.btn.success{
  background:var(--ml-green)!important;
  border:1px solid var(--ml-green)!important;
  color:#04140c!important;
}
.btn.ghost,.secondary-action,.back-button{
  background:var(--ml-surface-2)!important;
  border:1px solid var(--ml-line)!important;
  color:var(--ml-text)!important;
}
.btn.danger,.problem-btn,.issue-report-btn,.issue-general{
  background:#2a1719!important;
  border:1px solid #653438!important;
  color:#ffc9c9!important;
}
.btn.accent{background:var(--ml-surface-3)!important;border:1px solid #315166!important;color:var(--ml-text)!important}
.btn:hover,.primary-action:hover,.secondary-action:hover{filter:brightness(1.06)}
.btn.big{min-height:48px!important;font-size:15px!important}
.btn.compact,.primary-action.compact,.secondary-action.compact{min-height:34px!important;padding:7px 11px!important;font-size:12px!important}

/* Formularios */
input,select,textarea{
  background:#07131d!important;
  color:var(--ml-text)!important;
  border:1px solid var(--ml-line)!important;
  border-radius:10px!important;
  min-height:40px!important;
  box-shadow:none!important;
}
textarea{min-height:82px!important}
input:focus,select:focus,textarea:focus{outline:none!important;border-color:#3b7659!important;box-shadow:0 0 0 3px rgba(47,200,117,.10)!important}
label{color:#c9d5dc!important;font-weight:650!important}

/* Navegación interna: horizontal, sobria y compacta */
.admin-nav,.tabs{gap:6px!important;margin:10px 0 14px!important;padding-bottom:4px!important}
.admin-nav .module,.tabs button,.tab-btn{
  min-height:38px!important;
  border-radius:10px!important;
  padding:8px 12px!important;
  background:var(--ml-surface)!important;
  border:1px solid var(--ml-line)!important;
  color:var(--ml-text)!important;
}
.admin-nav .module.active,.tabs button.active,.tab-btn.active{
  background:var(--ml-green-dark)!important;
  border-color:#2b8957!important;
}
.admin-nav .module>span:first-child{display:none!important}
.admin-nav .module>span:last-child,.module-grid .module>span{display:none!important}
.admin-nav .module strong{font-size:13px!important;margin:0!important}

/* Tarjetas de acceso */
.module-grid{gap:9px!important;margin:12px 0!important}
.module,.module-card,.coord-module-card{
  border-radius:12px!important;
  min-height:72px!important;
  padding:13px!important;
  background:var(--ml-surface)!important;
}
.module-card:hover,.coord-module-card:hover,.module:hover{border-color:#365064!important;background:var(--ml-surface-2)!important}
.module-card h3,.coord-module-card strong,.module strong{font-size:15px!important}
.module-code{font-size:10px!important;color:var(--ml-muted)!important}
.module-enter{font-size:11px!important;color:var(--ml-green)!important}

/* Resúmenes / KPIs */
.stats,.kpis,.cash-kpis,.issues-kpis,.stock-alerts,.green-admin-kpis{gap:8px!important}
.stats>div,.kpis>div,.cash-kpis>div,.issues-kpis>div,.stock-alerts>div,.green-admin-kpis>div{
  background:var(--ml-surface)!important;
  border:1px solid var(--ml-line)!important;
  border-radius:11px!important;
  padding:10px 12px!important;
  box-shadow:none!important;
}
.stats strong,.kpis strong,.cash-kpis strong,.issues-kpis strong,.stock-alerts strong,.green-admin-kpis strong{font-size:23px!important}

/* Evitar bloques de texto que parecen manuales dentro de la operación */
.ml-instruction,.instruction-box,.workflow-note{display:none!important}

/* Estados sí quedan visibles */
.warn,.alert,.personnel-alert,.inline-message,.issue-state-banner,.archive-warning,.external-status,.issues-msg{
  border-radius:10px!important;
  box-shadow:none!important;
}
.pill,.badge,.status-chip,.user-pill{border-radius:999px!important;box-shadow:none!important}

/* Diálogos */
dialog{background:transparent!important}
dialog::backdrop{background:rgba(1,7,12,.76)!important;backdrop-filter:blur(3px)}
.dialog-head,.dialog-heading{padding-bottom:10px!important;margin-bottom:12px!important;border-bottom:1px solid var(--ml-line-soft)!important}
.dialog-actions,.action-row{gap:8px!important}
.x,.icon-close,.dialog-close,.window-control{border-radius:9px!important;background:var(--ml-surface-2)!important;border:1px solid var(--ml-line)!important;color:var(--ml-text)!important}

/* Limpieza tercerizada: extrema simplicidad */
.cleaning-choice-card{background:var(--ml-surface)!important;border:1px solid var(--ml-line)!important;border-radius:16px!important;box-shadow:var(--ml-shadow)!important}
.cleaning-branch-grid{gap:10px!important}
.cleaning-branch{min-height:92px!important;border-radius:12px!important;background:var(--ml-surface-2)!important;border:1px solid var(--ml-line)!important;box-shadow:none!important}
.cleaning-branch strong{font-size:17px!important}
.external-cleaning-app{max-width:980px!important;margin:0 auto!important}
.external-sector-groups{gap:10px!important}
.external-group{padding:13px!important;border-radius:12px!important}
.external-group-head{margin-bottom:9px!important}
.external-subgrid{gap:7px!important}
.external-sector,.external-single{min-height:48px!important;border-radius:10px!important;padding:10px 12px!important;background:var(--ml-surface-2)!important}
.external-sector input,.external-single input{min-height:auto!important}
.external-observation{margin-top:12px!important}
.external-selection-bar{position:sticky;top:76px;z-index:4;background:var(--ml-top)!important;border:1px solid var(--ml-line)!important;border-radius:10px!important;padding:9px 11px!important}

/* Responsive común */
@media(max-width:760px){
  .topbar,.module-header{padding:9px 12px!important;min-height:60px!important}
  main{width:min(100% - 16px,1320px)!important;padding-top:10px!important}
  .hero{padding:14px!important;border-radius:14px!important}
  .hero h1,.hero h2{font-size:27px!important}
  .module-grid{grid-template-columns:1fr 1fr!important}
  .module,.module-card,.coord-module-card{min-height:68px!important;padding:11px!important}
  .dialog-card,.person-dialog-card{padding:14px!important;border-radius:14px!important}
  .external-selection-bar{top:64px}
}
@media(max-width:460px){
  .module-grid{grid-template-columns:1fr!important}
  .stats,.kpis,.cash-kpis,.issues-kpis,.stock-alerts,.green-admin-kpis{grid-template-columns:1fr 1fr!important}
}

/* v3.2 · filtros seguros */
.filters{grid-template-columns:repeat(4,minmax(0,1fr)) auto!important;align-items:end!important}
.filter-actions{display:flex;align-items:flex-end;height:100%}
.filter-actions .btn{min-height:43px;white-space:nowrap}
.empty .empty-clear-filters{margin-top:12px}
@media(max-width:1050px){.filters{grid-template-columns:1fr 1fr!important}.filter-actions{grid-column:span 2}.filter-actions .btn{width:100%}}
@media(max-width:600px){.filters{grid-template-columns:1fr!important}.filter-actions{grid-column:auto}.filter-actions .btn{width:100%}}

/* v3.3 · Archivo recuperable */
.archive-toolbar{display:grid;grid-template-columns:minmax(260px,520px);gap:8px;margin:0 0 12px}
.archive-toolbar label{margin:0}
.archived-card{opacity:.96}
.archive-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#15283a;border:1px solid #3b5568;color:#b9c9d3;font-size:11px;font-weight:900}
.archive-status{background:#172a38!important;border-color:#415d70!important;color:#d5e0e6!important}
.archive-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 16px;padding:12px 14px;border:1px solid #3f596b;border-radius:12px;background:#102130}
.archive-banner>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.archive-banner strong{font-size:14px;color:#eef6fb}
.archive-banner span{font-size:12px;color:#9fb0bb;line-height:1.35}
@media(max-width:650px){.archive-toolbar{grid-template-columns:1fr}.archive-banner{align-items:stretch;flex-direction:column}.archive-banner .btn{width:100%}}
