/* FarmaTurnos 2026: cuadrante semanal, employee rows x seven days. */

/* Presencia real: pequeña marca verde sobre el turno en todas las vistas. */
#content .month-chip.is-present,
#content .wm-shift.is-present,
#content .mobile-shift.is-present {
  position:relative;
  overflow:visible;
  outline:2px solid #15945f;
  outline-offset:0;
  z-index:2;
}
#content .shift-block.is-present {
  overflow:visible;
  outline:2px solid #15945f;
  outline-offset:0;
  z-index:6;
}
#content .month-chip.is-present:focus-visible,
#content .wm-shift.is-present:focus-visible,
#content .mobile-shift.is-present:focus-visible,
#content .shift-block.is-present:focus-visible {
  outline:3px solid var(--focus-ring,#2474ac);
  outline-offset:3px;
}
#content .shift-presence-tick {
  position:absolute;
  top:-7px;
  right:-6px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:17px;
  height:17px;
  padding:0;
  border:2px solid var(--surface,#fff);
  border-radius:50%;
  background:#127e50;
  color:#fff;
  font:800 11px/1 system-ui,sans-serif;
  text-shadow:none;
  box-shadow:0 1px 4px rgba(0,0,0,.16);
  pointer-events:none;
  z-index:8;
}
#content .month-chip .shift-presence-tick {
  width:15px;
  height:15px;
  top:-6px;
  right:-7px;
  font-size:10px;
}
@media print {
  #content .shift-presence-tick {box-shadow:none;border-color:#fff;print-color-adjust:exact}
}

.planner-page.wm-compact-mode{gap:11px;min-width:0}
.wm-compact-mode .planner-head{align-items:center}
.wm-compact-mode .planner-head .eyebrow{font-size:11px;letter-spacing:.1em}
.wm-compact-mode .planner-head h1{font-size:clamp(21px,2vw,28px);gap:9px;flex-wrap:wrap}
.wm-compact-mode .planner-head>div:first-child>p:last-child{font-size:12px;max-width:650px}
.wm-compact-mode .page-actions{gap:5px}
.wm-compact-mode .page-actions .button{padding:6px 9px;min-height:33px;font-size:12px}
.wm-compact-mode .week-strip{overflow:visible;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:0}
.wm-compact-mode .week-pill{width:100%;min-width:0;padding:6px 10px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:5px}
.wm-compact-mode .week-pill small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-compact-mode .week-pill b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wm-compact-mode .planner-summary{display:flex;min-width:0;overflow:hidden}
.wm-compact-mode .planner-metric{display:flex;align-items:center;justify-content:space-between;min-height:56px;flex:1 1 25%;
  padding:9px 12px;gap:6px;border-bottom:0}
.wm-compact-mode .planner-metric>span{order:0;flex:1;font-size:11px;line-height:1.3;min-width:0}
.wm-compact-mode .planner-metric>span svg{display:none}
.wm-compact-mode .planner-metric strong{order:1;flex:0 0 auto;font-size:19px;letter-spacing:-.035em}
.wm-compact-mode .planner-metric small{display:none}
.wm-compact-mode .planner-command{padding:8px 11px;gap:8px}
.wm-compact-mode .planner-command .date-label{min-width:170px}
.wm-compact-mode .planner-card{min-width:0;border-radius:13px;border-color:#cbdde2;box-shadow:0 10px 35px rgba(18,60,70,.06)}
.wm-compact-mode .planner-card-head{padding:9px 13px}
.wm-compact-mode .planner-card-head small{font-size:12px}
.wm-compact-mode .planner-footnote{padding:8px 13px}
.wm-compact-mode .warning-banner{padding:9px 13px}
.wm-compact-mode .week-context{margin-bottom:0}
.wm-wrap{width:100%;max-width:100%;min-width:0;overflow:hidden;background:#fff;container-type:inline-size}
.wm-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px;background:linear-gradient(95deg,#103c4b 0%,#145467 100%);color:#fff}
.wm-intro-title{display:flex;align-items:center;gap:10px;min-width:0}
.wm-intro-mark{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:rgba(255,255,255,.13)}
.wm-intro-mark svg{width:19px;height:19px}
.wm-intro-title>div:last-child{display:grid;gap:2px;min-width:0}
.wm-intro-title strong{font-size:14px;font-weight:800}
.wm-intro-title small{font-size:12px;color:#c5e2e7}
.wm-key{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px 11px}
.wm-key>span{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#def1f3;white-space:nowrap}
.wm-key i{width:10px;height:10px;border-radius:3px;flex:none}
.wm-key-m{background:#e6a9ed}
.wm-key-t{background:#34d5d8}
.wm-key-n{background:#b2bbee}
.wm-key .wm-key-warning{color:#ffdf9d}
.wm-key-warning svg{width:12px;height:12px}
.wm-table{width:100%;max-width:100%;min-width:0;table-layout:fixed;border-spacing:0;border-collapse:separate;
  font-variant-numeric:tabular-nums;background:#fff}
.wm-col-person{width:clamp(103px,12.7%,154px)}
.wm-col-day{width:auto}
.wm-table th,.wm-table td{box-sizing:border-box;min-width:0;overflow:hidden;border-right:1px solid #e1e9ee;border-bottom:1px solid #e4ebef}
.wm-table tr>th:last-child,.wm-table tr>td:last-child{border-right:0}
.wm-first-head{padding:11px 8px;text-align:left;vertical-align:middle;background:#eef3f6;color:#2b5366}
.wm-first-head span{display:block;font-size:10px;font-weight:850;letter-spacing:.095em}
.wm-first-head small{display:block;margin-top:5px;font-size:10px;color:#637f8c;font-weight:700}
.wm-day-head{height:80px;text-align:center;background:#eef3f6;position:relative;vertical-align:top;padding:8px 3px}
.wm-day-head.is-today{background:#d9eee8;box-shadow:inset 0 4px #0e9c7d}
.wm-day-head.is-closed{background:#f3f5f4;color:#87949b}
.wm-day-head.has-alert:after{content:"";position:absolute;right:5px;top:5px;width:6px;height:6px;border-radius:100%;background:#d97726}
.wm-day-ident{display:flex;align-items:baseline;justify-content:center;gap:5px;color:#2b526b}
.wm-day-ident span{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.wm-day-ident strong{font-size:22px;font-weight:850;line-height:1;letter-spacing:-.035em;color:#173e57}
.wm-day-head.is-today .wm-day-ident strong{color:#077f62}
.wm-day-hours{display:flex;justify-content:center;flex-wrap:wrap;gap:0 4px;margin-top:5px;color:#557385}
.wm-day-hours span{font-size:10px;line-height:1.35;white-space:nowrap}
.wm-day-hours b{font-size:11px;color:#89969d}
.wm-day-count{display:block;font-size:10px;color:#6f8792;margin-top:4px}
.wm-day-count span{color:#b95c0c;font-weight:900}
.wm-person-row{height:66px}
.wm-person-row.wm-alternate{background:#fafcfd}
.wm-person-row:hover,.wm-person-row:hover .wm-person{background:#f0f7fa}
.wm-person{padding:9px 5px 9px 9px;text-align:left;background:#fff;vertical-align:middle}
.wm-person-row.wm-alternate .wm-person{background:#fafcfd}
.wm-person-dot{float:left;display:grid;place-items:center;margin-right:7px;width:27px;height:27px;
  background:var(--wm-person,#0e9674);color:#fff;border-radius:8px;font-size:11px;font-weight:850}
.wm-person-identity{display:flex;flex-direction:column;min-width:0;gap:0;overflow:hidden}
.wm-person-identity strong{font-size:12px;line-height:1.2;color:#23445c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wm-person-identity small{font-size:10px;color:#758993;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wm-person-identity em{font-size:11px;font-style:normal;font-weight:800;color:#0b6f50;white-space:nowrap}
.wm-cell{padding:3px 3px;vertical-align:middle;position:relative;transition:background-color 120ms ease}
.wm-day-closed{background:repeating-linear-gradient(135deg,rgba(65,91,103,.017) 0 5px,rgba(65,91,103,.045) 5px 10px)}
.wm-cell-inner{display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:58px;gap:3px;position:relative}
.wm-shift{appearance:none;border:1px solid transparent;display:flex;align-items:center;justify-content:center;
  gap:3px;width:100%;min-height:30px;padding:3px 2px;border-radius:6px;
  text-align:center;position:relative;transition:transform 120ms ease,filter 120ms ease,box-shadow 120ms ease}
.wm-shift:focus-visible{outline:2px solid #2474ac;outline-offset:1px}
.wm-shift[draggable="true"]{cursor:grab}
.wm-shift:hover{z-index:2;transform:translateY(-1px);filter:saturate(1.15);box-shadow:0 3px 7px rgba(20,53,79,.14)}
.wm-shift-type{font-weight:900;font-size:10px;min-width:14px;min-height:16px;display:grid;place-items:center;flex:none;
  border-right:1px solid currentColor;padding-right:2px}
.wm-shift-time{display:flex;justify-content:center;align-items:baseline;flex-wrap:nowrap;gap:1px;
  min-width:0;letter-spacing:-.015em;font-size:11px;font-weight:800;line-height:1.25}
.wm-shift-time time{white-space:nowrap}
.wm-shift-time i{font-style:normal}
.wm-shift-exception{position:absolute;top:1px;right:1px;font-size:11px;font-weight:900}
.wm-morning{color:#693368;background:#f5ddf8;border-color:#e8bcf0}
.wm-afternoon{color:#075567;background:#d3f8f7;border-color:#a6eae9}
.wm-night{color:#34477d;background:#e4e6fb;border-color:#c0c5ef}
.wm-other{color:#195c41;background:#e2f3e7;border-color:#c1e2cd}
.wm-locked{background-image:repeating-linear-gradient(135deg,transparent 0 8px,rgba(0,0,0,.035) 8px 10px)}
.wm-published{border-style:dashed}
.wm-empty{font-size:17px;color:#bccbd1;line-height:1;text-align:center;font-weight:500}
.wm-absence{display:flex;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border-radius:5px;font-size:10px;font-weight:800;overflow:hidden}
.wm-absence strong{font-size:11px}
.wm-absence span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wm-absence-vacation{color:#195b40;background:#dff5e5}
.wm-absence-sick{color:#846012;background:#fff3d0}
.wm-absence-leave{color:#853e4e;background:#ffe3e9}
.wm-partial{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:10px;color:#794d22;background:#fff2de;border-radius:5px;text-align:center}
.wm-add{display:grid;place-items:center;position:absolute;bottom:-2px;right:0;width:25px;height:25px;
  border:1px solid #bcdcd9;background:#e4f5f1;color:#08694e;border-radius:6px;
  font-size:15px;font-weight:850;line-height:1;opacity:0;z-index:4}
.wm-cell:hover .wm-add,.wm-add:focus-visible{opacity:1}
.wm-cell:has(.wm-empty) .wm-add{opacity:.7}
.wm-add:hover{opacity:1;background:#ccece5}
.wm-drag-mode .wm-cell{outline:1px dashed #a1bfcb;outline-offset:-2px}
.wm-drag-mode .wm-cell:hover,.wm-cell.wm-drop-over{background:#cfeced!important;outline:3px solid #128a89!important;outline-offset:-3px}
.wm-shift.wm-dragging{opacity:.5}
.wm-table tfoot th,.wm-table tfoot td{padding:9px 3px;background:#e8f1f4;text-align:center;color:#244c60}
.wm-table tfoot .wm-total-caption{text-align:left;font-size:10px;font-weight:900;letter-spacing:.07em;padding-left:9px}
.wm-totals-day strong{display:block;font-size:12px;font-weight:850;white-space:nowrap}
.wm-totals-day small{display:block;color:#668291;font-size:10px;white-space:nowrap}
.wm-help{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;
  padding:9px 13px;background:#f8fbfc;color:#5b7785;font-size:11px;line-height:1.4}
.wm-help>span{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.wm-help svg{width:13px;height:13px;color:#197874}
.wm-change-preview{display:grid;grid-template-columns:1fr 22px 1fr;gap:9px;align-items:center;
  background:#eff6f7;padding:13px;border-radius:10px;margin-bottom:14px}
.wm-change-preview>span:not(.wm-change-arrow){display:flex;flex-direction:column;gap:3px;min-width:0}
.wm-change-preview small{font-size:10px;color:#69838d;font-weight:800}
.wm-change-preview strong{font-size:13px;color:#214a60}
.wm-change-preview b{font-size:12px;color:#587a88}
.wm-change-arrow svg{width:20px;height:20px;color:#26647e}
.wm-change-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0 4px}
.wm-change-options>button{display:flex;align-items:flex-start;flex-direction:column;gap:4px;padding:12px;
  border:1px solid #d1e2e7;border-radius:10px;background:white;text-align:left;min-height:98px;color:#214a63}
.wm-change-options svg{width:18px;height:18px;color:#157e74}
.wm-change-options b{font-size:14px}
.wm-change-options small{font-size:12px;color:#6c818c}
.wm-change-options>button:hover,.wm-change-options>button:focus-visible{border-color:#168c81;background:#eef8f6}
.wm-swap-options{display:grid;gap:6px;border:1px solid #d5e3e8;padding:12px;border-radius:9px}
.wm-swap-options label{display:flex;align-items:center;gap:9px;min-height:44px}
.wm-undo-toast{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);
  z-index:1001;display:flex;align-items:center;gap:12px;width:min(94vw,480px);
  padding:12px 13px;border-radius:12px;background:#143c51;color:#fff;
  box-shadow:0 13px 39px rgba(20,45,63,.35)}
.wm-undo-toast>div{display:grid;gap:3px;flex:1}
.wm-undo-toast strong{font-size:13px}
.wm-undo-toast small{font-size:12px;color:#cbe3ec}
.wm-undo-toast .button{min-height:40px}
.wm-undo-close{border:0;background:transparent;color:#fff;padding:6px;min-width:34px}
.wm-undo-close svg{width:18px;height:18px}
@container (max-width:1060px){
 .wm-col-person{width:128px}
 .wm-shift{padding:3px 1px;gap:2px}
 .wm-shift-type{font-size:10px;min-width:11px}
 .wm-shift-time{font-size:10px}
}
@container (max-width:880px){
 .wm-col-person{width:110px}
 .wm-day-head{padding:8px 1px}
 .wm-day-ident{gap:3px}
 .wm-day-ident strong{font-size:19px}
 .wm-day-hours span{font-size:9px}
 .wm-day-count{font-size:9px}
 .wm-person{padding-left:5px}
 .wm-person-dot{width:22px;height:22px;margin-right:4px;font-size:10px}
 .wm-person-identity strong{font-size:11px}
 .wm-person-identity small{display:none}
 .wm-shift-time{display:grid;justify-items:center;gap:0;font-size:11px}
 .wm-shift-time i{display:none}
 .wm-shift{min-height:42px}
 .wm-shift-type{align-self:stretch;align-content:center;padding-right:2px}
 .wm-intro{padding:9px 11px}
}
@container (max-width:640px){
 .wm-col-person{width:91px}
 .wm-person-identity strong{font-size:11px}
 .wm-person-identity em{font-size:10px}
 .wm-person-dot{display:none}
 .wm-day-ident{display:grid;gap:0}
 .wm-day-ident span{font-size:10px}
 .wm-day-ident strong{font-size:19px}
 .wm-day-count{display:none}
 .wm-day-head{height:79px}
 .wm-day-hours span{font-size:9px;overflow-wrap:anywhere;white-space:normal}
 .wm-shift-type{display:none}
 .wm-shift-time{font-size:10px}
 .wm-shift{border-radius:4px}
 .wm-cell{padding:2px 1px}
 .wm-intro-title small{font-size:10px}
 .wm-key{gap:3px}
 .wm-key>span{font-size:9px}
}
.wm-compact-mode .planner-head>div:first-child>p:last-child{display:none}
.wm-compact-mode .week-strip,.wm-compact-mode .planner-summary,
.wm-compact-mode .warning-banner,.wm-compact-mode .planner-card-head,
.wm-compact-mode .planner-footnote{display:none}
.wm-compact-mode .planner-head{padding:0;gap:10px}
.wm-compact-mode .planner-head h1{font-size:clamp(21px,2.05vw,27px);line-height:1.22;gap:9px}
.wm-compact-mode .planner-head>div:first-child{gap:3px}
.wm-compact-mode .planner-command{padding:7px 11px}
.wm-compact-mode .planner-card{overflow:visible}
.wm-compact-mode .planner-card .wm-wrap{border-radius:11px;overflow:hidden}
.wm-tools{position:relative;flex:none}
.wm-tools summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:37px;
  border:1px solid #cfdcdf;border-radius:9px;background:#fff;color:#265166;font-size:12px;font-weight:800;padding:6px 12px;cursor:pointer;list-style:none;user-select:none}
.wm-tools summary::-webkit-details-marker{display:none}
.wm-tools summary::after{content:"⌄";font-size:15px;color:#597a88;line-height:1}
.wm-tools[open] summary{background:#e9f5f2;border-color:#299585;color:#075e53}
.wm-tools summary svg{width:15px;height:15px}
.wm-tools-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:30;
  width:min(250px,85vw);display:flex;flex-direction:column;gap:4px;
  padding:8px;border:1px solid #c6dadf;border-radius:12px;background:white;
  box-shadow:0 13px 38px rgba(13,55,67,.18)}
.wm-tools-panel .button{min-height:41px!important;justify-content:flex-start!important;
  width:100%;padding:9px 11px!important;font-size:12px!important;white-space:normal;text-align:left}
.wm-compact-mode .page-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;width:auto}
.wm-compact-mode .page-actions>#publishWeek{min-height:37px;padding:7px 14px;font-size:12px}
.wm-compact-mode .planner-head .page-actions .button{min-height:37px;padding:7px 12px}
.wm-key .wm-key-coverage{background:rgba(255,255,255,.11);border-radius:5px;padding:3px 6px;
 color:#e5f4f4;font-weight:800}
.wm-key .wm-key-warning{display:inline-flex;align-items:center;gap:5px;
  min-height:29px;padding:5px 9px;border:1px solid rgba(255,220,145,.4);
  border-radius:6px;background:rgba(255,207,111,.17);color:#ffe4ac;
  font-size:11px;font-weight:850;white-space:nowrap;cursor:pointer}
.wm-key .wm-key-warning:hover,.wm-key .wm-key-warning:focus-visible{background:rgba(255,207,111,.3)}
.wm-key .wm-key-warning svg{width:12px;height:12px}

@media(max-width:1240px){
 .wm-compact-mode{width:100%;min-width:0}
 .wm-compact-mode .planner-head{display:flex;align-items:center;flex-wrap:wrap;min-width:0}
 .wm-compact-mode .planner-head>div:first-child{flex:1 1 290px;min-width:0}
 .wm-compact-mode .planner-head h1{overflow-wrap:anywhere}
 .wm-compact-mode .planner-head .page-actions{flex:1 1 340px;min-width:0;justify-content:flex-start}
 .wm-compact-mode .planner-command{flex-wrap:wrap;min-width:0}
 .wm-compact-mode .planner-head .page-actions{gap:4px}
 .wm-compact-mode .planner-head .page-actions .button{font-size:11px;padding:5px 7px}
}
@media(max-width:1060px){
 .wm-compact-mode .planner-summary .planner-metric{padding:6px 8px;min-height:52px}
 .wm-compact-mode .planner-summary .planner-metric>span{font-size:10px}
 .wm-compact-mode .planner-summary .planner-metric strong{font-size:17px}
 .wm-compact-mode .planner-card-head .planner-legend{gap:6px}
}
@media(max-width:800px){
 .wm-compact-mode .planner-head{display:flex;flex-direction:column;align-items:stretch;gap:9px}
 .wm-compact-mode .planner-head>div:first-child{flex:none;min-width:0;width:100%}
 .wm-compact-mode .planner-head .page-actions{flex:none;width:100%;min-width:0;justify-content:stretch}
 .wm-compact-mode .page-actions>#publishWeek{flex:1;min-height:44px}
 .wm-compact-mode .page-actions .wm-tools{flex:1}
 .wm-compact-mode .page-actions .wm-tools summary{min-height:44px}
 .wm-compact-mode .week-strip{display:none}
 .wm-compact-mode .warning-banner{display:flex}
 .wm-compact-mode .planner-card-head{display:none}
 .wm-compact-mode .planner-head h1{font-size:23px}
 .wm-compact-mode .week-layout-picker{display:none}
 .wm-compact-mode .planner-command{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:9px}
 .wm-compact-mode .planner-command .date-nav{grid-column:1/-1;width:100%;order:1}
 .wm-compact-mode .planner-command .date-label{font-size:13px;min-width:0;white-space:nowrap}
 .wm-compact-mode .planner-command label{grid-column:1;width:auto;min-width:0;order:2;justify-content:stretch}
 .wm-compact-mode .planner-command label select{flex:1;min-width:0;max-width:100%;font-size:12px}
 .wm-compact-mode .planner-command #newShift{grid-column:2;width:auto;min-height:42px;order:3;font-size:12px;padding:7px 10px}
 .wm-compact-mode .planner-command .command-spacer{display:none}
 .wm-compact-mode .mobile-planner{gap:7px;padding:9px}
 .wm-compact-mode .mobile-day-tabs{margin:0 0 5px}
 .wm-compact-mode .mobile-employee{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:7px;padding:8px;border-radius:9px}
 .wm-compact-mode .mobile-employee-head{grid-column:1;min-width:0;gap:5px}
 .wm-compact-mode .mobile-employee-head .employee-dot{width:23px;height:23px;min-width:23px;font-size:10px}
 .wm-compact-mode .mobile-employee-head>span:nth-child(2){min-width:0}
 .wm-compact-mode .mobile-employee-head b,.wm-compact-mode .mobile-employee-head small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 .wm-compact-mode .mobile-employee-head .button{width:35px;min-width:35px;height:35px;min-height:35px;padding:6px;font-size:0;overflow:hidden}
 .wm-compact-mode .mobile-employee-head .button svg{width:16px;height:16px}
 .wm-compact-mode .mobile-shifts{grid-column:2;min-width:0;gap:4px}
 .wm-compact-mode .mobile-shift{min-height:40px;padding:6px 7px;gap:5px}
 .wm-compact-mode .mobile-shift .status-chip{display:none}
 .wm-compact-mode .mobile-partial-absence{grid-column:1/-1}
 .wm-wrap{display:none}
 .wm-compact-mode .planner-summary{display:none}
 .wm-compact-mode .planner-summary .planner-metric{border-bottom:1px solid var(--line)}
 .wm-compact-mode .planner-summary .planner-metric:nth-child(2){border-right:0}
 .wm-compact-mode .planner-head .page-actions .button{flex:1 1 42%}
 .wm-compact-mode .week-strip{grid-template-columns:repeat(5,minmax(0,1fr));margin-right:0;padding-right:0;max-width:100%}
 .wm-compact-mode .week-pill{display:grid;justify-content:center;justify-items:center;gap:0;padding:7px 2px}
 .wm-compact-mode .week-pill b,.wm-compact-mode .week-pill small{font-size:10px;max-width:100%}
 .mobile-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible;gap:3px}
 .mobile-day-tab{min-width:0;width:100%;padding:7px 1px}
 .mobile-day-tab small{font-size:10px}
 .mobile-day-tab b{font-size:13px}
 .wm-change-options{grid-template-columns:1fr}
 .wm-change-options>button{min-height:58px}
}
@media print{
 .wm-compact-mode .planner-summary,.wm-compact-mode .planner-card-head,.wm-compact-mode .planner-command,.wm-help{display:none!important}
 .wm-compact-mode .wm-wrap{display:block!important}
 .wm-table{width:100%;font-size:9px}
 .wm-shift{break-inside:avoid}
 .wm-add{display:none!important}
}
@media(prefers-reduced-motion:reduce){.wm-shift,.wm-cell{transition:none}}

/* FarmaTurnos preference/accessibility overrides: loaded after module stylesheets */
/* Shared visual controls: tenant palette, user reading density and accessibility. */
:root{
  --canvas:#f4f6f2;
  --canvas-soft:#eef2ed;
  --surface:#ffffff;
  --surface-raised:#fbfcfa;
  --surface-inset:#edf2ee;
  --ink:#17231f;
  --ink-2:#42524c;
  --ink-3:#53635c;
  --ink-4:#5f6c65;
  --line:rgba(23,35,31,.10);
  --line-strong:rgba(23,35,31,.17);
  --brand:#0b6f50;
  --brand-strong:#07543d;
  --brand-hover:#0d815c;
  --brand-soft:#e3f2eb;
  --brand-faint:#f1f8f4;
  --brand-rgb:11,111,80;
  --amber:#805000;
  --amber-rgb:128,80,0;
  --amber-soft:#fff3df;
  --danger:#bd3440;
  --danger-rgb:189,52,64;
  --danger-soft:#fff0f1;
  --blue:#3f6fae;
  --blue-soft:#eef4fc;
  --good:#146b4e;
  --good-rgb:20,107,78;
  --sidebar:248px;
  --topbar:64px;
  --sidebar-bg:#0b3328;
  --sidebar-ink:#e8f4ef;
  --sidebar-muted:rgba(232,244,239,.68);
  --sidebar-subtle:rgba(232,244,239,.60);
  --sidebar-active:#79d6b6;
  --focus-ring:#0b6f50;
  --shadow:0 1px 2px rgba(23,35,31,.04),0 8px 28px rgba(23,35,31,.055);
  --shadow-float:0 18px 60px rgba(18,38,31,.18);
  --r-sm:8px;
  --r-md:12px;
  --r-lg:18px;
  color-scheme:light;
}

:root[data-palette="accessible"]{
  --canvas:#f2f7f8;
  --canvas-soft:#e8f1f3;
  --surface:#ffffff;
  --surface-raised:#fbfdfe;
  --surface-inset:#eaf2f4;
  --ink:#142329;
  --ink-2:#354b52;
  --ink-3:#4c6269;
  --ink-4:#5b7077;
  --line:rgba(17,49,58,.15);
  --line-strong:rgba(17,49,58,.28);
  --brand:#075c72;
  --brand-strong:#064656;
  --brand-hover:#08758f;
  --brand-soft:#dceff2;
  --brand-faint:#eff7f8;
  --brand-rgb:7,92,114;
  --good:#176a46;
  --good-rgb:23,106,70;
  --amber:#87500a;
  --amber-rgb:135,80,10;
  --amber-soft:#fff3df;
  --danger:#a62a36;
  --danger-rgb:166,42,54;
  --danger-soft:#ffe5e7;
  --blue:#285f96;
  --blue-soft:#eaf2fb;
  --sidebar-bg:#103b47;
  --sidebar-ink:#f0f8f8;
  --sidebar-muted:#c7dadd;
  --sidebar-subtle:#b3c9cd;
  --sidebar-active:#8cdae3;
  --focus-ring:#075c72;
}

:root[data-palette="high-contrast"]{
  --canvas:#ffffff;
  --canvas-soft:#f0f2ef;
  --surface:#ffffff;
  --surface-raised:#ffffff;
  --surface-inset:#f0f2ef;
  --ink:#050907;
  --ink-2:#19251f;
  --ink-3:#2b3b33;
  --ink-4:#394a41;
  --line:rgba(5,9,7,.26);
  --line-strong:rgba(5,9,7,.48);
  --brand:#005a37;
  --brand-strong:#003c25;
  --brand-hover:#006d43;
  --brand-soft:#cfe8d9;
  --brand-faint:#edf6f0;
  --brand-rgb:0,90,55;
  --good:#005c36;
  --good-rgb:0,92,54;
  --amber:#713c00;
  --amber-rgb:113,60,0;
  --amber-soft:#fff1d5;
  --danger:#a60016;
  --danger-rgb:166,0,22;
  --danger-soft:#ffe5e7;
  --blue:#13487a;
  --blue-soft:#e7f0fc;
  --sidebar-bg:#081d15;
  --sidebar-ink:#ffffff;
  --sidebar-muted:#e0eee6;
  --sidebar-subtle:#cfdfd5;
  --sidebar-active:#ffca57;
  --focus-ring:#a34e00;
  --shadow:0 1px 2px rgba(0,0,0,.12),0 8px 28px rgba(0,0,0,.10);
  --shadow-float:0 18px 60px rgba(0,0,0,.28);
}

:root[data-palette="accessible"] .status-chip.warning,
:root[data-palette="high-contrast"] .status-chip.warning{color:var(--amber)}

html{scrollbar-color:var(--ink-4) var(--canvas-soft);caret-color:var(--brand)}
::selection{background:var(--brand-soft);color:var(--ink)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:2px solid var(--focus-ring);
  outline-offset:2px;
}
.sidebar :is(button,a,input,select,textarea,summary):focus-visible{
  outline:2px solid var(--sidebar-active);
  outline-offset:2px;
  box-shadow:0 0 0 2px var(--sidebar-bg),0 0 0 5px var(--sidebar-active);
}

/* Small global rhythm pass keeps each page's own working layout intact. */
.content{padding-top:28px}
#content small{font-size:12px}
.page-head{margin-bottom:20px}
.page-head p:last-child,.section-head p{line-height:1.55}
.surface{border-color:var(--line);box-shadow:0 1px 2px rgba(18,34,28,.035)}
.button-secondary,.icon-button{border-color:var(--line-strong)}
.data-table th{color:var(--ink-3)}
.status-chip,.category-chip{border-color:var(--line-strong)}
.empty-state,.loading-state{color:var(--ink-3)}
.empty-state p,.planner-footnote,.report-method{line-height:1.55}
.warning-banner,.warning-banner small,.warning-banner .text-button,.modal-note,.week-note p,.partial-absence-cover,.mobile-partial-absence{color:var(--amber)}
.coverage-gap:after{color:var(--danger)}
.recurrence-banner small{color:var(--blue)}
.portal-hero{background:linear-gradient(135deg,var(--brand-strong),var(--brand))}
.portal-hero .eyebrow{color:var(--brand-soft)}
.portal-hero p{color:#fff}
.inactive-team-info small{color:var(--ink-3)}
.dormant-roster{border-color:var(--line);background:var(--surface-inset);color:var(--ink-2)}
.dormant-roster .section-head h2,.inactive-team-info strong{color:var(--ink)}
.dormant-roster .section-head p,.dormant-empty{color:var(--ink-3)}
.dormant-roster-count{border:1px solid var(--line);background:var(--surface);color:var(--ink-2)}
.inactive-team-avatar{background:var(--surface);color:var(--ink-2)}
.primary-nav button{min-height:44px}
.session-card{border-color:rgba(255,255,255,.16)}
.session-avatar{background:rgba(255,255,255,.12);color:var(--brand-soft)}
.primary-nav button.active:before{background:var(--sidebar-active)}

/* Topbar controls stay reachable while leaving the page title readable. */
.nav-search-trigger,.ui-preferences-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:0 11px;
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:var(--surface);
  color:var(--ink-2);
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
  transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease;
}
.nav-search-trigger:hover,.ui-preferences-trigger:hover{border-color:var(--brand);background:var(--brand-faint);color:var(--brand-strong)}
.nav-search-trigger svg,.ui-preferences-trigger svg{width:16px;height:16px;color:var(--brand)}
.nav-search-trigger kbd,.navigation-hint kbd{padding:2px 5px;border:1px solid var(--line);border-radius:5px;background:var(--surface-inset);color:var(--ink-3);font-family:inherit;font-size:12px;line-height:1.3;font-weight:700}
.ui-preferences-trigger{width:40px;padding:0}

/* Section finder */
.navigation-dialog{width:min(580px,calc(100vw - 28px));max-height:min(78vh,690px)}
.navigation-search-field{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface)}
.navigation-search-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.navigation-search-field>svg{flex:none;width:17px;height:17px;color:var(--brand)}
.navigation-search-field input{flex:1;min-width:0;min-height:44px;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}
.navigation-search-field input::placeholder{color:var(--ink-4)}
.navigation-search-field kbd{padding:2px 6px;border:1px solid var(--line);border-radius:5px;color:var(--ink-3);font-size:12px}
.navigation-results{display:grid;gap:3px;max-height:min(48vh,440px);overflow:auto;margin-top:10px;padding:3px}
.navigation-result{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:8px 11px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);text-align:left}
.navigation-result:hover,.navigation-result:focus-visible{border-color:var(--line);background:var(--brand-faint);color:var(--brand-strong)}
.navigation-result-title{font-size:13px;font-weight:720}
.navigation-result small{color:var(--ink-3);font-size:12px;white-space:nowrap}
.navigation-empty{padding:22px 12px;color:var(--ink-3);text-align:center}
.navigation-result-count{padding:7px 4px 0;color:var(--ink-3);font-size:12px}
.navigation-hint{display:flex;align-items:center;gap:7px;padding:12px 2px 0;color:var(--ink-3);font-size:12px}

/* User-level reading preferences */
.ui-preferences-dialog{width:min(500px,calc(100vw - 28px))}
.ui-preferences-dialog .modal-body{display:grid;gap:17px}
.ui-preferences-dialog .field small{color:var(--ink-3);font-size:12px;font-weight:500;line-height:1.45}
.ui-preference-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);cursor:pointer}
.ui-preference-toggle>span{display:grid;gap:3px}
.ui-preference-toggle b{font-size:13px}
.ui-preference-toggle small{color:var(--ink-3);font-size:12px;line-height:1.4}
.ui-preference-toggle input{flex:none;width:20px;height:20px;accent-color:var(--brand)}
.ui-preferences-status{min-height:18px;color:var(--ink-3);font-size:12px;line-height:1.45}

/* Admin-only tenant palette controls */
.appearance-card{display:grid;gap:18px;padding:20px;margin-bottom:14px}
.appearance-card .section-head{align-items:center}
.scope-chip{flex:none;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-inset);color:var(--ink-2);font-size:12px;font-weight:700}
.palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0;border:0;margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.palette-option{position:relative;display:block;min-width:0;cursor:pointer}
.palette-option input{position:absolute;inset:8px auto auto 8px;width:20px;height:20px;margin:0;opacity:0}
.palette-option-card{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;min-height:76px;padding:11px;border:1px solid var(--line-strong);border-radius:11px;background:var(--surface);transition:border-color 150ms ease,background-color 150ms ease,box-shadow 150ms ease}
.palette-option input:checked+.palette-option-card{border-color:var(--brand);background:var(--brand-faint);box-shadow:inset 0 0 0 1px var(--brand)}
.palette-option input:focus-visible+.palette-option-card{outline:3px solid var(--focus-ring);outline-offset:3px}
.palette-swatches{display:flex;width:42px;height:42px;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.palette-swatches i{flex:1;background:var(--swatch)}
.palette-option-copy{display:grid;gap:3px;min-width:0}
.palette-option-copy b{font-size:13px}
.palette-option-copy small{color:var(--ink-3);font-size:12px;line-height:1.35}
.appearance-savebar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:13px;border-top:1px solid var(--line)}
.ui-palette-status{max-width:64ch;color:var(--ink-3);font-size:12px;line-height:1.5}
.appearance-savebar .button{min-width:154px}

/* Density and text scale affect all app views without compressing the matrix's time geometry. */
body[data-ui-density="compact"] .content{padding-top:20px;padding-bottom:34px}
body[data-ui-density="compact"] .page-head{margin-bottom:14px}
body[data-ui-density="compact"] .planner-page{gap:10px}
body[data-ui-density="compact"] .surface{border-radius:12px}
body[data-ui-density="compact"] .data-table td{padding-top:8px;padding-bottom:8px}
body[data-ui-density="compact"] .data-table th{height:34px}
body[data-ui-density="compact"] .request-row,
body[data-ui-density="compact"] .document-row,
body[data-ui-density="compact"] .user-access-row{min-height:48px}
html[data-ui-text="large"] body{font-size:16px}
html[data-ui-text="large"] .page-head p:last-child,
html[data-ui-text="large"] .section-head p,
html[data-ui-text="large"] .data-table td,
html[data-ui-text="large"] .data-table th,
html[data-ui-text="large"] .primary-nav button,
html[data-ui-text="large"] .button,
html[data-ui-text="large"] .field,
html[data-ui-text="large"] .planner-legend,
html[data-ui-text="large"] .planner-footnote{font-size:15px}
html[data-ui-text="large"] .data-table td:before{font-size:12px}
html[data-ui-text="large"] #content small{font-size:14px!important}

@media(max-width:900px){
  .palette-grid{grid-template-columns:1fr}
  .palette-option-card{min-height:64px}
  .appearance-card{padding:16px}
}
@media(max-width:800px){
  .nav-search-trigger{min-width:44px;min-height:44px;padding:0 10px}
  .ui-preferences-trigger{width:44px;height:44px}
  .topbar-actions{gap:6px}
  .primary-nav button,.nav-action{min-height:46px}
  .button,.icon-button,.text-button{min-height:44px}
  .icon-button{width:44px}
  .button-small{min-height:44px;padding:8px 11px}
  .field input,.field select,.field textarea,.search-field input,.year-picker select{min-height:44px}
  .season-tab,.quick-presets button,.weekday-picker span{min-height:44px}
  .mobile-day-tab{min-height:44px}
  .org-chip{min-height:48px}
  .org-chip button{width:44px;height:44px;min-width:44px}
  .interval-item{min-height:48px}
  .interval-item input{min-height:44px}
  .interval-item button{width:44px;height:44px;min-width:44px}
  .pattern-cell-add{width:44px;height:44px;min-width:44px;min-height:44px}
  .navigation-result{min-height:50px}
  .appearance-savebar{align-items:stretch;flex-direction:column}
  .appearance-savebar .button{width:100%}
}
@media(max-width:520px){
  .nav-search-trigger span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
  .nav-search-trigger kbd{display:none}
  .topbar{gap:8px}
  .topbar-actions .season-chip{max-width:44px;overflow:hidden;padding:7px}
  .topbar-actions .season-chip b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .navigation-dialog{padding:14px}
  .navigation-result{align-items:flex-start;flex-direction:column;gap:2px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
html[data-reduce-motion="true"]{scroll-behavior:auto!important}
html[data-reduce-motion="true"] *,html[data-reduce-motion="true"] *::before,html[data-reduce-motion="true"] *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}

/* Restore the token-driven shell after the legacy visual overrides load. */
body{background:var(--canvas);color:var(--ink);font-size:14px}
.sidebar{padding:20px 14px 14px;background:var(--sidebar-bg);color:var(--sidebar-ink);border-right:1px solid color-mix(in srgb,var(--sidebar-ink) 12%,transparent);box-shadow:none}
.sidebar-brand{height:48px;margin:0 0 24px;padding:0 9px;border:0}
.sidebar-brand strong{color:var(--sidebar-ink);font-weight:800}
.sidebar-brand small{color:var(--sidebar-subtle);font-size:12px;font-weight:600}
.sidebar .brand-mark{width:38px;height:38px;background:var(--brand);border-radius:11px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.primary-nav{display:grid;align-items:stretch;gap:4px;overflow-y:auto;min-height:0;padding:0 0 8px}
.primary-nav>p,.primary-nav>.nav-section{margin:2px 10px 6px;color:var(--sidebar-subtle);font-size:12px;letter-spacing:.11em;font-weight:800}
.primary-nav>p:first-child{margin-top:2px}
.primary-nav button{width:100%;min-height:44px;padding:0 11px;gap:11px;border-radius:10px;color:var(--sidebar-muted);background:transparent;border:1px solid transparent;font-size:13px;font-weight:680}
.primary-nav button svg{width:17px;height:17px;color:currentColor}
.primary-nav button:hover{color:var(--sidebar-ink);background:color-mix(in srgb,var(--sidebar-ink) 8%,transparent)}
.primary-nav button.active{color:var(--sidebar-ink);background:color-mix(in srgb,var(--sidebar-ink) 12%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-ink) 12%,transparent);box-shadow:none}
.primary-nav button.active svg{color:currentColor}
.primary-nav button.active:before{display:block;background:var(--sidebar-active)}
.primary-nav a.advanced-entry{background:var(--brand-strong)!important;color:#fff!important;border-left-color:var(--sidebar-active)!important;border-radius:10px!important}
.sidebar-foot{border-top:1px solid color-mix(in srgb,var(--sidebar-ink) 16%,transparent);padding-top:10px;gap:8px}
.session-card{padding:10px;border:1px solid color-mix(in srgb,var(--sidebar-ink) 14%,transparent);background:color-mix(in srgb,var(--sidebar-ink) 5%,transparent);border-radius:12px}
.session-avatar{background:color-mix(in srgb,var(--sidebar-ink) 12%,transparent);color:var(--brand-soft);border-radius:9px}
.session-card b{color:var(--sidebar-ink)}
.session-card small,.nav-action{color:var(--sidebar-subtle)}
.nav-action{font-size:12px;border-radius:10px}
.nav-action:hover{color:var(--sidebar-ink);background:color-mix(in srgb,var(--sidebar-ink) 8%,transparent)}
.topbar{padding:0 24px;background:var(--canvas);border-color:var(--line);box-shadow:none}
.topbar-context span{font-size:12px;letter-spacing:.11em;color:var(--ink-4)}
.topbar-context strong{font-size:14px;color:var(--ink)}
.topbar-actions .connection-chip{color:var(--ink-3);background:var(--surface);border-color:var(--line)}
.eyebrow{color:var(--brand)}
.button{border-radius:10px;font-size:13px;min-height:38px}
.button-small{font-size:12px;min-height:32px;padding:6px 10px}
.icon-button{border-radius:10px;width:38px;height:38px}
.surface{border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(18,34,28,.035)}
.month-head-actions .button-primary{background:var(--brand);border-color:var(--brand)}
.month-head-actions .button-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.month-scroll:focus-visible,.month-chip:focus-visible,.wm-shift:focus-visible,.staff-month-panel button:focus-visible,.staff-month-rows input:focus-visible{outline-color:var(--focus-ring)}

/* Text overrides for the recovered legacy calendar styles; cell widths and planner geometry stay intact. */
.sidebar-brand small,.primary-nav>p,.primary-nav>.nav-section,.topbar-context span,.button-small{font-size:12px!important}
#content :is(.month-eyebrow,.month-filter,.month-options,.month-substatus,.month-legend,.month-legend i,.month-table .month-name-head,.month-day-go small,.month-employee b,.month-employee small,.month-chip,.month-split,.month-table .month-total,.month-table tfoot th,.month-table tfoot td,.month-calendar-foot,.month-notes small,.month-analysis small,.month-note-list time,.month-note-list b,.month-note-list span,.month-note-list>p,.month-no-notes,.month-analysis>div span,.month-productivity summary small,.month-productivity-form label,.month-productivity-result,.month-productivity>p,.month-guide>button small,.month-page-head p:not(.month-eyebrow),.month-table th,.month-table td,.month-quick-step,.month-quick-transfer small,.holiday-row-main small,.wm-compact-mode .planner-head .eyebrow,.wm-compact-mode .planner-metric>span,.wm-key>span,.wm-first-head span,.wm-first-head small,.wm-day-ident span,.wm-day-hours span,.wm-day-hours b,.wm-day-count,.wm-day-count span,.wm-person-dot,.wm-person-identity small,.wm-person-identity strong,.wm-person-identity em,.wm-shift-type,.wm-shift-time,.wm-shift-exception,.wm-absence,.wm-absence strong,.wm-partial,.wm-table tfoot .wm-total-caption,.wm-totals-day small,.wm-help,.wm-change-preview small,.wm-intro-title small,.wm-key .wm-key-warning,.wm-compact-mode .page-actions .button,.wm-compact-mode .planner-head .page-actions .button,.wm-compact-mode .planner-summary .planner-metric>span,.wm-compact-mode .mobile-employee-head .employee-dot,.wm-compact-mode .week-pill b,.wm-compact-mode .week-pill small,.mobile-day-tab small){font-size:12px!important}
#content .month-scroll.fit .month-chip{font-size:12px!important}
#content .month-legend,#content .month-legend i{line-height:1.25}
#content .month-chip{min-height:22px;height:auto;line-height:1.2}
#content .month-split{line-height:1.1}
#content .wm-table{font-size:12px}
#content .wm-day-hours span{white-space:normal;overflow-wrap:anywhere}
#content .wm-day-count{line-height:1.2}
#content .wm-shift{height:auto;min-height:34px}
#content .wm-shift-time{flex-wrap:wrap;line-height:1.2}
#content .wm-shift-time time{white-space:normal;overflow-wrap:anywhere}
#content .wm-absence,#content .wm-partial{line-height:1.2;overflow-wrap:anywhere}

/* Tokenized surfaces and accents for legacy modules. Shift-type colors remain semantic. */
.month-eyebrow{color:var(--brand)}
.month-page-head h1{color:var(--ink)}
.month-page-head p:not(.month-eyebrow),.month-filter,.month-options{color:var(--ink-3)}
.month-options input{accent-color:var(--brand)}
.month-picker select,.month-filter select{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}
.month-calendar-head{border-color:var(--line)}
.month-calendar-head strong{color:var(--ink)}
.month-calendar-icon{color:var(--brand);background:var(--brand-soft)}
.month-substatus{border-color:var(--line);background:var(--surface-inset);color:var(--ink-3)}
.month-legend{color:var(--ink-3)}
.month-scroll{scrollbar-color:var(--ink-4) transparent}
.month-scroll:focus-visible{outline-color:var(--focus-ring)}
.month-table{color:var(--ink-2)}
.month-table th,.month-table td{border-color:var(--line)}
.month-table .month-name-head,.month-table .month-date-head,.month-table .month-total{background:var(--surface-inset);color:var(--ink-2)}
.month-table .month-date-head.weekend{background:var(--canvas-soft)}
.month-table .month-date-head.today{background:var(--brand-soft)}
.month-table .month-date-head.closed{background:var(--amber-soft)}
.month-table .month-date-head.today .month-day-go b{color:var(--brand-strong)}
.month-table tbody tr.alternate,.month-table tbody tr.alternate .month-employee{background:var(--surface-raised)}
.month-table tbody tr:hover,.month-table tbody tr:hover .month-employee{background:var(--brand-faint)}
.month-employee b,.month-table tfoot th,.month-table tfoot td{color:var(--ink-2)}
.month-table tfoot th,.month-table tfoot td{background:var(--surface-inset)}
.month-calendar-foot{border-color:var(--line);color:var(--ink-3)}
.month-calendar-foot b,.month-notes strong,.month-analysis strong,.month-productivity summary,.month-guide>button{color:var(--ink)}
.month-notes>header,.month-analysis>header{border-color:var(--line)}
.month-note-list button{border-color:var(--line);background:var(--surface);color:var(--ink-2)}
.month-note-list button:hover,.month-guide>button:hover{background:var(--brand-faint)}
.month-analysis>div{border-color:var(--line)}
.month-analysis>div b{color:var(--brand)}
.month-productivity{border-color:var(--line);background:var(--surface)}
.month-productivity summary{color:var(--brand-strong)}
.month-guide>p{color:var(--ink-3)}
.month-guide>button{border-color:var(--line);background:var(--surface-raised)}
.month-warning,.holiday-warning,.official-holidays-pending{color:var(--amber)}
.holiday-preview-result{border-color:var(--line-strong);background:var(--brand-faint)}
.holiday-row{border-color:var(--line)}
.staff-month-panel .section-head p,.staff-month-help,.staff-month-actions>span{color:var(--ink-3)}
.staff-month-stats{border-color:var(--line)}
.staff-month-stats strong,.staff-month-person-head b,.staff-month-person-values span,.staff-month-week h3{color:var(--brand-strong)}
.staff-month-person{border-color:var(--line);background:var(--surface-raised)}
.staff-month-person-head small,.staff-month-person-values small,.staff-month-time-pair span{color:var(--ink-3)}
.staff-month-actions,.staff-month-week,.staff-month-day{border-color:var(--line)}
.staff-month-week h3{background:var(--surface-inset)}
.staff-month-day:nth-of-type(odd){background:var(--surface-raised)}
.staff-month-preview>div{border-color:var(--line)}
.staff-month-preview b{color:var(--brand)}

.month-quick-hint{background:var(--brand-faint);border-color:var(--line);color:var(--ink-2)}
.month-quick-hint strong,.month-quick-bar-top strong,.month-quick-transfer b{color:var(--brand-strong)}
.month-quick-hint span,.month-quick-bar-top small,.month-quick-transfer small,.month-quick-transfer span{color:var(--ink-3)}
.month-quick-bar{background:var(--surface);border-color:var(--brand);color:var(--ink-2)}
.month-quick-step,.month-quick-actions svg,.month-quick-transfer>svg{color:var(--brand)}
.month-quick-bar-fields label{color:var(--ink-2)}
.month-quick-bar-fields select,.month-quick-bar-fields input,.month-quick-time-editor input{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}
.month-quick-summary{background:var(--brand-faint);color:var(--brand-strong)}
.month-quick-actions>button{border-color:var(--line-strong);background:var(--surface);color:var(--ink-2)}
.month-quick-actions>button:hover,.month-quick-actions>button:focus-visible{background:var(--brand-faint);border-color:var(--brand);outline-color:var(--focus-ring)}
.month-quick-time-editor{border-color:var(--line)}
.month-quick-time-editor h3{color:var(--ink)}
.month-quick-transfer{background:var(--surface-inset)}
.month-quick-shift-pick{border-color:var(--line)}
.month-quick-shift-pick label{border-color:var(--line)}
.quick-notices{border-color:var(--line);background:var(--surface-inset);color:var(--ink-2)}
.month-quick-selectable:focus-visible,.month-quick-drop-target{outline-color:var(--focus-ring)!important}
.month-quick-hint .button:focus-visible,.month-quick-bar button:focus-visible,.month-quick-bar input:focus-visible,.month-quick-bar select:focus-visible,.month-quick-undo button:focus-visible{outline:3px solid var(--focus-ring)!important;outline-offset:2px}
.holiday-preview-pill{background:var(--brand-soft);color:var(--brand-strong)}
.holiday-warning{color:var(--amber)}

/* Weekly planning keeps the existing employee-by-day matrix and adapts its labels. */
.wm-wrap,.wm-table{background:var(--surface)}
.wm-intro{background:linear-gradient(95deg,var(--brand-strong),var(--brand));color:#fff}
.wm-intro-title small{color:var(--brand-soft)}
.wm-first-head,.wm-day-head{background:var(--surface-inset);color:var(--ink-2)}
.wm-day-head.is-today{background:var(--brand-soft);box-shadow:inset 0 4px var(--brand)}
.wm-day-head.is-closed{background:var(--canvas-soft);color:var(--ink-3)}
.wm-day-ident,.wm-day-ident strong{color:var(--ink)}
.wm-day-head.is-today .wm-day-ident strong{color:var(--brand-strong)}
.wm-day-hours{color:var(--ink-3)}
.wm-day-hours b{color:var(--ink-4)}
.wm-day-count{color:var(--ink-3)}
.wm-table th,.wm-table td{border-color:var(--line)}
.wm-person,.wm-person-row.wm-alternate .wm-person{background:var(--surface)}
.wm-person-row.wm-alternate{background:var(--surface-raised)}
.wm-person-row:hover,.wm-person-row:hover .wm-person{background:var(--brand-faint)}
.wm-person-identity strong{color:var(--ink)}
.wm-person-identity small{color:var(--ink-3)}
.wm-person-identity em{color:var(--brand)}
.wm-shift:focus-visible{outline-color:var(--focus-ring)}
.wm-add{border-color:var(--line-strong);background:var(--brand-soft);color:var(--brand-strong)}
.wm-add:hover{background:var(--brand-faint)}
.wm-drag-mode .wm-cell{outline-color:var(--line-strong)}
.wm-drag-mode .wm-cell:hover,.wm-cell.wm-drop-over{background:var(--brand-faint)!important;outline-color:var(--focus-ring)!important}
.wm-table tfoot th,.wm-table tfoot td{background:var(--surface-inset);color:var(--ink-2)}
.wm-totals-day small{color:var(--ink-3)}
.wm-help{background:var(--surface-raised);color:var(--ink-3)}
.wm-help svg,.wm-change-arrow svg{color:var(--brand)}
.wm-change-preview{background:var(--surface-inset)}
.wm-change-preview small{color:var(--ink-3)}
.wm-change-preview strong{color:var(--ink)}
.wm-change-preview b{color:var(--ink-2)}
.wm-change-options>button{border-color:var(--line-strong);background:var(--surface);color:var(--ink-2)}
.wm-change-options>button:hover,.wm-change-options>button:focus-visible{border-color:var(--brand);background:var(--brand-faint);outline:2px solid var(--focus-ring)}

@container (max-width:880px){
  .wm-day-head{height:auto;min-height:80px}
  .wm-shift{min-height:46px}
  .wm-shift-time{flex-wrap:wrap;white-space:normal}
  .wm-shift-time time{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:800px){
  .mobile-shift{align-items:flex-start;flex-wrap:wrap;min-height:44px}
  .mobile-shift>span{flex:1 1 160px;min-width:0}
  .mobile-shift b,.mobile-shift small{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
  .mobile-shift .status-chip{align-self:flex-start}
}

/* Large text must also override the minimum-size guard for legacy planner and calendar labels. */
html[data-ui-text="large"] #content :is(.month-eyebrow,.month-filter,.month-options,.month-substatus,.month-legend,.month-legend i,.month-table .month-name-head,.month-day-go small,.month-employee b,.month-employee small,.month-chip,.month-split,.month-table .month-total,.month-table tfoot th,.month-table tfoot td,.month-calendar-foot,.month-notes small,.month-analysis small,.month-note-list time,.month-note-list b,.month-note-list span,.month-note-list>p,.month-no-notes,.month-analysis>div span,.month-productivity summary small,.month-productivity-form label,.month-productivity-result,.month-productivity>p,.month-guide>button small,.month-page-head p:not(.month-eyebrow),.month-table th,.month-table td,.month-quick-step,.month-quick-transfer small,.holiday-row-main small,.wm-compact-mode .planner-head .eyebrow,.wm-compact-mode .planner-metric>span,.wm-key>span,.wm-first-head span,.wm-first-head small,.wm-day-ident span,.wm-day-hours span,.wm-day-hours b,.wm-day-count,.wm-day-count span,.wm-person-dot,.wm-person-identity small,.wm-person-identity strong,.wm-person-identity em,.wm-shift-type,.wm-shift-time,.wm-shift-exception,.wm-absence,.wm-absence strong,.wm-partial,.wm-table tfoot .wm-total-caption,.wm-totals-day small,.wm-help,.wm-change-preview small,.wm-intro-title small,.wm-key .wm-key-warning,.wm-compact-mode .page-actions .button,.wm-compact-mode .planner-head .page-actions .button,.wm-compact-mode .planner-summary .planner-metric>span,.wm-compact-mode .mobile-employee-head .employee-dot,.wm-compact-mode .week-pill b,.wm-compact-mode .week-pill small,.mobile-day-tab small){font-size:14px!important}


/* Tema oscuro individual, no altera la paleta compartida ni los turnos. */
:root[data-theme="dark"][data-palette] {
  color-scheme:dark;
  --canvas:#10191b;
  --canvas-soft:#152124;
  --surface:#1c292b;
  --surface-raised:#253437;
  --surface-inset:#142326;
  --ink:#eff7f4;
  --ink-2:#d1e2dc;
  --ink-3:#b8cec5;
  --ink-4:#9db8ad;
  --line:rgba(210,235,225,.18);
  --line-strong:rgba(210,235,225,.32);
  --brand:#6de0b3;
  --brand-strong:#a3f5d2;
  --brand-hover:#2fbd8b;
  --brand-soft:#194433;
  --brand-faint:#173229;
  --brand-rgb:63,193,145;
  --amber:#f3c17b;
  --amber-soft:#45331e;
  --blue:#95c8fa;
  --blue-soft:#1c3447;
  --danger:#ff9aa0;
  --danger-soft:#4b282f;
  --focus-ring:#91eac9;
  --shadow:0 12px 32px rgba(0,0,0,.32);
}
:root[data-theme="dark"] body,
:root[data-theme="dark"] .workspace {background:var(--canvas);color:var(--ink)}
:root[data-theme="dark"] :is(input,select,textarea,option,dialog) {
  color-scheme:dark;
}
:root[data-theme="dark"] #content :is(input,select,textarea),
:root[data-theme="dark"] :is(.navigation-search-field input,.navigation-dialog,.ui-preferences-dialog) {
  background:var(--surface);
  color:var(--ink);
  border-color:var(--line-strong);
}
:root[data-theme="dark"] #content :is(input,select,textarea)::placeholder {
  color:var(--ink-4);
}
:root[data-theme="dark"] :is(.button-primary,#content .button-primary) {
  background:#117853;
  border-color:#117853;
  color:#fff;
}
:root[data-theme="dark"] :is(.button-primary:hover,#content .button-primary:hover) {
  background:#0c6949;
  border-color:#0c6949;
}
:root[data-theme="dark"] #content :is(.month-table .month-name-head,.month-table .month-date-head,.month-table .month-total) {
  background:var(--surface-inset);
  color:var(--ink);
  border-color:var(--line);
}
:root[data-theme="dark"] #content :is(.month-table .month-date-head.today,.month-day.today) {
  background:#1d473b;
}
:root[data-theme="dark"] #content :is(.month-table .month-date-head.weekend,.month-day.weekend) {
  background:#263438;
}
:root[data-theme="dark"] #content :is(.month-table .month-date-head.closed,.month-day.closed) {
  background:#422f32;
}
:root[data-theme="dark"] #content :is(.month-table tbody tr,.month-table tbody tr.alternate,.month-table tbody tr .month-employee,.month-table tbody tr.alternate .month-employee) {
  background:var(--surface);
  color:var(--ink-2);
}
:root[data-theme="dark"] #content .month-table tbody tr:hover,
:root[data-theme="dark"] #content .month-table tbody tr:hover .month-employee {
  background:var(--brand-faint);
}
:root[data-theme="dark"] #content :is(.wm-table td,.wm-table th,.wm-cell,.wm-person-row,.wm-first-head) {
  border-color:var(--line);
  color:var(--ink-2);
}
:root[data-theme="dark"] #content .wm-day-closed {
  background:var(--surface-inset);
}
:root[data-theme="dark"] #content :is(.status-chip.good,.farmatic-attendance-table .status-chip.good) {
  background:#174b3a;
  border-color:#2b775c;
  color:#b8f4d9;
}
:root[data-theme="dark"] #content :is(.status-chip.warning,.farmatic-attendance-table .status-chip.warning) {
  background:#513a22;
  border-color:#805d32;
  color:#ffdca2;
}
:root[data-theme="dark"] #content :is(.farmatic-segment,.farmatic-attendance-sync,.farmatic-legacy-banner) {
  background:var(--surface-inset);
  border-color:var(--line);
  color:var(--ink-2);
}
:root[data-theme="dark"] #content .shift-presence-tick {
  border-color:var(--surface);
  background:#0e8d5b;
  color:#fff;
}
:root[data-theme="dark"] #content .appearance-card :is(.palette-option-card,.palette-swatches),
:root[data-theme="dark"] #content :is(.month-calendar,.month-notes,.month-analysis) {
  border-color:var(--line);
}

/* Separación real de Horarios, personal, calendario y Ajustes. */
#content .settings-layout.settings-layout-single {
  display:block;
  max-width:1180px;
}
#content .settings-layout.settings-layout-single > .surface {
  width:100%;
  min-width:0;
}
#content .settings-general-actions {
  display:flex;
  justify-content:flex-end;
  margin:10px 0 20px;
}
#content .month-profile-card {margin-top:12px}
.month-guide-refreshed {display:grid;gap:12px}
.month-guide-refreshed>p,.month-guide-endnote {font-size:12px;line-height:1.48;color:var(--ink-3);margin:0}
.month-guide-refreshed .month-guide-timehint {
  background:var(--brand-faint);border:1px solid var(--line-strong);
  border-radius:10px;padding:10px 13px;color:var(--ink-2);
  font-size:12px;line-height:1.5
}
.month-guide-refreshed .month-guide-timehint strong{color:var(--brand-strong);margin-right:6px}
.month-guide-refreshed .month-guide {min-width:0}
.month-guide-refreshed .month-guide>button {
  display:grid;gap:5px;min-height:56px;transition:background .12s ease;
  padding:11px 13px;text-align:left;white-space:normal;
  border:1px solid var(--line);background:var(--surface-raised);border-radius:9px
}
.month-guide-refreshed .month-guide>button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.month-guide-refreshed .month-guide>button b{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink)}
.month-guide-refreshed .month-guide>button small{padding-left:32px;color:var(--ink-3);font-size:11px;line-height:1.4}
.month-guide-refreshed .month-guide-number{
  display:inline-grid;place-items:center;width:23px;height:23px;flex:0 0 23px;
  border-radius:7px;background:var(--brand-soft);color:var(--brand-strong);
  font-size:12px;font-weight:850
}


/* Presencia Farmatic fuera de turno: amarillo, con o sin turno planificado. */
#content :is(.month-chip,.wm-shift,.shift-block,.mobile-shift).is-present-outside {
  position:relative;
  overflow:visible;
  outline:2px solid #ce9223;
  outline-offset:0;
  z-index:3;
}
#content .shift-presence-tick.is-outside,
:root[data-theme="dark"] #content .shift-presence-tick.is-outside {
  background:#e6a52b;
  color:#2c210a;
  border-color:var(--surface,#fff);
}
#content :is(.month-presence-orphan,.wm-presence-orphan) {
  display:block;
  position:absolute;
  top:1px;
  right:1px;
  width:18px;
  height:18px;
  z-index:5;
  pointer-events:none;
}
#content :is(.month-presence-orphan,.wm-presence-orphan) .shift-presence-tick {
  top:0;
  right:0;
  width:18px;
  height:18px;
}
#content .month-day:has(.month-presence-orphan) .month-cell-content {
  outline:2px dashed #d29a28;
  outline-offset:-2px;
  border-radius:4px;
}

/* Farmaturnos · puesto de control diario. Dos fuentes, un solo lugar. */
#content .operations-page {display:grid;gap:17px;max-width:1440px;margin:auto}
#content .ops-heading {
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:3px 1px 1px;
}
#content .ops-heading h1 {font-size:clamp(25px,3vw,38px);line-height:1.15;letter-spacing:-.035em;margin:4px 0 8px}
#content .ops-heading p:last-child {color:var(--ink-3);max-width:650px;font-size:13px}
#content .ops-today-layout {display:grid;grid-template-columns:minmax(260px,.9fr) minmax(310px,1.1fr);gap:14px;align-items:stretch}
#content .ops-hourboard {
  display:flex;flex-direction:column;gap:10px;
  border-radius:16px;padding:22px 24px;
  background:#0b513e;color:#eafcf2;
  box-shadow:0 8px 23px rgba(2,46,33,.08);
}
#content .ops-open-status {display:flex;gap:9px;align-items:center;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
#content .ops-open-status i {width:9px;height:9px;border-radius:50%;background:#cad4d0;box-shadow:0 0 0 4px rgba(255,255,255,.08)}
#content .ops-open-status.open i {background:#6ef3b1}
#content .ops-hour-label {margin-top:9px;color:#bcebd8;font-size:12px;font-weight:700}
#content .ops-opening {font-size:clamp(22px,2.2vw,32px);font-weight:850;line-height:1.25;letter-spacing:-.025em}
#content .ops-dot {color:#80baa0}
#content .ops-reception-band {
  display:flex;align-items:center;gap:14px;
  padding:14px 0 5px;margin-top:auto;border-top:1px solid rgba(255,255,255,.24);
}
#content .ops-reception-clock {font-size:18px;font-weight:850;white-space:nowrap}
#content .ops-reception-band span:last-child {display:grid;gap:2px}
#content .ops-reception-band b {font-size:13px}
#content .ops-reception-band small {color:#bcebd8;font-size:11px;line-height:1.35}
#content .ops-reception-note {color:#cde9dd;font-size:11px;line-height:1.45}
#content .ops-reception-actual {color:#e0fff0;font-size:12px;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;padding-top:1px}
#content .ops-reception-actual b {font:850 20px ui-monospace,Consolas,monospace}
#content .ops-reception-actual span {color:#c5ead7}
#content .ops-live-board {
  padding:18px 20px 15px;border:1px solid var(--line);border-radius:16px;
  background:var(--surface);min-height:280px;
  display:flex;flex-direction:column;gap:12px;
}
#content .ops-live-title {display:flex;align-items:center;justify-content:space-between;gap:9px}
#content .ops-live-title h2 {font-size:19px;letter-spacing:-.02em;margin:0}
#content .ops-live-status {
  white-space:nowrap;font-size:11px;font-weight:800;color:#096d45;
  border:1px solid #a5ddc4;border-radius:100px;background:#e9f8ef;padding:6px 10px;
}
#content .ops-live-status.stale {color:#8e6113;background:#fff0d0;border-color:#e4c58f}
#content #opsLivePeople {display:flex;flex-direction:column;gap:7px;max-height:300px;overflow-y:auto;min-height:75px}
#content .ops-person {display:flex;align-items:center;gap:11px;padding:10px 12px;
  background:var(--surface-raised);border:1px solid var(--line);border-radius:9px;}
#content .ops-person-check {
  display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:8px;
  color:white;background:#118a5c;font-weight:900;font-size:17px;
}
#content .ops-person.unplanned .ops-person-check {background:#daa037;color:#312414}
#content .ops-person-main {display:grid;gap:1px;min-width:0;flex:1}
#content .ops-person-main strong {color:var(--ink);font-size:13px}
#content .ops-person-main small {color:var(--ink-3);font-size:11px}
#content .ops-person time {font:800 15px ui-monospace,Consolas,monospace;color:var(--ink-2)}
#content .ops-live-empty,#content .ops-live-offline {
  font-size:13px;line-height:1.5;padding:22px 8px;color:var(--ink-3);
}
#content .ops-live-offline {color:var(--amber)}
#content .ops-live-legend {display:flex;gap:16px;flex-wrap:wrap;color:var(--ink-3);font-size:11px;margin-top:auto}
#content .ops-live-legend span {display:flex;align-items:center;gap:7px}
#content .ops-live-legend i {width:9px;height:9px;border-radius:4px}
#content .ops-live-legend .matched {background:#118a5c}
#content .ops-live-legend .unplanned {background:#daa037}
#content .ops-coverage-board {background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:19px 22px 15px}
#content .ops-board-heading {display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line)}
#content .ops-board-heading h2 {font-size:19px;letter-spacing:-.02em}
#content .ops-board-heading p:last-child {color:var(--ink-3);font-size:12px}
#content .ops-coverage-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
#content .ops-coverage-col {padding:18px 21px 12px;border-right:1px solid var(--line);min-width:0}
#content .ops-coverage-col:first-child {padding-left:0}
#content .ops-coverage-col:last-child {padding-right:0;border-right:0}
#content .ops-coverage-head {display:grid;gap:6px}
#content .ops-coverage-head b {color:var(--ink-2);font-size:13px}
#content .ops-coverage-head strong {font-size:clamp(20px,2.1vw,29px);letter-spacing:-.04em;line-height:1.1}
#content .ops-coverage-head strong span {color:var(--ink-3);font-size:.58em;font-weight:700;letter-spacing:0}
#content .ops-coverage-meter {height:7px;border-radius:20px;background:var(--surface-inset);overflow:hidden;margin:13px 0 7px}
#content .ops-coverage-meter i {display:block;height:100%;background:var(--brand);border-radius:20px}
#content .ops-coverage-col small {color:var(--ink-3);font-size:11px;line-height:1.4}
#content .ops-coverage-foot {display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:11px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-3)}
#content .ops-coverage-foot b {color:var(--ink-2)}
#content .ops-actions {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:10px 3px}
#content .ops-actions > div:first-child {display:grid;gap:3px}
#content .ops-actions strong {color:var(--ink-2);font-size:12px}
#content .ops-actions small {color:var(--ink-3);font-size:11px;line-height:1.45}
#content .ops-action-buttons {display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:920px) {
  #content .ops-today-layout {grid-template-columns:1fr}
  #content .ops-live-board {min-height:0}
}
@media(max-width:640px) {
  #content .ops-heading {align-items:flex-start}
  #content .ops-heading h1 {font-size:26px}
  #content .ops-today-layout {gap:10px}
  #content .ops-hourboard {padding:18px}
  #content .ops-opening {font-size:23px}
  #content .ops-live-board {padding:14px}
  #content .ops-coverage-board {padding:14px}
  #content .ops-coverage-grid {grid-template-columns:1fr}
  #content .ops-coverage-col {padding:15px 0;border-right:0;border-bottom:1px solid var(--line)}
  #content .ops-coverage-col:last-child {border-bottom:0}
  #content .ops-coverage-head {grid-template-columns:1fr auto;align-items:center}
  #content .ops-coverage-meter {margin:7px 0}
  #content .ops-actions {align-items:stretch}
  #content .ops-action-buttons {width:100%}
  #content .ops-action-buttons button {flex:1}
}
:root[data-theme="dark"] #content .ops-live-status {
  color:#c7f7de;background:#144d38;border-color:#2a7955;
}
:root[data-theme="dark"] #content .ops-live-status.stale {
  color:#ffe2a9;background:#49351d;border-color:#8c672d;
}

#content .ops-reception-audit {margin-top:7px;border-top:1px solid rgba(255,255,255,.24);padding-top:11px}
#content .ops-reception-audit summary {cursor:pointer;color:#d8f9e7;font-size:12px;font-weight:800}
#content .ops-reception-audit p {margin:11px 0 7px;font-size:11px;line-height:1.45;color:#c5e5d6}
#content .ops-reception-samples {display:flex;flex-wrap:wrap;gap:5px}
#content .ops-reception-samples span {
  border:1px solid rgba(255,255,255,.22);border-radius:7px;
  padding:5px 7px;font-size:10px;line-height:1.5;
}
#content .ops-reception-samples b {text-transform:capitalize}
#content .ops-reception-samples small {color:#bce9d2}
#content .ops-reception-table {width:100%;border-collapse:collapse;margin:10px 0 2px;font-size:11px}
#content .ops-reception-table th,#content .ops-reception-table td {
  text-align:left;padding:5px 7px;border-bottom:1px solid rgba(255,255,255,.18);
  color:#eafcf2;
}



/* Operativa: cobertura anual y detalle diario */
.ops-coverage-detail{margin:22px 0;padding:24px;border:1px solid var(--border,#31534b);border-radius:18px;background:var(--surface,#102b28);color:inherit}.ops-coverage-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.ops-coverage-controls label{display:flex;gap:8px;align-items:center;font-weight:600}.ops-coverage-controls select{padding:8px 11px;border-radius:8px;border:1px solid #748b85;background:var(--surface-raised,#163d36);color:inherit;min-width:92px}.ops-coverage-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.ops-coverage-kpis>div{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:12px;background:rgba(125,160,145,.12)}.ops-coverage-kpis small{font-size:.85rem;opacity:.8}.ops-coverage-kpis strong{font-size:clamp(1.35rem,2.4vw,2rem);font-variant-numeric:tabular-nums}.ops-coverage-kpis span{font-size:.9rem}.ops-coverage-caption{font-size:.9rem;opacity:.8;line-height:1.5}.ops-coverage-warning{color:#ffd88c;background:rgba(180,110,20,.12);border-radius:8px;padding:10px}.ops-coverage-scroll{overflow-x:auto;margin:16px 0 24px}.ops-coverage-table{width:100%;border-collapse:collapse;font-size:.91rem;font-variant-numeric:tabular-nums}.ops-coverage-table th,.ops-coverage-table td{padding:11px 12px;border-bottom:1px solid rgba(145,170,160,.19);text-align:left;vertical-align:top}.ops-coverage-table th{white-space:nowrap;font-size:.82rem;opacity:.8}.ops-coverage-table tr:hover td{background:rgba(136,190,172,.08)}.ops-coverage-detail h3{font-size:1.1rem;margin-top:22px}.ops-coverage-detail details{padding:9px 0}.ops-coverage-detail summary{cursor:pointer;font-weight:600}.ops-coverage-detail[aria-busy=true]{opacity:.65;pointer-events:none}@media(max-width:720px){.ops-coverage-detail{padding:16px}.ops-coverage-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-coverage-controls{margin-top:12px}.ops-coverage-table{min-width:680px}}

/* El cuadro anual de equidad se desplaza dentro de su tabla, no toda la página. */
#content .quality-annual-balance { min-width:0; max-width:100%; }
#content .quality-annual-balance .table-wrap {
  display:block; min-width:0; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain;
}
#content .quality-annual-balance .data-table {min-width:760px;}


/* 2026-11-09 · Panel operativo: prioridad al % y desglose mensual accionable. */
#content .ops-coverage-board .ops-coverage-col {min-width:0;padding:13px 18px 13px 14px;transition:background .15s ease}
#content .ops-coverage-col .ops-coverage-head {display:flex;align-items:baseline;justify-content:space-between;gap:12px}
#content .ops-coverage-col .ops-commercial-pct{font-size:clamp(24px,2.25vw,35px);font-weight:800;letter-spacing:-.05em;font-variant-numeric:tabular-nums;white-space:nowrap}
#content .ops-coverage-col .ops-coverage-meter {margin:10px 0 7px}
#content .ops-coverage-col small{display:block;font-size:12px;color:var(--ink-2);line-height:1.5}
#content .ops-coverage-col small b{font-weight:750;color:inherit}
#content .ops-coverage-col.is-bad{background:rgba(218,49,63,.075);box-shadow:inset 3px 0 #d72c3d}
#content .ops-coverage-col.is-bad .ops-commercial-pct,
#content .ops-coverage-col.is-bad .ops-cover-gap{color:#b42336}
#content .ops-coverage-col.is-bad .ops-coverage-meter i{background:#d52e42}
#content .ops-coverage-col.is-good .ops-commercial-pct{color:#138450}
#content .ops-cover-gap{display:block;font-size:11px;font-weight:800;margin-top:4px}
#content .ops-coverage-col.is-neutral .ops-commercial-pct{color:var(--ink-2)}
#content .ops-annual-reports{margin:14px 0;display:grid;gap:10px;min-width:0}
#content .ops-reports-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:13px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
#content .ops-reports-controls h2{margin:0 0 3px;font-size:17px;line-height:1.25;letter-spacing:-.02em}
#content .ops-reports-controls small{display:block;font-size:12px;color:var(--ink-3);line-height:1.45;max-width:760px}
#content .ops-reports-controls .ops-coverage-controls{margin:0;gap:8px}
#content .ops-coverage-controls label{font-size:12px;display:flex;align-items:center;gap:6px;white-space:nowrap}
#content .ops-coverage-controls select{border:1px solid var(--line);background:var(--surface);color:var(--ink-1);min-width:100px;min-height:36px;padding:6px 9px;border-radius:8px}
#content .ops-coverage-detail{margin:0;padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0}
#content .ops-report-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
#content .ops-report-heading h2{font-size:16px;line-height:1.3;margin:2px 0 0;letter-spacing:-.02em}
#content .ops-report-heading .eyebrow{margin:0;font-size:10px}
#content .ops-coverage-detail .ops-coverage-kpis{margin:14px 0 10px;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}
#content .ops-coverage-detail .ops-report-kpi{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:94px;min-width:0;padding:13px;border:1px solid var(--line);background:var(--surface-2,var(--surface));border-radius:10px}
#content .ops-report-kpi small{opacity:1;color:var(--ink-3);font-weight:700;font-size:11px}
#content .ops-report-kpi strong{font-size:clamp(21px,2vw,28px);letter-spacing:-.035em;color:var(--ink-1);font-variant-numeric:tabular-nums;line-height:1.2}
#content .ops-report-kpi span{color:var(--ink-3);font-size:11px;line-height:1.3;font-variant-numeric:tabular-nums}
#content .ops-report-kpi.is-bad{border-color:rgba(215,44,61,.55);background:rgba(215,44,61,.08);box-shadow:inset 3px 0 #d72c3d}
#content .ops-report-kpi.is-bad strong,#content .ops-report-summary.is-bad b{color:#b42336}
#content .ops-report-kpi.is-good{border-color:rgba(22,142,92,.35)}
#content .ops-report-kpi.is-good strong{color:#138450}
#content .ops-report-kpi.is-unknown{border-color:rgba(187,122,13,.45);background:rgba(187,122,13,.08)}
#content .ops-report-kpi.is-unknown strong{color:#a56312}
#content .ops-report-summary{font-size:12px;color:var(--ink-2);margin:7px 0 0}
#content .ops-coverage-detail .ops-coverage-warning{font-size:12px;line-height:1.4;margin:8px 0 0;border:1px solid rgba(191,131,29,.28);padding:8px;border-radius:8px;background:rgba(191,131,29,.1);color:var(--ink-1)}
#modal .ops-coverage-scroll{overflow:auto;overscroll-behavior-inline:contain;max-height:none}
#modal .ops-coverage-table{border-collapse:collapse;font-size:12px;min-width:700px}
#modal .ops-coverage-table td,#modal .ops-coverage-table th{padding:8px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:middle}
#modal .ops-coverage-table thead th{position:sticky;top:0;background:var(--surface);z-index:1}
#modal .ops-coverage-table .ops-month-alert{background:rgba(218,49,63,.10);box-shadow:inset 4px 0 #d52e42}
#modal .ops-coverage-table .ops-month-alert .ops-pct{color:#b42336;font-weight:800}
#modal .ops-coverage-table .ops-month-unknown{background:rgba(199,133,27,.12);box-shadow:inset 4px 0 #c88920}
#modal .ops-coverage-table .ops-month-unknown .ops-pct{color:#97600c;font-weight:800}
:root[data-theme="dark"] #modal .ops-coverage-table .ops-month-unknown .ops-pct{color:#ffd38a}
#modal .ops-coverage-table .ops-month-ok .ops-pct{color:#118550;font-weight:750}
#modal .modal-body:has(.ops-coverage-table){max-height:min(70vh,820px);overflow-y:auto}
#modal:has(.ops-coverage-table){width:min(1120px,95vw);max-width:min(1120px,95vw)}
#modal .ops-coverage-table [data-ops-report-month]{min-height:32px;font-size:11px;padding:4px 9px}
:root[data-theme="dark"] #content .ops-coverage-col.is-bad .ops-commercial-pct,
:root[data-theme="dark"] #content .ops-coverage-col.is-bad .ops-cover-gap,
:root[data-theme="dark"] #content .ops-report-kpi.is-bad strong,
:root[data-theme="dark"] #content .ops-report-summary.is-bad b,
:root[data-theme="dark"] #modal .ops-month-alert .ops-pct{color:#ff8c93}
:root[data-theme="dark"] #content .ops-report-kpi.is-good strong,
:root[data-theme="dark"] #content .ops-coverage-col.is-good .ops-commercial-pct{color:#7ce6b1}
:root[data-theme="dark"] #content .ops-report-kpi.is-unknown strong{color:#ffd38a}

/* Planificador de barras: dias como paneles, personas por columnas, tiempo en Y. */
#content .wm-compact-mode .mobile-planner,
#content .wm-compact-mode .planner-footnote{display:none!important}
#content .wm-compact-mode .planner-card-head .planner-legend{display:none}
#content .wbar-wrap{display:block;width:100%;min-width:0;background:var(--surface);color:var(--ink-1);padding:12px}
#content .wbar-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
#content .wbar-daytabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:300px;flex:1;max-width:600px;gap:4px}
#content .wbar-daytabs button{min-height:48px;border:1px solid var(--line);background:var(--surface);border-radius:7px;color:var(--ink-2);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;cursor:pointer;font-size:11px;text-transform:capitalize}
#content .wbar-daytabs button b{font-size:16px;font-variant-numeric:tabular-nums}
#content .wbar-daytabs button.is-active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(0,95,78,.18)}
#content .wbar-daytabs button.is-today:not(.is-active){box-shadow:inset 0 0 0 1px var(--brand)}
#content .wbar-daytabs button:focus-visible,
#content .wbar-shift:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
#content .wbar-key{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:11px;color:var(--ink-3)}
#content .wbar-key span{display:flex;align-items:center;gap:5px;white-space:nowrap}
#content .wbar-key i{width:13px;height:13px;display:inline-block;border-radius:3px;border:1px solid rgba(50,70,80,.3)}
#content .wbar-legend-plan{background:#8ad6ba}
#content .wbar-legend-real{background:#146748}
#content .wbar-legend-outside{background:repeating-linear-gradient(45deg,#f3ca6c 0 4px,#b35c1f 4px 8px)}
#content .wbar-source{font-size:11px;color:var(--ink-3);padding:8px 2px 11px}
#content .wbar-source-error{color:#b42336;font-weight:700}
#content .wbar-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;align-items:start;min-width:0}
#content .wbar-day{min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
#content .wbar-day-header{display:flex;justify-content:space-between;align-items:start;gap:6px;padding:11px;border-bottom:1px solid var(--line);min-height:65px;background:var(--surface-2,var(--surface))}
#content .wbar-day-header b{display:block;font-size:13px;text-transform:capitalize}
#content .wbar-day-header small{display:block;font-size:10px;color:var(--ink-3);margin-top:4px}
#content .wbar-openlabel{font-size:10px;font-weight:700;color:var(--brand);text-align:right;max-width:125px;line-height:1.4}
#content .wbar-openlabel.is-closed{color:var(--ink-3)}
#content .wbar-headers{display:flex;position:relative;padding-left:46px;min-height:52px;align-items:stretch;border-bottom:1px solid var(--line)}
#content .wbar-axis-title{position:absolute;left:5px;top:16px;font-size:9px;color:var(--ink-3);letter-spacing:.04em}
#content .wbar-header-person{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;font-size:10px;font-weight:800;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:1px solid var(--line);padding:4px 2px;color:var(--ink-2)}
#content .wbar-header-person i{display:block;height:5px;width:70%;border-radius:8px;background:var(--wbar-color);flex:none}
#content .wbar-header-empty{font-size:11px;color:var(--ink-3);padding:15px}
#content .wbar-chart{display:grid;grid-template-columns:46px minmax(0,1fr);overflow:hidden}
#content .wbar-timeaxis{position:relative;background:var(--surface-2,var(--surface));border-right:1px solid var(--line)}
#content .wbar-hour{position:absolute;right:6px;transform:translateY(-50%);font-size:10px;line-height:1;font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums;pointer-events:none}
#content .wbar-content{position:relative;overflow:hidden;min-width:0}
#content .wbar-open-range{position:absolute;left:0;right:0;background:rgba(15,155,102,.055);border-left:3px solid rgba(15,155,102,.26);pointer-events:none}
#content .wbar-gridline{position:absolute;left:0;right:0;border-top:1px dashed var(--line);pointer-events:none}
#content .wbar-lanes{position:absolute;inset:0;display:grid;pointer-events:none}
#content .wbar-person{position:relative;min-width:0;border-right:1px solid var(--line);pointer-events:auto}
#content .wbar-person:last-child{border-right:0}
#content .wbar-person-head{display:none}
#content .wbar-lane{position:relative;min-width:0;cursor:crosshair}
#content .wbar-shift{position:absolute;left:12%;width:76%;min-height:8px;border:1px solid var(--wbar-color);border-radius:6px;cursor:pointer;background:color-mix(in srgb,var(--wbar-color) 53%,white);color:#102b28;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15);overflow:hidden;padding:0;z-index:2}
#content .wbar-shift:hover{outline:2px solid var(--wbar-color);outline-offset:1px;z-index:5}
#content .wbar-lane.is-drop-target{background:rgba(8,149,101,.18);outline:2px dashed var(--brand);outline-offset:-3px}
#content .wbar-shift.is-dragging{opacity:.48}
#content .wbar-wrap.is-diff .wbar-shift:not(.is-change){opacity:.2}
#content .wbar-wrap.is-diff .wbar-shift.is-change{outline:3px solid #d78a25;outline-offset:1px;z-index:6}
#content .wbar-plan-label{position:absolute;left:50%;top:7px;transform:translateX(-50%);writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;font-size:10px;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1;letter-spacing:.01em;z-index:4;pointer-events:none}
#content .wbar-real{position:absolute;left:0;right:0;display:block;background:color-mix(in srgb,var(--wbar-color) 72%,#111);border-left:3px solid rgba(0,0,0,.3);pointer-events:none;z-index:3;opacity:.9}
#content .wbar-live{background:repeating-linear-gradient(145deg,color-mix(in srgb,var(--wbar-color) 67%,#111) 0 8px,color-mix(in srgb,var(--wbar-color) 80%,#111) 8px 13px)}
#content .wbar-real-outside{position:absolute;left:16%;width:68%;pointer-events:none;border:2px dashed #a76519;background:repeating-linear-gradient(45deg,rgba(243,194,76,.62) 0 7px,rgba(179,92,31,.55) 7px 14px);border-radius:5px;z-index:3}
#content .wbar-empty{font-size:12px;display:grid;place-items:center;text-align:center;color:var(--ink-3);padding:12px}
#content .wbar-day-unassigned .wbar-empty-state{min-height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;text-align:center}
#content .wbar-day-unassigned .wbar-empty-state strong{font-size:12px;color:var(--ink-2)}
#content .wbar-day-unassigned .wbar-empty-state small{font-size:10px;color:var(--ink-3);line-height:1.4}
#content .wbar-day-unassigned.has-opening .wbar-empty-state strong{color:var(--danger,#c95047)}
#content .wbar-end{display:flex;justify-content:space-between;gap:8px;padding:8px 11px;border-top:1px solid var(--line);font-size:10px;color:var(--ink-3)}
#content .wbar-end b{font-size:10px;color:var(--ink-2)}
#content .wbar-hint{font-size:11px;color:var(--ink-3);margin:12px 2px 0;line-height:1.5}
:root[data-theme="dark"] #content .wbar-shift{color:#072017;background:color-mix(in srgb,var(--wbar-color) 66%,#e7f2ee)}
:root[data-theme="dark"] #content .wbar-plan-label{color:#0b2520}
@media(max-width:1200px){#content .wbar-days{gap:8px}}
@media(max-width:800px){
  #content .ops-reports-controls{align-items:stretch}
  #content .ops-coverage-detail .ops-coverage-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  #content .ops-report-heading .button{width:100%}
  #content .wbar-wrap{padding:8px}
  #content .wbar-days{grid-template-columns:minmax(0,1fr)}
  #content .wbar-day{min-width:0}
  #content .wbar-toolbar{display:block}
  #content .wbar-daytabs{min-width:0;width:100%;max-width:none;gap:3px}
  #content .wbar-key{margin-top:8px;gap:9px;font-size:10px}
  #content .wbar-day-header{min-height:58px}
  #content .wbar-openlabel{max-width:40%}
  #content .wbar-chart{grid-template-columns:43px minmax(0,1fr)}
  #content .wbar-headers{padding-left:43px}
}
@media(max-width:410px){
  #content .wbar-daytabs button{min-height:44px;font-size:9px}
  #content .wbar-daytabs button b{font-size:14px}
  #content .ops-reports-controls .ops-coverage-controls{width:100%}
  #content .ops-coverage-controls label{flex:1}
  #content .ops-coverage-controls select{width:100%;min-width:0}
  #content .ops-coverage-detail .ops-report-kpi{padding:9px;min-height:78px}
  #content .ops-report-kpi strong{font-size:21px}
}


/* 2026-11-09 · Weekly bars: actual closing time, after-hours work and truthful color key. */
#content .wbar-key{row-gap:7px}
#content .wbar-key-title{color:var(--ink-2);font-weight:750;font-size:11px;white-space:nowrap}
#content .wbar-key .wbar-legend-plan{background:color-mix(in srgb,var(--wbar-color) 53%,white);border:1px solid var(--wbar-color)}
#content .wbar-key .wbar-legend-real{background:color-mix(in srgb,var(--wbar-color) 72%,#111);border-left:3px solid rgba(0,0,0,.3)}
#content .wbar-key .wbar-legend-live{background:repeating-linear-gradient(145deg,color-mix(in srgb,var(--wbar-color) 67%,#111) 0 8px,color-mix(in srgb,var(--wbar-color) 80%,#111) 8px 13px)}
#content .wbar-key .wbar-legend-outside{border:2px dashed #a76519;background:repeating-linear-gradient(45deg,rgba(243,194,76,.62) 0 7px,rgba(179,92,31,.55) 7px 14px)}
#content .wbar-afterhours{position:absolute;left:0;right:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(135deg,rgba(100,116,139,.07) 0 9px,rgba(100,116,139,.12) 9px 18px)}
#content .wbar-closing-rule{position:absolute;left:0;right:0;pointer-events:none;border-top:2px solid #6d7f92;z-index:1}
#content .wbar-hour-first{transform:translateY(0)}
#content .wbar-hour-close{color:var(--ink-1);font-weight:850;background:var(--surface-2,var(--surface));border:1px solid #8090a1;border-radius:4px;padding:2px 3px;right:2px;z-index:2}
#content .wbar-key .wbar-legend-afterhours{border-top:2px solid #6d7f92;background:repeating-linear-gradient(135deg,rgba(100,116,139,.07) 0 9px,rgba(100,116,139,.12) 9px 18px)}
#content .wbar-wrap .wbar-plan-label{max-height:calc(100% - 10px);overflow:hidden;background:rgba(255,255,255,.72);border-radius:3px;padding:2px 1px}
:root[data-theme="dark"] #content .wbar-key .wbar-legend-plan{background:color-mix(in srgb,var(--wbar-color) 66%,#e7f2ee)}
:root[data-theme="dark"] #content .wbar-wrap .wbar-plan-label{background:rgba(232,243,238,.8)}

/* 2026-11-11 | Coherencia visual y contraste, paleta compartida en ambos temas. */
.sidebar,
:root[data-theme="dark"] .sidebar {
  background:var(--sidebar-bg);color:var(--sidebar-ink);
  border-right-color:color-mix(in srgb,var(--sidebar-ink) 14%,transparent);
}
.sidebar .sidebar-brand strong,
:root[data-theme="dark"] .sidebar .sidebar-brand strong,
.sidebar .session-card b {color:var(--sidebar-ink)}
.sidebar .sidebar-brand small,.sidebar .session-card small {color:var(--sidebar-muted)}
.sidebar .sidebar-brand,.sidebar .sidebar-foot {
  border-color:color-mix(in srgb,var(--sidebar-ink) 15%,transparent);
}
.sidebar .brand-mark {background:color-mix(in srgb,var(--sidebar-active) 25%,var(--sidebar-bg));color:#fff}
.sidebar .session-card {
  background:color-mix(in srgb,var(--sidebar-ink) 7%,transparent);
  border:1px solid color-mix(in srgb,var(--sidebar-ink) 13%,transparent);
}
.sidebar .session-avatar {background:color-mix(in srgb,var(--sidebar-ink) 13%,transparent);color:var(--sidebar-ink)}
.sidebar .compact-nav button.active,
:root[data-theme="dark"] .sidebar .compact-nav button.active {
  background:color-mix(in srgb,var(--sidebar-ink) 15%,transparent);
  color:var(--sidebar-ink);
  box-shadow:inset 3px 0 var(--sidebar-active);
}
.sidebar .compact-nav button.active svg,
:root[data-theme="dark"] .sidebar .compact-nav button.active svg {color:var(--sidebar-active)}
:root[data-theme="dark"] .sidebar .compact-nav button:hover,
:root[data-theme="dark"] .sidebar .compact-nav-help button:hover {
  background:color-mix(in srgb,var(--sidebar-ink) 12%,transparent);
  color:var(--sidebar-ink);
}
/* Barras, pestañas y acciones usan el mismo acento verde del resto del producto. */
.compact-section-bar,
:root[data-theme="dark"] .compact-section-bar {
  background:var(--surface-inset);border-bottom-color:var(--line);
}
.compact-tab,
:root[data-theme="dark"] .compact-tab {color:var(--ink-2)}
.compact-tab:hover,
:root[data-theme="dark"] .compact-tab:hover {background:var(--brand-faint);color:var(--brand-strong)}
.compact-tab.active,
:root[data-theme="dark"] .compact-tab.active {background:var(--brand-soft);color:var(--brand-strong)}
.compact-action,
:root[data-theme="dark"] .compact-action {
  background:var(--surface);color:var(--ink-2);border-color:var(--line-strong);
}
.compact-action:hover,
:root[data-theme="dark"] .compact-action:hover {background:var(--brand-faint);color:var(--brand-strong)}
.compact-create-trigger {background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
.compact-create-trigger:hover {background:var(--brand-hover);border-color:var(--brand-hover)}
:root[data-theme="dark"] .compact-create-trigger,
:root[data-theme="dark"] .compact-create-trigger:hover {background:#117853;border-color:#268961;color:#fff}
.compact-create-menu,
:root[data-theme="dark"] .compact-create-menu,
.compact-extra-menu,
:root[data-theme="dark"] .compact-extra-menu {
  background:var(--surface-raised);border-color:var(--line-strong);
}
.compact-create-menu .compact-menu-item,
:root[data-theme="dark"] .compact-create-menu .compact-menu-item,
.compact-extra-menu .compact-menu-item,
:root[data-theme="dark"] .compact-extra-menu .compact-menu-item {color:var(--ink)}
.compact-create-menu .compact-menu-item:hover,
:root[data-theme="dark"] .compact-create-menu .compact-menu-item:hover,
.compact-extra-menu .compact-menu-item:hover,
:root[data-theme="dark"] .compact-extra-menu .compact-menu-item:hover {
  background:var(--brand-soft);color:var(--brand-strong);
}
.compact-settings-tabs,
:root[data-theme="dark"] .compact-settings-tabs {background:var(--surface-inset)}
.compact-settings-tab,
:root[data-theme="dark"] .compact-settings-tab {color:var(--ink-2)}
.compact-settings-tab.active,
:root[data-theme="dark"] .compact-settings-tab.active {
  background:var(--surface-raised);color:var(--brand-strong);
}
.compact-extra-mobile summary,
:root[data-theme="dark"] .compact-extra-mobile summary {
  background:var(--surface);color:var(--ink-2);border-color:var(--line-strong);
}
.compact-settings-tab:focus-visible,.compact-tab:focus-visible,
.compact-create-trigger:focus-visible,.compact-extra-mobile summary:focus-visible {
  outline:2px solid var(--focus-ring);outline-offset:2px;
}

/* En oscuro, los totales M/T/N/F pasan de colores pastel claros a tintas legibles. */
:root[data-theme="dark"] #content .month-table tfoot th {
  background:#172b2d;color:#e0efe8;border-color:var(--line);
}
:root[data-theme="dark"] #content .month-table tfoot td {
  background:var(--surface-raised);color:var(--ink-2);
  border-color:var(--line);font-weight:790;
}
:root[data-theme="dark"] #content .month-table tfoot tr.type-morning td {
  background:#432b42;color:#f6d5f4;
}
:root[data-theme="dark"] #content .month-table tfoot tr.type-afternoon td {
  background:#173e42;color:#c5f4f5;
}
:root[data-theme="dark"] #content .month-table tfoot tr.type-night td {
  background:#2b3146;color:#d7e2ff;
}
:root[data-theme="dark"] #content .month-table tfoot tr.type-pharmacist td,
:root[data-theme="dark"] #content .month-table tfoot tr.type-pharmacist th {
  background:#1d4033;color:#d7f4e3;
}
:root[data-theme="dark"] #content .month-table tfoot td.weekend {
  filter:none;box-shadow:inset 0 0 0 9999px rgba(0,0,0,.10);
}

/* Planificador por horas: columnas de empleados más compactas y más días útiles. */
#content .wbar-days {grid-template-columns:repeat(var(--wbar-visible,3),minmax(0,1fr))}
#content .wbar-day-header {padding:9px 7px;gap:4px}
#content .wbar-openlabel {max-width:106px;font-size:9px}
#content .wbar-chart {grid-template-columns:36px minmax(0,1fr)}
#content .wbar-headers {padding-left:36px}
#content .wbar-axis-title {left:2px;font-size:9px}
#content .wbar-hour {right:3px;font-size:9px}
#content .wbar-header-person {font-size:9px;gap:3px;padding:4px 1px;letter-spacing:-.01em}
#content .wbar-header-person i {width:82%;height:4px}
#content .wbar-shift {left:9%;width:82%}
#content .wbar-plan-label {font-size:9px}
@media(max-width:800px){
  #content .wbar-chart {grid-template-columns:36px minmax(0,1fr)}
  #content .wbar-headers {padding-left:36px}
}
/* Vista alternativa: nombre y horas sin avatar ni categoria redundante. */
#content .wm-col-person {width:82px}
#content .wm-person {padding:6px 4px 6px 7px}
#content .wm-person-dot {display:none}
#content .wm-person-identity strong {font-size:11px}
#content .wm-person-identity small {display:none}
#content .wm-person-identity em {font-size:10px}
@container (max-width:880px){
  #content .wm-col-person {width:72px}
  #content .wm-person {padding:5px 3px 5px 5px}
}
@container (max-width:640px){
  #content .wm-col-person {width:68px}
}

/* Modo oscuro: tarjetas historicas y herramientas del planificador. */
.wm-tools summary,
:root[data-theme="dark"] .wm-tools summary {
  background:var(--surface);color:var(--ink-2);border-color:var(--line-strong);
}
.wm-tools[open] summary,
:root[data-theme="dark"] .wm-tools[open] summary {
  background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand);
}
.wm-tools summary::after {color:currentColor}
.wm-tools-panel,
:root[data-theme="dark"] .wm-tools-panel {
  background:var(--surface-raised);border-color:var(--line-strong);
}
:root[data-theme="dark"] #content .inactive-team-card {
  background:var(--surface-raised);color:var(--ink);border-color:var(--line-strong);
}
:root[data-theme="dark"] #content .inactive-team-avatar {
  background:var(--surface-inset);color:var(--ink-2);
}
:root[data-theme="dark"] #content .inactive-team-info strong {color:var(--ink)}
:root[data-theme="dark"] #content .inactive-team-info small {color:var(--ink-3)}
:root[data-theme="dark"] #content .inactive-team-actions {border-top-color:var(--line)}

/* 2026-11-12: seven-day weekly calendar and theme-aware outer corners.
   Grid column count only controls wrapping; it must never hide week dates. */
#content .wm-compact-mode > .planner-card.surface {
  border-color:var(--line);
  background:var(--surface);
  background-clip:padding-box;
  box-shadow:none;
}


/* Planificación: barras semanales estrechas y cromática de cada empleado. */
#content .wbar-shift{left:32%;width:36%;border-radius:999px;min-width:9px;
  background:var(--wbar-color);border:1px solid color-mix(in srgb,var(--wbar-color) 74%,black);color:transparent}
#content .wbar-plan-label{display:none!important}
#content .wbar-real{opacity:.55;border-left:2px solid rgba(0,0,0,.45);border-radius:999px}
#content .wbar-real-outside{left:33%;width:34%;border-radius:999px}
#content .wbar-header-person i{height:7px;width:38%;border-radius:999px}

/* Planificación mensual: cinco franjas y puntos de presencia, sin códigos M/T/C. */
#content .mb-scroll{overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:6px}
#content .mb-matrix{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:980px}
#content .mb-matrix th,#content .mb-matrix td{box-sizing:border-box;text-align:center;border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);vertical-align:middle;padding:0}
#content .mb-matrix .mb-corner,#content .mb-matrix .mb-band{width:116px;min-width:116px;text-align:left;
  position:sticky;left:0;z-index:3;background:var(--surface);padding:0 10px;font-size:12px;font-weight:750}
#content .mb-matrix .mb-corner{z-index:5}
#content .mb-matrix .mb-day{height:49px;position:relative;background:var(--surface)}
#content .mb-matrix .mb-day.is-weekend{background:var(--surface-inset)}
#content .mb-matrix .mb-day.is-today{box-shadow:inset 0 3px 0 var(--brand)}
#content .mb-matrix .mb-day.is-closed{opacity:.65}
#content .mb-matrix .mb-day button{width:100%;min-height:48px;border:0;background:transparent;display:grid;
  justify-items:center;align-content:center;gap:1px;color:var(--ink-2);cursor:pointer;padding:2px 0}
#content .mb-matrix .mb-day b{font-size:13px;font-variant-numeric:tabular-nums}
#content .mb-matrix .mb-day small{font-size:9px;color:var(--ink-3)}
#content .mb-guard,#content .mb-alert{position:absolute;width:5px;height:5px;bottom:3px;border-radius:50%;background:var(--brand)}
#content .mb-alert{background:var(--danger);right:25%}
#content .mb-guard{left:25%}
#content .mb-matrix .mb-slot{height:76px;position:relative}
#content .mb-dots{display:flex;align-items:center;justify-content:center;align-content:center;
  gap:3px;flex-wrap:wrap;min-height:62px;padding:7px 1px}
#content .mb-dot{appearance:none;width:11px;height:11px;min-width:11px;min-height:11px;
  flex:none;border-radius:50%;background:var(--mb-color);border:1px solid color-mix(in srgb,var(--mb-color) 72%,black);
  box-shadow:0 0 0 2px var(--surface);padding:0;cursor:pointer}
#content .mb-dot:hover{transform:scale(1.25);box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--mb-color);z-index:2}
#content .mb-dot:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
#content .mb-add{position:absolute;top:1px;right:1px;width:16px;height:16px;background:var(--surface-inset);color:var(--ink-3);border:1px solid var(--line);
  border-radius:50%;cursor:pointer;font-size:12px;line-height:12px;padding:0;opacity:0;pointer-events:none;z-index:2}
#content .mb-slot:hover .mb-add,#content .mb-add:focus-visible{opacity:1;pointer-events:auto}
@media(hover:none){#content .mb-add{opacity:.55;pointer-events:auto}}
#content .mb-legend{display:flex;align-items:center;gap:7px 14px;flex-wrap:wrap;margin:13px 0 0}
#content .mb-legend-person{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-2)}
#content .mb-legend-person i{width:11px;height:11px;border-radius:50%;display:inline-block}
#content .mb-matrix .mb-band{background:var(--surface-inset);letter-spacing:-.015em}
@media(min-width:1350px){#content .mb-dot{width:15px;height:15px;min-width:15px;min-height:15px}#content .mb-matrix{min-width:0}#content .mb-matrix .mb-slot{height:66px}
  #content .mb-matrix .mb-day{height:42px}#content .mb-matrix .mb-day button{min-height:42px}}
@media(max-width:700px){#content .mb-matrix{min-width:980px}#content .mb-matrix .mb-band,
  #content .mb-matrix .mb-corner{width:106px;min-width:106px;padding-left:7px;font-size:11px}}
@media(prefers-reduced-motion:reduce){#content .mb-dot:hover{transform:none}}
