.dashboard{--dash-line:#dce7ef;--dash-soft:#f6fafe;--dash-ink:#183449;--dash-muted:#617789;display:grid;gap:14px;color:var(--dash-ink)}
.dashboard .card{margin:0;border-color:var(--dash-line);box-shadow:0 3px 12px #17344d0c}
.dashboard-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 16px;padding:1px 2px}
.dashboard-layout-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:12px}.dashboard-layout-actions button{min-height:32px;padding:5px 10px;font-size:.76rem}.dashboard-layout-actions [data-dashboard-layout="edit"]{border:1px solid var(--dash-line);background:var(--dash-soft);color:var(--dash-ink)}
.dashboard-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.dashboard-tile{grid-column:span var(--dashboard-span);min-width:0}.dashboard-tile>.dashboard-panel{height:100%}.dashboard-tile .dashboard-metrics{height:100%}.dashboard-layout.is-editing .dashboard-tile{border:1px dashed #3894c8;border-radius:11px;padding:5px}.dashboard-layout.is-editing .dashboard-tile.is-drop-target{outline:3px solid #3894c8;outline-offset:2px}.dashboard-layout.is-editing .dashboard-tile.is-dragging{opacity:.55}.dashboard-layout.is-editing .dashboard-tile>.dashboard-panel,.dashboard-layout.is-editing .dashboard-tile>.dashboard-metrics{pointer-events:none}.dashboard-edit-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:5px;padding:5px;border-radius:7px;background:var(--dash-soft);font-size:.75rem}.dashboard-edit-controls button,.dashboard-edit-controls select{min-height:28px;padding:3px 7px;color:var(--dash-ink);background:transparent;border:1px solid var(--dash-line);border-radius:5px}.dashboard-edit-controls button:focus-visible,.dashboard-edit-controls select:focus-visible,.dashboard-layout-actions button:focus-visible{outline:2px solid #399cda;outline-offset:2px}.dashboard-drag-handle{cursor:grab}.dashboard-drag-handle:active{cursor:grabbing}.dashboard-edit-move{display:flex;gap:3px;margin-left:auto}.dashboard-edit-controls label{display:flex;align-items:center;gap:5px}
.dashboard-tile-metrics .dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-tile-metrics{container-type:inline-size}.dashboard-tile-agenda,.dashboard-tile-programs,.dashboard-tile-config{container-type:inline-size}
@container (max-width:700px){.dashboard-tile-metrics .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-program-list{grid-template-columns:1fr}.dashboard-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:430px){.dashboard-activity,.dashboard-attention .dashboard-activity{grid-template-columns:54px minmax(0,1fr) auto;gap:6px}.dashboard-activity .dashboard-status{grid-column:2;grid-row:2;justify-self:start}.dashboard-activity .dashboard-action{grid-column:3;grid-row:1/3}.dashboard-day-stepper strong{min-width:0}.dashboard-week-days{grid-template-columns:repeat(7,minmax(0,1fr))}.dashboard-week-day small{display:none}.dashboard-panel-heading{align-items:start;flex-wrap:wrap}}
.dashboard-heading h2{font-size:1.28rem;line-height:1.25;margin:0}.dashboard-heading p{margin:0;color:var(--dash-muted);font-size:.84rem}.dashboard-heading>small{margin-left:auto;color:var(--dash-muted);text-align:right;font-size:.75rem}
.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-metric{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:91px;padding:16px 18px;border:1px solid var(--dash-line);border-radius:10px;background:#fff}.dashboard-metric strong{font-size:1.9rem;line-height:1.05;color:#0876bb}.dashboard-metric span{font-size:.84rem;font-weight:650}.dashboard-metric.is-pending strong{color:#b57613}.dashboard-metric.is-warning strong{color:#c74450}
.dashboard-main{display:grid;gap:14px}.dashboard-panel{min-width:0}.dashboard-panel-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:12px}.dashboard-panel-heading h3{font-size:1.05rem;margin:2px 0 0}.dashboard-panel-heading>span,.dashboard-panel-heading>button{font-size:.76rem;color:var(--dash-muted);white-space:nowrap}.dashboard-panel .eyebrow{color:#447e9f;opacity:1;font-size:.67rem;font-weight:700}
.dashboard-activity-list,.dashboard-changes-list{list-style:none;margin:0;padding:0}.dashboard-activity{display:grid;grid-template-columns:69px minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:62px;padding:8px 0;border-top:1px solid var(--dash-line)}.dashboard-activity-time{color:#2473a3;font-size:.83rem;font-weight:750;line-height:1.25}.dashboard-attention .dashboard-activity{grid-template-columns:minmax(88px,auto) minmax(0,1fr) auto auto}.dashboard-attention .dashboard-activity-time{font-size:.73rem}.dashboard-activity-copy{min-width:0;display:grid;gap:3px}.dashboard-activity-copy strong{font-size:.84rem;overflow-wrap:anywhere}.dashboard-activity-copy small{color:var(--dash-muted);line-height:1.3;overflow-wrap:anywhere}.dashboard-status{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:999px;background:#e7f0f6;color:#3c657e;font-size:.7rem;font-weight:700;white-space:nowrap}.dashboard-status.is-complete{background:#e1f4e9;color:#176b3d}.dashboard-status.is-pending{background:#fff1d5;color:#865800}.dashboard-status.is-warning,.dashboard-status.is-exception{background:#ffe8e6;color:#a53336}.dashboard-action,.dashboard-text-action{padding:5px 8px;border:0;background:transparent;color:#0876bb;font-size:.76rem;font-weight:750;white-space:nowrap}.dashboard-action:hover,.dashboard-text-action:hover{text-decoration:underline;background:transparent}.dashboard-action:focus-visible,.dashboard-text-action:focus-visible,.dashboard-week-day:focus-visible{outline:2px solid #399cda;outline-offset:2px}.dashboard-empty{margin:12px 0 2px;padding:15px;border:1px dashed var(--dash-line);border-radius:8px;color:var(--dash-muted);font-size:.86rem}.dashboard-more{display:block;margin-top:10px;color:var(--dash-muted)}
.dashboard-day-navigation{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px}.dashboard-day-stepper,.dashboard-day-tools{display:flex;align-items:center;gap:6px}.dashboard-day-stepper strong{min-width:190px;text-align:center;font-size:.86rem}.dashboard-day-stepper button{width:34px;height:34px;padding:0;border:1px solid var(--dash-line);border-radius:8px;background:var(--dash-soft);color:var(--dash-ink);font-size:1.35rem;line-height:1}.dashboard-day-tools button{min-height:34px;padding:5px 9px;border:1px solid var(--dash-line);border-radius:8px;background:var(--dash-soft);color:var(--dash-ink);font-size:.77rem;font-weight:700}.dashboard-day-navigation button:hover{border-color:#3894c8;background:#e5f5ff}.dashboard-day-navigation button:focus-visible{outline:2px solid #399cda;outline-offset:2px}.dashboard-day-navigation button[hidden]{display:none}.dashboard-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:10px}.dashboard-week-days[hidden]{display:none}.dashboard-day-content{margin-top:12px}.dashboard-week-day{display:grid;justify-items:center;gap:1px;min-width:0;padding:10px 4px;border:1px solid var(--dash-line);border-radius:9px;background:var(--dash-soft);color:var(--dash-ink)}.dashboard-week-day:hover,.dashboard-week-day.is-selected{border-color:#3894c8;background:#e5f5ff}.dashboard-week-day.is-today{border-color:#2388c7;box-shadow:inset 0 0 0 1px #2388c7}.dashboard-week-day span,.dashboard-week-day small{color:var(--dash-muted);font-size:.69rem}.dashboard-week-day strong{font-size:.96rem}.dashboard-week-day b{margin-top:5px;color:#0876bb;font-size:1.13rem}
.dashboard-program-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-program{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px 10px;min-width:0;padding:12px;border:1px solid var(--dash-line);border-radius:8px;background:var(--dash-soft)}.dashboard-program-name,.dashboard-program.is-missing>div:first-child{grid-column:1;grid-row:1;display:grid;gap:3px;min-width:0}.dashboard-program-name strong,.dashboard-program>div:first-child strong{font-size:.83rem}.dashboard-program-name small,.dashboard-program>div:first-child small{display:block;color:var(--dash-muted);font-size:.73rem}.dashboard-progress{grid-column:1;grid-row:2;height:8px;border-radius:99px;background:#e0edf4;overflow:hidden}.dashboard-progress span{display:block;height:100%;border-radius:inherit;background:#298ec6}.dashboard-program-percent{grid-column:2;grid-row:2;font-size:.76rem;font-weight:750;color:#0876bb}.dashboard-program>.dashboard-status{grid-column:2;grid-row:1}.dashboard-program>.dashboard-action{grid-column:3;grid-row:1/3}.dashboard-program-issues{grid-column:1/-1;grid-row:3;color:#a56010;font-size:.72rem}.dashboard-program.is-missing>.dashboard-action{grid-row:1}
.dashboard-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dashboard-config-grid>div{display:grid;gap:3px;padding:11px;border:1px solid var(--dash-line);border-radius:8px;background:var(--dash-soft)}.dashboard-config-grid strong{font-size:1.35rem;color:#0876bb}.dashboard-config-grid span{font-size:.71rem;color:var(--dash-muted)}.dashboard-changes-list li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--dash-line);font-size:.79rem}.dashboard-changes-list small{color:var(--dash-muted);white-space:nowrap}
.dashboard-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
html[data-theme="dark"] .dashboard{--dash-line:#30485a;--dash-soft:#172c3a;--dash-ink:#e9f4fa;--dash-muted:#acc4d2}html[data-theme="dark"] .dashboard .card,html[data-theme="dark"] .dashboard-metric{background:#172b39;border-color:var(--dash-line)}html[data-theme="dark"] .dashboard-metric strong,html[data-theme="dark"] .dashboard-week-day b,html[data-theme="dark"] .dashboard-config-grid strong,html[data-theme="dark"] .dashboard-program-percent{color:#5fc0f7}html[data-theme="dark"] .dashboard-metric.is-pending strong{color:#f5bd5c}html[data-theme="dark"] .dashboard-metric.is-warning strong{color:#ff8891}html[data-theme="dark"] .dashboard .eyebrow{color:#8fd3f3}html[data-theme="dark"] .dashboard-activity-time{color:#8bd2ff}html[data-theme="dark"] .dashboard-action,html[data-theme="dark"] .dashboard-text-action{color:#75caff}html[data-theme="dark"] .dashboard-status.is-complete{background:#1b4836;color:#b3f0d0}html[data-theme="dark"] .dashboard-status.is-pending{background:#51401f;color:#ffe0a0}html[data-theme="dark"] .dashboard-status.is-warning,html[data-theme="dark"] .dashboard-status.is-exception{background:#552d33;color:#ffbdc0}html[data-theme="dark"] .dashboard-week-day,html[data-theme="dark"] .dashboard-day-navigation button{background:#183142;color:var(--dash-ink)}html[data-theme="dark"] .dashboard-week-day:hover,html[data-theme="dark"] .dashboard-week-day.is-selected,html[data-theme="dark"] .dashboard-day-navigation button:hover{background:#23495e}html[data-theme="dark"] .dashboard-progress{background:#2b4b5d}html[data-theme="dark"] .dashboard-program-issues{color:#ffd18a}
@media(max-width:1150px){.dashboard-secondary{grid-template-columns:1fr}}
@media(max-width:1200px){.dashboard-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-tile{grid-column:span min(var(--dashboard-span),2)}}
@media(max-width:760px){.dashboard-layout{grid-template-columns:minmax(0,1fr)}.dashboard-tile{grid-column:span 1}.dashboard-layout-actions{margin-left:auto}}
@media(max-width:900px){.dashboard-program-list{grid-template-columns:1fr}}
@media(max-width:700px){.dashboard-heading>small{flex-basis:100%;margin-left:0;text-align:left}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-activity,.dashboard-attention .dashboard-activity{grid-template-columns:65px minmax(0,1fr) auto}.dashboard-activity .dashboard-status{grid-column:2}.dashboard-activity .dashboard-action{grid-column:3;grid-row:1/3}.dashboard-week-days{gap:3px}.dashboard-week-day{padding:8px 1px}.dashboard-week-day small{display:none}.dashboard-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* El editor de cuatro columnas coloca las tarjetas de forma independiente,
   evitando que una agenda alta obligue a dejar vacía toda la fila contigua. */
.dashboard-layout.grid-stack{display:block;min-width:0;min-height:1px}
.dashboard-layout.grid-stack .dashboard-tile{min-width:0;container-type:inline-size}
.dashboard-layout.grid-stack .dashboard-tile-content{display:flex;flex-direction:column;min-width:0;background:transparent;box-shadow:none}
.dashboard-layout.grid-stack .dashboard-tile-body{display:flex;flex-direction:column;min-width:0}
.dashboard-layout.grid-stack .dashboard-tile .dashboard-panel,.dashboard-layout.grid-stack .dashboard-tile .dashboard-metrics{height:auto}
.dashboard-layout.grid-stack.is-editing .dashboard-tile{border:0;padding:0}
.dashboard-layout.grid-stack.is-editing .dashboard-tile-content{padding:0;border:1px dashed #3894c8;border-radius:10px}
.dashboard-layout.grid-stack.is-editing .dashboard-tile-body{padding:5px}
.dashboard-layout.grid-stack.is-editing .dashboard-panel,.dashboard-layout.grid-stack.is-editing .dashboard-metrics{pointer-events:none}
.dashboard-layout.grid-stack .grid-stack-placeholder>.placeholder-content{border:2px dashed #399cda;border-radius:10px;background:#399cda22}
.dashboard-edit-controls{flex-shrink:0;margin-bottom:5px;gap:8px}
.dashboard-edit-controls button{min-width:30px}
.dashboard-edit-controls .dashboard-drag-handle{touch-action:none;cursor:grab}
.dashboard-edit-controls .dashboard-drag-handle:active{cursor:grabbing}
.dashboard-layout.grid-stack.is-editing .ui-resizable-e,.dashboard-layout.grid-stack.is-editing .ui-resizable-w{display:block!important;top:50%;width:18px;height:58px;margin-top:-29px;cursor:ew-resize;z-index:10;touch-action:none}
.dashboard-layout.grid-stack.is-editing .ui-resizable-e{right:0}.dashboard-layout.grid-stack.is-editing .ui-resizable-w{left:0}
.dashboard-layout.grid-stack.is-editing .ui-resizable-e:after,.dashboard-layout.grid-stack.is-editing .ui-resizable-w:after{content:'⋮';display:grid;place-items:center;width:14px;height:54px;border:1px solid #419dcc;border-radius:8px;background:#1f526d;color:#fff;font-size:1.05rem;box-shadow:0 2px 6px #0004}
.dashboard-layout.grid-stack.is-editing .ui-resizable-e:after{margin-left:auto}
.dashboard-layout.grid-stack.gs-1 [data-dashboard-width],.dashboard-layout.grid-stack.gs-2 [data-dashboard-width],.dashboard-layout.grid-stack.gs-1 .ui-resizable-e,.dashboard-layout.grid-stack.gs-1 .ui-resizable-w,.dashboard-layout.grid-stack.gs-2 .ui-resizable-e,.dashboard-layout.grid-stack.gs-2 .ui-resizable-w{display:none!important}
.dashboard-tile-programs .dashboard-program-list{grid-template-columns:1fr}
.dashboard-tile-programs .dashboard-program{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:13px 15px}
.dashboard-tile-programs .dashboard-program-name,.dashboard-tile-programs .dashboard-program.is-missing>div:first-child{grid-column:1/-1;grid-row:1}
.dashboard-tile-programs .dashboard-program>.dashboard-status{grid-column:1;grid-row:2;justify-self:start}
.dashboard-tile-programs .dashboard-program>.dashboard-action{grid-column:2;grid-row:2;justify-self:end}
.dashboard-tile-programs .dashboard-program .dashboard-progress{grid-column:1;grid-row:3;align-self:center}
.dashboard-tile-programs .dashboard-program-percent{grid-column:2;grid-row:3}
.dashboard-tile-programs .dashboard-program-issues{grid-column:1/-1;grid-row:4}
@container (min-width:900px){.dashboard-tile-programs .dashboard-program-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashboard-edit-controls .dashboard-drag-handle span{display:none}.dashboard-layout.grid-stack.is-editing .ui-resizable-e,.dashboard-layout.grid-stack.is-editing .ui-resizable-w{display:none!important}}
