:root{
  --dm-navy-950:#071735;--dm-navy-900:#0b1d4a;--dm-navy-800:#10265f;
  --dm-blue-700:#1768ad;--dm-blue-600:#287cc3;--dm-blue-500:#3b91df;
  --dm-blue-100:#eaf4fd;--dm-blue-050:#f3f8fd;--dm-canvas:#f2f6fc;
  --dm-surface:#fff;--dm-surface-soft:#f8fafd;--dm-text:#14213f;--dm-muted:#6f7d95;
  --dm-subtle:#8d98aa;--dm-line:#dce5f0;--dm-line-strong:#cbd9e8;
  --dm-success:#25a979;--dm-warning:#d79a2b;--dm-danger:#c93859;--dm-purple:#7457c8;
  --dm-radius-sm:10px;--dm-radius-md:14px;--dm-radius-lg:18px;--dm-radius-xl:24px;
  --dm-shadow-sm:0 8px 22px rgba(18,51,97,.055);--dm-shadow-md:0 13px 34px rgba(18,51,97,.08);
  --dm-focus:0 0 0 4px rgba(40,124,195,.14);--sidebar-width:250px;
  color-scheme:light;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif
}
*{box-sizing:border-box}html{min-height:100%;background:var(--dm-canvas)}body{min-height:100vh;margin:0;color:var(--dm-text);background:radial-gradient(circle at 80% 0,rgba(59,145,223,.08),transparent 28rem),var(--dm-canvas);font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit}a{color:var(--dm-blue-700);text-decoration:none}a:hover{color:var(--dm-blue-600)}button{cursor:pointer}.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:#fff;padding:10px}.skip-link:focus{top:12px}.muted{color:var(--dm-muted)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:30;display:flex;flex-direction:column;padding:24px 16px 18px;background:linear-gradient(160deg,var(--dm-navy-950),var(--dm-navy-900) 62%,#102b68);color:#fff;box-shadow:9px 0 30px rgba(7,23,53,.12)}.brand{display:flex;align-items:center;gap:11px;margin:0 5px 35px;color:#fff}.brand:hover{color:#fff}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--dm-blue-500),#65b9f0);font-size:23px;font-weight:900;box-shadow:0 9px 22px rgba(59,145,223,.3)}.brand strong,.brand small{display:block}.brand strong{font-size:18px;letter-spacing:.04em}.brand small{color:#9bb1da;font-size:11px}.sidebar nav{display:flex;flex:1;flex-direction:column;gap:5px}.sidebar nav a{position:relative;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:11px;color:#c3d0e9;font-weight:600}.sidebar nav a>span{display:grid;place-items:center;width:21px;font-size:17px}.sidebar nav a:hover,.sidebar nav a.is-active{background:rgba(255,255,255,.09);color:#fff}.sidebar nav a.is-active:before{content:"";position:absolute;left:-16px;width:4px;height:24px;border-radius:0 4px 4px 0;background:#60b7ed}.nav-label{margin:23px 12px 6px;color:#738bb6;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.nav-badge{margin-left:auto;display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:12px;background:var(--dm-danger);font-size:10px;color:#fff}.sidebar-user{display:flex;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.1);padding:17px 5px 0}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--dm-navy-900);font-weight:800}.sidebar-user strong,.sidebar-user small{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{color:#8fa5cd;font-size:11px}.app-shell{min-height:100vh;margin-left:var(--sidebar-width)}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 31px;border-bottom:1px solid rgba(203,217,232,.75);background:rgba(255,255,255,.82);backdrop-filter:blur(13px);position:sticky;top:0;z-index:20}.topbar-copy span,.topbar-copy strong{display:block}.topbar-copy span{color:var(--dm-muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em}.topbar-copy strong{font-size:15px}.link-button{border:0;background:none;color:var(--dm-muted);font-weight:700}.menu-button{display:none;border:0;background:none;font-size:22px}.content{max-width:1560px;margin:auto;padding:30px 32px 48px}.message-stack{position:fixed;top:86px;right:24px;z-index:80;display:grid;gap:8px;width:min(390px,calc(100vw - 32px))}.message{padding:13px 15px;border:1px solid var(--dm-line);border-left:4px solid var(--dm-blue-600);border-radius:var(--dm-radius-sm);background:#fff;box-shadow:var(--dm-shadow-md)}.message.success{border-left-color:var(--dm-success)}.message.error{border-left-color:var(--dm-danger)}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading.compact{align-items:center}.page-heading h1{margin:3px 0 4px;font-size:clamp(25px,3vw,34px);line-height:1.1;letter-spacing:-.025em}.page-heading p{margin:0;color:var(--dm-muted)}.eyebrow{display:block;color:var(--dm-blue-700);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.date-chip,.count-chip{display:inline-flex;align-items:center;border:1px solid var(--dm-line);border-radius:999px;padding:9px 13px;background:#fff;color:var(--dm-muted);font-weight:700}.count-chip{min-width:35px;justify-content:center;color:var(--dm-blue-700)}.panel{border:1px solid var(--dm-line);border-radius:var(--dm-radius-lg);background:rgba(255,255,255,.96);box-shadow:var(--dm-shadow-sm)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 22px;border-bottom:1px solid var(--dm-line)}.panel-heading h2{margin:2px 0 0;font-size:18px}.panel-heading>a{font-size:12px;font-weight:800}.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid transparent;border-radius:10px;padding:9px 15px;font-weight:750;transition:.18s ease}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--dm-focus)}.button.primary{background:linear-gradient(135deg,var(--dm-blue-700),var(--dm-blue-500));color:#fff;box-shadow:0 8px 18px rgba(40,124,195,.2)}.button.primary:hover{color:#fff;transform:translateY(-1px)}.button.secondary{border-color:#c5d8ec;background:#fff;color:var(--dm-blue-700)}.button.quiet{border-color:var(--dm-line);background:var(--dm-surface-soft);color:var(--dm-muted)}.button.danger{background:var(--dm-danger);color:#fff}.button.danger-outline{border-color:#f0b3c1;background:#fff;color:var(--dm-danger)}.button.small{min-height:32px;padding:6px 11px;font-size:12px}.button.wide{width:100%}.button:disabled{opacity:.45;cursor:not-allowed}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px}.action-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:160px;padding:26px;border:1px solid var(--dm-line);border-radius:var(--dm-radius-xl);background:#fff;color:var(--dm-text);box-shadow:var(--dm-shadow-sm);transition:.2s ease}.action-card:hover{transform:translateY(-3px);color:var(--dm-text);box-shadow:var(--dm-shadow-md)}.action-card.directory{background:linear-gradient(135deg,#fff 60%,#edf7ff)}.action-card.zoom{background:linear-gradient(135deg,#fff 60%,#f1efff)}.action-card h2{margin:4px 0 6px;font-size:20px}.action-card p{margin:0;color:var(--dm-muted)}.action-card small{color:var(--dm-blue-700);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.action-card>b{font-size:24px;color:var(--dm-blue-600)}.action-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:17px;background:var(--dm-blue-100);color:var(--dm-blue-700);font-size:26px}.zoom .action-icon{background:#eeeafd;color:var(--dm-purple)}.admin-highlight{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;padding:15px 19px;border:1px solid #f1d89e;border-radius:var(--dm-radius-md);background:#fffaf0}.admin-highlight p{display:inline;margin:0 0 0 8px;color:#8b7343}.status-dot{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:var(--dm-warning)}.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.item-list{padding:4px 20px}.meeting-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:76px;border-bottom:1px solid var(--dm-line);color:var(--dm-text)}.meeting-item:last-child{border-bottom:0}.meeting-item strong,.meeting-item small{display:block}.meeting-item small{color:var(--dm-muted)}.date-box{display:grid;place-items:center;width:43px;height:48px;border-radius:10px;background:var(--dm-blue-050);color:var(--dm-blue-700)}.date-box b{line-height:1;font-size:18px}.date-box small{text-transform:uppercase;font-size:9px}.status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}.status.large{padding:8px 13px;font-size:12px}.status.confirmed{background:#e6f7f1;color:#147c5a}.status.pending{background:#fff4da;color:#90630f}.status.rejected,.status.cancelled{background:#fae9ed;color:#a22846}.empty-state{padding:28px;text-align:center;color:var(--dm-muted)}
.calendar-panel{overflow:hidden}.resource-selector{display:flex;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--dm-line);background:var(--dm-surface-soft)}.resource-selector label{font-weight:800}.resource-selector select{min-width:280px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 20px}.week-nav{display:flex;align-items:center;gap:14px}.week-nav>a{display:grid;place-items:center;width:35px;height:35px;border:1px solid var(--dm-line);border-radius:9px;background:#fff;font-weight:900}.week-nav small,.week-nav strong{display:block}.week-nav small{color:var(--dm-muted);font-size:10px}.legend{display:flex;justify-content:flex-end;gap:16px;padding:0 20px 12px;color:var(--dm-muted);font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:8px;height:8px;border-radius:50%}.legend .available{border:1px solid var(--dm-line-strong);background:#fff}.legend .confirmed{background:var(--dm-success)}.legend .pending{background:var(--dm-warning)}.legend .blocked{background:var(--dm-subtle)}.calendar-scroll{overflow:auto;border-top:1px solid var(--dm-line)}.weekly-calendar{display:grid;grid-template-columns:64px repeat(7,minmax(145px,1fr));min-width:1080px}.time-column,.day-column{border-right:1px solid var(--dm-line)}.calendar-corner,.day-heading{height:58px;border-bottom:1px solid var(--dm-line);background:var(--dm-surface-soft)}.day-heading{display:flex;align-items:center;justify-content:center;gap:7px}.day-heading small{text-transform:uppercase;color:var(--dm-muted);font-size:10px}.day-heading strong{font-size:17px}.day-heading.today strong{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--dm-blue-700);color:#fff}.time-track,.day-track{position:relative;height:660px;background-size:100% 60px;background-image:linear-gradient(to bottom,transparent 59px,var(--dm-line) 60px)}.time-track span{position:relative;display:block;height:60px;top:-7px;padding-right:8px;text-align:right;color:var(--dm-subtle);font-size:10px}.day-track{background-color:#fff}.calendar-event{position:absolute;z-index:2;top:var(--event-top);left:4px;right:4px;height:var(--event-height);min-height:26px;overflow:hidden;border-left:3px solid var(--dm-success);border-radius:6px;padding:5px 6px;background:#e9f8f3;color:#135d47;font-size:10px;box-shadow:0 2px 5px rgba(18,51,97,.08)}.calendar-event:hover{z-index:5;overflow:visible;min-height:max(36px,var(--event-height));color:inherit;box-shadow:var(--dm-shadow-md)}.calendar-event strong,.calendar-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event small{opacity:.78;font-size:9px}.calendar-event.pending{border-left-color:var(--dm-warning);background:#fff5dc;color:#765514}.calendar-event.blocked{border-left-color:var(--dm-subtle);background:#eef1f5;color:#5e6878}.calendar-event form{position:absolute;right:4px;top:3px}.calendar-event form button{border:0;background:rgba(255,255,255,.75);color:var(--dm-danger);border-radius:4px;font-size:8px}.pending-panel{margin-top:20px;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 18px;border-bottom:1px solid var(--dm-line);text-align:left}th{background:var(--dm-surface-soft);color:var(--dm-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}td small{display:block;color:var(--dm-muted)}
.modal{width:min(520px,calc(100vw - 28px));border:0;border-radius:var(--dm-radius-lg);padding:0;background:#fff;box-shadow:0 28px 80px rgba(7,23,53,.25)}.modal::backdrop{background:rgba(7,23,53,.52);backdrop-filter:blur(3px)}.modal form{padding:24px}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.modal-heading h2{margin:3px 0}.modal-heading>button{border:0;background:none;color:var(--dm-muted);font-size:26px}.stack-form{display:grid;gap:15px}.stack-form label{display:block;margin-bottom:6px;font-size:12px;font-weight:800}.stack-form input,.stack-form select,.stack-form textarea,.login-form input,.resource-selector select{width:100%;border:1px solid var(--dm-line-strong);border-radius:10px;padding:10px 12px;background:#fff;color:var(--dm-text)}.stack-form textarea{resize:vertical}.form-note{margin:0;padding:10px 12px;border-radius:9px;background:var(--dm-blue-050);color:var(--dm-muted);font-size:11px}.form-actions{display:flex;justify-content:flex-end;gap:9px}.form-actions.split{justify-content:space-between}.field-error{display:block;margin-top:4px;color:var(--dm-danger)}.help-text{display:block;margin-top:5px;color:var(--dm-muted);font-size:10px}.help-text ul{padding-left:18px}.narrow-panel{max-width:620px;margin:30px auto;padding:28px}.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.detail-card{padding:24px}.detail-card h2{margin-top:3px}.detail-card dl{display:grid;gap:0}.detail-card dl>div{display:grid;grid-template-columns:130px 1fr;gap:15px;padding:12px 0;border-bottom:1px solid var(--dm-line)}.detail-card dt{color:var(--dm-muted)}.detail-card dd{margin:0;font-weight:700}.notification-list{overflow:hidden}.notification-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;padding:17px 20px;border:0;border-bottom:1px solid var(--dm-line);background:#fff;text-align:left}.notification-item.unread{background:var(--dm-blue-050)}.notification-item p{margin:3px 0;color:var(--dm-muted)}.notification-item small{color:var(--dm-subtle)}.notification-item button{border:0;background:none;color:var(--dm-blue-700);font-weight:800}.notification-dot{width:9px;height:9px;border-radius:50%;background:var(--dm-line-strong)}.notification-item.unread .notification-dot{background:var(--dm-blue-500)}
.login-page{display:grid;grid-template-columns:1.1fr .9fr}.login-brand{display:grid;place-items:center;position:relative;overflow:hidden;min-height:100vh;padding:50px;background:linear-gradient(145deg,var(--dm-navy-950),var(--dm-navy-800));color:#fff}.login-brand:before,.login-brand:after{content:"";position:absolute;border:1px solid rgba(101,185,240,.18);border-radius:50%}.login-brand:before{width:620px;height:620px;right:-260px;top:-220px}.login-brand:after{width:390px;height:390px;left:-180px;bottom:-160px}.login-brand-inner{position:relative;z-index:1;max-width:550px}.login-kicker{color:#7fc8f3;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.15em}.login-logo{display:flex;align-items:center;gap:13px;margin:25px 0 70px;font-size:22px;font-weight:900;letter-spacing:.04em}.login-logo span{display:grid;place-items:center;width:47px;height:47px;border-radius:14px;background:linear-gradient(135deg,var(--dm-blue-500),#65b9f0)}.login-brand h1{max-width:470px;margin:0 0 14px;font-size:clamp(36px,5vw,62px);line-height:1;letter-spacing:-.04em}.login-brand p{max-width:500px;color:#b9cae8;font-size:17px}.login-features{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.login-features span{padding:7px 10px;border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#c9d7ef;font-size:11px}.login-panel{display:grid;place-items:center;padding:35px;background:#fff}.login-form{width:min(390px,100%)}.login-form h2{margin:5px 0;font-size:30px}.login-form>label{display:block;margin:18px 0 6px;font-weight:800}.login-form .button{margin-top:22px}.form-alert{margin-top:16px;padding:10px;border-radius:8px;background:#fae9ed;color:var(--dm-danger)}.security-copy{display:block;margin-top:18px;text-align:center;color:var(--dm-subtle)}
@media(max-width:1050px){.action-grid,.two-columns{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.2s ease}.sidebar.is-open{transform:translateX(0)}.app-shell{margin-left:0}.menu-button{display:block}.topbar{padding:0 18px}.content{padding:24px 18px 40px}}
@media(max-width:650px){.content{padding:20px 12px 34px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading.compact{align-items:stretch}.action-card{grid-template-columns:auto 1fr;padding:20px}.action-card>b{display:none}.admin-highlight{align-items:flex-start;flex-direction:column}.calendar-toolbar{align-items:flex-start;flex-direction:column}.legend{justify-content:flex-start;flex-wrap:wrap}.resource-selector{align-items:stretch;flex-direction:column}.resource-selector select{min-width:0}.meeting-item{grid-template-columns:auto 1fr}.meeting-item>.status{grid-column:2}.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh}.detail-card dl>div{grid-template-columns:1fr;gap:3px}.form-actions{flex-wrap:wrap}.form-actions .button{flex:1}}
.event-action{position:absolute;right:4px;top:3px;border-radius:4px;padding:1px 4px;background:rgba(255,255,255,.84);color:var(--dm-blue-700);font-size:8px;font-weight:800}

/* Calendario operativo compacto: interacción directa y relevancia visual. */
.compact-calendar-panel{overflow:hidden}.schedule-note{margin-left:auto;color:var(--dm-muted);font-size:11px;font-weight:700}.zoom-schedule-note{display:flex;justify-content:flex-end;padding:14px 20px 0}.calendar-legends{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px 12px}.calendar-legends .legend{padding:0}.relevance-legend{display:flex;align-items:center;gap:12px;color:var(--dm-muted);font-size:10px}.relevance-legend small{font-weight:800;text-transform:uppercase;letter-spacing:.08em}.relevance-legend span,.priority-label{display:inline-flex;align-items:center;gap:5px;font-weight:750}.relevance-legend span:before,.priority-label:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--relevance-color)}.strategic,.relevance-strategic{--relevance-color:#d05b68}.coordination,.relevance-coordination{--relevance-color:#d79a2b}.informative,.relevance-informative{--relevance-color:#3b91df}.weekly-calendar{grid-template-columns:64px repeat(5,minmax(150px,1fr));min-width:840px}.time-track,.day-track{height:var(--calendar-height,520px);background-size:100% var(--hour-height,52px);background-image:linear-gradient(to bottom,transparent calc(var(--hour-height,52px) - 1px),var(--dm-line) var(--hour-height,52px))}.time-track span{height:var(--hour-height,52px)}.day-heading{position:sticky;top:0;z-index:8}.time-column{position:sticky;left:0;z-index:9;background:#fff}.calendar-corner{position:sticky;top:0;z-index:10}.calendar-slot{position:absolute;z-index:1;top:var(--slot-top);left:0;width:100%;height:var(--slot-height);min-height:18px;overflow:visible;border:0;border-top:1px dashed rgba(203,217,232,.5);background:transparent;color:var(--dm-blue-700);transition:background-color 160ms ease,box-shadow 160ms ease}.calendar-slot span{position:absolute;inset:3px 5px auto;display:flex;align-items:center;justify-content:center;min-height:20px;border-radius:6px;background:rgba(234,244,253,.96);opacity:0;transform:translateY(2px);font-size:9px;font-weight:800;pointer-events:none;transition:opacity 160ms ease,transform 160ms ease}.calendar-slot:hover,.calendar-slot:focus-visible{z-index:4;background:rgba(59,145,223,.065);box-shadow:inset 0 0 0 1px rgba(59,145,223,.18)}.calendar-slot:hover span,.calendar-slot:focus-visible span{opacity:1;transform:translateY(0)}.calendar-event{z-index:5;border-left-color:var(--relevance-color,var(--dm-success));padding:5px 7px;transition:transform 180ms ease,box-shadow 180ms ease}.calendar-event:hover{transform:translateY(-1px)}.calendar-event.confirmed{border-left-color:var(--relevance-color,var(--dm-success))}.calendar-event.pending{border-left-color:var(--relevance-color,var(--dm-warning))}.calendar-event>strong{padding-right:38px}.calendar-event>small{line-height:1.25}.priority-label{width:max-content;border-radius:999px;padding:5px 8px;background:color-mix(in srgb,var(--relevance-color) 10%,white);color:var(--dm-text);font-size:10px}.booking-modal{width:min(690px,calc(100vw - 28px))}.booking-modal .modal-heading{margin-bottom:15px}.booking-modal .modal-heading p{margin:3px 0 0;color:var(--dm-muted);font-size:12px}.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-span-full{grid-column:1/-1}.relevance-field{grid-column:1/-1;margin:0;padding:0;border:0}.relevance-field legend{margin-bottom:7px;font-size:12px;font-weight:800}.relevance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.relevance-card{position:relative;display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:9px;min-height:65px;margin:0!important;border:1px solid var(--dm-line);border-radius:11px;padding:10px;background:#fff;cursor:pointer;transition:border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease}.relevance-card:hover{border-color:color-mix(in srgb,var(--relevance-color) 52%,var(--dm-line));transform:translateY(-1px)}.relevance-card:has(input:checked){border-color:var(--relevance-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--relevance-color) 14%,transparent)}.relevance-card input{position:absolute;width:1px!important;height:1px;opacity:0}.relevance-signal{width:11px;height:11px;border-radius:50%;background:var(--relevance-color);box-shadow:0 0 0 5px color-mix(in srgb,var(--relevance-color) 12%,transparent)}.relevance-card strong,.relevance-card small{display:block}.relevance-card strong{font-size:11px}.relevance-card small{margin-top:2px;color:var(--dm-muted);font-size:9px;line-height:1.25}.booking-modal[open]{animation:booking-modal-in 180ms cubic-bezier(.22,.61,.36,1)}@keyframes booking-modal-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:850px){.calendar-legends{align-items:flex-start;flex-direction:column}.relevance-grid{grid-template-columns:1fr}.booking-form-grid{grid-template-columns:1fr}.field-span-full,.relevance-field{grid-column:auto}.schedule-note{margin-left:0}}

/* Lista de notificaciones compacta y completamente interactiva. */
.notification-list{overflow:hidden}
.notification-item{position:relative;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;min-height:68px;padding:11px 18px;transition:background-color 160ms ease,box-shadow 160ms ease}
.notification-item:last-child{border-bottom:0}
.notification-item:hover{background:#f4f9fe;box-shadow:inset 3px 0 0 var(--dm-blue-500)}
.notification-copy{min-width:0}
.notification-copy strong,.notification-copy p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notification-item p{margin:2px 0}
.notification-dot{width:8px;height:8px}
.notification-item button{position:absolute;inset:0;z-index:2;width:100%;border:0;background:transparent;cursor:pointer;text-align:right}
.notification-item button span{position:absolute;top:50%;right:18px;transform:translateY(-50%);font-size:26px;font-weight:500;line-height:1;transition:transform 160ms ease}
.notification-item:hover button span{transform:translate(3px,-50%)}
.notification-item button:focus-visible{outline:2px solid var(--dm-blue-600);outline-offset:-3px;border-radius:6px}

/* Acciones del enlace Zoom: apertura y copiado son tareas independientes. */
.zoom-link-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.zoom-open-link{display:inline-flex;align-items:center;min-height:34px;font-weight:800}
.copy-link-button{gap:6px;white-space:nowrap}
.copy-link-button.is-copied{border-color:#9bd7c2;background:#e9f8f3;color:#147c5a;animation:copy-confirmation 180ms ease-out}
.copy-link-status{flex-basis:100%;min-height:16px;color:#4f6a83;font-size:10px;font-weight:600}
@keyframes copy-confirmation{from{transform:scale(.97);opacity:.65}to{transform:none;opacity:1}}
@media(max-width:650px){.zoom-link-actions{align-items:stretch;flex-direction:column}.zoom-open-link,.copy-link-button{width:100%;justify-content:center}.copy-link-status{text-align:center}}

/* Política visual de modificaciones, cancelaciones y trazabilidad. */
.sensitive-confirmation{display:flex!important;align-items:flex-start;gap:10px;border:1px solid #f0d38e;border-radius:11px;padding:12px;background:#fff9eb;cursor:pointer}.sensitive-confirmation input{width:auto!important;margin-top:3px}.sensitive-confirmation span{display:grid;gap:2px}.sensitive-confirmation strong{color:#76520d}.sensitive-confirmation small{color:#8a7246;font-size:10px;font-weight:500}.change-policy-note{margin:0;border-left:3px solid var(--dm-blue-500);padding:9px 11px;background:var(--dm-blue-050);color:var(--dm-muted);font-size:10px}.reservation-history{margin-top:20px;overflow:hidden}.reservation-history-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--dm-line);padding:18px 20px}.reservation-history-heading h2{margin:3px 0 0}.reservation-history-heading>small{color:var(--dm-subtle)}.reservation-history ol{margin:0;padding:0;list-style:none}.reservation-history li{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--dm-line)}.reservation-history li:last-child{border-bottom:0}.history-icon{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:9px;background:var(--dm-blue-050);color:var(--dm-blue-700);font-weight:900}.reservation-history li div{display:grid;gap:2px}.reservation-history li strong{font-size:12px}.reservation-history li small{color:var(--dm-muted);font-size:10px}

/* Acciones protagonistas del panel: color, profundidad y movimiento funcional. */
.dashboard-page .action-card{position:relative;isolation:isolate;overflow:hidden;border-width:1px;border-left-width:5px;box-shadow:0 12px 28px rgba(18,51,97,.11);animation:dashboard-action-enter .58s cubic-bezier(.2,.75,.25,1) both;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.dashboard-page .action-card.zoom{animation-delay:.1s}
.dashboard-page .action-card::before{position:absolute;z-index:-1;inset:-45% auto -45% -32%;width:42%;transform:rotate(16deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent);content:"";animation:dashboard-action-light 7s ease-in-out infinite}
.dashboard-page .action-card.directory{border-color:#b9d9ee;border-left-color:#2385c6;background:linear-gradient(125deg,#f5fbff 0%,#e6f4fd 55%,#f8fcff 100%);box-shadow:0 13px 30px rgba(35,133,198,.14)}
.dashboard-page .action-card.zoom{border-color:#d8d1f4;border-left-color:#6b62d9;background:linear-gradient(125deg,#faf9ff 0%,#efecfd 55%,#fcfbff 100%);box-shadow:0 13px 30px rgba(107,98,217,.13)}
.dashboard-page .action-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(18,51,97,.18)}
.dashboard-page .action-card:focus-visible{outline:3px solid rgba(35,133,198,.3);outline-offset:3px}
.dashboard-page .action-card>div{position:relative}
.dashboard-page .action-priority{display:inline-flex;margin:0 0 5px;border:1px solid rgba(35,127,189,.18);border-radius:999px;padding:3px 7px;background:rgba(255,255,255,.7);color:#236d9f;font-size:8px;font-weight:900;line-height:1;letter-spacing:.09em;text-transform:uppercase}
.dashboard-page .zoom .action-priority{border-color:rgba(107,98,217,.2);color:#5d55bd}
.dashboard-page .action-icon{box-shadow:0 8px 18px rgba(35,127,189,.15);animation:dashboard-icon-breathe 3.8s ease-in-out infinite}
.dashboard-page .zoom .action-icon{box-shadow:0 8px 18px rgba(107,98,217,.15);animation-delay:.55s}
.dashboard-page .action-card>b{transition:transform .2s ease,color .2s ease}
.dashboard-page .action-card:hover>b{transform:translateX(5px)}
@keyframes dashboard-action-enter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes dashboard-action-light{0%,62%{left:-42%;opacity:0}72%{opacity:.75}88%,100%{left:118%;opacity:0}}
@keyframes dashboard-icon-breathe{0%,100%{transform:scale(1);filter:saturate(1)}50%{transform:scale(1.045);filter:saturate(1.14)}}
@media(prefers-reduced-motion:reduce){.dashboard-page .action-card,.dashboard-page .action-card::before,.dashboard-page .action-icon{animation:none!important}.dashboard-page .action-card,.dashboard-page .action-card>b{transition:none!important}}

/* Tabla horaria principal: lectura inmediata, selección por celda y movimiento sutil. */
.interaction-hint{display:flex;align-items:center;gap:10px;border:1px solid #cfe0f0;border-radius:13px;padding:9px 13px;background:rgba(255,255,255,.78);box-shadow:var(--dm-shadow-sm)}
.interaction-hint>span{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--dm-blue-700);color:#fff;font-size:12px;font-weight:900;box-shadow:0 6px 14px rgba(23,104,173,.2)}
.interaction-hint strong,.interaction-hint small{display:block}.interaction-hint strong{font-size:11px}.interaction-hint small{color:var(--dm-muted);font-size:9px}
.compact-calendar-panel{border-color:#ccd9e8;box-shadow:0 15px 40px rgba(18,51,97,.075)}
.calendar-toolbar{border-top:1px solid rgba(220,229,240,.8);background:#fff}
.calendar-legends{border-top:1px solid #e5edf5;padding-top:11px;background:#fbfdff}
.weekly-calendar{grid-template-columns:112px repeat(5,minmax(158px,1fr));min-width:980px;background:#fff}
.time-column,.day-column{border-right:1px solid #bfcfe0}.day-column:last-child{border-right:0}
.calendar-corner,.day-heading{height:62px;border-bottom:1px solid #bfcfe0;background:linear-gradient(180deg,#f8fbff,#edf4fa)}
.calendar-corner{display:grid;place-items:center;color:#60738d;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.day-heading{gap:9px}.day-heading small{color:#5d708a;font-size:10px;font-weight:800;letter-spacing:.08em}.day-heading strong{font-size:19px}
.day-heading.today{background:linear-gradient(180deg,#edf7ff,#e2f0fb)}
.time-track,.day-track{background-color:#fff;background-image:none}
.time-track span{top:0;display:flex;height:var(--hour-height,56px);flex-direction:column;align-items:center;justify-content:center;border-bottom:1px solid #cbd8e6;padding:0;color:var(--dm-text);line-height:1.15}
.time-track span strong{font-size:11px}.time-track span small{margin-top:3px;color:#8492a6;font-size:9px}
.calendar-slot{border:0;border-bottom:1px solid #cbd8e6;background:#fff}
.calendar-slot:nth-child(even){background:#fcfdff}
.calendar-slot span{inset:8px 9px;min-height:calc(100% - 16px);border:1px solid rgba(40,124,195,.18);border-radius:9px;background:linear-gradient(135deg,#eef7ff,#e4f2fd);box-shadow:0 5px 13px rgba(40,124,195,.09);color:#1768ad;font-size:10px;letter-spacing:.01em}
.calendar-slot span b{display:grid;place-items:center;width:19px;height:19px;margin-right:6px;border-radius:6px;background:#fff;font-size:14px;box-shadow:0 2px 6px rgba(40,124,195,.12)}
.calendar-slot:hover,.calendar-slot:focus-visible{z-index:4;background:#f0f8ff;box-shadow:inset 0 0 0 2px rgba(59,145,223,.26)}
.calendar-slot.is-unavailable{cursor:default;background:#f7f9fc;pointer-events:none}
.calendar-event{left:5px;right:5px;min-height:48px;border:1px solid color-mix(in srgb,var(--relevance-color) 30%,#dce5f0);border-left:5px solid var(--relevance-color);border-radius:9px;padding:5px 8px;background:#f1f8fd;box-shadow:0 4px 12px rgba(18,51,97,.1)}
.calendar-event.relevance-strategic{background:#fff0f2;color:#8e2637}.calendar-event.relevance-coordination{background:#fff8e8;color:#805914}.calendar-event.relevance-informative{background:#edf8ff;color:#245c80}
.calendar-event.blocked{border-color:#cad3de;border-left-color:#8d98aa;background:repeating-linear-gradient(135deg,#f0f3f7,#f0f3f7 7px,#e9edf2 7px,#e9edf2 14px);color:#5e6878}
.calendar-event:hover{z-index:7;transform:translateY(-2px) scale(1.01);box-shadow:0 12px 25px rgba(18,51,97,.16)}
.strategic,.relevance-strategic{--relevance-color:#df4f5f}.coordination,.relevance-coordination{--relevance-color:#dc971e}.informative,.relevance-informative{--relevance-color:#65afe2}
.relevance-legend span:before,.priority-label:before{width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb,var(--relevance-color) 12%,transparent)}
.selected-slot-card{display:flex;align-items:center;gap:12px;border:1px solid #bcd8ed;border-radius:13px;padding:12px 14px;background:linear-gradient(135deg,#f1f8fe,#e7f3fd)}
.selected-slot-card small,.selected-slot-card strong{display:block}.selected-slot-card small{color:#63809d;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.selected-slot-card strong{margin-top:2px;color:#123e69;font-size:14px}
.selected-slot-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#fff;color:var(--dm-blue-700);font-size:21px;box-shadow:0 5px 13px rgba(40,124,195,.12)}
.booking-owner{display:flex;align-items:center;gap:10px;min-height:42px;border:1px solid var(--dm-line);border-radius:10px;padding:6px 10px;background:#f7f9fc}
.booking-owner>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#dcecf8;color:#1b629c;font-size:11px;font-weight:900}.booking-owner strong,.booking-owner small{display:block}.booking-owner strong{font-size:11px}.booking-owner small{color:var(--dm-muted);font-size:8px}
.duration-field select{font-weight:750;color:#174e7c;background:#fafdff}
.booking-modal{width:min(720px,calc(100vw - 28px))}.booking-modal form{padding:26px}
.relevance-card{overflow:hidden}.relevance-card:after{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--relevance-color);opacity:.4;transition:opacity 160ms ease}.relevance-card:has(input:checked):after{opacity:1}
.day-column{animation:calendar-column-in 260ms both}.day-column:nth-child(3){animation-delay:35ms}.day-column:nth-child(4){animation-delay:70ms}.day-column:nth-child(5){animation-delay:105ms}.day-column:nth-child(6){animation-delay:140ms}
@keyframes calendar-column-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.day-column,.booking-modal[open]{animation:none}.calendar-event,.calendar-slot,.calendar-slot span,.relevance-card{transition:none}}
@media(max-width:650px){.interaction-hint{display:none}.weekly-calendar{grid-template-columns:94px repeat(5,minmax(150px,1fr));min-width:844px}.calendar-corner{font-size:8px}.booking-modal form{padding:20px}}

/* Tercera iteración: más tabla, menos interfaz redundante. */
.mobile-topbar{display:none}
.sidebar-user{position:relative}.sidebar-user-copy{min-width:0;flex:1}.sidebar-user form{margin-left:auto}.sidebar-logout{display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:rgba(255,255,255,.055);color:#aebfdd;font-size:17px;transition:background-color 160ms ease,color 160ms ease,transform 160ms ease}.sidebar-logout:hover{background:rgba(255,255,255,.12);color:#fff;transform:translateX(1px)}
.content{padding-top:18px}.calendar-page-heading{margin-bottom:13px}.calendar-page-heading h1{margin:2px 0;font-size:27px}.calendar-page-heading p{font-size:12px}.calendar-page-heading .eyebrow{font-size:9px}
.resource-selector{min-height:54px;padding:8px 14px}.resource-selector select{padding:9px 11px}.schedule-note{font-size:9px}
.calendar-toolbar{min-height:52px;padding:7px 14px}.week-nav>a{width:32px;height:32px}.week-nav strong{font-size:12px}.week-nav small{font-size:8px}.calendar-toolbar>.button{min-height:34px;padding:7px 12px;font-size:11px}
.calendar-legends{min-height:34px;padding:6px 14px}.legend{gap:13px;font-size:9px}.relevance-legend{gap:10px;font-size:9px}.relevance-legend small{font-size:8px}
.calendar-scroll{overflow-x:auto;overflow-y:hidden;border-top:1px solid #b9c9db}
.calendar-corner,.day-heading{height:48px}.day-heading strong{font-size:17px}.day-heading.today strong{width:29px;height:29px}.day-heading small{font-size:9px}
.time-track,.day-track{background-color:#fff;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height,44px) - 1px),#b9cadd calc(var(--hour-height,44px) - 1px),#b9cadd var(--hour-height,44px));background-size:100% var(--hour-height,44px)}
.time-track span{height:var(--hour-height,44px);border-bottom:1px solid #b9cadd}.time-track span strong{font-size:10px}.time-track span small{margin-top:1px;font-size:8px}
.calendar-slot{border-bottom:1px solid #b9cadd;background:rgba(255,255,255,.82)}.calendar-slot:nth-child(even){background:rgba(248,251,254,.72)}.calendar-slot.is-unavailable{background:rgba(243,247,251,.72)}
.calendar-slot span{inset:5px 7px;min-height:calc(100% - 10px);font-size:9px}.calendar-event{min-height:36px;border-radius:7px;padding:3px 7px}.calendar-event strong{font-size:10px}.calendar-event small{font-size:8px}.calendar-event>small:last-of-type{opacity:.68}
@media(max-width:1050px){.mobile-topbar{position:sticky;top:0;z-index:20;display:flex;height:50px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--dm-line);padding:0 16px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}.mobile-topbar strong{font-size:13px;letter-spacing:.05em}.mobile-logout{border:0;background:transparent;color:var(--dm-muted);font-size:18px}.content{padding-top:15px}}
@media(max-width:650px){.calendar-page-heading h1{font-size:24px}.calendar-page-heading p{font-size:11px}.resource-selector{padding:10px 12px}.calendar-toolbar{padding:8px 12px}.calendar-legends{padding:7px 12px}}

/* Celdas horarias reales: el rectángulo completo es el área de interacción. */
.calendar-cell-layer{position:absolute;inset:0;z-index:1;display:grid;grid-auto-rows:var(--hour-height,44px);height:100%}
.calendar-cell-layer .calendar-slot{position:relative;inset:auto;top:auto;left:auto;display:block;width:100%;height:100%;min-height:0;overflow:hidden;border:0;border-bottom:1px solid #b9cadd;padding:0;background:rgba(255,255,255,.82);cursor:pointer;color:var(--dm-blue-700);transition:background-color 150ms ease,box-shadow 150ms ease}
.calendar-cell-layer .calendar-slot:nth-child(even){background:rgba(248,251,254,.78)}
.calendar-cell-layer .calendar-slot>span{position:absolute;inset:4px 6px;display:flex;align-items:center;justify-content:center;min-height:0;border:1px solid transparent;border-radius:8px;background:transparent;box-shadow:none;opacity:0;transform:scale(.985);font-size:9px;font-weight:850;pointer-events:none;transition:opacity 150ms ease,transform 150ms ease,background-color 150ms ease,border-color 150ms ease}
.calendar-cell-layer .calendar-slot:hover,.calendar-cell-layer .calendar-slot:focus-visible{z-index:3;background:#eaf5fd;box-shadow:inset 0 0 0 2px rgba(40,124,195,.42);outline:0}
.calendar-cell-layer .calendar-slot:hover>span,.calendar-cell-layer .calendar-slot:focus-visible>span{border-color:rgba(40,124,195,.16);background:rgba(255,255,255,.72);opacity:1;transform:scale(1)}
.calendar-cell-layer .calendar-slot.is-unavailable{background:rgba(242,246,250,.68);cursor:default;pointer-events:none}
.calendar-cell-layer .calendar-slot.is-unavailable:nth-child(even){background:rgba(238,243,248,.72)}
.calendar-cell-layer .calendar-slot b{display:grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:6px;background:#fff;font-size:13px;box-shadow:0 2px 6px rgba(40,124,195,.12)}
.calendar-event{z-index:5}

/* Refinamiento de estados, contenido centrado y sesión visible. */
.legend .past{border:1px solid #aab8c8;background:#d8e0e9}
.calendar-cell-layer .calendar-slot.is-past,.calendar-cell-layer .calendar-slot.is-past:nth-child(even){background-color:#dfe6ee;background-image:linear-gradient(135deg,rgba(121,139,160,.045) 25%,transparent 25%,transparent 50%,rgba(121,139,160,.045) 50%,rgba(121,139,160,.045) 75%,transparent 75%,transparent);background-size:10px 10px;box-shadow:inset 0 0 0 1px rgba(135,151,170,.08)}
.calendar-cell-layer .calendar-slot.is-outside-period{background:#e9eef4}
.calendar-event{display:flex;align-items:center;justify-content:center;text-align:center}
.calendar-event .event-copy{display:grid;max-width:calc(100% - 34px);justify-items:center;line-height:1.05}
.calendar-event .event-copy strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:10px;letter-spacing:.01em}
.calendar-event .event-copy small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}
.calendar-event .event-action{top:4px;right:4px}
.content{position:relative}.content>.page-heading:first-of-type{padding-right:142px}
.content-logout{position:absolute;top:18px;right:32px;z-index:12}
.content-logout button{display:inline-flex;align-items:center;gap:7px;min-height:35px;border:1px solid #cbd9e8;border-radius:10px;padding:7px 11px;background:rgba(255,255,255,.84);color:#60738d;font-size:10px;font-weight:800;box-shadow:0 6px 16px rgba(18,51,97,.055);backdrop-filter:blur(8px);transition:border-color 160ms ease,color 160ms ease,transform 160ms ease,box-shadow 160ms ease}
.content-logout button span{font-size:15px}.content-logout button:hover{border-color:#9fbcd5;color:#1768ad;transform:translateY(-1px);box-shadow:0 9px 20px rgba(18,51,97,.09)}
@media(max-width:1050px){.content-logout{display:none}.content>.page-heading:first-of-type{padding-right:0}}

/* Superficie horaria elevada: más aire vertical y contorno protagonista. */
.calendar-scroll{position:relative;margin:0 8px 10px;border:1px solid #aebfd2;border-radius:0 0 13px 13px;background:#fff;box-shadow:0 11px 25px rgba(18,51,97,.12),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(118,139,162,.12);animation:schedule-surface-in 260ms cubic-bezier(.22,.61,.36,1) both}
.calendar-corner,.day-heading{border-bottom-color:#aebfd2;background:linear-gradient(180deg,#fbfdff 0%,#edf4fa 100%);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(118,139,162,.08)}
.day-heading.today{background:linear-gradient(180deg,#edf8ff 0%,#dfeefa 100%)}
.time-column,.day-column{border-right-color:#b5c6d8}.time-track span,.calendar-cell-layer .calendar-slot{border-bottom-color:#b7c8da}
.calendar-event{min-height:42px;box-shadow:0 5px 13px rgba(18,51,97,.12)}
@keyframes schedule-surface-in{from{opacity:.55;transform:translateY(5px);box-shadow:0 4px 12px rgba(18,51,97,.05)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.calendar-scroll{animation:none}}
@media(max-width:650px){.calendar-scroll{margin:0 4px 8px;border-radius:0 0 11px 11px;box-shadow:0 8px 18px rgba(18,51,97,.1)}}

/* Vista ampliada de reservas sin alterar la densidad del calendario. */
.calendar-event[data-event-preview-trigger]{outline:0;cursor:default}
.calendar-event[data-event-preview-trigger]:focus-visible{box-shadow:0 0 0 3px rgba(40,124,195,.28),0 12px 25px rgba(18,51,97,.16)}
.event-preview{position:fixed;z-index:120;width:min(290px,calc(100vw - 24px));border:1px solid color-mix(in srgb,var(--relevance-color) 34%,#c8d6e5);border-left:5px solid var(--relevance-color);border-radius:13px;padding:15px 16px;background:rgba(255,255,255,.98);color:var(--dm-text);text-align:left;box-shadow:0 18px 46px rgba(7,23,53,.2);opacity:0;transform:translateY(5px) scale(.985);pointer-events:none;transition:opacity 150ms ease,transform 150ms ease}
.event-preview.is-open{opacity:1;transform:none}
.event-preview-kicker{display:block;margin-bottom:4px;color:var(--relevance-color);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.event-preview>strong{display:block;margin-bottom:10px;font-size:15px;line-height:1.2}
.event-preview dl{display:grid;gap:7px;margin:0}
.event-preview dl>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:9px;align-items:start}
.event-preview dt{color:var(--dm-subtle);font-size:9px;font-weight:800;text-transform:uppercase}
.event-preview dd{margin:0;overflow-wrap:anywhere;color:var(--dm-muted);font-size:11px;font-weight:700;line-height:1.35}
@media(max-width:650px){.event-preview{display:none}}
@media(prefers-reduced-motion:reduce){.event-preview{transition:none}}
.day-column.is-holiday .day-track{background:#fffaf0}
.holiday-heading{position:relative;background:linear-gradient(180deg,#fff8e8 0%,#f8eed8 100%)}
.holiday-heading-icon{width:17px;height:17px;color:#b67913}
.holiday-heading-notice{position:absolute;right:9px;display:grid;place-items:center;width:28px;height:28px;border:1px solid #b9d8ed;border-radius:9px;padding:5px;background:#eef8ff;color:#2674a8;cursor:help;box-shadow:0 3px 9px rgba(18,51,97,.08)}
.holiday-heading-notice>svg{width:16px;height:16px}.holiday-heading-notice:focus-visible{outline:2px solid var(--dm-blue-600);outline-offset:2px}
.holiday-day-overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;overflow:hidden;background:repeating-linear-gradient(135deg,rgba(222,157,43,.085),rgba(222,157,43,.085) 8px,rgba(255,255,255,.24) 8px,rgba(255,255,255,.24) 16px);color:#8b6119;cursor:help;outline:0}
.holiday-day-overlay:focus-visible{box-shadow:inset 0 0 0 3px rgba(211,145,28,.42)}
.holiday-day-overlay>span{display:flex;align-items:center;gap:7px;max-width:90%;border:1px solid rgba(198,133,24,.25);border-radius:999px;padding:6px 10px;background:rgba(255,250,239,.93);box-shadow:0 7px 18px rgba(105,73,18,.1);font-size:9px;text-align:center}
.holiday-day-overlay>span svg{flex:0 0 auto;width:17px;height:17px}
.holiday-day-overlay.is-informative{inset:7px 8px auto;z-index:6;height:32px;justify-content:flex-end;overflow:visible;background:none;pointer-events:none}
.holiday-day-overlay.is-informative>span{max-width:100%;padding:5px 8px;background:#eef7ff;color:#255e86;pointer-events:auto;cursor:help}
.holiday-preview{--relevance-color:#d29526;border-left-color:#d29526}
.holiday-preview-title{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.holiday-preview-title svg{width:31px;height:31px;padding:6px;border-radius:9px;background:#fff5de;color:#a66d0d}
.holiday-preview-title strong{font-size:15px;line-height:1.2}
.holiday-preview p{margin:0 0 10px;color:var(--dm-muted);font-size:11px;line-height:1.4}
.calendar-cell-layer .calendar-slot.is-holiday,.calendar-cell-layer .calendar-slot.is-holiday:nth-child(even){background:#fff8e9}
@media(max-width:650px){.holiday-day-overlay>span{writing-mode:vertical-rl;padding:8px 6px}.holiday-heading-icon{width:14px;height:14px}}

/* Bienvenida corporativa: identidad SPH, acceso despejado y escala fluida. */
.login-page{grid-template-columns:minmax(470px,1.08fr) minmax(420px,.92fr);background:#fff}
.login-brand{display:block;position:relative;min-height:100svh;padding:clamp(28px,4vw,58px);background:radial-gradient(circle at 76% 38%,rgba(49,137,207,.2),transparent 19rem),linear-gradient(145deg,#061532 0%,#0b1f50 58%,#102d6c 100%)}
.login-brand:before{width:min(56vw,720px);height:min(56vw,720px);right:-37%;top:-35%;border-color:rgba(116,196,241,.16)}
.login-brand:after{width:360px;height:360px;left:-220px;bottom:-210px;border-color:rgba(116,196,241,.13)}
.login-brand-header{position:relative;z-index:2;display:flex;align-items:center;gap:17px;width:max-content;max-width:100%}
.sph-logo{display:block;width:67px;height:55px;object-fit:contain}
.brand-divider{width:1px;height:37px;background:rgba(255,255,255,.22)}
.product-brand{display:flex;align-items:center;gap:10px;color:#fff}.product-brand>span:last-child{display:grid}.product-brand strong{font-size:14px;letter-spacing:.075em}.product-brand small{margin-top:1px;color:#8fa9d2;font-size:9px;letter-spacing:.04em}
.product-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#318ed5,#6ac0f0);box-shadow:0 8px 22px rgba(39,132,201,.24);font-size:18px}
.login-brand-inner{position:absolute;z-index:1;left:clamp(28px,6vw,112px);top:50%;width:min(620px,calc(100% - clamp(56px,12vw,224px)));max-width:none;transform:translateY(-42%)}
.login-kicker{display:flex;align-items:center;gap:9px;color:#76c7f2;font-size:10px}.login-kicker:before{content:"";width:24px;height:2px;border-radius:2px;background:#55afe5}
.login-brand h1{max-width:570px;margin:15px 0 16px;font-size:clamp(34px,3.7vw,56px);line-height:1.035;letter-spacing:-.043em}.login-brand h1 span{color:#86cdf2}
.login-brand p{max-width:535px;margin:0;color:#bdcce5;font-size:clamp(14px,1.05vw,16px);line-height:1.58}
.login-features{gap:8px;margin-top:24px}.login-features span{display:flex;align-items:center;gap:6px;padding:7px 10px;border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.025);font-size:9px}.login-features i{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:rgba(102,189,239,.14);color:#76c7f2;font-style:normal;font-weight:900}
.login-brand .login-brand-foot{position:absolute;left:clamp(28px,4vw,58px);bottom:27px;z-index:1;color:#718bb5;font-size:9px;letter-spacing:.055em}
.login-panel{position:relative;min-height:100svh;padding:clamp(32px,6vw,84px);background:radial-gradient(circle at 85% 12%,rgba(59,145,223,.075),transparent 16rem),#fff}
.login-panel:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,transparent,#3b91df 48%,transparent);opacity:.18}
.login-form{width:min(420px,100%)}.login-form h2{margin:7px 0 8px;font-size:clamp(28px,2.45vw,36px);line-height:1.12;letter-spacing:-.035em}.login-intro{margin:0 0 26px;font-size:13px}.login-form>label{margin:16px 0 7px;font-size:11px}.login-form input{min-height:49px;border-color:#cfdae8;border-radius:12px;padding:11px 14px;transition:border-color 160ms ease,box-shadow 160ms ease}.login-form input:hover{border-color:#a9bfd5}.login-form input:focus{border-color:#3b91df}.login-submit{min-height:49px;margin-top:22px!important;border-radius:12px;gap:9px;font-size:12px;box-shadow:0 11px 25px rgba(40,124,195,.22)!important}.login-submit span{font-size:17px;transition:transform 160ms ease}.login-submit:hover span{transform:translateX(3px)}
.form-alert{border:1px solid #f1c3ce;border-left:4px solid var(--dm-danger);padding:11px 13px;font-size:12px}.security-copy{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px}.security-copy span{color:#35a77e;font-size:8px}
.password-field{position:relative;display:block;width:100%}.password-field input{width:100%;padding-right:48px}.password-toggle{position:absolute;top:50%;right:8px;display:grid;place-items:center;width:36px;height:36px;transform:translateY(-50%);border:0;border-radius:9px;background:transparent;color:#7d8ba0}.password-toggle:hover{background:#eef5fb;color:#1768ad}.password-toggle:focus-visible{outline:2px solid #3b91df;outline-offset:1px}.password-toggle svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.stack-form .password-field input{padding-right:48px}
@media(max-width:1050px){.login-page{grid-template-columns:minmax(390px,.9fr) minmax(420px,1.1fr)}.login-brand-inner{left:42px;width:calc(100% - 84px)}.login-brand h1{font-size:clamp(34px,4.6vw,47px)}.login-features span:last-child{display:none}}
@media(max-width:760px){.login-page{display:block;min-height:100svh;background:linear-gradient(180deg,#071735 0,#0b1f50 185px,#f7faff 185px,#fff 100%)}.login-brand{min-height:185px;padding:23px 24px;background:transparent;overflow:hidden}.login-brand-header{gap:12px}.sph-logo{width:56px;height:45px}.brand-divider{height:31px}.product-mark{width:30px;height:30px;font-size:16px}.product-brand strong{font-size:12px}.login-brand-inner,.login-brand-foot{display:none!important}.login-panel{min-height:calc(100svh - 185px);margin-top:0;padding:35px 24px 45px;border-radius:24px 24px 0 0;background:#fff;place-items:start center}.login-panel:before{display:none}.login-form{width:min(430px,100%)}.login-form h2{font-size:30px}.login-intro{margin-bottom:23px}}
@media(max-width:380px){.login-brand{min-height:160px;padding-inline:18px}.login-page{background-position-y:-25px}.login-panel{min-height:calc(100svh - 160px);padding:30px 18px}.sph-logo{width:49px}.product-brand small{display:none}}
/* Movimiento D-RESERVA: conexiones precisas inspiradas en agenda y coordinación. */
.login-motion{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.motion-line{position:absolute;height:1px;transform-origin:left center;background:linear-gradient(90deg,transparent,rgba(105,196,242,.12) 16%,rgba(105,196,242,.55) 50%,rgba(105,196,242,.1) 84%,transparent);filter:drop-shadow(0 0 5px rgba(76,177,229,.25));opacity:.34}.line-one{top:31%;left:7%;width:78%;transform:rotate(12deg);animation:connection-flow 12s ease-in-out infinite}.line-two{right:-7%;bottom:25%;width:69%;transform:rotate(-20deg);animation:connection-flow 15s ease-in-out -5s infinite reverse}.motion-node{position:absolute;width:7px;height:7px;border:1px solid rgba(130,211,250,.75);border-radius:50%;background:#12366f;box-shadow:0 0 0 0 rgba(102,196,241,.28);animation:node-pulse 4.8s ease-out infinite}.node-one{top:33%;left:30%;animation-delay:-.8s}.node-two{top:47%;right:24%;animation-delay:-2.6s}.node-three{bottom:26%;left:19%;animation-delay:-4s}.motion-orbit{position:absolute;right:-155px;top:15%;width:390px;height:390px;border:1px solid rgba(104,195,240,.11);border-radius:50%;animation:orbit-breathe 11s ease-in-out infinite}.motion-orbit:before,.motion-orbit:after{content:"";position:absolute;border-radius:50%}.motion-orbit:before{inset:54px;border:1px dashed rgba(104,195,240,.1);animation:orbit-spin 34s linear infinite}.motion-orbit:after{top:51px;left:50%;width:6px;height:6px;background:#69c4f2;box-shadow:0 0 13px #69c4f2}
.login-brand-header{animation:welcome-rise 650ms cubic-bezier(.2,.72,.25,1) both}.login-brand-inner .login-kicker{animation:welcome-rise 620ms 100ms cubic-bezier(.2,.72,.25,1) both}.login-brand-inner h1{animation:welcome-rise 700ms 180ms cubic-bezier(.2,.72,.25,1) both}.login-brand-inner>p{animation:welcome-rise 700ms 270ms cubic-bezier(.2,.72,.25,1) both}.login-features{animation:welcome-rise 700ms 350ms cubic-bezier(.2,.72,.25,1) both}.login-form{animation:form-arrive 720ms 130ms cubic-bezier(.2,.72,.25,1) both}.login-submit{position:relative;overflow:hidden}.login-submit:before{content:"";position:absolute;inset:0;width:38%;transform:translateX(-160%) skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);animation:button-glint 6s 2.2s ease-in-out infinite}
@keyframes welcome-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes form-arrive{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}@keyframes connection-flow{0%,100%{opacity:.18;filter:drop-shadow(0 0 3px rgba(76,177,229,.15))}50%{opacity:.58;filter:drop-shadow(0 0 8px rgba(76,177,229,.38))}}@keyframes node-pulse{0%,18%{box-shadow:0 0 0 0 rgba(102,196,241,.32)}55%,100%{box-shadow:0 0 0 17px rgba(102,196,241,0)}}@keyframes orbit-breathe{0%,100%{opacity:.55;transform:scale(.98)}50%{opacity:1;transform:scale(1.025)}}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes button-glint{0%,70%{transform:translateX(-160%) skewX(-20deg)}88%,100%{transform:translateX(390%) skewX(-20deg)}}
@media(max-width:760px){.login-motion .motion-line,.login-motion .motion-node{display:none}.motion-orbit{right:-155px;top:-105px;width:300px;height:300px;opacity:.5}.login-brand-header{animation-duration:500ms}.login-form{animation-name:welcome-rise;animation-delay:90ms}}
@media(prefers-reduced-motion:reduce){.login-submit,.login-submit span,.login-form input,.password-toggle{transition:none}.login-motion *,.login-brand-header,.login-brand-inner .login-kicker,.login-brand-inner h1,.login-brand-inner>p,.login-features,.login-form,.login-submit:before{animation:none!important}}

/* Ajuste v2: alineación óptica, marca anclada y movimiento visible. */
.login-brand-header{position:absolute;top:clamp(22px,3.2vw,46px);left:clamp(22px,3.2vw,46px);gap:13px;max-width:calc(100% - 44px)}
.sph-logo{width:56px;height:46px}.brand-divider{height:31px}.product-mark{width:30px;height:30px;border-radius:9px;font-size:16px}.product-brand strong{font-size:13px}.product-brand small{font-size:8px}
.login-brand-inner{left:clamp(28px,5.1vw,92px);top:36%;width:min(570px,calc(100% - clamp(56px,10.2vw,184px)));transform:translateY(-40%)}
.login-brand h1{max-width:540px;font-size:clamp(32px,3.4vw,51px);line-height:1.04}.login-brand p{max-width:520px;font-size:clamp(13px,1vw,15px)}
.login-form{width:min(418px,100%)}.login-form h2{font-size:clamp(26px,2.2vw,33px)}.login-submit{font-size:13.5px;font-weight:800}
.motion-signal{position:absolute;z-index:1;width:6px;height:6px;border-radius:50%;background:#8bd8fb;box-shadow:0 0 8px #65bcef,0 0 18px rgba(101,188,239,.7)}
.signal-one{top:30.2%;left:6%;animation:signal-one-travel 8s linear infinite}.signal-two{right:4%;bottom:25%;animation:signal-two-travel 10s 1.8s linear infinite}
@keyframes signal-one-travel{0%{opacity:0;transform:translate(0,0)}8%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translate(70vw,14.8vw)}}
@keyframes signal-two-travel{0%{opacity:0;transform:translate(0,0)}10%{opacity:1}90%{opacity:1}100%{opacity:0;transform:translate(-61vw,-22vw)}}
@media(max-width:1050px){.login-brand-inner{left:38px;top:36%;width:calc(100% - 76px)}.login-brand h1{font-size:clamp(32px,4.35vw,45px)}}
@media(max-width:760px){.login-brand-header{top:20px;left:20px}.login-motion .motion-signal{display:none}.login-form h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.motion-line,.motion-node{animation-name:connection-flow!important;animation-duration:9s!important;animation-iteration-count:infinite!important}.motion-node{animation-name:node-pulse!important;animation-duration:5.5s!important}.motion-signal{animation:none!important;display:none}.motion-orbit,.motion-orbit:before,.login-submit:before{animation:none!important}}

/* Ajuste v4: centro óptico y órbita protagonista. */
.login-brand-inner{top:calc(36% + 40px)}
.motion-line{height:1.5px;opacity:.48;background:linear-gradient(90deg,transparent,rgba(105,196,242,.2) 14%,rgba(112,207,250,.72) 50%,rgba(105,196,242,.18) 86%,transparent)}
.motion-node{width:8px;height:8px;border-color:rgba(151,222,255,.92);background:#17437f}
.motion-orbit{right:16px;top:13%;width:430px;height:430px;border-color:rgba(113,205,248,.24);box-shadow:inset 0 0 34px rgba(70,169,224,.035),0 0 30px rgba(70,169,224,.035);animation:orbit-breathe 8s ease-in-out infinite}
.motion-orbit:before{inset:48px;border-color:rgba(113,205,248,.18);animation:orbit-spin 19s linear infinite}
.motion-orbit:after{display:none}
.orbit-dot{position:absolute;inset:-2px;border-radius:50%;animation:orbit-spin 9s linear infinite}
.orbit-dot:before{content:"";position:absolute;top:50%;right:-4px;width:10px;height:10px;transform:translateY(-50%);border:2px solid rgba(210,243,255,.95);border-radius:50%;background:#69c8f5;box-shadow:0 0 8px #69c8f5,0 0 20px rgba(105,200,245,.95),-13px 0 18px rgba(105,200,245,.45)}
.orbit-dot:after{content:"";position:absolute;top:calc(50% + 1px);right:5px;width:34px;height:2px;transform:translateY(-50%);border-radius:99px;background:linear-gradient(90deg,transparent,rgba(105,200,245,.78));filter:blur(.3px)}
.orbit-dot-inner{inset:72px;animation-duration:13s;animation-direction:reverse}.orbit-dot-inner:before{right:-3px;width:6px;height:6px;border-width:1px;background:#b8eaff;box-shadow:0 0 7px #8edaff,0 0 13px rgba(105,200,245,.72)}.orbit-dot-inner:after{right:4px;width:22px;opacity:.62}
@media(max-width:1050px){.login-brand-inner{top:calc(36% + 40px)}.motion-orbit{right:-80px;width:390px;height:390px}.orbit-dot-inner{inset:65px}}
@media(max-width:760px){.login-brand-inner{top:36%}.motion-orbit{right:-145px;top:-105px;width:300px;height:300px}.orbit-dot{animation-duration:13s}.orbit-dot-inner{display:none}}
@media(prefers-reduced-motion:reduce){.orbit-dot{animation:orbit-spin 13s linear infinite!important}.orbit-dot-inner{animation:orbit-spin 19s linear infinite reverse!important}.motion-orbit{opacity:.82!important}}

/* Panel operativo compacto: mayor densidad sin reducir áreas accesibles. */
:root{--sidebar-width:226px}
.sidebar{padding:20px 13px 15px}.brand{gap:9px;margin:0 5px 27px}.brand-mark{width:38px;height:38px;border-radius:11px;font-size:20px}.brand strong{font-size:16px}.brand small{font-size:10px}.sidebar nav{gap:3px}.sidebar nav a{min-height:42px;gap:10px;padding:9px 10px;border-radius:9px;font-size:13px}.sidebar nav a>span{width:19px;font-size:15px}.sidebar nav a.is-active:before{left:-13px;height:21px}.nav-label{margin:18px 10px 5px;font-size:9px}.sidebar-user{padding-top:13px}.avatar{width:33px;height:33px}.sidebar-user strong{font-size:12px}.sidebar-user small{font-size:10px}
.content{padding-inline:26px}
.dashboard-page>.page-heading{margin-bottom:18px}.dashboard-page>.page-heading h1{font-size:clamp(25px,2.4vw,30px)}.dashboard-page>.page-heading p{font-size:13px}.dashboard-page .date-chip{padding:7px 11px;font-size:12px}
.dashboard-page .action-grid{gap:15px;margin-bottom:16px}.dashboard-page .action-card{min-height:122px;gap:14px;padding:19px 21px;border-radius:18px}.dashboard-page .action-card h2{margin:3px 0 4px;font-size:17px}.dashboard-page .action-card p{font-size:12px}.dashboard-page .action-card small{font-size:9px}.dashboard-page .action-card>b{font-size:20px}.dashboard-page .action-icon{width:46px;height:46px;border-radius:14px;font-size:21px}
.dashboard-page .admin-highlight{min-height:58px;margin-bottom:16px;padding:9px 14px;border-radius:12px;font-size:12px}.dashboard-page .admin-highlight p{margin-left:6px}.dashboard-page .admin-highlight .button{min-height:40px;padding:8px 13px;font-size:12px}
.dashboard-page .two-columns{gap:15px}.dashboard-page .panel{border-radius:15px}.dashboard-page .panel-heading{padding:14px 17px}.dashboard-page .panel-heading h2{font-size:16px}.dashboard-page .panel-heading>a{font-size:11px}.dashboard-page .item-list{padding:2px 16px}.dashboard-page .meeting-item{min-height:64px}.dashboard-page .empty-state{min-height:72px;padding:22px 18px;font-size:12px}.dashboard-page .date-box{width:39px;height:43px}.dashboard-page .date-box b{font-size:16px}
@media(max-width:1050px){:root{--sidebar-width:226px}.content{padding-inline:18px}.dashboard-page .action-card{min-height:112px}}
@media(max-width:650px){.dashboard-page .action-card{min-height:104px;padding:16px}.dashboard-page .admin-highlight{padding:12px}.dashboard-page .empty-state{min-height:64px}}

/* Selección protagonista del Directorio sin ocupar todo el calendario. */
.compact-calendar-panel>.resource-selector{display:grid;grid-template-columns:auto minmax(320px,1fr) auto;align-items:center;gap:14px;width:min(940px,calc(100% - 28px));min-height:0;margin:14px;padding:15px 17px;border:1px solid #bdd7ec;border-left:4px solid var(--dm-blue-600);border-radius:14px;background:linear-gradient(135deg,#f7fbff 0%,#eef7fe 68%,#f8fbff 100%);box-shadow:0 9px 23px rgba(30,93,148,.08)}
.resource-selector-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:linear-gradient(135deg,var(--dm-blue-700),var(--dm-blue-500));color:#fff;font-size:21px;box-shadow:0 7px 16px rgba(40,124,195,.2)}
.resource-selector-control{min-width:0}.resource-selector-control label{display:flex;align-items:baseline;gap:9px;margin-bottom:7px}.resource-selector-control label strong{color:var(--dm-blue-700);font-size:12px;letter-spacing:.09em;text-transform:uppercase}.resource-selector-control label small{color:var(--dm-muted);font-size:10px;font-weight:500}.resource-selector-control select{min-height:45px;border-color:#a9c9e2;border-radius:10px;padding:9px 38px 9px 12px;background:#fff;color:var(--dm-text);font-size:13px;font-weight:750;box-shadow:0 3px 10px rgba(29,91,145,.045)}
.resource-selector-control select:hover{border-color:#78add4}.resource-selector-control select:focus{border-color:var(--dm-blue-500)}
.compact-calendar-panel .schedule-note{display:grid;min-width:130px;margin:0;padding-left:15px;border-left:1px solid #c9deee;color:var(--dm-text);line-height:1.25}.compact-calendar-panel .schedule-note small{margin-bottom:3px;color:var(--dm-muted);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.compact-calendar-panel .schedule-note strong{font-size:10px}.compact-calendar-panel .schedule-note b{margin-top:2px;color:var(--dm-blue-700);font-size:11px}
.compact-calendar-panel>.calendar-toolbar{border-top:1px solid var(--dm-line);background:rgba(248,251,254,.72)}
@media(max-width:850px){.compact-calendar-panel>.resource-selector{grid-template-columns:auto 1fr;width:calc(100% - 24px);margin:12px}.compact-calendar-panel .schedule-note{grid-column:2;display:flex;align-items:center;gap:6px;padding:0;border:0}.compact-calendar-panel .schedule-note small{margin:0}.resource-selector-control label{align-items:flex-start;flex-direction:column;gap:2px}}
@media(max-width:520px){.compact-calendar-panel>.resource-selector{grid-template-columns:1fr;padding:14px}.resource-selector-icon{display:none}.compact-calendar-panel .schedule-note{grid-column:1}.resource-selector-control select{font-size:12px}}

/* Leyendas del calendario: lectura inmediata sin competir con la agenda. */
.compact-calendar-panel .calendar-legends{min-height:42px;padding:8px 14px}.compact-calendar-panel .legend{gap:16px;font-size:11px}.compact-calendar-panel .legend i{width:10px;height:10px}.compact-calendar-panel .relevance-legend{gap:13px;font-size:11px}.compact-calendar-panel .relevance-legend small{font-size:9px}.compact-calendar-panel .relevance-legend span:before{width:9px;height:9px}.compact-calendar-panel .relevance-legend span{gap:6px}
@media(max-width:650px){.compact-calendar-panel .calendar-legends{gap:9px;padding:9px 12px}.compact-calendar-panel .legend,.compact-calendar-panel .relevance-legend{gap:11px;font-size:10px}}

/* Encabezado de Directorios simplificado: el selector contiene la instrucción. */
.calendar-page-heading.is-simplified{min-height:40px;align-items:center;margin-bottom:7px}.calendar-page-heading.is-simplified h1{margin:0;font-size:24px;line-height:1.1}.calendar-page-heading.is-simplified+ .compact-calendar-panel{margin-top:0}
@media(max-width:650px){.calendar-page-heading.is-simplified{min-height:36px;margin-bottom:6px}.calendar-page-heading.is-simplified h1{font-size:21px}}

/* El selector sigue la retícula: horario + lunes a jueves. */
.compact-calendar-panel>.resource-selector{width:min(calc(80% + 13px),calc(100% - 28px));max-width:none}
@media(max-width:850px){.compact-calendar-panel>.resource-selector{width:calc(100% - 24px)}}

/* Analítica de uso: lectura ejecutiva sin desplazar el trabajo operativo. */
.usage-overview{overflow:hidden;margin-bottom:18px;border:1px solid #c9ddeb;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(241,248,253,.96));box-shadow:0 16px 38px rgba(18,51,97,.1);animation:usage-panel-enter .42s cubic-bezier(.2,.75,.25,1) both}.usage-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:19px 21px 13px}.usage-heading h2{margin:2px 0 3px;font-size:20px}.usage-heading p{margin:0;color:var(--dm-muted);font-size:11px}.usage-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:9px}.usage-controls label{display:grid;gap:4px}.usage-controls label>span,.report-filters label>span{color:#687991;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.usage-controls select{min-width:132px;height:38px;border:1px solid #c4d7e7;border-radius:9px;padding:0 33px 0 10px;background:#fff;color:#243b5c;font-size:11px;font-weight:750}.usage-controls label:nth-child(2) select{width:240px}.usage-summary{display:flex;align-items:center;gap:18px;margin:0 21px;padding:10px 14px;border:1px solid #dce7f1;border-radius:12px;background:rgba(255,255,255,.72)}.usage-summary>span{display:flex;align-items:baseline;gap:6px;padding-right:18px;border-right:1px solid #dce5ee}.usage-summary>span:last-child{border:0}.usage-summary strong{color:#143866;font-size:17px}.usage-summary small{color:var(--dm-muted);font-size:9px}.usage-summary .usage-resource-name{margin-left:auto;display:grid;gap:1px;max-width:360px;padding:0;text-align:right}.usage-summary .usage-resource-name strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.usage-chart-scroll{overflow-x:auto;padding:9px 21px 0}.usage-chart{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));gap:12px;align-items:end;min-width:680px;height:218px;padding:8px 8px 0;border-bottom:1px solid #cbd9e7;background-image:linear-gradient(to top,rgba(194,211,226,.38) 1px,transparent 1px);background-size:100% 25%}.usage-column{display:grid;grid-template-rows:158px auto auto;gap:4px;min-width:0;text-align:center}.usage-bar-track{display:flex;align-items:flex-end;justify-content:center;height:158px}.usage-bar{position:relative;width:min(54px,70%);height:var(--bar-size);min-height:6px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#57b5e8,#247fc3 62%,#1765a8);box-shadow:0 9px 18px rgba(36,127,195,.2);transform-origin:bottom;animation:usage-bar-rise .58s cubic-bezier(.2,.8,.25,1) both;transition:filter .18s ease,transform .18s ease}.usage-column:nth-child(2) .usage-bar{animation-delay:45ms}.usage-column:nth-child(3) .usage-bar{animation-delay:90ms}.usage-column:nth-child(4) .usage-bar{animation-delay:135ms}.usage-column:nth-child(5) .usage-bar{animation-delay:180ms}.usage-column:nth-child(6) .usage-bar{animation-delay:225ms}.usage-column:nth-child(7) .usage-bar{animation-delay:270ms}.usage-column:hover .usage-bar{filter:saturate(1.15);transform:translateY(-3px)}.usage-bar span{position:absolute;left:50%;top:-19px;transform:translateX(-50%);color:#274361;font-size:9px;font-weight:850;white-space:nowrap}.usage-column>strong{overflow:hidden;color:#253c5d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.usage-column>small{color:#8190a4;font-size:8px}.usage-empty{grid-column:1/-1;align-self:center;color:var(--dm-muted);font-size:12px;text-align:center}.usage-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 21px 15px;color:#718199;font-size:9px}.usage-footer span{display:flex;align-items:center;gap:6px}.usage-footer i{width:8px;height:8px;border-radius:3px;background:#318dcb}.usage-footer a{font-size:11px;font-weight:850}.usage-overview.is-loading .usage-chart,.usage-overview.is-loading .usage-summary{opacity:.38}.usage-overview.is-loading{cursor:progress}.usage-overview.has-error .usage-chart{border-color:#e6b7c2}.dashboard-page .usage-overview+.action-grid{margin-top:0}
@keyframes usage-panel-enter{from{opacity:.25;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes usage-bar-rise{from{opacity:.25;transform:scaleY(.05)}to{opacity:1;transform:scaleY(1)}}

/* Reportes consolidados: filtros compactos, indicadores y detalle exportable. */
.reports-page{padding-top:4px}.reports-heading{align-items:center;margin-bottom:14px}.report-export-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:11px 14px 11px 16px}.report-export-bar>div:first-child{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:8px}.report-export-bar .eyebrow{grid-column:1/-1;font-size:8px}.report-export-bar strong{font-size:12px}.report-export-bar small{color:var(--dm-muted);font-size:9px}.report-export-options{display:flex;gap:8px}.report-export{min-height:36px;gap:6px;padding:7px 12px;flex:none;font-size:11px}.report-export span{font-size:14px}.report-export.excel{border-color:#a9d8c5;color:#16724f}.report-export.pdf{border-color:#e7b8c1;color:#a22d47}.report-filters{display:grid;grid-template-columns:1.05fr 1.35fr 1.25fr .8fr .8fr auto;gap:11px;align-items:end;margin-bottom:16px;padding:15px 17px}.report-filters label{display:grid;gap:5px;min-width:0}.report-filters select,.report-filters input{width:100%;height:40px;border:1px solid #c8d7e6;border-radius:9px;padding:0 10px;background:#fff;color:#263c5c;font-size:11px}.report-filters .button{height:40px;white-space:nowrap}.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.report-kpis article{display:flex;align-items:center;gap:12px;min-height:94px;border:1px solid var(--dm-line);border-radius:15px;padding:15px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(18,51,97,.06);transition:transform .18s ease,box-shadow .18s ease}.report-kpis article:hover{transform:translateY(-2px);box-shadow:var(--dm-shadow-md)}.kpi-icon{display:grid;width:42px;height:42px;flex:none;place-items:center;border-radius:13px;background:#e8f4fc;color:#1d75b7;font-size:19px}.kpi-icon.is-zoom{background:#f0edff;color:#675bd4}.kpi-icon.is-company{background:#eaf8f3;color:#19815e}.kpi-icon.is-total{background:#fff3df;color:#a96f0d}.report-kpis small,.report-kpis strong,.report-kpis p{display:block}.report-kpis small{color:var(--dm-muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.report-kpis strong{margin:2px 0;color:#102e59;font-size:24px;line-height:1}.report-kpis strong.kpi-company{overflow:hidden;max-width:180px;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.report-kpis p{margin:0;color:#77869a;font-size:9px}.report-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.report-layout>.panel{overflow:hidden}.report-layout .panel-heading{padding:14px 17px}.report-layout .panel-heading h2{font-size:16px}.report-layout .panel-heading>small{color:var(--dm-muted);font-size:9px}.report-trend{display:grid;grid-template-columns:repeat(auto-fit,minmax(62px,1fr));gap:9px;align-items:end;min-width:440px;height:285px;padding:18px 17px 12px;border-bottom:1px solid #dbe5ee;background-image:linear-gradient(to top,rgba(194,211,226,.32) 1px,transparent 1px);background-size:100% 25%}.report-trend-panel{overflow-x:auto!important}.trend-column{display:grid;grid-template-rows:215px auto auto;gap:4px;text-align:center}.trend-track{display:flex;align-items:flex-end;justify-content:center}.trend-bar{position:relative;width:min(42px,72%);height:var(--bar-size);min-height:5px;border-radius:9px 9px 3px 3px;background:linear-gradient(180deg,#58b7e9,#267fc1);transform-origin:bottom;animation:usage-bar-rise .55s ease both}.trend-bar span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);color:#31506f;font-size:8px;font-weight:800}.trend-column>strong{font-size:9px}.trend-column>small{color:var(--dm-muted);font-size:7px}.report-table-wrap{max-height:350px;overflow:auto}.report-table th{position:sticky;top:0;z-index:1;padding:10px 13px;font-size:8px}.report-table td{padding:11px 13px;font-size:10px}.report-table td strong,.report-table td small{display:block}.report-table td small{margin-top:2px;color:var(--dm-muted);font-size:8px}.report-table td:last-child strong{color:#1768ad}.report-empty{padding:40px!important;color:var(--dm-muted);text-align:center!important}
@media(max-width:1200px){.usage-heading{align-items:flex-start;flex-direction:column}.usage-controls{width:100%;justify-content:flex-start}.report-filters{grid-template-columns:repeat(3,1fr)}.report-kpis{grid-template-columns:repeat(2,1fr)}.report-layout{grid-template-columns:1fr}}
@media(max-width:700px){.usage-heading{padding:16px 15px 11px}.usage-controls{display:grid;grid-template-columns:1fr 1fr}.usage-controls label:nth-child(2){grid-column:1/-1}.usage-controls label:nth-child(2) select,.usage-controls select{width:100%;min-width:0}.usage-summary{align-items:flex-start;flex-wrap:wrap;margin:0 15px}.usage-summary .usage-resource-name{width:100%;max-width:none;margin:0;text-align:left}.usage-chart-scroll{padding-inline:15px}.usage-footer{align-items:flex-start;flex-direction:column;padding-inline:15px}.report-export-bar{align-items:stretch;flex-direction:column}.report-export-bar>div:first-child{display:block}.report-export-bar small{display:block;margin-top:2px}.report-export-options{display:grid;grid-template-columns:1fr 1fr 1fr}.report-export{width:100%}.report-filters{grid-template-columns:1fr 1fr}.report-filters label:nth-child(2),.report-filters label:nth-child(3){grid-column:1/-1}.report-kpis{grid-template-columns:1fr}.report-layout{display:block}.report-layout>.panel+ .panel{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.usage-overview,.usage-bar,.trend-bar,.report-kpis article{animation:none!important;transition:none!important}}

/* Centro personal: una agenda semanal protagonista con disponibilidad sin exponer reuniones ajenas. */
.dashboard-page .user-action-grid{gap:14px;margin-bottom:16px}.dashboard-page .user-action-grid .action-card{min-height:104px;padding:16px 20px;border-radius:17px}.dashboard-page .user-action-grid .action-icon{width:43px;height:43px;border-radius:13px;font-size:20px}.dashboard-page .user-action-grid .action-card h2{font-size:16px}.dashboard-page .user-action-grid .action-card p{font-size:11px}.personal-command-center{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;margin-bottom:16px}.week-agenda{min-width:0;overflow:hidden;border-color:#c9dceb;box-shadow:0 15px 38px rgba(18,51,97,.09);animation:personal-panel-enter .45s cubic-bezier(.2,.75,.25,1) both}.personal-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px 13px;border-bottom:1px solid var(--dm-line);background:linear-gradient(110deg,#fff 62%,#eef7fd)}.personal-panel-heading h2{margin:1px 0 1px;font-size:20px}.personal-panel-heading p{margin:0;color:var(--dm-muted);font-size:10px}.week-summary{display:flex;align-items:center;gap:6px}.week-summary>span{display:grid;min-width:60px;padding:7px 10px;border:1px solid #d6e4ef;border-radius:10px;background:rgba(255,255,255,.82);text-align:center}.week-summary strong,.week-summary small{display:block}.week-summary strong{color:#123b6a;font-size:16px;line-height:1}.week-summary small{margin-top:2px;color:#75859a;font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.week-summary .is-pending{border-color:#efd79f;background:#fffaf0}.week-summary .is-pending strong{color:#9a6c12}.week-strip{display:grid;grid-template-columns:repeat(5,minmax(132px,1fr));gap:0;overflow-x:auto;background:#f7fafd}.week-day-card{position:relative;min-height:244px;border-right:1px solid var(--dm-line);background:rgba(255,255,255,.88);animation:week-day-enter .42s cubic-bezier(.2,.75,.25,1) both;transition:background-color .18s ease,transform .18s ease}.week-day-card:last-child{border-right:0}.week-day-card:nth-child(2){animation-delay:45ms}.week-day-card:nth-child(3){animation-delay:90ms}.week-day-card:nth-child(4){animation-delay:135ms}.week-day-card:nth-child(5){animation-delay:180ms}.week-day-card:hover{z-index:2;background:#fff}.week-day-card.is-past{background:repeating-linear-gradient(135deg,rgba(238,243,248,.72),rgba(238,243,248,.72) 5px,rgba(246,249,252,.78) 5px,rgba(246,249,252,.78) 10px)}.week-day-card.is-today{z-index:1;background:linear-gradient(180deg,#eff8fe,#fff 38%);box-shadow:inset 0 3px 0 var(--dm-blue-600),0 4px 18px rgba(40,124,195,.09)}.week-day-card>header{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:9px 11px;border-bottom:1px solid #e3eaf2}.week-day-card>header>div{display:flex;align-items:center;gap:7px}.week-day-card>header small{color:#74849a;font-size:8px;font-weight:900;letter-spacing:.09em}.week-day-card>header strong{font-size:20px;line-height:1}.week-day-card>header>span{padding:3px 6px;border-radius:999px;background:#e9f4fc;color:#1768ad;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.week-day-card.is-today>header>span{background:#1768ad;color:#fff;box-shadow:0 4px 10px rgba(23,104,173,.22);animation:today-chip-pulse 2.8s ease-in-out infinite}.week-day-events{display:grid;align-content:start;gap:7px;padding:9px}.week-event{display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:7px;min-height:50px;border:1px solid #d9e6f0;border-left:3px solid #2f8ccc;border-radius:9px;padding:6px;background:#f6fbff;color:#1b3558;box-shadow:0 3px 9px rgba(30,78,123,.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.week-event:hover{transform:translateY(-2px);color:#1b3558;box-shadow:0 8px 17px rgba(30,78,123,.11)}.week-event>i{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e3f2fc;color:#1971b4;font-size:12px;font-style:normal}.week-event>span{min-width:0}.week-event b,.week-event strong,.week-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-event b{color:#1768ad;font-size:7px;letter-spacing:.04em}.week-event strong{margin:1px 0;font-size:9px}.week-event small{color:#73839a;font-size:7px}.week-event.is-zoom{border-left-color:#7457c8;background:#faf8ff}.week-event.is-zoom>i{background:#eeeafd;color:#7457c8}.week-event.status-pending{border-left-color:#d79a2b;background:#fffaf0}.week-day-card.is-past .week-event{filter:saturate(.65);opacity:.72}.week-day-empty{display:grid;place-items:center;align-content:center;gap:7px;min-height:146px;color:#9aa6b6;font-size:9px}.week-day-empty i{width:24px;height:24px;border:1px dashed #c7d3df;border-radius:50%}.week-day-empty i:after{content:"";display:block;width:7px;height:7px;margin:7px;border-radius:50%;background:#d7e0e9}.week-more{display:block;padding:3px;text-align:center;font-size:8px;font-weight:850}.week-agenda-footer,.week-empty-prompt{display:flex;align-items:center;gap:13px;min-height:38px;padding:8px 14px;border-top:1px solid var(--dm-line);background:#fff;color:#78879b;font-size:8px}.week-agenda-footer span{display:flex;align-items:center;gap:5px}.week-agenda-footer span i{width:7px;height:7px;border-radius:2px;background:#2f8ccc}.week-agenda-footer span:nth-child(2) i{background:#7457c8}.week-agenda-footer a,.week-empty-prompt a{margin-left:auto;font-size:9px;font-weight:850}.week-empty-prompt>span{font-weight:750}.today-availability{overflow:hidden;border:1px solid #1f4679;border-radius:18px;background:linear-gradient(155deg,#081d43,#0f3167 58%,#14528a);color:#fff;box-shadow:0 18px 42px rgba(7,29,67,.19);animation:personal-panel-enter .48s .08s cubic-bezier(.2,.75,.25,1) both}.today-availability>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:17px 16px 13px;border-bottom:1px solid rgba(255,255,255,.11)}.today-availability .eyebrow{color:#79c9f4;font-size:8px}.today-availability h2{margin:2px 0 0;color:#fff;font-size:18px}.live-indicator{display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid rgba(129,226,193,.24);border-radius:999px;background:rgba(28,169,120,.12);color:#a9efd6;font-size:7px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.live-indicator i{width:6px;height:6px;border-radius:50%;background:#43d09d;box-shadow:0 0 0 4px rgba(67,208,157,.1);animation:live-dot 2.3s ease-in-out infinite}.availability-list{display:grid;padding:6px 10px}.availability-item{display:grid;grid-template-columns:20px minmax(0,.72fr) minmax(0,1fr);align-items:center;gap:8px;min-height:63px;border-bottom:1px solid rgba(255,255,255,.09);padding:8px 5px;color:#fff;transition:background-color .16s ease,transform .16s ease}.availability-item:last-child{border-bottom:0}.availability-item:hover{border-radius:10px;background:rgba(255,255,255,.07);color:#fff;transform:translateX(2px)}.availability-state{display:grid;place-items:center;width:19px;height:19px;border-radius:7px;background:rgba(255,255,255,.08)}.availability-state i{width:7px;height:7px;border-radius:50%;background:#87a0bd}.availability-item.is-free .availability-state i{background:#49d3a0;box-shadow:0 0 0 4px rgba(73,211,160,.1)}.availability-item.is-busy .availability-state i{background:#f0b44f}.availability-item.is-soon .availability-state i{background:#65b9f0}.availability-item>span:nth-child(2),.availability-copy{min-width:0}.availability-item strong,.availability-item small,.availability-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.availability-item strong{color:#fff;font-size:9px}.availability-item small{color:#94acce;font-size:7px}.availability-copy{text-align:right}.availability-copy b{color:#eaf7ff;font-size:8px}.availability-item.is-free .availability-copy b{color:#98eacb}.availability-item.is-busy .availability-copy b{color:#ffd992}.today-availability>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 15px;border-top:1px solid rgba(255,255,255,.1);background:rgba(4,20,48,.22);color:#91a9c8;font-size:7px}.today-availability>footer a{color:#8ed8ff;font-size:8px;font-weight:850}.availability-empty{display:grid;place-items:center;min-height:190px;padding:20px;text-align:center}.availability-empty>span{display:grid;place-items:center;width:42px;height:42px;margin-bottom:8px;border-radius:14px;background:rgba(255,255,255,.08);color:#8ed8ff;font-size:19px}.availability-empty strong,.availability-empty small{display:block}.availability-empty strong{color:#fff;font-size:10px}.availability-empty small{margin-top:3px;color:#91a9c8;font-size:8px}.dashboard-page .user-followups{gap:16px}.dashboard-page .user-followups .panel{box-shadow:0 10px 26px rgba(18,51,97,.055)}
@keyframes personal-panel-enter{from{opacity:.1;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes week-day-enter{from{opacity:.15;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes live-dot{0%,100%{box-shadow:0 0 0 3px rgba(67,208,157,.1)}50%{box-shadow:0 0 0 7px rgba(67,208,157,.02)}}@keyframes today-chip-pulse{0%,100%{box-shadow:0 4px 10px rgba(23,104,173,.2)}50%{box-shadow:0 4px 15px rgba(23,104,173,.36)}}
@media(max-width:1250px){.personal-command-center{grid-template-columns:1fr}.today-availability{display:grid;grid-template-columns:auto 1fr auto;align-items:stretch}.today-availability>header{min-width:230px;border:0;border-right:1px solid rgba(255,255,255,.11)}.today-availability .availability-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-content:center}.today-availability>footer{align-items:flex-start;justify-content:center;flex-direction:column;min-width:150px;border-top:0;border-left:1px solid rgba(255,255,255,.1)}}
@media(max-width:850px){.week-strip{grid-template-columns:repeat(5,180px)}.personal-panel-heading{align-items:flex-start;flex-direction:column}.week-summary{width:100%}.week-summary>span{flex:1}.today-availability{display:block}.today-availability>header{border-right:0;border-bottom:1px solid rgba(255,255,255,.11)}.today-availability>footer{align-items:center;justify-content:space-between;flex-direction:row;border-top:1px solid rgba(255,255,255,.1);border-left:0}}
@media(max-width:650px){.dashboard-page .user-action-grid .action-card{min-height:96px}.personal-command-center{gap:12px}.week-agenda,.today-availability{border-radius:15px}.personal-panel-heading{padding:14px}.week-strip{grid-template-columns:repeat(5,168px)}.week-day-card{min-height:226px}.availability-item{grid-template-columns:20px minmax(0,1fr);padding:9px 6px}.availability-copy{grid-column:2;text-align:left}.dashboard-page .user-followups{gap:12px}}
@media(prefers-reduced-motion:reduce){.week-agenda,.today-availability,.week-day-card,.week-day-card.is-today>header>span,.live-indicator i{animation:none!important}.week-event,.availability-item{transition:none!important}}

/* Acciones principales: el azul de estado en tiempo real pasa a ser la jerarquía dominante. */
.dashboard-page .user-action-grid{gap:16px;margin-bottom:18px}.dashboard-page .user-action-grid .action-card{isolation:isolate;position:relative;overflow:hidden;min-height:132px;border:1px solid #244b7d;padding:21px 23px;color:#fff;box-shadow:0 18px 42px rgba(7,29,67,.18);transition:transform .22s cubic-bezier(.2,.75,.25,1),box-shadow .22s ease,border-color .22s ease}.dashboard-page .user-action-grid .action-card.directory{background:linear-gradient(145deg,#081d43,#0f3167 58%,#14528a)}.dashboard-page .user-action-grid .action-card.zoom{border-color:#353d86;background:linear-gradient(145deg,#091c43,#192d68 56%,#493f91)}.dashboard-page .user-action-grid .action-card:before,.dashboard-page .user-action-grid .action-card:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.dashboard-page .user-action-grid .action-card:before{width:190px;height:190px;right:-80px;top:-105px;border:1px solid rgba(141,216,255,.15);background:radial-gradient(circle,rgba(74,180,238,.13),transparent 67%);transition:transform .35s ease}.dashboard-page .user-action-grid .action-card:after{width:78px;height:78px;right:61px;bottom:-58px;border:1px solid rgba(255,255,255,.07)}.dashboard-page .user-action-grid .action-card.zoom:before{border-color:rgba(193,180,255,.16);background:radial-gradient(circle,rgba(138,112,232,.2),transparent 67%)}.dashboard-page .user-action-grid .action-card:hover{border-color:#3c83b7;color:#fff;transform:translateY(-4px);box-shadow:0 24px 50px rgba(7,29,67,.25)}.dashboard-page .user-action-grid .action-card.zoom:hover{border-color:#655bb5}.dashboard-page .user-action-grid .action-card:hover:before{transform:translate(-8px,8px) scale(1.08)}.dashboard-page .user-action-grid .action-icon{width:49px;height:49px;border:1px solid rgba(120,210,255,.16);border-radius:15px;background:rgba(65,179,235,.12);color:#7dd6ff;box-shadow:inset 0 0 18px rgba(73,192,241,.08),0 9px 22px rgba(0,0,0,.14)}.dashboard-page .user-action-grid .zoom .action-icon{border-color:rgba(191,174,255,.17);background:rgba(124,98,219,.16);color:#c5b8ff;box-shadow:inset 0 0 18px rgba(151,128,237,.09),0 9px 22px rgba(0,0,0,.14)}.dashboard-page .user-action-grid .action-card h2{margin:4px 0 5px;color:#fff;font-size:19px;letter-spacing:-.01em}.dashboard-page .user-action-grid .action-card p{color:#a9c0df;font-size:11px}.dashboard-page .user-action-grid .zoom p{color:#beb9df}.dashboard-page .user-action-grid .action-card>div>small{color:#73cbf4;font-size:8px}.dashboard-page .user-action-grid .zoom>div>small{color:#b9aaff}.dashboard-page .user-action-grid .action-priority{position:relative;margin-right:5px;border-color:rgba(116,220,255,.23);background:rgba(36,175,224,.1);color:#a9e9ff}.dashboard-page .user-action-grid .action-priority:before{content:"";width:5px;height:5px;margin-right:5px;border-radius:50%;background:#4dd5a2;box-shadow:0 0 0 4px rgba(77,213,162,.08)}.dashboard-page .user-action-grid .zoom .action-priority{border-color:rgba(194,179,255,.22);background:rgba(125,99,221,.12);color:#d2c9ff}.dashboard-page .user-action-grid .action-card>b{display:grid;place-items:center;width:35px;height:35px;border:1px solid rgba(255,255,255,.13);border-radius:11px;background:rgba(255,255,255,.07);color:#84dcff;font-size:18px}.dashboard-page .user-action-grid .zoom>b{color:#c9bcff}.personal-command-center{display:block}.dashboard-page .personal-command-center .week-agenda{width:100%}
@media(max-width:1050px){.dashboard-page .user-action-grid .action-card{min-height:122px}}
@media(max-width:650px){.dashboard-page .user-action-grid{gap:12px}.dashboard-page .user-action-grid .action-card{min-height:112px;padding:17px}.dashboard-page .user-action-grid .action-card h2{font-size:17px}.dashboard-page .user-action-grid .action-icon{width:43px;height:43px}.dashboard-page .user-action-grid .action-card>b{display:none}}
@media(prefers-reduced-motion:reduce){.dashboard-page .user-action-grid .action-card,.dashboard-page .user-action-grid .action-card:before{transition:none!important}}

/* Motion design de acciones: movimiento ambiental lento y respuesta inmediata sin distraer. */
.dashboard-page .user-action-grid .action-card{animation:primary-action-reveal .58s cubic-bezier(.2,.75,.25,1) both}.dashboard-page .user-action-grid .action-card.zoom{animation-delay:110ms}.dashboard-page .user-action-grid .action-card:before{animation:primary-orb-drift 8s ease-in-out infinite alternate;will-change:transform}.dashboard-page .user-action-grid .action-card:after{left:-38%;right:auto;top:-115%;bottom:auto;width:24%;height:330%;border:0;border-radius:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.075),rgba(145,224,255,.16),rgba(255,255,255,.065),transparent);opacity:0;transform:translateX(0) rotate(17deg);animation:primary-light-sweep 7.2s 1.6s ease-in-out infinite;will-change:transform,opacity}.dashboard-page .user-action-grid .action-card.zoom:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.065),rgba(203,190,255,.16),rgba(255,255,255,.055),transparent);animation-delay:3.1s}.dashboard-page .user-action-grid .action-icon{animation:primary-icon-float 4.2s ease-in-out infinite}.dashboard-page .user-action-grid .zoom .action-icon{animation-delay:.65s}.dashboard-page .user-action-grid .action-priority:before{animation:primary-status-beacon 2.4s ease-in-out infinite}.dashboard-page .user-action-grid .action-card>b{animation:primary-arrow-glow 2.9s ease-in-out infinite}.dashboard-page .user-action-grid .zoom>b{animation-delay:.7s}.dashboard-page .user-action-grid .action-card:hover:before{animation-play-state:paused}.dashboard-page .user-action-grid .action-card:hover .action-icon{animation-play-state:paused;transform:translateY(-2px) scale(1.04)}.dashboard-page .user-action-grid .action-card:focus-visible{outline:3px solid rgba(129,216,255,.55);outline-offset:4px}
@keyframes primary-action-reveal{from{opacity:0;clip-path:inset(0 7% 0 0 round 17px);filter:blur(3px)}to{opacity:1;clip-path:inset(0 round 17px);filter:none}}@keyframes primary-orb-drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-10px,7px,0) scale(1.06)}100%{transform:translate3d(5px,13px,0) scale(.96)}}@keyframes primary-light-sweep{0%,68%{opacity:0;transform:translateX(0) rotate(17deg)}74%{opacity:.82}88%{opacity:.34}100%{opacity:0;transform:translateX(650%) rotate(17deg)}}@keyframes primary-icon-float{0%,100%{transform:translateY(0);box-shadow:inset 0 0 18px rgba(73,192,241,.08),0 9px 22px rgba(0,0,0,.14)}50%{transform:translateY(-3px);box-shadow:inset 0 0 22px rgba(73,192,241,.13),0 14px 27px rgba(0,0,0,.17)}}@keyframes primary-status-beacon{0%,100%{box-shadow:0 0 0 3px rgba(77,213,162,.07)}50%{box-shadow:0 0 0 7px rgba(77,213,162,.015)}}@keyframes primary-arrow-glow{0%,100%{box-shadow:inset 0 0 0 rgba(125,216,255,0)}50%{box-shadow:inset 0 0 18px rgba(125,216,255,.09)}}
@media(prefers-reduced-motion:reduce){.dashboard-page .user-action-grid .action-card,.dashboard-page .user-action-grid .action-card:before,.dashboard-page .user-action-grid .action-card:after,.dashboard-page .user-action-grid .action-icon,.dashboard-page .user-action-grid .action-priority:before,.dashboard-page .user-action-grid .action-card>b{animation:none!important}.dashboard-page .user-action-grid .action-card:hover .action-icon{transform:none!important}}

/* Ranking de usuarios: lectura ejecutiva con jerarquía clara y progreso comparable. */
.report-user-ranking{overflow:hidden;margin-top:16px;box-shadow:0 12px 30px rgba(18,51,97,.07);animation:ranking-panel-enter .46s cubic-bezier(.2,.75,.25,1) both}.report-user-ranking .panel-heading{padding:15px 18px;background:linear-gradient(110deg,#fff 62%,#eef7fd)}.report-user-ranking .panel-heading h2{font-size:17px}.report-user-ranking .panel-heading p{margin:3px 0 0;color:var(--dm-muted);font-size:9px}.report-user-ranking .panel-heading>small{color:var(--dm-muted);font-size:9px}.user-ranking-list{display:grid}.user-ranking-row{display:grid;grid-template-columns:34px 38px minmax(180px,.9fr) minmax(180px,1.6fr) 84px 92px;align-items:center;gap:12px;min-height:66px;border-bottom:1px solid var(--dm-line);padding:9px 18px;background:#fff;transition:background-color .18s ease,transform .18s ease}.user-ranking-row:last-child{border-bottom:0}.user-ranking-row:hover{z-index:1;background:#f8fbfe;transform:translateX(2px)}.ranking-position{display:grid;place-items:center;width:28px;height:28px;border:1px solid #d6e2ed;border-radius:10px;background:#f3f7fb;color:#60738b;font-size:11px;font-weight:900}.rank-1 .ranking-position{border-color:#ead17e;background:linear-gradient(145deg,#fff8db,#f3d36d);color:#76520b;box-shadow:0 5px 13px rgba(189,143,26,.16)}.rank-2 .ranking-position{border-color:#d3dbe3;background:linear-gradient(145deg,#fff,#dfe6ed);color:#5e6a76}.rank-3 .ranking-position{border-color:#dfbca0;background:linear-gradient(145deg,#fff2e8,#ddb08d);color:#75452a}.ranking-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(145deg,#e7f4fc,#cce9fa);color:#1768ad;font-size:13px;font-weight:900}.ranking-person{min-width:0}.ranking-person strong,.ranking-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-person strong{color:#15355d;font-size:11px}.ranking-person small{margin-top:2px;color:var(--dm-muted);font-size:8px}.ranking-progress>span{display:block;height:8px;overflow:hidden;border-radius:999px;background:#edf3f8}.ranking-progress i{display:block;width:var(--ranking-size);height:100%;border-radius:inherit;background:linear-gradient(90deg,#2393d4,#59b9ea);transform-origin:left;animation:ranking-bar-grow .55s .12s cubic-bezier(.2,.75,.25,1) both}.ranking-stat{text-align:right}.ranking-stat strong,.ranking-stat small{display:block}.ranking-stat strong{color:#123b6a;font-size:13px}.ranking-stat small{color:var(--dm-muted);font-size:7px;text-transform:uppercase;letter-spacing:.05em}.ranking-stat.is-hours strong{color:#267fc1}.ranking-empty{min-height:110px;display:grid;place-items:center}@keyframes ranking-panel-enter{from{opacity:.15;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes ranking-bar-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:900px){.user-ranking-row{grid-template-columns:32px 36px minmax(150px,1fr) 72px 78px}.ranking-progress{display:none}}
@media(max-width:600px){.report-user-ranking .panel-heading{align-items:flex-start;flex-direction:column}.user-ranking-row{grid-template-columns:29px 34px minmax(0,1fr) 62px;padding:9px 12px}.ranking-stat.is-hours{display:none}.ranking-position{width:26px;height:26px}.ranking-avatar{width:33px;height:33px}}
@media(prefers-reduced-motion:reduce){.report-user-ranking,.ranking-progress i{animation:none!important}.user-ranking-row{transition:none!important}}

/* Motion principal reforzado: perceptible en reposo, sobrio y siempre subordinado a la acción. */
.dashboard-page .user-action-grid .action-card{--motion-accent:#68caf2;background-size:165% 165%;animation:primary-action-reveal .62s cubic-bezier(.2,.75,.25,1) both,primary-card-breathe-strong 10s 1s ease-in-out infinite}.dashboard-page .user-action-grid .action-card.zoom{--motion-accent:#a291f3;animation-delay:110ms,1.25s}.dashboard-page .user-action-grid .action-card:before{opacity:.92;animation:primary-orb-drift-strong 12.4s ease-in-out infinite alternate}.dashboard-page .user-action-grid .action-card:after{left:-42%;width:31%;opacity:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),rgba(133,220,255,.34),rgba(255,255,255,.12),transparent);animation:primary-light-sweep-strong 11.2s .8s ease-in-out infinite}.dashboard-page .user-action-grid .action-card.zoom:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),rgba(209,198,255,.31),rgba(255,255,255,.1),transparent);animation-delay:2.1s}.dashboard-page .user-action-grid .action-icon{position:relative;overflow:visible;animation:primary-icon-float-strong 7.2s ease-in-out infinite}.dashboard-page .user-action-grid .zoom .action-icon{animation-delay:.55s}.dashboard-page .user-action-grid .action-icon:after{content:"";position:absolute;inset:-5px;border:1px solid color-mix(in srgb,var(--motion-accent) 58%,transparent);border-radius:19px;opacity:0;animation:primary-icon-ring 5.8s ease-out infinite;pointer-events:none}.dashboard-page .user-action-grid .zoom .action-icon:after{animation-delay:.55s}.dashboard-page .user-action-grid .action-priority:before{animation:primary-status-beacon-strong 4s ease-in-out infinite}.dashboard-page .user-action-grid .action-card>b{animation:primary-arrow-nudge 4.5s ease-in-out infinite}.dashboard-page .user-action-grid .zoom>b{animation-delay:.42s}.dashboard-page .user-action-grid .action-card:hover{box-shadow:0 28px 60px rgba(7,29,67,.3),0 0 0 2px color-mix(in srgb,var(--motion-accent) 25%,transparent)}.dashboard-page .user-action-grid .action-card:hover .action-icon{animation-play-state:paused;transform:translateY(-4px) scale(1.08)}.dashboard-page .user-action-grid .action-card:hover>b{animation-play-state:paused;transform:translateX(5px)}
@keyframes primary-card-breathe-strong{0%,100%{border-color:#244b7d;background-position:0 50%;box-shadow:0 18px 42px rgba(7,29,67,.18),0 0 0 0 transparent}50%{border-color:var(--motion-accent);background-position:100% 50%;box-shadow:0 24px 54px rgba(7,29,67,.26),0 0 0 2px color-mix(in srgb,var(--motion-accent) 18%,transparent)}}@keyframes primary-orb-drift-strong{0%{transform:translate3d(7px,-5px,0) scale(.92)}50%{transform:translate3d(-18px,14px,0) scale(1.12)}100%{transform:translate3d(8px,25px,0) scale(1.02)}}@keyframes primary-light-sweep-strong{0%,55%{opacity:0;transform:translateX(0) rotate(17deg)}61%{opacity:.95}82%{opacity:.48}100%{opacity:0;transform:translateX(590%) rotate(17deg)}}@keyframes primary-icon-float-strong{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.055)}}@keyframes primary-icon-ring{0%{opacity:.56;transform:scale(.82)}68%,100%{opacity:0;transform:scale(1.34)}}@keyframes primary-status-beacon-strong{0%,100%{box-shadow:0 0 0 3px rgba(77,213,162,.14);filter:brightness(1)}50%{box-shadow:0 0 0 9px rgba(77,213,162,.025);filter:brightness(1.32)}}@keyframes primary-arrow-nudge{0%,100%{transform:translateX(0);box-shadow:inset 0 0 0 rgba(125,216,255,0)}50%{transform:translateX(5px);box-shadow:inset 0 0 22px rgba(125,216,255,.16),0 0 14px color-mix(in srgb,var(--motion-accent) 14%,transparent)}}
@keyframes primary-reduced-card-glow{0%,100%{border-color:color-mix(in srgb,var(--motion-accent) 44%,#244b7d);box-shadow:0 20px 44px rgba(7,29,67,.2),0 0 0 1px color-mix(in srgb,var(--motion-accent) 10%,transparent);filter:brightness(1)}50%{border-color:var(--motion-accent);box-shadow:0 27px 58px rgba(7,29,67,.3),0 0 0 3px color-mix(in srgb,var(--motion-accent) 24%,transparent),0 0 28px color-mix(in srgb,var(--motion-accent) 14%,transparent);filter:brightness(1.075)}}@keyframes primary-reduced-icon-glow{0%,100%{box-shadow:inset 0 0 20px color-mix(in srgb,var(--motion-accent) 12%,transparent),0 0 0 2px color-mix(in srgb,var(--motion-accent) 9%,transparent),0 10px 22px rgba(0,0,0,.14);filter:brightness(1)}50%{box-shadow:inset 0 0 28px color-mix(in srgb,var(--motion-accent) 25%,transparent),0 0 0 5px color-mix(in srgb,var(--motion-accent) 16%,transparent),0 15px 30px rgba(0,0,0,.2);filter:brightness(1.2)}}@keyframes primary-reduced-status-glow{0%,100%{box-shadow:0 0 0 4px rgba(77,213,162,.1);filter:brightness(1)}50%{box-shadow:0 0 0 9px rgba(77,213,162,.035),0 0 12px rgba(77,213,162,.3);filter:brightness(1.4)}}@keyframes primary-reduced-arrow-glow{0%,100%{box-shadow:inset 0 0 0 transparent;filter:brightness(1)}50%{box-shadow:inset 0 0 24px color-mix(in srgb,var(--motion-accent) 19%,transparent),0 0 16px color-mix(in srgb,var(--motion-accent) 16%,transparent);filter:brightness(1.28)}}
@media(prefers-reduced-motion:reduce){.dashboard-page .user-action-grid .action-card:before,.dashboard-page .user-action-grid .action-card:after,.dashboard-page .user-action-grid .action-icon:after{animation:none!important}.dashboard-page .user-action-grid .action-card,.dashboard-page .user-action-grid .action-card.zoom{animation:primary-reduced-card-glow 3.4s ease-in-out infinite!important}.dashboard-page .user-action-grid .action-icon,.dashboard-page .user-action-grid .zoom .action-icon{animation:primary-reduced-icon-glow 2.6s ease-in-out infinite!important}.dashboard-page .user-action-grid .zoom .action-icon{animation-delay:.55s!important}.dashboard-page .user-action-grid .action-priority:before{animation:primary-reduced-status-glow 2s ease-in-out infinite!important}.dashboard-page .user-action-grid .action-card>b{animation:primary-reduced-arrow-glow 2.35s ease-in-out infinite!important}.dashboard-page .user-action-grid .zoom>b{animation-delay:.42s!important}.dashboard-page .user-action-grid .action-card:hover .action-icon,.dashboard-page .user-action-grid .action-card:hover>b{transform:none!important}}

/* Fallback accesible más evidente: luz pulsante sin traslaciones ni barridos. */
@keyframes primary-reduced-card-glow-v2{0%,100%{border-color:color-mix(in srgb,var(--motion-accent) 48%,#244b7d);box-shadow:0 20px 44px rgba(7,29,67,.2),0 0 0 1px color-mix(in srgb,var(--motion-accent) 12%,transparent);filter:brightness(1)}50%{border-color:var(--motion-accent);box-shadow:0 30px 64px rgba(7,29,67,.34),0 0 0 4px color-mix(in srgb,var(--motion-accent) 34%,transparent),0 0 42px color-mix(in srgb,var(--motion-accent) 26%,transparent);filter:brightness(1.14)}}@keyframes primary-reduced-orb-glow{0%,100%{opacity:.34;filter:brightness(.9)}50%{opacity:1;filter:brightness(1.5)}}@keyframes primary-reduced-ring-glow{0%,100%{opacity:.14;transform:none}50%{opacity:.78;transform:none}}@keyframes primary-reduced-icon-glow-v2{0%,100%{box-shadow:inset 0 0 20px color-mix(in srgb,var(--motion-accent) 12%,transparent),0 0 0 2px color-mix(in srgb,var(--motion-accent) 10%,transparent),0 10px 22px rgba(0,0,0,.14);filter:brightness(1)}50%{box-shadow:inset 0 0 34px color-mix(in srgb,var(--motion-accent) 34%,transparent),0 0 0 7px color-mix(in srgb,var(--motion-accent) 23%,transparent),0 18px 34px rgba(0,0,0,.22);filter:brightness(1.38)}}@keyframes primary-reduced-status-glow-v2{0%,100%{box-shadow:0 0 0 4px rgba(77,213,162,.12);filter:brightness(1)}50%{box-shadow:0 0 0 10px rgba(77,213,162,.04),0 0 17px rgba(77,213,162,.5);filter:brightness(1.6)}}@keyframes primary-reduced-arrow-glow-v2{0%,100%{box-shadow:inset 0 0 0 transparent;filter:brightness(1)}50%{box-shadow:inset 0 0 28px color-mix(in srgb,var(--motion-accent) 28%,transparent),0 0 22px color-mix(in srgb,var(--motion-accent) 25%,transparent);filter:brightness(1.45)}}
@media(prefers-reduced-motion:reduce){.dashboard-page .user-action-grid .action-card,.dashboard-page .user-action-grid .action-card.zoom{animation:primary-reduced-card-glow-v2 7.8s ease-in-out infinite!important}.dashboard-page .user-action-grid .action-card:before{animation:primary-reduced-orb-glow 7.8s ease-in-out infinite!important;transform:none!important}.dashboard-page .user-action-grid .action-card:after{animation:none!important}.dashboard-page .user-action-grid .action-icon,.dashboard-page .user-action-grid .zoom .action-icon{animation:primary-reduced-icon-glow-v2 5.8s ease-in-out infinite!important}.dashboard-page .user-action-grid .action-icon:after{animation:primary-reduced-ring-glow 5.8s ease-in-out infinite!important}.dashboard-page .user-action-grid .action-priority:before{animation:primary-reduced-status-glow-v2 4.4s ease-in-out infinite!important}.dashboard-page .user-action-grid .action-card>b{animation:primary-reduced-arrow-glow-v2 5.2s ease-in-out infinite!important}}
