/* Palette sampled from solfrut.com.ar (brand green + slate neutrals). */
:root{
  --bg:#f6f7f6; --surface:#ffffff; --surface-2:#f0f3f2; --border:#e1e5e3;
  --text:#24282a; --text-dim:#5f727f; --text-faint:#96a3ab;
  --accent:#4c8b2c; --accent-dark:#38701e; --accent-soft:rgba(76,139,44,0.10); --accent-text:#356017;
  --ok:#4c8b2c; --ok-soft:rgba(76,139,44,0.10);
  --warn:#a97a1a; --warn-soft:rgba(169,122,26,0.10);
  --danger:#a8452c; --danger-soft:rgba(168,69,44,0.10);
  --neutral:#7c8a90; --neutral-soft:rgba(124,138,144,0.10);
  --radius:8px;
  --shadow:0 1px 2px rgba(36,40,42,0.04), 0 1px 1px rgba(36,40,42,0.03);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#15181a; --surface:#1c2023; --surface-2:#22262a; --border:#2d3236;
    --text:#eaece9; --text-dim:#9aa7ac; --text-faint:#657177;
    --accent:#7cb85a; --accent-dark:#8fca6c; --accent-soft:rgba(124,184,90,0.16); --accent-text:#a6d688;
    --ok:#7cb85a; --ok-soft:rgba(124,184,90,0.16);
    --warn:#cf9c3f; --warn-soft:rgba(207,156,63,0.14);
    --danger:#d17558; --danger-soft:rgba(209,117,88,0.14);
    --neutral:#8b9aa1; --neutral-soft:rgba(139,154,161,0.14);
    --shadow:0 1px 2px rgba(0,0,0,0.25);
  }
}
:root[data-theme="dark"]{
  --bg:#15181a; --surface:#1c2023; --surface-2:#22262a; --border:#2d3236;
  --text:#eaece9; --text-dim:#9aa7ac; --text-faint:#657177;
  --accent:#7cb85a; --accent-dark:#8fca6c; --accent-soft:rgba(124,184,90,0.16); --accent-text:#a6d688;
  --ok:#7cb85a; --ok-soft:rgba(124,184,90,0.16);
  --warn:#cf9c3f; --warn-soft:rgba(207,156,63,0.14);
  --danger:#d17558; --danger-soft:rgba(209,117,88,0.14);
  --neutral:#8b9aa1; --neutral-soft:rgba(139,154,161,0.14);
  --shadow:0 1px 2px rgba(0,0,0,0.25);
}
*{box-sizing:border-box;}
[hidden]{ display:none !important; }
body{ margin:0; background:var(--bg); color:var(--text);
  font-family:'IBM Plex Sans', system-ui, -apple-system, sans-serif; font-size:15px; line-height:1.5; }
.num{ font-family:'IBM Plex Mono','SFMono-Regular',monospace; font-variant-numeric: tabular-nums; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 20px 64px; }

header.top{ padding:22px 20px 18px; margin-bottom:8px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.brand{ display:flex; align-items:baseline; gap:10px; }
.brand .mark{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:20px; letter-spacing:0.01em; color:var(--accent-dark); }
.brand .sub{ color:var(--text-dim); font-size:13px; }

#auth-area{ display:flex; align-items:center; gap:10px; }
.link-btn{ background:none; border:none; color:var(--accent-dark); font-family:inherit; font-size:13px;
  font-weight:600; cursor:pointer; padding:6px 4px; }
.link-btn:hover{ text-decoration:underline; }
.user-chip{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--text-dim); }
.user-chip .who{ color:var(--text); font-weight:600; }

.modal-backdrop{ position:fixed; inset:0; background:rgba(20,23,20,0.45); display:flex;
  align-items:center; justify-content:center; z-index:100; padding:20px; }
.modal{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px; width:100%; max-width:320px; box-shadow:0 12px 32px rgba(20,23,20,0.18); }
.modal h2{ margin:0 0 16px; font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; }
.field{ display:block; margin-bottom:14px; font-size:12.5px; color:var(--text-dim); }
.field span{ display:block; margin-bottom:5px; font-weight:600; }
.field select, .field input{ width:100%; background:var(--bg); border:1px solid var(--border); border-radius:6px;
  padding:8px 10px; font-family:inherit; font-size:14px; color:var(--text); }
.field select:focus, .field input:focus{ outline:none; border-color:var(--accent); }
.login-error{ background:var(--danger-soft); color:var(--danger); border:1px solid var(--danger);
  border-radius:6px; padding:8px 10px; font-size:12px; margin-bottom:12px; }
.modal-actions{ display:flex; justify-content:flex-end; gap:8px; }
.btn-primary{ background:var(--accent); color:#fff; border:none; border-radius:var(--radius);
  padding:8px 16px; font-family:inherit; font-size:13.5px; font-weight:600; cursor:pointer; }
.btn-primary:hover{ background:var(--accent-dark); }
.btn-primary:disabled{ opacity:0.5; cursor:not-allowed; }
.btn-secondary{ background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:var(--radius);
  padding:8px 16px; font-family:inherit; font-size:13.5px; font-weight:600; cursor:pointer; }
.btn-secondary:hover{ border-color:var(--accent); color:var(--accent-dark); }
.btn-secondary.confirming{ background:var(--danger-soft); border-color:var(--danger); color:var(--danger); }

.modal.wide{ max-width:520px; }
.field-static{ font-size:13px; color:var(--text-dim); margin-bottom:14px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

/* ---- Agregar actividad button (real, replaces the disabled placeholder) ---- */
.btn-add{ background:none; border:1px solid var(--accent); color:var(--accent-dark); border-radius:var(--radius);
  padding:6px 12px; font-size:12px; font-family:inherit; font-weight:600; cursor:pointer; margin-top:10px; }
.btn-add:hover{ background:var(--accent-soft); }

/* ---- PMP actions / edit mode ---- */
#pmp-actions{ display:flex; justify-content:flex-end; gap:8px; margin:-10px 0 18px; flex-wrap:wrap; }
.pmp-save-msg{ font-size:12px; color:var(--text-dim); margin-right:auto; align-self:center; }
.pmp-save-msg.err{ color:var(--danger); }
table.pmp input.cell-input{ width:74px; background:var(--bg); border:1px solid var(--border); border-radius:5px;
  padding:5px 6px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; text-align:right; color:var(--text); }
table.pmp input.cell-input:focus{ outline:none; border-color:var(--accent); }
.add-row{ padding:10px 16px; display:flex; align-items:center; gap:8px; }
.add-row select{ flex:1; max-width:320px; background:var(--surface); border:1px solid var(--border); border-radius:6px;
  padding:6px 8px; font-family:inherit; font-size:12.5px; color:var(--text); }

nav.tabs{ display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:28px; padding:0 20px; }
nav.tabs button{ background:none; border:none; color:var(--text-dim); font-family:inherit; font-size:14.5px;
  padding:11px 4px; margin-right:24px; cursor:pointer; border-bottom:2px solid transparent; font-weight:500; }
nav.tabs button.active{ color:var(--text); border-bottom-color:var(--accent); font-weight:600; }
nav.tabs button:hover{ color:var(--text); }

.view{ display:none; padding:0 20px; } .view.active{ display:block; }

.view-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:22px; flex-wrap:wrap; }
.view-head h1{ font-family:'Space Grotesk', sans-serif; font-size:22px; font-weight:600; margin:0 0 4px; display:flex; align-items:center; gap:10px; }
.view-head .period{ color:var(--text-dim); font-size:13.5px; }
.btn{ background:var(--accent); color:#fff; border:none; border-radius:var(--radius);
  padding:9px 14px; font-family:inherit; font-size:13.5px; font-weight:600; cursor:not-allowed;
  opacity:0.45; display:inline-flex; align-items:center; gap:7px; }
.btn-tip{ font-size:11.5px; color:var(--text-faint); margin-top:5px; text-align:right; }
.btn-ghost{ background:none; border:1px dashed var(--border); color:var(--text-faint); border-radius:var(--radius);
  padding:6px 10px; font-size:12px; font-family:inherit; cursor:not-allowed; margin-top:10px; }

.week-nav{ display:flex; gap:8px; }
.nav-btn{ background:var(--surface); border:1px solid var(--border); color:var(--text-dim); border-radius:var(--radius);
  padding:7px 12px; font-family:inherit; font-size:12.5px; cursor:pointer; box-shadow:var(--shadow); }
.nav-btn:hover{ border-color:var(--accent); color:var(--accent-dark); }

.loading, .empty-state{ padding:40px 16px; text-align:center; color:var(--text-faint); font-size:13.5px; }
.empty-state{ border:1px dashed var(--border); border-radius:var(--radius); }
.error-state{ padding:16px; border:1px solid var(--danger); background:var(--danger-soft); color:var(--danger);
  border-radius:var(--radius); font-size:13px; }

.estado-badge{ font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:999px; border:1px solid; white-space:nowrap; }
.estado-badge.abierto{ background:var(--ok-soft); color:var(--ok); border-color:var(--ok); }
.estado-badge.congelado{ background:var(--neutral-soft); color:var(--neutral); border-color:var(--neutral); }

/* ---- Sala block (Programación) ---- */
.sala-block{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  margin-bottom:16px; overflow:hidden; box-shadow:var(--shadow); }
.sala-head{ padding:13px 16px; display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--border); gap:14px; flex-wrap:wrap; }
.sala-head-left{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.sala-head .name{ font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:15px; }

.status-pill{ display:inline-flex; align-items:center; border-radius:999px; font-size:11.5px; font-weight:600;
  padding:5px 12px; border:1px solid; }
.status-pill.op{ background:var(--ok-soft); color:var(--ok); border-color:var(--ok); }
.status-pill.pa{ background:var(--neutral-soft); color:var(--neutral); border-color:var(--neutral); }
.status-pill.mt{ background:var(--warn-soft); color:var(--warn); border-color:var(--warn); }

.turno-filter{ display:inline-flex; gap:5px; }
.turno-filter .chip{ background:var(--surface); border:1px solid var(--border); color:var(--text-faint);
  border-radius:999px; padding:4px 10px; font-family:inherit; font-size:11px; font-weight:600;
  cursor:pointer; letter-spacing:0.01em; }
.turno-filter .chip:hover{ border-color:var(--accent); color:var(--text); }
.turno-filter .chip.active{ background:var(--accent-soft); border-color:var(--accent); color:var(--accent-dark); }

/* Larger and clearer than before, but still visibly one step below .sala-head .name */
.turno-label{ padding:14px 16px 6px; font-size:13.5px; color:var(--text); font-weight:700; letter-spacing:0.01em; }

.grid7{ display:grid; grid-template-columns:repeat(7, minmax(112px,1fr)); overflow-x:auto; }
.daycol{ border-right:1px solid var(--border); }
.daycol:last-child{ border-right:none; }
.daycol .dname{ font-size:11px; color:var(--text-faint); font-weight:600; letter-spacing:0.02em; padding:8px 10px 2px; }
.daycol .ddate{ font-size:11px; color:var(--text-faint); padding:0 10px 8px; border-bottom:1px solid var(--border); }
.daycol .dbody{ padding:10px; min-height:66px; }
.entry{ font-size:12.5px; padding:6px 8px; border-radius:6px; margin-bottom:6px; line-height:1.35; }
.entry.prod{ background:var(--accent-soft); color:var(--accent-text); border:1px solid transparent; }
.entry.status{ background:var(--surface-2); color:var(--text-dim); border:1px solid var(--border); font-style:italic; }
.empty-day{ color:var(--text-faint); font-size:12px; }

.sala-banner{ padding:26px 14px; text-align:center; color:var(--text-dim); font-size:13px; }
.sala-banner.pa{ color:var(--neutral); } .sala-banner.mt{ color:var(--warn); }
.turno-filter-empty{ padding:22px 16px; text-align:center; color:var(--text-faint); font-size:12.5px; }

.sala-foot{ padding:8px 16px 14px; }

/* ---- PMP mensual ---- */
.kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:26px; }
.kpi{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; box-shadow:var(--shadow); }
.kpi .lbl{ font-size:12px; color:var(--text-dim); margin-bottom:6px; }
.kpi .val{ font-family:'IBM Plex Mono',monospace; font-size:21px; font-weight:600; color:var(--accent-dark); }
.kpi .val small{ font-size:11.5px; color:var(--text-dim); font-weight:400; display:block; margin-top:3px; line-height:1.35; font-family:'IBM Plex Sans',sans-serif; }

.sala-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:18px; overflow:hidden; box-shadow:var(--shadow); }
.sala-card-head{ padding:13px 16px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:baseline; }
.sala-card-head h3{ font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:600; margin:0; }
.sala-card-head .sub{ font-size:12px; color:var(--text-dim); }

table.pmp{ width:100%; border-collapse:collapse; font-size:12.8px; }
table.pmp th, table.pmp td{ padding:9px 12px; border-bottom:1px solid var(--border); text-align:right; white-space:nowrap; }
table.pmp th:first-child, table.pmp td:first-child{ text-align:left; white-space:normal; min-width:220px; }
table.pmp thead th{ color:var(--text-dim); font-weight:500; font-size:11.5px; }
table.pmp thead th .wknum{ display:block; color:var(--text-faint); font-size:10.5px; margin-top:1px; }
table.pmp td.num, table.pmp th.num{ font-family:'IBM Plex Mono',monospace; }
table.pmp td.dim{ color:var(--text-faint); }
tr.subtotal td{ font-weight:600; border-top:1px solid var(--border); background:var(--surface-2); }
.table-scroll{ overflow-x:auto; }
.card-body-pad{ padding:0 16px 14px; }
.empty-sala{ padding:20px 16px; color:var(--text-faint); font-size:13px; }
